天天看點

Ysfyuan的VINS-Fusion學習之路Ysfyuan的VINS-Fusion學習之路

Ysfyuan的VINS-Fusion學習之路

剛剛接觸到SLAM(同時定位與建圖)的初學者我想一定會被其強大的應用前景所打動。站在巨人的肩膀上可以看到更遠的風景 ,我認為SLAM的應用在未來不僅是狹隘的機器人智能領域,而是物聯網這個幾乎可以明确限定的未來發展方向,不止是改變人們的交通出行方式和工作方式,而是改變人類的思考和生活。 正常工作可能會被替代,出行方式和途徑可能會在想法出現的一刹那被規劃好。

  • SLAM
  • 視覺慣性裡程計(IMU+相機)
  • VI ORBSLAM和VINS-Fusion差異分析
  • VINS-Fusion系統實作學習
  • 現有成果重制分析

1. SLAM

  • SLAM過程個人拆分了解
  • 可能在磁懸浮真空管道中的定位建圖應用看不出來SLAM的運用前景,但是我講一 個故事來說明它的部分作用,比如一個小孩子在沒有去過的商場和爸媽走散了,那麼他 要怎麼找到父母呢,很顯然自己蒙頭找方向不是那麼現實,但是如果他能利用電話 或者資訊将自己周圍的地表門店位置以及自己所在的路線傳遞給父母,我想應該問 題就顯得沒那麼緊迫了。實際上,幼稚園的小朋友不一定可以完成采集周圍資訊的 過程,這時就需要志願者來幫助。
  • 那麼這個志願者的工作實際上就類似于安裝在沒有定位功能機器上SLAM的工作,利用帶有SLAM的機器先來熟悉一遍環境,将路标和路徑資訊提前錄入,那麼當其他的機器在進入這個區域時,即使它沒有其他傳感器,也可以在此前SLAM記錄的曆史資訊中明确自身的定位。或者說減少了後續機器進去區域測速定位時的所需要的計算量。
  • 實際上,SLAM的真正應用是不限環境和條件的無人駕駛或者說無軌道列車駕駛。但是它想要實作不預先建圖,直接面對物質環境的建圖與定位則需要依賴強大的計算能力和各類模式識别的深度學習算法。在室外定位建圖領域可能GPS要更加成熟一些,但是未來更精确更細微的定位和建圖,SLAM可能才是最優選擇。另一方面,室内的定位建圖則完全是SLAM的市場,從智能掃地機器人到物流傳輸機器人。
  • SLAM需要解決的問題拆分:首先按照它的名字将它拆分成定位和建圖。

    建圖即是在一個未知環境中确定周圍環境中的點的位置,并完成記錄。

    定位則是在未知環境中确定自己的位置,在确定好一個相對坐标後,我們需要做的就是發現并且确定自身與周圍環境的相對位置。

  • 可能光看這兩個任務會感覺沒有大問題,在2D環境中,通過周圍的兩個已知點和輔助三角形的知識我們便可以完成自身與兩點的定位。但是,實際上工程應用會帶來許多理論中沒有考慮到的問題,首先是自身與已知點之間距離測試就不準确,會得到多個測量值,其次在運用時自身的運動模型不是簡單完美的直線勻速運動。這些傳感器的測量誤差是不可避免的,我們可以利用許多常用的估量模型來得到較優的值。最主要的問題還是來源于模型的不确定性,在不同的環境下需要不同的模型來進行值的選取和估算。而環境因素又是不可控的,是以SLAM需要更加迅速的反應和計算能力去應對環境的不斷變化。

2. VIO視覺慣性裡程計

視 覺 傳 感 器 與 慣 性 傳 感 器 的 融 合 視覺傳感器與慣性傳感器的融合 視覺傳感器與慣性傳感器的融合

  • 硬體上 VIO使用相機和六軸螺旋儀
  • 相機負責産生圖檔
  • 六軸陀螺儀負責産生加速度(三軸)和角速度(三軸)
  • 一方面,在靜态情境下,相機傳感器得到的資料基本沒有飄移,但是動态環境下則會出現明顯誤差;另一方面,IMU慣性裡程計擺放不動也會有較大的資料漂移,而它在運動狀态時的數值估計卻往往有較好的效果。顯而易見,這兩者存在功能上的互補性。
  • 而且,在定位的過程中,單憑視覺信号(圖檔和視訊)我們很難判斷出是自身在運動還是周圍的環境在運動;加入IMU之後,很大程度上我們可以緩解上面的問題。
  • 相機的采樣頻率一般為 30 Hz,IMU 的采樣頻率則高達 100 Hz – 1000 Hz,采樣頻

    率不同導緻二者間資料擷取頻率的差異,此時我們就需要利用預積分來實作VIO,處理相鄰關鍵幀中的IMU測量值,并推導出IMU協方差的疊代公式以及jacobian疊代公式。

4. VI ORBSLAM與VINS-Fusion

  • VINS 是一種基于滑動視窗方式的緊耦合視覺-慣性狀态估計器,該方法通過融合

    預積分後的 IMU 測量值和特征觀測值,獲得高精度的視覺慣性裡程計

  • VI ORBSLAM是一種能夠實作自動初始化、地圖重用、回環檢測、重定位以及全局優化的功能,适用于環形線路環境的VIO方法
  • 此前的實驗情況表明:

    以光流作為前端的 VINS-Fusion 比基于 ORB 特征的 VI ORBSLAM 更具魯棒性,在快速運動時更不容易丢失。是以,針對高溫超導磁懸浮環形實驗線這一特點場景,VINS-Fusion更加适用。

5. 改進後的VIO初始化方法

  • 在VINS中融合VI ORBSLAM的初始化優點
  • 提高已有定位建圖算法的精度和效率
  • 通過資料集EuRoc上驗證初始化融合的改進
  • VINS-Fusion系統實作的環境

    安裝環境:

    linux中Ubantu 16.04系統

    ROS系統

    Ceres Solver庫

    Eigen3庫

    Open-CV庫

    編譯環境:

    EuRoC資料集

    KITTI資料集

    Cmake編譯器

6.獨立跑通VINS-Fusion

  • 項目進行中

繼續閱讀