采用蒙特卡洛法实现机器人工作空间仿真 附matlab源码
生活随笔
收集整理的這篇文章主要介紹了
采用蒙特卡洛法实现机器人工作空间仿真 附matlab源码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- List item
基于蒙特卡洛法的機器人工作空間仿真
matlab代碼
clear,clc,close all format compact alpha=[0,90,0,0,90,-90]; a=[0,0,-0.3,-0.276,0,0]; d=[0.1215,0.1225,-0.102,0.09,0.09,0.082]; offset=[0,-90,0,-90,0,0]; DH=[alpha',a',d',offset']; qlim=[-170,170;-84,130;-188,50;-170,170;-117,117;-360,360]; for i=1:length(alpha)L(i)=RevoluteMDH('d',d(i),'a',a(i),'alpha',deg2rad(alpha(i)),'offset', ...deg2rad(offset(i)),'qlim',deg2rad([qlim(i,1),qlim(i,2)])); end robot=SerialLink(L,'name','Arm6');base=transl(0,0,0)*rpy2tr(0,0,0,'deg'); robot.base=base; tool=transl(0,0,0)*rpy2tr(0,0,0,'deg','xyz'); %末端工具 robot.tool=tool; robot.display()xita = [0 0 0 0 0 0];for i = 1:10000for m = 1:6xita(m) = qlim(m,1) + (qlim(m,2)-qlim(m,1))*rand;endpx = d(6)*cos(xita(5))*sin(xita(1))...- d(6)*cos(xita(2)+xita(3)+xita(4))*cos(xita(1))*sin(xita(5))...+ cos(xita(1))*a(3)*cos(xita(2)+xita(3))...+ cos(xita(1))*a(2)*cos(xita(2))...+ d(4)*sin(xita(1))...+ d(5)*sin(xita(2)+xita(3)+xita(4))*cos(xita(1));py = sin(xita(1)) * (a(3) * cos(xita(2) + xita(3)) + a(2)*cos(xita(2))) ...-d(4)*cos(xita(1))...-d(6)*(cos(xita(1)*cos(xita(5)) + cos(xita(2)+xita(3)+xita(4))*sin(xita(1))*sin(xita(5)))) ...+d(5)*sin(xita(2)+xita(3)+xita(4))*sin(xita(1));pz = d(1)+a(3)+ sin(xita(2)+xita(3)) + a(2)*sin(xita(2))...-d(5)*cos(xita(2)+xita(3)+xita(4))...-d(6)*sin(xita(2)+xita(3)+xita(4))*sin(xita(5));%旋轉矩陣中移動部分向量p = [px py pz]';plot3(p(1),p(2),p(3),'r*')hold on end取100000個采樣得到的三維圖如下所示:
總結
以上是生活随笔為你收集整理的采用蒙特卡洛法实现机器人工作空间仿真 附matlab源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二章 Qt窗体应用------修改标题
- 下一篇: 体系解读罗克韦尔MES平台FTPC-跟我