README.md 1.8 KB

代码仓库介绍

该仓库为 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