機器學習與計算機視覺(slam技術)

【 聲明:版權所有,歡迎轉載,請勿用於商業用途。  聯繫信箱:feixiaoxing @163.com】

 

    slam技術,就是一邊定位一邊進行建圖。現在比較流行的掃地機器人,其實就是slam應用的一個例子。另外工業生產上用的比較多的AGV,有一部分也是slam技術。相比較傳統的磁條導航,帶有slam的AGV不需要磁條,可以自己對環境進行建圖,並且快速進行部署,接受服務器控制。

 

1、應用場景

    家庭上主要是掃地機器人,工業上主要是AGV、無人叉車等,無人駕駛也算一部分。

 

2、slam分類

    主要是激光slam和視覺slam。

 

3、基本流程

    經典的slam一般包括三個部分。前端負責獲取傳感器數據、尋找特徵點、特徵匹配、數據融合、計算里程計、求解姿態和位置。後端負責對前端的結果數據進行進一步優化,主要有濾波優化和圖優化兩種方法。除了前端和後端,還有一個就是迴環檢測,如果識別到機器人回到了原來的場景,那麼可以重新進行姿態矯正,減小傳感器誤差。

 

   slam的關鍵在於優化和迴環檢測,slam做的好不好、能不能用,就在於這兩個方面。

 

4、爲什麼要後端優化

    傳感器的數據都是有誤差的,如果沒有優化,我們會發現構建出來的圖是一個不合理的圖。即使robot轉了一圈回來之後,這時會發現終點和起點沒有重合。

 

5、soc方案

    除了傳統的樹莓派,現在最火的應該是jetson nano,因爲有gpu的加持,算力會比較強。

 

6、操作系統

    linux,目前用的最多的其實就是ubuntu

 

7、slam的主要軟件平臺

    ros,ros其實是一箇中間件,習慣上稱之爲機器人操作系統

    ros裏面其實東西比較多,類似於一個大雜燴,比如說機器人手臂、仿真、地圖顯示什麼的都可以做。slam只是其中的一部分內容。

 

8、機器人平臺

    jetbot或者類似的套件

 

9、slam使用的主要技術

    攝像機標定、攝像機外參標定、pcl點雲庫、opencv庫、Eigen線性代數、sophus庫計算李羣問題、g2o優化、robot規劃、車輛控制、A*算法等等。

    常用的傳感器有激光、攝像頭、imu、gps、輪式里程計或者輪式編碼器、麥克風矩陣等等。

 

10、slam是否需要每一次都重構地圖

    理論上只需要構建以此,後面就可以直接利用了,當然也取決於地圖中的關鍵幀信息。有了地圖,就可以每時每刻都知道自己的位置,方便對路徑進行規劃、對車輛進行路線設計了,能做的事情也多了不少。

 

11、slam參考資料

    目前slam的書籍比較少,除了論文,slam十四講可以參考下。

 

12、目前的發展情況

    激光slam比較成熟,視覺slam (比如vio)有所發展,但是做成產品還是有距離。

 

13、開源代碼

   開源代碼其實挺多的。在github上搜一下,就可以出來好多,大家可以選擇適合自己的。

   視覺方面,比如orbslam就不錯,大家可以參考這個鏈接,

    https://zhuanlan.zhihu.com/p/47451004

   上面還有視頻,體驗一下slam出來的效果是什麼樣的。

 

    如果是激光方面,可以直接參考ros gmapping或者hector,最新的方法可以參考Cartographer。

 

14、matlab資源

    http://www.pudn.com/Download/item/id/3868383.html

    一個有趣的matlab slam代碼

 

15、比算法更重要的事情

    很多同學學slam偏向於算法,這無可厚非。但是比這更重要的是產品能否落地、能否幫助客戶的問題、耐久性有沒有問題、成本是否hold住,這些往往不是科學的事情,而是技術、工程的事情,甚至是商業的事情。

    對於嵌入式的同學來說,slam也是一次機會。嵌入式上面的算力、網絡、加速、安全等等,都是不小的一個挑戰。slam的前端算法、後端優化中,特別是優化,往往是加速的重點,優化意味着更多的循環、計算和算力要求,同時爲了保障實時性的要求,必須在藉助於multi core、dsp、fpga、npu或者gpu的幫助了,這個就看各個供應商自己的絕活了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章