傳感器與感知模塊
在基于規則的自動駕駛系統中,感知模塊,承擔著理解車體周圍環境信息的重要職責。它通過融合多種傳感器數據,與定位模塊共同為規劃與控制模塊提供準確、系統化的輸入信息。正如人可以通過眼睛觀察周圍的環境(盲人也可以通過耳朵聽聲辨位),自動駕駛車輛依賴激光雷達(LiDAR)、相機(Camera)、毫米波雷達(mmWave Radar)、慣性測量單元(IMU)等多樣傳感器,采集三維環境數據,以實現安全智能駕駛。也就是說,傳感器通過在一定位置、以一定的角度、以特定的形式收集三維世界經過映射后的信息。之后,感知算法通過對于這些映射后的信息進行算法處理,得到對于安全、智能駕駛有幫助的信息傳遞給規控模塊以實現安全、自動駕駛的功能。
多源傳感器標定
對于一般有項目或者工作經驗的感知算法工程師一定繞不開的話題就是傳感器的標定(calibration)。雖然這一過程比較程式化,有跡可循,但是充分理解標定過程仍然對于我們理解并掌握感知模塊起到重要的作用。
一言以蔽之,標定的過程就是統一多源信號,這些信號是在特定位置、以特定角度、以特定形式對于三維世界的觀測。如果沒有標定,所有的信號都雜亂無章地堆砌在一起,其相對位置關系的丟失也意味著自動駕駛系統對于真實世界反映的失敗。
既然提到了標定,大家肯定都想到了內參(intrinsic parameters)和外參(extrinsic parameters)標定。
內參標定的實質:解開傳感器成像內在密碼
內參數標定的核心在于精確描述傳感器自身成像或測量過程中涉及的幾何和光學特性。以單目相機為例,單目相機的成像過程符合經典的針孔模型,即把三維世界中的點通過投影映射到二維圖像平面上。這個映射過程由一組參數決定,這些參數就是內參,主要包括:
- 焦距(focal length):定義從三維空間到二維圖像投影如何縮放的尺度因子,決定了圖像的縮放比例和視場范圍。
- 主點位置(principal point):即成像平面上光軸與圖像平面的交點,實際攝像頭制造或安裝誤差會導致其偏移。
- 畸變參數(distortion coefficients):描述鏡頭引起的徑向和切向畸變,常見的是鏡頭桶形或枕形畸變,會導致圖像邊緣變形。
內參標定的實質過程是通過已知尺寸和結構的棋盤格標定板提供先驗信息,將其在不同角度、位置下的圖像數據作為約束條件,采集大量圖像信息,建立多組投影方程。利用優化算法(如最小二乘法)反復迭代,使得計算出的內參能夠將三維棋盤格上的點精準映射到二維圖像點,使得“重投影誤差” — 即理論點與實際點間的距離 — 盡可能小,最終獲得滿足實際成像特性的內參矩陣和畸變參數。由此,攝像頭的視覺模型被準確重構,實現對圖像幾何的正確描述。
外參標定的實質:空間坐標系之間的橋梁
外參數標定則是將不同傳感器對應的坐標系統統一到同一個世界或車輛坐標系的數學變換,是多傳感器感知系統的數據融合基礎。每個傳感器都有自己獨立的坐標系,比如相機坐標系、激光雷達坐標系以及慣性測量單元( IMU )坐標系,這些坐標系的位置和方向在物理上相互獨立。外參標定的目的是找出每個傳感器坐標系相對于車輛參考坐標系(通常以車體中心或底盤為原點)的剛性變換關系,主要包括:
- 旋轉矩陣(Rotation Matrix):描繪坐標軸的方向如何從一個坐標系旋轉到另一個坐標系。
- 平移向量(Translation Vector):描述兩個坐標系原點之間的空間位移。
換句話說,外參標定的實質就是計算從某個傳感器視角捕獲的空間點,如何變換位置和方向才能準確映射到車輛底盤坐標系下,實現所有傳感器數據空間上的高度一致。典型的數學工具是三維剛性變換,即歐氏變換,保持物體大小和形狀不變的同時,精準調整其空間姿態。
外參標定通常通過以下方法實現:
- 標定板對齊:多個傳感器共同觀測同一標定對象,利用物體特征點匹配來求解空間變換。
- 特征匹配算法:通過點云與圖像特征(如邊緣、角點)對齊,計算對應關系。
- 優化法:迭代最小化傳感器數據之間的誤差度量(如ICP算法中的點到點距離)求解變換矩陣。
內外參的協同效應:多傳感器環境理解的基石
完成內參和外參標定后,車輛上的不同傳感器不再是單獨孤立的信息源,而是構成了一個統一協調合作的“傳感器聯盟”:
- 內參確保單個傳感器自身觀測的正確性,如相機在圖像上的精準成像;
- 外參確保跨傳感器數據的空間位置一致性,實現激光點云與圖像特征的對齊等空間融合。
二者結合,使得車輛能夠準確且高效地重建車體周圍的三維環境,發揮多傳感器協同感知的真正價值。正是這個統一的、多維度的“sensor model”,為自動駕駛“眼睛”提供了堅實的基礎,使得后續的感知、定位和規劃控制工作可靠進行。
下一步思考:深入掌握多傳感器標定策略的關鍵問題
為了更全面理解和掌控多傳感器標定流程,我們不妨先思考以下幾個關鍵問題:
- 當前車輛上,每個傳感器(激光雷達、相機、毫米波雷達、慣性測量單元)的具體規格(型號、分辨率、視場角、安裝限制)是什么?
- 這些傳感器究竟安裝在車輛的哪些具體位置?它們的坐標系是如何相對于車輛底盤定義的?
- Autoware Universe支持哪些標定算法?
- 如何具體進行各相機的內部標定,以及激光雷達的內部和統計標定?
- 激光雷達與相機之間的外參標定有哪些常用方法?Autoware Universe中是怎么實現的?
- 多傳感器的時間同步(包括時間戳和觸發機制)如何影響標定的整體精度?
- Autoware Universe中都有哪些軟件包和啟動文件是負責傳感器標定的?相關配置參數又在哪里能找到詳細的文檔說明?
- 標定結果通常什么格式進行存儲的?怎樣保證這些標定文件能被Autoware的感知和定位模塊正確調用?
- 如何對標定質量進行有效驗證,常見指標有哪些?
- 在RViz2中,如何將激光雷達點云投影到相機圖像上,以直觀地確認標定的對齊效果?
帶著這些問題,我們將在后續內容中一步步探討與實踐,幫助大家系統掌握多傳感器標定以及感知模塊的關鍵技術與應用。