title: 机器人逆向运动学 tags: [机器人学, 运动学, 逆向运动学, 数值方法] created: 2026-04-10 sources: 4
机器人逆向运动学
一句话摘要:逆向运动学(Inverse Kinematics, IK)是正向运动学的逆问题:给定期望的末端位姿,求解能达到该位姿的关节角。由于非线性和多解性,比正向运动学复杂得多。
背景与定义
逆向运动学回答机器人学中最实际的问题:我想要机械臂末端走到空间某个位置并保持某个姿态,每个关节应该转到多少角度?
这是机器人运动规划和控制的核心问题: - 运动规划在笛卡尔空间给出目标位姿 → 需要IK转换为关节角送给控制器 - 示教记录得到末端路径 → 需要逆变换为关节轨迹 - 抓取任务需要末端对准物体 → 需要求解对应的关节配置
与[[机器人正向运动学]]对比: - FK:关节角 → 末端位姿,一对一映射,总有唯一解 - IK:末端位姿 → 关节角,一对多映射,可能无解
为什么IK难: - 非线性:位姿和关节角之间是非线性关系 - 多解性:6DOF机械臂可达目标通常有多个解,需要选择 - 奇异性:在奇异点雅可比矩阵不可逆,数值方法发散 - 约束:需要满足关节限位、避障等额外约束
核心原理
问题定义
给定: - 目标末端位姿 T_d ∈ SE(3)(相对于基坐标系) - 机器人结构和DH参数已知
求解: - 关节角 q = [q₁, q₂, ..., qₙ]^T,使得 FK(q) = T_d
即求解非线性方程组:
T₀ₙ(q) = T_d
n < 6:工作空间降维,不能任意达到6DOF位姿 n = 6:刚好可以达到(一般情况) n > 6:冗余机器人,无穷多解
主要求解方法分类
| 方法 | 类型 | 原理 | 适用场景 |
|---|---|---|---|
| 解析解法 | 闭式解 | 几何推导得到显式表达式 | 6DOF以下、有 spherical wrist 的工业臂 |
| 雅可比迭代法 | 数值迭代 | 线性化近似,雅可比伪逆迭代 | 通用任意DOF,实时性要求不高 |
| 阻尼最小二乘法 (DLS) | 数值迭代 | 阻尼项避免奇异性发散 | 工业实际应用(最常用) |
| 循环坐标下降法 (CCD) | 启发式迭代 | 逐个关节调整逼近目标 | 高DOF、冗余机器人、人形 |
| 神经网络法 | 学习方法 | 数据驱动学习映射 | 重复任务、柔性机器人 |
| 优化法 | 最优问题 | 带约束优化目标函数 | 需要满足多约束场景 |
解析解法
基本思路
利用机器人几何对称性,分步求解: 1. 腕部分离 (Wrist Decoupling):对于6DOF机器人存在球形腕,先求解前3个关节确定腕心位置 2. 求解后3个关节:确定姿态 3. 组合所有可能解:得到全部闭式解
优缺点
✅ 优点: - 直接得到解,一次计算完成 - 速度快,无迭代收敛问题 - 可以枚举所有解供选择
❌ 缺点: - 只适用于特定结构(如6DOF带球形腕) - 推导复杂,对不同机器人需要重新推导 - 推广到冗余机器人困难
数值迭代法:雅可比伪逆
基本思想
从初始猜测 q₀ 开始,迭代更新: 1. 计算当前位姿 FK(q_k) 与目标位姿的误差 Δx 2. 计算雅可比矩阵 J(q_k) = ∂x/∂q 3. 更新关节:Δq = J⁺ · Δx (J⁺ 是雅可比伪逆) 4. q_{k+1} = q_k + α Δq 5. 重复直到 Δx 足够小
数学公式
误差:
Δx = x_d - x(q_k)
伪逆更新:
Δq = J⁺ Δx = J^T (J J^T)^{-1} Δx
迭代:
q_{k+1} = q_k + Δq
阻尼最小二乘法(DLS)
在奇异点附近,J J^T 接近奇异,伪逆会产生很大的 Δq。DLS加入阻尼项:
Δq = J^T (J J^T + λ^2 I)^{-1} Δx
- λ 是阻尼系数,λ=0 退化为标准伪逆
- λ越大,阻尼越强,步长越保守
- 自适应λ:在奇异点附近增大λ,远离时减小λ
DLS是工业实际应用中最常用的IK方法。
循环坐标下降法(CCD)
逐个关节调整,每次只调整一个关节使末端更靠近目标:
- 从最末关节开始,向根部依次处理
- 对关节i,计算当前末端位置向量 e - 关节i原点位置向量
- 旋转关节i,使末端指向目标方向
- 重复多轮直到误差收敛
优点: - 实现简单,容易编程 - 天然处理关节限位约束 - 适用于高DOF(如7DOF机械臂、人形机器人)
缺点: - 收敛慢,可能震荡 - 初始猜测影响结果
关键问题与处理
多解性处理
同一个目标位姿可能有多个关节配置解:
| 处理策略 | 方法 |
|---|---|
| 就近选择:选离当前关节位置最近的解 | 避免大的关节运动 |
| 肘部上下选择:对6DOF臂,固定选择肘部在上/在下 | 预先约定减少搜索 |
| 优化准则:最小化关节位移/最小化能量 | 自动得到"自然"的解 |
| 避障选择:排除与障碍物碰撞的解 | 运动规划中使用 |
奇异性处理
奇异构型 = 雅可比矩阵秩亏,末端在某个方向失去可操作性: - 肩奇异:肘部拉直,腕部和基部共线 - 腕奇异:三个腕轴共线 - 肘奇异:肘部完全伸直或弯曲
处理方法: - 阻尼项:DLS自动处理奇异,步长被限制 - 奇异回避:轨迹规划时避开奇异区域 - 零空间投影:冗余机器人可以在不改变末端的情况下离开奇异
无解判断
目标位姿在工作空间外 → 无解。此时迭代不能收敛,需要: 1. 检查误差是否能降到阈值以下 2. 若不能收敛,报告无解 3. 可以返回最接近的可达位姿
对比:各种方法比较
| 方法 | 速度 | 精度 | 适用DOF | 实现难度 | 推荐场景 |
|---|---|---|---|---|---|
| 解析解 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ≤ 6 | ⭐⭐⭐⭐ | 工业6DOF臂 |
| DLS雅可比 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 任意 | ⭐⭐ | 通用实时应用 |
| CCD | ⭐⭐⭐ | ⭐⭐⭐ | 高DOF | ⭐ | 冗余机器人 |
| FABRIK | ⭐⭐⭐ | ⭐⭐⭐ | 高DOF | ⭐⭐ | 拟人骨骼 |
| 神经网络 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 任意 | ⭐⭐⭐⭐ | 重复任务 |
| 优化求解 | ⭐⭐ | ⭐⭐⭐⭐⭐ | 任意+约束 | ⭐⭐⭐ | 多约束规划 |
应用场景
| 应用 | 说明 |
|---|---|
| 运动规划:笛卡尔路径 → 关节轨迹 | 每一个路径点都需要一次IK求解 |
| 抓取规划:抓取位姿 → 关节配置 | 选择无碰撞的逆解 |
| 遥操作:空间鼠标输入末端 → 跟随控制 | 需要实时求解 |
| 人形机器人:全身运动控制 | 高DOF IK,CCD常用 |
| 移动操作:平台+机械臂联合IK | 处理冗余自由度 |
| 力控:笛卡尔阻抗控制 → 关节位置指令 | 需要频繁求解 |
最新进展(2025-2026)
- 2025:基于大规模语言模型的IK求解,LLM能理解几何关系直接给出闭式解
- 2024:神经IK:Transformer网络直接学习从末端位姿到关节角的映射,推理速度比迭代快一个数量级
- 2023:IKDiffusion:扩散模型生成多模态逆解,能处理冗余机器人的多个解分布
- 2022:深度学习处理软机器人逆运动学,建模连杆变形
相关概念
- [[机器人正向运动学]]:FK是IK的基础,IK是FK的逆问题
- [[机器人学导论和坐标系基础]]:SE(3)位姿表示
- [[Denavit-Hartenberg]]:DH参数建模
- [[雅可比矩阵]]:数值迭代法的核心,联系关节速度和末端速度
- [[阻尼最小二乘法]]:处理奇异性最常用的方法
- [[运动规划]]:IK是笛卡尔规划的最后一步
Comments (0)
Please sign in to leave a comment.