executing-held-object-motion
SkillDev toolsExecutes an ordered, collision-aware pose sequence for an already-grasped rigid object without releasing it - the escape from support, clear-space rotation, fixture transit and orientation-locked local legs of a carry plan, or only the free-space approach waypoint of a placement plan. Use when a held object must be carried or reoriented before insertion, mating, packing, or sorting, and use executing-feature-mating afterwards for the engagement and release.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the executing-held-object-motion skill
What this skill tells your AI
The instructions your AI receives, as published by graph-robots/open-robot-skills in skills/executing-held-object-motion/SKILL.md and read by ahel’s review.
Execute motion for a rigid object that is already held. The skill preserves the
grasp: it does not open or close the gripper. Its input is an ordered
PoseSequence containing clearance, transit, and orientation poses.
When to use
- Stand an elongated object upright before putting it through an opening.
- Turn a tool from a table grasp into a hanging or fixture-mating orientation.
- Align a keyed object before insertion.
- Reorient an item before constrained packing or sorting.
- Reach only the approach pose of a placement plan so the held object can be re-observed (wrist re-registration) before a tight engagement.
Do not use it for an ordinary bin drop when transporting-objects can lift,
translate, descend, and release directly.
Recommended subgraphs
execute_reorientation -> reoriented
execute_approach_only -> reached
execute_reorientation runs the canonical script with
reorientation_plan = Ref("in.reorientation_plan"). Each waypoint is a
typed record {pose, mode, use_attachment?, max_attempts?, allow_start_contact?, allow_goal_contact?, contact_margin?}. It forwards the plan's world_config
and attached_object to every planned leg and never replaces a rejected
collision-aware plan with an unchecked move. Use contact_transition only for
the initial support escape (a plain Cartesian move); use planned_joint for
clear-space rotation/transit and planned_linear for an orientation-locked
straight leg. A plan-level time_scale > 1 slows execution by resampling the
joint path; every planned leg is executed with a 60-step-per-waypoint budget
so a stuck waypoint does not stall the graph. Output: final_pose: Se3Pose,
the last waypoint's end-effector pose.
execute_approach_only takes placement_plan: PoseSequence (the plan that
executing-feature-mating will finish) and executes only its first waypoint
as a collision-aware motion.plan_to_pose leg with the plan's world and
attachment, retrying the sampled planner up to three times and tracking the
trajectory to 2 mm. It raises when the planner refuses (route to blocked).
Output: approach_pose: Se3Pose, the waypoint it reached, so the graph can
re-register the held object there and recompute the engagement.
Boundaries
- Upstream geometry or perception determines the desired object orientation and sufficient clearance. This skill executes that typed request.
- The sequence must describe end-effector poses, not object poses.
- The skill never releases the object and never queries cameras, simulation state, task goals, evaluators, or reward.
- Full 3-DOF orientation changes require a robot IK backend that honors wrist roll. A position/approach-axis-only backend cannot reliably stand a syringe or long tool upright.
Signals
- GitHub stars
- 41
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
executing-held-object-motion- Source
- github.com/graph-robots/open-robot-skills