生活随笔
收集整理的這篇文章主要介紹了
基于蒙特卡洛方法的机器人工作空间MATLAB仿真
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文機器人采用KUKA KR360型機器人,其具體參數可在庫卡官網找到。
本文的代碼部分基于matlab的robotic toolbox工具箱。
%---------------------------------以下為robotbox函數---------------------------%
% theta d a alpha
ML1=Link([0 1.045 0 0 ],'modified');
ML2=Link([0 0 0.500 pi/2 ],'modified');
ML3=Link([0 0 1.300 0 ],'modified');
ML4=Link([0 1.025 0.055 pi/2 ],'modified');
ML5=Link([0 0 0 -pi/2 ],'modified');
ML6=Link([0 1.290 0 pi/2 ],'modified');
modrobot=SerialLink([ML1 ML2 ML3 ML4 ML5 ML6],'name','KUKA360-2');
modrobot.plot([0 pi/2 0 0 0 -pi ]);
hold on;
N=30000; %隨機次數
theta1=-185/180*pi+(185/180*pi+185/180*pi)*rand(N,1); %關節(jié)1限制
theta2=-20/180*pi+(130/180*pi+20/180*pi)*rand(N,1); %關節(jié)2限制
theta3=-60/180*pi+(184/180*pi+60/180*pi)*rand(N,1); %關節(jié)3限制
theta4=-350/180*pi+(350/180*pi+350/180*pi)*rand(N,1); %關節(jié)4限制
theta5=-118/180*pi+(118/180*pi+118/180*pi)*rand(N,1); %關節(jié)5限制
theta6=-170/180*pi+(530/180*pi+170/180*pi)*rand(N,1); %關節(jié)6限制
modmyt06 = {1,N};
for n=1:1:Nmodmyt06{n}=modrobot.fkine([theta1(n),theta2(n),theta3(n),theta4(n),theta5(n),theta6(n)]);plot3(modmyt06{n}(1,4),modmyt06{n}(2,4),modmyt06{n}(3,4),'b.','MarkerSize',0.5);
end
maxx=2;maxy=2;maxz=2;
for i=1:1:Nif( maxx < modmyt06{i}(1,4))maxx = modmyt06{i}(1,4);endif( maxy < modmyt06{i}(2,4))maxy = modmyt06{i}(2,4);endif( maxz < modmyt06{i}(3,4))maxz = modmyt06{i}(3,4);end
end
總結
以上是生活随笔為你收集整理的基于蒙特卡洛方法的机器人工作空间MATLAB仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。