Service Reference
All services are in the motion_planning_interfaces package.
Service names are relative to the node namespace (default: /).
Service |
Interface Type |
Description |
|---|---|---|
|
|
Forward kinematics for a single state |
|
|
Forward kinematics for a trajectory or vector of states |
|
|
Inverse kinematics for a single target pose |
|
|
Inverse kinematics for multiple target poses |
|
|
Full plan + optional time-parameterization |
|
|
Time-parameterize an existing waypoint path |
|
|
Collision check for a single robot state |
|
|
Collision check for a full path |
|
|
Manipulability scalar for a robot state |
|
|
Refresh collision objects from WorkcellDescription |
|
|
Add or replace a named OMPL planner at runtime |
|
|
Remove a named OMPL planner |
|
|
Update parameters of an existing planner |
ComputeFK
Compute the Cartesian pose of tip_frame relative to root_frame for a given joint state.
Request
Field |
Type |
Description |
|---|---|---|
|
|
Joint positions ( |
|
|
Root link name from URDF. |
|
|
Tip link name from URDF. |
Response
Field |
Type |
Description |
|---|---|---|
|
|
Output transform from root to tip. |
|
|
|
ComputeFKBatch
Forward kinematics for an entire trajectory or vector of states.
Request
Field |
Type |
Description |
|---|---|---|
|
|
Input when |
|
|
Input when |
|
|
|
|
|
Root link name. |
|
|
Tip link name. |
|
|
Compute Cartesian positions. |
|
|
Compute Cartesian velocities. Requires velocity fields in the trajectory. |
|
|
Compute Cartesian accelerations. Requires acceleration fields in the trajectory. |
Response
Field |
Type |
Description |
|---|---|---|
|
|
Echo of request root_frame. |
|
|
Echo of request tip_frame. |
|
|
Cartesian positions (populated when |
|
|
Cartesian velocities (populated when |
|
|
Cartesian accelerations (populated when |
|
|
|
ComputeIK
Inverse kinematics for a single target Cartesian pose. Returns multiple solutions sorted by proximity to reference_state.
Request
Field |
Type |
Description |
|---|---|---|
|
|
Refresh collision objects from WorkcellDescription before solving. |
|
|
Stateless collision overrides (additional touching links, extra objects, etc.). |
|
|
Target pose. |
|
|
Optional. Solutions are sorted by distance from this state. |
|
|
Optional. Joints listed here are held fixed during IK. |
|
|
Optional joint limits override. Defaults to WorkcellDescription limits. |
|
|
IK settings ( |
Response
Field |
Type |
Description |
|---|---|---|
|
|
IK solutions, sorted closest-to-reference first. |
|
|
|
ComputeIKBatch
Inverse kinematics for multiple target poses in one call.
Request — same as ComputeIK but:
root_to_tip_tfs(geometry_msgs/TransformStamped[]) — replaces singleroot_to_tip_tf.
Response
Field |
Type |
Description |
|---|---|---|
|
|
One |
|
|
|
ComputeMotionPlan
Plan a collision-free joint-space or Cartesian path and optionally time-parameterize it.
Request
Field |
Type |
Description |
|---|---|---|
|
|
Refresh collision objects. |
|
|
Stateless collision overrides. |
|
|
Starting joint configuration. |
|
|
Ordered list of goal states or poses. |
|
|
Plan type per goal. |
|
|
Optional fixed joints. |
|
|
Optional joint limits override. |
|
|
Enable time parameterization. |
|
|
IK settings used when goals are Cartesian poses. |
|
|
Joint-space planning settings (path constraints). |
|
|
Cartesian interpolation settings ( |
|
|
Joint coupling settings. |
|
|
Time-parameterization settings. Required when |
Response
Field |
Type |
Description |
|---|---|---|
|
|
Parameterized trajectory (or raw path if |
|
|
Number of goals successfully reached. |
|
|
Final joint state reached. |
|
|
|
|
|
When |
ComputeParameterize
Time-parameterize an existing waypoint path. Minimum 2 points with positions filled.
Request
Field |
Type |
Description |
|---|---|---|
|
|
Refresh collision objects (used for collision-aware parameterizers). |
|
|
Stateless collision overrides. |
|
|
Input waypoints ( |
|
|
Optional base pose override for collision checking. |
|
|
Parameterization type ( |
Response
Field |
Type |
Description |
|---|---|---|
|
|
Parameterized trajectory with timestamps, velocities, and accelerations. |
|
|
|
CheckRobotCollision
Request
Field |
Type |
Description |
|---|---|---|
|
|
Refresh collision objects. |
|
|
Stateless collision overrides. |
|
|
Joint state to check. |
|
|
Retrieve detailed contact information (positions, normals, distances). |
Response
Field |
Type |
Description |
|---|---|---|
|
|
|
|
|
Collision details. Populated only when |
|
|
|
CheckPathCollision
Request
Field |
Type |
Description |
|---|---|---|
|
|
Refresh collision objects. |
|
|
Stateless collision overrides. |
|
|
Path to check. Minimum 2 points with |
|
|
|
Response
Field |
Type |
Description |
|---|---|---|
|
|
Ranges of path indices in collision. Empty = collision-free. A range with |
|
|
|
GetManipulability
Returns a scalar manipulability measure (Yoshikawa index) for a given robot state.
Request
Field |
Type |
Description |
|---|---|---|
|
|
Joint state to evaluate. |
|
|
Joint position limits used for the manipulability calculation. |
Response
Field |
Type |
Description |
|---|---|---|
|
|
Scalar manipulability. |
UpdateObjects
Manually trigger an update of collision objects from the WorkcellDescription service. Normally called automatically on each planning request via update_objects=true.
Request — empty.
Response
Field |
Type |
Description |
|---|---|---|
|
|
|
Error Codes
All services return an ErrorCodes message in their response. The val field is an int32.
Constant |
Value |
When returned |
|---|---|---|
|
1 |
Operation completed successfully. |
|
2 |
Part of the trajectory was computed. Check |
|
99999 |
Catch-all for complete failure. |
|
-1 |
OMPL path planning algorithm failed to find a solution. |
|
-3 |
A previously valid plan is no longer valid due to scene changes. |
|
-6 |
Planning exceeded the configured time budget. |
|
-7 |
|
|
-9 |
Cartesian interpolation exceeded the maximum allowed point count. |
|
-10 |
Start state is in collision with the environment. |
|
-11 |
Start state violates the specified path constraints. |
|
-12 |
Start state is not valid for coupled planning. |
|
-13 |
Start state is in collision (coupled planner). |
|
-14 |
Goal state is in collision with the environment. |
|
-15 |
Goal state violates the specified path constraints. |
|
-16 |
Malformed or out-of-range joint constraint. |
|
-17 |
Robot state contains invalid or inconsistent data. |
|
-18 |
Link name does not exist in the robot URDF. |
|
-19 |
Object name does not exist in the scene. |
|
-20 |
Unsupported goal type specified. |
|
-21 |
Goal type was not specified. |
|
-22 |
Computed or provided path is invalid. |
|
-23 |
Start and goal are within the minimum joint-space separation threshold. |
|
-24 |
Start and goal are within the minimum Cartesian separation threshold. |
|
-25 |
Time-parameterization failed (TOPPRA / TOTG / IPTP). |
|
-31 |
No inverse kinematics solution found for the requested pose. |
|
-36 |
Failed to retrieve or update collision objects from WorkcellDescription. |
|
-40 |
Invalid input type specified in batch requests. |