2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MATLAB Robotics Toolbox机器人工作空间显示

MATLAB Robotics Toolbox机器人工作空间显示

时间:2022-03-13 09:58:01

相关推荐

MATLAB Robotics Toolbox机器人工作空间显示

今天想用matlab绘制机器人的工作空间,找了半天没找到对应的函数,只能用plot()一步一步画了

这个是机器人原型

下面是matlab代码

T(1) = Link([0 0 10 0]);T(2) = Link([0 0 5 0]);T(3) = Link([0 0 0 0]);%原本是两轴机器人,但是为了显示末端,在加一个轴T(1).qlim = [0 pi];T(2).qlim = [-pi/2 pi];ws = SerialLink(T,'name','ws');n=1;for i = 0:0.1:pifor j = -pi/2:0.1:pi%遍历所有可能的角度%同一个机器人的多个图像不能同时显示,这里需要克隆多个名字不同的机器人clone = SerialLink(T,'name',strcat('clone',num2str(n)));%在同一个窗口,绘制多个机器人clone.plot([i j 0],'workspace',[-16 16 -16 16 0 2],'view','top','noname','noshading','nowrist','noshadow','jointdiam',2,'linkcolor','g');n = n+1;hold onendend

其中

‘workspace’,[xmn xmx ymn ymx zmn zmx] 矩形环境空间,根据实际情况选择参数

‘view’,‘top’ 初始观察方向,

‘noname’ 不显示机器人名字

‘noshading’ 不用光源,节约资源

‘nowrist’ 不显示坐标系

‘noshadow’ 不显示阴影

‘jointdiam’,2 关节高度

‘linkcolor’,‘g’ 关节轴颜色,绿色

结果展示

与答案对比

最后总结

这种方法只适用于简单的机器人,对于多关节的机器人工作空间的绘制会十分缓慢,建议使用robodk

而且我的代码克隆了很多机器人,导致后面越画越慢(不过之后我使用delete(clone)好像也没啥用)

----------------------------------------------------------以上是分割线--------------------------------------------------------

现在看看之前的代码好蠢,其实可以用正运动学直接计算出末端坐标,然后用scatter3(x,y,z,’.’)描点就好了,下面是代码

clearT(1) = Link([0 0 10 0]);T(2) = Link([0 0 5 0]);T(1).qlim = [0 pi];T(2).qlim = [-pi/2 pi];ws = SerialLink(T,'name','ws');for i = 0:0.1:pifor j = -pi/2:0.1:piT = ws.fkine([i j]);qn = T*[0;0;0;1];ws.plot([i j]);plot3(qn(1),qn(2),qn(3),'.');hold onendend

这样速度很快,也可以清晰地显示机器人的运动过程。

下面是结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。