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 $$
但这通常难以直接解析求解,所以采用迭代:
- 给定初值 $q_0$
- 计算当前误差 $$ e_k = x_d - f(q_k) $$
- 线性化 $$ J(q_k)\Delta q_k \approx e_k $$
- 求 $\Delta q_k$
- 更新 $$ 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 的理论基础是一阶泰勒展开
- 雅可比是正运动学的微分
- 局部理论通过迭代,逐步解决整体问题