matlab实现puma机器人工作空间
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab实现PUMA机器人的工作空间
PUMA机器人的工作空间主要有前3个关节决定,后3个关节决定姿态。程序编写好了,请看运行结果!
步长为20度
步长为10度
步长为5度
步长为3度
步长为2度
步长为5度时的XY平面
步长为5度时的XZ,YZ平面
编写时的界面,为运行
源代码如下:
function varargout = mypuma(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @mypuma_OpeningFcn, ...
'gui_OutputFcn', @mypuma_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
handles.output = hObject;
guidata(hObject, handles);
function varargout = mypuma_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
%步长为20度时的工作空间,2个for循环就搞定
function pushbutton1_Callback(hObject, eventdata, handles)
hold off;
for a=(-160:20:160)*pi/180
for b=(-225:20:45)*pi/180
x=431.8*cos(b)*cos(a)-149.09*sin(a);
y=431.8*cos(b)*sin(a)+cos(a)*149.09;
z=-431.8*sin(b);
plot3(x,y,z,'b.');
hold on;
grid on;
end
end
title('PUMA560 20deg 08S008103 ');
%步长10度时的工作空间,2个for循环就搞定
function pushbutton2_Callback(hObject, eventdata, handles) hold off;
a2=431.8;
d2=149.09;
for a=(-160:10:160)*pi/180
for b=(-225:10:45)*pi/180
x=431.8*cos(b)*cos(a)-149.09*sin(a);
y=431.8*cos(b)*sin(a)+cos(a)*149.09;
z=-431.8*sin(b);
plot3(x,y,z,'r.');
hold on;
grid on;
end
end
title('PUMA560 10deg 08S008103 ');
%步长为5度时的工作空间,2个for循环就搞定
function pushbutton3_Callback(hObject, eventdata, handles) hold off;
a2=431.8;
d2=149.09;
for a=(-160:5:160)*pi/180
for b=(-225:5:45)*pi/180
x=431.8*cos(b)*cos(a)-149.09*sin(a);
y=431.8*cos(b)*sin(a)+cos(a)*149.09;
z=-431.8*sin(b);
plot3(x,y,z,'g.');
hold on;
grid on;
end
end
title('PUMA560 5deg 08S008103 ');
%步长为3度时的工作空间,2个for循环就搞定
function pushbutton7_Callback(hObject, eventdata, handles) hold off;
for a=(-160:3:160)*pi/180
for b=(-225:3:45)*pi/180
x=431.8*cos(b)*cos(a)-149.09*sin(a);
y=431.8*cos(b)*sin(a)+cos(a)*149.09;
z=-431.8*sin(b);
plot3(x,y,z,'b.');
hold on;
grid on;
end
end
title('PUMA560 3deg 08S008103 ');
%步长为2度时的工作空间,2个for循环就搞定
function pushbutton8_Callback(hObject, eventdata, handles) hold off;
for a=(-160:2:160)*pi/180
for b=(-225:2:45)*pi/180
x=431.8*cos(b)*cos(a)-149.09*sin(a);
y=431.8*cos(b)*sin(a)+cos(a)*149.09;
z=-431.8*sin(b);
plot3(x,y,z,'b.');
hold on;
grid on;