第乙個問題是定位,自動駕駛需要的是厘公尺級定位。
第二個問題是路徑規劃,自動駕駛的路徑規劃第一層是點到點的非時間相關性拓撲路徑規劃;第二層是實時的毫秒級避障規劃;第三層是將規劃分解為縱向(加速度)和橫向(角速度)規劃。
第三個問題是車輛執行機構執行縱向和橫向規劃,也就是線控系統。
目前自動駕駛的技術基本上都源自機械人,自動駕駛可以看做是輪式機械人加乙個舒適的沙發。機械人系統中定位和路徑規劃是乙個問題,沒有定位,就無法規劃路徑。厘公尺級實時定位是目前自動駕駛最大的挑戰之一。
目前,slam的應用領域主要有機械人、虛擬實境和增強現實。其用途包括感測器自身的定位,以及後續的路徑規劃、場景理解。
隨著感測器種類和安裝方式的不同,slam的實現方式和難度會有很大差異。按感測器來分,slam主要分為雷射、視覺兩大類。其中,雷射slam研究較早,理論和工程均比較成熟。
視覺方案目前(2016)尚處於實驗室研究階段,應用於室內且低速的商業化產品都沒用出現,更何況遠比室內室內複雜的高速運動室外環境。單從這點來說,雷射雷達是自動駕駛必備的感測器。
slam研究自2023年提出以來,已經過了近三十年。早期slam研究側重於使用濾波器理論。21世紀之後,學者們開始借鑑sfm(structure from motion)中的方式,以優化理論為基礎求解slam問題。這種方式取得了一定的成就,並且在視覺slam領域中取得了主導地位。
人們有時候會混淆slam和視覺里程計的概念。應該說,視覺里程計是視覺slam的乙個模組,其目的在於增量式地估計相機運動。然而,完整的slam還包括新增回環檢測和全域性優化,以獲得精確的、全域性一致的地圖。
機械人定位常見三大類,相對定位,絕對定位和組合定位。自動駕駛一般用組合定位,首先本體感受感測器如里程計(odometry)、陀螺儀(gyroscopes)等,通過給定初始位姿,來測量相對於機械人初始位姿的距離和方向來確定當前機械人的位姿,也叫做航跡推測。然後用雷射雷達或視覺感知環境,用主動或被動標識、地圖匹配、gps、或導航信標進行定位。位置的計算方法包括有三角測量法、三邊測量法和模型匹配演算法等。從這個角度而言,imu也是自動駕駛必備的部件。
同時,機械人的自主定位實際上是個概率問題,因此機械人定位演算法也出現兩大流派,一類是卡爾曼濾波器,一類是貝葉斯推理。卡爾曼濾波器有extended kalman filter(ekf),kalman filter (kf),unscented kalman filter (ukf)定位方法。
另一類是基於貝葉斯推理的定位方法。運用柵格和粒子來描述機械人位置空間,並遞推計算在狀態空間上的概率分布,比如markov localization (mkv),monte carlo localization (mcl)定位方法。
在地圖匹配上,必須有一幅prior map與之對比。這幅地圖不一定是厘公尺級高精度地圖。這就需要說說地圖了,地圖可以分為四大類,分別是metric、topologic、sensor、semantic。我們最常見的地圖是語義級地圖,無人駕駛不是飛彈,一般輸入目的地應該是語義級的,畢竟人類的交通模式還是語義級的,而非地理座標。這也是機械人和無人駕駛的區別之一,機械人一般不考慮語義級意義,它只需要知道自己在座標體系中的位置。
gps提供的則是全球座標系的metric。將來的v2x會提供也會提供一幅雷達和視覺探測距離之外(nlos)的特定物體(移動的行人和車)的地圖,或者可以叫v2x地圖。目前國內研究階段的無人車大都是用gps rtk定位,gps rtk必須配合厘公尺級高精度地圖才能得到語義資訊,所以是不可能真正無人駕駛的。
目前定位的方法主要由五種,一是用雷射雷達的slam,二是用雷射雷達的強度掃瞄影象,三是用合成影象,四是用高斯混合地圖,最後一種是mobileye提出的rem。
第一種,雷射雷達的slam,利用車輛自帶的gps和imu做出大概位置判斷,然後用預先準備好的高精度地圖(prior map)與雷射雷達slam雲點影象與之對比,或者說registration,放在乙個座標系內做配準。配對(matching)成功後確認自車位置。這是目前最成熟,準確度最高的方法。
雷射雷達的slam
第二種,利用雷射雷達的強度掃瞄影象。雷射雷達有兩種最基本的成像方式,一是3d距離成像,可以近似地理解為點雲;二是強度掃瞄成像,雷射經物體反射,根據反射強度值的不同,可以得到一副強度成像影象。強度值是包括在點雲裡的,光強分離核心技術之一。這種定位方法需要預先製作乙個特殊的slam系統,稱之為位姿影象slam(pose-graphslam),勉強可看作雷射雷達製造的高畫質地圖。
有三個約束因素(constraints),一是掃瞄匹配約束(z),二是里程計約束(odometry constraints,u),gps先驗約束(priorconstraints)。雷射雷達的3d雲點地圖抽出強度值和真實地面(ground plane),轉化為2d的地面強度掃瞄影象。與位姿影象slam配對後即可定位。
第三種 也有稱之為影象增強型定位,通常是將lidar和視覺系統結合進行定位,用單目即可。這種方法需要預先準備一幅雷射雷達製造的3d地圖,用ground-plane sufficient得到乙個2d的純地面模型地圖,用opengl將單目視覺影象與這個2d的純地面模型地圖經過座標變換,用歸一化互資訊(normalized mutual information)配準。然後用擴充套件卡爾曼濾波器(ekf)來實現定位。
第四種 是高斯混合模型,這實際還是第二種方法的補充,在遇到惡劣環境,比如很厚的積雪,雪后還有殘雪的泥濘的道路,缺乏紋理的老舊的被破壞的道路,用高斯混合模型來做定位,提高雷射雷達定位的魯棒性。
高斯混合模型
前面四種都離不開雷射雷達,成本頗高,但是室內vslam又未達到實用地步,更不要說室外定位了。因此mobileye提出一種無需slam的定位方法。這就是rem。雖然rem不用視覺slam,但顯然只是視覺slam的變種而已,mobileye 通過採集包括交通訊號、方向指示牌、長方形指示牌、路燈及反游標等「地標」,得到乙個簡單的 3d 座標資料;再通過識別車道線資訊,路沿,隔離帶等獲取豐富的 1d 資料。
把簡單的 3d 資料和豐富的 1d 的資料加起來,大小也不過是 10kb/km,攝像頭的影象與這種rem地圖中匹配即可定位。mobileye這種設計毫無疑問是成本最低的,但前提是至少有上千萬輛車配備rem系統,能夠自動蒐集資料並上傳到雲端,有些路段或者說非道路地區,沒有裝載rem系統的車走過,就無法定位。
在全球範圍內讓裝載rem系統的車走遍每一寸土地是不可能的。這可能牽涉到隱私問題,也牽涉到資料版權問題,這些資料的版權究竟歸誰,是車主還是車企還是雲端的服務商,還是mobileye?這問題很難說清。同時rem的資料要及時更新,幾乎要做到準實時狀態,同時光線對資料影響明顯,rem要濾除那些不合適的資料,所以維持這份地圖的有效性需要非常龐大的資料量和運算量,誰來維護這個龐大的運算體系?
還有最致命的一點,rem是基於視覺的,只能在天氣晴好,光線變化幅度小的情況下使用,這大大限制了其實用範圍,而雷射雷達可滿足95%的路況。
厘公尺級定位是無人駕駛的難點之一,不光是車輛本身的語義級定位,還有乙個絕對座標定位,目前gps定位,城區的最高精度大約10公尺,郊區大約5公尺。gps rtk只能在小範圍應用,覆蓋面有限,系統頻寬更有限,跑幾輛車湊合,上百輛系統可能就崩潰了。北斗地基系統主要做軍用,系統頻寬和重新整理頻率有限,無法做大規模商用和車用。日本的準天頂衛星只能覆蓋中國東部少數地區,並且也不是長久之計。
當然,將來無人車的定位很難擺脫厘公尺級地圖,但是這只是車輛啟動前的第一次定位,車輛啟動後,利用車載雷射雷達的slam和障礙物識別完全可以取代高精度地圖做自主導航。所以未來,高精度地圖的主要作用是定位而非導航,也無需車載,放在雲端即可。
測試的核心技術是什麼?
談到核心技術,我曾經在 多工下的資料結構與演算法 中提過軟體的核心技術是軟體設計與資料結構演算法兩方面,那麼測試的核心技術是什麼呢?測試方面涉及到的技術非常多,有測試的管理技術,測試缺陷分析技術 測試用例設計技術 自動化測試工具.到底那個才是測試的核心技術呢?我認為測試用例設計技術和自動化測試工具才...
測試的核心技術是什麼?
談到核心技術,我曾經在 多工下的資料結構與演算法 中提過軟體的核心技術是軟體設計與資料結構演算法兩方面,那麼測試的核心技術是什麼呢?測試方面涉及到的技術非常多,有測試的管理技術,測試缺陷分析技術 測試用例設計技術 自動化測試工具.到底那個才是測試的核心技術呢?我認為測試用例設計技術和自動化測試工具才...
測試的核心技術是什麼?
談到核心技術,我曾經在 多工下的資料結構與演算法 中提過軟體的核心技術是軟體設計與資料結構演算法兩方面,那麼測試的核心技術是什麼呢?測試方面涉及到的技術非常多,有測試的管理技術,測試缺陷分析技術 測試用例設計技術 自動化測試工具.到底那個才是測試的核心技術呢?我認為測試用例設計技術和自動化測試工具才...