IK 与 Direction-Up IK
LambdaSim 的 Direction-Up IK 根据末端的目标位置、工作方向和 Up 方向求解关节坐标,适用于夹爪抓取、工具插接和末端姿态对齐。本文介绍 IK 基础、目标定义、使用步骤、参数和求解原理。
1. IK 基础
逆运动学(Inverse Kinematics,IK)根据末端的目标位置和朝向计算关节坐标。正运动学(Forward Kinematics,FK)根据已知关节坐标计算末端位置和朝向。
| 运算 | 输入 | 输出 |
|---|---|---|
| FK | 机器人关节坐标。 | 末端位置和朝向。 |
| IK | 末端目标位置和朝向。 | 满足目标约束的关节坐标。 |
图中以两根连杆表示平面位置关系。三维机械臂的 IK 还需要处理姿态约束、关节限位和参与求解的关节范围。本文使用 q 表示关节坐标向量;旋转关节使用弧度,移动关节使用长度单位。
同一个末端目标可以对应多组关节坐标。迭代求解器以当前关节状态为初始值,结果受初始姿势影响。超出工作范围、受关节限位阻挡或自由度不足的目标无法完全满足。
1.1 工具中心点
末端目标作用于工具中心点(Tool Center Point,TCP)坐标系。TCP 可以位于两根夹指之间,与 URDF 中夹爪 link 的原点分离。
使用 RobotKinematics.from_scene_object() 的 end_effector_local_xforms 配置末端 link 到 TCP 的局部变换:
TCP 世界变换 = 末端 link 世界变换 × link 到 TCP 的局部变换
IK 目标、FK 结果和视口操作柄应使用同一份 TCP 标定。