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
.bagfile (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
.bagfile by reordering message using their timestamps and add inital trajectory asnav_msgs/Odometrymessages:
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"