跳转到内容

正在加载搜索…

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
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).

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).

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).

def link6_for_tip(tip, orientation)

link6 pose [x, y, z, qw, qx, qy, qz] placing the fingertips at tip.

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).

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