ITS Path Planner Plugin Customization#
Default ITS planner parameters#
The ROS 2 navigation bring-up application is started using the TurtleBot 3 Gazebo simulation and it receives as input parameter nav2_params_jazzy.yaml
/opt/ros/jazzy/share/its_planner/nav2_params_jazzy.yaml
You can modify plugin parameters by editing the planner_server section
in nav2_params_jazzy.yaml
planner_server: ros__parameters: expected_planner_frequency: 20.0 use_sim_time: True planner_plugins: ["GridBased"] costmap_update_timeout: 1.0 GridBased: plugin: "its_planner/ITSPlanner" interpolation_resolution: 0.05 catmull_spline: False smoothing_window: 15 buffer_size: 10 build_road_map_once: True enable_k: False min_samples: 250 roadmap: "PROBABLISTIC" w: 32 h: 32 n: 2
The ROS 2 navigation bring-up application is started using the TurtleBot 3 Gazebo simulation and it receives as input parameter nav2_params_humble.yaml.
/opt/ros/humble/share/its_planner/nav2_params_humble.yaml
You can modify plugin parameters by editing the planner_server section
in nav2_params_humble.yaml
planner_server: ros__parameters: expected_planner_frequency: 0.01 use_sim_time: True planner_plugins: ["GridBased"] GridBased: plugin: "its_planner/ITSPlanner" interpolation_resolution: 0.05 catmull_spline: False smoothing_window: 15 buffer_size: 10 build_road_map_once: True enable_k: False min_samples: 250 roadmap: "PROBABLISTIC" w: 32 h: 32 n: 2
Parameter Descriptions
catmull_spline: if true, the generated path from the ITS will be interpolated with catmull spline method; otherwise smoothing filter will be used to smooth the pathsmoothing_window: window size for the smoothing filter; unit is grid sizebuffer_size: during the roadmap generation, the samples are generated away from obstacles. The buffer size dictates how far the roadmap samples should be away from obstaclesbuild_road_map_once: If true, the roadmap will be loaded from the saved file, otherwise a new roadmap will be generatedmin_samples: minimum number of samples required to generate the roadmaproadmap: can be eitherPROBABLISTICorDETERMINISTICw: the width of the window for intelligent samplingh: the height of the window for intelligent samplingn: the minimum number of samples that is required in an area defined bywandh
Ackermann ITS Planner#
The ROS 2 navigation bring-up application is started using the TurtleBot 3 Gazebo simulation and it receives as input parameter nav2_params_dubins_jazzy.yaml
/opt/ros/jazzy/share/its_planner/nav2_params_dubins_jazzy.yaml
You can modify plugin parameters by editing the planner_server section
in nav2_params_dubins_jazzy.yaml
planner_server: ros__parameters: use_sim_time: True expected_planner_frequency: 20.0 planner_plugins: ["GridBased"] costmap_update_timeout: 1.0 GridBased: plugin: "its_planner/ITSPlanner" interpolation_resolution: 0.05 catmull_spline: False smoothing_window: 15 buffer_size: 1 build_road_map_once: True enable_k: False min_samples: 250 roadmap: "PROBABLISTIC" w: 20 h: 20 n: 2 dubins_path: True turn_radius: 0.22 robot_radius: 0.25 yaw_tolerance: 0.125 use_final_heading: True
The ROS 2 navigation bring-up application is started using
the TurtleBot 3 Gazebo simulation
and it receives as input parameter nav2_params_dubins_humble.yaml.
/opt/ros/humble/share/its_planner/nav2_params_dubins_humble.yaml
You can modify plugin parameters by editing the planner_server section
in nav2_params_dubins_humble.yaml
planner_server: ros__parameters: expected_planner_frequency: 0.01 use_sim_time: True planner_plugins: ["GridBased"] GridBased: plugin: "its_planner/ITSPlanner" interpolation_resolution: 0.05 catmull_spline: False smoothing_window: 15 buffer_size: 1 build_road_map_once: True enable_k: False min_samples: 250 roadmap: "PROBABLISTIC" w: 40 h: 40 n: 2 dubins_path: True turn_radius: .22 robot_radius: .25 yaw_tolerance: .125 use_final_heading: True
Dubins-Specific Parameters - Ackermann ITS planner:
dubins_path: If true, the ITS algorithm will utilize Dubins Paths to form a global path that can be followed by an Ackermann steering vehicle.turn_radius: The minimum turning radius of the robot, in world scale.robot_radius: The radius of the robot, in world scale.yaw_tolerance: The amount (+/-) by which the heading angles of the end positions of the intermediate Dubins curves may vary, in radians. Does not apply to the final Goal heading.use_final_heading: Whether to use the goal heading specified by thegeometry_msgs::msg::PoseStampedmessage or not.