04-逆运动学、自由度与雅可比

目录

逆运动学、自由度与雅可比

1. 逆运动学是什么

逆运动学研究:

已知末端目标位姿,求关节变量。

写成:

$$ f(q)=x_d $$

其中:

  • $q \in \mathbb{R}^n$:关节变量
  • $x_d$:目标末端位姿

这本质上是一个非线性方程组求解问题

2. 自由度的两个层次

关节空间自由度 $n$

即机器人独立关节变量个数。

例如:

  • 一个转动关节提供 1 个自由度
  • 一个移动关节提供 1 个自由度

任务空间自由度 $m$

即末端被要求控制的独立维数。

平面刚体完整位姿

$$ (x, y, \phi) $$

共 3 个自由度。

空间刚体完整位姿

  • 3 个平移自由度
  • 3 个姿态自由度

总共 6 个自由度。

3. 三种维数关系

$n=m$

局部上可能一一对应。

$n>m$

冗余机械臂,通常解不唯一。

$n<m$

自由度不足,一般无法精确满足全部任务。

4. 为什么会引入雅可比

设正运动学为:

$$ x = f(q) $$

在当前点附近做一阶泰勒展开:

$$ f(q+\Delta q)=f(q)+J(q)\Delta q + o(|\Delta q|) $$

其中:

$$ J(q)=\frac{\partial f}{\partial q} $$

忽略高阶项,得到局部线性近似:

$$ \Delta x \approx J(q)\Delta q $$

这就是数值逆运动学的核心来源。

5. 雅可比的本质

对正运动学对时间求导:

$$ \dot x = J(q)\dot q $$

因此雅可比是:

关节速度到末端速度的局部线性映射。

每一列的几何意义

雅可比第 $i$ 列表示:

只让第 $i$ 个关节以单位速度运动时,末端会产生什么速度。

6. 数值逆运动学的基本思想

目标是解:

$$ f(q)=x_d $$

但这通常难以直接解析求解,所以采用迭代:

  1. 给定初值 $q_0$
  2. 计算当前误差 $$ e_k = x_d - f(q_k) $$
  3. 线性化 $$ J(q_k)\Delta q_k \approx e_k $$
  4. 求 $\Delta q_k$
  5. 更新 $$ q_{k+1}=q_k+\Delta q_k $$

也就是说:

不是用局部理论一次解决全局问题,而是把全局非线性问题拆成很多次局部修正。

7. 伪逆的来源

冗余情形:最小范数解

当方程

$$ J\Delta q=e $$

有无穷多解时,常选:

$$ \Delta q = J^\dagger e $$

它对应优化问题:

$$ \min_{\Delta q}\ |\Delta q|^2 \quad \text{s.t.}\quad J\Delta q=e $$

即在所有满足任务的解中,选“动得最少”的那个。

不可精确满足时:最小二乘

若无精确解,则求:

$$ \min_{\Delta q}\ |J\Delta q-e|^2 $$

8. 奇异位形

奇异的本质是:

$$ \operatorname{rank}(J) < \min(m,n) $$

意味着:

  • 某些末端速度方向做不到
  • 逆解对噪声会非常敏感
  • 局部上需要很大的关节变化才能产生很小的末端变化

9. 阻尼最小二乘

为提高数值稳定性,常解:

$$ \min_{\Delta q}\ |J\Delta q-e|^2 + \lambda^2|\Delta q|^2 $$

可得:

$$ \Delta q = (J^T J + \lambda^2 I)^{-1}J^T e $$

作用:

  • 减弱奇异附近数值爆炸
  • 提高求解稳定性
  • 代价是步子更保守

10. 零空间思想

冗余情形下一般解可写为:

$$ \Delta q = J^\dagger e + (I-J^\dagger J)z $$

其中:

  • 第一项完成主任务
  • 第二项落在零空间,不影响末端一阶运动

可用于:

  • 避开关节限位
  • 调整姿态
  • 做避障或二级任务

11. 这一部分的关键理解

  • 逆运动学本质是非线性方程组问题
  • 数值 IK 的理论基础是一阶泰勒展开
  • 雅可比是正运动学的微分
  • 局部理论通过迭代,逐步解决整体问题