對智能駕駛系統的研發流程上講,一直希望從頂層系統架構開始到底層之間一次性講清整個智駕系統是如何進行信息交互、應用調用和過程傳遞的。整個信息流的傳遞和過程交互包含行車控制和泊車控制,兩種應用在實際的控制上存在一定的差異。本文將針對泊車控制功能模式從底層軟件、中間件到應用軟件之間的信息交互和過程控制邏輯進行詳細講解。
1.通用軟件架構及說明舉例
當前不同供應商和主機廠在整個軟件架構上基本都是一致的設計方式。通常采用的是從底向上的分層設計方式,如下圖所示。我們在這里不詳細分析軟件架構到底是怎樣的構造方式,我們詳細說明一下整車開發的軟件過程管理和模塊調用分工。
1)基礎計算平臺
Tier1通過接收主機廠的硬件架構,包含視頻輸入、視頻輸出、超聲波、以太網、接插件位置等導致原理圖、PCB新設計。
2)外圍硬件驅動
Tier1根據主機廠硬件需求和架構需求對傳感器進行合適的硬件驅動。如攝像頭直連域控時,其驅動方式就是域控通過IIC配合一定的驅動算法直接驅動攝像頭開閉。同時,也包含與超聲波雷達適配、毫米波雷達適配、車身數據(線控)適配、RTK_SDK集成。
3)內部硬件平臺
這個模塊主要tier1/tier2根據感知需求對其處理過程包含相機加速處理、深度學習模型底層服務評估所需要的算力需求,從而對所搭載的硬件平臺能力進行總體布局。如果開發是非全棧的話,tier2需要將處理完成的感知數據集成打包并制定好接口給到tier1。
4)系統軟件
一般tier1會根據選型的芯片選擇其適配度較好的操作系統,同時配置相應的時間管理、日志管理、安全實時內核、標準信息服務等。
5)功能軟件
對于tier1分解的功能軟件來說,主要包含兩個層面:一種面向客戶級別的頂層功能,這些功能需求主要是通過將客戶需求直接拆解到系統需求來實現;另一種個是系統級別拆解到具體軟件的識別端。比如感知、定位、環境建模、規控算法參數適配。算法邏輯也涉及ODD檢測、ADAS新增元素部分檢測能力、相機標定;支持速度、路線距離、動態感知初始化等。
6)應用軟件
從軟件架構設計的角度講,應用軟件設計層主要是拆解客戶需求(主機廠輸入的功能配置表或功能規范),一般會形成一個feature list和sub feature list。開發過程,頂層APP的每個software模塊需要如上的feature list相對應,以確保所有feature都是被開發完成的。
接下來,將就一個常見的記憶泊車場景來對整個軟件架構如何處理ADAS功能進行說明。
對于智能泊車(如記憶泊車)而言最重要的幾個點就是常規的感知到規控處理、記憶建圖處理、時間同步、日志記錄、標準通信管理。
2.感知到決策的底軟Pipeline設計
在總體要求的基礎上,智能泊車需要增加停車場動態交通信息、場景融合信息、場內外車輛交接信息、場(路)側智能設備信息以及自定義的其他擴展信息等相關地圖數據信息。停車場動態信息包含停車場內或出入口關聯道路上實時發生的,會對泊車過程或行人通行產生影響的一系列動態信息。
以上信息都需要專門的視覺感知模塊進行有效的檢測和處理。對于視覺感知處理這塊可以整理一個大概的數據處理通路,本文將針對性的對底層軟件角色在自動駕駛軟件中的位置及模塊劃分方式有一個大致說明。
智能泊車感知從常規處理手段上一般都是環視+超聲波融合的方式進行。而對于記憶泊車而言,還存在建圖過程中對前方行駛車輛的軌跡探測和前方碰撞目標的危險程度探測。因此,通常會考慮接入行車前視攝像頭信息以增強其前方探測能力。由于通常ADAS高階系統域控為行泊一體控制器,為了提升運算效能,對于行泊感知源通常會采用分時復用的方式進行感知數據的有效處理。同時,智能泊車內部也是會采用合適的Pipeline進行功能處理。
如下圖表示了智能泊車的pipeline處理策略模塊。
對于智駕系統而言,前視攝像頭會采用一種異構的大小眼。而對于泊車功能而言,采用其中一種寬視前視即可具備足夠的識別能力同時可降低對系統的算力需求,一般只應用到了前視寬角視頻圖像作為輸入來進行目標探測。
從處理高效能角度講,其相應的處理方式包括:
Distortion Correction+Resize—>模擬前廣角,不丟失視場探測范圍,該前視探測信息便可適配智能泊車域;
Crop+Resize—>模擬前中距,保留一定FOV及像素密度,適用于泊車低速巡航控制;
Crop—>模擬長焦距,不丟失遠處像素密度,適用于智能泊車前方小目標緊急探測;
以上各方感知輸入源最后會在中央域控中輸入一個總體的感知融合算法模塊,從而構建出實時的車身位姿數據以及對應的地圖元素感知特征數據。
如上圖所示的整個Pipeline在頂層軟件運行過程中,需要開發包含應用場景分析、精準定位、地點查詢、安全預警、路徑方式幾個方面的軟件模塊。其中,應用場景模塊主要涉及停車場、停車場運營服務平臺、MPA、APA、AVP等智能泊車系統。精準定位包括GNSS、RTK、SLAM、VIO(視覺慣性里程計)、FLD(特征定位數據)、UWB等。地點查詢包括停車場及車位查詢、ODD范圍、興趣點、停靠泊車(如上下車點/充電)等。安全預警部分則包括障礙物、安全冗余、禁區、限制管控、危險路段、預警措施等。每種軟件模塊在如上三條Pipeline里面都需要調用專門的中間件模塊組合來輸入到最終的大狀態機做狀態判斷,并執行不同的泊車輔助功能。最后通過地圖、定位、感知數據的協同技術輸出到整體大狀態機的判斷邏輯實現功能的激活決策控制。
建圖定位模塊的關鍵技術主要包括車輛本身定位和車位地圖掃描兩個部分。該模塊需要完成車輛周圍信息的感知和建模,車輛自身的定位和跟蹤反饋,所建立的地圖和定位信息是自動泊車路徑規劃和控制決策模塊的根源基礎,也是決定車輛自動泊車質量的直接因素。
此外,需要說明的是,如上三個Pipeline的底層軟件模塊設計中,Pipeline1主要是通過接收完成里程計估算,生成自建地圖;Pipeline3是超聲波雷達數據輸入處理得到的感知語義數據,與全局高精定位輸入的原始定位數據進行融合后生成對應的定位相關元素;Pipeline2則是通過輸入與泊車相關的視覺感知信息到視覺加速模型數據、并融合Pipeline1和Pipeline3的數據輸入并應用恰當的算法進行融合數據更新;最后輸入泊車大狀態機里面做狀態決策判斷。通過最終輸入的不同數據鏈路可以決策狀態機最終激活何種泊車功能。
3.智能泊車在底軟中的計算資源分配
對于泊車感知視頻源處理端主要由攝像頭Sensor自身驅動模塊、視頻接口驅動模塊、異構核IPC通信模塊以及A核接口構成。攝像頭自身驅動主要是進行通用的傳感器設置、曝光處理、原始數據白平衡處理、色彩空間轉換等原始操作。視頻接口驅動需要運行在實時核R上負責整個視頻硬件加速,才能保證接入的視頻原始數據無延遲。同時,充分利用異構核資源優勢,作為專用核來確保視頻圖像高實時、高可靠性。R核采集的視頻數據通過管道通信機制IPC實現數據快速傳輸到計算A核。最終A核通過通用的事件處理機制,處理所傳輸過來的視頻數據,并將是視頻數據進行有效封裝并暴露出與硬件無關的接口供上層應用軟件調用。
下面針對如上圖所示的幾個由底軟實現的功能軟件進行說明:
總體來說,底層軟件的功能相對于之前分析的應用軟件,其主要是需要驅動硬件獲得原始感知數據,并進行一定的前端處理、封裝、打包等操作后生成對應能被上層所感知的軟件模塊SWC輸入給上層應用APP。如下圖所示表示了一種完整的泊車控制在底層軟件模塊中的示意圖。
1)感知驅動
首先,對于記憶泊車而言,需要底軟調用硬件驅動文件從前端感知硬件獲取超聲波雷達、環視攝像頭、前視攝像頭的對應RawData。然后,通過標準的Autosar處理模塊進行消息路由PDU、轉發等。然后在數據處理模塊中需要參照一定的軟件處理算法進行數據處理分類。分類結果是輸出車道線、車位、環境目標等信息。
2)任務分配
對于完整的記憶泊車軟件架構任務分配來說,擅長高計算能力的SOC需要執行循跡巡航、探索前進、倒車輔助、泊車出庫、泊車入庫這幾個大類的軟件任務。這些任務的實現主要是通過環境信息+自車定位信息來實現軌跡規劃和控制任務,同時通過中間件模塊的場景管理調度原子服務+提供任務參數來補充到整個泊車控制任務中。
3)環境建模EM
在底軟到中間件的建模過程中,需要構建環境建模模塊EM對障礙物信息(freespace、bounding-box),路面信息(車位、阻車器、減速帶)的進行有效的建模和封裝。改模塊對于上層應用軟件的調度來說需要封裝成統一接口的。且底軟可通過頂層軟件的不同的功能輸入構建不同的配置文件進行不同的環境建模。
4)定位建圖
對定位建圖來說,則是需要對位置、姿態、速度、角速度、加速度、車道線的信息重建。對于記憶泊車而言,首先需要建立兼具語義特征穩定、低層特征豐富、環境適應性強的泊車地圖。因此,建圖過程中,需要充分融合包含行泊車的各方傳感器輸入(如攝像頭感知輸出的底層特征圖及地圖元素的感知輸入),既能保證各方傳感器相互獨立,又能進行相互間的補充校驗,從而提高容錯性。此外,關于建圖過程中需要充分考慮IMU和輪速計之間的預融合(Pre-integration),保持建圖尺度的一致性,提升通用性。從底軟的角度講,除了建圖結果需要呈現的地圖調度接口應該是能夠為上層調用外,其建圖過程通常實時更新的。因此需要考慮所有的過程是需要被實時記錄和可追溯。如果有建圖不成功的情況,應該是需要做有效的日志記錄Log的。
5)場景管理
場景管理部分則需要對車輛狀態、探索前進任務、巡航任務、示教軌跡、倒車輔助任務、軌跡記錄、泊入任務+車位id、泊出任務+出庫方式等整個過程控制。底軟和中間件需要調度對應的任務分配模塊,將對應的任務實現邏輯運用到整個管理過程中。
6)控車仲裁
此外,在實時核MCU中需要對控車模塊進行仲裁,需要考慮泊車緊急制動功能MEB的激活是否會與行車功能起沖突,因此在執行控制過程中需要進行指令仲裁,實現控車權的仲裁,最后底軟接口需要將執行指令封裝成總線信號形式發送給執行器執行。
4.智能泊車在底軟中的存取資源分配
我們高階自動駕駛通常需要搭載高分辨率攝像頭,整個Capture驅動主線是基于基礎芯片框架實現,開發過程中可以對多輸入源的Graph進行支持,異常資源釋放等功能。對于視覺感知處理這塊可以整理一個大概的數據處理通路,可以對底層軟件角色在自動駕駛軟件中的位置及模塊劃分方式有一個大致說明。
如下圖表示了從底軟的角度描述了整個視頻流在抓取、存儲和取出的整個驅動過程。無論行泊車對于輸入的三路虛擬攝像頭信息分別需要進行如下方式的處理。
關于視頻數據流的抓取的驅動過程包含如下幾個步驟:攝像頭初始化Camera Init——>圖像抓取Camera Capture——>完成視頻圖像采集——>形成攝像頭視頻序列Camera Quenue——>進行視頻序列Buffer管理——>實現處理視頻數據的零拷貝;
從底層軟件架構的角度分析,對于如上圖所示的視頻序列的存取處理機制(如神經網絡CNN)所涉及的幾個過程主要是通過CPU對DSP的調度實現。首先,通過CPU實現模型創建生成加載模型,開辟合適的內存;其次,通過CPU實現模型計算,反饋合適的計算結果;最后,模型退出后,CPU又需要釋放所占用的的內存資源。
5.底層軟件在智能泊車中的處理流程
最后,通過一個詳細的底軟架構圖分析說明如何對應用軟件模塊進行調用。
①SOC硬件層調度傳感器硬件相機驅動,傳輸原始感知數據流給到上層操作系統。這里的原始感知數據時可以通過感知框架中的任務管理模塊(接收所要執行的ADAS任務子項)、相機管理模塊(相機輸入數據配置、相機硬線配置、相機曝光配置)、配置管理模塊(主要是根據輸入的ADAS任務管理子項配置合理的傳感器輸入數據來進行感知檢測)進行數據預處理、模型搭建和數據并行處理后,生成了車道線、交通標志、障礙物信息、可行駛區域、泊車位置空間。
②為了給上層感知處理模塊提供可靠、高效的視頻源。中間件需要進行傳感器時間同步管理、通信管理、資源管理、配置管理、OTA管理等。
時間同步管理:將輸入的各類不同的傳感數據按照系統自定的時間管理策略標識打上時間戳。這類算法需要參照具體的系統架構來定,比如攝像頭作為純傳感器,其曝光、視頻輸出處理都是完全由域控來打時間戳同步;而如果超聲波雷達外接了處理ECU,則其輸入輸出則需要由子ECU自己控制打時間戳。但是通常底軟在這部分時間同步算法上會遵循標準的Autosar標準。
通信管理:BCU通過喚醒信號控制相應CAN消息的通信使能(交流、直流幀),RTE將應用層SWC信號轉化為通信信號(Com Signals),并通過Com, PduR, CanIf, Can driver之間的標準接口函數實現CAN信號收發。
資源管理:對于從底層軟件配置、中間件調度、頂層軟件調度和運算中需要利用的資源進行相應的存儲管理和算力分配。
配置管理:配置管理可以用于對輸入傳感器的數據進行分時控制,從不同的場景角度上講,這塊可以很好的提升對傳感數據的處理效率。
③在感知處理模塊包含三個層面的處理邏輯。視頻輸入鏈路進行ISP處理、Camera數據接口、Sensor驅動、輸入接口驅動。計算加速模塊進行神經網絡(CNN/RNN)推理、圖像去畸變、圖像Crop+Resize預處理、圖像顏色空間轉換。Display輸出模塊需要創建數據接口、輸出接口底層驅動。
④頂層軟件調用底層軟件封裝的軟件模塊接口對對應的軟件模塊進行調用。其中通信中間件需要為應用層用戶提供統一的調度接口,包含初始化、注冊、發送/接收等接口。通信中間件可以基本實現多節點分布式軟件模塊的發布訂閱通信(類似于SOA中面向服務的通信機制進行初始化、訂閱注冊、發送注冊、消息推送、接收),且通常位于SOC和MCU之間的異地通信以及SOC內部的本地通信。
-
智能駕駛
+關注
關注
3文章
2652瀏覽量
49124 -
軟件架構
+關注
關注
0文章
64瀏覽量
10370 -
泊車
+關注
關注
0文章
13瀏覽量
6481
原文標題:以智駕系統功能開發講解智駕底軟如何驅動功能開發
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
都在說智駕平權,什么是智駕平權?如何智駕平權?
AI開發平臺如何賦能開發者
Nullmax多款智駕產品亮相CES 2025
首批通過!華為云 CodeArts Snap 智能開發助手通過可信 AI 智能編碼工具評估,獲當前最高等級

字節跳動發布豆包MarsCo智能開發工具
鴻蒙OS開發:典型頁面場景【一次開發,多端部署】(功能開發)

云知聲出席AICon全球人工智能開發與應用大會

領克08 NOA智駕功能重磅升級
黑芝麻智能華山A1000芯片已成功助力領克08 NOA智駕功能重磅升級

評論