该仓库为 mini 6DOF IMU 模块的 ROS2 Humble 驱动代码,包含两种读取方式:
serial_6dof_imu:通过串口读取 IMU 数据,发布 sensor_msgs/msg/Imu、yaw/pitch/roll/temp 话题,并提供 yaw 归零、读取 yaw、设置 IIC 地址服务。iic_6dof_imu:通过 IIC 读取 IMU 数据,发布 sensor_msgs/msg/Imu、yaw/pitch/roll 话题,并提供读取 yaw 服务。rviz_display_6dof_imu:启动 RViz2 加载 IMU 可视化配置。将仓库放在 ROS2 工作区的 src 目录下:
cd ~/ros2_ws
colcon build --packages-select serial_6dof_imu iic_6dof_imu rviz_display_6dof_imu
source install/setup.bash
运行 IMU 前可执行脚本将 USB 串口映射为 /dev/mini_imu:
sudo ./initdev_mini_imu.sh
串口方式:
ros2 launch serial_6dof_imu serial_6dof_imu.launch.py
IIC 方式:
sudo apt install python3-smbus
ros2 launch iic_6dof_imu iic_6dof_imu.launch.py
RViz2 显示:
ros2 launch rviz_display_6dof_imu rviz_display_6dof_imu.launch.py
RViz2 的 IMU 显示依赖 ROS2 版 rviz_imu_plugin。如果系统未安装,可先安装:
sudo apt install ros-humble-imu-tools
ros2 service call /serial_imu_service/setYawZero_service serial_6dof_imu/srv/SetYawZero
ros2 service call /serial_imu_service/getYawData_service serial_6dof_imu/srv/GetYawData
ros2 service call /serial_imu_service/setIICAddr_service serial_6dof_imu/srv/SetIICAddr "{address: '0x50'}"
ros2 service call /iic_imu_service/getYawData_service iic_6dof_imu/srv/GetYawData
旧 ROS1 第三方源码 imu_tools/ 已从仓库中移除。Humble 环境请直接使用官方发布的 ros-humble-imu-tools。