劉軍 聶斐 蔡駿宇 熊明路 陶昌嶺
(江蘇大學(xué))
基于安卓的汽車狀態(tài)測(cè)量及預(yù)測(cè)系統(tǒng)的研究
劉軍 聶斐 蔡駿宇 熊明路 陶昌嶺
(江蘇大學(xué))
設(shè)計(jì)了基于Android(安卓)的汽車運(yùn)動(dòng)狀態(tài)在線測(cè)量及預(yù)測(cè)系統(tǒng),闡述了預(yù)測(cè)系統(tǒng)的硬件組成和軟件設(shè)計(jì)方法。通過實(shí)車道路試驗(yàn),對(duì)側(cè)向加速度與橫滾角的試驗(yàn)值與預(yù)測(cè)值進(jìn)行比較,并得出相對(duì)誤差率,驗(yàn)證了該預(yù)測(cè)系統(tǒng)的可行性。與傳統(tǒng)車載終端相比,該預(yù)測(cè)系統(tǒng)不僅提高了安卓車載終端對(duì)汽車主動(dòng)安全的融合性,而且有效降低了汽車狀態(tài)感知的成本并具有良好的可擴(kuò)展性和靈活性。
研究表明,若駕駛員能提早1 s意識(shí)到交通事故的發(fā)生,并提前0.5 s做出反應(yīng)且采取相應(yīng)措施,即可最大限度地減少道路交通事故。因此,開展基于車輛主動(dòng)安全預(yù)測(cè)技術(shù)的研究,提前預(yù)測(cè)車輛未來時(shí)刻可能的行駛運(yùn)行狀態(tài),并預(yù)先向駕駛?cè)藛T提供警示信息,對(duì)提高車輛的主動(dòng)安全性、減少道路交通事故將起到十分重要的作用。
汽車運(yùn)動(dòng)狀態(tài)參數(shù)包括汽車的縱向、側(cè)向、垂向3個(gè)方向的加速度及橫擺、側(cè)傾、俯仰3個(gè)方向的角速度,但僅以這6個(gè)參數(shù)對(duì)汽車行駛運(yùn)動(dòng)狀態(tài)進(jìn)行分析是不夠的,需要進(jìn)一步研究汽車姿態(tài)角的解算。
汽車運(yùn)動(dòng)狀態(tài)以及姿態(tài)角實(shí)時(shí)預(yù)測(cè)原理如圖1所示。首先由MEMS傳感器組成的微慣性測(cè)量單元以捷聯(lián)方式直接測(cè)出車輛6自由度運(yùn)動(dòng)參數(shù),然后依據(jù)其中的角速度信號(hào)解算出車輛姿態(tài)角,再應(yīng)用Kal?man濾波器完成對(duì)加速度計(jì)信號(hào)、角速度陀螺信號(hào)及姿態(tài)角估計(jì)誤差的融合處理,消除系統(tǒng)耦合、陀螺儀零偏及漂移等因素的影響,從而獲取姿態(tài)角的最優(yōu)估計(jì)值;在此基礎(chǔ)上應(yīng)用自回歸模型對(duì)未來時(shí)刻可能的車輛姿態(tài)角進(jìn)行實(shí)時(shí)預(yù)測(cè)。
2.1 車輛姿態(tài)角的解算
因四元數(shù)法能保持方程是線性的且不產(chǎn)生奇異[1,2],任何三維空間的向量都可以用實(shí)部為0的四元數(shù)表示,所以采用四元數(shù)法作為車輛姿態(tài)角的解算方法。
車輛四元數(shù)姿態(tài)矩陣可表示為:
式中,q0、q1、q2、q3為實(shí)時(shí)車輛姿態(tài)四元數(shù),滿足
q0、q1、q2、q3與橫擺角速度ωx、側(cè)傾角速度ωy、俯仰角速度ωz之間的關(guān)系滿足:
當(dāng)車輛姿態(tài)角速度已知時(shí),由式(2)可解得q0、q1、q2、q3的值,將其帶入式(1)可得到車輛轉(zhuǎn)動(dòng)四元數(shù)姿態(tài)矩陣。
由姿態(tài)角與四元數(shù)姿態(tài)矩陣的全角度轉(zhuǎn)換關(guān)系可知,車輛姿態(tài)角的計(jì)算公式為:
式中,ψ為橫擺角;θ為側(cè)傾角;γ為俯仰角;Amn是四元數(shù)姿態(tài)矩陣的第m行第n列。
2.2 Kalman濾波器的設(shè)計(jì)
由于系統(tǒng)耦合和陀螺儀零偏等因素的影響,使得試驗(yàn)中所測(cè)得角速度存在誤差,故由此角速度積分解算后所得汽車姿態(tài)角也存在誤差,且誤差隨時(shí)間累積,因此有必要結(jié)合汽車的其它運(yùn)動(dòng)參數(shù)對(duì)姿態(tài)角進(jìn)行補(bǔ)償和修正,以提高汽車運(yùn)動(dòng)姿態(tài)的測(cè)量精度。本文結(jié)合加速度計(jì)的測(cè)量信號(hào),采用Kalman濾波器對(duì)汽車姿態(tài)角進(jìn)行實(shí)時(shí)最優(yōu)估計(jì),同時(shí)對(duì)陀螺儀信號(hào)進(jìn)行實(shí)時(shí)修正。
首先建立系統(tǒng)狀態(tài)方程,令狀態(tài)向量和觀測(cè)向量分別為:
式中,δq1、δq2、δq3為四元數(shù)矢量部分的估計(jì)誤差(標(biāo)量部分δq0近似為1);ΔBfx、ΔBfy、ΔBfz為陀螺儀的零偏估計(jì)誤差;δax、δay、δaz為三軸加速度的估計(jì)誤差。
考慮到汽車姿態(tài)角的運(yùn)動(dòng)可分解為連續(xù)2次的運(yùn)動(dòng),即汽車相對(duì)于車體平臺(tái)坐標(biāo)系(當(dāng)?shù)厮阶鴺?biāo)系)轉(zhuǎn)動(dòng)一個(gè)估計(jì)角,再轉(zhuǎn)動(dòng)一個(gè)估計(jì)誤差角,則結(jié)合四元數(shù)運(yùn)動(dòng)微分方程及四元數(shù)的乘法性質(zhì)可推出系統(tǒng)狀態(tài)方程為:
而姿態(tài)矩陣的逆矩陣可看成由姿態(tài)估計(jì)陣和姿態(tài)誤差陣相乘得到,再對(duì)誤差矩陣做線性估計(jì),則可推出系統(tǒng)觀測(cè)方程為:
式中,V(t)為加速度計(jì)估計(jì)誤差的噪聲,也是獨(dú)立的具有零均值的高斯白噪聲。
將狀態(tài)方程和觀測(cè)方程離散化,進(jìn)而可得到系統(tǒng)卡爾曼濾波方程,其中包括時(shí)刻k的系統(tǒng)狀態(tài)一步預(yù)測(cè)方程、一步預(yù)測(cè)均方誤差方程、濾波增益矩陣、狀態(tài)估計(jì)矩陣和均方差估計(jì)矩陣,最終可得到時(shí)間更新方程和觀測(cè)更新方程分別為:
2.3 姿態(tài)角預(yù)測(cè)
采用AR建模預(yù)測(cè)方法[3~5]對(duì)姿態(tài)角進(jìn)行預(yù)測(cè)。以橫擺角序列為例,建立其自回歸模型:
式中,εt為服從均值為0、方差為σ2ε的互相獨(dú)立的白噪聲序列;φ1,φ2,···φp為自回歸系數(shù),是模型的待估參數(shù);p為模型的階數(shù)。
在建模前首先要確定模型的階數(shù),模型定階方法通常采用艾克準(zhǔn)則(Akaike Information Criterion,AIC),也稱最小信息準(zhǔn)則。
AIC統(tǒng)計(jì)量的計(jì)算方法為:
式中,n為給定數(shù)據(jù)長(zhǎng)度;為的估計(jì)值。
在實(shí)際應(yīng)用中,通常假設(shè)模型最大階數(shù)為m,逐個(gè)計(jì)算p從1到最大階數(shù)m的AIC(1),AIC(2),…,AIC(m)值,使得AIC(p)值最小的p即可認(rèn)為是模型的最佳階數(shù)。
模型階數(shù)確定后需要對(duì)模型參數(shù)進(jìn)行估計(jì),考慮到模型預(yù)測(cè)的實(shí)時(shí)運(yùn)算能力,采用遞推最小二乘法進(jìn)行估計(jì),計(jì)算式為:
模型參數(shù)和階數(shù)均確定后,自回歸模型即可確定,進(jìn)而可進(jìn)行橫擺角的預(yù)測(cè)。
設(shè)預(yù)測(cè)步長(zhǎng)為l,則向前遞推l步的預(yù)測(cè)值的計(jì)算式為:
為評(píng)價(jià)姿態(tài)角AR建模預(yù)測(cè)的精度,采用平均相對(duì)誤差率對(duì)其進(jìn)行考核,設(shè)平均相對(duì)誤差率為υ,則
用同樣的方法可對(duì)側(cè)傾角和俯仰角進(jìn)行預(yù)測(cè)。
預(yù)測(cè)系統(tǒng)的總體設(shè)計(jì)方案如圖2所示。
在保證系統(tǒng)性能良好的情況下,構(gòu)建了功耗低、體積小且成本低的傳感器模塊、微處理器模塊及藍(lán)牙模塊。其中,傳感器單元包含集成三軸加速計(jì)、三軸陀螺儀的運(yùn)動(dòng)處理組件、磁力計(jì)和氣壓計(jì)等,主要用于采集車輛實(shí)時(shí)狀態(tài)數(shù)據(jù),并作為數(shù)據(jù)處理和姿態(tài)解算的原始數(shù)據(jù)源;微處理器用于實(shí)時(shí)姿態(tài)解算、數(shù)據(jù)融合濾波和模塊間通信;車載感知模塊通過串口接線與藍(lán)牙模塊連接后,與Android監(jiān)測(cè)客戶端的藍(lán)牙適配器配對(duì),相當(dāng)于在車載感知模塊與Android監(jiān)測(cè)客戶端之間虛擬了一根串口線以實(shí)現(xiàn)串口通訊。
移動(dòng)終端軟件主要分為下位機(jī)軟件和上位機(jī)軟件。下位機(jī)軟件中的傳感器以捷聯(lián)方式直接測(cè)出汽車6自由度運(yùn)動(dòng)參數(shù)[6],然后由四元素法解算出汽車姿態(tài)角,同時(shí)應(yīng)用Kalman濾波器完成對(duì)姿態(tài)角的最優(yōu)估計(jì)處理,在此基礎(chǔ)上對(duì)姿態(tài)角實(shí)時(shí)預(yù)測(cè)。上位機(jī)軟件是根據(jù)硬件模塊需要實(shí)現(xiàn)的功能數(shù)據(jù)分別進(jìn)行數(shù)據(jù)采集與狀態(tài)預(yù)測(cè)程序的設(shè)計(jì)、藍(lán)牙通訊程序的設(shè)計(jì)及其它附加功能的程序設(shè)計(jì)。數(shù)據(jù)采集和處理流程如圖3所示。
客戶端的設(shè)計(jì)基于Android2.1操作系統(tǒng)實(shí)現(xiàn),根據(jù)所需要完成的任務(wù)、運(yùn)行實(shí)時(shí)性以及程序數(shù)據(jù)流,可以將整個(gè)客戶端劃分為藍(lán)牙通信模塊、數(shù)據(jù)采集與狀態(tài)預(yù)測(cè)模塊、數(shù)據(jù)存儲(chǔ)模塊和菜單功能模塊等[7],客戶端運(yùn)行主界面如圖4所示。
4.1 藍(lán)牙通信程序的設(shè)計(jì)
藍(lán)牙通信的基本思想是將HC-06-D藍(lán)牙串口模塊與單片機(jī)芯片相接,與安卓客戶端的藍(lán)牙適配器配對(duì)成功后實(shí)現(xiàn)通信,相當(dāng)于在單片機(jī)與安卓客戶端之間虛擬了一根串口線實(shí)現(xiàn)串口通訊進(jìn)行數(shù)據(jù)采集[9]。
設(shè)計(jì)的藍(lán)牙通信程序的流程為設(shè)置藍(lán)牙設(shè)備并建立服務(wù)器端、藍(lán)牙搜索并配對(duì)、建立通信客戶端并連接設(shè)備與設(shè)備之間數(shù)據(jù)傳輸。其中藍(lán)牙搜索配對(duì)結(jié)果如圖5所示。
4.2 數(shù)據(jù)采集與狀態(tài)預(yù)測(cè)程序設(shè)計(jì)
數(shù)據(jù)采集與狀態(tài)預(yù)測(cè)界面用于實(shí)時(shí)顯示更新運(yùn)動(dòng)處理組件、磁力計(jì)、氣壓高度計(jì)及下位機(jī)解算的車輛姿態(tài)信息,再依據(jù)這些數(shù)據(jù)信息進(jìn)行AR建模,并對(duì)未來3 s內(nèi)車輛可能會(huì)出現(xiàn)的運(yùn)動(dòng)狀態(tài)進(jìn)行短期預(yù)測(cè)[8]。通過實(shí)測(cè)車載感知數(shù)據(jù)的顯示,用戶可以及時(shí)了解車輛運(yùn)行時(shí)的三軸加速度、三軸角速度、三軸磁場(chǎng)、大氣壓力、大氣溫度、海拔高度及解算的航向角、橫滾角和俯仰角等。數(shù)據(jù)采集與狀態(tài)預(yù)測(cè)功能運(yùn)行界面如圖6所示。
數(shù)據(jù)存儲(chǔ)模塊的功能是實(shí)時(shí)存儲(chǔ)采集的運(yùn)行參數(shù),在圖6中的運(yùn)行界面中點(diǎn)擊保存即可進(jìn)行實(shí)時(shí)存儲(chǔ)。
菜單功能模塊實(shí)現(xiàn)軟件退出功能和幫助功能。在主界面(圖4)點(diǎn)擊手機(jī)菜單按鈕即出現(xiàn)菜單選項(xiàng),點(diǎn)擊“設(shè)置”選項(xiàng)后直接進(jìn)入設(shè)置界面;點(diǎn)擊“關(guān)于”選項(xiàng)后進(jìn)入軟件說明界面;點(diǎn)擊“退出”選項(xiàng)則直接調(diào)用Android系統(tǒng)的finish()函數(shù)結(jié)束本界面,退出汽車實(shí)時(shí)監(jiān)測(cè)系統(tǒng)。
為驗(yàn)證該預(yù)測(cè)系統(tǒng)的運(yùn)行效果,進(jìn)行了實(shí)車道路試驗(yàn)。試驗(yàn)時(shí)將傳感器數(shù)據(jù)采集模塊放置在駕駛員右側(cè)扶手箱底部(即質(zhì)心處),主要針對(duì)車輛的側(cè)向加速度、橫滾角進(jìn)行道路試驗(yàn)。對(duì)于橫向加速度的實(shí)時(shí)感知與預(yù)測(cè)選擇蛇形試驗(yàn)方法[9];對(duì)于橫滾角的實(shí)時(shí)感知與預(yù)測(cè)選擇固定轉(zhuǎn)向盤連續(xù)加速試驗(yàn)的方法[10]。橫向加速度和橫滾角的試驗(yàn)值與預(yù)測(cè)值分別見表1和表2。通過表1和表2的數(shù)據(jù),可計(jì)算出實(shí)車道路試驗(yàn)中通過AR模型在線建模預(yù)測(cè)方法所得到的1~3 s預(yù)報(bào)的平均相對(duì)誤差率,見表3。
Research on Measurement&Prediction System for Vehicle Motion State Based on Android
Liu Jun,Nie Fei,Cai Junyu,Xiong Minglu,Tao Changling
(Jiangxu University)
Vehicle motion online measurement&prediction system based on Android is designed,and hardware composition and software design method of the prediction system is elaborated.Through vehicle road test,the test value and predicated value of lateral acceleration and roll angle are compared and the relative error rate is obtained,which proves feasibility of this prediction system.Compared with the conventional vehicle-mounted terminal,this prediction system not only improves the integration of Android vehicle terminal to vehicle active safety,but also effectively lowers the cost of vehicle state perception,moreover,this system also has good expandability and flexibility.
Vehicle state,Measurement,Prediction,Android
表1 側(cè)向加速度試驗(yàn)值與預(yù)測(cè)值 m/s2
表2 橫滾角試驗(yàn)值與預(yù)測(cè)值 (°)
汽車狀態(tài) 測(cè)量 預(yù)測(cè) Android
U467.1
A
1000-3703(2015)02-0029-05