跳转到内容

正在加载搜索…

kinematics

此内容尚不支持你的语言。

Forward and inverse kinematics and motion planning (the robot’s planner).

  • Layer: base
  • Needs: –
  • Requires: –
  • Conflicts with: –
  • Never dropped: yes
  • Mixin: skills.kinematics:Kinematics
  • Manifest: skills/kinematics/skill.toml
def fk(joints=None)

Link6 poses of both arms, {“left_arm”: pose, “right_arm”: pose}, for 14 joint values (the robot’s current joints when None).

def ik(arm, pose)

6 joints placing link6 at pose, the solution nearest the current joints (the solver starts from them), or None. A solution a full turn away on some joint is turned back; a branch flip (a large joint swing for a small change of pose) is no solution.

def plan_path(arm, pose=None, joints=None)

A path for arm from its current joints to a link6 pose or to 6 joints (exactly one): 6-joint waypoints at the control rate, or None when planning fails. The planner avoids self collision and the table only, not objects or the other arm.

From the RoboDojo prompt pack (prompts/robodojo/), with every skill and feature on:

fk(joints14=None) -> {"left_arm": pose, "right_arm": pose}
ik(arm, pose) -> 6 joints or None the solution nearest the current joints; a branch
flip (a joint swinging over 2 rad for a target within 5 cm of link6) counts as None
plan_path(arm, pose=None, joints=None) -> list of 6-joint waypoints (25 Hz) or None
The planner avoids self collision and the table only, not objects or the other arm.