仲 正,宋小軍
(上海電力大學(xué) 電子與信息工程學(xué)院,上海 200120)
隨著國家政策對新能源的支持,以及人工智能的飛速發(fā)展,汽車的智能化程度正在大幅提高,如何提升汽車的主動安全性,成為了關(guān)注和研究的熱點。高級駕駛輔助系統(tǒng)(ADAS,advanced driving assistant system)是利用安裝在車上的各類傳感器(主要包括攝像頭、毫米波雷達、激光雷達、超聲波雷達等),在行駛過程中實時采集周圍的環(huán)境數(shù)據(jù),對識別環(huán)境中的行人、車道線、車輛、路標(biāo)等信息進行辨識、跟蹤及預(yù)測,當(dāng)系統(tǒng)發(fā)現(xiàn)危險時能夠?qū)︸{駛員預(yù)警并采取相應(yīng)措施,進而提高汽車駕駛的主動安全性[1]。
安全駕駛輔助的前提是需要精確感知周圍環(huán)境目標(biāo)的方向、距離、速度等信息,然而各傳感器在產(chǎn)線安裝過程中,因車輛的個體差異或者傳感器的安裝角度等問題會造成探測數(shù)據(jù)偏差,進而對輔助駕駛系統(tǒng)的決策造成影響,直接影響系統(tǒng)的穩(wěn)定性和客戶的滿意度。為更精確的實現(xiàn)功能,量產(chǎn)車輛在出廠前必須進行傳感器的標(biāo)定,然而通過手動調(diào)整各傳感器安裝位置,往往很難準確滿足系統(tǒng)要求且耗時,而且對于不同車型,系統(tǒng)通常需要單獨修改定制,標(biāo)定工具功能界面復(fù)雜,不適宜產(chǎn)線工人操作。
在目前的駕駛輔助系統(tǒng)方案中,單一傳感器往往存在一定的局限性,多傳感器信息融合技術(shù)[2-4]已經(jīng)成為智能駕駛輔助系統(tǒng)中的一種趨勢。在多傳感器系統(tǒng)中,各傳感器檢測的目標(biāo)信息都是相對于自身坐標(biāo)系的,所以各傳感器在單獨標(biāo)定以后,還必須進行聯(lián)合標(biāo)定以確保各傳感器有一個統(tǒng)一的轉(zhuǎn)換坐標(biāo)系。
針對上述問題,設(shè)計了一種針對多傳感器的下線標(biāo)定系統(tǒng),該系統(tǒng)完成了對前向攝像頭和前向毫米波雷達的單獨標(biāo)定和聯(lián)合標(biāo)定[5],通過基于CAN總線的統(tǒng)一診斷服務(wù)(UDS, unified diagnostic services)協(xié)議設(shè)計了整個下線標(biāo)定的流程,并且專門設(shè)計了針對下線標(biāo)定系統(tǒng)的上位機,不僅簡化了量產(chǎn)中標(biāo)定的流程,而且降低了產(chǎn)線工人操作的難度。
本系統(tǒng)涉及到的ADAS平臺主要由主控制器模塊、攝像頭模塊、毫米波雷達模塊等組成[6],下線標(biāo)定系統(tǒng)依賴該平臺架構(gòu)進行設(shè)計。下線標(biāo)定系統(tǒng)需在標(biāo)定工位中進行,整體組成如圖1所示,將搭載ADAS平臺的車輛駛?cè)霕?biāo)定工位以后,擺正車身,將控制臺(上位機)的線束接入車載自診斷系統(tǒng)(OBD, on board diagnostics)接口,接著打開上位機標(biāo)定軟件,查看上位機與車輛的連接狀態(tài)。在成功連接的狀態(tài)下,用掃碼槍掃描車輛識別碼(VIN, vehicle identification number)識別車輛型號,掃碼槍會自動在上位機標(biāo)定軟件中輸入VIN碼。一切就緒后,開始啟動上位機標(biāo)定軟件中的標(biāo)定流程,攝像頭利用棋盤格標(biāo)定板標(biāo)定,毫米波雷達則利用角反射器標(biāo)定, 利用自身結(jié)構(gòu)特性建立數(shù)學(xué)模型計算出各傳感器的外部參數(shù)。當(dāng)攝像頭和毫米波雷達分別標(biāo)定結(jié)束后,上位機標(biāo)定軟件給出標(biāo)定結(jié)果,若標(biāo)定外參在合理范圍之內(nèi)則標(biāo)定成功,最后車輛駛離標(biāo)定工位。
圖1 系統(tǒng)組成
下線標(biāo)定系統(tǒng)需滿足車規(guī)級標(biāo)準,為保證軟硬件正常高效運行,系統(tǒng)應(yīng)具備汽車軟件應(yīng)有的特性。系統(tǒng)必須在規(guī)定的條件下實現(xiàn)規(guī)定的功能,盡可能不引起系統(tǒng)失效,必須在毫秒級的時間內(nèi)對外界輸入做出響應(yīng),保證對突發(fā)情況的出現(xiàn)及時處理。系統(tǒng)應(yīng)按照相關(guān)安全標(biāo)準執(zhí)行,避免事故的發(fā)生或減輕傷亡的程度。系統(tǒng)的各功能模塊應(yīng)可移植,避免重復(fù)開發(fā),不依賴于特定操作系統(tǒng)、芯片和車型,最大化程度實現(xiàn)硬件抽象。
如圖2所示,基于ADAS平臺的下線標(biāo)定系統(tǒng)硬件部分主要包括數(shù)據(jù)采集端和控制器端兩大部分。數(shù)據(jù)采集端是駕駛輔助系統(tǒng)感知數(shù)據(jù)的來源,主要由車身的數(shù)據(jù)和傳感器的數(shù)據(jù)組成,車身數(shù)據(jù)包括車身速度、偏航角、剎車信號、轉(zhuǎn)向信號等,傳感器數(shù)據(jù)包括攝像頭和毫米波雷達采集的數(shù)據(jù),主要包括圖像數(shù)據(jù)、目標(biāo)列表、目標(biāo)距離、目標(biāo)速度、目標(biāo)角度等。控制器端主要依托基于ARM的德州儀器TDA4VM處理器,是系統(tǒng)的核心部分,主要負責(zé)攝像頭和毫米波雷達原始數(shù)據(jù)解析、UDS診斷通訊、算法數(shù)據(jù)融合等功能模塊。上位機通過CAN總線分析儀與控制器端連接,用來啟動下線標(biāo)定流程。
圖2 系統(tǒng)硬件架構(gòu)圖
為滿足系統(tǒng)處理速度的要求,以及后續(xù)功能擴展需求,主控模塊型號采用基于ARM的TDA4VM芯片,系統(tǒng)采用符合POSIX.1標(biāo)準的Linux操作系統(tǒng)。該芯片功能強大,有豐富的外設(shè)接口,內(nèi)部集成雙核64位Arm Cortex-A72微處理器,主頻高達2.0 GHz,并且集成6個Arm Cortex-R5F MCU,無需使用外部系統(tǒng)微控制器,為集中式 ECU 或獨立傳感器中多種傳感器模式的高級汽車平臺實現(xiàn)可擴展性和更低的成本。在符合功能安全標(biāo)準的前提下,集成了標(biāo)量和矢量內(nèi)核的DSP、專用深度學(xué)習(xí)和傳統(tǒng)算法加速器、用于通用計算的GPU處理器、集成式成像子系統(tǒng)、視頻編解碼器、以太網(wǎng)集線器以及隔離式MCU島。
攝像頭模塊由鏡頭、鏡頭模組、濾光片、互補金屬氧化物半導(dǎo)體、電荷耦合元件、圖像處理器、數(shù)據(jù)傳輸?shù)饶K組成,由于價格便宜、檢測信息全面等優(yōu)點廣泛應(yīng)用于駕駛輔助系統(tǒng)中。相比于傳統(tǒng)的光電探測方式,攝像頭是基于可見光成像通信技術(shù),以圖像序列的形式捕捉二維數(shù)據(jù),在大多數(shù)嵌入式設(shè)備中,無需增加接收機的成本,可以傳輸更多的信息,提供更加準確的數(shù)據(jù)。
攝像頭模塊型號采用安森美半導(dǎo)體的AR0820AT傳感器,該傳感器是專門為汽車輔助駕駛定制的一款 1/2英寸 CMOS 數(shù)字圖像傳感器,支持MIPI接口,能夠在低光度和高動態(tài)范圍場景下捕捉圖像,自帶LFM模式可消除圖像中的高頻LED閃爍,能夠同時捕捉連續(xù)視頻和單幀圖像,最大幀率每秒達到40 fps,可以很好地滿足車規(guī)級的要求,廣泛應(yīng)用于輔助駕駛和自動駕駛系統(tǒng)中,該傳感器參數(shù)見表1。
表1 AR0820AT傳感器參數(shù)表
毫米波雷達的基本原理是通過發(fā)射一束電磁波,基于回波與入射波的差異來計算距離、速度等信息。一般用速度差分辨率、角分辨率和距離探測精度等指標(biāo)來衡量毫米波雷達的成像精度,毫米波頻率越高,帶寬越大,成像越精細。毫米波雷達模塊主要用于檢測交通車輛和道路兩旁的靜止護欄,安裝在車身前部,檢測速度快,精度高,不易受到天氣干擾,在大霧等特殊環(huán)境中穿透性較好,相比激光雷達,硬件成本相對較低。
毫米波雷達模塊采用德爾福的ESR前向雷達,該雷達是一款77G中長距毫米波雷達,具有長距加中距雙探測模式,其最大探測距離車輛可達175米,同時追蹤目標(biāo)數(shù)高達64個。Delphi-ESR傳感器參數(shù)如表2所示。
表2 Delphi-ESR傳感器參數(shù)表
下線標(biāo)定系統(tǒng)功能需要建立上位機與車輛主控模塊的通訊連接,通訊需要考慮數(shù)據(jù)的傳輸效率、使用成本以及使用場景等。CAN總線協(xié)議是由德國電氣廠商博世公司研制的一款高性能串行總線協(xié)議,抗電子干擾能力強,可以進行高效率高寬帶的實時性傳輸,現(xiàn)已成為汽車網(wǎng)絡(luò)的標(biāo)準協(xié)議,所以本文選擇CAN總線作為通訊總線,采用廣成科技的USB轉(zhuǎn)CAN總線分析儀建立上位機和車輛的連接。
基于ADAS平臺的下線標(biāo)定系統(tǒng)的軟件部分由下位機端軟件設(shè)計、上位機端軟件設(shè)計和基于CAN總線的UDS診斷設(shè)計三部分組成。上位機通過CAN總線向下位機發(fā)送診斷服務(wù)指令啟動標(biāo)定流程,下位機根據(jù)診斷服務(wù)指令執(zhí)行相應(yīng)的標(biāo)定動作,本節(jié)將重點介紹攝像頭和毫米波雷達下線標(biāo)定的核心算法和標(biāo)定流程。
為完成各模塊之間的通信,需定義完整的通信規(guī)范和協(xié)議,UDS診斷協(xié)議定義了一套基于診斷服務(wù)的通信框架,使用該框架可建立起外部設(shè)備與主控模塊的通信渠道。UDS診斷協(xié)議基于OSI網(wǎng)絡(luò)模型,不同的總線傳輸方式,實現(xiàn)標(biāo)準和規(guī)范也不同[7-11]。
基于CAN總線的UDS診斷,傳輸層和網(wǎng)絡(luò)層采用ISO 15765-2協(xié)議實現(xiàn),作為服務(wù)提供者和服務(wù)應(yīng)用者,為數(shù)據(jù)鏈路層和應(yīng)用層提供相應(yīng)的服務(wù)數(shù)據(jù)交互信息。所有的網(wǎng)絡(luò)層服務(wù)都具有相同的通用結(jié)構(gòu),其定義了3種服務(wù)原語類型:Request、Confirm和Indication。物理層和鏈路層采用ISO 11898協(xié)議,該協(xié)議定義的數(shù)據(jù)幀中的數(shù)據(jù)段一次只能傳輸最大支持8字節(jié),為支持長數(shù)據(jù)發(fā)送,ISO 15765-2定義了單幀(SF)和多幀報文傳輸兩種模式,當(dāng)數(shù)據(jù)段超過8個字節(jié)時,則需要將報文數(shù)據(jù)拆分后多次傳輸,多幀報文類型分為首幀(FF)、連續(xù)幀(CF)、流控幀(FC)。應(yīng)用層采用ISO 14229-1協(xié)議實現(xiàn),該協(xié)議與底層鏈路通信無關(guān),可以在任意網(wǎng)絡(luò)通信基礎(chǔ)之上提供診斷服務(wù),主要根據(jù)報文格式來區(qū)分不同的診斷服務(wù),定義了6種原語:Request、Request-Confirmation、Indication、Response、Response-Confirmation和Confirmation。根據(jù)診斷服務(wù)的功能分類,可分為診斷和通信管理單元、數(shù)據(jù)傳輸功能單元、存儲數(shù)據(jù)傳輸功能單元、輸入輸出控制功能單元、例行程序功能單元和上傳下載功能單元。
基于CAN總線的UDS診斷基于客戶端-服務(wù)端(C/S)模型,支持物理尋址和功能尋址方式,客戶端到服務(wù)端各層之間的服務(wù)原語工作流程如圖3所示。
圖3 服務(wù)原語工作流程圖
實際前裝量產(chǎn)場景中,主控模塊安裝在車身中,主控模塊上的一路CAN總線連接在整車CAN總線上,外部設(shè)備一般只能通過車身OBD接口建立和主控模塊之間的通訊。在啟動標(biāo)定時,上位機通過CAN總線分析儀接入車身OBD接口,間接建立上位機與主控模塊的診斷通訊。上位機和主控模塊需分別實現(xiàn)完整的UDS協(xié)議棧,部分診斷服務(wù)命令如表3所示。
表3 診斷服務(wù)命令
下位機端軟件設(shè)計部分主要包括攝像頭和毫米波雷達的單獨標(biāo)定和聯(lián)合標(biāo)定。各傳感器的單獨標(biāo)定是在汽車產(chǎn)線最后階段對整車上的各個傳感器自身進行外部幾何參數(shù)的校準,由于各傳感器感知的目標(biāo)數(shù)據(jù)一般都是根據(jù)自身建立坐標(biāo)系產(chǎn)生的數(shù)據(jù),聯(lián)合標(biāo)定就是將不同位置的傳感器感知的目標(biāo)數(shù)據(jù)通過坐標(biāo)轉(zhuǎn)換到一個統(tǒng)一的自車坐標(biāo)系下(世界坐標(biāo)系)下。本節(jié)將分別介紹攝像頭和毫米波雷達下線標(biāo)定的原理和標(biāo)定流程。
3.2.1 攝像頭標(biāo)定原理
攝像頭標(biāo)定過程中需要求解攝像頭的內(nèi)參和外參,內(nèi)參包括攝像頭的焦距、光軸偏移量、鏡頭畸變參數(shù)等,外參由在世界坐標(biāo)系中的位置確定。標(biāo)定過程采用張正友標(biāo)定方法[12],通過輸入帶有標(biāo)定圖案的標(biāo)定板來計算內(nèi)參和外參,從而建立實際物理點(世界坐標(biāo)系)到圖像上點(像素坐標(biāo)系)的映射關(guān)系。將世界坐標(biāo)系上的坐標(biāo)(Xw,Yw,Zw)轉(zhuǎn)換為像素坐標(biāo)系坐標(biāo)(u,v),需要經(jīng)歷三次坐標(biāo)轉(zhuǎn)換過程,計算公式如下:
(1)
式中,Zc為尺度因子;fx、fy分別為攝像頭在x、y軸方向上的歸一化焦距;u0、v0為圖像坐標(biāo)系在x、y軸方向上的偏移量;R、T表示外參矩陣的旋轉(zhuǎn)和平移向量;M1、M2分別為攝像頭的內(nèi)參和外參矩陣。
圖4 攝像頭坐標(biāo)轉(zhuǎn)換
以上是理想情況下(不考慮畸變參數(shù))世界坐標(biāo)系到像素坐標(biāo)系的轉(zhuǎn)換。由于攝像頭制造工藝的原因,其成像過程中難免存在著畸變,在后續(xù)構(gòu)建精確的三維重建算法前,需要對攝像頭的畸變進行矯正,以提高標(biāo)定的精度[13-14]。攝像頭畸變一般分為徑向畸變和切向畸變[15]。徑向畸變是由于制造工藝的原因,鏡片中間厚、邊緣薄,光線在遠離透鏡中心的地方,會發(fā)生更大程度的扭曲。切向畸變則是由于成像平面與透鏡平面不平行,產(chǎn)生了透視變換。由于切向畸變對標(biāo)定的誤差影響較小,所以主要考慮徑向畸變的影響,徑向畸變可以由以下公式描述。
(2)
式中,(x、y)為發(fā)生畸變后像素點的坐標(biāo);(x′、y′)為去除畸變矯正后的像素點坐標(biāo);r為曲率半徑;k1、k2、k3為徑向畸變系數(shù)。
在車輛前裝量產(chǎn)過程中,如果在標(biāo)定工位中同時求解攝像頭的內(nèi)參和外參,需要從不同方位拍攝多張標(biāo)定板照片,計算和操作復(fù)雜[16-18]。量產(chǎn)中攝像頭型號一般是固定的,在不改變攝像頭焦距的情況下,攝像頭的內(nèi)參可以看作是固定的,可以事先根據(jù)張正友算法計算出攝像頭的內(nèi)參,并利用極大似然估計迭代優(yōu)化精度。在產(chǎn)線進行下線標(biāo)定時,只需在標(biāo)定工位拍一張標(biāo)定板照片就可以估計出攝像頭的位姿,即求出此時的外參,最終求出公式(1)(2)中的所有未知參數(shù),同時也建立了世界坐標(biāo)系到像素坐標(biāo)系的轉(zhuǎn)換關(guān)系。
3.2.2 攝像頭標(biāo)定流程
根據(jù)攝像頭標(biāo)定原理,在已知攝像頭內(nèi)參的情況下求攝像頭的外參,需要得到攝像頭坐標(biāo)系到世界坐標(biāo)系的轉(zhuǎn)換關(guān)系,即測量此時攝像頭安裝在車輛上的位置和姿態(tài)關(guān)系。攝像頭坐標(biāo)系的原點到世界坐標(biāo)系的原點的位置關(guān)系可以通過測量工具求出,攝像頭此時的姿態(tài)需在標(biāo)定工位中計算得出。
車輛進入標(biāo)定工位以后,使標(biāo)定板的橫向位置和車輛的中軸線對齊,CAN總線分析儀接入車身OBD接口。當(dāng)打開上位機標(biāo)定工具后,首先寫入VIN碼和設(shè)定攝像頭安裝位置參數(shù)和標(biāo)定板安裝位置參數(shù),接著啟動攝像頭標(biāo)定算法程序,求出攝像頭的外參,當(dāng)標(biāo)定工具上彈出“攝像頭標(biāo)定完成,復(fù)位控制器”,說明攝像頭下線標(biāo)定完成,結(jié)束攝像頭標(biāo)定,攝像頭標(biāo)定協(xié)議流程如圖5所示。
圖5 攝像頭標(biāo)定協(xié)議流程圖
在攝像頭標(biāo)定流程中,安全訪問 27 功能分為兩個步驟,首先需要通過 01子功能控制命令來獲取種子,此種子為4個字節(jié)。上位機需要根據(jù)加密算法將獲取到的種子進行計算得到密鑰的值,然后通過子功能控制命令 02將計算出的密鑰值發(fā)送給主控模塊實現(xiàn)安全認證,主控模塊安全認證激活后,才可以進行后續(xù)標(biāo)定和寫入讀取等診斷步驟。
3.2.3 雷達標(biāo)定原理
前向毫米波雷達的下線標(biāo)定主要是對外參的標(biāo)定,雷達的外參是指雷達在安裝過程中存在的角度誤差,包括偏航角α、俯仰角β和翻滾角γ,如圖6所示。前向毫米波雷達的俯仰角和翻滾角一般可以在安裝時通過電子水平儀器來保證安裝的準確性,偏航角則需要在標(biāo)定工位中配合角反射器進行標(biāo)定。
如圖7所示,毫米波雷達的原始數(shù)據(jù)是基于目標(biāo)徑向距離和目標(biāo)方位角的極坐標(biāo)系,可以根據(jù)三角函數(shù)轉(zhuǎn)化得到目標(biāo)的二維笛卡爾坐標(biāo)系(XR,YR)。
圖7 雷達坐標(biāo)系與世界坐標(biāo)系轉(zhuǎn)換關(guān)系圖
(3)
式中,R為目標(biāo)到雷達的徑向距離;θ為目標(biāo)方位角,目標(biāo)在雷達面法線方向右側(cè)為正,左側(cè)為負。
由于毫米波雷達只有目標(biāo)的二維坐標(biāo)信息,沒有目標(biāo)的高度信息,因此可以將毫米波雷達坐標(biāo)系通過旋轉(zhuǎn)和平移轉(zhuǎn)換到世界坐標(biāo)系中。轉(zhuǎn)換矩陣由兩部分組成:由偏航角α所帶來的旋轉(zhuǎn)矩陣以及平移到世界坐標(biāo)系的原點所產(chǎn)生的平移矩陣。平移矩陣可以通過測量世界坐標(biāo)系原點到毫米波雷達的距離求出,旋轉(zhuǎn)矩陣則由雷達標(biāo)定后的偏航角α求出,毫米波雷達坐標(biāo)系到世界坐標(biāo)系的轉(zhuǎn)換關(guān)系可以用如下公式表示:
(4)
式中,R為旋轉(zhuǎn)矩陣,T為平移矩陣;α為雷達單獨標(biāo)定后的偏航角;d1為世界坐標(biāo)系原點到毫米波雷達的橫向距離,d2為世界坐標(biāo)系原點到毫米波雷達的縱向距離。
3.2.4 雷達標(biāo)定流程
根據(jù)雷達標(biāo)定原理,要得到毫米波雷達坐標(biāo)系到世界坐標(biāo)系的轉(zhuǎn)換關(guān)系,需要求出偏航角α、世界坐標(biāo)系原點到毫米波雷達的橫向距離d1和縱向距離d2。橫向距離d1和縱向距離d2可以直接使用測量工具得出,偏航角α的測量則需在標(biāo)定工位中標(biāo)定,利用毫米波雷達采集角反射器的徑向距離和方位角,可得到此時的方位角即是所求偏航角α。
前向毫米波雷達的標(biāo)定流程與攝像頭標(biāo)定流程類似。首先讓角反射器的橫向位置和車輛的中軸線對齊,角反射器的高度和雷達的安裝高度保持一致。在將雷達安裝位置參數(shù)、角反射器安裝參數(shù)設(shè)定完成后,上位機軟件界面點擊“雷達標(biāo)定”按鈕,啟動雷達標(biāo)定流程,雷達標(biāo)定流程如圖8所示。
圖8 雷達標(biāo)定協(xié)議流程圖
在雷達標(biāo)定流程中,首先下達指令讓雷達進入擴展會話,在此會話下進行關(guān)閉 DTC 紀錄,關(guān)閉成功后即可以實施標(biāo)定程序的開始工作。收到雷達開始標(biāo)定的反饋后,可以按照 200 毫秒的延時循環(huán)去詢問雷達是否標(biāo)定完成。標(biāo)定成功后,查詢標(biāo)定結(jié)果,返回標(biāo)定成功后的偏航角。如果偏航角超出誤差校準范圍,需要重新調(diào)整雷達法線朝向,如果在合理范圍,需要將主控模塊中雷達所獲目標(biāo)信息做出補償。
3.2.5 聯(lián)合標(biāo)定
實現(xiàn)毫米波雷達和攝像頭數(shù)據(jù)融合的關(guān)鍵在于建立精確的世界坐標(biāo)系、毫米波雷達坐標(biāo)、攝像頭坐標(biāo)系、圖像坐標(biāo)系和像素坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。毫米波雷達與攝像頭傳感器在空間的融合就是將不同傳感器坐標(biāo)系的測量值轉(zhuǎn)換到同一個坐標(biāo)系中,可以將毫米雷達坐標(biāo)系下的測量點通過坐標(biāo)系轉(zhuǎn)換到攝像頭對應(yīng)的像素坐標(biāo)系下即可實現(xiàn)兩者空間同步。由于毫米波雷達所獲目標(biāo)坐標(biāo)是二維坐標(biāo),轉(zhuǎn)化后的世界坐標(biāo)系Zw值可以根據(jù)先驗知識給定,假設(shè)毫米波雷達所獲目標(biāo)高度為H,則根據(jù)式(3)、(4)可以得到目標(biāo)中心點的世界坐標(biāo)為:
(5)
代入式(1),可求得毫米波雷達坐標(biāo)系下的目標(biāo)點到攝像頭像素坐標(biāo)系下的轉(zhuǎn)換關(guān)系,從而完成了毫米波雷達和攝像頭的聯(lián)合標(biāo)定。
主控模塊在實現(xiàn)算法和標(biāo)定功能后,還需要對應(yīng)的外部設(shè)備作為客戶端對其發(fā)送診斷服務(wù)請求,并解析主控模塊響應(yīng)的診斷報文。針對以上需求,基于C++和QT框架設(shè)計并實現(xiàn)下線標(biāo)定系統(tǒng)上位機軟件,其整體架構(gòu)設(shè)計如圖9所示。上位機端軟件主要分為3個部分:圖形層、應(yīng)用層、數(shù)據(jù)交互層。圖形層使用QTDesigner設(shè)計程序的可視化界面,由主界面和安裝參數(shù)設(shè)定界面組成,主界面負責(zé)顯示標(biāo)定的步驟,并且顯示每個步驟執(zhí)行的狀態(tài)(成功、失敗和等待);安裝參數(shù)設(shè)定界面負責(zé)配置攝像頭、雷達和標(biāo)靶的安裝位置信息。應(yīng)用層負責(zé)根據(jù)項目配置文件初始化程序,啟動標(biāo)定的流程,以及根據(jù)診斷服務(wù)ID解析請求和響應(yīng)的報文。數(shù)據(jù)交互層負責(zé)配置文件讀寫、日志記錄和CAN模塊的處理,其中CAN模塊主要實現(xiàn)了UDS診斷的數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層通過采用廣成科技的CAN總線分析儀提供的動態(tài)鏈接庫進行二次開發(fā),網(wǎng)絡(luò)層實現(xiàn)的是時序控制和數(shù)據(jù)幀的分包和組包過程。
為防止主線程阻塞和保持功能獨立性,上位機需設(shè)置主線程、發(fā)送線程和接收線程3個線程。主線程主要負責(zé)UI線程的渲染。發(fā)送線程負責(zé)啟動攝像頭和毫米波雷達的標(biāo)定流程,若發(fā)送的診斷報文大于7字節(jié)則需拆分成首幀和連續(xù)幀按序發(fā)送。接收線程需要從CAN通訊模塊中的接收數(shù)據(jù)緩沖區(qū)中輪詢讀取診斷響應(yīng)報文,由于主控模塊連接在整車CAN總線上,緩沖區(qū)會有大量不相關(guān)報文,所以需要根據(jù)診斷ID進行過濾,接著再對數(shù)據(jù)幀的類型進行判斷,若為多幀則需重組成完整的數(shù)據(jù)幀,再根據(jù)診斷服務(wù)的類型對重組后的數(shù)據(jù)幀進行解析。發(fā)送線程和接收線程是基于生產(chǎn)者和消費者的模型,發(fā)送線程發(fā)送報文后,發(fā)送線程等待接收線程響應(yīng),若響應(yīng)成功,則進行下個標(biāo)定流程,直到成功完成整個標(biāo)定過程,失敗則根據(jù)響應(yīng)報文給出失敗原因。
圖10 線程處理流程圖
在系統(tǒng)設(shè)計完成后,為保證整個下線標(biāo)定系統(tǒng)能在實際環(huán)境中正常運行,需要對系統(tǒng)進行實車測試。
整個標(biāo)定工位需要包含車輛停放區(qū)域,雷達標(biāo)定設(shè)備區(qū)域和攝像頭標(biāo)定設(shè)備區(qū)域,用于標(biāo)定雷達的角反射器需要放置在車輛前方的空曠區(qū)域[19-20],用于標(biāo)定攝像頭的標(biāo)定板需要安裝在車輛前方空中,各區(qū)域不重合,標(biāo)定工位如圖11所示。攝像頭安裝在車輛擋風(fēng)玻璃處,前向毫米波雷達安裝于汽車前保險杠的中間位置,雷達安裝時連接器朝上,安裝位置正前方不能有金屬件,且覆蓋件厚度均勻,結(jié)構(gòu)平整。
圖11 標(biāo)定工位
上位機以跨平臺框架QT和C++語言作為編程環(huán)境,為方便產(chǎn)線工人操作,簡化了軟件界面和操作邏輯,設(shè)計了如圖12所示的上位機標(biāo)定工具,標(biāo)定主界面由VIN輸入框、標(biāo)定流程和啟動標(biāo)定按鈕組成。
圖12 上位機標(biāo)定主界面
在啟動下線標(biāo)定流程之前,需在上位機安裝參數(shù)設(shè)定界面設(shè)定攝像頭、雷達以及對應(yīng)標(biāo)靶的安裝位置參數(shù),在啟動標(biāo)定流程之后,會將這些參數(shù)通過診斷服務(wù)傳入到主控模塊中,以便計算出攝像頭坐標(biāo)系和雷達坐標(biāo)系相對于世界坐標(biāo)系的位置和姿態(tài)關(guān)系。世界坐標(biāo)系原點的選取會影響安裝參數(shù)中測量參照物的選取,若取前保險杠中心為世界坐標(biāo)系原點,則需設(shè)定如表5所示的安裝參數(shù)信息。
表5 安裝參數(shù)
在下線標(biāo)定過程中抓取上位機和下位機通訊的部分診斷報文如圖13所示,經(jīng)過對診斷報文的分析,攝像頭標(biāo)定和毫米波雷達標(biāo)定功能均可正常工作。
圖13 診斷報文
攝像頭和毫米波雷達完成下線標(biāo)定以后,對其進行準確性測試。準確性測試采用靜態(tài)單目標(biāo)測試方法,實驗車輛在開闊場地靜止,測試目標(biāo)停留在實驗車輛正前方,由近到遠采集不同距離的目標(biāo)定位數(shù)據(jù),每次采集數(shù)據(jù)時長兩分鐘約3 000幀,測試結(jié)果如表6所示。
表6 單目標(biāo)不同距離測試數(shù)據(jù)
由表6可知,測距誤差均值與毫米波雷達本身的測量誤差0.25 m相近,將目標(biāo)物的毫米波雷達點投影到圖像上,投影點與圖像檢測框坐標(biāo)匹配的比率是93.2%,整體上能夠滿足輔助駕駛系統(tǒng)中對目標(biāo)感知定位精度的要求。
本文介紹了在實際產(chǎn)線量產(chǎn)工程中一種可行的ADAS下線標(biāo)定系統(tǒng)設(shè)計,解釋了攝像頭和毫米波雷達的標(biāo)定原理,完成了攝像頭和毫米波雷達的單獨標(biāo)定和聯(lián)合標(biāo)定,并且利用基于CAN總線的UDS診斷服務(wù)協(xié)議設(shè)計了整個下線標(biāo)定的流程。下線標(biāo)定的目的在于校準各傳感器的外參,建立精確的世界坐標(biāo)系、毫米波雷達坐標(biāo)、攝像頭坐標(biāo)系、圖像坐標(biāo)系和像素坐標(biāo)系之間的轉(zhuǎn)換關(guān)系,可以為后續(xù)攝像頭和毫米波雷達數(shù)據(jù)融合奠定基礎(chǔ),經(jīng)過對下線標(biāo)定系統(tǒng)的功能性測試以及對下線標(biāo)定完成后的準確性測試,本設(shè)計基本能夠滿足輔助駕駛系統(tǒng)中下線標(biāo)定的要求。