vins kidnap安裝使用

VINS如果視覺結果和IMU檢測的結果不匹配,容易出現跑飛的現象。例如一個人在電梯裏面,或者在相機前面遮了一塊幕布忘了掀開。結果不匹配,導致優化過程中CERES極有可能求解出一些跳動值不穩定值,導致整個系統不穩定運行,甚至掛掉。
vins kidnap 用來對這種定位綁架的問題提出了開源的方案。

giththub地址:https://github.com/HKUST-Aerial-Robotics/VINS-kidnap

vins kidnap:
This is the cerebro module for VINS-Fusion. The aim of this project is better loop detection and recover from kidnap. The cerebro node connects to the vins_estimator nodes of VINS-Fusion (with ros interface).
從上面介紹來看,vins kidnap主要增加了cerebro 節點來實現更好的閉環檢測以及定位綁架的檢測和能夠從定位綁架中恢復。閉環檢測也從檢測到一幀變成兩幀才進行兩個世界座標系的轉移。

兩種安裝方法:

1.直接源碼安裝:

安裝依賴項

sudo apt-get install libjpeg-dev libtiff5-dev
sudo apt-get install libpng-dev  
sudo apt-get install libopenimageio-dev
sudo apt-get install libopenexr-dev

sudo apt-get install librapidjson-dev
sudo apt-get rm librocksdb-dev

安裝這些包:

https://github.com/facebook/rocksdb
https://github.com/Tencent/rapidjson
https://github.com/sweeneychris/TheiaSfM

安裝tensorflow和keras

sudo pip install keras
pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.11.0-cp27-none-linux_x86_64.whl

一個個裝下來

git clone https://github.com/mpkuse/VINS-Fusion
git clone https://github.com/mpkuse/cerebro
git clone https://github.com/mpkuse/solve_keyframe_pose_graph

2.推薦用docker:

安裝docker,NVIDIA驅動,CUDA 9.0 ,docker NVIDIA:
https://blog.csdn.net/huanghaihui_123/article/details/87985403
安裝完後:

$(host) export ROS_HOSTNAME=`hostname`
$(host) roscore
# assume that host has the ip address 172.17.0.1 in docker-network aka docker0
$(host) docker run --runtime=nvidia -it \
        --add-host `hostname`:172.17.0.1 \
        --env ROS_MASTER_URI=http://`hostname`:11311/ \
        --env CUDA_VISIBLE_DEVICES=0 \
        --hostname happy_go \
        --name happy_go  \
        mpkuse/kusevisionkit:vins-kidnap bash
$(host) rviz # inside rviz open config cerebro/config/good-viz.rviz. If you open rviz in a new tab you might need to do set ROS_HOSTNAME again.
$(docker) roslaunch cerebro mynteye_vinsfusion.launch
$(host) rosbag play 1.bag

數據測試集下載:
https://hkustconnect-my.sharepoint.com/personal/mpkuse_connect_ust_hk/Documents/Forms/All.aspx?cid=fbe30997-b0b9-4f45-86b4-550269b95624&RootFolder=%2Fpersonal%2Fmpkuse_connect_ust_hk%2FDocuments%2Fmynt_bags&FolderCTID=0x0120000D4702081B54E948BA09913DE7528FC0

git clone --branch pcl-1.8.0 https://github.com/PointCloudLibrary/pcl

在自己機器上測試,效果比較一般:
同一個數據測試集合,會有不同的結果:
在這裏插入圖片描述
除了第一次初始化穩定,後面每一次均出現定位求解不穩定。雖然後來都有檢測出定位綁架。主要原因分析初始化的時候條件不夠好。
用同樣的數據,在不同時刻播放數據包的時候:
在這裏插入圖片描述
這段就能比較好的恢復三段獨立的信息。

不同顏色代表了不同的座標參考系,每一次檢測到定位綁架後,會進行重新的初始化過程。

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