本文介紹以imu估算在動態條件下進行翻滾和俯仰姿態的基本物理和數學…
測量一個平臺的動態翻滾(roll)和俯仰(pitch)角度,對于各種不同的應用都十分有幫助。典型的例子之一是飛機的垂直陀螺儀或姿態儀,能夠為飛行員在空中操作飛機時提供相對于地平線的參考。最近,越來越多的動態傾斜應用開始出現在無人機、機器人和自動駕駛車系統中。
本文介紹使用慣性測量單元(imu)估算在動態條件下翻滾和俯仰的基本物理學和數學,并提供可用的開放源程序碼參考,可用于在aceinna的openimu平臺上實現數學計算。
保持平衡,別傾倒了…
測量傾斜的首要也是最基本的方法是進行液位(liquid level)測量,例如木匠師傅采用水平測量工具。想想看,這其實只是對于地球引力的簡單加速度測量。
液位是靜態重力加速度的簡單測量(來源:aceinna)
imu中的三軸加速度計可以在靜態條件下直接測量該響應。這種測量的靜態精確度通常受到整個加速度計偏置精確度的影響,包括溫度效應。
靜態翻滾和俯仰測量的完整數學計算如下所示。此數學計算方式建置在稱為‘leveler’的簡單aceinna openimu應用程序中。您可以從此來源的aceinna openimu下載并安裝該程序代碼,也可以使用aceinna developer website和編譯程序代碼將其上傳至openimu。
使用imu進行靜態傾斜的方程式簡介(來源:aceinna)
當然,問題在于加速度計如何響應平臺的傾斜,以及平臺的線性加速度,如下圖所示。再者,光是使用加速度計,也不太可能區分出上述兩者。
在動態條件下基于加速度的傾斜測量誤差(來源:aceinna)
值得慶幸的是,imu內建一個三軸速率陀螺儀(或陀螺儀),可以響應三軸中每個軸的角度變化率。簡單的偏斜率示例如下圖。關于角速率陀螺儀的好消息是它并不會直接響應線性加速度或線性運動;壞消息則是將角速率轉換為角度的過程涉及積分,將會因為陀螺儀的偏置和噪聲而隨時間漂移。此外,陀螺儀并沒有實際的水平測量值,因而無法確定絕對水平,如氣泡水平儀或是基于加速度的重力測量等。
角速率陀螺儀測量角度的變化率(來源:aceinna)
當然,下一步是將兩種測量形式結合于一個解決方案中。加速度計用于作為靜態水平的長期參考;即「垂直」。這一數據與姿態變化的「陀螺儀」測量值融合,為整體提供精確且無漂移動態響應。這種「垂直+陀螺儀」的經典傳感器融合,是飛機「垂直陀螺儀」來源的基礎。在實作中進行這種測量的一種好方法是使用四元數更新,沿著卡爾曼(kalman)濾波器將角速率傳播到姿態。該數學計算方式如下:
以imu實現動態姿態的卡爾曼濾波等式(來源:aceinna)
就像靜態水平儀程序代碼一樣,aceinna的開放來源openimu平臺提供了上述數學計算的高性能調諧建置。只需安裝適于visual studio code的aceinna extension,然后點選「客制imu示例」(custom imu examples)。動態傾斜應用程序稱為‘vg_ahrs’,還包括使用板載磁力計以及硬/軟鐵補償,以實現動態穩定航向測量。
當然,我還是一如往常地歡迎你的評論與提問。
(原文發表于aspencore旗下edn姐妹媒體eetimes,參考鏈接:,編譯:susan hong)
來源:中華網
以上是網絡信息轉載,信息真實性自行斟酌。