RRTParams Struct
Configuration parameters for the RRT planner. More...
Declaration
Included Headers
Public Member Attributes Index
| unsigned int | max_iterations = 10000 |
| double | configuration_space_step = 0.1 |
| double | timeout_s = 0.0 |
| int | seed = 0 |
| unsigned int | seed_attempts = 1 |
| unsigned int | optimization_iterations = 0 |
| std::optional< Eigen::VectorXd > | joint_costs = std::nullopt |
| bool | pad_self_collisions = true |
| double | workspace_step = 0.0 |
Description
Configuration parameters for the RRT planner.
Definition at line 30 of file pro_rrt.hpp.
Public Member Attributes
configuration_space_step
|
The step size in the configuration space, as an L2 norm over the group's active variables (radians for an all-revolute group; a prismatic joint contributes meters to the same norm). This is the RRT extension step and an upper bound on the spacing of collision-validation samples along tree edges and shortcut candidates. When workspace_step below is enabled (it is off by default), segments are additionally subdivided by that workspace-referred bound. A segment that would need 2^20 or more validation samples at this step fails validation outright, so a units typo shows up as failed planning rather than an unbounded stall.
Definition at line 45 of file pro_rrt.hpp.
joint_costs
|
Optional per-active-joint costs that bias which joints the search prefers to move. One entry per active joint of the planning group, in getActiveJointModelNames() order (the same customer-facing surface every other joint-cost consumer takes); each must be finite and at least moveit_pro::joint_costs::kBaselineCost (1.0). A higher entry makes travel on that joint cost more, so the planner spends its motion elsewhere. std::nullopt or a size-zero vector leaves planning unbiased and byte-identical to the cost-free planner. The costs are validated against the group and expanded to per-variable form up front (fails with a PlanningError naming the offending joint if invalid), then bias every stage that ranks by cost — RRT-Connect's nearest neighbor, the multi-seed tie-break, and the Informed RRT* refinement — while step size, segment validation, and shortcutting stay in raw configuration-space units.
Definition at line 82 of file pro_rrt.hpp.
max_iterations
|
Maximum number of iterations for a single RRT-Connect run. Under multi-seed mode (seed_attempts > 1), this is the cap per attempt; total RRT-Connect work scales as seed_attempts * max_iterations. The Informed RRT* refinement budget is governed separately by optimization_iterations.
Definition at line 36 of file pro_rrt.hpp.
optimization_iterations
|
Number of Informed RRT* refinement iterations to run after RRT-Connect. The planning pipeline is: optimization_iterations == 0: RRT-Connect (maybe multiple seeds) + Shortcut. optimization_iterations > 0: RRT-Connect (maybe multiple seeds) + Informed RRT* + Shortcut. The returned path is guaranteed to be no worse (in configuration-space length) than the unrefined RRT-Connect result. Iteration count rather than wall-clock budget is used for reproducibility: same seed + same scene + same iteration count produces a bit-identical trajectory across machines.
Definition at line 71 of file pro_rrt.hpp.
pad_self_collisions
|
If true, the link padding set in the planning scene also applies to self-collision checks: robot links against each other, against other robot bodies, and against attached objects. If false, those checks use the unpadded geometry, and planned paths may have zero clearance between those bodies. Robot-environment checks use the padding either way.
Definition at line 88 of file pro_rrt.hpp.
seed
|
The seed to use for the random number generator. The same seed will always generate the same deterministic sequence of random numbers.
Definition at line 53 of file pro_rrt.hpp.
seed_attempts
|
Number of RRT-Connect runs to attempt with different seeds before picking the cheapest path. When > 1, the planner runs RRT-Connect multiple times and keeps the result with the shortest configuration-space path. The chosen result is then fed to the optional optimization step. Useful when a single RRT-Connect seed gets stuck in a sub-optimal homotopy class: running multiple seeds explores different initial routes and the optimizer can then refine the best one. Cost is roughly linear in the number of attempts; RRT-Connect itself is cheap relative to optimization, so seed_attempts=10 typically adds only a fraction of the optimization budget.
Definition at line 62 of file pro_rrt.hpp.
timeout_s
|
The timeout for the planner in seconds. If 0.0, the planner will terminate only when the maximum number of iterations is reached, or a solution is found.
Definition at line 49 of file pro_rrt.hpp.
workspace_step
|
Workspace resolution used to subdivide motions for collision validation, in meters. Declared last so existing positional aggregate initialization of this struct keeps its meaning; it refines the validation configuration_space_step above governs. Disabled by default (0.0): the workspace-referred subdivision is off and collision validation samples exactly as in previous releases. (Independently of this flag, this release also validates the segment that joins RRT-Connect's two search trees and keeps both junction waypoints, so a fixed seed can produce a slightly different path than before either way.) Set a positive value to enable: every proposed motion segment — tree extensions during the search and candidate shortcuts — is then validated at samples spaced so that no point of the robot (attached bodies included) can sweep more than this distance between consecutive samples. The bound uses conservative per-joint reach weights computed from the robot model once per planning call — each joint's worst-case lever arm over its descendant links and attached bodies — so a base joint whose motion sweeps the arm's full lever arm is sampled proportionally more finely than a wrist joint, instead of both sharing one joint-space resolution. On the collision-tunneling benchmark, 0.1 m roughly halves tunneling through thin obstacles at 2-3x planning time in obstacle-rich scenes; smaller values catch thinner obstacles at more collision checks per segment. Samples are never sparser than configuration_space_step either way, so enabling this is a strict validation refinement. Exactly 0 is the only value that disables; any other value that is not a usable resolution (negative, non-finite, or so small or large that its square leaves the finite positive range) fails planning with a PlanningError, and a value so small that a segment would need 2^20 or more samples fails that segment's validation outright — a units typo fails planning quickly instead of stalling it inside one edge.
Definition at line 112 of file pro_rrt.hpp.
The documentation for this struct was generated from the following file:
Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.9.8.