This is the software related to the publication: Multicamera Visual SLAM For Vineyard Inspection, submitted at the CASE 2023.
DC-VSLAM is a multicamera visual SLAM designed for vineyard inspection. To address the challenge of homogeneous environments, loop closures are detected using AprilTags.
DC-VSLAM has been tested with OpenCV 4.2.0, Eigen 3.3.7 on Ubuntu 20.04 with ROS Noetic.
Kitti Dataset Sequence 01 :
EuRoC Dataset V1_02 :
Dual Camera on Vineyard :
Two different ways are provided for installation. One is with ROS where DC-VSLAM can run real-time using rosbags, and another without ROS where DC-VSLAM runs using images. For the real-time operations ROS Noetic is needed. Instructions on how to install ROS Noetic can be found here : http://wiki.ros.org/noetic/Installation.
Clone the package on the catkin workspace.
git clone https://github.com/christoskokas/DC-VSLAM.git
Download and install packages used by dc_vslam :
cd DC-VSLAM
chmod +x build.sh
./build.sh
From the catkin workspace install all the needed dependencies for the packages.
rosdep install --from-paths src --ignore-src -r -y
Build the workspace.
catkin_make
source devel/setup.bash
Build both dc_vslam and its packages without ROS :
chmod +x build_no_ros.sh
./build_no_ros.sh
Several launch files are provided. The RT denotes real-time and the AT denotes the use of AprilTag Loop Closure. Change the launch files to match the config file name and the topic of the image msgs for AprilTag detection.
DC-VSLAM can run both with images and with rosbags. Images need to be provided as presented below ( the bullets are folders ):
- DC_VSLAM
- images
- dataset_name
- left
- 000000.jpg(.png)
- 000001.jpg(.png)
- ...
- right
- 000000.jpg(.png)
- 000001.jpg(.png)
- ...
- leftBack
- 000000.jpg(.png)
- 000001.jpg(.png)
- ...
- rightBack
- 000000.jpg(.png)
- 000001.jpg(.png)
- ...
- left
- dataset_name
- images
And the full path to the dataset folder has to be provided in the config file.
To run Dual Cam with apriltag_ros package ( for Loop Closure ) at the same time :
roslaunch dc_vslam DualCamRTAT.launch
To run Dual Cam with AprilTag Detcetion messages ( for Loop Closure ) in a topic :
roslaunch dc_vslam DualCamRT.launch
To run Dual Cam from images in a directory :
roslaunch dc_vslam DualCam.launch
For Single Cam either from rosbag :
roslaunch dc_vslam SingleCamRT.launch
or images :
roslaunch dc_vslam SingleCam.launch
To run Dual Cam and wait for optimal pose of Apriltag :
roslaunch dc_vslam DualCam_exp.launch
To run Dual Cam with known Apriltag Pose :
roslaunch dc_vslam DualCam_exp_known.launch
If the installation was completed without ROS images need to be provided. Single Cam is also provided to test on well-known datasets like KITTI or EUROC. Configs for both KITTI and EUROC are provided. To run single cam :
./SingleCam config_file_name
with the appropriate changes on the config file.
To run Dual cam :
./DualCam config_file_name
- [] Add IMU integration
- [] Add more Apriltags