CoolFace
Modelpublic

OpenRAL/rskill-moveit-multi-joints

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
1likes
rskill.yaml129 linesDownload Raw Back to root
1# rSkill manifest — moveit-joints: plan to a joint configuration2#3# Wraps `moveit_msgs/action/MoveGroup`. `ros_integration.goal_builder: joint`4# selects the `JointGoalRskill` adapter, which consumes a `joint` block5# (`joint_names` + `positions`) and lowers it into a MoveGroup6# `joint_constraints` goal — the clean, LLM-facing form (positions, not7# hand-written constraint dicts). Renamed from `openral/rskill-moveit-plan-arm`8# as part of the `rskill-moveit-*` family (-joints / -eef-pose / -look-at9# over one ROSActionRskill engine).10#11# Collision posture: MoveIt's internal FCL planner does self + planning-scene12# (world) collision checking at plan time. `plan_only: true` so OpenRAL's13# per-waypoint replay through /openral/candidate_action stays the only14# actuation path (the safety kernel checks every step); move_group never drives15# its own controllers. `chunk_size: 1` so the supervisor sees every waypoint.16 17schema_version: "0.1"18name: "OpenRAL/rskill-moveit-multi-joints"19version: "0.1.0"20license: "apache-2.0"21role: "s1"22kind: "ros_action"23 24# Every arm embodiment OpenRAL ships a robot.yaml for. Whether a deployment can25# resolve this skill depends on whether a matching MoveIt config is running and26# whether the `joint` block below is correct for that robot's planning group.27# The Franka `panda_arm` group is the canonical example; for other embodiments28# copy this manifest and edit `joint.joint_names` + `request.group_name`.29embodiment_tags:30  - "franka_panda"31  - "ur5e"32  - "ur10e"33  - "so100_follower"34  - "openarm"35  - "rizon4"36  - "sawyer"37  - "widowx"38 39actuators_required:40  - kind: "joint_position"41    control_mode_semantics:42      mode: "absolute"43 44# REQUIRED for kind: ros_action — one waypoint per Action chunk so the safety45# supervisor's per-row envelope check sees every commanded position.46chunk_size: 147 48# Planning is slow on the first call (MoveIt typically 0.5–2 s on a clean49# scene); subsequent step() calls just dequeue cached waypoints.50latency_budget:51  per_chunk_ms: 2000.052 53# Surfaced to the Reasoner LLM tool palette.54description: >55  Plan and execute a collision-free motion to a target JOINT configuration via56  MoveIt's MoveGroup (self + planning-scene collision checked). Provide one57  target angle per planning-group joint. Defaults target the Franka Panda home58  pose; override the manifest to retarget. Use when you have a joint-space goal59  (e.g. a policy's in-distribution starting pose); for a Cartesian end-effector60  target use rskill-moveit-multi-eef_pose instead.61actions:62  - "reach"63objects: []64scenes: []65 66# Provenance — ROS-wrapped rSkill; paper_url carries the upstream link.67paper_url: "https://moveit.picknik.ai/"68 69ros_integration:70  package: "moveit_msgs"71  interface_type: "MoveGroup"72  interface_name: "/move_action"73  # `MoveGroup.Result.planned_trajectory.joint_trajectory` is reordered into the74  # host RobotDescription.joints order before per-waypoint chunk emission.75  result_trajectory_field: "planned_trajectory.joint_trajectory"76  # Selects the JointGoalRskill goal-lowering adapter: the `joint`77  # block below (joint_names + positions) is lowered into78  # `request.goal_constraints[0].joint_constraints` at configure time.79  goal_builder: "joint"80  # Franka Panda home pose (panda_arm group). For other embodiments override81  # `joint.joint_names` + `request.group_name`.82  default_goal_json: |83    {84      "joint": {85        "joint_names": ["panda_joint1", "panda_joint2", "panda_joint3", "panda_joint4", "panda_joint5", "panda_joint6", "panda_joint7"],86        "positions": [0.0, -0.785, 0.0, -2.356, 0.0, 1.571, 0.785],87        "position_tolerance_rad": 0.00188      },89      "request": {90        "group_name": "panda_arm",91        "num_planning_attempts": 5,92        "allowed_planning_time": 5.0,93        "max_velocity_scaling_factor": 0.3,94        "max_acceleration_scaling_factor": 0.3,95        "goal_constraints": []96      },97      "planning_options": {98        "plan_only": true,99        "replan": false100      }101    }102  ros_dependencies:103    - "ros-${ROS_DISTRO}-moveit"104    - "ros-${ROS_DISTRO}-moveit-resources-panda-moveit-config"105 106# Per-skill JSON Schema surfaced to the Reasoner LLM tool palette.107# The LLM overrides only `joint.positions` (one per planning-group joint, in108# the manifest's joint_names order); planner / tolerance defaults are inherited.109goal_params_schema:110  type: object111  description: >112    Target joint positions for MoveIt's MoveGroup against the planning group.113    Provide one entry per joint in the manifest's joint_names order.114  properties:115    joint:116      type: object117      properties:118        positions:119          type: array120          items:121            type: number122          minItems: 7123          maxItems: 7124          description: "Target joint angle (rad) per planning-group joint."125      required:126        - positions127  required:128    - joint129