【无人机学习篇】构建mavros机载电脑连接,从机载电脑获取pixhawk数据

(本文基于的pixhawk版本:6X minibase V2.2 ,固件:apm)
整个的步骤(baseline):
具体的每一步都可以在网上查到教程,这里只是梳理出一个流程。并且ubantu与ros的版本也不是必须和我的一致,也可以是ubantu18.04与ros melodic

  1. 在机载电脑上安装ubantu20.04(ros必备运行环境)

  2. 安装ros noetic(mavros必备运行环境)

  3. 安装mavros功能包(上位机与下位机的mavlink通信的渠道)

  4. 安装QGroundControL地面站(调试pixhawk参数必备软件)

  5. 用typec数据线,一端连接pixhawk,一端连接机载电脑,打开QGroundControL地面站,在参数设置中搜索“serial”,将serial0_protocol改为mavlink1;serial0_baud改为921600.
    如图:
    在这里插入图片描述

  6. 不要拔掉数据线,关闭QGroundControL地面站,之后在终端窗口运行:

ls /dev/

找到飞控串口对应在机载电脑中的名称。
可能是;ttyACM0,或者是ttyACM1,或者是ttyUSB0,ttyUSB1。总之,要确认是哪一个。
在我实际找的过程中,找不同会发现一下子多出来两个,那就说明两个都可以用。
8. 之后运行:

roscd mavros
cd launch
sudo gedit apm.launch

打开文件之后要做的事情:
检查其中的串口是否为你刚才找不同找到的串口名称,如果不是,则修改过来,其次要修改波特率为921600。如图:
在这里插入图片描述
9. 准备好这一切之后可以运行mavros命令:

sudo chmod 777 /dev/ttyACM0     //先给串口赋予使用权限,后面运行节点才有权限使用该串口
roslaunch mavros apm.launch fcu_url:="/dev/ttyACM0:921600"

注意你的串口不一定是ttyACM0,这里要根据你的实际情况改。

会看到mavros已经运行起来了:(一个很重要的点是:运行上面的代码的时候一定要先关闭QGroundControL地面站,不然会显示busy,无法访问串口,从而停止运行)

在这里插入图片描述

之后可以另外打开一个终端,使用rostopic list命令来查看pixhawk已经发布的话题:
在这里插入图片描述
在其中找到了我需要的imu信息。
然后使用rostopic echo 命令加上话题名称即可打印输出这个信息:

rostopic echo /mavros/imu/data

即可出现imu数据:

在这里插入图片描述
ps:如果出现了各个程序都没问题,但是最后rostopic /mavros/imu/data的时候结果为空,可以检查如下几个问题:

  • 有没有运行sudo chmod 777 赋予串口权限?
  • 有没有正确修改apm.launch文件?
  • 如果都没有问题,那就按照上面的顺序重新来一遍,就基本上OK了。
    再插一句话:如果你用的是px4插件,则把上面命令终端apm.launch改为px4.launch然后运行即可。道理是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++多线程编程】(五)之 线程生命周期管理join() 与 detach()

在C中,std::thread 类用于创建和管理线程。std::thread 提供了两种主要的方法来控制线程的生命周期:join 和 detach。 detach方式,启动的线程自主在后台运行,当前的代码继续往下执行,不等待新线程结束。join方式&…

Java开发框架和中间件面试题(2)

