License
This repository is based on the moveit2/humble/moveit_ros/benchmarks repository. However, the authors and maintainers of the original repository are not affiliated with this repository in any way.
The code in this repository is licensed under the BSD 3-Clause License. See the LICENSE file for more information.
Benchmark Fix for MoveIt2 Humble
This repository contains a fix for using the moveit_ros_benchmarks
package in ROS 2 with MoveIt2 Humble. The package allows you to compare different planners from different planner families against each other.
Complications Encountered
While following the tutorial here, I encountered the following complications:
-
warehouse_mongo
Dependency: Thewarehouse_mongo
package is no longer available for ROS 2, causing an issue with the benchmarking process. -
Incorrect YAML Parsing: The
demo1.yaml
file is not correctly parsed by theBenchmarkOptions.cpp
, resulting in a crash with the following error:[moveit_run_benchmark-1] terminate called after throwing an instance of 'rclcpp::exceptions::InvalidParameterTypeException' [moveit_run_benchmark-1] what(): parameter 'benchmark_config.planning_pipelines.pipeline1.name' has invalid type: expected [string_array] got [string]
-
Planning Pipeline Initialization: The
BenchmarkExecutor.cpp
does not correctly initialize the planning pipeline, leading to two possible issues:- It either always uses the CHOMP planner.
- It uses the OMPL planner but fails to find the configurations and falls back to the default planner configured inside the MoveIt Config Package. This issue is accompanied by the following warning:
[moveit_run_benchmark-1] [WARN] [moveit.ompl_planning.planning_context_manager]: Cannot find planning configuration for group 'arm' using planner 'TRRTkConfigDefault'. Will use defaults instead. [moveit_run_benchmark-1] [INFO] [moveit.ompl_planning.model_based_planning_context]: Planner configuration 'arm' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
Fixes Implemented
I have addressed the above-mentioned issues to the best of my ability.
The Boost progress bar is currently not functioning, but it does not affect the core functionality.
Usage
To use this repository, follow the instructions below:
- MoveIt2 Config: Ensure that you have the MoveIt2 Config installed.
- Create Scenarios: Utilize the
benchmark_pre_step.launch.py
file to create scenarios with states, queries, and scene objects, as described in the tutorial. Save these scenarios using SQLite. - Configure the Benchmark: Use the
/config/ompl_benchmark_kairosAB.yaml
file to configure your benchmark according to the instructions provided in the tutorial. - Start the Benchmark: Launch the benchmark using the
/launch/benchmark.launch.py
file.
Feel free to explore this repository and adapt it to your needs. If you encounter any issues, please don't hesitate to report them.
Old README.md MoveIt ROS Benchmarks
This package provides methods to benchmark motion planning algorithms and aggregate/plot statistics. Results can be viewed in Planner Arena.
For more information and usage example please see moveit tutorials.