motion_planning_types
-
struct AppendCollisionConcept
Append additional collision objects and definitions to the scene for a single service call.
Everything defined here is stateless and only persists for the duration of the request.
Public Members
-
std::vector<ManipulableFromWorkcell> manipulablesFromWorkcell
Manipulables to fetch from the workcell by name, with optional pose overrides.
-
std::vector<core_types::CollisionObject> rManipulables
Robot-frame manipulable collision objects to append.
-
std::vector<core_types::CollisionObject> oManipulables
Object-frame manipulable collision objects to append.
-
std::vector<std::string> touchingLinks
Robot link names that are allowed to be in contact (excluded from collision checks).
-
std::vector<std::string> touchingObstacles
Obstacle names that are allowed to be in contact (excluded from collision checks).
-
std::vector<core_types::CollisionObject> rObjects
Robot-frame static collision objects to append.
-
std::vector<core_types::CollisionObject> oObjects
Object-frame static collision objects to append.
-
std::vector<ObjectSettings> objectSettings
Per-object collision settings (e.g. minimum signed distance).
-
std::vector<ManipulableFromWorkcell> manipulablesFromWorkcell
-
struct CartesianInterpolateConfig
Configure Cartesian path interpolation parameters.
Subclassed by core_motion_planning::CartesianInterpolateConfig
Public Types
-
enum class motion_planning_types::CheckPathCollisionType_t
Enumerate collision-checking modes applied along a planned path.
Values:
-
enumerator UNKNOWN
Unset; treated as an error.
-
enumerator CHECK_ALL_POINTS
Check every point along the path for collisions.
-
enumerator CHECK_UNTIL_COLLISION
Check points until the first collision is found, then stop.
-
enumerator UNKNOWN
-
struct Goal
Represent a single planning goal, expressed either as a robot state or a Cartesian transform.
Public Types
-
struct IKConfig
Configure inverse kinematics solving parameters.
Must be kept in sync with motion_planning_interfaces/msg/IKConfig.msg.
Public Types
-
enum Type_t
Enumerate objective functions used to rank and select IK solutions.
Values:
-
enumerator UNKNOWN
Unset; treated as an error.
-
enumerator MANIPULABILITY1
Rank solutions by manipulability measure (variant 1).
-
enumerator MANIPULABILITY2
Rank solutions by manipulability measure (variant 2).
-
enumerator DISTANCE
Rank solutions by joint-space distance from the reference state.
-
enumerator UNKNOWN
-
enum Type_t
-
struct ParameterizeConfig
Configure trajectory time-parameterization.
Must be kept in sync with motion_planning_interfaces/msg/ParameterConfig.msg.
Public Types
Public Members
-
core_types::RealVectorConstraint_t jointVelocityConstraint
Per-joint velocity limits applied during parameterization.
-
core_types::RealVectorConstraint_t jointAccelerationConstraint
Per-joint acceleration limits applied during parameterization.
-
double timeIncrement = 0.02
Time step (in seconds) between trajectory waypoints.
-
double maxPathDeviation = 5
Maximum allowable path deviation (in radians or metres) during parameterization.
-
ToppraConfig toppraConfig
Algorithm-specific configuration for TOPPRA (ignored for other types).
-
IptpConfig iptpConfig
Algorithm-specific configuration for IPTP (ignored for other types).
-
core_types::RealVectorConstraint_t jointVelocityConstraint
-
struct ToppraConfig
Configure the TOPPRA time-parameterization algorithm.
Public Members
-
std::vector<std::string> frameAccelerationLinkNames
Link names corresponding to each entry in frameAccelerationConstraints.
-
std::vector<core_types::msg::TwistConstraint_t> frameAccelerationConstraints
Per-frame Cartesian acceleration constraints applied during TOPPRA.
-
core_types::msg::WrenchConstraint_t baseWrenchConstraint
Wrench constraint applied at the base link.
-
std::string baseWrenchLinkName
Name of the link at which baseWrenchConstraint is applied.
-
TorqueConstraint torqueConstraint
Joint torque constraint (including optional payload) applied during TOPPRA.
-
std::vector<std::string> frameAccelerationLinkNames
-
struct TorqueConstraint
Store a joint torque constraint with an optional payload contribution.
-
struct ComputeMotionPlanRequest
Specify request parameters for the ComputeMotionPlan service.
Computes a path or time-parameterized trajectory from a start state through a sequence of goals. Each segment between consecutive states uses the corresponding PathPlanType_t. If a goal is expressed as a Cartesian transform, IK is solved internally before planning.
Public Members
-
bool updateObjects = true
If true, fetch and update collision objects from the WorkcellDescription node before planning.
-
motion_planning_types::AppendCollisionConcept appendCollisionConcept
Extra collision objects appended on top of the workcell scene for this call only (stateless).
-
core_types::RobotState_t startState
Start state for the planned path. Temporary: fill multi_dof_joint_state.transforms with 1 transform for the mobile robot base pose.
-
std::vector<motion_planning_types::Goal> goals
Ordered list of goals the path must pass through sequentially.
-
std::vector<motion_planning_types::PathPlanType_t> pathPlanTypes
Per-segment planning algorithm; pathPlanTypes[i] applies from goals[i-1] (or startState) to goals[i]. Must have the same size as goals.
-
core_types::RobotState_t fixedState
OPTIONAL: Joints to hold fixed throughout planning; position[] provides the fixed values.
-
core_types::RealVectorConstraint_t jointPositionConstraint
Joint position limits; if empty, limits are fetched from GetJointLimit.srv.
-
bool doParameterize = true
If true, apply time-parameterization; if parameterization fails, the raw path is still returned with errorCode = PARAMETERIZATION_FAILED.
-
motion_planning_types::IKConfig ikConfig
IK solver config; collision checking is always enabled for IK within this service.
-
motion_planning_types::JointPlanConfig jointPlanConfig
Config for JOINT_PLAN segments.
-
motion_planning_types::CartesianInterpolateConfig cartesian_interpolate_config
Config for CARTESIAN_INTERPOLATE segments.
-
motion_planning_types::JointCoupledPlanConfig jointCoupledPlanConfig
Config for JOINT_COUPLED_PLAN segments.
-
motion_planning_types::ParameterizeConfig parameterizeConfig
Time-parameterization config; jointVelocityConstraint and jointAccelerationConstraint MUST be set when doParameterize is true.
-
bool updateObjects = true
-
struct ComputeIKRequest
Specify request parameters for the ComputeIK service.
Computes inverse kinematics solutions for a given Cartesian transform, optionally checking for collisions and ranking by a configurable objective.
Public Members
-
bool updateObjects = true
If true, fetch and update collision objects from the WorkcellDescription node before solving.
-
motion_planning_types::AppendCollisionConcept appendCollisionConcept
Extra collision objects appended on top of the workcell scene for this call only (stateless).
-
core_types::TransformStamped_t rootToTipTf
Target transform for which IK is solved; root_frame and tip_frame must be set.
-
core_types::RobotState_t referenceState
OPTIONAL: Reference state used to rank IK solutions by joint-space distance; defaults to all-zeros if empty. Temporary: fill multi_dof_joint_state.transforms with 1 transform for the mobile robot base pose.
-
core_types::RobotState_t fixedState
OPTIONAL: Joints to hold fixed during IK; the position[] field provides the fixed values.
-
core_types::RealVectorConstraint_t jointPositionConstraint
Joint position limits; if empty, limits are fetched from GetJointLimit.srv.
-
bool updateObjects = true
-
enum motion_planning_types::ErrorCode_t
Enumerate error codes returned by motion planning services.
Must be kept in sync with motion_planning_interfaces/msg/ErrorCodes.msg.
Values:
-
enumerator SUCCESS
Operation completed successfully.
-
enumerator PARTIAL_SUCCESS
Part of the path/trajectory was computed; check planningErrorCode for details.
-
enumerator FAILURE
Operation failed completely.
-
enumerator PLANNING_FAILED
Path planning algorithm failed to find a solution.
-
enumerator MOTION_PLAN_INVALIDATED_BY_ENVIRONMENT_CHANGE
A previously computed plan is no longer valid due to environment changes.
-
enumerator TIMED_OUT
Planning exceeded the allowed time budget.
-
enumerator GOALS_AND_PLAN_TYPES_SIZE_NOT_EQUAL
The goals vector and pathPlanTypes vector have different sizes.
-
enumerator CART_INTP_RETURNS_MORE_THAN_N_POINTS
Cartesian interpolation produced more points than the requested maximum.
-
enumerator START_STATE_IN_COLLISION
The start state is in collision with the environment.
-
enumerator START_STATE_VIOLATES_PATH_CONSTRAINTS
The start state violates the specified path constraints.
-
enumerator COUPLED_START_STATE_NOT_VALID
The start state is not valid for the coupled planning group.
-
enumerator COUPLED_START_STATE_IN_COLLISION
The coupled start state is in collision.
-
enumerator GOAL_IN_COLLISION
The goal state is in collision with the environment.
-
enumerator GOAL_VIOLATES_PATH_CONSTRAINTS
The goal state violates the specified path constraints.
-
enumerator INVALID_JOINT_CONSTRAINT
A provided joint constraint is malformed or out of range.
-
enumerator INVALID_ROBOT_STATE
A provided robot state is invalid.
-
enumerator INVALID_LINK_NAME
A referenced link name does not exist in the robot model.
-
enumerator INVALID_OBJECT_NAME
A referenced object name does not exist in the scene.
-
enumerator INVALID_GOAL_TYPE
The specified goal type is not supported or recognised.
-
enumerator UNSPECIFIED_GOAL_TYPE
No goal type was specified (Type_t::UNKNOWN).
-
enumerator INVALID_PATH
The computed or provided path is invalid.
-
enumerator START_AND_GOAL_STATE_TOO_CLOSE
Start and goal joint states are within the minimum separation threshold.
-
enumerator START_AND_GOAL_POSE_TOO_CLOSE
Start and goal Cartesian poses are within the minimum separation threshold.
-
enumerator PARAMETERIZATION_FAILED
Time-parameterization of the path failed.
-
enumerator NO_IK_SOLUTION
No inverse kinematics solution was found for the given pose.
-
enumerator FAILED_TO_UPDATE_OBJECTS
Failed to retrieve or update collision objects from the workcell.
-
enumerator SUCCESS