人形机器人建模与控制(二) - 高级运动学和动态建模

xiangyu fu Lv3

1. Introduction

在第一篇博客中,我们介绍了人形机器人建模的基础概念,包括空间运动的平移和旋转。本篇博客将深入探讨机器人学的运动学和动力学建模方法,特别是针对人形机器人的具体应用。

2. Kinematic Modeling

运动学方程

对于一个自由度的机器人系统,其从基座到末端执行器的齐次变换矩阵可以表示为:

其中,是旋转矩阵,是平移向量,描述了末端执行器相对于基座的位姿。

速度的雅可比矩阵

机器人的末端执行器速度与关节速度之间的关系由雅可比矩阵表示:

其中,是角速度,是线速度,是关节角度。

雅可比矩阵的两种形式

分析雅可比矩阵(Analytical Jacobian)

计算与表示依赖的雅可比矩阵,通过偏微分获得:

几何雅可比矩阵(Geometric Jacobian)

将关节速度映射到线速度和角速度:

这两者之间存在映射关系:

差分逆运动学

差分逆运动学通过求解雅可比矩阵的逆矩阵来计算关节角速度,使得末端执行器的速度尽可能接近期望速度:

当雅可比矩阵不可逆时,可以使用伪逆(pseudo-inverse)来求解:

其中, 是雅可比矩阵的Moore-Penrose伪逆。

3. Dynamic Modeling

动力学基本方程

a) 线性运动

  • 动能:
  • 势能:
  • 运动方程:

b) 角运动

  • 动能:
  • 运动方程:

c) 弹簧系统

  • 势能:
  • 运动方程:

d) 阻尼系统

  • 能量损失:
  • 运动方程:

拉格朗日力学

对于具有质心位置、质量、线速度和角速度的物体,其动能、势能和拉格朗日量分别为:

  • 动能:
  • 势能:
  • 拉格朗日量:

系统的总动能和势能:

$$
\begin{aligned}
K_{T} &= \sum_{i=1}^{n} K_{i} = \sum_{i=1}^{n}\left{\frac{1}{2} m_{i} v_{\text{com}{i}}^{2} + \frac{1}{2} I{i} \omega_{\text{com}{i}}^{2}\right} \
P
{T} &= \sum_{i=1}^{n} P_{i} = \sum_{i=1}^{n} m_{i} g^{T} t_{0}^{\text{com}_{i}}
\end{aligned}
$$

拉格朗日方程:

$$
\frac{d}{\mathrm{dt}}\left(\frac{\partial L}{\partial \dot{q}{i}}\right) - \frac{\partial L}{\partial q{i}} = \tau_{i}
$$

系统方程:

$$
\begin{aligned}
\frac{d}{\mathrm{dt}}\left(\frac{\partial L}{\partial \dot{q}{1}}\right) - \frac{\partial L}{\partial q{1}} &= \tau_{1} \
\frac{d}{\mathrm{dt}}\left(\frac{\partial L}{\partial \dot{q}{2}}\right) - \frac{\partial L}{\partial q{2}} &= \tau_{2} \
&\vdots \
\frac{d}{\mathrm{dt}}\left(\frac{\partial L}{\partial \dot{q}{n}}\right) - \frac{\partial L}{\partial q{n}} = \tau_{n}
\end{aligned}
$$

矩阵形式:

动力学方程的特性

a) 惯性矩阵 是有界对称正定矩阵:

$$
\mathbf{M}(q){+} = \mathbf{M}(q){+}^{\top} \quad 0 < \epsilon_{1} \leq |\mathbf{M}(q)| \leq \epsilon_{2} < \infty, \quad \forall q \in \mathbb{R}^{n}
$$

b) 反对称性质:

c) 参数的线性关系:

功率关系

功率与广义速度之间的关系:

动力学方程包含外力

机器人动力学方程考虑外部力影响:

这个方程描述了机器人在外部力作用下的动力学行为,其中是作用在末端执行器上的外部力,通过雅可比矩阵传递到关节力矩上。

4. Floating Base (Underactuated) Robots

接下来我们要讨论浮动基准(欠驱动)机器人的动力学建模。这种机器人系统具有移动底座,不完全受控,因此需要特殊的建模方法。

在浮动基准(欠驱动)机器人中,我们引入了一些新的符号和表示:

$$
\begin{array}{l}
\mathbf{x}=\left[\begin{array}{c}
\mathbf{x}{b} \
\mathbf{q}
\end{array}\right] \in \mathbb{R}^{n+6} \
\nu=\left[\begin{array}{c}
\mathbf{v}
{b} \
\dot{\mathbf{q}}
\end{array}\right] \in \mathbb{R}^{n+6} \
\dot{\nu}=\left[\right] \in \mathbb{R}^{n+6}
\end{array}
$$

需要注意的是:
$$\mathbf{x}{b} \not ={ \mathbf{v}{b}}$$

在浮动基准机器人中:

  • 表示机器人的状态向量,包括浮动基准(floating base)的位姿 和广义坐标
  • 表示机器人的速度向量,包括浮动基准的速度 和广义速度
  • 表示机器人的加速度向量,包括浮动基准的加速度 和广义加速度

通过引入浮动基准,这些表示允许我们处理那些具有移动底座和不完全受控(欠驱动)的机器人系统。在浮动基准机器人中,浮动基准的位姿和速度是重要的,因为它们涉及机器人的整体运动和控制。广义坐标和广义速度则描述了机器人的内部自由度和关节运动。

动力学扩展

在浮动基准机器人的动力学建模中,惯性矩阵、科里奥利斯和离心力项以及重力项需要扩展:

$$
\mathbf{M}(\mathbf{q}) \rightarrow \mathbf{M}(\mathbf{x})=\left[\begin{array}{cc}
\mathbf{M}{x}(\mathbf{x}) & \mathbf{M}{x q}(\mathbf{x}) \
\mathbf{M}{q x}(\mathbf{x}) & \mathbf{M}{q}(\mathbf{x})
\end{array}\right] \in \mathbb{R}^{(n+6) \times(n+6)}
$$

在上述方程中:

  • 描述了机器人系统中的重力效应。对于浮动基准机器人,扩展为
  • 表示科里奥利斯和离心力项,扩展为
  • 表示惯性矩阵,扩展为

扩展的力矩和外部力表示

符号和定义

$$
\begin{array}{c}
\tau \in \mathbb{R}^{n} \rightarrow \mathbb{R}^{n+6} \
\mathbf{Q}=\left[\begin{array}{c}
\mathbf{0}{6 \times n} \
\mathbf{I}
{n \times n}
\end{array}\right] \quad \mathbf{Q} \tau \in \mathbb{R}^{n+6}
\end{array}
$$

  • 是维度为 的力矩向量。通过执行器选择矩阵(actuation selector matrix) 扩展到

  • : 这是一个维度为 的力矩向量,表示关节空间中的力矩。

  • : 这是一个执行器选择矩阵,它的形式为
    $$
    \mathbf{Q}=\left[\begin{array}{c}
    \mathbf{0}{6 \times n} \
    \mathbf{I}
    {n \times n}
    \end{array}\right]
    $$
    这里,$\mathbf{0}{6 \times n}6 \times n\mathbf{I}{n \times n}n \times n\tau\mathbb{R}^{n+6}\mathbf{Q}\tau \in \mathbb{R}^{n+6}$。

力和雅可比矩阵

$$
\begin{array}{l}
\mathbf{J}(\mathbf{q})^{\top} \mathbf{f}{e x t} \in \mathbb{R}^{n} \
\widehat{\mathbf{J}}=\left[\begin{array}{c}
\mathbf{J}
{b}(\mathbf{q})^{\top} \
\mathbf{J}(\mathbf{q})^{\top}
\end{array}\right] \
\widehat{\mathbf{J}}(\mathbf{x})=\left[\mathbf{J}{b}\left(\mathbf{x}{b}\right) \ \mathbf{J}(\mathbf{q})\right] \
\widehat{\mathbf{J}}(\mathbf{x})^{\top} \mathbf{f}_{e x t} \in \mathbb{R}^{n+6}
\end{array}
$$

  • 表示外部力通过雅可比矩阵传递到广义坐标上的力。扩展为

  • : 这里, 是与广义坐标 相关的雅可比矩阵。$\mathbf{f}{\text{ext}}\mathbf{J}(\mathbf{q})^{\top} \mathbf{f}{\text{ext}}$,我们可以得到作用在关节空间的力。

  • : 扩展后的雅可比矩阵。具体形式为
    $$
    \widehat{\mathbf{J}}=\left[\begin{array}{c}
    \mathbf{J}{b}(\mathbf{q})^{\top} \
    \mathbf{J}(\mathbf{q})^{\top}
    \end{array}\right]
    $$
    其中,$\mathbf{J}
    {b}(\mathbf{q})^{\top}\mathbf{J}(\mathbf{q})^{\top}\widehat{\mathbf{J}}(\mathbf{x})$ 就包含了基础和关节的雅可比矩阵信息。

具体计算

  • $\widehat{\mathbf{J}}(\mathbf{x})=\left[\mathbf{J}{b}\left(\mathbf{x}{b}\right) \ \mathbf{J}(\mathbf{q})\right]$: 这里,我们考虑 是整个系统的状态向量,它包括了基础和关节的状态。 是一个将基础部分 $\mathbf{J}{b}\left(\mathbf{x}{b}\right)\mathbf{J}(\mathbf{q})$ 结合在一起的雅可比矩阵。
  • : 扩展后的雅可比矩阵 将外部力 从末端执行器传递到包括基础和关节在内的整个系统中,结果是一个维度为 的向量。

动力学方程

首先是一般形式的动力学方程:

  • : 系统的质量矩阵(惯性矩阵),它取决于机器人的配置
  • : 广义加速度向量。
  • : 科里奥利斯力和离心力矩阵,取决于机器人的配置 和速度
  • : 重力项,取决于配置
  • : 关节力矩向量 通过执行器选择矩阵 传递到系统中。
  • : 外部力 通过扩展雅可比矩阵 传递到系统中。

平板脚机器人的动力学方程

对于具有平板脚的机器人,动力学方程可以具体化为:

$$
\mathbf{M} \dot{\nu} + \mathbf{C} \nu + \mathbf{G} = \mathbf{Q} \tau + \widehat{\mathbf{J}}{l}^{\top} \mathbf{f}{l} + \widehat{\mathbf{J}}{r}^{\top} \mathbf{f}{r}
$$

其中:

  • $\mathbf{f}{l}, \mathbf{f}{r} \in \mathbb{R}^{6}$: 分别表示作用在左脚和右脚上的外部力。每个外部力都是六维的,表示在 3D 空间中的力和力矩。

  • $\widehat{\mathbf{J}}{l}, \widehat{\mathbf{J}}{r}$: 分别是左脚和右脚的雅可比矩阵,它们将这些外部力转换到系统的广义坐标空间中。

动力学方程的详细解释

  1. 惯性项 :

    • 这个项表示系统的惯性效应,反映了机器人的加速度如何受到质量分布的影响。
  2. 科里奥利斯和离心力项 :

    • 这个项包含了由机器人的速度 引起的科里奥利斯力和离心力。
  3. 重力项 :

    • 这个项表示重力对机器人各部分的作用。
  4. 执行器力矩项 :

    • 这个项是由关节执行器产生的力矩,通过选择矩阵 将这些力矩映射到系统的广义坐标中。
  5. 外部力项 $\widehat{\mathbf{J}}{l}^{\top} \mathbf{f}{l} + \widehat{\mathbf{J}}{r}^{\top} \mathbf{f}{r}$:

    • 这些项表示左脚和右脚的外部力对系统的影响。通过左脚和右脚的雅可比矩阵 $\widehat{\mathbf{J}}{l}\widehat{\mathbf{J}}{r}$,将这些外部力映射到广义坐标中。

5. Center of Mass Dynamics

符号定义和解释

  • : 表示浮动基准的原点。
  • : 表示质心的位置,也就是机器人的总质心。
  • : 质心雅可比矩阵,它描述了质心速度与关节速度之间的关系。
  • : 机器人的总质量。

质心动量矩阵

质心动量矩阵 定义为:

这里, 表示了质心动量矩阵, 是机器人总质量, 是质心雅可比矩阵。

质心雅可比矩阵

质心雅可比矩阵 定义如下:

$$
{ }^{w} \dot{x}{c} = \mathbf{J}{c} \nu
$$

这里,${ }^{w} \dot{x}{c}线\mathbf{J}{c}\nu$ 是广义速度向量。

质心雅可比矩阵的具体形式为:

$$
\mathbf{J}{c} = \frac{\sum{k=0}^{n-1} m_{k} \mathbf{J}{c{k}}}{\sum_{k=0}^{n-1} m_{k}}
$$

其中:

  • : 机器人的第 个部分的质量。
  • $\mathbf{J}{c{k}}$: 第 个部分的质心雅可比矩阵。

这个表达式表示质心雅可比矩阵 是所有部分质心雅可比矩阵的质量加权平均。

质心速度计算

通过上面的定义,我们可以计算质心在世界坐标系中的线速度:

$$
{ }^{w} \dot{x}{c} = \mathbf{J}{c} \nu
$$

质心速度与广义速度 的关系通过质心雅可比矩阵 来描述。

以上方程和定义为描述机器人的质心动力学提供了一个完整的框架。质心动量矩阵 、质心雅可比矩阵 $\mathbf{J}{com}(\mathbf{x}){ }^{w} \dot{x}{c} = \mathbf{J}_{c} \nu$ 共同描述了机器人在浮动基准下的动力学行为。

6. Constraints

先来讨论一下约束分类:

6.1 运动学约束分类

  1. 运动学约束(kinematic constraints):

    • 运动学约束是用于限制机器人运动的一组方程或不等式。
  2. 等式约束(equality):

    • 等式约束定义为 ,表示某些变量之间的精确关系。
      • 完整约束(holonomic):
        • 这些是仅依赖于广义坐标(位置)的约束。
          • 定常约束(scleronomic):
            • 这类约束只依赖于广义坐标 ,不随时间变化。表示为
          • 时变约束(rheonomic):
            • 这类约束依赖于广义坐标和时间 ,表示为
      • 非完整约束(nonholonomic):
        • 这些约束不仅依赖于广义坐标,还依赖于广义速度
          • 非完整约束可以表示为
  3. 不等式约束(inequality):

    • 不等式约束定义为 ,表示变量之间的范围或限制关系。

运动学约束方程

下面的方程描述了系统中的运动学约束:

  • : 运动学约束矩阵,依赖于系统状态
  • : 广义速度向量。

运动学约束矩阵的维度

的维度:

这里:

  • : 系统的自由度数。
  • : 约束的数量。

这个表示意味着 是一个维度为 的矩阵,其中 是广义速度 的维度。

6.2 运动学约束方程

极限情况下的动力学方程

当外部力 $\mathbf{f}{ext}\mathbf{f}{l}, \mathbf{f}_{r}$ 趋向于无穷大时,机器人系统的动力学方程简化为:

这表示在极限条件下,机器人仅在内在力和力矩的作用下维持平衡。

约束力和约束方程

在有约束力的情况下,约束方程表示为:

这里, 是约束矩阵,其维度为 ,其中 是约束的自由度数。

能量守恒和约束力

约束力的能量守恒性质可以表示为:

这里,,其中 是拉格朗日乘数,表示约束力的强度。

拉格朗日力学方程

在拉格朗日力学框架下,约束力引入了一个新的项

这里, 是拉格朗日函数, 是外部作用力矩。

动力学方程包括约束力

将约束力显式地包括在内,动力学方程变为:

约束力显式依赖于作用力矩

最后,通过解约束力 的显式表达式,我们得到:

结合以上方程,我们得到拉格朗日乘数 的显式表达式:

这些方程展示了浮动基准机器人在约束条件下的动力学行为,并明确了约束力对作用力矩的依赖性。具体来说:

  1. 基本动力学方程: 描述了机器人在惯性、科里奥利力和重力作用下的运动。
  2. 约束方程: 描述了系统的运动学约束。
  3. 能量守恒和约束力: 结合拉格朗日乘数引入约束力。
  4. 最终方程: 通过显式表达式描述了约束力 ,其依赖于作用力矩、广义速度、惯性矩阵、科里奥利力和重力。

这些方程对理解和控制机器人在复杂约束条件下的行为非常重要,有助于设计更加稳定和高效的机器人控制系统。

  • Title: 人形机器人建模与控制(二) - 高级运动学和动态建模
  • Author: xiangyu fu
  • Created at : 2024-05-26 23:32:03
  • Updated at : 2025-12-10 16:10:05
  • Link: https://redefine.ohevan.com/2024/05/26/legged_robots/blog-02/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments