天天看點

cartographer 使用 定位_對SLAM定位和自動駕駛車輛定位的思考

cartographer 使用 定位_對SLAM定位和自動駕駛車輛定位的思考

前沿

SLAM作為機器人領域深耕已久的方向,在我看來已經比較成熟了。從開始的EKF SLAM到現在的RTAB-MAP, ORB-SLAM, Cartographer各種SLAM算法百花齊放。SLAM的回環檢測在提高機器人的定位精度上,讓我眼前煥然一新。

“SLAM擁有實時定位和建構地圖的能力,這對于自動駕駛來說不是非常利好?既可以定位,又可以同時建構低配版HD map, 而且還可以通過這個低配版地圖進行重定位?”

我是抱着這麼個想法,開始琢磨着可不可以把基于雷射雷達的Cartographer應用在自動駕駛上。

cartographer 使用 定位_對SLAM定位和自動駕駛車輛定位的思考

SLAM應用在自動駕駛後的思考

是以上周就開始分析Cartographer。cartographer 是谷歌的開源SLAM項目。它是一個以低配硬體實作大型場景實時精确(5cm)SLAM的項目。

涉及到的内容很多很多,算法也比較複雜。單純看他們的論文是看不出啥東西的。像這種大型項目,必須得是論文+文獻+tutorial+其他人的說明。

googlecartographer/cartographer​github.com

cartographer 使用 定位_對SLAM定位和自動駕駛車輛定位的思考

總之,現在看過了各種文章,論文也讀過了,tutorial過了好幾遍,tuning了一些參數,在KITTI資料集做的rosbag上運作并觀察了一些情況。還是蠻有意思的└(^_^)┘

但是

突然意識到些都不是重點。

我之前一直覺得回環好炫,好厲害,必須通過回環提升定位精度。

不過,想了一想,自動駕駛車輛的定位,不能依靠回環啊!車都跑偏了,還調整一起的位姿幹啥?

●▽●

Carto裡面利用lidar的

t

t-1

的點雲資料得到robot motion, 同時利用IMU進行補償。補償機制是啥還不知道,可能是貝葉斯濾波。如果用了基于貝葉斯理論的濾波器的話,那麼基于LIDAR的motion估計值和基于貝葉斯濾波器的估計值,哪個會更準确呢? 因為在建構submap的時候,submap的構圖的基準點,也就是車輛位置越準确,之後的pose和全局回環的時候才會更準确。哪個更準确呢, 這個有待測試。。

是以,問題又回來了。對于自動駕駛車輛來說,回環的比重不像在SLAM裡那麼重要。

實時定位

才是自動駕駛真正應該關心的事情。自動駕駛回環也重要,但是沒有實時定位重要。

一般的高精度的定位方法是基于RTK DGPS。這種研究已經進行了很久了,也比較成熟了。成熟到啥程度呢, 就是買個DGPS硬體系統和軟體,就能直接調取1~2cm誤差範圍的位置資料。商用的沒錢看。開源的RTK GPS有興趣可以看看下面的開源RTKGPS項目。

An Open Source Program Package for GNSS Positioning​www.rtklib.com

cartographer 使用 定位_對SLAM定位和自動駕駛車輛定位的思考

SLAM如何應用在自動駕駛車輛定位上?

SLAM強大的回環檢測在自動駕駛實時定位上, 幫不上太大忙。那是因為實時定位依靠的gps系統可以得到較高的準确度。

不過,影響gps的資料準确性的原因有很多,天氣啊,遮擋物啊,高樓啊。典型的場景就是,地下車庫,隧道,高樓比較多的市區。這種情況下,現階段的自動駕駛車輛會依賴高精地圖。也就是說,如果沒有高精地圖的, GPS不被信賴的場景,是完全可以嫁接SLAM的技術的。如果有對應地形的地圖,那麼就可以通過有地圖情況下的SLAM算法,沒有的話,跟一般SLAM是沒什麼差別的。

我認為,機器人算法和自動駕駛算法有以下差別。

  1. * 自動駕駛對算法安全性的要求高。是首要因素。比什麼都重要
  2. 自動駕駛車輛的 可移動自由度 比機器人要
  3. * 自動駕駛車輛的 速度 相對于機器人要 很多
  4. *自動駕駛車輛對算法的 魯棒性要求高
  5. *自動駕駛車輛的 實時定位 更為 重要

    或許可以通過V2X的手段,檢測回環,提高自身定位精度。

  6. (研發車輛,不是量産)自動駕駛車輛對算力沒什麼上限。

    (量産)就需要權衡硬體性能,計算量,算法的效率等等。

  7. 自動駕駛車輛的路況相當複雜,沒有統一性。是以算法要有普适性。
  8. 自動駕駛車廠有自己的平台,不可能随便換平台。跟機器人有較大的差別。

總結

通過這些天的學習,觀察了cartographer應用在自動駕駛上的問題。SLAM的即時定位是可以直接應用在自動駕駛車輛上的,盡管他的穩定性和精确度有待測試。但是回環檢測這個大殺器在自動駕駛的應用,感覺非常有限。因為

車輛不能在任何一個瞬間丢失自身的位置

。由于每個瞬間都很重要,是以

不可能等到被檢測到回環的時候才提升定位精度

。但是,我們并不能說回環在提高定位精度方面沒有任何貢獻。相反,如果通過V2V共享&合并軌迹檢測回環或是自身檢測回環,是可以提升車輛以後的定位精度的。

最重要的是,得知道車輛的場景&要解決的問題。

在這裡,我關注的點是在

隧道場景

中的

車輛的實時定位問題。

涉及到的有

車輛動力學(kinematic model), 基于VIO & LIO的T, T-1 的motion model, 貝葉斯濾波。

附錄

  • KITTI轉換為bag的repo:

tomas789/kitti2bag​github.com

cartographer 使用 定位_對SLAM定位和自動駕駛車輛定位的思考