IMU的数据

August 21, 2025 作者: funnywii 分类: 算法 浏览: 3 评论: 0

我一个做感知的威森莫要用IMU...

昨天想获取Unitree GO2的IMU数据,跑官方SDK的时候,忘记修改底层代码,导致发送了一些控制命令,狗突然就动了起来,差点把狗搞坏,险些让我“曾经有一份工作”,至今心有余悸。

GITHUB上似乎没有现成的获取GO2 IMU数据的代码,自己采集成功之后开源了一个。FunnyWii/Unitree-Go2-IMU-Subscriber: Subscribe Unitree Go2 Robot IMU data using Unitree C++ SDK ,感谢马斯克开源。

IMU组成

IMU分类

IMU (Inertial Measurement Unit),惯性测量单元, 一般分类6轴和9轴,采样率在100Hz以上。

6轴IMU包含3轴陀螺仪和3轴加速器计,陀螺仪可以获取绕XYZ三轴角速度,加速度计可以获取三轴的加速度。系统初始状态下Yaw为0°,没有绝对角度输出。

9轴IMU包含3轴陀螺仪,3轴加速器计和3轴磁力计,磁力计可以获取到XYZ三轴的朝向。相比6轴IMU,9轴的可以减少累计误差,减轻漂移现象,但是容易受到磁场和带磁力金属的干扰。系统初始状态下,Yaw有绝对值,但是角度需要校准,且容易收到电磁干扰。

陀螺仪

陀螺仪用于获取系统的角速度,单位一般为 ​rad/s

在知道系统初始方向的情况下,对角速度进行积分,即可得到当前时刻的方向。

当模块水平放置时,陀螺仪三轴输出为 ​[0,0,0]

6轴IMU的Yaw角会飘移,上电后一般需要静止1s来纠正零偏;9轴IMU在经过校准后,在无磁力干扰的环境下可以输出稳定无飘移的航向角。

加速度计

原理是牛顿第二定律:​a=\frac{F}{m} 获取物体的线加速度,单位一般是 ​m/s^2

通过对线加速度进行积分,可以得到线速度,但是这个误差会非常大。

当模块水平放置时,加速度三轴的输出为 ​[0,0,g]

磁力计

通过测量磁场,能够确认物体的绝对朝向,但是非常容易收干扰,而且需要校正。

IMU噪声

  1. 陀螺仪随机飘移

ARW (Angular Random Walk):在无外部参考时,陀螺仪在时间上产生的飘移。

  1. 加速度计随机噪声

VRW (Velocity Random Walk):在没有外部加速度时,加速度计的噪声。

参考文章

[1] Inertial measurement unit - Wikipedia

[2] IMU模块中的一些基本概念和常见问题 - 知乎

[3] 什么是惯性传感器(IMU ) - 知乎

#ROS(9)#C++(28)

评论