Tuning pipeline for the RTABMAP algorithm
Table of contents
Takes a bunch of configuration files and pose data provided by the user and returns the best out of them using popular metric ATE. It loads it into a RTABMAP base launch file that can then be used by the user after changing topics to their own car
- data:
This target allows you to move data into the main repository. For formatting instructions go to test/testdata and see how the data inputted should be arranged
- eda:
This target runs an eda on the data. Currently it's setup to run on test data
- tuning:
This takes all the configurations and their respective pose data, evaluates them by generating metrics for each configuration and stores the results in a text file
- generate:
This target takes the best configuration file from earlier and attaches it to a base mapping launch file
- test:
This target runs all previous targets on test data and is mainly used to ensure the repository is still working as intended as well as give a demo of what the current targets look like
- all:
This target works similarly to the test data except it runs on the data inputs you specified in data-params.json under config
Example call: python run.py data eda tuning generate
-
Clone this repository
git clone https://github.com/sisaha9/rtabmap_mapping_tuning.git
Once cloned, switch directories to inside this repository
-
Build the Docker image
docker build -t rm_tune docker run --rm -it rm_tune /bin/bash.
-
Modify target parameters by going to config/
-
Once you have made all the changes to the configs (you really only need to change the data inputs) run the following command
python run.py all
If you want to see a test run
python run.py test
-
Once you are done copy the best mapping configuration file and launch file outside the container. Refer to this StackOverflow thread if you are unsure: https://stackoverflow.com/questions/22049212/docker-copying-files-from-docker-container-to-host?rq=1. Once done you can exit and use the base file + config in your own car
-
This work heavily relies on RTABMAP algorithm: http://introlab.github.io/rtabmap/
-
The evaluation file and metrics is based off : https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_benchmark_tools/
-
utils.py and creation of notebook for EDA taken from Aaron Fraenkel: https://github.com/afraenkel