rskill-moveit-eef-pose / rskill.yaml
AdrianLlopart's picture
chore: publish rSkill OpenRAL/rskill-moveit-eef-pose v0.1.0
9722d7d verified
Raw
History Blame Contribute Delete
4.66 kB
# rSkill manifest — moveit-eef-pose: plan to a Cartesian end-effector pose (ADR-0052)
#
# Wraps `moveit_msgs/action/MoveGroup`. `ros_integration.goal_builder: pose`
# selects the `PoseGoalRskill` adapter, which consumes a `pose` block (target
# position + quaternion orientation for a constrained link) and lowers it into
# MoveGroup position + orientation constraints. The generic Cartesian sibling
# of rskill-moveit-look-at (gaze is a computed-pose specialisation); new under
# ADR-0052's rskill-moveit-* family.
#
# Collision posture: MoveIt's internal FCL planner does self + planning-scene
# (world) collision checking at plan time. `plan_only: true` so OpenRAL's
# per-waypoint replay through /openral/candidate_action stays the only
# actuation path (the safety kernel checks every step). `chunk_size: 1` so the
# supervisor sees every waypoint.
schema_version: "0.1"
name: "OpenRAL/rskill-moveit-eef-pose"
version: "0.1.0"
license: "apache-2.0"
role: "s1"
kind: "ros_action"
# Any arm embodiment with a MoveIt configuration. The default goal targets the
# Franka demo (panda_arm group, panda_hand link); other embodiments override
# `request.group_name` + `pose.link_name` / `pose.frame_id`.
embodiment_tags:
- "franka_panda"
- "ur5e"
- "ur10e"
- "so100_follower"
- "openarm"
- "rizon4"
- "sawyer"
- "widowx"
actuators_required:
- kind: "joint_position"
control_mode_semantics:
mode: "absolute"
# REQUIRED for kind: ros_action — one waypoint per Action chunk so the safety
# supervisor's per-row envelope check sees every commanded position.
chunk_size: 1
latency_budget:
per_chunk_ms: 2000.0
# ADR-0022 — surfaced to the Reasoner LLM tool palette.
description: >
Plan and execute a collision-free motion that brings the end-effector link to
a target 6-DOF Cartesian pose (position + orientation) via MoveIt's MoveGroup
(self + planning-scene collision checked). Use when you have a Cartesian
end-effector goal (e.g. a pre-grasp pose); for a joint-space goal use
rskill-moveit-joints, and to aim a camera at a point use rskill-moveit-look-at.
actions:
- "reach"
objects: []
scenes: []
# Provenance — ROS-wrapped rSkill; paper_url carries the upstream link.
paper_url: "https://moveit.picknik.ai/"
ros_integration:
package: "moveit_msgs"
interface_type: "MoveGroup"
interface_name: "/move_action"
result_trajectory_field: "planned_trajectory.joint_trajectory"
# ADR-0052 — selects the PoseGoalRskill goal-lowering adapter: the `pose`
# block below is lowered into `request.goal_constraints[0]` (position +
# orientation constraints) on the first step. Set `pose.tool_frame` to express
# the target for a TCP/tool frame (TF-looked-up link←tool offset); omit it to
# constrain `pose.link_name` directly.
goal_builder: "pose"
default_goal_json: |
{
"pose": {
"frame_id": "panda_link0",
"link_name": "panda_hand",
"position": [0.4, 0.0, 0.5],
"orientation": [0.0, 0.0, 0.0, 1.0],
"quaternion_order": "xyzw",
"position_tolerance_m": 0.01,
"orientation_tolerance_rad": 0.05
},
"request": {
"group_name": "panda_arm",
"num_planning_attempts": 5,
"allowed_planning_time": 5.0,
"max_velocity_scaling_factor": 0.3,
"max_acceleration_scaling_factor": 0.3,
"goal_constraints": []
},
"planning_options": {
"plan_only": true,
"replan": false
}
}
ros_dependencies:
- "ros-${ROS_DISTRO}-moveit"
- "ros-${ROS_DISTRO}-moveit-resources-panda-moveit-config"
# ADR-0026 — per-skill JSON Schema surfaced to the Reasoner LLM tool palette.
# The LLM overrides the pose block's position/orientation; planner settings are
# inherited. orientation is a quaternion in pose.quaternion_order (default xyzw).
goal_params_schema:
type: object
description: >
Target 6-DOF Cartesian pose for the end-effector link. position is
[x, y, z] metres in pose.frame_id; orientation is a unit quaternion whose
component order is pose.quaternion_order (default "xyzw").
properties:
pose:
type: object
properties:
position:
type: array
items:
type: number
minItems: 3
maxItems: 3
description: "Target [x, y, z] metres in pose.frame_id."
orientation:
type: array
items:
type: number
minItems: 4
maxItems: 4
description: "Unit quaternion in pose.quaternion_order (default xyzw)."
required:
- position
- orientation
required:
- pose