AdrianLlopart's picture
chore: drop legacy -none quant segment
99ca4b3 verified
Raw
History Blame Contribute Delete
5.09 kB
# rSkill manifest — moveit-look-at: aim a robot camera at a 3-D point
#
# Wraps `moveit_msgs/action/MoveGroup`; the goal is authored as a `look_at`
# block (target point + camera name) instead of raw constraints:
# `ros_integration.goal_builder: look_at` selects the `LookAtRskill` adapter,
# which resolves the camera from the robot manifest (default "wrist";
# ROSConfigError listing available sensors when absent), reads the camera's
# current pose over TF2, computes the gaze pose (camera +Z hits the target,
# roll about the optical axis left free for reachability), and lowers it into
# MoveGroup position + orientation constraints for the camera's mount link.
#
# Renamed from `openral/rskill-look-at` as part of the `rskill-moveit-*`
# family (-joints / -eef-pose / -look-at over one ROSActionRskill engine).
#
# `plan_only: true` deliberately: OpenRAL's actuation path is the per-waypoint
# replay through /openral/candidate_action (safety kernel checks every step,
# HAL actuates). Letting move_group ALSO execute on its own controllers would
# bypass the kernel and double-drive the arm.
schema_version: "0.1"
name: "OpenRAL/rskill-moveit-multi-look_at"
version: "0.1.0"
license: "apache-2.0"
role: "s1"
kind: "ros_action"
# Any arm embodiment with a MoveIt configuration AND a body-mounted camera
# declared in its robot.yaml. The default goal targets the Franka demo
# (panda_arm group, LIBERO eye-in-hand on panda_hand); other embodiments
# override `request.group_name` + `look_at.camera` / `look_at.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
# Surfaced to the Reasoner LLM tool palette.
description: >
Aim a robot-mounted camera (default the wrist camera) at a 3-D point so a
later perception query or manipulation skill sees the object framed.
Plans a collision-aware arm motion via MoveIt that points the camera's
optical axis at look_at.target_xyz. Use after navigating to an approach
pose and before locate_in_view / a grasp skill.
actions:
- "look"
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"
# Selects the LookAtRskill goal-lowering adapter: the
# `look_at` block below is consumed by the adapter (popped before the
# MoveGroup goal message is built); `request.goal_constraints` is filled in
# at dispatch.
goal_builder: "look_at"
# Defaults target the upstream `moveit_resources_panda_moveit_config` demo:
# planning frame `panda_link0`, LIBERO eye-in-hand camera on `panda_hand`.
# `look_at.target_xyz` is a reachable point on the demo's tabletop; real
# dispatches override it via goal_params_json.
default_goal_json: |
{
"look_at": {
"target_xyz": [0.5, 0.0, 0.2],
"frame_id": "panda_link0",
"camera": "wrist",
"standoff_m": null,
"position_tolerance_m": 0.02,
"orientation_tolerance_rad": 0.15
},
"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"
# Per-skill JSON Schema surfaced to the Reasoner LLM tool palette.
# The LLM overrides only the look_at block; planner settings are inherited.
goal_params_schema:
type: object
description: >
Aim the named camera at a 3-D point. target_xyz is expressed in
look_at.frame_id (the planning frame). camera names a sensor from the
robot manifest (default "wrist"). Omit standoff_m to re-aim the camera
in place; set it to also move the camera to that distance from the
target along its current line of approach.
properties:
look_at:
type: object
properties:
target_xyz:
type: array
items:
type: number
minItems: 3
maxItems: 3
description: "Point to aim at, [x, y, z] metres in look_at.frame_id."
camera:
type: string
description: "Sensor name from the robot manifest. Default: wrist."
standoff_m:
type: number
description: >
Optional camera-to-target distance; omit to re-aim in place.
required:
- target_xyz
required:
- look_at