proposing-short-axis-grasps
SkillDev toolsPropose top-down grasps whose jaws close ACROSS an elongated
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 proposing-short-axis-grasps skill
What this skill tells your AI
The instructions your AI receives, as published by graph-robots/open-robot-skills in skills/proposing-short-axis-grasps/SKILL.md and read by ahel’s review.
One strategy for the propose stage of a pick: a top-down grasp across the narrow dimension of an elongated body.
Why this is its own skill
A pick has stages — propose, select, approach, close — and each has more than one strategy. Treating "grasping" as one indivisible thing is what leaves a policy with a single approach and nowhere to go when it does not fit: it can only jitter the numbers of a strategy that structurally cannot work. Proposing is separated from selecting so that a refusal here ("the short axis is wider than the hand") is a routable exit to a different rung, not a failed episode.
When to use
- The target is longer than it is wide: a handle, spanner, screwdriver, bar.
- Top-down access is available.
- Any privilege tier. The box may come from
sim.get_object_obbor fromgeometry.compute_obbover a segmented cloud — this skill cannot tell which, which is what makes it portable to the vision body.
When NOT to use
- The top is blocked (a shelf, a lid) — use
proposing-side-grasps. - The body is roughly cubic; there is no meaningful short axis to close across.
- The graspable part is a concave interior (the inside of a ring, a pivot between two plates). A box has no opinion about concavity, and neither has this skill.
Recommended subgraph state flow
describe → get_obb → propose → frame → select → END
describe—tool: robot.describe_gripper(for the jaw span).get_obb—tool: sim.get_object_obb,inputs: {object_name: …}. Atcamera_only/none, substitutegeometry.filter_and_compute_obb.propose—script: scripts/<sg>/propose_short_axis.py, inputstarget_obb = Ref("get_obb.obb"),gripper = Ref("describe"). Router onroute:proposed→frame,declined→ the subgraph'sdeclinedexit.frame—tool: robot.grasp_frame,inputs: {close_heading_deg: Ref("propose.close_heading_deg")}.select— handpropose.positionsandframe.rotationtoselecting-reachable-grasp, which walks them.
Required end states
| End state | Meaning |
|---|---|
proposed | A heading and stations. Continue to select. |
declined | The hand cannot span this object's short axis. Route to another propose rung — do not retry this one with different numbers. |
Signals
- GitHub stars
- 41
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
proposing-short-axis-grasps- Source
- github.com/graph-robots/open-robot-skills