Nav2 Navigation Stack - rolling  main
ROS 2 Navigation Stack
Planning Benchmark

This experiment runs a set of planners over randomly generated maps, with randomly generated goals for objective benchmarking.

To use, modify the Nav2 bringup parameters to include the planners of interest:

planner_server:
ros__parameters:
expected_planner_frequency: 20.0
planner_plugins: ["SmacHybrid", "Smac2d", "SmacLattice", "Navfn", "ThetaStar"]
SmacHybrid:
plugin: "nav2_smac_planner::SmacPlannerHybrid"
Smac2d:
plugin: "nav2_smac_planner::SmacPlanner2D"
SmacLattice:
plugin: "nav2_smac_planner::SmacPlannerLattice"
Navfn:
plugin: "nav2_navfn_planner::NavfnPlanner"
ThetaStar:
plugin: "nav2_theta_star_planner::ThetaStarPlanner"

Set global costmap settings to those desired for benchmarking. The global map will be automatically set in the script. Inside of metrics.py, you can modify the map or set of planners to use.

Launch the benchmark via ros2 launch ./planning_benchmark_bringup.py to launch the planner and map servers, then run each script in this directory:

  • metrics.py to capture data in .pickle files.
  • process_data.py to take the metric files and process them into key results (and plots)