机器人学笔记(2)正运动学
一般而言,机器人均采用仅有一个自由度的连杆,在极少数情况下,会采用自由度为n的连杆,在此时,可以将之视为n个自由度为1,长度为0的连杆相连接而成,所以以下针对自由度为1的连杆的讨论可以在不失一般性的前提下完成。首先从操作臂的基座开始,将其命名为连杆0,第一个可动连杆为连杆1,最后一个可动连杆为连杆n。为了使末端执行器顺利到达位置,机械臂一般需要最少6个关节(这是显然的,因为空间中的一个位置描述需要
机器人学笔记(2)正运动学
改进DH描述(MDH)
一般而言,机器人均采用仅有一个自由度的连杆,在极少数情况下,会采用自由度为n的连杆,在此时,可以将之视为n个自由度为1,长度为0的连杆相连接而成,所以以下针对自由度为1的连杆的讨论可以在不失一般性的前提下完成。
首先从操作臂的基座开始,将其命名为连杆0,第一个可动连杆为连杆1,最后一个可动连杆为连杆n。为了使末端执行器顺利到达位置,机械臂一般需要最少6个关节(这是显然的,因为空间中的一个位置描述需要六个参数)。
那么,如何确定一个连杆的运动情况呢?答:只需要确定连接该连杆的两个关节轴的相对位置关系就可以了!如图:
在三维空间之中,最一般的情况下,可以将两个轴视作两条异面直线,在空间中,确认两条异面直线之间的关系只需要两个参数(可以参考在平面中,确定两条直线之间的关系仅需要知道它们之间的夹角)。
但如果有多个连杆的话,仅仅知道每个轴的位置关系是不够的,还需要知道连杆之间的相对位置关系,我们定义两相邻连杆公共轴线方向间的距离为连杆偏距,连杆偏距为did_idi,用另一个参数表示连杆沿公共轴线的夹角,为θi\theta_iθi,如下图。
当然,对于初始连杆和末端连杆这样的特殊情况,如果关节1为转动关节,则θ1\theta_1θ1的零位可以任取,并且此时d1=0d_1=0d1=0,如果关节1是移动关节,d1d_1d1的零位可以任取,而θ1=0\theta_1=0θ1=0,这样的设置和关节n相同。
连杆附加坐标系的建立
为了描述连杆间相对的位置关系,需要在每个连杆上固定坐标系,我们将固连在连杆i上的坐标系称为坐标系i。
对于中间连杆,将坐标系i的ZZZ轴称为ZiZ_iZi,并且ZiZ_iZi轴与轴线iii方向重合。原点位于轴线iii和中垂线的交点处,XiX_iXi沿aia_iai方向有关节i指向关节i+1。
当ai=0a_i=0ai=0时,XiX_iXi垂直于ZiZ_iZi和Zi+1Z_{i+1}Zi+1所在的平面。按右手定则绕XiX_iXi轴的转角为αi\alpha_iαi,由于XiX_iXi轴的取向有两轴,所以转角αi\alpha_iαi的符号也可以去两种。
固连于机械臂基座上的坐标系为坐标系0,这个坐标系一般而言是不动的,一般可以把这个当成基座来研究,被称为参考坐标系。参考坐标系的坐标轴可以任意设定,通常将轴1的方向(只有连杆0,没有轴0)设为Z0^\hat{Z_0}Z0^,当关节变量1为0时,坐标系0与坐标系1相重合,按照这个规定的话,则恒有:a0=0,α0=0a_0=0,\alpha_0=0a0=0,α0=0,当关节1为移动关节时,有θ0=0\theta_0=0θ0=0,当关节1为转动关节时,有d0=0d_0=0d0=0。
对于转动关节n(即最后一个link),设定θn=0\theta_n=0θn=0。此时XN^\hat{X_N}XN^轴与XN−1^\hat{X_{N-1}}XN−1^轴方向一致,原点设置使得dn=0d_n=0dn=0,对于移动关节n,设定XN^\hat{X_N}XN^轴方向使之与XN−1^\hat{X_{N-1}}XN−1^轴方向一致。
这样设定坐标系的好处是:
操作臂正运动学
接下来,我们想要建立从连杆0到连杆n位置的推导,对于任意机器人系统来说,上述4个参数只有一个是变量,另外三个参数是由机械系统所决定的。通过为每一个连杆建立坐标系,我们将整个问题分解为n个子问题,即ii−1T^{i-1}_iTii−1T,首先,我们为连杆定义三个中间坐标系:P,Q,R。
如上图,R坐标系与坐标系i-1的区别在于旋转了αi−1\alpha_{i-1}αi−1,Q坐标系和R坐标系的区别在于位移ai−1a_{i-1}ai−1,Q坐标系与P坐标系的区别在于旋转了θi\theta_iθi,P坐标系与i坐标系的区别在于平移了did_idi。如果要把在坐标系i中定义的矢量转换为在坐标系i-1上定义的矢量,这样的变换矩阵可以写成:
i−1P=Ri−1TQRT⋅PQT⋅iPT⋅iP ^{i-1}P=^{i-1}_RT^R_QT\cdot^Q_PT\cdot^P_iT\cdot^{i}P i−1P=Ri−1TQRT⋅PQT⋅iPT⋅iP
即:
i−1P=ii−1T⋅iPii−1T=Ri−1TQRT⋅PQT⋅iPT ^{i-1}P=^{i-1}_iT\cdot^{i}P\\ ^{i-1}_iT=^{i-1}_RT^R_QT\cdot^Q_PT\cdot^P_iT i−1P=ii−1T⋅iPii−1T=Ri−1TQRT⋅PQT⋅iPT
考虑每个变换矩阵,有:
ii−1T=RX(αi−1)DX(ai−1)RZ(θi)Dz(di) ^{i-1}_iT=R_X(\alpha_{i-1})D_X(a_{i-1})R_Z(\theta_i)D_z(d_i) ii−1T=RX(αi−1)DX(ai−1)RZ(θi)Dz(di)
连乘后,有:
ii−1T=(cosθi−sinθi0ai−1sinθicosαi−1cosθicosαi−1−sinαi−1−sinαi−1disinθisinαi−1cosθisinαi−1cosαi−1cosαi−1di0001) ^{i-1}_iT=\begin{pmatrix} cos\theta_i&-sin\theta_i&0&a_{i-1}\\ sin\theta_icos\alpha_{i-1}&cos\theta_icos\alpha_{i-1}&-sin\alpha_{i-1}&-sin\alpha_{i-1}d_i\\ sin\theta_isin\alpha_{i-1}&cos\theta_isin\alpha_{i-1}&cos\alpha_{i-1}&cos\alpha_{i-1}d_i\\ 0&0&0&1 \end{pmatrix} ii−1T=
cosθisinθicosαi−1sinθisinαi−10−sinθicosθicosαi−1cosθisinαi−100−sinαi−1cosαi−10ai−1−sinαi−1dicosαi−1di1
经典DH描述(SDH)
机器人学导论这本书讲的是改进DH描述,然而接下来要使用的UR16e机械臂使用的是经典DH参数表。
标准DH参数和改进DH参数的区别主要在于坐标系的建立上,标准坐标系建立在link末端,ZiZ_iZi轴沿关节轴i+1的轴向,原点OiO_iOi是Zi−1Z_{i-1}Zi−1轴与ZiZ_iZi轴的交线或公垂线和关节轴ZiZ_iZi轴的交点。XiX_iXi轴沿Zi−1Z_{i-1}Zi−1轴的轴线方向ZiZ_iZi轴的公垂线方向,由关节轴i指向关节轴i+1。
由此得到的旋转矩阵为:
ii−1T=(cosθi−sinθicosαi0aicosθisinθicosθicosαi−sinαicosθiaisinθi0sinαicosαidi0001) ^{i-1}_iT=\begin{pmatrix} cos\theta_i&-sin\theta_icos\alpha_{i}&0&a_{i} cos\theta_{i}\\ sin\theta_i&cos\theta_icos\alpha_{i}&-sin\alpha_{i}cos\theta_i&a_isin\theta_{i}\\ 0&sin\alpha_{i}&cos\alpha_{i}&d_i\\ 0&0&0&1 \end{pmatrix} ii−1T=
cosθisinθi00−sinθicosαicosθicosαisinαi00−sinαicosθicosαi0aicosθiaisinθidi1

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)