慣性導航系統(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/s2附近波動。
我很快意識到應該不是我寫的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/s2,總算有了合理的解釋。重力和檢測到的加速度方向相反,這就類似于,慣性系的加速度和慣性力的方向是相反的。
3
仰望相對論
還剩下第二個問題,重力的影響有沒有辦法被補償掉呢,不計成本的那種?比如專門找個設備去測重力,再把這部分影響補償掉,畢竟我們想測量的是運動學的加速度!
很遺憾,愛因斯坦在100多年前就給出了否定的答案,斷了我們的念想,在廣義相對論中提出了 弱等效原理 :
在局部區域內,引力和慣性力,無法區分;
也可以描述為,引力場和加速場,無法區分力學效應。
只要有引力質量m**G等于慣性質量m I ,任何動力學方法都無法分辨引力和加速場的動力學效應。這個結論很抽象,愛因斯坦提出了一個著名的思想實驗,來幫助人們理解這件事情:
在宇宙深處,有一個密封的宇宙飛船,在+z方向加速,其加速度為9.8 m/s2。飛船內有一位宇航員,手里拿著一個蘋果,他感受到蘋果有重量,同時也感受到自己有重量,他認為有兩個可能:
- 飛船在+z方向加速,周邊沒有任何的星球的引力場,由于慣性力的緣故,他感受到了蘋果和自身有下墜的傾向。
- 飛船是靜止的,停在一顆行星上(比如地球),引力場的強度是9.8N/kg,是萬有引力要拉他和蘋果下墜。
這位宇航員如果不打開窗看看外面精彩的世界,他就沒有辦法判斷是上述的哪一種情況。
早在伽利略牛頓時期,就通過實驗斷定了引力質量和慣性質量相等,不過只是把它當成一種神奇的巧合。換言之,IMU傳感器從古至今都沒有任何辦法區分重力和加速度。
4
最后的思考
所有的疑惑總算煙消云散,那既然IMU沒有辦法區分重力和加速度,那有沒有辦法將重力為我所用呢?
事實上人們也這么做了,在完全靜止的條件下,IMU只能感受到重力,將已知的重力加速度作為參考,是一些IMU內參標定的重要方法。
將設備旋轉到一些特定的角度,只要轉臺的角度是足夠精密的,就可以算出xyz三個軸方向的“加速度”真值,進而完成內參標定和校正。
除了用于IMU本身的標定,還有很多用法,例如可以用于水平校準,而在一些SLAM算法中,通常會根據重力的方向,來初步判斷地平面可能的方向。
-
傳感器
+關注
關注
2548文章
50740瀏覽量
752147 -
加速度計
+關注
關注
6文章
699瀏覽量
45865 -
MEMS技術
+關注
關注
0文章
141瀏覽量
21116 -
IMU
+關注
關注
6文章
298瀏覽量
45679 -
慣性導航系統
+關注
關注
1文章
22瀏覽量
5360
發布評論請先 登錄
相關推薦
評論