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
Functions
Section titled “Functions”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.
plan_path
Section titled “plan_path”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.
What the model reads
Section titled “What the model reads”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.