目的是搭配深度相机发布的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
然而后面启动还是失败……八六快教我):