基於蒙特卡洛方法的機器人工作空間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); %關節1限制
theta2=-20/180*pi+(130/180*pi+20/180*pi)*rand(N,1);   %關節2限制
theta3=-60/180*pi+(184/180*pi+60/180*pi)*rand(N,1);  %關節3限制
theta4=-350/180*pi+(350/180*pi+350/180*pi)*rand(N,1); %關節4限制
theta5=-118/180*pi+(118/180*pi+118/180*pi)*rand(N,1); %關節5限制
theta6=-170/180*pi+(530/180*pi+170/180*pi)*rand(N,1); %關節6限制
modmyt06 = {1,N};
for n=1:1:N
    modmyt06{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:N
    if( maxx < modmyt06{i}(1,4))
        maxx = modmyt06{i}(1,4);
    end
    if( maxy < modmyt06{i}(2,4))
        maxy = modmyt06{i}(2,4);
    end
    if( maxz < modmyt06{i}(3,4))
        maxz = modmyt06{i}(3,4);
    end
end

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章