返回Glossary

逆运动学

定义

逆运动学(IK)是计算关节角度(或关节位置)的问题,这些角度将机器人的末端执行器放置在所需的姿势——笛卡尔空间中位置(x、y、z)和方向(横滚、俯仰、偏航)的组合。它是正向运动学的数学逆过程,正向运动学将已知的关节值映射到末端执行器姿势。每当机器人伸向物体、跟踪路径或跟随笛卡尔路点时,IK 求解器都会在后台运行,将空间目标转换为机器人可以执行的电机命令。

对于 6 自由度操纵臂,IK 通常产生有限的离散解集(一般 6R 臂最多 16 个)。对于具有 7 个或更多自由度的冗余机器人——例如 Franka Emika Panda 或 KUKA iiwa——无穷多个关节配置可以实现相同的末端执行器姿势。这种冗余既是祝福也是诅咒:它提供了优化次要目标(如关节限制避免、奇异性避免或障碍物间隙)的自由度,但也使解空间变得极其复杂。

IK 是机器人学中最古老且研究最充分的问题之一,但它仍然是现代系统的核心。即使在学习 Transformer 控制策略的时代,每当系统需要将笛卡尔命令转换为关节命令时,IK 也会被使用,例如当远程操作设备输出必须映射到机器人关节角度的手部姿势时。

工作原理

解析(闭式)IK 使用特定于机器人运动学结构的三角恒等式推导精确的关节角度解。它极其快速(微秒级)且具有确定性,但仅当运动学链具有特定的几何特性时才可行——最常见的是球形腕部(最后三个关节轴在一点相交)。经典工业机器人(例如 ABB IRB、FANUC LR Mate)专门设计有球形腕部以启用解析 IK。IKFast 工具(OpenRAVE 的一部分)自动为任何允许闭式解的机器人生成闭式 C++ IK 求解器,生成的代码每次查询运行时间不到 5 微秒。

数值(迭代)IK 将问题视为非线性优化。最常见的方法族使用雅可比矩阵 J,它将小的关节角度变化线性映射到小的末端执行器位移。基本的雅可比伪逆方法迭代:Δq = J⁺ · Δx,其中 Δx 是笛卡尔误差。这在解附近快速收敛,但在 J 失去秩的奇异性附近可能失败。阻尼最小二乘法(DLS),也称为 Levenberg-Marquardt 方法,添加了一个阻尼项(λ)来权衡跟踪精度与奇异性附近的数值稳定性:Δq = J^T (JJ^T + λI)^{-1} · Δx。

基于优化的 IK 将问题表述为约束非线性规划,最小化成本函数(例如与种子配置的距离),受运动学约束和不等式约束(关节限制、碰撞避免)的约束。TRAC-IK 等求解器并行运行基于雅可比的求解器和序列二次规划(SQP)求解器,返回首先成功的结果。这种双重方法实现了比任一方法单独更高的成功率,特别是在关节限制和奇异性附近。

奇异性

奇异性是雅可比矩阵失去秩的关节配置,意味着末端执行器失去一个或多个运动自由度。在奇异性处,某些笛卡尔速度需要无限的关节速度,这在物理上是不可能的。常见的奇异性包括:

在实践中避免奇异性涉及监测可操纵性指数(det(JJ^T))、在低可操纵性区域附近使用 DLS,或设计避开奇异配置的任务轨迹。对于冗余机器人,可以优化零空间运动以在跟踪所需末端执行器路径的同时持续最大化可操纵性。

  • 腕部奇异性——两个腕部轴对齐,导致自由度坍缩。这是 6 自由度臂中最常遇到的奇异性。
  • 肩部奇异性——末端执行器与基座轴对齐,通常在手臂完全伸展或缩回时发生。
  • 肘部奇异性——手臂完全伸展,使得沿手臂长度方向移动末端执行器成为不可能。

