惯性导航系统(Inertial Navigation System,Ins),顾名思义,是利用惯性定律,来进行位姿推算的导航系统。其基本原理是:通过对加速度进行积分,算得速度,再对速度进行积分,来计算位置。应用该技术的场景,上至云霄,下至沧海,军用的航天、导弹、潜艇是最早的应用领域,民用的无人机、机器人,到如今很火的无人驾驶,也都离不开惯导系统。
1
Bug奇遇记
故事的开始要从惯导系统的重要组件IMU说起,即惯性测量单元(Inertial Measurement Unit,IMU)。它的功能说来简单,就是测量角速度和线加速度,这两个量都有XYZ三个方向的分量,所以IMU的输出就是 2x3 = 6个数字。
笔者最近有幸在开发一款IMU传感器的驱动程序,写完代码过后,自然想要去确认下刚才写的Bug是不是货真价实。于是乎,我把IMU传感器,放在静静的桌子上,在程序里庄严地按下了Start。我心里想,输出的6个数据应该都是0左右,毕竟,既没有移动,也没有转动。
但是结果却出乎我的意料,这些数据中有5个是零,但是Z轴加速度在9.8m/s²附近波动。
我很快意识到应该不是我写的Bug,9.8是重力加速度,当时直接告诉了旁边的同学:“这传感器出了点问题啊,它怎么认为自己在跳楼呀!”。直到钱先生告诉我,正常的IMU都是能感受到重力加速度的,才打消了弄坏设备的顾虑。
但到这里我的心中涌起两个疑惑:
- 即使受到重力,那也应该是向下的加速度,而Z轴的正方向应该朝上,这样输出的值应该是负的,而不是+9.8。
- 明明是测加速度的设备,为什么不能想办法把重力补偿掉呢?这样才能直接推算速度对吧。
作为本能的反应,先看看是不是自己弄错了,我去查了Datasheet,确认了Z轴定义的方向的确是朝上的。
2
IMU原理初探
为了一探究竟,只能从IMU的测量原理入手了,这里的疑问在于线加速度的测量,所以主要探究加速度计的原理。仔细一查,人们为了测量加速度,真是想了好多种方法,分类都是个麻烦事儿。按测量原理就可以分为压电、振弦、振梁、光学和摆式等,按系统测量形式,又可以分为开环测量和闭环力平衡式,还有很多分类方式就不多提了。
简易的加速度计可以用弹簧测力计来做,如图所示。以整个装置作为惯性系,物体m会受到惯性力,首先测量出力 F ,就能算出惯性系的加速度 a = -F/m 。
而近年来发展比较热门和常见的是采用MEMS技术(Micro-Electro-Mechanical System),一种典型的结构如下图所示,捕获惯性力的方式类似于弹簧测力计,只不过弹簧的材料变成了电极。
因长得比较像梳子,这种结构又称为梳齿式电容加速度计。ADI公司于1989年开始研究这种结构,1993年发布面向汽车应用的梳齿式电容加速度计,测量范围为±50g。
根据著名的麦克斯韦方程组,当“梳齿“足够长,且电极间距足够小时,可忽略边缘效应,推得
其中,d是电极间距,A是电极板面积,ε是介电常数。
加速度会导致可移动电极的位移,通过测量电容的变化,即可推算出位移的大小,并最终计算出加速度大小。当设备向上加速时,可移动电极会向下位移,反之亦然。
从这个图可以看出,电极也是物体,同样会受到重力,在静止状态下,自然会偏离平衡位置而向下位移,而对于传感器来说,这个位移会让其判断自己在向上加速。
至此,IMU测到的加速度是+9.8m/s²,总算有了合理的解释。重力和检测到的加速度方向相反,这就类似于,惯性系的加速度和惯性力的方向是相反的。
3
仰望相对论
还剩下第二个问题,重力的影响有没有办法被补偿掉呢,不计成本的那种?比如专门找个设备去测重力,再把这部分影响补偿掉,毕竟我们想测量的是运动学的加速度!
很遗憾,爱因斯坦在100多年前就给出了否定的答案,断了我们的念想,在广义相对论中提出了 弱等效原理 :
在局部区域内,引力和惯性力,无法区分;
也可以描述为,引力场和加速场,无法区分力学效应。
只要有引力质量m**G等于惯性质量m I ,任何动力学方法都无法分辨引力和加速场的动力学效应。这个结论很抽象,爱因斯坦提出了一个著名的思想实验,来帮助人们理解这件事情:
在宇宙深处,有一个密封的宇宙飞船,在+z方向加速,其加速度为9.8 m/s²。飞船内有一位宇航员,手里拿着一个苹果,他感受到苹果有重量,同时也感受到自己有重量,他认为有两个可能:
- 飞船在+z方向加速,周边没有任何的星球的引力场,由于惯性力的缘故,他感受到了苹果和自身有下坠的倾向。
- 飞船是静止的,停在一颗行星上(比如地球),引力场的强度是9.8N/kg,是万有引力要拉他和苹果下坠。
这位宇航员如果不打开窗看看外面精彩的世界,他就没有办法判断是上述的哪一种情况。
早在伽利略牛顿时期,就通过实验断定了引力质量和惯性质量相等,不过只是把它当成一种神奇的巧合。换言之,IMU传感器从古至今都没有任何办法区分重力和加速度。
4
最后的思考
所有的疑惑总算烟消云散,那既然IMU没有办法区分重力和加速度,那有没有办法将重力为我所用呢?
事实上人们也这么做了,在完全静止的条件下,IMU只能感受到重力,将已知的重力加速度作为参考,是一些IMU内参标定的重要方法。
将设备旋转到一些特定的角度,只要转台的角度是足够精密的,就可以算出xyz三个轴方向的“加速度”真值,进而完成内参标定和校正。
除了用于IMU本身的标定,还有很多用法,例如可以用于水平校准,而在一些SLAM算法中,通常会根据重力的方向,来初步判断地平面可能的方向。
-
传感器
+关注
关注
2546文章
50498浏览量
751195 -
加速度计
+关注
关注
6文章
696浏览量
45835 -
MEMS技术
+关注
关注
0文章
140浏览量
21106 -
IMU
+关注
关注
6文章
297浏览量
45646 -
惯性导航系统
+关注
关注
1文章
22浏览量
5349
发布评论请先 登录
相关推荐
评论