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).

struct CartesianInterpolateConfig

Configure Cartesian path interpolation parameters.

Subclassed by core_motion_planning::CartesianInterpolateConfig

Public Types

enum Type_t

Enumerate interpolation methods for Cartesian path generation.

Values:

enumerator UNKNOWN

Unset; treated as an error.

enumerator R3XSO3

Interpolate position and orientation independently.

enumerator SE3

Interpolate as a rigid body transformation in SE(3).

Public Members

Type_t type = Type_t::SE3

Selected interpolation method.

int nPoints = -1

Number of interpolation points; -1 uses the planner default.

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.

struct Goal

Represent a single planning goal, expressed either as a robot state or a Cartesian transform.

Public Types

enum Type_t

Enumerate goal representation types to select the active variant.

Values:

enumerator UNKNOWN

Unset; treated as an error.

enumerator ROBOT_STATE

Goal is specified as a robot joint state.

enumerator TRANSFORM

Goal is specified as a Cartesian transform; IK will be solved internally.

Public Members

core_types::RobotState_t robotState

Goal expressed as a full robot joint state (used when type == ROBOT_STATE).

core_types::TransformStamped_t tfStamped

Goal expressed as a stamped Cartesian transform (used when type == TRANSFORM).

Type_t type = UNKNOWN

Active goal representation.

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.

Public Members

Type_t solveType = Type_t::DISTANCE

Objective used to select the best IK solution.

bool checkCollision = true

If true, discard IK solutions that are in collision.

unsigned int maxOutputNum = 5

Maximum number of IK solutions to return.

double timeoutSec = 0.1

Maximum time in seconds allowed for IK solving.

struct ParameterizeConfig

Configure trajectory time-parameterization.

Must be kept in sync with motion_planning_interfaces/msg/ParameterConfig.msg.

Public Types

enum Type_t

Enumerate time-parameterization algorithms.

Values:

enumerator TOTG

Time-Optimal Trajectory Generation.

enumerator TOPPRA

Time-Optimal Path Parameterization via Reachability Analysis.

enumerator IPTP

Iterative Parabolic Time Parameterization.

Public Members

Type_t type = Type_t::TOTG

Selected parameterization algorithm.

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).

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.

struct TorqueConstraint

Store a joint torque constraint with an optional payload contribution.

Public Members

bool use = false

If true, torque constraints are enforced during parameterization.

core_types::RealVectorConstraint_t limit

Per-joint torque limits in N·m.

Payload payload

Payload whose dynamics are added to the torque budget.

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.

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.

motion_planning_types::IKConfig config

IK solver configuration (objective, collision checking, max solutions, timeout).

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.

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.