什么是IMU?

什么是IMU

IMU 一般指6轴传感器,内部包含了3轴陀螺仪和3轴加速度计,3轴就是表示 XYZ 平面下的3个坐标轴。

3轴陀螺仪测量的是每个轴上面的角速度,精度一般为 °/s ,也就是按照这个趋势旋转,每秒钟能走过的度数。

3轴加速度计测量的是每个轴所受的重力加速度,比如传感器水平放置水平地面时,理论上只受到z轴负向的重力加速度,大小为9.8 m/s^2

什么是IMU?_第1张图片

现在的IMU内部基本都是两个传感器(陀螺仪 和 加速度计)堆叠在一起组成的,这样做是为了让这两个传感器的3轴重合。

图示IMU原理

️ 水平放置水平地面时,三轴方位图:

什么是IMU?_第2张图片

️ 传感器姿态发生变化时,三轴方位图:什么是IMU?_第3张图片

这里假设整个传感器经过了一次旋转,可以看陀螺仪还是在测量每个轴上的角速度,它并不关心当前的姿态,它反馈的是瞬时的物理量,陀螺仪积分出来的角度只是我们人为根据这个物理量的特性推导而来的。

而加速度计却有点差别,通过第一幅图可以看到,理论上,重力加速度在z轴的负半轴上,其在xy平面并没有分量,这时 xy轴 测得的重力加速度就是实际机器人在运动过程中产生的加速度,对它做二次积分,就可以得到理论上真实的位移。

而第二幅图地球重力加速度仍然垂直向下,但此时3轴姿态已经发生变化(不处在水平姿态),那么重力加速度就会在三轴上投影出长短不一的重力加速度分量,这个分量在二次积分时就会带来污染。但同时通过这个分量与三轴之间的关系,我们就可以推导出当前传感器相对于地理坐标系的姿态。

陀螺仪工程上使用

陀螺仪测量的是角速度,单位是 °/s ,若把他当成一个连续的曲线

什么是IMU?_第4张图片

绿色部分的面积就是连续时域下积分出的角度,这时最理想的情况下。

在实际应用中,我们获得的只能是离散的信号,想要通过离散信号来还原真实连续时域信号的曲线是不现实的,我们只能在固定的时间间隔下采样得到当前的角速度,并假设在这一小段△t中是匀速运动。

代码中的实现,最简单的办法就是累加

当前角度 += 当前角速度 * 采样时间间隔

这样也能得到基本的陀螺仪积分出来的角度。

陀螺仪零飘采集

通过上面的式子,我们大概能理解,从机器人上电就开始,直到关电后,这段时间都要不停的积分角度,那么如果传感器数据本身有问题的话,哪怕只是一点点问题,经过长时间的积分得到的累计误差都是非常惊人的。

陀螺仪上有一个非常常见的误差项,叫零飘和温漂

零飘就是机器人静止状态下,采集出来的角速度不是0,而是在某个值上下乱跳,去除零飘也很简单,就是在机器人刚上电后,采集1000帧陀螺仪原始数据,然后看这1000帧数据的方差和标准差,
方差小于阈值,代表在采零飘这段时间内,机器人基本保持静止。那么此时其标准差就是我们获取到的零飘。

什么是IMU?_第5张图片

我们在积分之前,将获取的原始数据减去零飘,然后再进行积分,那么就能大大减缓积分漂移的现象(仍不可避免)

什么是IMU?_第6张图片

温漂原理相同,项目中没考虑。

加速度计工程上应用

加速度计测量的是三轴线加速度,普通的消费级IMU,往往加速度计的高频噪声特别大,单独使用加速度计一般效果都比较糟糕。

误差类型:
轴间误差:上面我们看到,加速度计三轴间理论是严格互相垂直的,但实际的传感器是很难保证严格垂直安装,比如期望是90°,实际是88°,都是很常见的,这种误差统称为轴间误差。

尺度误差:这个是传感器内部测量不准,比如机器人朝Y轴以1m/s2的加速度超前走,实际传感器测量的可能是 0.8m/s2

这两个误差都可以通过椭球拟合或6面法标定,扫地机项目中未使用标定算法。

什么是IMU?_第7张图片

姿态融合

什么是IMU?_第8张图片
前面说了,陀螺仪可以积分得出姿态角度,加速度计可以通过3轴关系得到姿态角度
陀螺仪获得姿态角,短时间准确,长时间会漂移
加速度计获得姿态角,短时间震荡严重,长时间相对准确

那么把这两个传感器数据做融合,取长补短,就可以获得相对准确的姿态角:

目前项目用的是 Mahony 算法(自适应互补滤波器),我也用EKF融合试了下,效果都非常不错:
什么是IMU?_第9张图片

你可能感兴趣的:(机器人,IMU,姿态传感器,IMU)