库和工具

  • IKFast(OpenRAVE)——生成解析 C++ IK 求解器。极其快速但仅限于具有兼容几何的机器人。广泛用于工业环境。
  • TRAC-IK——ROS/ROS2 中 KDL 数值 IK 的即插即用替代品。并行运行雅可比 + SQP;在 KDL 仅达到 50-60% 的限制附近实现 95-99% 的成功率。
  • KDL(Orocos)——ROS MoveIt 中的默认 IK 求解器。雅可比伪逆与关节限制夹紧。简单但在奇异性和关节限制附近受限。
  • MoveIt 2——标准 ROS2 运动规划框架。支持可插拔 IK 求解器(KDL、TRAC-IK、IKFast、自定义)并管理完整的规划到执行管道。
  • Drake(MIT/TRI)——高性能 C++ 机器人学库,支持任意约束的基于优化的 IK。特别强大用于全身控制表述。
  • PyBullet / MuJoCo——物理模拟器,包含适合基于模拟的控制策略训练和仿真到现实管道的内置 IK 求解器。

比较:解析 vs 数值 IK

解析 IK 在可用时是首选,因为它的速度快几个数量级(微秒 vs 毫秒)、具有确定性且返回所有解。但是,它需要运动学结构具有正确的几何,添加约束(碰撞避免、关节限制偏好)需要后处理而不是集成到求解器中。数值 IK 是通用的:它适用于任何运动学链并自然地包含任意约束,但它是迭代的(可能无法收敛)、较慢且取决于初始种子配置。在实践中,团队通常使用解析 IK 进行主要求解,数值方法用于次要目标或当解析求解器返回无有效解时。

IK 与现代机器人学习

模仿学习和端到端控制策略的兴起改变了 IK 在机器人学堆栈中的角色。在关节空间中运行的 ACT 和 Diffusion Policy 等控制策略完全绕过 IK——神经网络直接从摄像机图像输出关节角度。这避免了奇异性问题和 IK 失败模式,但牺牲了笛卡尔控制的几何可解释性。

但是,IK 对以下方面仍然至关重要:(1)将人类手部姿势映射到机器人关节角度以进行演示收集的远程操作系统,(2)预测笛卡尔路点并依赖 IK 进行执行的任务空间控制策略,(3)在转换为关节命令之前验证笛卡尔安全约束的安全包装器,以及(4)混合系统,其中高级规划器输出笛卡尔目标,低级控制器使用 IK 进行执行。

实际要求

精度:对于拾取放置任务,1-2mm 位置误差和 1-2 度方向误差的 IK 精度通常是足够的。对于精密装配(插销孔、连接器插入),需要亚毫米精度,通常需要在 IK 之上进行力反馈校正。

速度:以 500-1000 Hz 运行的实时控制环路需要在 1ms 以内的 IK 解。解析求解器轻松满足这一要求。TRAC-IK 等数值求解器通常在 0.5-5ms 内收敛,这对大多数操纵是足够的,但对于高频伺服环路可能很紧张。

URDF 模型:所有 IK 求解器都需要机器人的精确运动学模型,通常以 URDF(统一机器人描述格式)文件的形式提供。链接长度、关节偏移或 DH 参数中的误差直接转化为末端执行器定位误差。

RCSV 的 IK 配置

RCSV 为其机队中的每个机器人配置 IK 求解器,针对每个平台的运动学结构和典型任务进行优化:

所有 IK 配置都经过版本控制并针对参考姿势数据集进行测试。使用 RCSV 硬件的团队作为数据服务参与的一部分接收预调整的 IK 设置。

  • OpenArm 1——使用 TRAC-IK,具有自定义关节权重偏差,偏向于桌面操纵的肘部向上配置。URDF 已通过使用运动捕捉地面真实值的最小二乘优化进行运动学校准至亚毫米精度。
  • DK1——从 DK1 的球形腕部几何生成的 IKFast 解析求解器,提供亚 5 微秒的解。在关节限制附近的边界情况下回退到 TRAC-IK。
  • ALOHA 双臂——双 TRAC-IK 实例,具有耦合种子管理,防止左右臂碰撞。IK 配置偏向两个臂的向外肘部姿势,以最大化共享工作空间间隙。
  • Unitree G1——通过 Drake 进行基于优化的 IK,用于全身逆运动学,同时联合求解臂和躯干关节角度,同时保持平衡约束。

Related terms