執行LearnVIORB及VINS_mono

是皮皮攀呀,發表於2018-09-06

整個操作過程中,如果出現有關cmakelists中的某個版本和自己系統中提供的版本不符的情況。兩種辦法,一種更改cmakelists中要求的版本號,另一種是自己調整系統中的版本至要求。一般簡單的是前者。

A.VIORB的執行步驟

1.編譯庫

根據資料夾中的build.sh流程走。

cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../g2o

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

cd ../../../

在src資料夾下cmake .. , make,編譯src和include檔案,生成 libORBSLAM2.so

#Vocabulary資料夾下還差一個ORBvoc.txt檔案,需新增

2.配置和build ORBSLAM

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

一般執行到make這一步就會出現各種千奇百怪的問題about g2o啦, about ceres啦,等等

#此時,將資料夾中的include 檔案更換為ORB SLAM2中的include 檔案,再進行上述cmake,make操作,就不會產生錯誤了。

編譯成功的狀態如下:

[100%] Built target ORB_SLAM2

3.Build ROS node

開啟檔案
gedit ~/.bashrc

在.bashrc 末尾新增:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/ws/catkin_ws/src/LearnVIORB-RT/Examples/ROS    並儲存

更新檔案
source ~/.bashrc

顯示當前ros 環境
echo $ROS_PACKAGE_PATH

cd ..

cd Examples/ROS/ORB_VIO
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

構建成功如下所示:

[100%] Linking CXX executable VIO
[100%] Built target VIO

4.配置configuration檔案:

config/euroc.yaml(兩處):

test.InitVIOTmpPath:生成檔案存放的位置

bagfile:資料集位置

5.執行

source devel/setup.bash(新增工作環境,只需要執行一次)
roslaunch ORB_VIO testeuroc.launch(執行)

________________________________________________________________________________

以上是VIORB的執行步驟,下面是VINS_mono的執行相關。

B.VINS_mono的執行步驟

1.常規操作:

   cd ~/catkin_ws/src
    git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
    cd ../
    catkin_make
    source ~/catkin_ws/devel/setup.bash  //一定注意修改到當前ws的路徑下

編譯結束的結果:

[100%] Linking CXX executable /media/zp/zengpan/ubuntu/catkin_ws_vins/devel/lib/vins_estimator/vins_estimator
[100%] Built target vins_estimator

2.公開資料集上的Visual-Inertial Odometry and Pose Graph Reuse

開啟三個終端,分別執行:

    roslaunch vins_estimator euroc.launch 
    roslaunch vins_estimator vins_rviz.launch
    rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag 

    rosbag play /media/zp/zengpan/MH_01_easy.bag

注意:每個新開啟的終端在執行之前,都需要source一下.bash檔案到當前的workspace之下,否則上述3條指令執行會出錯。

相關文章