當前位置:
首頁 > 最新 > 機器人為什麼不路痴?

機器人為什麼不路痴?

1

什麼是視覺SLAM

說起機器人,大家的印象可能是這樣的:

或是這樣的:

甚至是這樣的:

現如今,機器人技術已經廣泛應用在教育娛樂、家庭服務、自動駕駛等方面。與人類相似,機器人以處理器為大腦,以機械臂為四肢,除此之外,還需要感知環境的"眼睛"。這雙眼睛可以是激光雷達、GPS、IMU等,這裡我們主要介紹以攝像機為眼睛的方法。把一個機器人放到完全陌生的環境,如果它不具備空間定位與環境感知能力,就無法知道所處空間的構造,也不知道自己在空間中的相對位置,進而難以完成路徑規劃,目標定位等任務了。

要怎麼解決"我在哪","這是什麼地方"的問題呢,這時,SLAM技術了就要大顯身手了!SLAM全稱Simultaneous Localization and Mapping,翻譯成中文是同時定位與建圖。在SLAM體系中,"我在哪"的問題稱為定位,"這是什麼地方"的問題則稱為建圖。

定位和建圖,是環境感知的兩個基本內容。"定位"是知曉自身位置,估計一步步行進的軌跡。"建圖"是了解外部環境,把每個視角獲取的圖像重建成完整的三維地圖。同時掌握這兩個技能,機器人才能感知環境,依靠SLAM行動自如。

SLAM的實現方法主要分為兩種。第一種是在環境中安裝感測設備,比如在房間地板上鋪設導線,在牆壁上貼二維碼,安裝無線電定位設備等。這些設備如同魔法陣一般,能直接測量到機器人的位置,但由於感測設備的位置固定,機器人的活動範圍也被會限制,只能在鋪設"魔法陣"的固定"結界"中活動了。

第二種方法則是直接把感測器安裝在機器人身上,比如相機、激光雷達、輪式編碼器、慣性測量單元(IMU)等。這些裝置像是魔法道具,通過測定一些與位置信息相關的物理量,間接定位,給予機器人在任意場景自如行動的可能。

這裡,我們重點說一說使用相機的SLAM方法。相機如同機器人的眼睛,因此這種方式也被稱作視覺SLAM。

2

相機都有什麼

SLAM中相機多種多樣,可以使用一個或多個RGB相機,通過演算法計算位置,也可以使用深度相機,直接測距。還有全景相機、event相機,在特定場景中有所應用。

1

單目相機

單目相機僅使用一隻相機進行SLAM,這種方法成本很低,結構簡單,很受研究者的關注。但是,單目相機卻存在一個問題:無法通過一張照片得到深度信息。深度信息可以反映場景中物體表面點與感測器之間的距離,缺少了它,就無法感知空間的三維結構。

在生活經驗中可以知道,如果相機右移,圖像會向左移動;相機移動過程中,近處的物體移動快,遠處物體移動慢。在移動相機時,物體在圖像上的運動形成了視差。通過視差,可以判斷哪些物體離得近,哪些離得遠。這個距離是相對的,無法確定真實距離,被稱作尺度不確定性。

單目相機平移後才能計算深度,並且只能計算相對深度,這個問題無法避免。為了更方便而準確的得到深度信息,人們開始使用雙目相機和深度相機。

1

2

雙目相機

雙目相機模仿了人眼的原理,人眼就像是兩個平行放置、同時運作的相機,人們若只用左眼和只用右眼,看到的場景會存在差異,依靠這個差異可以判斷遠近,雙目相機也是如此。不過雙目相機計算量很大,現有條件下,想要實時獲取高解析度和高精度的深度信息,往往需要額外的硬體加速。

2

3

深度相機

深度相機又稱做RGB-D相機,比傳統相機,多出一個維度,代表像素點的深度。它可以使用紅外結構光或者ToF原理,向物體發射一道光,並接受反射的光,通過反射光的變化或者接收反射的時間,計算出物體離相機的距離。

這種方法僅需要一個相機,計算量小,通過物理方法直接測量。但現有深度相機往往會受到環境、光照、距離等限制,在室內應用比較多。

