怎樣用ROS打造機器人建圖導航

WRC大會上ROS分論壇我的發言。

很多朋友後來問我要PPT。這次講座內容稍微干一點,這個版本有我自己的演說內容作參考。

大家好,謝謝Tony和高工的邀請,今天我要在這裡和大家聊一聊用ROS進行移動機器人建圖導航的一些事情。在座有不少ROS星火計劃和ROS Summer School的學員,都聽過我的講座,不過今天的題目是我第一次講。都說我一張PPT講半個小時,今天一共只有20分鐘,怕時間是不夠用了!

今天的內容大綱就是如上四點。我們要建地圖,建什麼地圖?導航,如何導航?能不能有一個模塊把建圖導航標準化了?那還有些啥問題呢?

今天是講建圖導航,重點是要可以導航,所以我們就略去視覺建圖,三維建圖的內容。以上是ROS下就能找到的Gmapping建立的佔據柵格圖,以及RatSLAM建立的拓撲地圖。這兩個圖都是可以用來導航的,也都至少是十年的技術了。

我們用SLAM是為了建立全局地圖。那麼無人車需要建立高精度地圖,需要很大的存儲數據。而人類導航用的地圖,我們一個城市的地圖包加導航包一共也就幾十兆一百兆就夠了。這是為什麼呢?大家可以思考一下。

就現在的技術而言,從地圖精度,計算複雜度,適應性等各個角度考慮,現在最適合做室內機器人導航的地圖,就是佔據柵格圖,三維高精度地圖和一維的拓撲地圖暫時都還有很多缺點。二維激光建圖而且在ROS中有多種演算法可以選用。

現在有很多國內創業公司說研發了自己的建圖導航演算法,多麼多麼厲害。我想和大家說,在我做機器人定位,建圖,導航以及空間認知的這十年來,華人在這個領域都很少有建樹,更沒有聽說過厲害的公司。不是說國內創業公司不厲害,而是大家可能多數是在某些應用場景有長處。想要做一個通用的,有延展性的,還對用戶友好的建圖導航系統,還不太可能。cartographer加了後端做閉環,建圖很厲害,可是能用到掃地機器人上么?大範圍的迴環可以做了,但是我的應用都是開闊的小場景怎麼辦?你的機器人有高精度碼盤,我的機器人是大範圍激光感測器,我們的演算法能通用么?所以很多問題是需要大家思考的。

不管怎麼說,室內環境,不要太大範圍的建圖,是沒有什麼問題的。我們需要用二維的全局地圖進行全局導航規劃,這個足夠了。

當然,激光為人詬病的一線掃描,看不到之上之下的東西,常常在現實場景中束手無策。所以又有很多公司會說,我們用了激光與深度攝像頭融合的導航解決方案。那麼這是一個怎麼樣的方案呢?最簡單的,就是在ROS導航包的Costmap設置中,增加我們的觀測源。是的,不需要改動代碼,只要更改配置文件就好了,我們就有了最簡單的多感測器融合的導航方案。

這是我們做的一台驗證演算法的機器人。我們沒有考慮深度攝像頭的盲區,而且深度攝像頭也是簡單的平置。控制器用Odroid XU4, 和RoboWare團隊,racecar用的處理器一樣。大概很多人覺得這樣的配置不太行。我們等一下有視頻演示。

這是一個簡單的處理流程,畢竟直接處理點雲運算能力差了點。我們的所有運算都是onboard。沒有貼ROS中的節點圖,因為還有很多其他節點會完全看不清楚。

人潮中自主移動的機器人_騰訊視頻 https://v.qq.com/x/cover/k0392dltoz4/k0392dltoz4.html 機器人在複雜非結構環境下的自主導航_騰訊視頻 https://v.qq.com/x/cover/g0544lhq11j/g0544lhq11j.html

(這兩個視頻分別放了一小段)

這裡是在讓機器人在動態環境中移動的時候需要注意的幾個參數內容。沒有寫中文因為字確實碼不下了。

非結構靜態環境下。不詳細講了,大家可以拍照片,後面我們的ppt應該也是會放出來的。

我們現在能做的是可以導航,如果需要導航的效果「更好」,也就是用戶體驗更好,還有更多的代價地圖層可以添加。而這些,都是隨著ROS的導航包更新不斷在更新的。這也是為什麼我們強調大家取之開源社區,用之開源社區。國內的太多人,拿了開源封裝起來,就現在的技術發展來說,我覺得這是個笨辦法,不是個長久的辦法。因為社區的內容更新的時候,你的產品沒辦法馬上更新啊!google的SLAM演算法都開源,現在維護非常積極,我們只想拿來主義,不懂得commit,我們想在智能機器人領域彎道超車是不可能的。

ROS是一個很好的工具,但是ROS wiki中的教程,實在是,簡潔。所以,希望大家能夠糾正一個觀念,通過學習ROS學習機器人,還是需要先打好機器人的基礎,再來用ROS比較好。那麼也要感謝今天各位ROS書籍的作者和譯者,感謝機工社能夠給我們帶來更多的學習資料。同時也歡迎大家了解ROS星火計劃。到目前大家來聽課,至少6成的進階課程會是我來上的。

時間快要不夠,就扔出問題來大家思考。我們的建圖和導航,到底要讓誰來做?機器人全自主來做,像掃地機器人一樣?還是需要工程師來建圖,或者用戶自己可以操作機器人建圖?那麼導航的時候,不同的場景,我們怎麼來做?所以,現在想要做統一的建圖導航模塊,還為時尚早。

我的演講就到這裡。這張圖,只是因為我特別喜歡這張圖,所以放在這裡了,每次講座都會講這個,要理解機器人和人工智慧的區別與聯繫。機器人的Perception和action,這是非常重要的。總而言之,我們需要更多的工程師從事機器人行業。我們現在是好的時代,大家大多數都是年輕人,機器人行業還很小,希望能夠創造出我們的機器人時代。能讓我們國家在機器人時代走到前沿。我想這也是張總和Tony主辦這次論壇的初衷。謝謝大家。

可以掃碼加我們的公眾號,主要是行業信息,開課信息,崗位信息。時不時會有乾貨文章。


推薦閱讀:

ROS和ROS2.0現在到底該學習哪個呢?
基於ROS的自主導航小車Plantbot--SLAM
ROS機器人操作系統相關書籍、資料和學習路徑
ROS 2正式版來了,到底有哪些新變化?
【ROS十周年快樂!】Science Robotics封面文章:ROS助力全世界機器人!

TAG:机器人操作平台ROS | 同时定位和地图构建SLAM | 移动机器人 |