### 代码仓库介绍 该仓库为 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` 目录下: ```bash 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`: ```bash sudo ./initdev_mini_imu.sh ``` ### 启动 串口方式: ```bash ros2 launch serial_6dof_imu serial_6dof_imu.launch.py ``` IIC 方式: ```bash sudo apt install python3-smbus ros2 launch iic_6dof_imu iic_6dof_imu.launch.py ``` RViz2 显示: ```bash ros2 launch rviz_display_6dof_imu rviz_display_6dof_imu.launch.py ``` RViz2 的 IMU 显示依赖 ROS2 版 `rviz_imu_plugin`。如果系统未安装,可先安装: ```bash sudo apt install ros-humble-imu-tools ``` ### 常用服务 ```bash 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`。