This repository is for the CSC 591/791 Software for Robotics project.
vobenchmarking is a software for the evaluation of the visual odometry algorithms RTABMAP and UnDeepVO. It also provides a custom implementation of the UnDeepVO algorithm. The evaluation can be done for different datasets, namely, 4seasons dataset and Tartan Air dataset.
- dataset_processing/ - Contains the code for converting datasets to ROS bags.
- ros2_ws/ - The workspace which contains the launch files to launch ROS nodes for different algorithms and datasets:
- RTABMAP for 4Seasons dataset (rtab_4seasons_launch.py).
- RTABMAP for Tartan Air dataset (rtab_tartan_air_launch.py).
- UnDeepVO for 4Seasons dataset (undeep_4seasons_launch.py).
- UnDeepVO for Tartan Air dataset (undeep_tartan_air_launch.py).
- undeepvo/ - Code implementation of the UnDeepVO algorithm.
- evaluator/ - Code for evaluation of the results generated after running the algorithm.
2) Install ROS2 Iron (Desktop Install)- https://docs.ros.org/en/iron/Installation/Alternatives/Ubuntu-Install-Binary.html
3) Install dependencies for Ubuntu:
sudo apt install ros-iron-rtabmap* ros-iron-rtabmap-odom ros-iron-rtabmap-msgs ros-iron-image-transport-plugins
4) Install python dependencies:
pip3 install torch torchvision kornia transforms3d pillow numpy
git clone https://github.com/sddavis14/vobenchmarking.git
cd vobenchmarking
Although the /dataset_processing folder contains samples as ROS bag files which require git lfs to download, the complete datasets are available at:
- 4Seasons: Download both images and ground truth pose.
- TartanAir: Follow the instruction given on this link.
For 4Seasons, both images and ground truth pose must be downloaded and the GNSSPoses.txt must be added to the dataset folder of the image files.
Once the dataset has been downloaded, place it in the main project directory.cp /path/to/downloaded/dataset .
OR
mv /path/to/downloaded/dataset .
The files 4seasons_to_bag.py and tartan_air_to_bag.py convert the datasets to bag files.
4Seasons:
python3 dataset_processing/4seasons_to_bag.py
TartanAir:
python3 dataset_processing/tartan_air_to_bag.py
In order to launch the ROS files, install the overlay.
source ros2_ws/install/setup.bash
For 4Seasons and RTABMAP run:
ros2 launch vo_eval_ros rtab_4seasons_launch.py
For Tartan Air and RTABMAP run:
ros2 launch vo_eval_ros rtab_tartan_air_launch.py
For 4Seasons and UnDeepVO run:
ros2 launch vo_eval_ros undeep_4seasons_launch.py
For Tartan Air and UnDeepVO run:
ros2 launch vo_eval_ros undeep_tartan_air_launch.py
ros2 bag play /path/to/bagfile
This plays the bag file and the odometry node processes the data to store the results internally.
You can evaluate the results by going into the 'evaluator/' directory and running the evaluator script:
cd evaluator/eval
python3 evaluator.py
This will generate plots which can now be viewed in the 'evaluator/plots' directory:
cd ../plots