The MAD-BA was developed and tested on Ubuntu 20.04 with ROS Noetic.
- Clone repository
git clone https://github.com/rvp-group/mad-ba.git
- Build docker image and create container:
cd mad_ba && ./build_and_run.sh
- Start and enter container:
docker start mad_ba && docker exec -it mad_ba bash
- Build ROS packages (inside container):
cd /catkin_ws && catkin build -DCMAKE_BUILD_TYPE=Release
- Download example
.bag
file (inside container):
cd /root/share/dataset/NewerCollege/quad_easy/bag && bash download_quad.sh # quad_easy sequence
cd /root/share/dataset/VBR/Spagna/bag && bash download_spagna.sh # Spagna sequence
- Preprocess
.bag
file by reordering message using their timestamps and add inital trajectory asnav_msgs/Odometry
messages:
cd /root/share/dataset/NewerCollege/quad_easy && python3 process_bag.py # quad_easy sequence
cd /root/share/dataset/VBR/Spagna && python3 process_bag.py # Spagna sequence
- Start roscore in background:
screen -dmS roscore roscore
- Run MAD-BA:
roscd mad_ba && rosrun mad_ba main_app -c config/NewerCollege/quad_easy_fast.config # quad_easy sequence
roscd mad_ba && rosrun mad_ba main_app -c config/VBR/spagna.config # Spagna sequence
- Check ./docker_shared/output/ folder:
tum
- contains the optimized trajectory for each iterationpcd
- contains the optimized map for each iteration
To modify parameters edit .config
file for given sequence, located in /catkin_ws/src/mad_ba/config
in Docker container:
"filename": "path to .bag file"
"topics": "topics for point cloud and odometry messages"
"clouds_to_process": "number of point clouds in .bag file"
"decimate_real_data": "decimation - increase for longer sequences"
"iter_num": "number of BA iterations"