此笔记记录学习书本 机器人学导论(原书第3版)(美)HLHN J.CRAIG,著贠超等译的学习与总结笔记,其中部分内容由AI生成。
✅ 1. 雅可比矩阵是啥?
在多变量函数中,雅可比矩阵(Jacobian Matrix)是所有一阶偏导数组成的矩阵:
如果有函数: [ = f() ^n, ^m ]
则雅可比矩阵为: [ J = = \[\begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \cdots & \frac{\partial y_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial y_m}{\partial x_1} & \cdots & \frac{\partial y_m}{\partial x_n} \end{bmatrix}\]]
在机器人中:
- ( ) 是关节角度(如 ( _1, _2, ))
- ( ) 是末端执行器的位置或速度
✅ 2. 雅可比逆矩阵是啥?
当我们想从输出空间(如末端速度)反推输入空间(如关节速度)时,需要“反过来”用雅可比矩阵,这时候我们就需要“逆”雅可比矩阵。
如果雅可比是方阵(m = n) 且满秩,直接求逆: [ = J^{-1} ]
如果是非方阵(m ≠ n)或者不可逆,就用广义逆(伪逆):
- 对于 冗余系统(n > m): [ = J(JJ)^{-1} ]
- 对于 欠驱动系统(n < m): [ = (JJ){-1} J^ ]
- 或用 Moore-Penrose 伪逆: [ = J^+ ]
✅ 3. 举个简单例子(机器人)
假设一个二维机械臂(2个关节)要控制末端点 ( x, y ) 的速度。
- 正向速度:( = J )
- 反向求关节速度(逆问题):( = J^{-1} ),若不能求逆,就用广义逆!
雅可比矩阵和机器人运动学之间的关系非常密切,尤其是在速度运动学中,雅可比矩阵起到了桥梁作用。下面我帮你分层讲清楚这个关系。
✅ 一、什么是运动学?
机器人运动学分为两大类:
类型 | 说明 |
---|---|
正运动学(FK) | 给定关节角度,求末端位姿(位置和方向) |
逆运动学(IK) | 给定末端位姿,求关节角度(复杂) |
还有一个细分方向叫:
🚀 速度运动学:给定关节速度,求末端速度(或者反过来)
✅ 二、雅可比矩阵出现在速度运动学中
设: - ( ):关节变量(角度、位移等) - ( ):关节速度 - ( ):末端位姿(通常是位置) - ( ):末端速度(线速度 + 角速度)
通过雅可比矩阵 ( J() ),有以下关系:
[ = J() ]
这就是速度映射关系:关节空间 → 笛卡尔空间。
✅ 三、雅可比矩阵在运动学中承担什么角色?
用法 | 作用 |
---|---|
正运动学的导数 | 把 FK 对关节变量求导,就得到了雅可比矩阵 |
末端速度计算 | 通过雅可比矩阵从 ( ) 得到 ( ) |
逆运动学辅助工具 | 用雅可比矩阵的伪逆求解逆运动学 |
奇异性检测 | 雅可比矩阵行列式为0的地方就是“奇异点” |
力-力矩传递 | ( = J^F ),关节力矩 ← 末端力 |
✅ 四、简单举个例子(2关节平面机械臂)
设两段长度分别为 ( l_1, l_2 ),角度为 ( _1, _2 )
末端位置为:
[ \[\begin{aligned} x &= l_1 \cos \theta_1 + l_2 \cos (\theta_1 + \theta_2) \\ y &= l_1 \sin \theta_1 + l_2 \sin (\theta_1 + \theta_2) \end{aligned}\]]
求导得雅可比矩阵:
[ J = = \[\begin{bmatrix} - l_1 \sin \theta_1 - l_2 \sin(\theta_1 + \theta_2) & -l_2 \sin(\theta_1 + \theta_2) \\ l_1 \cos \theta_1 + l_2 \cos(\theta_1 + \theta_2) & l_2 \cos(\theta_1 + \theta_2) \end{bmatrix}\]]
这样,就可以实现: [ , = J ]
也可以反过来: [ = J^+ ]
- 规划方式分为两种,分别是笛卡尔空间的规划(位置规划)和关节空间的规划(角度规划)
B-Spline(Basis Spline,基样条)
是一种强大而灵活的曲线拟合方法,特别适用于轨迹规划、计算机图形学、机器人路径平滑等场景。下面我们从直观原理、数学构成、实现步骤三个角度来解释 B-Spline 是怎么实现的。
B-Spline 是将一段复杂曲线拆成若干小段,每段用低阶(通常是三次)多项式表示,多个小段在控制点处光滑地拼接起来。它的主要特点:
- 局部控制性强:修改一个控制点只影响局部。
- 光滑性强:曲线的低阶导数连续(例如 3 次 B-Spline 有 2 阶导数连续)。
- 比普通样条更灵活:通过节点向量控制曲线形状和连接方式。
B-Spline 曲线的数学表达形式是:
[ C(t) = {i=0}^{n} N{i,k}(t) P_i ]
其中:
- ( P_i ):控制点
- ( N_{i,k}(t) ):B样条基函数,阶数为 (k)(例如 (k=4) 表示三次)
- ( t ):参数
- ( N_{i,k}(t) ) 是通过递归定义的:
]
[ N_{i,k}(t) = N_{i,k-1}(t) + N_{i+1,k-1}(t) ]