IK(Inverse Kinematics,逆运动学)是根据末端执行器的目标位姿,反求机器人在关节空间中应当采用哪组关节配置的问题。
IK 属于机器人运动学,不是机器人动力学本身;动力学关心力、力矩、质量和惯量如何影响运动。工程上二者经常连在一起使用:IK 先把任务空间目标转换成关节目标,随后控制器和动力学模型再处理速度、力矩、限幅和执行稳定性。
问题形式
如果 FK 写成:
其中 是关节变量, 是末端位姿,那么 IK 要解的是反问题:
但这个反函数通常并不是真正的单值函数。一个目标位姿可能有多组关节解,也可能没有可达解;即使存在解,也可能违反关节限位、碰撞约束、速度限制或连续性要求。因此工程里的 IK 更接近“带约束的可行解搜索”,而不是单纯套一个反函数。
解法类型
- 解析 IK:利用机械臂几何结构推导闭式解,速度快、可解释性强,但依赖具体构型,换一套机械臂往往要重新推导。
- 数值 IK:从当前关节状态出发,用迭代方式减小末端误差,常用雅可比矩阵、伪逆、DLS、优化器或代价函数。
- 约束/优化 IK:把目标位姿、关节限位、避障、姿态偏好、关节连续性等写成约束和代价,求一个综合最优或可接受的解。
为什么 IK 容易出问题
与 FK 相比,IK 更容易出现多解、无解或数值不稳定。靠近奇异位形、关节限位或可达空间边界时,求解器可能给出跳变很大的关节结果。常见风险包括:
- 多解选择不稳定:同一个末端位姿可能对应肘上/肘下等不同构型,求解器若没有连续性偏好,可能在相邻帧切换解支。
- 不可达目标:目标超出工作空间时,求解器可能长时间迭代、残差不收敛,或输出边界附近的危险姿态。
- 奇异附近放大误差:末端很小的位姿误差可能需要很大的关节变化,普通雅可比伪逆尤其明显。
- 模型不一致:URDF、工具坐标系、零位、关节方向、末端偏置不准,会让“数学上正确”的 IK 解在实机上偏移。
工程使用要点
实时控制里不能只看 IK 是否返回 success,还要检查输出是否可执行:
- 末端残差是否低于阈值,位置和姿态误差要分开看。
- 关节增量 是否连续,单步跳变是否触发限幅。
- 结果是否远离关节限位、奇异位形和机械干涉区域。
- 当前解是否延续上一帧解支,避免肘型或腕部姿态突然翻转。
- 求解耗时是否稳定,是否满足控制周期预算。
与动力学的关系
IK 只给出几何层面的关节目标,不保证这个目标一定能被电机以当前速度、力矩和接触条件稳定执行。进入真实控制链路后,还需要机器人动力学、控制器限幅、碰撞检测和安全状态机共同约束输出。