1 背景
很奇妙,從一個羣裏看到一個人的朋友圈,搞定了【VSLAM(VINS)+EKF+MPC=停車場無限循環】,挺感興趣的,在這裏簡單分析一下。
視頻截圖:
2 分析
2.1 VSLAM
根據經驗,電腦屏幕上顯示的是rviz,VSLAM具體是VINS,但不確定是VINS-mono,還是VINS-fusion,也不確定是單目+IMU,還是雙目+IMU。
問題:
- VINS是用的在線的定位模式還是加載地圖的重定位模式?
猜測:
- 根據視頻展示,車輛在地下停車場自動駕駛,其實是循跡,也就是先建圖,並記錄軌跡,之後加載地圖進行重定位,再使用EKF融合其他傳感器,得到最終的pose,最後再使用MPC循跡
- 當然也不能排除就是在線的定位模式的可能性
2.2 EKF
EKF是擴展卡爾曼濾波,SLAM可分爲基於濾波的方法和基於優化的方法,但是已經有了基於優化方法的VINS,那麼這裏的EKF很可能用來做多傳感器融合,比如robot_pose_ekf和robot_localization都是用的EKF做多傳感器融合,可以融合Odometry,IMU,VO和GPS等進行定位。
2.3 MPC
MPC(Model Predict Control)是一種反饋控制(feedback control)算法,使用模型來預測過程的未來輸出。
MPC的特點:
- 支持MIMO系統,便於構建輸入輸出間的相互影響參數
- 支持方便添加約束條件
- 具有預測能力
- 需要較好的處理器和較大的內存,因爲需要大量的在線優化,存儲大量的變量
相關參考資料:
- https://blog.csdn.net/zhkmxx930xperia/article/details/87742479
2.4 VSLAM(VINS)+EKF+MPC
從視頻效果來看,能夠實現在停車場環境的無限循環自動駕駛。
從軌跡來看,也是有誤差的,每次的行駛軌跡有差異,尤其是右上角部分,軌跡明顯不重合。(軌跡不重合也可能是爲了避障)
從這個角度看,VINS又可能是使用的加載地圖的重定位模式,不然怎麼消除的累計誤差?
3 擴展
Autoware的waypoint_follower中使用的軌跡跟蹤算法爲Pure Pursuit。
參考資料: