> 技术文档 > 无人机机载电脑如何与飞控链接(mavros与PX4链接通讯)_mavros连接飞控

无人机机载电脑如何与飞控链接(mavros与PX4链接通讯)_mavros连接飞控

Pixhawk4 通常可通过串口与机载电脑连接,以下是详细步骤:
 
1. 准备工作:确保机载电脑安装了Ubuntu系统,推荐使用Ubuntu20.04。同时安装好ROS(机器人操作系统),建议安装ROS Noetic版本。还需安装mavros功能包,它是上位机与下位机进行mavlink通信的渠道,以及安装QGroundControl地面站用于调试Pixhawk参数。
2. 连接硬件:用Type - C数据线,一端连接Pixhawk,一端连接机载电脑。
3. 设置Pixhawk参数:打开QGroundControl地面站,在参数设置中搜索“serial”,将serial0_protocol改为mavlink1,serial0_baud波特率改为921600。
4. 确定串口名称:不要拔掉数据线,关闭QGroundControl地面站。在终端窗口运行

ls /dev/

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

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

roscd mavroscd launchsudo gedit px4.launch

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

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

修改完如下图:

6. 赋予串口权限:运行“  sudo chmod 777 /dev/ttyUSB0  ”(根据实际串口名称修改),给串口赋予使用权限。
7. 启动mavros:运行“   roslaunch mavros px4.launch fcu_url:=\"/dev/ttyUSB0:921600\"   ”(根据实际串口名称修改),若mavros成功运行,说明连接成功。链接成功。

ls -l /dev/ttyUSB0

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

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

1. 创建规则文件:

sudo vim /etc/udev/rules.d/99-ttyusb-permissions.rules

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

KERNEL==\"ttyUSB0\", 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/ttyUSB0 确认权限是否变为 crw-rw-rw- (对应 0666 )。
 
这样设置后, /dev/ttyUSB0 将永久拥有最高操作权限,无需每次使用时再执行sudo命令。

心愿下载网