殷小芳
(南京航空航天大學(xué)金城學(xué)院 信息工程系,江蘇 南京 211156)
近年來,交通事故發(fā)生率居高不下,而交通事故多發(fā)會影響社會的和諧穩(wěn)定發(fā)展,影響人民的幸福安康生活。交通事故中有很大一部分是由于司機的危險駕駛導(dǎo)致的。危險駕駛主要包括酒駕醉駕、超速駕駛、疲勞駕駛等不當?shù)鸟{駛方式,這類危險的駕駛方式給人民的生命和財產(chǎn)安全帶來了巨大威脅[1]。
為了預(yù)防或者及早地阻止危險駕駛行為的發(fā)生,本文設(shè)計了一款基于移動設(shè)備的危險駕駛預(yù)警系統(tǒng)。本系統(tǒng)使用人們經(jīng)常隨身攜帶的移動設(shè)備分析和判斷所搭載車輛是否存在危險駕駛行為,如果存在危險駕駛行為,可立即警示路上行人及車輛,也可以立即通知司機聯(lián)絡(luò)人,從源頭上杜絕和避免危險駕駛交通事故的發(fā)生。使用本系統(tǒng)能夠以較低的成本和較便利的方法預(yù)警車輛危險駕駛行為。
從功能角度出發(fā)分析系統(tǒng)需要設(shè)計哪些模塊。因為本系統(tǒng)中最重要的部分是分析坐標,用于分析并判斷車輛是否存在危險駕駛行為,所以系統(tǒng)的分析能力即系統(tǒng)的數(shù)據(jù)處理能力必須足夠強大。目前,大部分車輛配置系統(tǒng)的數(shù)據(jù)處理能力不如移動設(shè)備的數(shù)據(jù)處理能力強,所以要將分析坐標的任務(wù)交給移動設(shè)備,因此在系統(tǒng)中設(shè)計了分析模塊。同時為了更及時地分析坐標數(shù)據(jù),將采樣坐標的任務(wù)交給移動設(shè)備完成,省去了將坐標數(shù)據(jù)從車輛端傳遞給移動設(shè)備端的環(huán)節(jié),避免了系統(tǒng)不必要的資源耗費,因此在系統(tǒng)中設(shè)計了采集模塊。此外,在系統(tǒng)判定存在車輛為危險駕駛后,系統(tǒng)要進行預(yù)警。預(yù)警的目的是盡早地阻止交通事故的發(fā)生,所以系統(tǒng)要在判定有危險駕駛行為后,在車輛還未造成實際損失之前,通知相關(guān)人員提醒駕駛?cè)藛T的危險駕駛行為,同時提醒路上其他行人和車輛躲避該車輛,因此設(shè)計了系統(tǒng)的預(yù)警模塊。在判定車輛有危險駕駛行為后,移動設(shè)備和車輛需要互通信號,因此設(shè)計了互聯(lián)模塊。
模塊設(shè)計好后,還需要針對移動設(shè)備和車輛進行相關(guān)設(shè)計。針對移動設(shè)備需要考慮以下問題:打開定位系統(tǒng)后,在一段時間內(nèi)以相同的時間間隔采樣車輛的位置坐標;執(zhí)行分析坐標任務(wù)時,根據(jù)一段時間內(nèi)的全部坐標判斷車輛是否為危險駕駛[2];需要提前設(shè)置司機聯(lián)絡(luò)人,一旦發(fā)生危險駕駛,系統(tǒng)立即給司機聯(lián)絡(luò)人發(fā)消息或撥打電話;發(fā)生危險駕駛后,移動設(shè)備可以通過藍牙設(shè)備發(fā)送危險駕駛信號給車輛。針對車輛需要考慮以下問題:車輛可通過藍牙設(shè)備接收移動設(shè)備發(fā)來的危險駕駛信號;在接收危險駕駛信號后,車輛能自動警示路人和其他車輛,如車燈閃爍、車輛鳴笛等。
系統(tǒng)的設(shè)計包括整體設(shè)計和各模塊設(shè)計。之所以采用模塊設(shè)計系統(tǒng),是因為模塊設(shè)計能夠使系統(tǒng)低耦合、高內(nèi)聚,各模塊間耦合度降低,模塊內(nèi)部聚合度提高。模塊化系統(tǒng)可以降低系統(tǒng)的復(fù)雜度,使系統(tǒng)設(shè)計、調(diào)試和維護等操作簡單化,若想改變某個子功能,則只需修改相應(yīng)模塊即可;當系統(tǒng)增加新的功能時,不用重新設(shè)計系統(tǒng),只需增加新的模塊即可。
危險駕駛預(yù)警系統(tǒng)按功能進行劃分,可以分為采集模塊、分析模塊、互聯(lián)模塊、預(yù)警模塊,其中每個模塊包含的功能如下。
(1)采集模塊,該模塊的功能是在移動設(shè)備打開定位系統(tǒng)的情況下采集坐標。具體方法是在固定長度的時間段內(nèi),以固定的時間間隔采樣車輛的坐標,每個車輛的坐標使用經(jīng)度和緯度表示,一個時間段內(nèi)已采樣好的所有坐標將全部傳給分析模塊進行分析。
(2)分析模塊,該模塊通過分析采集模塊已采集的一段時間內(nèi)的坐標,計算每個坐標和相鄰坐標在車身長度和寬度方向上的差值,從而分析出搭載移動設(shè)備的車輛的速度和行駛路徑,判斷車輛是否為危險駕駛。由于目前移動設(shè)備智能化程度越來越高,其運算速度越來越快,因此將分析模塊放在移動設(shè)備端較為合理。
(3)互聯(lián)模塊,如果分析模塊得出此時車輛正在危險駕駛,互聯(lián)模塊就會探測移動設(shè)備和車輛是否已建立藍牙互聯(lián)。如果已建立,互聯(lián)模塊使用已有的藍牙互聯(lián);如果還未建立,互聯(lián)模塊使用移動設(shè)備和車輛通過藍牙建立互聯(lián)。在藍牙互聯(lián)建立好的基礎(chǔ)上,移動設(shè)備向車輛傳遞危險駕駛信號,車輛的藍牙模塊接收此信號。
(4)預(yù)警模塊,該模塊的主要作用是在判定車輛為危險駕駛后進行預(yù)警。該模塊主要包含兩個方面的預(yù)警:移動設(shè)備的預(yù)警和車輛的預(yù)警。移動設(shè)備的預(yù)警是指在判定危險駕駛后,系統(tǒng)會自動給司機聯(lián)絡(luò)人發(fā)送消息和撥打電話。車輛的預(yù)警是指車輛會自動打開車燈閃爍和鳴笛,提醒路上行人和其他車輛避讓。
采集模塊的主要作用是采集車輛的行駛坐標。因為車輛搭載了移動設(shè)備,所以只需要采集移動設(shè)備的坐標就能得到車輛的坐標。該模塊的工作流程是打開移動設(shè)備的定位系統(tǒng),每隔5 s采集定位系統(tǒng)發(fā)送的位置坐標,其中坐標以[經(jīng)度,緯度]的形式顯示。采集過程中,將所有坐標暫時存在緩存中,3 min后采樣結(jié)束,將緩存中的所有數(shù)據(jù)傳遞到分析模塊,然后繼續(xù)進行3 min的采樣。如此循環(huán)地采集3 min,再將3 min內(nèi)的坐標全部傳給分析模塊,直到分析模塊得出分析結(jié)果,此時采集模塊停止工作。該模塊的工作流程如圖1所示。