3

3

視覺SLAM框架

1

感測器數據讀取

感知世界的第一步,當然是睜開"眼睛",觀察世界啦。視覺SLAM中,相機隨著機器人不斷運動,以一定速率拍攝環境,得到一系列連續變化的圖像。此外,還可以讀取碼盤、慣性感測器的信息,這些信息經預處理和同步,共同用於機器人的運動估計。

1

2

視覺里程計

視覺里程計根據相鄰圖像之間的差異,估測相機的運動。叫它里程計是因為它僅計算相鄰時刻的運動,像只有七秒記憶的金魚,和更久遠的信息沒有關聯。當然,最簡單的情況是,僅記錄連續兩幀的信息,估計這兩個時刻間相機的運動。只要把許多相鄰時刻間的運動估計串成一串,就構成了機器人的運動軌跡,從而解決了運動問題。

可是要如何解決相鄰時刻間的運動估計呢?在機器人的大腦里,只能進行數值計算。機器人通過"眼鏡"看到的圖像,會存儲為一個數值矩陣。機器人需要通過特徵匹配等方法,估算一個三維空間的變換矩陣,得到自己在三維空間中的位置信息。

視覺里程計被稱為前端,是SLAM的關鍵問題,但是僅通過視覺里程計估計軌跡,會不可避免的出現累積漂移。可以想像,僅通過相鄰幾幀估計的運動會存在誤差,下一次估計建立在帶有誤差的估計結果上,連續的誤差累積使得軌跡估計越來越偏。這時,就需要SLAM的後端優化和迴環檢測來救場了~

2

3

後端優化

SLAM系統估計的軌跡和地圖不可避免的帶有雜訊,機器人應該多信任當前的估計結果?這些估計結果帶有多大的雜訊?後端就是處理了這個問題。它通過濾波和非線性優化演算法,儘可能優化當前的估計結果,減少雜訊影響。前端像是機器人的眼睛,觀察環境的特徵,估測運動軌跡。後端則更像大腦中的判斷區域,估計運動軌跡和空間環境的不確定性。

3

4

迴環檢測

迴環檢測又稱閉環檢測,是解決累積偏移問題,一種簡單粗暴的方法。想像一下,如果機器人繞了一圈,回到了曾經去過的地方,但由於累積偏移,它的位置估計卻存在偏差。這時,如果機器人識別出這個地方曾經來過,就可以修正地圖和軌跡估計。在迴環檢測準確而充分的條件下,不斷修正估計值,就可以消除累積誤差~

賦予機器人"記憶"能力的方法有很多。可以在環境中設置標誌物,當然,這存在數量和範圍的限制。更通用的方法是通過機器人的"眼睛",直接判斷圖像間的相似性,可以使用基於圖像特徵的詞袋模型,或現今火熱的模式識別方法實現。若檢測到迴環,機器人認為這個地方似曾相識,後端優化模塊就會調整軌跡估計和建圖結果,減少系統誤差。

4

5

建圖

根據機器人任務的不同,建圖方式也多種多樣。地圖可以是三維空間點雲,對整個空間環境進行重建,也可以更漂亮一些,用三角面片和紋理構成網格地圖。如果對地圖要求不高,也可以建立二維地圖,標記哪裡可以通過,哪裡是障礙物就足夠了。

5

以上就是SLAM的核心功能和基礎模塊。當然,SLAM的研究方向遠不止於此,多樣的數據感測器、豐富的地圖信息表示及不斷迭代更新的優化方法,為SLAM的發展提供了多種可能。自動化所吳毅紅研究員率領模式識別國家重點實驗室機器人視覺團隊,利用多年的技術積累和知識產權,推出了面向智能移動終端的視覺定位解決方案(CASIA-VSLAM)。相信在未來,SLAM在無人機、自動駕駛、機器人、增強現實等領域會有更加廣泛的應用。

來源: 中國科學院自動化研究所


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 中科院之聲 的精彩文章:

心功能評估與心臟監護的自驅動超靈敏心內壓感測器研究獲進展
量子固體中質量輸運機理研究取得進展

TAG:中科院之聲 |