跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
MATLAB / OctaveAI算法

机器人 DH 参数模型与正运动学

机器人 DH 参数模型定义了连杆长度、扭角、关节距离和转角四个参数,用于描述相邻关节间的相对位置与朝向关系。通过建立坐标系与齐次变换矩阵,可实现从基座到末端的正向运动学解算。雅可比矩阵连接了关节空间与操作空间的速度映射,揭示了奇异形位对自由度的影响。速度传递理论进一步阐述了转动与移动关节在不同坐标系下的角速度与线速度变换规律。

芝士奶盖发布于 2026/4/7更新于 2026/8/1743 浏览
机器人 DH 参数模型与正运动学

1 DH 参数模型(Denavit-Hartenberg)

1.1 四个 DH 参数的定义

记基座为坐标系{0},此后的每个可动关节依次记为关节 1,2,...,i,...;第 i 个关节与下一个关节之间的连接部分称为连杆 i。考虑关节 i 与 i-1('关节 0'即为基座),首先标出各自的转轴(或平动轴),如果是基座则取一较方便的、符合实际几何关系的方向(一般为基座坐标系的 z 轴)为'轴'。

文章配图

图 1 连杆与关节的位置关系

这两轴的关系一共有三种:异面、相交和平行,由此定义以下两个参数:

连杆长度 $a_{i-1}$:轴 i-1 与轴 i 的距离。两轴平行时距离容易理解;两轴相交时距离为 0;两轴异面时,应先作出公垂线,取公垂线与二者的交点所构成线段的长度为两轴距离。连杆长度是绝对值,只有非负值,不区分方向。 连杆长度描述了相邻两关节间的相对距离关系。

连杆扭角 $\alpha_{i-1}$:轴 i-1 与轴 i 的夹角。两轴相交时,夹角容易理解;两轴平行时,夹角为 0;两轴异面时,应现将其中一者沿公法线平移至另一轴所在平面后再取相交的夹角。确定扭角方向时,应遵循'右手定则':右手拇指沿 $a_{i-1}$ 所在直线从 i-1 指向 i,四指弯曲方向即为扭角正方向。 关节扭角描述了相邻两关节的相对朝向关系。

需要注意的是,对于末端关节 n 而言,由于已经没有关节 n+1,末端关节的杆长 $a_n$ 与扭角 $\alpha_n$ 无实际意义,通常不定义或定义为 0,简记为'向后定义,有始无终'。

在作出各个连杆长度后,考虑相邻的两杆长 $a_{i-1}$、$a_i$ 各自所在的直线(即两轴的公垂线),则依旧有异面、相交和平行三种可能的位置关系,由此继续定义两个参数:

关节距离 $d_i$:直线 $a_i$ 与 $a_{i-1}$ 的距离,具体定义与连杆长度中两轴距离的定义一致,同样也是绝对值,只有非负值,不区分方向。 关节距离描述了相邻两连杆的相对距离关系。如果关节 i 是移动关节,则 $d_i$ 即为可变的关节变量。

关节转角 $\theta_i$:直线 $a_i$ 与 $a_{i-1}$ 的夹角,方向同样符合'右手定则',注意拇指应沿 $d_i$ 从 i-1 指向 i。 关节转角描述了相邻两连杆的相对朝向关系。如果关节 i 是转动关节,则 $\theta_i$ 即为可变的关节变量。

需要注意的是,对于关节 0(基座)而言,由于没有更靠前的关节,因而 $d_0$ 与 $\theta_0$ 无实际意义,通常不定义或定义为 0,简记为'向前定义,有终无始'。

以上四个参数称为 DH 参数。一旦机器人的机械结构确定,那么每个关节的 4 个 DH 参数也随之确定,一般而言不会在机器人运动的过程中改变。可以说,用 DH 参数就可以抽象出机器人的根本结构,并且最'简明扼要'地描绘出机构的'骨架'、'轮廓'。4 个参数的定义及特点汇总如下:

表 1 DH 参数的定义及其特点

参数名称参数符号参与定义的部件具体定义无定义的部位意义
连杆长度$a_i$关节 i 与关节 i+1(向后定义)轴距离末端关节(有始无终)结构参数
连杆扭角$\alpha_i$轴夹角
关节距离$d_i$关节 i 与关节 i-1(向前定义)杆距离基座(关节 0)(有终无始)移动关节变量
关节转角$\theta_i$杆夹角转动关节变量

1.2 机器人坐标系的建立方法

确定 DH 参数后,还应当为各个关节建立起相应的坐标系,以便利用基本的坐标变换知识实现不同关节间物理量的变换。常用的基本坐标变换请参见相关数学基础资料。

确定坐标系的步骤是:

  1. 在各个关节上标出转轴或移动轴,并作为坐标系的 z 轴。z 轴的方向可任意选取,但一般应尽量保持一致。
  2. 根据已确定好的 x 轴和 z 轴,确定 y 轴。

以公垂线 $a_{i-1}$ 为 x 轴,其正方向为从 i-1 指向 i。

对于平行的两轴 i-1 与 i,则公垂线可任意选取(对应第 2 步中 $d_i$ 存在多种取值的情况),但一般应尽量选取能使 $d_i=0$ 的公垂线,之后再取与轴 i-1 的交点为原点。

对于不平行的两轴 i-1 与 i,取公垂线 $a_{i-1}$ 与轴 i-1 的交点作为系{i-1}的原点;

依据标出的轴线分别计算 $a_i$ 与 $\alpha_i$、$d_i$ 与 $\theta_i$。注意,如果存在平行的两轴,则此时 $d_i$ 可能存在多种取值,此时可暂时跳过 $d_i$ 的计算,继续进行后续步骤。

  • 在选取 DH 参数坐标系时如果存在'争议',事实上大可放心选取,因为不同的建系方式其实并不会影响计算的正确性,只要在每一种建系方式下 DH 参数的定义都自洽即可。

注意:基座{0}没有转轴或移动轴,因此其 z 轴不能根据轴位置来确定,应当根据实际几何位置的需求确定;末端{n}没有后续的关节(即没有有效的 $a_i$),因此其 x 轴不能根据 $a_i$ 来确定,也需要根据实际来确定。

文章配图

图 2 与 DH 参数相匹配的坐标系

可以看到,在这样一套与 DH 参数相匹配的坐标系中,连杆长度 $a_i$ 总是沿着坐标系{i}的 x 轴,连杆扭角 $\alpha_i$ 总是绕坐标系{i}的 x 轴按右手定则旋转而成。关节距离 $d_i$ 总是沿着坐标系{i}的 z 轴,关节转角 $\theta_i$ 总是绕坐标系{i}的 z 轴按右手定则旋转而成。在有了上述的统一规范之后,用坐标变换来描述各机构的位置关系就变得容易了。

1.3 DH 参数表及相应坐标变换

假设机器人机构拥有 n 个关节,则每个关节(第 i 个)都拥有 4 个 DH 参数,因而一共定义有 4*n 个参数(关节 0 上应 +2 个参数,但关节 n 上又 -2 个参数)。将各个参数列在一张 (n+1) 行、4 列的表中,称为 DH 参数表:

表 2 DH 参数表

i$a_i$$\alpha_i$$d_i$$\theta_i$
0$a_0$$\alpha_0$none (or 0)none (or 0)
1$a_1$$\alpha_1$$d_1$$\theta_1$
2$a_2$$\alpha_2$$d_2$$\theta_2$
...............
nnone (or 0)none (or 0)$d_n$$\theta_n$

这张 DH 参数表就包含了一座机器人最核心的结构信息。当然还有另一种形式的 DH 参数表,只有 n 行,如表 3 所示,这种形式的 DH 参数表适合用于构建关节间的坐标变换矩阵。

表 3 DH 参数表(另一种形式)

i$a_{i-1}$$\alpha_{i-1}$$d_i$$\theta_i$
1$a_0$$\alpha_0$$d_1$$\theta_1$
2$a_1$$\alpha_1$$d_2$$\theta_2$
3$a_2$$\alpha_2$$d_3$$\theta_3$
...............
n$a_{n-1}$$\alpha_{n-1}$$d_n$$\theta_n$

根据 DH 参数以及先前建立起的坐标系规则,根据坐标的相对变换关系(矩阵右乘)可推知从{i}到{i-1}的坐标齐次变换矩阵为:

$$ ^{i-1}iT = \mathrm{Rot}(x,\alpha{i-1})\mathrm{Trans}(x,a_{i-1})\mathrm{Rot}(z,\theta_i)\mathrm{Trans}(x,d_i) $$

(1)

由此,若需要将机器人末端坐标变换到基座,则总的变换矩阵为:

$$ ^0_nT = ^0_1T \cdot ^1_2T \cdots ^{n-1}_nT $$

(2)

2 机器人正向运动学

机器人运动过程中的物理量可分为两类:关节变量与广义/操作变量,由变量又分别构成了关节空间和操作空间。

**关节变量:**可驱动关节上能够随控制指令而改变的变量,包括转动关节的关节角度和移动关节的移动距离。当机构中有 n 个可动关节时,关节变量就有 n 个。

**广义/操作变量:**一般指机械臂末端或被研究的某点在实际工作需求中的位姿变量,例如空间位置(x,y,z)和姿态角度 (θ,φ,ψ)。由于三维空间中运动自由度的限制,广义/操作变量最多只有 6 个。

机器人运动学,实际上研究的就是关节空间与广义/操作空间之间的映射关系。由关节空间推知操作空间,即为正运动学;反之,由操作空间推知工作空间,即为逆运动学。

此外,比关节空间更底层的还有驱动器空间 [3],其作用是描述驱动装置是如何影响关节运动的,例如差速小车各轮速度与转角、位移之间的关系,关节舵机占空比大小与关节转角之间的关系等。不过驱动器空间与关节空间之间的解算关系求解起来相对容易,本文不展开叙述。

2.1 正运动学与雅可比矩阵

机器人正运动学将关节变量映射为操作变量,若记关节变量为 $\boldsymbol{q}:=[ q_1, q_2, \cdots, q_n ]^\mathrm{T}$,操作变量为 $\boldsymbol{r}:=[ r_1, r_2, \cdots, r_m ]^\mathrm{T}, m\le6$,则正运动学 $\boldsymbol{f}:\mathbb{R}^n\to\mathbb{R}^m$ 可表示为:

$$ \boldsymbol{r} = \boldsymbol{f}(\boldsymbol{q}) $$

(3)

通常有 n≥m,因为 n<m 时总存在某些广义变量的运动是受限的(即缺少相应的自由度),这被称为欠驱动结构。n=m 时,任意关节坐标与唯一的广义坐标对应,也就是说每一关节适配一个自由度;n>m 时,同一广义坐标可能对应不同的关节坐标,称为关节变量的冗余设计。

一般而言,在有 DH 参数的情况下,依据 (1)(2) 两式可以很方便地推出末端位姿矩阵关于关节变量 $d_i$ 或 $\theta_i$ 的关系,并依据选取的的位置描述方法(如笛卡尔坐标、求坐标等)和姿态描述方法(如欧拉角、RPY 等)对位姿矩阵进行变换,就可以获得正运动学关系 (3)。

考虑到正运动学关系是向量函数,假设 $\boldsymbol{f}(\cdot)=[ f_1(\cdot), f_2(\cdot), \cdots, f_m(\cdot) ]^\mathrm{T}$,在确定了正运动学关系式的基础上,引入运动的微分,用以下雅可比矩阵(Jacobian Matrix)表示:

$$ \boldsymbol{J}(\boldsymbol{q}):=\dfrac{\partial \boldsymbol{f}(\boldsymbol{q})}{\partial \boldsymbol{q}^{\mathrm{T}}}=\begin{bmatrix} \dfrac{\partial f_1(\boldsymbol{q})}{\partial q_1}& \dfrac{\partial f_1(\boldsymbol{q})}{\partial q_2} &\cdots & \dfrac{\partial f_1(\boldsymbol{q})}{\partial q_n} \ \dfrac{\partial f_2(\boldsymbol{q})}{\partial q_1}& \dfrac{\partial f_2(\boldsymbol{q})}{\partial q_2} &\cdots & \dfrac{\partial f_2(\boldsymbol{q})}{\partial q_n}\ \vdots & \vdots & \ddots & \vdots \ \dfrac{\partial f_m(\boldsymbol{q})}{\partial q_1}& \dfrac{\partial f_m(\boldsymbol{q})}{\partial q_2} &\cdots & \dfrac{\partial f_m(\boldsymbol{q})}{\partial q_n} \end{bmatrix}_{m\times n} $$

(3)

该矩阵反映了瞬时的微小关节变量变化将会引起的广义变量的变化,也就是微分运动量:

$$ \mathrm{d}\boldsymbol{r} = \boldsymbol{J}(\boldsymbol{q})\mathrm{d}\boldsymbol{q} $$

(4)

进而可知两个空间之间瞬时速度的关系:

$$ \dot{\boldsymbol{r}} = \boldsymbol{J}(\boldsymbol{q})\dot{\boldsymbol{q}} $$

(5)

反之,也有

$$ \dot{\boldsymbol{q}} = \boldsymbol{J}(\boldsymbol{q})^{-1}\dot{\boldsymbol{r}};(m=n) $$

(6)

$$ \dot{\boldsymbol{q}} = \boldsymbol{J}(\boldsymbol{q})^{\dagger }\dot{\boldsymbol{r}};(m\neq n) $$

(7)

可见,雅可比矩阵是连接关节变量空间与广义变量空间之间的桥梁。

m=n 时,若雅可比矩阵奇异,即 $\det{[ \boldsymbol{J}(\boldsymbol{q}_s) ]}=0$,则称此时的关节点位 $\boldsymbol{q}_s$ 为奇异形位。奇异形位意味着此时雅可比矩阵不可逆,方程 (5) 不存在唯一解;同时,必然存在某些广义变量能直接被其他广义变量表示(线性相关),即关节存在耦合关系、运动受限,2 个(甚至更多)关节变量会退化成一个关节变量。

除此之外,雅可比矩阵奇异时还可以这样理解:奇异形位处,需要关节变量的速度达到无穷大,才能同时使得某个广义变量获得期望的速度,这在现实中显然是不可能的。也就是说,关节变量失去了对某个广义变量独立控制的作用,相应的自由度已经丧失。

m>n 时,本就存在 (m-n) 个广义变量不受控;m<n 时,存在冗余的关节变量,即同一广义速度可能对应多个关节速度,这些冗余的解为绕过奇异位形提供了备选方案。这两种情况下,雅可比矩阵的逆是广义逆(或称伪逆),即式 (7) 所示。

需要注意的是,雅可比矩阵不为常量,而是与当前的关节变量 $\boldsymbol{q}$ 有关。

3 机器人运动的速度

(5) 式揭示了机器人运动过程中关节空间与广义空间之间的速度关系。然而,在具体分析机器人各部位的运动情况时,通常还需要获知同一空间中不同坐标系之间的速度关系。以下将针对速度的坐标变换具体展开叙述。

3.1 速度在坐标系间的变换

3.1.1 速度变换的一般形式

现考虑{A}{B}两系与某一动点 $\boldsymbol{p}$,则根据上一篇中坐标齐次变换的知识,可知该点在两系之间的位置坐标关系为

$$ ^A\boldsymbol{p} = {^A_B\boldsymbol{R}};{^B\boldsymbol{p}} + {^A\boldsymbol{p}_{B_0}} $$

(8)

若要获得该点的瞬时速度,可在上式两边分别对时间求导,即

$$ ^A\boldsymbol{\dot{p}} = \dfrac{\mathrm{d}}{\mathrm{d}t}\left ({^A_B\boldsymbol{R}};{^B\boldsymbol{p}} \right ) + {^A\boldsymbol{\dot{p}}_{B_0}} $$

(9)

进一步将导数项展开,可知{A}系中 p 点的速度由三部分构成:

$$ \underbrace{^A\boldsymbol{\dot{p}}}{\mathrm{motion;of;\boldsymbol{p};in;\left { A \right }}} = ;;\underbrace{\dfrac{\mathrm{d}}{\mathrm{d}t}\left ({^A_B\boldsymbol{R}}\right ){^B\boldsymbol{p}}}{\mathrm{rotation;of;\left { B \right }}} + \underbrace{​{^A_B\boldsymbol{R}};{^B\boldsymbol{\dot{p}}}}{\mathrm{motion;of;\boldsymbol{p};in;\left { B \right }}} + \underbrace{​{^A\boldsymbol{\dot{p}}{B_0}}}_{\mathrm{translation;of;\left { B \right }}} $$

(10)

其中第一项和第三项是由坐标系之间的相对运动引起,分别表示{B}系相对于{A}系的旋转运动与平移运动,而与点 p 自身的运动无关;只有第二项才代表了点 p 自身的运动属性。

3.1.2 用角速度矢量表示坐标系的旋转运动

在 (10) 式中,$\dfrac{\mathrm{d}}{\mathrm{d}t}\left ({^A_B\boldsymbol{R}}\right )$ 的物理意义实际上并不直观。为此,通常还使用角速度矢量来描述坐标系的旋转运动:

$$ \boldsymbol{\omega}\in\mathbb{R}^3,;\left | \boldsymbol{\omega} \right |=:\Omega $$

角速度矢量的物理意义是:以单位向量 $\boldsymbol{f}:=\dfrac{\boldsymbol{\omega}}{\left | \boldsymbol{\omega} \right |}$ 的某一平行线为轴,依据'右手定则'的方向,按角速度大小 $\Omega$ 旋转。

需要注意的是,角速度矢量不仅大小可能时变,方向也可能是时变的,因此角速度矢量对时间的直接积分一般没有实际意义。不过,在机器人系统中,由于转轴矢量一般是恒定的,变化的只有角速度大小,因此角速度大小的积分可用于求取刚体的姿态角度,即通用坐标变换,其中。

若考虑某点的位矢 $\boldsymbol{r}$ 及其角速度矢量 $\boldsymbol{\omega}$,当转轴过原点时,该点由于转动而具有的线速度为:

$$ \boldsymbol{v} = \boldsymbol{\omega}\times \boldsymbol{r} = \left | \begin{matrix} \boldsymbol{i} & \boldsymbol{j} &\boldsymbol{k} \ \omega_x & \omega_y &\omega_z \ r_x &r_y & r_z \end{matrix} \right | $$

(11)

如果在当前的坐标系{N}内转轴不过原点,则应先取一个能够使转轴过原点的坐标系{M},在{M}中重新计算得该点的位矢和角速度矢量之后,才能使用式 (11)。使用后,还应将转换结果重新变换回原坐标系{N}。

在表示坐标系{B}相对于系{A}的旋转运动时,使用带角标的角速度矢量 $^A\boldsymbol{\omega}B$ 来表征。利用式 (11),可得{B}内任意一点 ${^B\boldsymbol{p}}$ 因坐标系{B}的旋转而在{A}中具有的线速度为 ${^A\boldsymbol{\omega}{B}}\times\left ({^A_B\boldsymbol{R}};{^B\boldsymbol{p}} \right )$,因此有:

$$ \dfrac{\mathrm{d}}{\mathrm{d}t}\left ({^A_B\boldsymbol{R}}\right ){^B\boldsymbol{p}} = {^A\boldsymbol{\omega}_{B}}\times\left ({^A_B\boldsymbol{R}};{^B\boldsymbol{p}} \right ) $$

(12)

(12) 式实际上是提供了描述坐标系旋转运动的另一种方式。在实际应用时,可视情况选择左侧的导数描述形式或右侧的角速度矢量描述形式。

3.1.3 角速度矢量在不同坐标系之间的传递

角速度矢量本质上是一个三维矢量,在不同坐标系中的坐标形式遵循一般的坐标变换规则。不过,由于角速度矢量是自由矢量,不同起点的角速度矢量在同一坐标系内是可以相加的。现考虑在坐标系{A}中系{C}的角速度矢量,其中以{B}作为中间坐标系,则满足以下关系:

$$ ^{A}\boldsymbol{\omega}C = \underbrace{​{^{A}\boldsymbol{\omega}}{B}}{\mathrm{rotation;of;\left { B \right }}} + \underbrace{​{^A_B\boldsymbol{R}};{^{B}\boldsymbol{\omega}}{C}}_{\mathrm{rotation;of;\left { C \right };in;\left { B \right }}} $$

(13)

该式可以这样理解:在{B}看来,{C}理所应当地拥有角速度 $^B\boldsymbol{\omega}C$;但是换到{A}的视角,所有{B}系中的坐标都应进行变换,因此有 ${^A_B\boldsymbol{R}};{^{B}\boldsymbol{\omega}}{C}$;与此同时,{B}在{A}还可能拥有自身的角速度 $^A\boldsymbol{\omega}_B$,这个角速度应当进一步叠加到{C}上,因此有 (13) 式。

3.2 速度在机器人关节间的传递

接下来将以上通用理论运用到具体的机器人机构中:假设现有关节{i-1}与关节{i},以及另一坐标系{0},目的是通过{i-1}将{i}的速度变换至坐标系{0}。

3.2.1 转动关节向前传递

首先讨论{i}是转动关节的情况。

1. 角速度的传递:

以{i-1}为中间坐标系,套用式 (13) 可得:

$$ ^{0}\boldsymbol{\omega}i = {^{0}\boldsymbol{\omega}}{i-1} + {^{0}{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{\omega}}{i} $$

由于{i-1}与{i}是相邻关节,二者之间的关系较简单,因此有

$$ ^{i-1}\boldsymbol{\omega}i = {^{i-1}{i}\boldsymbol{R}};{^{i_a}\boldsymbol{\omega}}_{i} $$

需要说明的是,$\left { i_a \right }$ 表示一个与{i}初始位置重合,但不随{i}的转动而发生变化的绝对坐标系,应注意区分 ${^{i_a}\boldsymbol{\omega}}{i}$ 与 ${^{i}\boldsymbol{\omega}}{i}$(实际上 ${^{i}\boldsymbol{\omega}}_{i}\equiv \boldsymbol{0}$)。若定义:

$$ {^{i_a}\boldsymbol{\omega}}_{i} = \Omega_i\cdot{\hat{\boldsymbol{z}}} = \begin{bmatrix} 0& 0& \Omega_i \end{bmatrix}^\mathrm{T} $$

则最终的变换式应写作:

$$ ^{0}\boldsymbol{\omega}i = {^{0}\boldsymbol{\omega}}{i-1} + \Omega_i\cdot{^{0}_{i}\boldsymbol{R}}{\hat{\boldsymbol{z}}} $$

(14)

其中,$\Omega_i = \dot{\theta}_i$ 是关节变量的速度。

2. 线速度的传递:

套用式 (10)(12) 可得:

$$ ^{0}\boldsymbol{\dot{p}}i = {^{0}\boldsymbol{\dot{p}}}{i-1} + {^{0}{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{\dot{p}}}{i} + {^0\boldsymbol{\omega}{i-1}}\times\left ({^0{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{p}_i} \right ) $$

由于{i}是转动关节,坐标系{i}的原点在{i-1}看来只有转动而无平动,即 ${^{0}{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{\dot{p}}}{i} = \boldsymbol{0}$。

因此通过下式可将{i}系的线速度传递到{i-1}上,进而再传递至坐标系{0}:

$$ ^{0}\boldsymbol{\dot{p}}i = {^{0}\boldsymbol{\dot{p}}}{i-1} + {^0\boldsymbol{\omega}{i-1}}\times\left ({^0{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{p}_i} \right ) $$

(15)

其中 $\boldsymbol{p}_i$ 是坐标系{i}的原点在{i-1}中的位置矢量,可由 DH 参数及 (1) 式确定:

$$ \begin{bmatrix} {^{i-1}\boldsymbol{p}i}\ 1 \end{bmatrix} = {{i}^{i-1}T}\cdot\left [ \begin{matrix} 0 & 0 & 0 & 1 \end{matrix} \right ]^\mathrm{T} $$

(16)

3.2.2 移动关节向前传递

在移动关节中,{i}只有平动而无转动,因此在{i-1}看来 ${^{i-1}\boldsymbol{\omega}}_{i} = \boldsymbol{0}$,故有:

$$ ^{0}\boldsymbol{\omega}i = {^{0}\boldsymbol{\omega}}{i-1} $$

(16)

也就是说,{i}在{0}看来的转动速度完全只由作为中间坐标系的前一关节{i-1}决定。

而在考虑线速度时,在转动关节中为零的项 ${^{i-1}\boldsymbol{\dot{p}}}_{i} = {^{i-1}_i\boldsymbol{R}};{^i\boldsymbol{\dot{p}}_i}$ 重新发挥了作用,其中 ${^i\boldsymbol{\dot{p}}_i} = v_i\cdot{^i\hat{\boldsymbol{z}}} = \begin{bmatrix} 0& 0& v_i \end{bmatrix}^\mathrm{T}$ 并且 $v_i = \dot{d}_i$ 是关节的控制量,进而可得线速度的传递公式为:

$$ ^{0}\boldsymbol{\dot{p}}i = {^{0}\boldsymbol{\dot{p}}}{i-1} + v_i\cdot{^{0}{i}\boldsymbol{R}};{^i\hat{\boldsymbol{z}}} + {^0\boldsymbol{\omega}{i-1}}\times\left ({^0_{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{p}_i} \right ) $$

(17)

3.2.3 小结

综上所述,当关节{i}为转动关节时:

$$ \begin{cases} ^{0}\boldsymbol{\omega}i = {^{0}\boldsymbol{\omega}}{i-1} + \Omega_i\cdot{^{0}{i}\boldsymbol{R}}{\hat{\boldsymbol{z}}} \ ^{0}\boldsymbol{\dot{p}}i = {^{0}\boldsymbol{\dot{p}}}{i-1} + {^0\boldsymbol{\omega}{i-1}}\times\left ({^0_{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{p}_i} \right )\end{cases} $$

当关节{i-1}为移动关节时:

$$ \begin{cases}^{0}\boldsymbol{\omega}i = {^{0}\boldsymbol{\omega}}{i-1} \ ^{0}\boldsymbol{\dot{p}}i = {^{0}\boldsymbol{\dot{p}}}{i-1} + v_i\cdot{^{0}{i}\boldsymbol{R}}{\hat{\boldsymbol{z}}} + {^0\boldsymbol{\omega}{i-1}}\times\left ({^0_{i-1}\boldsymbol{R}};{^{i-1}\boldsymbol{p}_i} \right )\end{cases} $$

其中 $\begin{bmatrix} {^{i-1}\boldsymbol{p}i}\ 1 \end{bmatrix} = {{i}^{i-1}T}\cdot\left [ \begin{matrix} 0 & 0 & 0 & 1 \end{matrix} \right ]^\mathrm{T}$。


至此本文内容结束。下篇将继续梳理机器人逆运动学方面的知识。


参考文献

[1] 蔡自兴,谢斌编著。机器人学 [M]. 清华大学出版社,2015. [2] 杨洋,苏鹏,郑昱编著。机器人控制理论基础 [M]. 机械工业出版社,2021. [3] 樊泽明等编著。机器人学基础 [M]. 机械工业出版社,2022. [4] (日) 白井良明编著。机器人工程 [M]. 科学出版社,2001.

目录

  1. 1 DH 参数模型(Denavit-Hartenberg)
  2. 1.1 四个 DH 参数的定义
  3. 1.2 机器人坐标系的建立方法
  4. 1.3 DH 参数表及相应坐标变换
  5. 2 机器人正向运动学
  6. 2.1 正运动学与雅可比矩阵
  7. 3 机器人运动的速度
  8. 3.1 速度在坐标系间的变换
  9. 3.1.1 速度变换的一般形式
  10. 3.1.2 用角速度矢量表示坐标系的旋转运动
  11. 3.1.3 角速度矢量在不同坐标系之间的传递
  12. 3.2 速度在机器人关节间的传递
  13. 3.2.1 转动关节向前传递
  14. 3.2.2 移动关节向前传递
  15. 3.2.3 小结
  16. 参考文献
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • MiroFish:基于群体智能的万物预测引擎
  • Python GUI 可视化设计:3 步完成专业界面开发
  • GitHub Copilot 学生认证指南及 Python 自动化实现
  • 谷歌 SEO 合规指南:如何避免网站被惩罚
  • 缓存算法实战:LRU 与 LFU 的 Java 实现与原理解析
  • OpenClaw + Kimi K2.5 开源 AI 助手本地部署与办公自动化实战
  • Python 异步编程实战:构建高性能网络应用
  • 我的 C++ 设计模式整理:23 种模式的实现与建议
  • Home Assistant 联动主流语音助手实现智能家居控制
  • QoderWork:一款桌面级通用 AI Agent 助手
  • Scratch 与 Python 编程语言核心差异对比
  • 通义万相 2.1 深度解析:AIGC 视频与图像生成新突破
  • Ingress-Nginx 概念解析与实践部署指南
  • OpenClaw 开源个人 AI 助手部署指南:一键脚本 Docker npm 安装与中文配置
  • 基于 WebGIS 的体感温度实证分析:中国火炉城市评估
  • Llama Factory 微调训练全过程详解
  • WhisperLiveKit 实战指南:从本地部署到生产环境
  • 滑动窗口算法实战:从长度最小子数组到最小覆盖子串
  • Android 求职指南:简历优化与面试核心问题解析
  • 基于 FPGA 的深度强化学习框架实现超音速闭环智能流动控制实验

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online