The Dockerfile needs the mrp_bench
repo to be cloned and available from the current folder F. This means ls
should show you a folder named mrp_bench
.
The configuration yaml for this container is defined in the repository at bench_ws/bench_pkg/bench_pkg/param/docker_config.yaml
. During the docker build process, this is moved so that it becomes the config.yaml
file.
Create a folder to store the generated data on the host, e.g. ~/experiments
. From the folder F, run
docker build -f mrp_bench/docker/Dockerfile -t mrbench .
docker run -it -v ~/experiments:/experiments mrbench
The benchmark is installed at /mrp_bench
. From here on, experiments can be run the same way as without docker.
Detach the docker container using Ctrl + P, Ctrl + Q
For manually installing from see, see these instructions.
To launch simulation suite, from the mrp_bench folder, run
source /opt/ros/galactic/setup.bash
source ./install/setup.bash
python3 launch/top_level_launch.py
Here, the settings from bench_ws/bench_pkg/bench_pkg/param/config.yaml
are used. To become effective, the bench_pkg needs to have been recompiled (colcon build --packages-select bench_pkg
).
TODO: This is being updated to a version where you can provide the config.yaml and a special syntax for iterating over parameters is used.
The script located at experiments/run_benchmarks.py
can be used and modified to run multiple experiments.
It contains several lists or ranges that can be used to try out different parameter sets.
The following ones (as set in the script) serve as an example, but can and should be modified for your needs.
To analyze you conducted experiments, three steps are needed. For each of these files, call it without a parameter (or with --help) to learn about the syntax for usage.
experiments/analyze_bags_folder.py
to calculate the post-execution metrics for all experiments.experiments/yaml_to_csv.py
to combine the experiments into a single csv file.experiments/statistics_playground.py
to find interesting results and observations.Only the first step is actually mandatory. Steps 2 and 3 can be replaced by your own data analysis pipeline.
The purpose of this plugin is to raytrace a base costmap in gazebo. Because this is rather calculation-intensive, it is only done if no file named "map.pgm" exists in the main folder. This map.pgm is not directly used. Instead, for each specific map, the pgm is defined in launch/mapname_map.pgm. For a new or changed map, remove the map.pgm from the main folder to force a recalculation. Then, copy this new map.pgm to the launch/maps folder, rename to mapname.pgm.
MRP-bench is open-sourced under the Apache-2.0 license. See the LICENSE file for details.
For a list of other open source components included in MRP-bench, see the file open_source_licenses.md.