Skip to content

This repository is for the CSC 591/791 Software for Robotics project.

License

Notifications You must be signed in to change notification settings

sddavis14/vobenchmarking

Repository files navigation

vobenchmarking

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.

Code Structure:

  • 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.

Installation Instructions :

Requirements:

1) Ubuntu Jammy (22.04), Python
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

Clone this repository:

git clone https://github.com/sddavis14/vobenchmarking.git
cd vobenchmarking

Creating ROS bag files from datasets:

Downloading Datasets:

Although the /dataset_processing folder contains samples as ROS bag files which require git lfs to download, the complete datasets are available at:

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.

Generating ROS bags:

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

Launching ROS nodes:

Setup the overlay:

In order to launch the ROS files, install the overlay.
source ros2_ws/install/setup.bash

Launching:

Launch any one of the following at a time.

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

Playing the ROS bag files:

Once the launching of any one of the above files is complete, play the ROS bag.
ros2 bag play /path/to/bagfile

This plays the bag file and the odometry node processes the data to store the results internally.

Evaluate the results:

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

About

This repository is for the CSC 591/791 Software for Robotics project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published