机器人学习--全局定位(阿尔伯塔大学张宏教授报告)
轉自:https://new.qq.com/omn/20200816/20200816A0I8KP00.html
1
機器人導航
大家都知道,機器人分不同形式,有操作的機器臂,還有移動機器人,所有移動機器人都需要進行導航,包括防爆機器人、雙足機器人、四足機器人、清潔機器人、UVA、自動駕駛機器人等等,所有的移動機器人都必須有一個自主導航的功能。
我今天的報告圍繞移動機器人導航這個話題,首先給大家介紹一下導航都牽涉到的幾個方面,今天的重點是放在移動機器人的全局定位的這個問題上。機器人定位這件工作需要一些傳感信息,對于環境感知的傳感器,主要講兩大類:激光雷達和視覺。主要的時間回顧一下過去和最近機器人、移動機器人定位方面的研究工作,最后花幾分鐘和大家分享這個研究方向的展望。
大家對于移動機器人這個題目應該不陌生,傳統的研究方向起碼包括這幾類:軌跡規劃、避礙、構建地圖和定位。構建地圖和定位這兩個工作又是耦合的,沒有地圖也就談不到定位,我們做地圖的過程當中也需要定位,所以這兩件工作必須同時完成。二者的同時研究稱之為SLAM, 即simultaneouslocalization and mapping的縮寫。
2
機器人定位:局部vs全局
今天的報告側重于定位問題,定位又分為全局定位和局部定位,為了完成這件工作,有三類傳統方式:優化方法、全景描述方法和局部特征匹配方法。任何一種方法都必須有傳感器信息的支持,我今天主要講如何利用激光雷達和視覺信息完成全局定位。
如何完成全局定位呢?可以用傳統的手工建立模型的方法,也可以用機器學習的方法,我們講定位這件事時有一個假設:地圖是已知的。剛剛已經提到,定位這件工作分兩個類,一類是局部定位/精定位,前一瞬間機器人做動作的時候位置是已知的。另一類為全局定位更難一些。全局定位的困難和挑戰,來源于三個方面:
1、缺乏先驗知識;即前一瞬間機器人的位置是未知的。
2、在重新定位和閉環檢測的時候,即機器人回到某個曾訪問過的位置,會發生各種各樣的變化,包括光照、視角的變化,同時也有一些動態的物體造成的變化;
3、大尺度。因為常常地圖包含了很多不同的位置,把目前傳感器觀察到的信息和地圖里面的不同位置的信息進行匹配時,會牽涉到計算復雜性的問題,我們把這個挑戰稱之為大尺度問題。
談到這里不妨從仿生學看看自然界的鳥類是如何完成這件工作的,并從中得到啟發。大家肯定知道候鳥導航能力是相當強的,可以跨越超過一萬公里之外的目的地,順利完成導航任務。它們是如何完成的呢?無外乎是依靠如下幾類傳感技術:
1、眼睛。視覺是使得它們完成中距離和近距離的導航;
2、方向。通過地球磁場、太陽偏振光、星星和時間的概念,來完成長距離的導航工作。
3、地圖。也許我們人在這方面不是很強,但是自然界的動物,包括魚和鳥都通過嗅覺來完成導航。還有一些鳥有聲納能力,可以通過聲音來測距。這些鳥類使用的傳感技術實際上和機器人完成全局定位使用的傳感技術是非常類似的。
3
機器人定位傳感器
機器人做定位也需要傳感器,主要分兩大類:激光雷達和視覺。
早年激光雷達由西方的公司Velodyne、Hokuyo 和SICK壟斷,但今年國內科學技術突飛猛進的發展,出現了令人興奮的激光雷達產品。導航定位也需要其他的傳感器,比如說全球定位、雷達聲納和視覺深度像機傳感器等。
不同的傳感器有不同的優缺點,我談一下激光雷達和視覺之間的比較。激光雷達產生的是點云,做全局定位需要解決的工作是把激光雷達觀察到的點云跟地圖中若干個點云進行匹配或者是數據關聯。優點是精度高、具有三維信息;缺點是缺乏紋理信息。相比之下,視覺提供了激光雷達不能提供的紋理信息,但是精度低一些,在室外能達到十幾米、幾十米的定位精度,室內則可以達到厘米級。當然,視覺最大的問題之一就是失去了三維信息。
剛剛談到了什么是全局定位,它和局部定位有什么區別;同時也談到了傳感技術,接下來談一下全局定位技術,即完成該工作的算法。
全局定位的問題有二十余年的研究歷史,很有趣的是,最開始全局定位方法是由激光雷達做起的,主要利用傳統的手工特征,即對激光雷達點云進行處理、提取特征,通過特征匹配完成全局定位,匹配算法是基于優化的方法。目前發展方向主要是基于視覺完成全局定位,特征提取的手段主要是依靠深度學習,而且是利用對局部的特征進行提取和匹配,完成全局定位。
從方法分類上,全局定位的技術有三個維度:
1、傳感信息的來源:激光雷達、視覺和多模式融合。
2、特征提取方法:傳統手工模型—由于原始數據量非常大,而且辨別力往往不好,所以需要對其進行特征提取—和通過深度學習完成的方法。
3、定位算法,利用提取出來的特征完成定位這件事情:優化方法--定位損失函數到達最小值的時候就為機器人的位置、通過全景描述符匹配或局部特征匹配完成定位的事情。
任何一種全局定位方法無外乎就是選擇某種傳感器+特征提取方法+算法構成。
4
機器人定位研究:過去和現在
我這里首先介紹一些比較經典的工作,這篇文章是在1999年完成的,是我能想到最經典的方法,還有很多同學和朋友用過ROS (robot operating system),對AMCL函數非常的熟悉,假設下圖中間藍色的地圖是已知的,給定激光雷達的點云,這個點云是單線也即由二維的激光雷達獲取,通過對機器人可能出現的位置進行逐步的更新、優化,最后可以完成對機器人定位這件工作。ACML利用的工具是離子濾波器,也是一種優化的方法。那么我們可以把這個最經典的方法從三個維度分類,它是利用二維激光雷達、手工特征和優化計算方法完成全局定位工作。
再往前推進10年,到2008年的時候,也有代表性的文章,通過子地圖匹配的方法。剛剛講到了做全局定位時往往需要對原始數據進行處理,原始數據量大,辨別力低,處理比較麻煩,所以需要對其進行特征提取。這個文章提出了一個基于直方圖的特征,用這些直方圖來刻畫子地圖,完成對子地圖之間的匹配。相當于用一個點云對準的方法完成這個定位的過程,就是把定位的問題轉換為點云對準的問題加以解決。
再往前推進10年是谷歌推出的大家比較熟悉的激光雷達SLAM算法,這也牽涉到全局定位的問題,通過對地圖網格化,對機器人的位置進行估計,對特征提取這件事它最大的特點是它所使用的branch-and-bound優化方法很成熟,使得它做全局定位的方法比前人提出方法效果好很多。
最近有代表性的方法體現在這篇CVPR 2019發表的文章,用深度學習的方法來完成全局定位這件工作。這個網絡分兩大部分:
1、最左邊三個不同的點云,對每個點云初步計算,把每個點云位置確定出來。
2、右邊的部分是把這幾個已經初定位的定云進行精定位。就是把全局定位分解成地圖、點云對齊的兩步。是一種利用優化解決全局定位的方法,單優化的過程不是通過經典的解析優化算法,而是通過神經網絡來完成優化,效果相當好。
以上介紹的所有方法都是基于二維的點云完成全局的定位,到了10年前,即2010年左右,三維點云、多線激光雷達技術慢慢地成熟,隨之而來的是基于三維點云分析方法和移動機器人全局定位方法。
這篇文章解決了尺度問題:首先對三維多線激光雷達產生的點云進行特征(NARF)提取,把現在觀察到的NARF特征跟地圖中的NARF特征進行快速匹配,完成全局定位。
此外,和上一件工作類似,這篇文章介紹了更新穎的三維特征點Gestalt的提取方法,提高辨別力,使得點云匹配的效果非常好。
以上的所有的工作都是基于對三維點云中局部特征點的匹配來完成全局定位工作,2016年我有兩個學生首次提出了如何產生所謂全局描述符:給定一組由若干個點云組成的地圖,之后對每一個點云進行描述,把地圖所有點云變成了描述符;當機器人觀察到某一個點云時用同樣的方法對其進行刻劃,產生描述符。然后把觀察到的描述符和地圖中的描述符進行一一匹配之后,進行相似度計算,可以產生當下機器人的位置。
這件工作中描述符是如何產生的呢?
輸入是一個點云,輸出是向量,該向量描述了點云的特征,產生過程包括若干個步驟。首先把點云投影到幾個特定的二維平面,再產生直方圖,直方圖拼接構成矩陣,通過對矩陣進行奇異值分解(SVD)計算該矩陣的左右特征向量,最后把兩個對應最大奇異值的左右特征向量拼在一起,構成一個一維的向量作為點云的描述符。
描述符的代碼是開源的:https://github.com/LiHeUA/M2DP
視頻中介紹的是驗證實驗 (https://www.youtube.com/watch?v=o87MGK8qQaY)。工作是在很流行的公共數據集上完成的,左上角是機器人觀察到的視覺圖像(在定位中沒有使用),右上角是不同位置采集的點云,每一個點云都要進行描述符的計算,地圖中的不同位置由若干個描述符刻畫,當機器人回到曾訪問過的某個位置時,對現在觀察的描述符和地圖中描述符進行相似度計算后,當該相似度超越某個閾值后,就可以完成當下機器人全局定位的工作。
近兩年全景描述符越來越流行了,包括現在用深度學習的方法產生一維的向量,作為全局點云圖的刻畫,用視覺完成這件事的時候受光照變化影響很大,但是激光雷達產生的點云則對光照變化有更好的魯棒性,可以有效完成高精度全局地位工作。
之前給大家介紹了如何利用二維和三維點云完成全局定位,下面介紹如何利用視覺信息來完成全局定位。
需要完成的定位工作可以通過這個畫面去理解:給定一個地圖,對地圖關鍵幀和比較有特點的地方、地點進行視覺采樣,即照一副照片,當下機器人觀察到的是另外一個圖像,這幅圖像是不是在地圖里面已經存儲的某一幅圖像?如果當下圖像和地圖中的圖像成功匹配,那么也就完成了全局定位工作。
完成基于視覺的全局定位有幾個挑戰,挑戰來源于:
首先是光照變化和視角變化的挑戰:第一次和第二次訪問不一定是同樣的時間,光照和視角會發生變化。舉例來說,上面兩幅圖像問大家是不是來源于同一個地方?大家可能需要認真地看一會兒才能作出正確判斷,通過比如說這個樓和這個樓是同樣一座樓,還有路旁的樹木。
大尺度的挑戰
這張地圖里面包含了千萬張關鍵幀圖像,如何實時完成圖像匹配是個巨大的挑戰。
如果不考慮計算復雜性,圖像匹配工作原則上講不是很難,給你兩幅圖像,看看是不是來自于同一個地點。我們對第一和第二張圖片進行點對點的特征匹配,如果有足夠多的特征點匹配,我們就能初步判斷圖像來自于同一個位置。當然,如果有光照和視角點變化時,特征點匹配則不是那么容易。再有就是剛剛講到的大尺度問題,如果地圖包含很多不同的地點,一幅圖像跟幾萬個地點匹配,這件工作的計算量是相當大的,對實時運算產生挑戰。
如何解決這三個挑戰?
先談一下大尺度的挑戰。解決方法之一,就是通過對圖像中俄特征點進行篩選。這是因為在完成特征點匹配時,不是所有的特征點都有效。在我2011年完成的一件工作中,證明了大尺度的角點或者特征點檢匹配率是很高,我們可以用這個特點對提取出來的特征進行篩選,去除占比例非常高的小尺度特征點,提高整幅圖像匹配效率。
還可以利用有效的數據結構來加速完成匹配這件事,比如說用樹結構存儲特征來完成匹配,用圖結構來存儲地圖里面所有的局部角點,以完成觀察到圖像中的角點和地圖圖像中的角點的快速匹配。另外一種方法是通過查表方法,在所有的搜索引擎里,百度和谷歌在搜索網頁的時候,給幾個關鍵詞就能迅速把互聯網中相關的網頁找到,就是通過查表的方法。同樣的方法可以利用到圖像特征匹配,以完成全局定位這件工作。
以上講的是如何利用局部特征描述視覺圖像,解決全局定位的問題。我們也可以通過全局描述符、全景描述符的方法來對一幅圖像進行刻畫,完成全局定位的工作。我們在2012年提出了一種全局描述符的算法。如何對一副圖像進行描述呢?首先把它分成若干個塊,每一個網格用濾波器進行處理,每一個區域都有若干個反應量,把所有反應量疊加在一起就形成了對整幅圖像的描述符,描述圖的維度不是很高,所以,我們就可以利用描述圖進行圖像匹配,以完成全局定位的目的。
隨著深度學習的發展,近幾年有很多基于深度學習完成移動機器人全局定位的算法出現,我們也做過這方面的工作。深度學習很成功的研究方向之一就是圖像分類,如圖是其中一個比較流行的網絡,它的輸入層是一幅圖像,輸出用來分類,我們可以把神經網絡的中間層想象成是對輸入圖像的刻畫,即任何一個中間層都是輸入圖像的描述幅。利用中間層產生出來的向量描述符,完成圖像匹配和全局定位這件工作。
我們在2015年的時候做了這件工作,下圖左邊是不同的深度神經網絡在做圖像匹配工作的表現,曲線越高表現越好。右邊這幅圖介紹了神經網絡產生出來的描述符,天藍色和棕色都是深度神經網絡產生的描述符,比傳統的手工完成的描述符方法更好,以證明深度學習/深度神經網絡是產生全景描述符很好的方法。
這些年這個方向也有了很快的發展,最近趨勢可以通過下面這件工作來了解。首先是對一副圖像更細的處理,檢測和描述圖像中的物體。框圖左邊和右邊是類似的過程。進行圖像中的物體檢測后,再對每一個檢測出的物體用神經網絡進行描述,圖像和圖像之間匹配的工作可以通過匹配刻畫物體的特征向量來完成,這個工作在全局定位算法中有最好的表現。
基于上述的全局定位的框架,我的另外一個學生在2018年完成了對這個框架的加速,下圖中右上部分代表我們方法保留了現有框架的精度;下圖右下的綠色和紅色是我們提出的方法,運行的速度比其他方法要快很多,從絕對數量來說,幾十毫秒就能完成在有2.1萬張圖像地圖中的全局定位。
最后介紹的工作是為了解決全局定位中最難的情況,做甚至不可思議的事情,就是極端變化條件下完成全局定位。這個照片代表著白天拍下一張黃色汽車從左往右行駛的照片,下面的圖片是在晚上汽車拍下從右向左行駛時的照片。
從位置角度看,汽車到達了同一地點,但圖像獲取的方向和光照條件完全不一樣,在這種極度變化條件下如何完成這兩組圖像匹配?上圖右上面的兩張圖是機器人拍下來的。解決方案分兩步走:
1、粗匹配,對圖像進行語義分割,分割出來的每一類做描述符,通過圖像之間的描述符進行匹配之后初步的篩選。
2、對每幅圖像的特征點精匹配,最后達到全局定位。
最后介紹兩篇基于傳感信息融合的全局定位方法。下圖中的方法中,第一步通過視覺信息完成,第二步通過激光雷達完成。
在今年剛剛發表的文章中,同樣也是利用對激光雷達和視覺圖像信息融合完成全局定位,但全部工作是利用深度神經網絡完成。在該方法中,由點云、圖像分別各產生一幅描述符,然后對兩個描述符進行融合,之后產生融合后的描述符,這個融合后的描述符為全局描述符,用來完成全局定位工作。
5
未來展望和總結
最開始把導航工作分成幾個模塊,其中包括剛剛提到了的SLAM,泛義SLAM把避障和軌跡規劃也歸納到其中。SLAM技術是移動機器人必不可少的工具,過去二三十年的移動機器人導航研究工作重心放在SLAM,但構建地圖的目的局限于為了完成定位。現在大家逐漸發現,我們只支持定位的地圖是不足以完成導航的,因為導航同樣也需要避障和軌跡規劃,所以我們就需要搭建更稠密的地圖,開發Dense Mapping算法。
另外一個移動機器人導航重要的研究方向是如何對環境進行有效的語義刻畫。為什么要對環境做語義刻畫呢?首先,語義刻畫銜接了我們與機器人對環境的理解的差距,起著橋梁的作用。再者,通過對環境的語義表達,其結果會更簡潔和抽象,具備環境信息處理時的優點。所以語義刻畫是目前業界比較關注的研究方向,ppt中這個白皮書的作者,是做SLAM工作、大家熟悉的AndrewDavison,白皮書中他提出了Spatial AI的概念。我們做移動機器人工作也是在做人工智能,只是跟空間息息相關的人工智能,而SLAM技術是人工智能的基礎工作,是必不可少的工作。
如果想在移動機器人導航方面進行更深入的研究,應該明確我們想達到的目的是什么?現在已經有了很多相對成熟的SLAM技術,但距離自主導航遠遠不夠,我們還需要:
1、對環境的語義表達、理解能力。我們和機器人的理解不一樣,機器人生活在數字世界里面,我們生活在抽象的概念里面,讓機器人和人共融就必須讓機器人具有語義這個層次的推理規劃能力,使得機器人可以勝任人們賦予它們的工作。
2、更高的魯棒性。目前移動機器人的魯棒性尚不能滿足實際工作的要求,為了它們能勝任各類任務,魯棒性需要大幅度的提高。
3、真正意義上的自主移動機器人。關鍵詞是“自主”, 而具有這種能力的機器人從我個人角度來看,跟我們目前的研究水平之間還有一定的差距,這也正是大家需要努力的方向
總結
以上是生活随笔為你收集整理的机器人学习--全局定位(阿尔伯塔大学张宏教授报告)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人学习--路径规划算法
- 下一篇: 机器人学习--Robotics: Est