工作空间是机器人的一项重要性能指标,其表征了当机器人所有关节进行所有可能的运动时,其末端坐标系原点能够到达的位置集合和姿态集合。
一、计算机器人正运动学
求解工作空间的前提是正确计算机器人的正运动学,本文选取六自由度串联机器人,Stanford机器人,机器人坐标系与D-H参数表如下,这里不再赘述。建模过程可参考机器人学相关书籍。
二、求解工作空间
求解机器人工作空间的方法主要有图解法、解析法和数值法三种。
图解法是指根据机器人运动过程绘制机器人工作空间,该方法精确性较差且容易受到复杂结构的限制,主要在设计初期作方案对比时使用。解析法是根据机器人运动学约束关系,利用数学推导的方式得到机器人末端坐标系位姿关于各关节变量的数学解析表达式,这种方法虽然严谨,但是不具有直观性,并且对于关节数目较多的机器人求解过程较为繁琐。数值法是指按照特定的方法给定一定数目的关节变量值,运用运动学正解或逆解方程,求解这些关节变量对应的机器人末端坐标系位姿,典型的数值方法有网格法、Monte- Carlo法等。该方法虽然牺牲了一定的精度,但是计算效率高、易于图形化表达,是目前主要的工作空间求解方法。
本文选择Monte- Carlo法,其本质是随机遍历的方法。
求解工作空间时,需给定机器人的尺寸参数和各个关节的运动范围。
对于斯坦福机器人,给定初始参数为
d2=100
d6=80
d3=(10,30)
其余转动关节的角度范围均设定为-90度~+90度。
利用斯坦福机器人运动学正解求解工作空间,代码如下:
clear;
d2=100;
d6=80;
d3min=10;
d3max=30;
incr=0;
for Theta1=-pi:0.5:pi
for Theta2=-pi:0.5:pi
for d3=d3min:3:d3max
for Theta4=-pi:0.5:pi
for Theta5=-pi:0.5:0.8*pi
incr=incr+1;
PX(incr)=-sin(Theta1).*(d2+sin(Theta4).*sin(Theta5).*d6)+cos(Theta1).*(cos(Theta2).*cos(Theta4)*sin(Theta5)*d6+sin(Theta2)*(d3+cos(Theta5)*d6));
PY(incr)=cos(Theta1).*(d2+sin(Theta4).*sin(Theta5).*d6)+sin(Theta1).*(cos(Theta2).*cos(Theta4)*sin(Theta5)*d6+sin(Theta2)*(d3+cos(Theta5)*d6));
PZ(incr)=-cos(Theta4)*sin(Theta2)*sin(Theta5)*d6+cos(Theta2)*(d3+cos(Theta5)*d6);
end
end
end
end
end
plot3(PX,PY,PZ,'.b')
运行结果如下:
三维视图如下
X-Y平面视图如下:
X-Z平面示意图如下:
Y-Z平面示意图如下:
总结
以上就是利用MATLAB求解串联机器人工作空间的源程序,如果有疑问欢迎在评论区讨论提问~