0%

机器人学学习

此笔记记录学习书本 机器人学导论(原书第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 ) 的速度。

  1. 正向速度:( = J )
  2. 反向求关节速度(逆问题):( = 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,1}(t) = \[\begin{cases} 1, & t_i \le t < t_{i+1} \\ 0, & \text{otherwise} \end{cases}\]

]

[ N_{i,k}(t) = N_{i,k-1}(t) + N_{i+1,k-1}(t) ]