前言
本文针对双轮差动模型的底盘,简单描述里程计和IMU融合的方案。
1. 融合的输入信息
1.1 里程计信息
里程计得到的是原始的轮速信息,之后通过双轮差速模型转换得到车体线速度和角速度,假设:
- 车轮半径为: r r r,单位为m;
- 两轮之间的距离为: L L L,单位为m;
- 左车轮的轮速为: ω L \omega_L ωL,单位为rad/s;
- 右车轮的轮速为: ω R \omega_R ωR,单位为rad/s;
- 车体的运动线速度为 v v v,单位为m/s;
- 车体的运动角速度为 ω \omega ω,单位为rad/s。
下面给出一个简单的记住轮速和车速之间转换关系的方法:
- 考虑车体直行时,有:
v = ( ω L − ω R ) r 2 v=\frac{(\omega_L-\omega_R)r}{2} v=2(ωL−ωR)r - 考虑车体原地转圈时,有:
ω = ( ω L + ω R ) r L \omega = \frac{(\omega_L+\omega_R)r}{L} ω=L(ωL+ωR)r
1.2 IMU信息
- 陀螺仪三个轴的角速度: ω x , ω y , ω z \omega_x, \omega_y, \omega_z ωx,ωy,ωz
- 加速度计三个轴的加速度:
a
x
,
a
y
,
a
z
a_x, a_y, a_z
ax,ay,az
2. 融合的过程
由于里程计是通过测量轮子的转速从而得出运动线速度和角速度,因此其精度会收到轮子打滑的影响,即当车轮的运动是滑动和滚动结合的时候,通过车轮的转速计算得到的运动速度会有较大偏差,特别是在地砖、水泥地、地板、地毯等不同材质的地面上运动时,里程计给出的速度会有很大不同。为此,需要通过从IMU处获得的角速度和加速度信息对里程计速度进行修正。
由双轮差速模型中轮速和车速之间的转换关系可知,由于车轮的滑动带来的影响,会对车体的角速度测量造成较大影响,线速度的影响相对较小。
另一方面,IMU的加速度计需要积分才能得到速度测量值,其误差要比车体里程计测量得到的线速度测量值大得多。
因此一般采用如下原则进行两者的融合:
- 使用IMU的加速度计输出信息和轮速信息一起进行车体静态检测,在车体静态时估计陀螺仪的静态偏差;
- 直接使用陀螺仪的z轴角速度作为车体的旋转角速度;
- 使用里程计计算得到的线速度作为车体的运动线速度。
另外,如果车体平台有摄像头,可以使用视觉里程计(Visual Odometer)对车体运动进行检测。