无人机 · 2026年 2月 4日 0

Jetson Orin NX(Ubuntu 22.04,ROS2 Humble)部署MAVROS发布飞控IMU话题记录

目的是搭配深度相机发布的RGB-D做视觉惯性里程计,噢耶。因为便宜相机没有自带的imu,噢恼。

接线

以Pixhawk 6c mini为例(固件版本是1.16.0),飞控的telem1给数传了,所以用telem2。只需要用pin2、3、6,压接到Jetson上的6、8、10号针脚,其中GND互接,TX和RX反接,即飞控的TX输出接板子的RX输入,飞控的RX反之。

用QGC给飞控设置参数,SER_TEL2_BAUD设置为921600 8IN1(好像是默认的?)。

为了让Jetson能正常访问串口,还需要把当前用户添加到dialout组中:

sudo usermod -a -G dialout $USER

MAVROS

需要配置飞控参数如下:

mavros安装:

sudo apt install ros-humble-mavros ros-humble-mavros-extras

mavros启动(默认启动,会搞出一堆话题、服务):

ros2 launch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600

IMU和姿态消息频率修改,前者影响data_raw的发布频率,两者均修改才能改变/mavros/imu/data的频率:

ros2 service call /mavros/set_message_interval mavros_msgs/srv/MessageInterval "{message_id: 105, message_rate: 100.0}"  # 105:HIGHRES_IMU

ros2 service call /mavros/set_message_interval mavros_msgs/srv/MessageInterval "{message_id: 31, message_rate: 100.0}"  # 31:ATTITUDE

检查频率:

ros2 topic hz /mavros/imu/data
ros2 topic hz /mavros/imu/data_raw

输出一百左右的频率就ok了,可以用飞控处理好的/mavros/imu/data作为ratb的imu_topic输入。

下一篇记录SLAM定位、记录路径和保存环境点云之类的大概)))))))):

附录:XRCE功能包尝试(放弃,搞不出来)

cd到具体ros2项目的src目录,git两个功能包仓库,指定humble分支:

git clone -b humble https://github.com/micro-ROS/micro_ros_msgs.git
git clone -b humble https://github.com/micro-ROS/micro-ROS-Agent.git

需要先编译msgs包

# 先更新依赖
rosdep install --from-paths src --ignore-src -y
colcon build --packages-select micro_ros_msgs
source install/local_setup.bash

再编译全部代码(或者就编译micro_ros_agent):

colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release

然而后面启动还是失败……八六快教我):