黃金銘,李飛翔,曹 俞,陳永敏,高琳琳,姚建紅
(常熟理工學(xué)院 汽車工程學(xué)院,江蘇 常熟 215500)
由于汽車碰撞預(yù)警系統(tǒng)對(duì)提高汽車安全性有著重大意義,因此對(duì)該系統(tǒng)的研究一直是國(guó)內(nèi)外研究的熱點(diǎn)之一.世界各大汽車生產(chǎn)相關(guān)企業(yè)都針對(duì)碰撞預(yù)警系統(tǒng)做了大量的研究.如奔馳的 PRE-SAFE Brake 系統(tǒng)使用毫米波雷達(dá)對(duì)碰撞進(jìn)行檢測(cè),利用毫米波雷達(dá)檢測(cè)車輛前方障礙物的位置[1].當(dāng)檢測(cè)到可能有碰撞事故發(fā)生時(shí),系統(tǒng)觸發(fā)相關(guān)功能避免碰撞事故發(fā)生.菲亞特的 CBC 系統(tǒng)使用激光雷達(dá)對(duì)碰撞進(jìn)行檢測(cè).系統(tǒng)正常工作設(shè)定的車速范圍為5~30 km/h,當(dāng)檢測(cè)出有碰撞發(fā)生的可能性時(shí),系統(tǒng)控制預(yù)警及制動(dòng)系統(tǒng)啟動(dòng)以實(shí)現(xiàn)防碰撞功能.
綜合分析現(xiàn)有人-車碰撞預(yù)警系統(tǒng)可知,其大多采用車輛單向的預(yù)警方式,且預(yù)警的功能比較單一.預(yù)警系統(tǒng)大多基于激光雷達(dá)、毫米波雷達(dá)、超聲波、攝像頭等傳統(tǒng)的測(cè)距傳感器,成本較高.基于此,本文針對(duì)基于車聯(lián)網(wǎng)的人-車碰撞預(yù)警系統(tǒng)進(jìn)行研究,設(shè)計(jì)了具有雙向預(yù)警功能的人-車防碰撞系統(tǒng).
為了降低人車碰撞交通事故發(fā)生的概率,本文提出一種具備雙向預(yù)警功能、基于車聯(lián)網(wǎng)的人-車碰撞預(yù)警系統(tǒng).通過對(duì)系統(tǒng)的雙向預(yù)警方式的分析[2],制定出該系統(tǒng)的總體架構(gòu),如圖1所示.
圖1 控制算法的結(jié)構(gòu)框圖
系統(tǒng)包括車載客戶端、行人客戶端、服務(wù)器端和控制管理界面四個(gè)部分.其中,行人終端主要由主控制器、GPS模塊、蜂鳴器組成.其主控制器通過GPS模塊采集行人的位置信息,再將該位置信息與從服務(wù)器接收到的數(shù)據(jù)進(jìn)行解析處理,并根據(jù)處理結(jié)果控制蜂鳴器發(fā)出預(yù)警信號(hào).車載終端設(shè)備主要由主控制器、GPS模塊、蜂鳴器、CAN模塊組成.車輛端主控制器通過GPS模塊和CAN模塊分別采集車輛位置和實(shí)時(shí)車速等信息,然后發(fā)送到云服務(wù)器處理,并根據(jù)處理結(jié)果控制蜂鳴器發(fā)出預(yù)警信號(hào).服務(wù)器端則主要負(fù)責(zé)數(shù)據(jù)的中轉(zhuǎn)收發(fā).為了便于管理員監(jiān)控系統(tǒng)的實(shí)時(shí)運(yùn)作狀態(tài),本文還設(shè)計(jì)了一個(gè)便于操控的PC端控制管理界面.該界面能夠?qū)崟r(shí)監(jiān)控整個(gè)系統(tǒng)的工作狀況,及時(shí)發(fā)現(xiàn)異常,并更新、記錄數(shù)據(jù).
車載終端設(shè)備由樹莓派3B主控制器、GPS模塊、CAN模塊、蜂鳴器模塊組成.GPS模塊通過串行端口(GPIO15 RXD)發(fā)送數(shù)據(jù)到主控制器.而CAN模塊則通過SPI引腳(MOSI和MISO)、片選引腳(CS)和中斷引腳(INT)與CAN模塊連接,實(shí)現(xiàn)CAN數(shù)據(jù)交互.主控制器通過通用輸入輸出引腳(GIPO23)連接蜂鳴器模塊,實(shí)現(xiàn)對(duì)蜂鳴器的控制.車載終端設(shè)備原理圖如圖2所示.
圖2 車載終端設(shè)備原理圖
行人的終端設(shè)備主要由樹莓派3B主控制器、GPS模塊、蜂鳴器模塊組成.主控制器分別為GPS模塊和蜂鳴器模塊提供5 V和3.3 V供電.GPS模塊通過串行端口(GPIO15 RXD)發(fā)送數(shù)據(jù)到主控制器,主控制器上的通用輸入輸出引腳(GIPO23)連接到蜂鳴器模塊,實(shí)現(xiàn)對(duì)蜂鳴器的控制.主控制器終端設(shè)備(行人)電路原理圖如圖3所示.
圖3 行人終端設(shè)備電路原理圖
本文所提出的系統(tǒng)設(shè)計(jì)核心就是行人、車輛、云服務(wù)器三端的通信.選用無線網(wǎng)絡(luò)通信的方式來實(shí)現(xiàn)終端設(shè)備之間的信息交互.其中,云服務(wù)器作為服務(wù)器端,行人、車輛、控制管理界面等終端設(shè)備作為客戶端,通過編程實(shí)現(xiàn)客戶端向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端將接收到的數(shù)據(jù)向指定客戶端廣播.網(wǎng)絡(luò)通信中需設(shè)定IP地址,并為其提供端口號(hào),才能準(zhǔn)確無誤地接收到從網(wǎng)絡(luò)發(fā)來的數(shù)據(jù),同時(shí)也向目的地發(fā)送數(shù)據(jù).完成對(duì)IP地址和端口號(hào)的設(shè)定,需將它們與傳輸協(xié)議關(guān)聯(lián)起來.本系統(tǒng)選用TCP作為傳輸協(xié)議,該傳輸協(xié)議具有可靠連接[3]、錯(cuò)誤檢查、丟包重發(fā)等特點(diǎn).
為了便于系統(tǒng)管理員能夠?qū)崟r(shí)監(jiān)控系統(tǒng)的運(yùn)作狀態(tài),我們?cè)O(shè)計(jì)了控制管理界面.該控制管理界面以圖形界面的形式為系統(tǒng)管理員提供相關(guān)數(shù)據(jù),接收并實(shí)現(xiàn)管理員的操作指令.程序編寫使用python語言和pyqt模塊.控制平臺(tái)的程序設(shè)計(jì)包括登錄界面、主界面、數(shù)據(jù)文件和顯示界面,同時(shí)滿足客戶端數(shù)據(jù)更新、記錄、軌跡繪制等功能.系統(tǒng)管理員可通過控制平臺(tái)了解系統(tǒng)的工作狀況以及查看行人與車輛終端設(shè)備的相關(guān)數(shù)據(jù)與實(shí)時(shí)人-車軌跡等內(nèi)容.
安全距離是預(yù)警系統(tǒng)預(yù)警條件的依據(jù),因此確定合適的安全距離至關(guān)重要.行人客戶端的步行速度遠(yuǎn)小于車速,因此可設(shè)定安全距離為某一定值.本文中設(shè)置安全距離為5 m,即行人端安全距離
對(duì)于車輛客戶端,為保證車輛制動(dòng)停車后能夠完全避免碰撞,我們將安全距離d2設(shè)定為車輛的制動(dòng)距離與行人的安全距離之和.即對(duì)于車輛客戶端而言,其安全距離可以描述為
行人相對(duì)于車輛方位主要是通過Python中的Geodesic模塊和經(jīng)緯度信息等求解出行人相對(duì)于車輛的方位角α和它們之間的距離d而確定的.
方位確定的程序開始運(yùn)行后,先導(dǎo)入Python相關(guān)庫Geodesic用于解決GPS數(shù)據(jù)和地理坐標(biāo)的處理與轉(zhuǎn)換問題.由于Geodesic.WGS84.Inverse傳入的兩組經(jīng)緯度參數(shù)需要以度分秒的形式,而從GPRMC讀取的經(jīng)緯度形式不符合要求,因此需要對(duì)經(jīng)緯度數(shù)據(jù)進(jìn)行轉(zhuǎn)換[4],即進(jìn)行進(jìn)制變換和小數(shù)點(diǎn)移動(dòng).轉(zhuǎn)換完成后即可將其傳入Geodesic.WGS84.Inverse,讀取函數(shù)返回值(包含行人和車輛的直線距離以及它們之間的相對(duì)方位角等數(shù)據(jù)).最后根據(jù)客戶端類型記錄返回值.如果客戶端是車輛,則記錄行人相對(duì)于車輛的方位角α和它們之間的距離d.否則,只記錄它們之間的距離d.行人相對(duì)于車輛方位確定的程序流程圖如圖4所示.
圖4 行人相對(duì)于車輛方位確定的程序流程圖
預(yù)警條件是本預(yù)警系統(tǒng)實(shí)現(xiàn)對(duì)行人-車輛可能發(fā)生的碰撞做出可靠且準(zhǔn)確預(yù)警的關(guān)鍵.文中設(shè)計(jì)的預(yù)警條件判斷流程如圖5所示.其中,根據(jù)行人與車輛的位置信息可計(jì)算得到行人相對(duì)于車輛的方位角α和它們之間的距離d,以及車輛的運(yùn)動(dòng)方向θ.通過這些數(shù)據(jù)分別確定行人和車輛的預(yù)警區(qū)域.根據(jù)不同終端設(shè)備確定不同預(yù)警條件,即當(dāng)客戶端為行人且車輛位于行人的預(yù)警區(qū)域內(nèi)時(shí),預(yù)警條件成立,反之不成立.當(dāng)客戶端為車輛且行人位于車輛的預(yù)警區(qū)域內(nèi)時(shí),預(yù)警條件成立,反之不成立.
圖5 預(yù)警條件判斷流程圖
由于行人和車輛的終端設(shè)備所采集的數(shù)據(jù)和處理程序有所差異,因此行人和車輛的終端設(shè)備預(yù)警區(qū)域也有所不同,需要分別設(shè)計(jì)出兩種預(yù)警區(qū)域.對(duì)于行人而言,預(yù)警區(qū)域是以行人為圓心,半徑為d1的圓周區(qū)域.如果行人-車輛間的距離d<d1,那么預(yù)警條件成立,終端設(shè)備發(fā)出預(yù)警信號(hào)即蜂鳴器響.否則,預(yù)警條件不成立.
對(duì)于車輛而言,考慮向前行駛中的車輛,只需對(duì)位于其前方扇形區(qū)域的行人進(jìn)行預(yù)警即可.因此,車輛的預(yù)警區(qū)域是以車輛為圓心,d2為半徑,β為圓心角的扇形區(qū)域.其中,β與d2有關(guān),可以描述為
由此,車輛端的預(yù)警條件是行人位于車輛的預(yù)警區(qū)域內(nèi),則預(yù)警條件成立,終端設(shè)備發(fā)出預(yù)警信號(hào)即蜂鳴器響.否則,預(yù)警條件不成立.
完成對(duì)本系統(tǒng)的初步搭建后,為保證系統(tǒng)能夠正常工作,同時(shí)提高系統(tǒng)的穩(wěn)定性和準(zhǔn)確性,我們對(duì)GPS數(shù)據(jù)、CAN數(shù)據(jù)、服務(wù)器和客戶端程序、控制平臺(tái)等進(jìn)行了調(diào)試.
采集GPS數(shù)據(jù)程序運(yùn)行后,程序采集數(shù)據(jù)并將數(shù)據(jù)打印到界面上.GPS模塊包含許多NMEA協(xié)議的字段數(shù)據(jù).對(duì)采集完成的GPS模塊數(shù)據(jù)進(jìn)行“GPRMC”字段的提取,GPS模塊數(shù)據(jù)和“GPRMC”字段數(shù)據(jù)如圖6所示.
服務(wù)器端程序調(diào)試即測(cè)試程序能否與客戶端建立通信.運(yùn)行服務(wù)器程序后,開始監(jiān)聽客戶端連接請(qǐng)求,使用兩個(gè)客戶端接入服務(wù)器,完成接入后即可建立通信.調(diào)試成功即使兩個(gè)客戶端建立通信并區(qū)分出行人端及車輛端.
客戶端程序調(diào)試即測(cè)試程序是否能夠?qū)赡馨l(fā)生的碰撞進(jìn)行預(yù)警.對(duì)行人客戶端而言,就是當(dāng)車輛位于行人的預(yù)警區(qū)域內(nèi)時(shí),行人客戶端能發(fā)出預(yù)警.同樣對(duì)車輛客戶端而言,當(dāng)行人位于車輛的預(yù)警區(qū)域內(nèi)時(shí),車輛客戶端能發(fā)出預(yù)警.預(yù)警信息如圖7所示.
控制平臺(tái)的調(diào)試主要是測(cè)試控制平臺(tái)各功能能否正常工作,包括對(duì)更新數(shù)據(jù)、記錄數(shù)據(jù)、繪制軌跡、打開數(shù)據(jù)文件等的功能調(diào)試.通過對(duì)設(shè)計(jì)的預(yù)警系統(tǒng)各重要部分進(jìn)行調(diào)試,發(fā)現(xiàn)服務(wù)器、客戶端、控制平臺(tái)均能正常工作,達(dá)到了預(yù)期效果.
目前市面上汽車搭載的碰撞預(yù)警系統(tǒng)大多為單向預(yù)警,即行人端無法接收到預(yù)警信息.本文設(shè)計(jì)了一種能夠?qū)崿F(xiàn)雙向預(yù)警的人-車碰撞預(yù)警系統(tǒng),完成了系統(tǒng)整體架構(gòu)、硬件、軟件、控制管理界面的設(shè)計(jì)工作;解決了行人端無法獲取預(yù)警信號(hào)的問題[5],使行人在碰撞發(fā)生前能提前收到預(yù)警信號(hào),做出緊急避險(xiǎn)反應(yīng),從而較大程度上降低車輛與行人發(fā)生碰撞的風(fēng)險(xiǎn).該雙向主動(dòng)預(yù)警的方式是一種避免行人-車輛碰撞事故發(fā)生的有效方式,能夠大大降低此類事故的發(fā)生率.對(duì)設(shè)計(jì)的預(yù)警系統(tǒng)進(jìn)行的測(cè)試分析結(jié)果證明了該系統(tǒng)的可行性與可靠性.本設(shè)計(jì)為人-車防碰撞預(yù)警系統(tǒng)提供了一種新的方法和思路.