Taeyoung96 / VINS-Mono-docker-tutorial

Simple tutorial for VINS-Mono docker (w/ Open LORIS-Scene dataset)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VINS-Mono-docker-tutorial

There is a dockerfile on the original repository, but the explanation is unfriendly for beginners.

I use another docker image and dataset.

I've also uploaded a step-by-step tutorial on YouTube.

Requirements

Dataset

If you want to use this dataset, you need to fix some bag files.
Please refer to this issue.

When you make dataset, you have to know where it is (Absolute path will be used).

@inproceedings{shi2019openlorisscene,
    title={Are We Ready for Service Robots? The {OpenLORIS-Scene} Datasets for Lifelong {SLAM}},
    author={Xuesong Shi and Dongjiang Li and Pengpeng Zhao and Qinbin Tian and Yuxin Tian and Qiwei Long and Chunhao Zhu and Jingwei Song and Fei Qiao and Le Song and Yangquan Guo and Zhigang Wang and Yimin Zhang and Baoxing Qin and Wei Yang and Fangshi Wang and Rosa H. M. Chan and Qi She},
    booktitle={2020 International Conference on Robotics and Automation (ICRA)},
    year={2020},
    pages={3139-3145},
}

Clone VINS-Mono repository

You could use original VINS-Mono repository,
but I make my own VINS-MONO-studying.

I added config file for OpenLORIS-Scene dataset, and change the file format of vins_result_loop.csv like TUM RGB-D dataset.

git clone https://github.com/Taeyoung96/VINS-MONO-studying.git  

Also, you should know where it is (Absolute path will be used).

Pull the docker image

I used icra2018/vins-mono docker image.

docker pull icra2018/vins-mono

When the Docker image pull is completed, the output is as follows when input as shown below.

docker images

Output:

REPOSITORY           TAG                    IMAGE ID       CREATED        SIZE
icra2018/vins-mono   latest                 1dc54987f8fe   2 years ago    4.95GB

Make your own container

You have to use your own absolute path, when you run the command below.

nvidia-docker run -it -p 8888:8888 -e DISPLAY -w /home/jovyan/catkin_ws/src -v /tmp/.X11-unix:/tmp/.X11-unix \
-v [Absolute path of Dataset]:/dataset \
-v [Absolute path of VINS-Mono repository]:/home/jovyan/catkin_ws/src/ \
--name vins-mono icra2018/vins-mono:latest /bin/bash

When you are done, the terminal will be changed like below.

jovyan@e9663ba248d6:~/catkin_ws/src$ 

Type ls and you should see the VINS-Mono folder.

jovyan@e9663ba248d6:~/catkin_ws/src$ ls
VINS-Mono

Change the directory and build it.

jovyan@e9663ba248d6:~/catkin_ws/src$ cd ..
jovyan@e9663ba248d6:~/catkin_ws$ catkin_make 

When you are done you would see the outputs below.

[  3%] Built target benchmark_publisher
[ 23%] Built target camera_model
[ 44%] Built target Calibration
[ 47%] Built target ar_demo_node
[ 53%] Built target feature_tracker
[ 78%] Built target vins_estimator
[100%] Built target pose_graph
...

Then run roscore.

jovyan@e9663ba248d6:~/catkin_ws$ roscore  

Now you need to connect to the Docker container using the other 3 terminals.

  • 2nd Terminal : launch vins_estimator
  • 3rd Terminal : launch Rviz
  • 4nd Terminal : play rosbag file

Before connecting other terminals to the container, type the command below to use the GUI.

xhost +local:docker

2nd Terminal :

docker exec -it -w /home/jovyan/catkin_ws/ vins-mono /bin/bash

When connecting to a docker container,
The launch file is in VINS-MONO-studying.

roslaunch vins_estimator realsense_color_cafe.launch

3rd Terminal :

docker exec -it -w /home/jovyan/catkin_ws/ vins-mono /bin/bash

When connecting to a docker container,

roslaunch vins_estimator vins_rviz.launch

4nd Terminal :

docker exec -it -w /dataset vins-mono /bin/bash  

When connecting to a docker container,

rosbag play cafe1-1_with_imu.bag

This bag file was created by myself using the OpenLORIS-Scene dataset.

Result

License

Same License with original VINS-MONO.

The source code is released under GPLv3 license.

We are still working on improving the code reliability. For any technical issues, please contact Tong QIN <tong.qinATconnect.ust.hk> or Peiliang LI <pliapATconnect.ust.hk>.

For commercial inquiries, please contact Shaojie SHEN <eeshaojieATust.hk>

About

Simple tutorial for VINS-Mono docker (w/ Open LORIS-Scene dataset)