以三连杆平面机械臂为例,来说明D-H矩阵和雅可比矩阵的求法,并且比较后置法和前置法的异同和运动学末端位姿的一致性和雅可比矩阵的一致性。
一、 后置法。
(1)、模型、坐标系及D-H参数表。
(2)、齐次矩阵。
如图建立个连杆的坐标系,D-H参数如下表所示:
连杆 | a | alpha | d | theta |
---|---|---|---|---|
1 | a1 | 0 | 0 | theta1 |
2 | a2 | 0 | 0 | theta2 |
3 | a3 | 0 | 0 | theta3 |
对应的齐次矩阵是:
Ti−1i(θi)=⎡⎣⎢⎢⎢cisi00−sici000010aiciaisi01⎤⎦⎥⎥⎥Tii−1(θi)=[ci−si0aicisici0aisi00100001]
(3)、运动学方程。
To3(q)=⎡⎣⎢⎢⎢c123s12300−s123c123000010a1c1+a1c12+a1c123a1s1+a1s12+a1s12301⎤⎦⎥⎥⎥T3o(q)=[c123−s1230a1c1+a1c12+a1c123s123c1230a1s1+a1s12+a1s12300100001]
(4)、雅可比矩阵。
To1(q)=⎡⎣⎢⎢⎢c1s100−s1c1000010a1c1a1s101⎤⎦⎥⎥⎥T1o(q)=[c1−s10a1c1s1c10a1s100100001]
T02(q)=⎡⎣⎢⎢⎢c12s1200−s12c12000010a1c1+a1c12a1s1+a1s1201⎤⎦⎥⎥⎥T20(q)=[c12−s120a1c1+a1c12s12c120a1s1+a1s1200100001]
根据以上方程,可以得到:
z0=z1=z2=z3=⎡⎣⎢001⎤⎦⎥z0=z1=z2=z3=[001]
p0=⎡⎣⎢000⎤⎦⎥p0=[000]
p1=⎡⎣⎢a1c1a1s10⎤⎦⎥p1=[a1c1a1s10]
p2=⎡⎣⎢a1c1+a1c12a1s1+a1s120⎤⎦⎥p2=[a1c1+a1c12a1s1+a1s120]
p3=⎡⎣⎢a1c1+a1c12+a1c123a1s1+a1s12+a1s1230⎤⎦⎥p3=[a1c1+a1c12+a1c123a1s1+a1s12+a1s1230]
根据旋转关节的雅可比计算公式,
JPi=[Zi−1∗(Pe−Pi−1)Zi−1]JPi=[Zi−1∗(Pe−Pi−1)Zi−1]
可以得到:
J=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢−s1(a2c2+a3c23)c1(a2c2+a3c23)0001−c1(a2s2+a3s23)−s1(a2s2+a3s23)a2c2+a3c23s1−c10−a3c1s23−a3s1s23a3c23s1−c10⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥J=[−s1(a2c2+a3c23)−c1(a2s2+a3s23)−a3c1s23c1(a2c2+a3c23)−s1(a2s2+a3s23)−a3s1s230a2c2+a3c23a3c230s1s10−c1−c1100]
二、 前置法。
(1)、模型、坐标系及D-H参数表。
(2)、齐次矩阵。
如图建立个连杆的坐标系,D-H参数如下表所示:
连杆 | a | alpha | d | theta |
---|---|---|---|---|
1 | 0 | 0 | 0 | theta1 |
2 | a1 | 0 | 0 | theta2 |
3 | a2 | 0 | 0 | theta3 |
4 | a3 | 0 | 0 |
对应的齐次矩阵是:
To1(θ1)=⎡⎣⎢⎢⎢c1s100−s1c10000100001⎤⎦⎥⎥⎥T1o(θ1)=[c1−s100s1c10000100001]
Ti−1i(θi)=⎡⎣⎢⎢⎢cisi00−sici000010ai−1ciai−1si01⎤⎦⎥⎥⎥i=2,3Tii−1(θi)=[ci−si0ai−1cisici0ai−1si00100001]i=2,3
T34(θi)=⎡⎣⎢⎢⎢100001000010a3001⎤⎦⎥⎥⎥T43(θi)=[100a3010000100001]
(3)、运动学方程。
To4(q)=⎡⎣⎢⎢⎢c123s12300−s123c123000010a1c1+a1c12+a1c123a1s1+a1s12+a1s12301⎤⎦⎥⎥⎥T4o(q)=[c123−s1230a1c1+a1c12+a1c123s123c1230a1s1+a1s12+a1s12300100001]
(4)、雅可比矩阵。
To1(θ1)=⎡⎣⎢⎢⎢c1s100−s1c10000100001⎤⎦⎥⎥⎥T1o(θ1)=[c1−s100s1c10000100001]
To2(q)=⎡⎣⎢⎢⎢c1s100−s1c1000010a1c1a1s101⎤⎦⎥⎥⎥T2o(q)=[c1−s10a1c1s1c10a1s100100001]
T03(q)=⎡⎣⎢⎢⎢c12s1200−s12c12000010a1c1+a1c12a1s1+a1s1201⎤⎦⎥⎥⎥T30(q)=[c12−s120a1c1+a1c12s12c120a1s1+a1s1200100001]
根据以上方程,可以得到:
z0=z1=z2=z3=z4=⎡⎣⎢001⎤⎦⎥z0=z1=z2=z3=z4=[001]
p0=p1=⎡⎣⎢000⎤⎦⎥p0=p1=[000]
p2=⎡⎣⎢a1c1a1s10⎤⎦⎥p2=[a1c1a1s10]
p3=⎡⎣⎢a1c1+a1c12a1s1+a1s120⎤⎦⎥p3=[a1c1+a1c12a1s1+a1s120]
p4=⎡⎣⎢a1c1+a1c12+a1c123a1s1+a1s12+a1s1230⎤⎦⎥p4=[a1c1+a1c12+a1c123a1s1+a1s12+a1s1230]
根据旋转关节的雅可比计算公式,
JPi=[Zi∗(Pe−Pi)Zi]JPi=[Zi∗(Pe−Pi)Zi]
可以得到:
J=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢−s1(a2c2+a3c23)c1(a2c2+a3c23)0001−c1(a2s2+a3s23)−s1(a2s2+a3s23)a2c2+a3c23s1−c10−a3c1s23−a3s1s23a3c23s1−c10⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥J=[−s1(a2c2+a3c23)−c1(a2s2+a3s23)−a3c1s23c1(a2c2+a3c23)−s1(a2s2+a3s23)−a3s1s230a2c2+a3c23a3c230s1s10−c1−c1100]
三、 比较说明。
通过比较可以发现,后置法和前置法计算的运动学方程和雅可比矩阵是相同的。
四、 参考文献
1) John J Craig, 机器人学导论(第三版),机械工业出版社,2006.6.
2) Saeed B.Niku 等,机器人学导论——分析、系统及应用,电子工业出版社,2004.1.
3) Bruno Siciliano 等,机器人学 建模、规划与控制,西安交通大学出版社,2013.11.