Professional Documents
Culture Documents
Cinemtica Inversa
El objetivo del problema cinemtico inverso consiste en encontrar los valores que
deben adoptar las coordenadas articulares del robot q = (q1, q2,qn), para que su
extremo se posicione y oriente segn una determinada localizacin espacial.
Datos de salida:
ngulos de cada articulacin necesarios para obtener esa posicin.
N
1
2
3
4
5
di
175
0
0
0
50
90
0
0
90
0
a
0
200
150
0
0
1
2
3
4
5
Restricciones.Longitud mxima en
x=+350; y=+-350
Altura mxima
z=576
Procedimiento
Se procedi a dar las ganancias a las articulaciones donde se coloc para cada
articulacin una constante, ganancia, velocidad, aceleracin todo esto se lleva a
un actuador y lo llevamos a la articulacin. Esto se repite par cada articulacin.
Para el tablero de control se utilizo el guide de matlab.
se procedi a elaborar el tablero de control parte por parte, para colocar cada
componente (slider, edit., tex, pussbuttoon, popupmenu), finalmente ingresamos al
callbak de cada componente para ver el cdigo.
Cdigo.Para slider 1
q1=get(handles.slider1,'Value');
set(handles.eq1,'String',fix(q1));
Q1=str2double(get(handles.eq1,'String'));
q2=get(handles.slider2,'Value');
set(handles.eq2,'String',fix(q2));
Q2=str2double(get(handles.eq2,'String'));
q3=get(handles.slider3,'Value');
set(handles.eq3,'String',fix(q3));
Q3=str2double(get(handles.eq3,'String'));
q4=get(handles.slider4,'Value');
set(handles.eq4,'String',fix(q4));
Q4=str2double(get(handles.eq4,'String'));
q5=get(handles.slider5,'Value');
set(handles.eq5,'String',fix(q5));
Q5=str2double(get(handles.eq5,'String'));
set_param('ensamblaje/Gain','Gain',num2str(Q1));
set_param('ensamblaje/Gain1','Gain',num2str(Q2));
set_param('ensamblaje/Gain2','Gain',num2str(Q3));
set_param('ensamblaje/Gain3','Gain',num2str(Q4));
set_param('ensamblaje/Gain4','Gain',num2str(Q5));
L1=175;L2=200;L3=150;L4=51;
A11=cosd(Q1)*cosd(Q2+Q3+Q4)*cosd(Q5)+sind(Q1)*sind(Q5);
A12=-cosd(Q1)*cosd(Q2+Q3+Q4)*sind(Q5)+sind(Q1)*cosd(Q5);
A13=cosd(Q1)*sind(Q2+Q3+Q4);
px=cosd(Q1)*(L4*sind(Q2+Q3+Q4)+L3*cosd(Q2+Q3)+L2*cosd(Q2))
A21=sind(Q1)*cosd(Q2+Q3+Q4)*cosd(Q5)+cosd(Q1)*sind(Q5);
A22=-sind(Q1)*cosd(Q2+Q3+Q4)*sind(Q5)-cosd(Q1)*cos(Q5);
A23=sind(Q1)*sind(Q2+Q3+Q4);
py=sind(Q1)*(L4*sind(Q2+Q3+Q4)+L3*cosd(Q2+Q3)+L2*cosd(Q2));
A31=sind(Q2+Q3+Q4)*cosd(Q5);
A32=-sind(Q2+Q3+Q4)*sind(Q5);
A33=-cosd(Q2+Q3+Q4);
pz=L1-L4*cosd(Q2+Q3+Q4)+L3*sind(Q2+Q3)+L2*sind(Q2);
set(handles.a11,'String',A11);
set(handles.a12,'String',A12);
set(handles.a13,'String',A13);
set(handles.a21,'String',A21);
set(handles.a22,'String',A22);
set(handles.a23,'String',A23);
set(handles.a31,'String',A31);
set(handles.a32,'String',A32);
set(handles.a33,'String',A33);
set(handles.PX,'String',px);
set(handles.PY,'String',py);
set(handles.PZ,'String',pz);
px=str2double(get(handles.qc1,'String'));
py=str2double(get(handles.qc2,'String'));
pz=str2double(get(handles.qc3,'String'));
cab=str2double(get(handles.tt1,'String'));
set(handles.a21,'String',A21);
set(handles.a22,'String',A22);
set(handles.a23,'String',A23);
set(handles.a31,'String',A31);
set(handles.a32,'String',A32);
set(handles.a33,'String',A33);
set(handles.PX,'String',px);
set(handles.PY,'String',py);
set(handles.PZ,'String',pz);
px=str2double(get(handles.qc1,'String'));
py=str2double(get(handles.qc2,'String'));
pz=str2double(get(handles.qc3,'String'));
INFORME
SIMULACION DE BRAZO ROBOTICO DE
5 GRADOS DE LIBERTAD
COCHABAMBA-BOLIVIA