/ORBSLAM3_CARV

Upgrade of the SLAM version in CARV from ORB-SLAM2 to ORB-SLAM3

Primary LanguageC++Apache License 2.0Apache-2.0

SLAM_CARV

newer version of SLAM and CARV engine

Personal Notes (To Edit)

Export command

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/vr_ws/SLAM_CARV/Examples/ROS

Differences from original repo

  1. Working with c++14
  2. removed build folders being in git repo for cleaner build.
  3. Applied some fixes to the code from the original ORB-SLAM2
  4. suppress all warnings so that we can only see errors and not warnings from deprecation in eigen.
  5. Make a config_files directory, that has all yaml files and configuration files.
  6. Change crono::monotonic_clock to chrono::steady_clock

Compilation Edits

  1. Install ros melodic (Tutorial Here )
  2. Install ORB-SLAM2 dependencies
  3. Install CGAL sudo apt-get install libcgal-dev
  4. Edit from original repo Here
    • Move the code to work with c++14 in order to avoid the error of not having proper access to std::decay_t
  5. change permission for build file of ORB-SLAM2 chmod +x ./build.sh
  6. build ORB-SLAM2 ./build.sh
  7. change permission for build file of ROS modules chmod +x ./build_ros.sh
  8. build ros modules ./build_ros.sh

Steps to run

  1. Build the docker file using the build script
$ cd Docker
$ sudo ./build.sh
  1. Now you should be able to run the docker image with VNC capabilities (make sure that the device id in the ./run.sh script is correct .. device0 should work with webcams.
$ sudo ./run.sh
  1. In any VNC viewer (Remmina for example) use the following vnc url
localhost:5900
  1. You will be prompted for a password, use the "password" (yes, very secure I guess).
  2. At this point, you have a full ubuntu desktop to work with.
  3. right click anywhere, and open
Application >> Shells >> Bash
  1. We need to run a camera node to publish this to ros and then do the mapping to our CARV, so, we can just launch the camera test module from ros to start publishing
$ roslaunch usb_cam usb_cam-test.launch
  1. You should see the camera feed in a window.
  2. Now, let's run CARV, open another shell terminal and do the following (it is now using ORB-SLAM3)
Applications >> shells >> Bash
$ cd root/CARV/ORBSLAM3_CARV
$ rosrun ORB_CARV_Pub Mono Vocabulary/ORBvoc.txt Logitech_c270_HD720p.yaml /camera/image_raw:=/usb_cam/image_raw
  1. ORB-SLAM2 will load the vocabulary dictionary for DBoW and then you should see that the SLAM window and SLAM image feed is working.