ros 写node 存储数据到txt_ROS传感器之IMU实践

一.IMU接口类型

市面上比较常见的IMU器件,其接口是串口,但为方便与主机连接,一般提供出来的实际接口为USB接口,在linux系统下表现为/dev/ttyUSBx设备文件。

二.IMU ROS驱动获取

IMU器件与GPS不同,其raw数据并没有统一的标准,不像GPS遵守NMEA0184,所以不同IMU器件,其驱动是不同的。但是不要担心,有不少厂商直接提供了ROS驱动,可以到ros wiki查找或者厂家官网查找;如果没有提供,也可以通过对SDK进行ROS封装,得到ROS驱动。

三.microstrain_3dmgx2_imu文件结构

microstrain_3dmgx2_imu是microstrain公司为其3dmgx2型号的IMU提供的ros驱动包,使用C++实现。3dmgx2可以测量三轴加速度,三轴角速度以及朝向。此包提供一个节点:/microstrain_3dmgx2_node,用于接收,解析发布imu数据。

执行以下指令:

mkdir -p src/drivers/imu/
cd src/drivers/imu/
git clone  ros-drivers/microstrain_3dmgx2_imu
cd microstrain_3dmgx2_imu/
tree -L 3

执行结果如图

009242e60972c249dcd1549a42524e43.png

http://sdmgx2.cc和2dmgx2.h为imu的sdk,imu_ros_interface.cpp和imu_ros_interface.h是对imu sdk的ros封装,imu_ros_node.cpp是主函数,这三个文件构成了ros驱动。get_id.cpp为测试程序,可以不用管。microstrain_3dmgx2.launch为启动节点的launch文件。srv目录下的AddOffset.srv文件,为节点实现服务的数据类型。对于其他只提供sdk的传感器,也可以参考这种目录设计ros驱动。

四. microstrain_3dmgx2_node节点

microstrain_3dmgx2_node节点从串口读入数据,根据3DM-GX2协议解析,并填充sensor_msgs/Imu结构,发布ros话题:/diagnostics,/imu/data,/imu/is_calibrated。

1. 节点入口

节点入口文件为imu_ros_node.cpp,内容如下:

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值