ROS-Kinetic implementation of Urbstate MultiCol-SLAM
This is a stable ROS implementation of the MultiCol-SLAM algorithm (original author: Stephan Urban). Please refer to the "https://github.com/urbste/MultiCol-SLAM" for initial implementation. This enables the user to run MultiCol-SLAM algorithm using live camera feed and perform real-time SLAM.
Please note that the calibration files are very crucial for efficient tracking. Please refer to urbste/MultiCol-SLAM#9, for concerns on multiple camera calibration setup.
-
Pangolin For visualization. Get the instructions here: https://github.com/stevenlovegrove/Pangolin. This isn't present in the ./ThirdParty folder, needs to be installed off-the-shelf.
-
Eigen3 Required by g2o Version 3.2.9 is included in the ./ThirdParty folder. Other version can be found at http://eigen.tuxfamily.org/index.php?title=Main_Page.
-
OpenGV OpenGV can be found at: https://github.com/laurentkneip/opengv. It is also included in the ./ThirdParty folder. OpenGV is used for re-localization (GP3P) and relative orientation estimation during initialization (Stewenius).
-
DBoW2 and g2o As ORB-SLAM2 modified versions of DBoW2 and g2o are used for place recognition and optimization respectively. Both are included in the ./ThirdParty folder. The original versions can be found here: https://github.com/dorian3d/DBoW2, https://github.com/RainerKuemmerle/g2o.
-
OpenCV 3 ROS-Kinetic has its own version of OpenCV-3.3.1-Dev. This version works fine with the MultiCol-SLAM, and I would recommend not to mend with the OpenCV version. In any case OpenCV can be found and installed from: https://github.com/opencv/opencv.
Build the package:-
-
Add the MultiCol-SLAM package path to the ROS_PACKAGE_PATH envirnoment variable as shown below
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/path_to_directory/Examples/ROS/MultiCol-SLAM
-
Compile the MultiCol-SLAM source codes into a condensed library with bash build.sh command.
-
Compile the ROS executable with the condensed libraries with bash build_ros.sh command.
Run the SLAM algorithm using the ROS toolchain:-
- Initiate the ros master (roscore or an existing roslaunch file)
- Run the camDriver node (rosrun your_package_name camDriver)
- Run the SLAM node (rosrun your_package_name Multi)
To change the calibration or setting files, go to Examples/ROS/MultiCol-SLAM/src/ros_multi.cpp, change the file paths appropriately