【无人机学习篇】构建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地面站,之后在终端窗口运行:

cpp 复制代码
ls /dev/

找到飞控串口对应在机载电脑中的名称。

可能是;ttyACM0,或者是ttyACM1,或者是ttyUSB0,ttyUSB1。总之,要确认是哪一个。

在我实际找的过程中,找不同会发现一下子多出来两个,那就说明两个都可以用。

  1. 之后运行:
cpp 复制代码
roscd mavros
cd launch
sudo gedit apm.launch

打开文件之后要做的事情:

检查其中的串口是否为你刚才找不同找到的串口名称,如果不是,则修改过来,其次要修改波特率为921600。如图:

  1. 准备好这一切之后可以运行mavros命令:
cpp 复制代码
sudo chmod 777 /dev/ttyACM0     //先给串口赋予使用权限,后面运行节点才有权限使用该串口
roslaunch mavros apm.launch fcu_url:="/dev/ttyACM0:921600"

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

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

之后可以另外打开一个终端,使用rostopic list命令来查看pixhawk已经发布的话题:

在其中找到了我需要的imu信息。

然后使用rostopic echo 命令加上话题名称即可打印输出这个信息:

cpp 复制代码
rostopic echo /mavros/imu/data

即可出现imu数据:


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

  • 有没有运行sudo chmod 777 赋予串口权限?
  • 有没有正确修改apm.launch文件?
  • 如果都没有问题,那就按照上面的顺序重新来一遍,就基本上OK了。
    再插一句话:如果你用的是px4插件,则把上面命令终端apm.launch改为px4.launch然后运行即可。道理是一样的。
相关推荐
limuyang244 分钟前
我在 2核2G 云主机上跑 OpenViking:一次关于云主机、模型选型与长期成本的真实复盘
人工智能·开源·ai编程
Shulex2 小时前
跨境电商 AI Agent 核心架构解析:从只读问答到自主执行的工程落地
人工智能·架构·智能客服·跨境电商
Java后端的Ai之路2 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
情 九2 小时前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
码农小旋风3 小时前
Ray分布式计算引擎介绍
人工智能·架构
火山引擎和TA的超级拍档们3 小时前
产品情报局 08 | AI 内容助手:全网热点驱动,一站式打通内容生产全链路
人工智能
Binovate缤江数智3 小时前
水泵远程开关之后,还需要管什么?数智开关在无人值守泵站中的监测、保护与能耗分析
人工智能·物联网
ZhengEnCi3 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
素男3 小时前
两个月不是六十天
人工智能·agent·self-becoming·ai长期记忆·ai自我介绍