基于树莓派制作的6DOF IMU扩展板,可以直接插在树莓派上使用,这里代码分支包括有ROS上使用的软件包源码、linux下使用的源码、可以使用串口或者IIC接口获取数据

corvin 0fe314908f 更新README.md 3 lat temu
imu_tools a155276a92 删除导致无法正常编译的错误 4 lat temu
rasp_imu_hat_6dof 7f24a0e4f3 iic读取模块寄存器中数据时,改为一次性读取多个字节,不是读取多个寄存器每次读2字节,发布的四元素数据直接从imu中读取不是使用rpy自己计算的 3 lat temu
serial_imu_hat_6dof 51e664520a 更新README.md 3 lat temu
.gitignore 62a8e3c5f9 Initial commit 5 lat temu
README.md 0fe314908f 更新README.md 3 lat temu

README.md

rasp_imu_hat_6dof

为树莓派IMU扩展板创建的代码仓库,直接将该软件包源码放在ROS工作区src目录下即可。然后使用catkin_make就可以进行编译了。


使用串口发布IMU数据

当编译完成后可以使用如下命令启动发布imu数据:
roslaunch serial_imu_hat_6dof serial_imu_hat.launch
当启动上述命令后,可以在ROS中查看到如下话题和服务可以调用:

  • 发布imu数据的话题名: /imu_data
  • 发布imu模块温度的话题名: /imu_temp
  • 发布yaw角度的话题名: /yaw_data
  • 可将yaw角度归零的话题名: /yaw_zero_topic
  • 可将yaw角度归零的服务名: /yaw_zero_service
  • 可修改串口波特率的服务: /baud_update_service
  • 控制D0,D1,D2,D3输出数字高低电平的服务: /pin_outHL_service
    对于以上这些话题名和服务名,都可以在serial_imu_hat_6dof/cfg/param.yaml配置文件中进行修改.

如果想使用话题方式,将yaw角度归零,那就可以执行如下命令:
rostopic pub -1 /yaw_zero_topic std_msgs/Empty "{}"

如果想使用服务调用方式,将yaw角度归零,那执行如下命令:
rosservice call /yaw_zero_service "{}"

如果想修改串口通信的波特率,那就可以执行如下命令:
rosservice call /baud_update_service "index: 1"
这里需要注意index后面的数字,1表示更新波特率为9600,2表示为57600,3表示115200, 当更新完波特率后,需要修改本地配置文件中串口波特率为新的,否则会无法正常获取imu数据.

如果需要控制D0引脚输出高电平,那就可以使用如下命令:
rosservice call /pin_outHL_service "D0: 1
D1: 0
D2: 0
D3: 0"
这里可以看到D0后面的数字为1,那就表明D0引脚输出高电平.若想修改其他引脚的高低电平状态,那就修改D0,D1,D2,D3后面的对应数字即可.


使用IIC发布IMU数据

roslaunch rasp_imu_hat_6dof imu_data_pub.launch


在Rviz中显示查看IMU效果

roslaunch rasp_imu_hat_6dof imu_rviz_display.launch