首页
学习
活动
专区
圈层
工具
发布

ROS如何与无人船通讯:MAVROS与Pixhawk链接

在无人船的智能化控制体系中,ROS(机器人操作系统)与 Pixhawk 飞控的通讯是实现自主航行、环境感知等高级功能的关键纽带。MAVROS 作为 ROS 与 MAVLink 协议的桥梁,让无人船的 “大脑”(机载电脑)与 “神经中枢”(Pixhawk 飞控)得以高效协同。本文将从原理、硬件、软件到验证,完整解析二者的通讯实现路径

Pixhawk4 通常可通过串口与机载电脑连接,以下是详细步骤:

1. 准备工作:确保机载电脑安装了Ubuntu系统,推荐使用Ubuntu20.04。同时安装好ROS(机器人操作系统)。还需安装mavros功能包,它是上位机与下位机进行mavlink通信的渠道,以及安装QGroundControl地面站用于调试Pixhawk参数。

2. 连接硬件:用Type - C数据线,一端连接Pixhawk,一端连接机载电脑。

3. 设置Pixhawk参数:打开QGroundControl地面站,在参数设置中搜索“serial”,将serial0_protocol改为mavlink1,serial0_baud波特率改为921600。

4. 确定串口名称:不要拔掉数据线,关闭QGroundControl地面站。在终端窗口运行

“ls /dev/”,找到飞控串口对应在机载电脑中的名称,可能是ttyACM0、ttyACM1、ttyUSB0或ttyUSB1等,记住该名称。我的是ttyTHS1

5. 修改启动文件配置:“    sudo gedit apm.launch   ”打开文件,修改对应的端口和波特率

检查其中的串口是否为刚才找到的串口名称,若不是则修改过来,同时将波特率修改为921600。

(<arg name="fcu_url" default="/dev/ ttyTHS1:921600" />)

修改完如下图:

6. 赋予串口权限:运行“  sudo chmod 777 /dev/ ttyTHS1  ”(根据实际串口名称修改),给串口赋予使用权限。

7. 启动mavros:运行“   roslaunch mavros apm.launch fcu_url:="/dev/ ttyTHS1:921600"   ”(根据实际串口名称修改),若mavros成功运行,说明连接成功。链接成功。

crwxrwxrwx 1 root dialout 188, 0 Jun 29 09:22 /dev/ ttyTHS1

如何永久赋予/dev/ ttyTHS1 端口永久最高权限:

1. 创建规则文件:

2. 添加规则(赋予所有用户读写权限):

KERNEL=="tty ttyTHS1", MODE="0666"

若需适配所有USB串口设备(如 ttyUSB0 、 ttyUSB1 等),可改为:

KERNEL=="ttyUSB[0-9]*", MODE="0666"

3. 保存并退出(按 Ctrl+X ,输入 Y ,回车)。

4. 应用udev规则

重启udev服务使规则生效:

sudo udevadm control --reload-rules

sudo udevadm trigger

补充说明

-  MODE="0666" 表示所有用户均有读写权限,若需限制权限,可改为 0660 (仅组内用户可读写),此时需确保用户在 dialout 组中。

- 若设备名称为 ttyACM0 (如Arduino设备),规则中的 KERNEL 需改为 KERNEL=="ttyACM0" 或 KERNEL=="ttyACM[0-9]*" 。

- 完成后可重新插拔USB设备,或执行 ls -l /dev/tty ttyTHS1 确认权限是否变为 crw-rw-rw- (对应 0666 )。

这样设置后, /dev/tty ttyTHS1 将永久拥有最高操作权限,无需每次使用时再执行sudo命令。

通过 MAVROS,ROS 与 Pixhawk 飞控的通讯链路得以打通,为无人船的自主航行、环境感知等高级功能提供了技术基础。从硬件连接的物理层,到 MAVLink 协议的链路层,再到 ROS 应用的应用层,每一层的精准配置都是通讯稳定的关键。随着无人船应用场景的拓展(如水质监测、水下暗管探测),这套通讯方案将持续为无人船的智能化升级提供核心支撑。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Oamv6l7Gsot0qsiLtuY4L4Nw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券