跳转至

机器人运动学

概述

运动学(Kinematics)研究机器人各连杆之间的几何关系与运动关系,不涉及力和力矩。它是机器人学中最基础的分析工具,分为正运动学(FK)和逆运动学(IK)两大方向。

graph LR
    A["关节空间<br/>q = (q₁, q₂, ..., qₙ)"] -->|正运动学 FK| B["任务空间<br/>x = (x, y, z, φ, θ, ψ)"]
    B -->|逆运动学 IK| A
    style A fill:#e8f4fd,stroke:#2196F3
    style B fill:#fff3e0,stroke:#FF9800

前置知识

本文假设读者已掌握齐次变换矩阵与坐标系描述,详见 坐标系与变换


1 DH 参数与正运动学

1.1 Denavit-Hartenberg 约定

DH 参数(Denavit & Hartenberg, 1955)用 4 个参数 描述相邻连杆之间的空间关系:

参数 符号 含义
连杆长度 \(a_i\) 沿 \(x_i\) 轴从 \(z_{i-1}\)\(z_i\) 的距离
连杆扭转 \(\alpha_i\) \(x_i\) 轴从 \(z_{i-1}\)\(z_i\) 的旋转角
连杆偏距 \(d_i\) 沿 \(z_{i-1}\) 轴从 \(x_{i-1}\)\(x_i\) 的距离
关节角 \(\theta_i\) \(z_{i-1}\) 轴从 \(x_{i-1}\)\(x_i\) 的旋转角

旋转关节 vs 移动关节

  • 旋转关节\(\theta_i\) 为关节变量,其余三个为常数
  • 移动关节\(d_i\) 为关节变量,其余三个为常数

1.2 相邻连杆齐次变换矩阵

从坐标系 \(\{i-1\}\) 到坐标系 \(\{i\}\) 的变换可分解为四步基本变换:

\[ ^{i-1}T_i = \text{Rot}(z, \theta_i) \cdot \text{Trans}(0, 0, d_i) \cdot \text{Trans}(a_i, 0, 0) \cdot \text{Rot}(x, \alpha_i) \]

展开得到完整的 \(4 \times 4\) 齐次变换矩阵:

\[ ^{i-1}T_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i \cos\alpha_i & \sin\theta_i \sin\alpha_i & a_i \cos\theta_i \\ \sin\theta_i & \cos\theta_i \cos\alpha_i & -\cos\theta_i \sin\alpha_i & a_i \sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix} \]

1.3 正运动学求解

\(n\) 自由度机器人,末端执行器相对于基座的位姿为所有相邻变换的连乘:

\[ ^{0}T_n = \;^{0}T_1 \cdot \;^{1}T_2 \cdots \;^{n-1}T_n = \prod_{i=1}^{n} \;^{i-1}T_i \]

示例:2-DOF 平面机械臂

假设两个旋转关节,连杆长度分别为 \(l_1, l_2\),DH 参数表:

连杆 \(\theta_i\) \(d_i\) \(a_i\) \(\alpha_i\)
1 \(\theta_1\) 0 \(l_1\) 0
2 \(\theta_2\) 0 \(l_2\) 0

末端位置:

\[ 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) \]

2 逆运动学

2.1 问题定义

给定末端执行器的期望位姿 \(T_{\text{desired}}\),求解关节变量 \(q = (\theta_1, \theta_2, \ldots, \theta_n)\)

\[ f(q) = T_{\text{desired}} \]

逆运动学的核心挑战:

  • 多解性:同一位姿可能对应多组关节角
  • 无解性:目标可能超出工作空间
  • 奇异性:某些构型下自由度退化

2.2 几何法(解析法)

适用于结构简单的机械臂(如 2-link、6-DOF with spherical wrist)。

2-link 平面臂逆解推导:

已知末端位置 \((x, y)\),求 \((\theta_1, \theta_2)\)

Step 1:由余弦定理求 \(\theta_2\)

\[ x^2 + y^2 = l_1^2 + l_2^2 + 2 l_1 l_2 \cos\theta_2 \]
\[ \cos\theta_2 = \frac{x^2 + y^2 - l_1^2 - l_2^2}{2 l_1 l_2} \]
\[ \theta_2 = \pm \arccos\left(\frac{x^2 + y^2 - l_1^2 - l_2^2}{2 l_1 l_2}\right) \]

\(\pm\) 号对应肘上/肘下两种构型

Step 2:利用 \(\text{atan2}\)\(\theta_1\)

\[ \theta_1 = \text{atan2}(y, x) - \text{atan2}(l_2 \sin\theta_2,\; l_1 + l_2 \cos\theta_2) \]

2.3 数值法(Newton-Raphson 迭代)

适用于一般构型的机械臂。

基本思想:将正运动学 \(f(q)\) 在当前解 \(q_k\) 处线性化,迭代求解。

\[ f(q_k + \Delta q) \approx f(q_k) + J(q_k) \Delta q = x_d \]
\[ \Delta q = J(q_k)^{-1} (x_d - f(q_k)) = J(q_k)^{-1} \, e_k \]

完整迭代算法:

输入: 目标位姿 x_d, 初始猜测 q_0, 容差 ε, 最大迭代 N
输出: 关节角 q*

q ← q_0
for k = 1 to N:
    e ← x_d - f(q)           # 位姿误差
    if ||e|| < ε:
        return q              # 收敛
    J ← Jacobian(q)          # 计算雅可比
    Δq ← J⁺ · e              # 伪逆求增量
    q ← q + α · Δq           # 步长 α ∈ (0,1]
return FAILURE

实践建议

  • \(J\) 不是方阵或接近奇异时,使用 阻尼最小二乘(DLS):\(\Delta q = J^T(JJ^T + \lambda^2 I)^{-1} e\)
  • \(\lambda\) 为阻尼因子,可自适应调节(Levenberg-Marquardt)
  • 多次随机初始化有助于找到全局解

3 雅可比矩阵

3.1 定义与意义

雅可比矩阵描述了关节速度与末端速度之间的线性映射:

\[ J(q) = \frac{\partial f(q)}{\partial q} \in \mathbb{R}^{m \times n} \]
\[ \dot{x} = J(q) \dot{q} \]

其中 \(\dot{x} \in \mathbb{R}^m\) 为末端速度(含线速度和角速度),\(\dot{q} \in \mathbb{R}^n\) 为关节速度。

对于空间机械臂,\(m = 6\)(3 线速度 + 3 角速度),雅可比形式为:

\[ J = \begin{bmatrix} J_v \\ J_\omega \end{bmatrix} = \begin{bmatrix} \frac{\partial p}{\partial q_1} & \cdots & \frac{\partial p}{\partial q_n} \\ \vdots & & \vdots \end{bmatrix}_{6 \times n} \]

3.2 雅可比的计算方法

方法一:微分法

对正运动学方程直接求偏导。

方法二:几何法(更常用)

对旋转关节 \(i\)

\[ J_i = \begin{bmatrix} z_{i-1} \times (p_n - p_{i-1}) \\ z_{i-1} \end{bmatrix} \]

对移动关节 \(i\)

\[ J_i = \begin{bmatrix} z_{i-1} \\ 0 \end{bmatrix} \]

其中 \(z_{i-1}\) 是关节 \(i\) 的旋转轴方向,\(p_{i-1}\) 是关节 \(i\) 的位置,\(p_n\) 是末端位置。

3.3 雅可比的应用

应用 公式
速度映射 \(\dot{x} = J \dot{q}\)
力映射 \(\tau = J^T F\)
逆运动学 \(\dot{q} = J^{-1} \dot{x}\)(或伪逆)
冗余分解 \(\dot{q} = J^{\dagger}\dot{x} + (I - J^{\dagger}J)\dot{q}_0\)

4 奇异性

4.1 定义

当雅可比矩阵 \(J(q)\) 秩亏 时,机器人处于奇异构型:

\[ \det(J(q)) = 0 \quad (\text{方阵情况}) \]
\[ \text{rank}(J(q)) < \min(m, n) \quad (\text{一般情况}) \]

4.2 奇异性的后果

  • 末端执行器在某些方向上 丧失自由度
  • 逆运动学的关节速度趋于 无穷大
  • 力的传递特性发生退化

4.3 奇异性的类型

类型 描述 例子
边界奇异 臂完全伸展或折叠 2-link 臂完全伸直
内部奇异 两个关节轴对齐 腕部万向节锁

4.4 处理方法

  • 阻尼最小二乘(DLS):添加正则项避免速度爆炸
  • 奇异性感知规划:在轨迹生成时避开奇异区域
  • 冗余自由度:利用零空间运动绕过奇异

5 工作空间

5.1 定义

机器人末端执行器所能到达的所有位置(和姿态)的集合。

  • 可达工作空间(Reachable workspace):末端能到达的所有点,不考虑姿态
  • 灵巧工作空间(Dexterous workspace):末端能以任意姿态到达的点

5.2 影响因素

  • 连杆长度和 DH 参数
  • 关节运动范围限制
  • 关节类型(旋转/移动)
  • 机械干涉和自碰撞

5.3 工作空间分析方法

  • 解析法:对简单机构推导边界方程
  • 数值法:蒙特卡洛采样 + 正运动学计算
  • 操作度指标\(w = \sqrt{\det(J J^T)}\),量化离奇异性的远近

6 高级话题

6.1 冗余机器人

当自由度 \(n > m\)(关节数大于任务空间维度)时,机器人具有运动冗余。利用零空间投影可优化辅助目标:

\[ \dot{q} = J^{\dagger} \dot{x} + (I - J^{\dagger}J) \dot{q}_0 \]

其中 \(\dot{q}_0\) 是零空间中的任意速度,可用于:

  • 避障
  • 远离关节极限
  • 最小化能量消耗

6.2 人形机器人运动学

人形机器人(见 人形机器人)具有高度冗余的树形运动链结构,其运动学分析需要:

  • 浮动基座建模(6-DOF 虚拟关节)
  • 多末端约束(双足接触、手部操作)
  • 质心运动学(\(x_{\text{CoM}} = \frac{1}{M}\sum m_i p_i\)

参考文献

  1. Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. Pearson.
  2. Siciliano, B. et al. (2009). Robotics: Modelling, Planning and Control. Springer.
  3. Lynch, K. M. & Park, F. C. (2017). Modern Robotics. Cambridge University Press.
  4. Corke, P. (2017). Robotics, Vision and Control. Springer.

评论 #