相信朋友们看了古月居之前的推送:机械臂动力学系列都收获不少吧。动力学是以运动学为基础的,今天我给大家介绍机械臂运动学相关知识。机械臂运动学研究机械臂的运动特性,而不考虑使机械臂产生运动时施加的力。
机械臂运动学主要关注机械臂位置、速度、加速度之间的关系,分为正运动学与逆运动学。机械臂正运动学的研究重点是把机械臂关节变量作为自变量,描述机械臂末端执行器的位置和姿态与机械臂基座之间的函数关系。
机械臂可以看作一系列刚体通过关节连接而成的一个运动链,我们将这些刚体称为连杆。通过关节将两个相邻的连杆连接起来。从机械臂的固定基座开始编号,可以称固定基座为连杆0,第一个可动连杆为连杆1……将连杆0与连杆1之间的关节称为关节1,将连杆1与连杆2之间的关节称为关节2……
一、DH建模
在介绍正运动学之前,先要向大家介绍DH参数(Denavit-Hartenberg参数)。
首先是参数a,含义是连杆长度。在大部分情况下参数a可以直观地理解为两关节之间连杆的长度,但对于形状比较奇怪的机械臂,就需要用严格的定义去求参数a:连杆首尾两关节的轴之间的距离,也就是两轴公垂线段长度,即为待求a;
第二个参数是α,含义是连杆转角。假设作一个平面,并使该平面与两关节轴之间的公垂线垂直,然后把关节轴i和关节轴i-1投影到该平面上,在平面内轴i-1按照右手法则绕ai-1转向轴i,测量两轴线之间的夹角即可得到αi-1。当两个关节轴线相交时,αi-1无意义,可任意选取,通常取一方便计算的值。
第三个是连杆偏距,关节轴i上的连杆偏距记为di。
第四个参数描述两相邻连杆绕公共轴线旋转的夹角,该参数称为关节角,记为θi。
上图表示相互连接的连杆i-1和连杆i。ai-1表示连杆i-1两端关节轴的公垂线长度,ai表示连杆i两端关节轴的公垂线长度。描述相邻两连杆连接关系的第一个参数是从公垂线ai-1与关节轴i的交点和公垂线ai与关节轴i的交点的有向距离,即连杆偏距di。
当关节i是一个平动关节时,di为一变量。描述相邻两连杆连接关系的第二个参数是ai-1的延长线和ai之间绕关节轴i旋转所形成的夹角,即关节角θi,如上图所示。图中,标有双斜线和三斜线的实线是平行线。当关节i是转动关节时,关节角θi是一个变量。
对于运动链中的首尾参数,其参数习惯设定为0,即a0=an=0, α0=αn=0。如果关节1为转动关节,则θ1的零位可以任意选取,并且规定d1=0。同样,如果d1为平动关节,则d1的零位可以任意选取,并且规定θ1=0。这种规定也适用于关节n。之所以采用这样的规定,是因为当一个参数可以任意选取时,将另一个参数设为0便于计算。
综上,机器人的每个连杆都可以用四个参数来描述,其中两个参数用于描述连杆本身,两个参数用于描述连杆间的关系。通常,对于转动关节,θi为关节变量,其他三个连杆参数是不变的;对于移动关节,di为关节变量,其他三个连杆参数是不变的。
二、正运动学:连杆坐标系及其变换
为了便于处理机械臂的复杂几何参数,首先需要在机械臂的每个连杆上分别固定一个连杆坐标系,然后再描述这些连杆坐标系之间的关系。为了规范起见,有必要给机械臂和工作空间专门命名和确定专门的“标准”坐标系。上图所示为一典型的情况,机器人抓持某种工具,并把工具末端移动到操作者指定的位置。图中所示的五个坐标系就是需要进行命名的坐标系。
1.基坐标系{B}位于机械臂的基座上,它仅是赋予坐标系{0}另一个名称,固连在机器人的静止部位,所以有时称为连杆0;
2.工作台坐标系{S}的位置与目标相关。在图中,它位于机器人工作台的一个角上。在整个系统里,工作台坐标系{S}是一个通用坐标系,机器人所有的运动都是相对于它来执行的。有时称它为任务坐标系、世界坐标系或通用坐标系。工作台坐标系通常根据基坐标系确定,即SBT;
3.腕部坐标系{W}附于机械臂的末端连杆。这个固连在机器人末端连杆上的坐标系也可以称为坐标系{N}。大多数情况,腕部坐标系{W}的原点位于机械臂手腕上,它随着机械臂的末端连杆移动。它相对于基坐标系定义,即{W}=WBT=N0T;
4.工具坐标系{T}附于机器人所夹持工具的末端。当手部没有夹持工具时,工具坐标系{T}的原点位于机器人的指端之间。工具坐标系通常根据腕部坐标系来确定。在图中,工具坐标系的原点定义在机器人抓持工具的末端。
之后,我们来推导相邻连杆坐标系变换的一般形式:我们希望建立坐标系{i}相对于坐标系{i-1}的变换,这个变换是由四个连杆参数构成的函数。对任意给定的机器人,这个变换是只有一个变量的函数,另外三个参数是由机械系统决定的。
通过对每一连杆建立坐标系,我们把运动学问题分解成n个子问题。为了求解每个子问题,即求 ii-1T,我们将每个子问题再分解成四个次子问题。四个变换中的每一个变换都是仅有一个连杆参数的函数,直观意义上来说,四次变换代表了从一个坐标系到另一个坐标系依次所作的旋转、平移、再旋转、再平移的操作。
为了表达清楚,我们定义三个中间坐标系{P},{Q},{R}。坐标系{i-1}经旋转αi-1成坐标系{R},坐标系{R}经位移ai-1而成坐标系{Q},坐标系{Q}经转角θi而成坐标系{P},坐标系{P}经位移di而成坐标系{i}。如果想把坐标系{i}中定义的矢量转换成在坐标系{i-1}中的描述,这个变换矩阵可以写成
即
这里
考虑每一个变换矩阵,上式可以写成
由矩阵连乘计算出上式,得到 ii-1T的一般表达式
其中cθi,sθi分别表示cosθi, sinθi
我们对下图所示具有3个旋转关节的平面机械臂,先列出其DH参数,再将相应的参数带入上式:
(注意表中a和α下标为i-1)
然后将这些独立的变换联系起来,求出连杆n相对于连杆0的位置和姿态,就能直接建立运动学方程。把这些连杆变换矩阵连乘就能得到一个坐标系{N}关于坐标系{0}的变换矩阵:
变换矩阵N0T是关于n个关节变量的函数。如果能得到机器人关节位置传感器的值,机器人末端连杆在笛卡尔坐标系里的位置和姿态就能通过N0T计算出来。
按照上述方法求出三连杆平面机械臂的运动学方程:
因为篇幅问题,机器人逆运动学问题将在下一篇讨论。