圖1 采集模塊工作流程
分析模塊是整個系統(tǒng)最重要的模塊,它相當于整個系統(tǒng)的“大腦”。在該模塊中,采集模塊每3 min得到的所有坐標都傳遞到分析模塊中,分析模塊根據(jù)已設(shè)置的算法對這些坐標數(shù)據(jù)進行分析和計算,從而得出車輛的軌跡和速度。根據(jù)車輛的軌跡是否為明顯的曲線、速度是否超速,從而判斷車輛是否為危險駕駛[3]。分析模塊的算法包括判定為行駛軌跡為明顯曲線的算法和判定為超速的算法。
判定行駛軌跡為明顯曲線采用以下算法。在獲取采樣3 min內(nèi)的所有坐標后,若這些坐標點的第一個坐標為[x0,y0],5 s 后的采樣點坐標為[x1,y1],計算兩個坐標點在車身寬度方向上的距離之差d。如果d>5 min,則判定[x1,y1]為一個危險駕駛坐標點;否則[x1,y1]不為危險駕駛坐標點。若[x1,y1]坐標點5 s后的坐標點為[x2,y2],計算兩個坐標點在車身寬度方向上的距離之差d。若d>5 min,則判定[x2,y2]為一個危險駕駛坐標點;否則[x2,y2]不為危險駕駛坐標點。以上述同樣的方法判斷后續(xù)[x3,y3][x4,y4]…[xn,yn]的所有坐標點,依次判斷每個坐標點是否為危險駕駛坐標點。若[x0,y0]到[xn,yn]的所有坐標點中,有2/3的坐標為危險坐標,那么可以判定車輛在這采樣的3 min內(nèi)發(fā)生了危險駕駛;否則,判定車輛沒有發(fā)生危險駕駛。這里可以判定的危險駕駛是醉駕或疲勞駕駛,行車軌跡是明顯的曲線。
判定為超速采用以下算法。在接收采樣3 min內(nèi)的所有坐標后,若這些坐標點的第一個坐標為[x0,y0],5 s后的采樣點坐標為[x1,y1],計算兩個坐標點在車身長度方向上的距離之差d。如果d>當前路段安全行駛5 s的距離時,則判定[x1,y1]為一個危險駕駛坐標點;否則[x1,y1]不為危險駕駛坐標點。若[x1,y1]5 s后的坐標點為[x2,y2],以上述同樣的方法判定[x1,y1]與[x2,y2]在車身長度方向上的距離d。若d>當前路段安全行駛5 s的距離時,則判定[x2,y2]為一個危險駕駛坐標點;否則[x2,y2]不為危險駕駛坐標點。以上述同樣的方法判斷后續(xù)[x3,y3][x4,y4]…[xn,yn]的所有坐標點,判斷每個坐標點是否為危險駕駛坐標點。若[x0,y0]到[xn,yn]的所有坐標點中,有2/3的坐標為危險坐標,那么可以判定車輛在這采樣的3 min內(nèi)發(fā)生了危險駕駛;否則,判定車輛沒有發(fā)生危險駕駛。此時,可以判定危險駕駛屬于超速。
分析模塊判定車輛為危險駕駛后,即發(fā)出信號使采集模塊停止工作,互聯(lián)模塊啟動將移動設(shè)備和車輛的定位互聯(lián),此時報警模塊啟動進行移動設(shè)備和車輛的報警。反之,若分析模塊沒有判定車輛為危險駕駛,那么采集模塊會一直進行采集工作,不斷地將每3 min內(nèi)的數(shù)據(jù)傳送到分析模塊,此過程中互聯(lián)模塊、報警模塊都不啟動工作。
當分析模塊判定車輛處于危險駕駛狀態(tài)后,互聯(lián)模塊的主要功能是進行移動設(shè)備和車輛的藍牙設(shè)備互聯(lián)。因為移動設(shè)備和車輛可能在發(fā)生危險駕駛之前已經(jīng)建立了藍牙設(shè)備互聯(lián),所以互聯(lián)模塊會先探測是否已經(jīng)建立互聯(lián),如果已經(jīng)建立,則使用已有的藍牙設(shè)備互聯(lián),互聯(lián)模塊不再建立新的藍牙設(shè)備互聯(lián);如果沒有建立,那么互聯(lián)模塊發(fā)出指令讓移動設(shè)備與車輛建立藍牙設(shè)備互聯(lián)。
互聯(lián)模塊促使移動設(shè)備和車輛建立新的藍牙設(shè)備互聯(lián)的工作過程如下:車輛和移動設(shè)備的藍牙設(shè)備都處于發(fā)現(xiàn)狀態(tài),移動設(shè)備搜索到車載藍牙,彈出配對密碼,車載藍牙輸入配對密碼,移動設(shè)備和車輛就建立了藍牙設(shè)備互聯(lián)。
藍牙互聯(lián)建立好后,如果分析模塊判定車輛發(fā)生了危險駕駛,移動設(shè)備就將危險駕駛信號通過此互聯(lián)傳遞給車輛,車輛接收危險駕駛信號。如果分析模塊判定車輛沒有危險駕駛,整個互聯(lián)模塊將不啟動工作。整個互聯(lián)模塊的工作流程如圖2所示。

圖2 互聯(lián)模塊工作流程
預(yù)警模塊的主要作用是進行預(yù)警,是在分析模塊得出車輛為危險駕駛后,系統(tǒng)自動進行預(yù)警;該模塊主要包含移動設(shè)備的預(yù)警和車輛的預(yù)警。其中,移動設(shè)備的預(yù)警是指系統(tǒng)可以事先設(shè)置司機聯(lián)絡(luò)人,在發(fā)生危險駕駛后,系統(tǒng)會自動給司機聯(lián)絡(luò)人發(fā)送消息和撥打電話,告知司機聯(lián)絡(luò)人目前司機處于危險駕駛狀態(tài),司機聯(lián)絡(luò)人可以第一時間聯(lián)系司機,阻止司機的危險駕駛行為。車輛預(yù)警是指車輛收到危險駕駛信號后,會自動閃爍車燈和鳴笛,提醒路上的其他車輛和行人注意避讓,盡量避免危險駕駛交通事故的發(fā)生。
本文設(shè)計了一種基于移動設(shè)備的危險駕駛預(yù)警系統(tǒng),首先分析了該系統(tǒng)的需求,然后根據(jù)需求對本系統(tǒng)進行了模塊設(shè)計。整個系統(tǒng)按照模塊劃分,分為采集模塊、分析模塊、互聯(lián)模塊、預(yù)警模塊,每個模塊各司其職,實現(xiàn)不同的功能。本系統(tǒng)使用人們經(jīng)常隨身攜帶的移動設(shè)備和車輛設(shè)計,不用增加其他設(shè)備,系統(tǒng)設(shè)計簡單、便捷。一旦移動設(shè)備判定車輛發(fā)生危險駕駛后,移動設(shè)備可以自動且及時地聯(lián)系司機聯(lián)絡(luò)人,危險駕駛車輛可以立即警示路上其他車輛和行人,因此本系統(tǒng)可以智能和便捷地避免危險駕駛事故的發(fā)生,在一定程度上降低實際生活中的交通事故發(fā)生概率。