geometry
此内容尚不支持你的语言。
Frames, link6 and fingertip poses, camera geometry; no model, no motion.
- Layer: base
- Needs: –
- Requires: –
- Conflicts with: –
- Never dropped: yes
- Mixin:
skills.geometry:Geometry - Manifest:
skills/geometry/skill.toml
Functions
Section titled “Functions”transform
Section titled “transform”def transform(pose, from_frame, to_frame)Express a point [x, y, z] or pose [x, y, z, qw, qx, qy, qz] given in from_frame in to_frame. Frames: “world”, “left_arm_base”, “right_arm_base”, “left_link6”, “right_link6”, and the camera names (OpenCV convention: z forward, y down).
mask_to_plane
Section titled “mask_to_plane”def mask_to_plane(observation, camera, mask, z=None, step=4)World points where the rays through a mask meet the plane at height z (default: the table top).
pixel_to_plane
Section titled “pixel_to_plane”def pixel_to_plane(observation, camera, u, v, z=None)Where the ray through pixel (u, v) meets the plane at height z (default: the table top).
link6_for_tip
Section titled “link6_for_tip”def link6_for_tip(tip, orientation)link6 pose [x, y, z, qw, qx, qy, qz] placing the fingertips at tip.
fingertip_of
Section titled “fingertip_of”def fingertip_of(pose)Fingertip position [x, y, z] of a link6 pose [x, y, z, qw, qx, qy, qz].
Also in the namespace: down_with_yaw, project, pixel_ray, triangulate, TABLE_Z, FORWARD, DOWN (constants and names the skill’s exports(session) provides).
What the model reads
Section titled “What the model reads”From the RoboDojo prompt pack (prompts/robodojo/), with every skill and feature on:
transform(point_or_pose, from_frame, to_frame) -> the same in to_frame; frames "world", "left_arm_base", "right_arm_base", "left_link6", "right_link6", camera names mask_to_plane(observation, camera, mask, z=TABLE_Z) -> Nx3 points on the plane at z down_with_yaw(yaw) -> DOWN turned about z; fingers then close along (cos yaw, sin yaw, 0) project(observation, camera, points_xyz) -> (pixels, depths) pixel_ray(observation, camera, u, v) -> (origin, direction) pixel_to_plane(observation, camera, u, v, z=TABLE_Z) -> xyz or None triangulate(observation, {camera: (u, v), ...}) -> xyz from two or more cameras link6_for_tip(tip_xyz, orientation) -> pose link6 pose that puts the fingertips at tip_xyz