隨著MEMS慣導器件的發展和普及,越來越多慣導領域之外的同行開始使用MEMS IMU。一些IMU前端數據采集環節往往會被忽視,例如IMU的數據采樣率和時間同步問題。這些細節看似無傷大雅,但卻足以造成我們的系統設計從底層深刻地傷害MEMS慣導的推算能力!因此有必要及時澄清。
MEMS 技術的飛速發展使得慣性導航系統(INS,簡稱慣導)不再是“價格昂貴”的代名詞,基于低成本MEMS IMU(慣性測量單位)的GNSS/INS組合導航系統已經被廣泛應用于智能手機、車載導航終端、移動機器人、旋翼無人機等智能設備的導航定位中。作為一種運動測量傳感器,IMU的數據采集直接決定了INS的精度和動態響應性能上限;而在進行GNSS和INS數據融合時,兩者的時間同步精度也直接影響著組合導航系統的最終導航定位精度。然而,許多組合導航系統的開發者沒有意識到IMU數據采集和時間同步的重要性,沒有認真對待,從而限制了IMU性能的發揮,損失了組合導航系統應有的精度。針對行業內組合導航系統開發存在的這一常見問題,我們將分兩期描述和澄清GNSS/INS組合導航系統中的數據采集和時間同步這兩個關鍵點。
我們將以工業級MEMS IMU模塊(ADI的ADIS16465)和消費級MEMS IMU芯片(InvenSense的ICM20602)為例,介紹如何科學嚴謹地進行IMU 數據采集以符合導航定位要求,以及如何科學嚴謹地進行IMU與其它導航定位傳感器的時間同步。由于涉及到若干技術細節需要交代和解釋,因此本文篇幅較長。不關心細節的讀者可直接跳到文末看總結出的要點。
一般來說,消費級MEMS芯片僅能輸出速率形式的測量值,對應陀螺輸出的是角速度(常用單位為deg/s),加速度計輸出的是加速度(嚴格說應該是比力,常用單位為m/s2或g)。對于工業級MEMS模塊而言,除了能夠輸出速率形式的測量值以外,有些還能夠輸出增量形式的測量值,對應陀螺輸出的是角度增量(deg),加速度計輸出的是速度增量(m/s)。
事實上,離散化后的INS機械編排解算,需要的正是增量形式的測量值。因此,如果IMU提供增量形式的測量值,我們推薦直接使用;否則,我們需要人為地將速率形式的測量值轉為增量形式。一般地,在采樣率足夠的情況下,可以使用前后兩個IMU歷元的速率測量值的平均值乘上時間間隔(梯形積分),即可得到對應區間的增量測量值。
MEMS IMU內部的原始采樣頻率一般都大于1000Hz,例如:ADIS16465的原始采樣頻率為2000Hz;ICM20602的陀螺最高采樣率為8000Hz,加速度計為4000Hz。按照奈奎斯特采樣定理,IMU數據的原始采樣頻率必須高于載體動態頻率范圍(即信號帶寬)的兩倍,但實際工程應用中一般取5~10倍。而對于IMU采樣,為了確保不因為離散化采樣的信息損失而對慣導精度造成任何傷害,往往會采用10~20倍(甚至更高)的原始采樣率。因此,只要條件允許,IMU的原始采樣率應直接使用該器件的最高采樣率,具體取決于載體動態情況,對于車載不能低于200Hz。當然,后續的慣導解算環節不可能也沒必要采用這么高的數據率,因此就需要在高頻采集IMU原始數據后,以合理的方式盡快降采樣到一個合適的數據率(見1.3節),包括將數據格式轉化成慣導算法所需的增量形式(如1.1節所述)。
MEMS IMU原始采樣率要足夠高,然而考慮到計算資源的消耗,一般并不會以這么高頻率進行慣導解算。為此需要對高頻率的IMU原始數據進行降采樣,以得到低頻率的IMU數據。降采樣的方式按照IMU輸出數據類型而異:對于速率形式的采用平均降采樣的方式實現,而對增量形式的則采用累加降采樣。這里值得指出的是,對于很多工業級MEMS模塊而言,可以直接對其進行合理的參數配置即可輸出降采樣后的IMU數據;然而,對于消費級MEMS芯片,一般不具有這樣的功能,用戶需要自己采集高頻率的原始數據,再在解算前進行對應的降采樣處理。具體描述如下:
工業級MEMS IMU模塊,都是為專業的導航或測量應用設計,因此往往既可以直接輸出高頻率的原始IMU數據,也可以根據用戶的需要配置輸出降采樣之后的IMU數據。例如:ADIS16465有一個平均/降采樣濾波器(Averaging/Decimating Filter,如圖1所示),用戶可以配置降采樣的參數,從而將2000Hz的原始IMU數據平均降采樣為低頻率的數據。例如:配置降采樣寄存器值(DEC_RATE)為9,則輸出頻率為2000Hz/(9+1)=200Hz。
圖1:ADIS16465平均/降采樣濾波器
如果配置MEMS IMU輸出增量形式的數據,那么其內部同樣是使用了所有的高頻原始IMU數據降采樣后輸出低頻增量形式測量值。圖2給出了ADIS16465的陀螺角度增量降采樣輸出的計算公式,對于加速度計的速度增量其形式相同?;舅悸肪褪怯嬎闱昂髢蓚€原始速率測量值的均值,除以采樣頻率(或乘以采樣間隔)得到增量值,然后累積降采樣區間內的所有值,最終輸出區間內的增量測量累積值。
圖2:ADIS16465增量角輸出計算公式
對于消費級MEMS IMU芯片而言,一般無法通過參數配置在芯片內部進行平均降采樣,因此需要采集原始高頻IMU數據后,再在數據采集環節進行平均降采樣處理。對于一般的嵌入式系統而言,采樣頻率過高意味著更高的通信接口負載,因而原始采樣頻率也不能過高,對于ICM20602,陀螺和加速度計數據的原始采樣頻率可取1000Hz。得到原始的高頻率IMU數據后,我們再對其進行平均降采樣處理,同時轉化為增量形式,最后輸出低頻率的IMU數據,并以此頻率的IMU數據進行慣導解算。
前面講到,IMU原始采樣率應該要足夠高(至少應該是被測信號帶寬的10~20倍),再通過平均降采樣的方式得到低頻的IMU測量值。但是,即使是這種合理的降采樣方式也是有限度的,那么降采樣到多少Hz合適呢?在GNSS/INS組合導航實測數據處理中,仿真GNSS短期中斷(例如1~2分鐘),考察定位漂移誤差的統計值,即可定量評估組合導航的內在精度水平 [Niu Xiaoji, 2010],該方法可被用于確定某種載體在某種運動條件下能夠接受的最低IMU降采樣輸出頻率。例如:針對旋翼無人機載體,GNSS仿真中斷實驗結果表明,在IMU原始采樣率足夠的前提下(相對于無人機的旋翼抖動頻率而言),采用平均降采樣方式最多可以降低IMU輸出頻率至20~25Hz而不會對組合導航精度產生影響 [蔡磊等,2016];而對于車載或者輪式機器人載體而言,由于其運動更平穩,因此IMU降采樣后的數據率可以低至5~10Hz。需要強調的是,為了準確評估某種載體在某種運動軌跡下的IMU降采樣后的最低數據率,最嚴謹的方式仍然是通過模擬GNSS中斷的方式,評估不同數據率下的位置漂移誤差統計值有沒有明顯惡化,具體問題具體分析。
MEMS IMU中除了有前述平均/降采樣濾波器外,還有為了對原始信號進行降噪的低通濾波器(例如ADIS16465中的FIR濾波器),它會造成數據的延遲,進而傷害慣導推算性能,應該被禁用。事實上,INS機械編排算法內部帶有積分環節,本身就具有極強的低通濾波效果 [Yalong Ban, 2013],因此對IMU原始數據進行低通濾波降噪是完全沒有必要的。如果這種濾波器是默認必選,則應當將其帶寬(Cut-off frequency)配置到最高,從而最大限度地減少濾波造成的時滯效應。
本節我們以市場上兩款常用的產品為例,對MEMS IMU的數據采集進行了詳細介紹,相關要點總結和補充如下:
1. IMU原始采樣率要足夠高,必須充分滿足采樣定律,即達到載體動態頻率的10~20倍,越高越好;
2. 可以通過平均降采樣的方式(而不是抽樣方式),將高頻率的IMU原始數據降低至慣導解算的數據率;而慣導解算的最低數據率是以不影響該GNSS/INS組合導航系統的精度為限的;
3. 不要使用低通降噪濾波器,如果無法禁用,則應配置最高的帶寬(Cut-off frequency);
4. IMU數據需保留最長的有效位數,切勿隨意截??;
5. IMU數據讀取的優先級要有所保障,以免造成IMU數據采集間隔不穩定甚至丟數;IMU數據必須保證連續穩定的采集(例如:對于普通車輛載體,不允許出現連續0.1s的丟數現象,且出現丟數時要有標記;IMU數據的丟數率和壞數率均應小于1e-5)。
前一節中,我們介紹了IMU數據采集過程的注意事項,明確了保證導航性能的幾個要點。在將MEMS IMU用于GNSS/INS組合導航系統時(或者其它任何組合導航系統),另一個關鍵步驟是進行GNSS接收機和IMU之間的時間同步。這里請注意,我們所說的時間同步是指不同傳感器的數據都打上共同的時標(即采用統一的時間系統),而不是指所有傳感器都同步采樣(即采樣時刻對齊)。傳感器同步采樣一方面很難落實,另一方面也沒有必要,因為多傳感器的不同步采樣可以通過組合導航算法中慣導的時間傳遞(即狀態轉移)作用來解決。
GNSS接收機本身就具備高精度授時的功能,GNSS數據都天生具有精準的GNSS時間,因此最理想的時間同步是將IMU數據也賦予GNSS時間。一般地,通過GNSS接收機輸出的1PPS信號(1Hz的秒脈沖信號,也可以是其它頻率),結合本地時鐘或者IMU內部時鐘,即可實現高精度的硬件時間同步(更確切地說是“時標統一”,精度在微秒量級)。然而,很多應用系統不具備硬件同步的條件(即無法連接1PPS脈沖信號或IMU采樣信號),那么我們只能被動地采用軟件同步的方式(精度只有幾十毫秒量級)。具體描述如下:
一般地,為了保證GNSS/INS組合導航系統的精度,都采用硬件時間同步的方式,實現GNSS信號采樣時標和IMU數據采集時標的嚴格統一。對于GNSS接收機而言,其1PPS信號嚴格對應其在GNSS整秒的GNSS信號采樣時刻;而對于MEMS IMU,一般都具備“數據采集狀態”信號接口(具體形式為脈沖輸出信號)。ICM20602有中斷輸出引腳(INT),可配置為采樣完成(Data Ready)中斷信號輸出;ADIS16465則直接有一個“采樣完成”信號的輸出接口。
下圖給出IMU硬件時間同步的示意圖,嵌入式MCU(單片機)同時接收IMU的“采樣完成”脈沖信號和GNSS接收機的1PPS信號,各自觸發中斷并記錄當前的本地晶振時間。利用1PPS信號所對應的本地晶振時間(例如間隔1us的計數器)和GNSS整秒時間,即可計算出本地晶振時間相對于GNSS絕對時間的偏移值;再將這個偏移值補償給每個IMU“采樣完成”信號所對應的本地晶振時間,即可將IMU的本地時標轉化為GNSS絕對時標。IMU硬件時間同步的過程如公式(1)~(3)所示。最終實現IMU數據和GNSS數據的時標統一。1PPS信號的誤差一般為幾十納秒,可忽略不計;本地晶振時間一般采用微秒級別的計數器,那么最終GNSS數據和IMU數據的時間同步精度即為本地時間的精度,即微秒級。
圖3:IMU硬件時間同步示意 [唐海亮等,2019]
Δt2 = (C3 ? C1)× 1.0e-6 + bt = 1.0 (1)
可推出:
bt = 1.0 ? (C3 ? C1) ×1.0e-6 (2)
那么,IMU采樣時刻的絕對時標
t2 = t1 + (C2 ? C1)×1.0e-6
+ bt × (C2 ? C1)/(C3 ? C1) (3)
其中,我們假設本地時鐘的額定頻率為1MHz(即計數間隔為1.0e-6秒);
Δt2 :兩個相鄰1PPS之間的物理時間長度(即1秒);
C1:某1PPS信號對應時刻的本地時鐘計數值;
C2:某IMU采樣完成信號對應時刻的本地時鐘計數值;
C3:下一個1PPS信號對應時刻的本地時鐘計數值;
bt :本地時鐘在1秒內(即兩個相鄰1PPS之間)的漂移值;
t1:對應于C1(即1PPS時刻)的GNSS絕對時間,是由GNSS接收機提供的已知量;
t2:對應于C2(即IMU采樣完成時刻)的GNSS絕對時間,是待求量。
注:如果本地晶振的品質較高(例如優于10個ppm的TCXO),那么其在1秒內的漂移值bt可忽略不計。
然而,許多GNSS/INS系統在開發過程中,沒有條件連接GNSS接收機的1PPS信號或者IMU根本不具備數據采集相關的硬件信號(諸如“觸發采樣”、“采樣完成”等信號管腳),此時就不得不退而求其次,采用軟件同步。所謂的軟件同步,就是把數據處理器(例如單片機、工控機等)接收到IMU數據和GNSS數據的時刻“當作”這些數據的采樣時刻,記錄下本地晶振時間作為其統一的時標。當然也可以進一步通過將GNSS數據接收時刻的本地時間與該GNSS數據中的GNSS絕對時標對比來獲得兩者的偏差量,進而將IMU的本地時標都轉化為GNSS絕對時標。
軟件時間同步與硬件時間同步的道理是完全一樣的,只是將精準的數據采集時刻(通過1PPS信號和“采樣完成”脈沖來體現)替換為數據接收時刻(有幾毫秒到幾十毫秒的不確定延遲)。其中GNSS數據接收時刻會受到若干因素的影響而造成延遲,包括GNSS接收機內部的信號處理時間、接收機到嵌入式處理器的接口傳輸時間和嵌入式處理器的解碼時間,尤其是當處理器處于忙碌狀態時就更加不可控;而IMU數據接收時刻的延遲也類似,只是因為每條IMU數據量很少而使得延遲較小??傊?,通過軟件的方式實現的時間同步具有諸多不可控因素,導致實際上通過軟件時間同步的精度低且穩定性差。
軟件同步是在確實無法實現硬件時間同步的情況下的無奈選擇,對于GNSS精密定位模式下的中高速載體的組合導航(例如RTK/INS車輛導航),幾十毫秒的同步誤差會深刻地傷害其組合導航精度,因而是無法接受的。
在多源導航定位系統中,GNSS接收機已經成為必不可少的一部分,無論是低至幾塊錢的導航型GNSS接收機模塊,還是價值上千元的測量型板卡,都能夠提供高精度的絕對授時(誤差一般為幾十納秒)。因而,GNSS接收機自然就成為了多源導航定位系統中的高精度時間基準。利用GNSS接收機的1PPS信號,還可以對精度較低的MCU本地時間系統進行校正,從而得到與GNSS時間同步的高精度MCU本地時間系統(唐海亮等,2019),進而對多源導航傳感器進行時間同步(即給各傳感器都打上GNSS絕對時標)。舉例如下:
對于相機而言,其光學信號采樣對應著相機的曝光,因此記錄相機的曝光時間就獲得了相機圖像的采樣時刻。一般的相機都具有硬件觸發信號接口,即通過外部信號觸發相機曝光采樣;相機同時輸出一個反映曝光過程的事件信號。那么,我們可以利用經過GNSS時間校準后的本地時間系統,實現相機的時間同步。例如,每過一個固定的時間間隔,MCU輸出一個相機觸發信號;相機收到觸發信號后,經過內部很小的處理延時后,開始曝光圖像,同時輸出曝光信號,曝光結束,則曝光信號結束;MCU則記錄曝光開始和曝光結束的兩個時間,并取均值,作為最終的相機圖像采樣時間,這就實現了相機圖像數據的時間同步。
圖4:相機時間同步原理
對于激光雷達而言,其時間同步方式相對簡單,因為激光雷達廠商已經將大部分工作集成到激光雷達內部,為用戶提供了現成的時間同步接口。一般地,我們只要給激光雷達提供GNSS接收機的1PPS信號及其對應的GNSS絕對時間消息,即可實現激光雷達點云數據的時間同步。例如,Velodyne的VLP-16激光雷達對外提供1PPS信號的輸入接口和一路消息輸入串口,分別連接GNSS接收機的1PPS信號和定位輸出接口(輸出GPRMC或GPGGA格式的NMEA消息)。而部分Livox激光雷達硬件上僅有1PPS信號輸入接口,需要在上位機將額外的GPRMC消息發送給激光雷達。激光雷達通過接收的1PPS信號及其對應的GNSS定位消息中的GNSS絕對時標,再配合其內部的時間系統,即可實現激光點云數據的時間同步。
本節介紹了GNSS接收機、IMU以及其它多源導航傳感器的時間同步,現將要點總結如下:
1. 多源導航定位系統的時間基準應該是來自GNSS接收機的GNSS時間;
2. 利用GNSS接收機的秒脈沖信號(1PPS)和MEMS IMU的數據采樣脈沖信號,結合本地時間系統,可實現GNSS定位和IMU數據的高精度時間同步(即硬件同步);
3. 應該盡量采用硬件時間同步,軟件時間同步精度低、可靠性差;
4. 從GNSS/INS組合導航的常見使用需求來看,MEMS IMU數據與GNSS的時間同步誤差一般應小于10毫秒,最好是小于1毫秒;
5. 基于GNSS接收機的1PPS信號和嵌入式處理器的本地時間系統,也可以實現相機和激光雷達等其它傳感器與GNSS時間的硬件同步。
最后再次聲明,本文所說的時間同步是指不同傳感器的數據都打上共同的時標(即采用統一的時間系統),而不是指所有傳感器都同步采樣(即采樣時刻對齊)。
[1] InvenSense/ICM-20602 Data Sheet [EB/OL]. [2016-10-03]. [PDF]
[2] Analog Devices, Inc. ADIS16465 Data Sheet [EB/OL]. [2017-12]. [PDF]
[3] Niu X, Zhang H, Shi C, et al. A proposed evaluation standard for the navigation results of MEMS INS/GPS integrated systems[C]//Proceedings of the International Symposium on GPS/GNSS. 2010: 1-5.
[4] 蔡磊, 牛小驥, 張提升, 等. MEMS 慣導在旋翼飛行器中導航性能的實驗分析[J]. 傳感技術學報, 2016, 29(5): 711-715.
[5] Ban Y, Zhang Q, Niu X, et al. How the integral operations in INS algorithms overshadow the contributions of IMU signal denoising using low-pass filters[J]. The Journal of Navigation, 2013, 66(6): 837-858.
[6] 唐海亮, 張提升, 包林封, 等. 面向旋翼無人機的高精度組合導航模塊設計與評估[J]. 傳感技術學報, 2019, 32(6): 838-843.
版權所有:武漢大學多源智能導航實驗室(微信公眾號:i2Nav) 當前訪問量: 技術支持:武漢楚玖科技有限公司