8.说说自己对Spring MVC的了解? MVC是一种设计模式,Spring MVC是一款很优秀的MVC框架。Spring MVC可以帮助我们进行更简洁的Web层开发,并且它天生与Spring框架集成。SpringMVC下我们一般把后端项目分为Service(处理业务&#xff0…

网上商城怎么做:五大关键步骤

在数字化浪潮中,开设网上商城已经成为商业发展的必然趋势。然而如何搭建一个功能齐全、用户体验优良的网上商城并非易事。以下为您介绍网上商城怎么做的五大关键步骤。 第一步,明确商业模式和定位 在开始搭建网上商城之前,需要清晰地定义你…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI+Vant 电影院订票管理系统 的设计与实现

一.项目介绍 基于SpringBootVue 电影院订票管理系统 分为前端和后端。 前端(用户): 登录后支持查看首页、电影、影院和我的信息 支持查看正在热映和即将上映的电影信息 支持购票(需选择影院座位)、看过(评论…

低代码平台

什么是低代码 低代码(Low-Code)是一种软件开发方法,旨在通过最小化手动编码的工作量,提高应用程序的开发效率。低代码平台通常提供可视化界面、预建组件、模板和自动化工具,以减少编码工作,使非专业开发人…

java使用面向对象实现图书管理系统

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

每日一练 | 华为认证真题练习Day152

1、树型网络拓扑实际上是一种层次化的星型机构,易于扩充网络规模,但是层级越高的节点故障导致的网络问题越严重。 A. True B. False 2、路由表中某条路由信息的Proto为Direct,则此路由的优先级一定为0 A. True B. False 3、路由器获得路由…

vue3 使用setup语法糖之后设置页面name方法

目录 vue2的设置方法 vue3的设置方法 1.vue3兼容vue2的写法 2.vue3没有使用setup语法糖 3.vue3的setup会自动生成name 4.使用插件 设置name的用处&#xff1a;页面缓存需要识别页面的唯一name属性才可以缓存 vue2的设置方法 <script>export default {name: "…

基本shell功能实现(exec系列程序替换函数练习)

shell 功能描述思路介绍1.实现常驻进程功能2.实现命令读取功能3. 实现命令解析功能4.实现子进程执行命令功能5.完善功能 补充内容让父进程运行内置命令实现子进程能够获得父进程的环境变量功能&#xff08;export命令&#xff09;shell实现重定向功能 全部代码如下&#xff1a;…

『 C++ 』二叉树进阶OJ题

文章目录 根据二叉树创建字符串 &#x1f996;&#x1f969; 题目描述&#x1f969; 解题思路&#x1f969; 代码 二叉树的层序遍历(分层遍历) &#x1f996;&#x1f969; 题目描述&#x1f969; 解题思路&#x1f969; 代码 二叉树的层序遍历(分层遍历)Ⅱ &#x1f996;&…

一篇文章带你了解SpringBoot目录结构

前言 SpringBoot是整合Spring技术栈的一站式框架&#xff0c;是简化Spring技术栈的快速开发脚手架&#xff0c;是一个能够快速构建生产级别的Spring应用的工具。SpringBoot是目前流行的微服务框架&#xff0c;倡导“约定优于配置”&#xff0c;简化Spring项目搭建及开发过程。…

shell(50) : 文件/文件夹不存在复制

把源文件夹里面不存在于目标文件夹的文件/文件夹复制到目标文件夹 # 源文件夹 yuan"/home/ly/nginx-module-vts-0.1.18" # 目标文件夹 mubiao"/home/ly/nginx2_test"echo "> ~~~~~~~~~~~~~~~~【start】~~~~~~~~~~~~~~~~ <" ysls $yuan|wc…

[Java 基础] Java 流操作简介

在Java编程中&#xff0c;流操作是非常常见和重要的操作之一。流操作可以用于处理数据的输入和输出&#xff0c;并且能够简化复杂的数据处理流程。Java提供了丰富的流操作类和方法&#xff0c;使得我们能够轻松地进行各种数据处理任务。 在这篇博客中&#xff0c;我们将介绍Jav…

速通Python基础语法--运算符篇

一、算术运算符 优先级&#xff1a; 除法的2个问题&#xff1a; 除零异常&#xff1a; 运行时才出现的错误&#xff0c;叫做“抛出异常” 如果程序运行过程中 抛出异常&#xff0c;程序就会直接终止&#xff0c;后面的代码不会执行。 除法的(不)截断问题&#xff1a; %取模/求…

宝塔面板安装MySQL数据库并通过内网穿透工具实现公网远程访问

文章目录 前言1.Mysql 服务安装2.创建数据库3.安装 cpolar3.2 创建 HTTP 隧道 4.远程连接5.固定 TCP 地址5.1 保留一个固定的公网 TCP 端口地址5.2 配置固定公网 TCP 端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了 Linux 命令行进行繁琐的配置,下面简单几步,通…

微信小程序使用--如何生成二维码

一、生成二维码 1.获取token 参照官方文档说明&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html 其中grant_type是写死的&#xff0c;appid和secret是注册小程序的时候获取的&#xff0c;然后会得到一个默认两小…

MyBatis-Plus全套笔记

一、MyBatis-Plus 1.简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档&…

c jpeg 理论霍夫曼 DC AC表,c程序实现正向逆向转换

此4张表是理论表&#xff0c;不是针对某张图片的特定表。如编码程序不统计生成某图片的专用霍夫曼表&#xff0c;应该也可用理论表代用编码。 1.亮度DC表 左边第一列是二进制位数&#xff0c;就是对此位数编码 中间一列是生成比特流的位数&#xff0c;右边是生成的比特流。 …

本地MinIO存储服务如何创建Buckets并实现公网访问上传文件

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统&#xff0c;它可以100%的运行在标准硬件上&#xff0c;即X86等…

Seata:打造行业首个分布式事务产品

作者&#xff1a;季敏&#xff0c;阿里云分布式事务产品负责人、Seata 开源项目创始人 微服务架构下数据一致性的挑战 微服务开发的痛点 在 2019 年&#xff0c;我们基于 Dubbo Ecosystem Meetup&#xff0c;收集了 2000 多份关于“在微服务架构&#xff0c;哪些核心问题是开…