惠 飛,張師源,孫加新,馮 耀
(長安大學 信息工程學院,陜西 西安 710064)
自動駕駛車輛技術能有效地減少城市交通擁堵、改善道路交通污染、提高交通安全[1],可以有效地降低人為因素引起的交通事故率,廣泛應用于公共交通、貨運物流、軍事等領域[2]。近些年來,各大車企、互聯網公司和高校都對自動駕駛技術進行了研究,自動駕駛技術在全世界開始了新一輪的核心技術發展期[3]。自動駕駛汽車搭載了大量高精度傳感器[4],實時采集和監測自動駕駛汽車上各類傳感器的數據是自動駕駛技術開發和測試的一個重要環節[5]。自動駕駛算法模型訓練和驗證需要大量數據集支撐,標注處理后的數據集對算法的訓練和研究有更大的價值[6]。對實際駕駛過程中的車輛進行實時的數據采集,使自動駕駛汽車的測試驗證更加真實和準確,對于提高自動駕駛測試的準確度和可靠性,減少自動駕駛技術的測試和開發周期起到重要作用[7]。
針對目前自動駕駛技術測試和開發對于實時數據的需求,該文設計實現了一種自動駕駛數據采集與管理系統。該系統利用多傳感器模塊化的設計[8]實時采集車輛運行過程中的車輛狀態和環境數據,并利用車載工控機對采集到的數據進行數據處理,通過HTTP接口和FTP協議將數據發送至云端服務器進行存儲。云端服務器包含數據采集監控平臺和數據管理平臺兩部分,數據采集監控平臺能夠監控數據采集過程中車輛的實時狀態和各傳感器的運行連接狀態。數據管理平臺負責管理采集到的數據,使用MySQL數據庫存儲系統數據,TDengine時序數據庫[9]存儲傳感器數據,通過系統管理員、數據管理員、普通用戶三種角色[10],不同角色擁有不同操作權限,保證了數據的安全性,同時方便用戶下載使用采集到的傳感器數據,從而為自動駕駛技術開發和測試提供更有效的數據支持,進一步為自動駕駛技術的發展做出貢獻。
該系統主要由感知模塊、數據處理模塊、云端服務器、Web客戶端四部分組成。系統總體架構如圖1所示。

圖1 系統總體架構
其中感知模塊包含各類高精度傳感器,如:組合導航、毫米波雷達、激光雷達、工業相機和CAN分析儀等,通過多傳感器采集車輛狀態信息(如車輛位置、車輛姿態、車速、輪速、方向盤角度、油門踏板開合度等),以及周圍環境數據(如毫米波雷達數據、激光雷達點云數據、工業相機圖像數據);傳感器采用標準接口與工控機連接,在工控機上完成傳感器的初始化工作后開始數據采集,將采集到的傳感器數據進行處理、封裝,通過HTTP接口和FTP協議將數據上傳到云端NodeJS服務器。
云端服務器為基于Express框架的NodeJS高性能服務器[11],NodeJS由于本身異步[12]的特性,可以很好地支持高密度IO操作請求[13],保證數據采集過程中,系統能夠在數據處理模塊高頻率上傳數據時穩定運行。Express框架是一個用來快速搭建功能完整的Web應用和HTTP工具的簡潔且靈活的NodeJS框架[14],使用Express框架來搭建自動駕駛數據采集與管理系統的服務器,提供接收傳感器數據的HTTP接口和Web客戶端需要的數據下載接口。服務器通過HTTP接口接收到數據處理模塊上傳的傳感器數據,之后將數據存儲在數據庫中。
Web客戶端分為數據管理平臺和數據采集監控平臺,數據采集監控平臺可以實時監控車輛狀態和傳感器運行連接狀態,在傳感器或車輛出現異常情況時及時采取措施。數據管理平臺主要負責對用戶提供數據下載服務,用戶登錄系統后,根據角色不同展示不同菜單,可以進行數據查詢、數據下載、數據下載申請、數據維護等操作。
在感知模塊中,主要由ARS408-21毫米波雷達、velodyne32線激光雷達、FLIR工業相機、CAN分析儀、導遠INS570D組合導航五個傳感器組成。系統采用PLUSG0-CX02電源管理模塊為各類傳感器和工控機供電,通信模塊采用華為5G CPE Pro終端,保證了數據傳輸過程的穩定性和實時性。系統硬件連接示意圖如圖2所示。

