📄 simuladorcs.m
字号:
end
function editteta6_Callback(hObject, eventdata, handles)
% hObject handle to editteta6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of editteta6 as text
% str2double(get(hObject,'String')) returns contents of editteta6 as a double
Teta6 = str2num(get(handles.editteta6,'String'));
if(Teta6<-180 || Teta6>180)
errordlg('耼gulo Invalido:Digite um valor entre -180?e 180?','Erro','on')
set(handles.editteta6,'String',' '); %limpar a caixa
end
% --- Executes during object creation, after setting all properties.
function editteta6_CreateFcn(hObject, eventdata, handles)
% hObject handle to editteta6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white fundoaxes on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%INICIAR%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --- Executes on button press in pbiniciar.
function pbiniciar_Callback(hObject, eventdata, handles)
% hObject handle to pbiniciar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles.output = hObject;
global teta1 d2 d3 d4 l1 teta4 teta5 teta6 T06
global flag_cinematicainversa flag_cinematicadirecta flag_joystick flag_joyInver
global ai BP d flag_joy
flag_joy=0;
if flag_joystick==1
Mov_joystick(hObject, eventdata,handles); %Matlab 7.3
%% SimuladorCs('Mov_joystick',hObject, eventdata,handles); %%Matlab 7.1
set(handles.editteta1,'String',get(handles.textteta1,'String'));
set(handles.editteta4,'String',get(handles.textteta4,'String'));
set(handles.editteta5,'String',get(handles.textteta5,'String'));
set(handles.editteta6,'String',get(handles.textteta6,'String'));
set(handles.editd2,'String',get(handles.textd2,'String'));
set(handles.editd3,'String',get(handles.textd3,'String'));
set(handles.editPX,'String',get(handles.textpx,'String'));
set(handles.editPY,'String',get(handles.textpy,'String'));
set(handles.editPZ,'String',get(handles.textpz,'String'));
set(handles.edittetaf,'String',get(handles.texttetaf,'String'));
set(handles.edittetap,'String',get(handles.texttetap,'String'));
return;
end
if flag_joyInver==1
Joy_Inverso(hObject, eventdata,handles);%%Matlab 7.3
%SimuladorCs('Joy_Inverso',hObject, eventdata,handles); %%Matlab 7.1
set(handles.editteta1,'String',get(handles.textteta1,'String'));
set(handles.editteta4,'String',get(handles.textteta4,'String'));
set(handles.editteta5,'String',get(handles.textteta5,'String'));
set(handles.editteta6,'String',get(handles.textteta6,'String'));
set(handles.editd2,'String',get(handles.textd2,'String'));
set(handles.editd3,'String',get(handles.textd3,'String'));
set(handles.editPX,'String',get(handles.textpx,'String'));
set(handles.editPY,'String',get(handles.textpy,'String'));
set(handles.editPZ,'String',get(handles.textpz,'String'));
set(handles.edittetaf,'String',get(handles.texttetaf,'String'));
set(handles.edittetap,'String',get(handles.texttetap,'String'));
return;
end
if flag_cinematicadirecta==1
teta1deg=str2num(get(handles.editteta1,'String'));
d2=str2num(get(handles.editd2,'String'));
d3=str2num(get(handles.editd3,'String'));
teta4deg=str2num(get(handles.editteta4,'String'));
teta5deg=str2num(get(handles.editteta5,'String'));
teta6deg=str2num(get(handles.editteta6,'String'));
teta1=(teta1deg*pi)/180;
teta4=(teta4deg*pi)/180;
teta5=(teta5deg*pi)/180;
teta6=(teta6deg*pi)/180;
set(handles.textd2,'String',get(handles.editd2,'String'));
set(handles.textd3,'String',get(handles.editd3,'String'));
set(handles.textteta1,'String',get(handles.editteta1,'String'));
set(handles.textteta4,'String',get(handles.editteta4,'String'));
set(handles.textteta5,'String',get(handles.editteta5,'String'));
set(handles.textteta6,'String',get(handles.editteta6,'String'));
Desenha_robo(hObject, eventdata,handles); %Matlab 7.3
%SimuladorCs('Desenha_robo',hObject, eventdata,handles); %Matlab 7.1
%% Determinar PX,Py e Pz
Px=T06(1,4);
Py=T06(2,4);
Pz=T06(3,4);
tetaf=teta6+teta4;
tetafdeg=tetaf*180/pi;
set(handles.textpx,'String',num2str(Px));
set(handles.textpy,'String',num2str(Py));
set(handles.textpz,'String',num2str(Pz));
set(handles.texttetaf,'String',num2str(tetafdeg));
set(handles.texttetap,'String',get(handles.editteta5,'String'));
set(handles.editteta1,'String',get(handles.textteta1,'String'));
set(handles.editteta4,'String',get(handles.textteta4,'String'));
set(handles.editteta5,'String',get(handles.textteta5,'String'));
set(handles.editteta6,'String',get(handles.textteta6,'String'));
set(handles.editd2,'String',get(handles.textd2,'String'));
set(handles.editd3,'String',get(handles.textd3,'String'));
set(handles.editPX,'String',get(handles.textpx,'String'));
set(handles.editPY,'String',get(handles.textpy,'String'));
set(handles.editPZ,'String',get(handles.textpz,'String'));
set(handles.edittetaf,'String',get(handles.texttetaf,'String'));
set(handles.edittetap,'String',get(handles.texttetap,'String'));
return;
end
if flag_cinematicainversa==1
Px=str2num(get(handles.editPX,'String'));
Py=str2num(get(handles.editPY,'String'));
Pz=str2num(get(handles.editPZ,'String'));
if(sqrt((Px^2)+(Py^2))<112.75 || sqrt((Px^2)+(Py^2))>282) %est?fora do volume de trabalho
errordlg('Posi珲es Px e Py fora do volume de trabalho:Digite novamente','Erro','on')
set(handles.editPX,'String',' '); %limpar a caixa
set(handles.editPY,'String',' '); %limpar a caixa
end
if(sqrt((Px^2)+(Py^2))>=112.75 && sqrt((Px^2)+(Py^2))<=282) %est?dentro do volume de trabalho
tetaf=str2num(get(handles.edittetaf,'String'));
tetap=str2num(get(handles.edittetap,'String'));
teta1=atan2(Py,Px)+atan2(sqrt(Px^2+Py^2-l1^2),l1);
d2=Pz;
d3=sin(teta1)*Px-cos(teta1)*Py-d4;
teta4=atan2(1,0);
teta5=(tetap*pi)/180;
tetaf=(tetaf*pi)/180;
teta6=tetaf-teta4;
teta1deg=teta1*180/pi;
teta4deg=teta4*180/pi;
teta5deg=teta5*180/pi;
teta6deg=teta6*180/pi;
teta1str=num2str(teta1deg);
teta4str=num2str(teta4deg);
teta5str=num2str(teta5deg);
teta6str=num2str(teta6deg);
d2str=num2str(d2);
d3str=num2str(d3);
set(handles.textd2,'String',d2str);
set(handles.textd3,'String',d3str);
set(handles.textteta1,'String',teta1str);
set(handles.textteta4,'String',teta4str);
set(handles.textteta5,'String',teta5str);
set(handles.textteta6,'String',teta6str);
set(handles.textpx,'String',get(handles.editPX,'String'));
set(handles.textpy,'String',get(handles.editPY,'String'));
set(handles.textpz,'String',get(handles.editPZ,'String'));
set(handles.texttetaf,'String',get(handles.edittetaf,'String'));
set(handles.texttetap,'String',get(handles.edittetap,'String'));
Desenha_robo(hObject, eventdata,handles); %Matlab 7.3
%SimuladorCs('Desenha_robo',hObject, eventdata,handles); %Matlab 7.1
set(handles.editteta1,'String',get(handles.textteta1,'String'));
set(handles.editteta4,'String',get(handles.textteta4,'String'));
set(handles.editteta5,'String',get(handles.textteta5,'String'));
set(handles.editteta6,'String',get(handles.textteta6,'String'));
set(handles.editd2,'String',get(handles.textd2,'String'));
set(handles.editd3,'String',get(handles.textd3,'String'));
set(handles.editPX,'String',get(handles.textpx,'String'));
set(handles.editPY,'String',get(handles.textpy,'String'));
set(handles.editPZ,'String',get(handles.textpz,'String'));
set(handles.edittetaf,'String',get(handles.texttetaf,'String'));
set(handles.edittetap,'String',get(handles.texttetap,'String'));
end
end
% --- Executes on button press in rbcinemdirect.
function rbcinemdirect_Callback(hObject, eventdata, handles)
% hObject handle to rbcinemdirect (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of rbcinemdirect
global flag_cinematicainversa flag_cinematicadirecta flag_joystick flag_joy flag_joyInver
flag_cinematicadirecta=1;%%%assim sei q este radio buttom est?selecionado
flag_cinematicainversa=0;
flag_joystick=0;
flag_joy=0;
flag_joyInver=0;
set(handles.editteta1,'Enable','on');
set(handles.editteta4,'Enable','on');
set(handles.editteta5,'Enable','on');
set(handles.editteta6,'Enable','on');
set(handles.editd2,'Enable','on');
set(handles.editd3,'Enable','on');
set(handles.editPX,'Enable','off');
set(handles.editPY,'Enable','off');
set(handles.editPZ,'Enable','off');
set(handles.edittetaf,'Enable','off');
set(handles.edittetap,'Enable','off');
% --- Executes on button press in rbjoyistick.
function rbjoyistick_Callback(hObject, eventdata, handles)
% hObject handle to rbjoyistick (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of rbjoyistick
global flag_cinematicainversa flag_cinematicadirecta flag_joystick flag_joyInver
flag_joystick=1;%%%assim sei q este radio buttom est?selecionado
flag_cinematicainversa=0;
flag_cinematicadirecta=0;
flag_joyInver=0;
set(handles.editteta1,'Enable','off');
set(handles.editteta4,'Enable','off');
set(handles.editteta5,'Enable','off');
set(handles.editteta6,'Enable','off');
set(handles.editd2,'Enable','off');
set(handles.editd3,'Enable','off');
set(handles.editPX,'Enable','off');
set(handles.editPY,'Enable','off');
set(handles.editPZ,'Enable','off');
set(handles.edittetaf,'Enable','off');
set(handles.edittetap,'Enable','off');
% --- Executes on button press in rbjoyInverso.
function rbjoyInverso_Callback(hObject, eventdata, handles)
% hObject handle to rbjoyInverso (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of rbjoyInverso
global flag_cinematicainversa flag_cinematicadirecta flag_joystick flag_joy flag_joyInver
flag_cinematicainversa=0; %%%assim sei q este radio buttom est?selecionado
flag_cinematicadirecta=0;
flag_joystick=0;
flag_joy=0;
flag_joyInver=1;
set(handles.editteta1,'Enable','off');
set(handles.editteta4,'Enable','off');
set(handles.editteta5,'Enable','off');
set(handles.editteta6,'Enable','off');
set(handles.editd2,'Enable','off');
set(handles.editd3,'Enable','off');
set(handles.editPX,'Enable','off');
set(handles.editPY,'Enable','off');
set(handles.editPZ,'Enable','off');
set(handles.edittetaf,'Enable','off');
set(handles.edittetap,'Enable','off');
% -------------------------------------
% --- Executes on button press in rbcineminv.
function rbcineminv_Callback(hObject, eventdata, handles)
% hObject handle to rbcineminv (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of rbcineminv
global flag_cinematicainversa flag_cinematicadirecta flag_joystick flag_joy flag_joyInver
flag_cinematicainversa=1; %%%assim sei q este radio buttom est?selecionado
flag_cinematicadirecta=0;
flag_joystick=0;
flag_joy=0;
flag_joyInver=0;
set(handles.editteta1,'Enable','off');
set(handles.editteta4,'Enable','off');
set(handles.editteta5,'Enable','off');
set(handles.editteta6,'Enable','off');
set(handles.editd2,'Enable','off');
set(handles.editd3,'Enable','off');
set(handles.editPX,'Enable','on');
set(handles.editPY,'Enable','on');
set(handles.editPZ,'Enable','on');
set(handles.edittetaf,'Enable','on');
set(handles.edittetap,'Enable','on');
% --------------------------------------------------------------------
function ficheiro_Callback(hObject, eventdata, handles)
% hObject handle to ficheiro (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --------------------------------------------------------------------
function imprimir_Callback(hObject, eventdata, handles)
% hObject handle to imprimir (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -