导言 我们都知道关节一般会导致(驱动)机械臂产生两种状态:平移或者转动。也知道我们需要借助坐标系来描述物体的姿态和位置信息,那如何为一整个机械臂建立一个完整的坐标系,从而能够求解每个关节通过平移/旋转多少值让机械臂最终拿到我们的目标物品呢?在这里需要借助DH表达法来定义我们的坐标系的作法,并且给出需要求解的数值(平移
/旋转
)在空间上的表达。 本节是学习正逆向运动学的基础。
D-H表达法(Denavit-Hartenberg)
DH表达法有两个通用版本,一个是标准版(standard),一个是craig版本,在这先使用craig版本作解释。 一般(驱动)关节(joint)分为两种:转轴(R型,revolute)或者 滑动杆 / 平移(P型,prismatic)
目录
如何构建DH表格
相关例题
DH表的作用
相关例子(PUMA560)
扩展(选读)
DH表达法的另一个版本(标准版)
复合型关节如何得到驱动数值
如何构建DH表格
构建DH表格首先需要画出坐标系,然后根据坐标系的数据做表。 (1)如何确定 轴? 首先找到每个关节的转动/平移方向 平移关节 : 沿着平移方向画
轴 转轴关节 :垂直转动方向做
轴 注:方向不唯一,全凭喜好或条件选择轴向正负
可以看到这个机械臂由转动、平移、转动关节组成,即所谓的RPR类型机械臂。 (2)如何确定 轴? 上过高中的一定知道啦,空间中的两条线一定能找到一条线与它们都垂直。 找到一条与关节
、关节
的
轴都垂直并相交的线,这条线就是
轴 。 注:方向不唯一,全凭喜好或条件选择轴向正负 需要注意的是( 下面的(5) 解释了
是个什么东西 ):
与
不在同一平面上时:
≠0,
轴沿着这条线。
与
在同一平面上:
=0
(3)如何确定 轴? 已知
轴、
轴,与它们两两垂直的就是
轴。(符合坐标系的右手定则)
(4)处理特殊点的坐标系(最开始、最后的) 由上述三点,一般杆件的驱动坐标系都定义出来了。还有两个特殊的杆件:地杆和端杆,我们如何处理?
- 地杆(第0杆,link 0):无关节驱动、不动的
当
= 0 (或
= 0 )时的关节1的坐标系,就可当作地杆的关节坐标系(如图红色所示)。
注:这个坐标系定义后不会变动,一般作为整个机械臂的参考坐标系使用。
- 端杆(最后一杆,link n):
端杆依靠最后一个关节的运动改变坐标位置
一般使用上一个关节的坐标系的
轴延伸直线作为端杆的
轴。
(5)构建DH表格
(注意区分 和 )
: 即关节
与关节
两者
轴的最短举例(即垂直距离)
:即关节
与关节
两者
轴的角度差
: 即
与
的最短距离
:即
与
的角度差 一般
以上/右为正,
以逆时针方向为正方向。 如果仅是表达两杆,只需要
、
即可。如果是多杆(一般情况),涉及到的信息矩阵T的运算需要
、
参数。 然后根据情况将机械臂的数值写到表中:
一般而言,杆的长度我们都是已知的,数值都是可以直接得到的,所以有: 对于转轴而言,
、
、
都是已知的。
是未知的,它是这个关节的驱动数值。 对于动杆而言,
、
、
都是已知的。
是未知的,它是这个关节的驱动数值。
相关例题
DH表的作用
我们通过齐次矩阵{T}能轻易知道两个关节杆子相互之间的联系与位置转换,通过{T}的运算连续性也很容易知道不相邻杆件关节间的状态:
通过上式可以得知,如果我们想把物体
向量从{
}的表达转换到{
},则需要依次经过从
到
,从
到
….. 这样就能让我们的机械臂一步一步慢慢触碰到目标物体了。 那么我们如何得知的
具体数值呢? DH表的最大作用就是为齐次矩阵 T 提供了必要的数值。 从而可以使关节0通过相应的T矩阵到关节1的位置,关节
通过T矩阵到达关节
的位置,一个推一个,最终达到目标位置。 由于(二)中提到的,齐次矩阵{T}的特性,可以推出:
这个矩阵的意思是: 关节i-1怎么到关节i呢? 首先是围绕
轴逆时针转动
(蓝色->绿色),然后再沿着
轴向右平移
(绿色->橙色) 然后再围绕
轴逆时针转动
(橙色->紫色),然后再沿着
轴向上平移
(紫色->红色) 然后就能得到固定公式
=
相关例子(PUMA560)
这是很经典的一个机械手臂——PUMA 560.现在需要求出
. 求解过程 1)首先画出DH表(用Craig方式)
2)使用T矩阵的连续性求解 根据之前提供的公式,这六个矩阵有:
扩展(选读)
之前有提到DH表达法由两种版本,本博客举例的是craig版本的,而不是早期教材中的standard版本。
他们的区别是: 1、名称上的区别,前者的关节的表示英文为axis ,后者为 joint 2、代号定义上的区别,前者是关节i后面接杆件
,后者是关节i后面接杆件
. 3、坐标系的画法标准不同,关于
轴的画法,前者是
指向
,后者是
指向
。 4、运算上的复杂度区别,后者需要的运算量稍微大了点。(以[相关例子]的最后一个图为例)
复合型关节如何得到驱动数值
之前说过了,一般的关节分两种:转轴或者滑动杆。 其中转轴的驱动机械臂运动的数值取决于
,滑动杆取决于
。 但是实际上的需求关节会有更复杂的,这里以这个机器人的轮腿为例:
可以看到的轮子不只可以转动,而且由于可以“上上下下”,所以可以达到“走路”的效果。 所以这是由两个马达控制的关节驱动,一个控制转动
,一个控制位移
。
,
代表的是两个马达的状态。