圖2 系統硬件連接示意圖
感知模塊是系統的數據來源,感知模塊傳感器布設如圖3所示。汽車狀態通過CAN分析儀讀取,CAN分析儀一端和汽車CAN總線相連,另一端通過USB串口接入工控機,讀取汽車CAN總線數據;毫米波雷達安裝在汽車前側,由汽車內部走線至后備箱,通過USB串口與工控機相連;組合導航安裝在車頂對角通過轉換器和工控機的DB9端口相連;高速相機安裝在車頂臺架上,通過USB串口與工控機相連;激光雷達安裝在汽車頂部臺架上和工控機的以太網口相連,接收激光雷達點云數據。所有傳感器接入數據處理模塊,在工控機上通過程序讀取CAN總線數據、激光雷達點云、毫米波雷達原始數據、高速相機視頻數據、組合導航車輛位置姿態信息等。

圖3 車載傳感器布設實物圖
數據處理模塊是數據采集的關鍵部分,根據不同傳感器接口編寫相應程序讀取傳感器數據,再進行數據處理。完成數據處理工作后將數據封裝,通過5G網絡發送到云端服務器,由云端服務器進行監測、分析和數據存儲。
自動駕駛數據采集與管理系統的軟件部分主要分為數據采集系統和數據管理系統兩部分。
對于數據采集系統,所有傳感器初始化之后,在工控機上通過傳感器采集程序采集到原始數據后,對不同傳感器原始數據進行相應處理,最后通過5G網絡將處理后的數據發送到云端服務器。數據采集及上傳流程如圖4所示。

圖4 數據采集及上傳流程
數據采集系統的采集端和云端服務器代碼都運行在Linux系統上,所有傳感器按照模塊化程序設計的思路[15],能夠獨立運行,在后期系統運行過程中,程序的模塊化設計也有利于增加額外的功能需求。
3.1.1 CAN總線數據解析
底盤通訊協議如表1所示,通過串口采集到CAN總線數據,由CAN數據解析程序將原始數據解析并封裝成JSON數據包,按照20 ms采集并發送一次的頻率,調用CAN總線數據接收接口上傳至云端服務器。

表1 底盤通訊協議
3.1.2 組合導航數據處理
組合導航數據通過USB串口接收,在數據處理模塊由組合導航解析程序根據接口數據格式解析出車輛俯仰角、方位角、橫滾角、經緯度、地向速度、北向速度、東向速度、定位信息精度、定速信息精度、姿態信息精度、設備內部溫度、GPS狀態、輪速狀態等信息。封裝成JSON數據包,按照100 ms發送一次的頻率,調用組合導航數據接收接口發送數據包到云端服務器。
3.1.3 毫米波雷達數據處理
毫米波雷達數據通過USB串口接收,根據ARS408雷達數據通訊協議解析出目標縱坐標、目標橫坐標、目標縱向相對速度、目標橫向相對速度、目標動態屬性、目標雷達散射截面積、雷達狀態數據等信息。將數據封裝成JSON數據包,按照100 ms發送一次的頻率,調用毫米波雷達數據接收接口發送數據包到云端服務器。
3.1.4 激光雷達數據處理
激光雷達數據通過以太網口接收,獲取道路環境內所有激光點云的3D坐標信息和障礙物的反射率信息。將點云的空間坐標(x,y,z)及反射強度,時間戳保存為pcd文件儲存在工控機本地硬盤中并將文件通過FTP協議上傳至云端服務器進行存儲。
3.1.5 工業相機數據處理
相機圖像數據通過USB串口接收,將圖像數據和時間戳保存在工控機本地硬盤中,并通過FTP協議上傳至云端服務器進行存儲。
3.1.6 數據采集監控模塊
數據采集監控模塊是數據采集系統的一部分,主要用于監控傳感器連接運行狀態和數據采集車輛的狀態。通過傳感器上傳的數據報文解析到傳感器運行狀態;汽車CAN總線數據解析到車速、輪速、方向盤角度、油門踏板開合度等汽車狀態信息,將數據實時反映在監控平臺可視化界面[16],在出現異常情況時及時處理。
數據管理系統用于對數據采集系統采集到的傳感器數據進行管理。
3.2.1 需求分析
自動駕駛數據管理系統主要包含系統管理員、數據管理員、普通用戶三種角色。具體如下:
系統管理員:系統管理員主要負責維護數據管理員和普通用戶的用戶信息和權限等。
數據管理員:數據管理員主要負責管理數據庫中各類傳感器數據,包括數據維護以及審批普通用戶的數據下載申請等。
普通用戶:普通用戶可以利用管理系統進行數據查詢和數據下載申請等。
3.2.2 功能性需求分析
功能性需求是系統必須要完成實現某些具體的軟件功能,來滿足系統的業務需求[17]。自動駕駛數據管理系統的功能主要分為用戶注冊登錄、權限管理、傳感器數據維護、數據下載申請與審批。
用戶權限管理:負責對用戶的權限進行管理,主要包括用戶查閱菜單權限和用戶查詢及下載傳感器數據的權限。
傳感器數據管理:負責對系統數據庫中的數據預覽表進行維護,增添數據預覽表記錄以及更新數據保密等級。
數據下載申請與審批:包括普通用戶對需要的數據進行下載使用申請和數據管理員對普通用戶的申請進行審批。
3.2.3 非功能性需求分析
為了使自動駕駛數據管理系統更好地服務用戶,系統必須滿足以下要求:
(1)系統友好性。
系統在設計開發時需要考慮用戶使用時的易操作需求[18],用戶界面及字體需要簡潔統一。
(2)系統安全性。
由于自動駕駛數據管理系統的特殊性,需要充分考慮數據的安全性。首先,需要設計合理的系統結構和模式;其次,嚴格限制不同角色的權限,避免用戶直接對傳感器數據進行增加、修改和刪除;最后,系統需要考慮用戶賬戶信息安全。
(3)系統穩定性。
嚴格執行系統的單元測試,保證系統的穩定性。當系統出現故障時,能夠保證數據完整性,同時迅速恢復正常狀態。
3.2.4 功能模塊詳細設計
本小節對數據管理系統的功能模塊進行詳細設計。
(1)系統首頁。
用戶登錄數據管理系統后,根據用戶角色的不同展示不同功能菜單,系統管理員可以使用用戶管理功能。數據管理員可以使用數據維護、數據下載審批功能。普通用戶可以進行用戶基本信息(如密碼、年齡、性別等)的修改;在數據信息預覽頁面可以查詢當前用戶可以下載的所有數據的描述信息;在對應的傳感器數據頁面可以下載數據或者申請下載數據。
(2)用戶管理。
用戶管理負責對系統用戶進行統一管理。系統管理員可以進行用戶新增和刪除,以及對用戶等級和用戶角色等關鍵信息的修改,普通用戶和數據管理員僅能修改自己的基本信息以及對系統用戶進行查詢操作。
(3)數據管理。
數據管理負責數據信息預覽表中信息管理和數據庫中傳感器數據管理。
數據信息預覽頁面中,所有用戶都可以查詢數據預覽信息,根據用戶不同權限等級,將查詢到不同的數據預覽信息。數據管理員可以新增、修改和刪除數據信息預覽記錄,主要包括對新采集的數據進行數據信息預覽新增。在新增操作時需要填寫數據名稱、數據表名稱、數據類型、數據保密等級、數據采集時間和數據信息描述等信息。
鑒于自動駕駛數據結構復雜、來源多樣、數據特殊的特點,數據庫中傳感器數據直接通過數據采集子系統采集存入數據庫中,通常情況不對其進行維護。特殊情況由專業技術人員進行維護操作,保證了自動駕駛數據的安全完整。
(4)數據下載申請與審批。
數據下載申請與審批是數據管理子系統的核心模塊。負責為系統用戶提供下載各類數據的功能。
數據下載申請可以由普通用戶發起數據下載申請,由數據管理員在申請列表中查看并審批,申請通過之后用戶可以在數據下載界面進行相應數據的下載。具體流程為:用戶登錄數據預覽界面查詢需要下載的數據是否為公開數據。公開數據可以直接下載,非公開數據根據當前用戶權限等級判斷是否允許直接下載。當前用戶權限等級允許下載時,直接在數據下載界面下載數據。當前用戶權限等級不夠時需要在數據下載申請界面申請下載所需數據,由數據管理員審核通過后,可以在數據下載界面下載數據。
(5)操作記錄。
操作記錄由系統自動負責記錄系統中所有用戶的操作,每當用戶進行數據下載、數據下載申請、數據下載申請審批、數據維護等操作時,系統自動將操作信息添加進操作記錄表。操作記錄模塊保證了系統中所有的數據操作可追蹤、可溯源,保證了系統的數據安全問題。操作記錄信息對系統管理員和數據管理員可見。在操作記錄頁面中可以查看所有用戶對數據的操作信息記錄,同時可以在操作記錄上添加操作描述信息。
3.2.5 數據庫設計
數據庫開發作為系統開發中的重要一環,數據庫的設計直接影響了整個系統的運行效率。結合系統功能需求,需要對所有車載傳感器采集到的數據、系統中所有的用戶信息、數據下載請求記錄、申請審批記錄、數據維護記錄、數據信息預覽記錄等進行存儲。系統根據用戶不同業務需求從數據庫獲取對應數據返回給客戶端。
用戶信息為系統中基礎信息,主要包括使用系統中所有用戶的信息,包括用戶名、用戶編號、密碼、職業、用戶權限等級、年齡、性別、用戶角色等相關信息;數據下載申請表主要用來記錄普通用戶對需要的數據申請的信息和數據管理員對于用戶申請的審批信息;數據信息預覽表根據當前用戶的角色和權限展示數據庫中存儲的傳感器數據的信息,包括數據名稱、數據類型、數據采集時間、數據描述信息等數據詳細信息;數據操作記錄表用來記錄用戶對系統中傳感器數據操作的信息,包括用戶名、用戶編號、操作時間、數據類型、數據名稱、操作類型、操作描述等。系統E-R圖如圖5所示。

圖5 系統E-R圖
考慮到傳感器采集到的自動駕駛數據的存儲性能、安全、效率問題,本系統將系統數據和傳感器數據分開存儲在不同的數據庫,采用MySQL數據庫存儲用戶信息、數據預覽信息、數據下載申請審批信息和數據操作記錄等系統功能性數據,采用TDengine時序數據庫來存儲所有傳感器數據。自動駕駛數據采集與管理系統數據庫結構如表2所示。

表2 自動駕駛數據采集與管理系統數據庫結構
本設計經過接口測試和實車測試兩部分,接口測試通過接口測試工具分別對數據接口進行了1 000、2 000、5 000次壓力測試,結果如表3所示;實車測試通過車輛在長安大學網聯與智能汽車試驗場進行數據采集測試,記錄了1 000 s數據采集上傳HTTP接口的響應時間,如圖6所示。

表3 壓力測試結果

圖6 數據上傳接口響應時間
測試結果表明,數據接口響應時間為8 ms左右,受網絡質量影響會產生小幅度波動,且數據接口在高頻率的請求下仍可以保持穩定運行,能夠有效采集到自動駕駛車輛運行過程中的車輛數據和傳感器數據。
基于系統需求與設計,實現了自動駕駛數據采集與管理系統Web客戶端。
為獲取自動駕駛車輛實時狀態與環境數據,提高自動駕駛技術開發和測試的效率,設計并實現了一種自動駕駛數據采集與管理系統,對于系統的整體架構以及硬件結構、軟件功能模塊、數據庫的詳細設計做了詳細闡述,基于此完成了整個采集與管理系統的建設。經過試驗測試,自動駕駛數據采集與管理系統的數據接口在不同條件壓力測試下接口響應成功率為100%,實車測試數據接口響應時間為8 ms左右,系統功能模塊完整、運行穩定、數據傳輸時延低,能夠達到穩定、實時采集自動駕駛車輛數據的目的。此外,系統采用模塊化設計,易于系統開發和后期運行過程中添加配置傳感器。為自動駕駛技術的開發和測試提供了數據,也能為其他數據采集系統提供參考和借鑒。