最近需要解算六軸機器人的解析解,算法已完成,這裏記錄一下.
一、機器人模型
PUMA560:
全稱:Programmable Universal Manipulation Arm
1978年由Unimation 機器人公司的Victor Scheinman研發.
本文使用的模型:
D-H矩陣:
二、機器人正運動學
機器人正運動學就是給定機器人各關節位置,計算機器人連桿上任意點的位姿.
位姿矩陣
機器人位置和姿態可以由一個方陣描述:
P=⎩⎪⎪⎨⎪⎪⎧nxnynz0oxoyoz0axayaz0pxpypz1⎭⎪⎪⎬⎪⎪⎫
其中,n,o,a爲末端姿態,p爲末端位置.
正運動學
T60=T10T21T32T43T54T65Tki爲k關節坐標系在i關節坐標系下的描述.
對於確定的機器人結構,如上圖中所示,每個關節在上一關節的描述是確定的,因此正運動學直接計算即可.
nxnynzoxoyozaxayazpxpypz式中:sis23=c1[c23(c4c5c6+s4s6)−s23s5c6]+s1(s4c5c6−c4s6)=s1[c23(c4c5c6+s4s6)−s23s5c6]−c1(s4c5c6−c4s6)=−s23c4c5s6−c23s5c6−s23s4s6=c1[c23(s4c6−c4c5s6)+s23s5s6]−s1(s4c5s6+c4c6)=s1[c23(s4c6−c4c5s6)+s23s5s6]+c1(s4c5s6+c4c6)=s23c4c5s6+c23s5s6−s23s4c6=c1(c23c4s5+s23c5)+s1s4s5=s1(c23c4s5+s23c5)−c1s4s5=−c4s5s23+c23c5=c1(a3c23+a2c2+a1−d4s23)=s1(a3c23+a2c2+a1−d4s23)=−d4c23−a3s23−a2s2+d1=sin(θi),ci=cos(θi),i=1,2,...,6=sin(θ2+θ3),c23=cos(θ2+θ3)
三、機器人逆運動學
求解關節一
θ1=atan2(py,px)−atan2(0,±px2+py2);
求解關節三
k1=cos(θ1)px+sin(θ1)py−a1k2=−pz+d1k=2a2k12+k22−(a22+a32+d42)θ31,32=atan2(a3,d4)−atan2(k,±a32+d42−k2)由上式解出的角度範圍是[−π,23π],且周期爲2π,因此,當θ>π/2時,取θ=θ−2π,否則,θ不變.
求解關節二
k1=(a1−cos(θ1)px−sin(θ1)py)(sin(θ1)py−a1+cos(θ1)px)−(d1−pz)2(d4−sin(θ3)a2)(sin(θ1)py−a1+cos(θ1)px)−(cos(θ3)a2+a3)(d1−pz)k2=(d1−pz)2−(sin(θ1)py−a1+cos(θ1)px)(a1−cos(θ1)px−sin(θ1)py)(d4−sin(θ3)a2)(d1−pz)−(cos(θ3)a2+a3)(a1−cos(θ1)px−sin(θ1)py)θ2=atan2(k1,k2)−θ3θ2的有效區間爲(2−3π,2π],且周期爲2π,因此,當θ>π/2時,取θ=θ−2π,當θ≤2−3π時,取θ=θ+2π.
求解關節四
k1=sin(θ1)ax−cos(θ1)ayk2=cos(θ1)cos(θ2+θ3)ax+sin(θ1)cos(θ2+θ3)ay−sin(θ2+θ3)az當sin(θ5)=0時,θ4=atan2(k1,k2)θ4的有效區間爲(−π,π],因此,當θ4>0時,取θ42=θ4−π,否則,取θ42=θ4+π.
需要從兩個解中篩選一個值,通過判斷與上一插補值的絕對值大小,選取絕對值小的作爲真實解.
求解關節五
k1=(sin(θ4)sin(θ1)+cos(θ1)cos(θ4)cos(θ2+θ3))ax+(cos(θ4)sin(θ1)cos(θ2+θ3))ay−sin(θ2+θ3)cos(θ4)azk2=−sin(θ2+θ3)cos(θ1)ax−sin(θ2+θ3)sin(θ1)ay−cos(θ2+θ3)azθ5=atan2(k1,−k2)
求解關節六
k1=(sin(θ4)sin(θ1)cos(θ5)−cos(θ1)sin(θ5)sin(θ2+θ3)+cos(θ1)cos(θ4)cos(θ2+θ3)cos(θ5))ox−(cos(θ1)sin(θ4)cos(θ5)+sin(θ1)sin(θ5)sin(θ2+θ3)−sin(θ1)cos(θ4)cos(θ5)cos(θ2+θ3))oy+(sin(θ2)sin(θ3)sin(θ5)−cos(θ2)cos(θ3)sin(θ5)−cos(θ4)cos(θ5)sin(θ2+θ3))ozk2=(cos(θ1)sin(θ4)cos(θ2+θ3)−cos(θ4)sin(θ1))ox+(cos(θ1)cos(θ4)+sin(θ1)sin(θ4)cos(θ2+θ3))oy−sin(θ2+θ3)sin(θ4)ozθ6=atan2(−k1,k2)θ6周期爲2π,當θ6>0時,取θ62=θ6−2π,否則,取θ62=θ6+2π.
以上過程共解出8組解.