Grasping a full-3D linear feature
SkillProductivityFit the full 3D axis of an elongated segmented feature and grasp it with a perpendicular, inclination-aware parallel-jaw pose. Use for handles, rods, shafts, tools, utensils, and other linear parts whose pitch or roll matters; use grasping-short-axis instead when an upright OBB and vertical approach are sufficient.
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 Grasping a full-3D linear feature skill
What this skill tells your AI
The instructions your AI receives, as published by graph-robots/open-robot-skills in skills/grasping-linear-feature/SKILL.md and read by ahel’s review.
Use this skill when a segmented graspable part may be inclined in 3D. The
point cloud is reduced to a robust principal axis by
geometry.fit_linear_feature. The canonical script then builds a gripper
frame with its local Y axis along the feature and its local Z approach axis
perpendicular to it. The approach is chosen as close to world-down as the
perpendicular constraint permits.
Recommended flow:
open → fit_axis → compute_grasp → pregrasp → descend → observe → close → grasped
surface_inset moves the fingertip target from the feature center along the
approach direction; standoff places the pregrasp back along the same line.
Keep both configurable because gripper geometry and point-cloud completeness
vary across platforms.
Two strategies, and when each one is honest
axis_aware_grasp_pose.py uses the fitted axis in full 3D. That is right when
the cloud actually constrains the axis in 3D — a part seen from more than one
side, or one whose inclination the depth image resolves.
axis_grasp_top_down.py is for the case it does not: a single view from above
sees the upper surface and nothing else, so the axis's z component is fitted to
noise and an approach tilted by it tilts by noise. This script keeps only the
XY projection of the axis, approaches straight down, and takes the grasp
height from a bin_floor_z the caller passes plus a grasp_z_offset rather
than from the cloud — because the cloud's z is the top of the object, not where
the pads should meet it. Both scripts return the same three outputs and both
command a wrist roll, so both need a backend that solves the roll.
This skill generates and executes a grasp pose; it does not decide which semantic part to grasp or verify object identity. Upstream perception should provide a point cloud containing only the selected linear feature.
Signals
- GitHub stars
- 41
- Forks
- 7
- Last commit
- Sep 2026
ahel review
S4info
community integration — published by graph-robots, not linear
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
grasping-linear-feature- Source
- github.com/graph-robots/open-robot-skills