IMU芯片在使用上可以分为硬件和软件两个方面。
1、硬件上:IMU芯片就是配置寄存器。一般情况下,可以分别通过配置IMU寄存器,来选择加速度计和陀螺仪的量程,量程越大,则精度越差。
也可以配置IMU芯片与主机的通信方式,有I2C,也有SPI等。一般I2C比SPI的速率慢很多,对于实时性要求高的场景,可能会使用SPI通信。有些IMU还可以配置使用FIFO,配置使用数据频率,配置内部滤波等等。
2、软件上:就是读取IMU芯片数据之后的处理。一般来讲,加速度计积分的速度,速度积分的位置。对于普通IMU来说,二次积分后的位置偏移很大,且随时间增长,误差越大。陀螺仪输出得角速度积分的角度,为了避免万向角,一般使用四元素积分求姿态。
不同公司的IMU芯片是:
1、ADI:ADI 公司的 MEMS IMU 传感器以多轴方式组合精密陀螺仪、加速度计、磁力计和压力传感器。
ADI 可以可靠地检测并处理多个自由度(DoF) 即便是极为复杂的应用和动态环境下。 这些即插即用型解决方案包括完整的出厂校准、嵌入式补偿和传感器处理以及简单的可编程接口。
2、博世:博世的 IMU 模块主要应用于无人机和机器人,以及一些消费类的产品中。博世将两个 3 轴 MEMS 传感器集成到一个封装中。
IMU 中的加速度传感器和陀螺仪的组合可以满足高级消费电子应用的需求,例如智能手机中的游戏控制台或游戏应用。
3、ST:与分立式 MEMS 产品相比,ST 的 IMU 集成了互补型传感器,可提供更紧凑,坚固且易于组装的解决方案。系 ST 的统级封装(SiP)将加速度计。
陀螺仪和磁力计结合在一个单片 6 轴或 9 轴解决方案中。多个传感器输出的集成使运动传感系统达到最苛刻应用所需的精度水平,例如增强的手势识别,游戏,增强现实,室内导航和基于本地化的服务。
参考:https://blog.csdn.net/qq_41839222/article/details/86552367
由于本人项目需要使用到深度信息,因此运行rs_rgbd.launch,其中有与RGB图像对应好的深度图。参考上述文档,并且采集数据发现,realsense d435i在ROS中发布的IMU数据的两个部分:“/camera/gyro/sample” 、“/camera/accel/sample” ,时间戳以及频率都不一致,因此参考上blog,对IMU信息进行处理。将包含unite_imu_method的行都copy进去。
一样的方法,处理之后:rostopic echo /camera/imu 结果如下
---
header:
seq: 1102
stamp:
secs: 1596797416
nsecs: 925977468
frame_id: "camera_imu_optical_frame"
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 0.0
orientation_covariance: [-1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
x: 0.0
y: -0.00523598771542
z: 0.0
angular_velocity_covariance: [0.01, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.01]
linear_acceleration:
x: 0.304006129503
y: -9.32612419128
z: -0.245166242123
linear_acceleration_covariance: [0.01, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.01]
---
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)