Está en la página 1de 13

Laboratorio1 Sistema De Control 3 Morfología

de Robots.
Rafael Castañeda Duque, Ferney Alexander Nava Trujillo, Jonatan Bareño Nusñez
Universidad Pedagógica Nacional - Colombia

dte_rcatanedad104@pedagogica.edu.co, Ferneyalexander_12@hotmail.com,
dte_abareño726@pedagogica.edu.co
Resumen- En este informe se Ocurre cuando un eslabón robot. Está provisto de un
dará una introducción sobre gira en torno a su propio eje, actuador que convierte
la morfología de los robots, sea el eje que sea, al ser solo comandos de software en
así también sobre la rotación uno, proporciona un grado movimientos físicos. Estos
y traslación de sus eslabones,
teniendo en cuenta la de libertad. Articulación pueden ser de locomoción
articulación rotativa, prismática: Ocurre (Modifica la ubicación del
prismática y eslabón con cuando un eslabón se desliza robot respecto al ambiente) o
efector según simbología, al sobre un eje, proporciona un de manipulación (desplaza
igual se tendrán en cuenta las grado de libertad. objetos del entorno).
transformaciones Articulación cilíndrica:
homogéneas las cuales Se Combina los movimientos de
realizan a través del Software las articulaciones
MATLAB, en donde se
rotacionales y prismática, es
simularán los movimientos y
cálculos de cada uno de los decir gira sobre su propio eje
ítems propuestos. y se desliza sobre un eje,
proporcionando así dos
Astrab grados de libertad.
Summary: This report Articulación esférica o
gives an introduction on rótula: Cuando un sólido se
the morphology of robots, Eslabones: Un manipulador mueve acopladamente con
as well as the rotation and robótico consta de una otro compartiendo un punto
translation of their links, secuencia de elementos de común, pero sin restringir
taking into account the estructurales rígidos, de ninguna manera la Las matrices de
rotating, prismatic denominados enlaces o posibilidad de orientación de transformación
articulation and link with eslabones, conectados entre un sólido respecto al otro, de homogénea: se utilizan para
the symbolic factor, as sí mediante juntas o modo que esta articulación representar la posición y
with homogeneous articulaciones, que permiten proporciona tres grados de orientación de un sistema
transformations. which are el movimiento relativo de libertad. girado y trasladado con
made through the cada dos eslabones Articulación Planar: respecto a un sistema fijo,
MATLAB software, where consecutivos. Consiste en el movimiento transformar un vector
the movements and Eslabón unitario: Es aquel de desplazamiento en un expresado en coordenadas
calculations of each of the que solo cuenta con un punto plano, exigiendo dos grados movibles y su representación
proposed items are de articulación. de libertad. en un sistema fijo, rotar y
simulated. Articulación de Tornillo: trasladar un vector con
Realiza una ejecución de respecto a un sistema fijo,
Palabras Clave- Robots, movimiento similar a la rotar y trasladar un vector
Eslabones, articulación, tipos articulación prismática, solo con respecto a un sistema
de articulación, efector final que, en lugar de deslizarse,
y matriz de transformación. fijo; esta matriz de
se utiliza el mecanismo del transformación tiene
tornillo para desplazarse a lo dimensiones 4x4, esta matriz
I. Marco teórico largo del eje, proporciona de
Robots: Un robot es una está conformada por cuatro
igual modo un grado de matrices que corresponden a
entidad virtual o mecánica libertad.
artificial. En la práctica, esto una de rotación, una de
es por lo general un sistema traslación, una de
electromecánico que perspectiva, y una de escala.
normalmente es conducido El control integral se utiliza
por un programa de una para obviar el inconveniente
computadora o por un del offset (desviación
circuito eléctrico. Este Figura1. ESLABONES permanente de la variable
sistema electromecánico, por Y con respecto al punto de
su apariencia o sus consigna) de la banda
ARTICULACIONES. proporcional.
movimientos, ofrece la
sensación de tener un La fórmula de la integral
articulaciones: Un robot está dada por:
propósito propio. La
convencional es una
independencia creada en sus
secuencia de articulaciones,
movimientos hace que sus
formando una cadena
acciones sean la razón de un
cinemática, Se conoce cinco
estudio razonable y profundo
tipos de articulaciones
en el área de la ciencia y Figura 2. TIPOS DE
básicas: 1. Rotacional 1 GL
tecnología.
2. Prismática 1 GL 3. ARTICULACIONES. FIGURA 4. MATRIZ DE
Cilíndrica 2 GL 4. Planar 2 TRANSFORMACION.
GL 5. Esférica (rótula) 3 GL. Efector final: Es un
Articulación Rotacional: dispositivo que produce
Articulación rotacional: efectos bajo el control del Introducción
Este documento presenta visualice en un homogénea final en ARTICULACION
el primer laboratorio de la plano x-y la un sistema OUVW ROTATIVA.
materia Sistemas de control rotación y al que se le realiza
3 de la Universidad desplazamiento de una rotación de 13°
Pedagógica Nacional, que un sistema de en el eje z, luego se
tiene el fin de aprender un referencia {B} realice una
poco más al entendimiento respecto a otro traslación de (3,6,-
de los Robots, tanto en su sistema de 10) y finalmente se
funcionamiento físico, referencia fijo {A}. realiza una rotación
entendiendo la partes El sistema {B} de 46° en el eje x
fundamentales de un robot también podrá rotar con respecto a un
como son sus ejes, eslabones y desplazarse sistema OXYZ.
y articulaciones, ya que esta, simultáneamente 9. ¿Qué diferentes hay
es la teoría fundamental respecto a {A}. El entre posmultiplicar
para poder hacer usuario podrá y premultiplicar
programaciones las cuales manipular tales matrices de
permitan el movimiento localizaciones de transformación
funcional de un robot {B} mediante el uso homogénea?
dependiendo del problema a de sliders 10.
solucionar, o de los 3. Cree una interfaz
requerimientos de la gráfica en donde II. PROCEDIMIENTO Y CODIGO:
empresa, o donde lo ingrese tres datos de RESULTADOS function varargout
vayamos a utilizar. posiciones Px,Py,Pz =
Para esta práctica se (3 Edit Text) y 3 PASO 1: laboratorio1(vararg
concretarán fundamentos sliders para ingresar ARTICULACION in)
importantes los cuales nos el ángulo de PRISMATICA.
permitirán entrar en el rotación (Rotación gui_Singleton = 1;
ámbito de los robots en x,y y z) y un gui_State =
autómatas, también se axes para visualizar struct('gui_Name',
desarrollarán simulaciones el movimiento. Los mfilename, ...
que permiten entender desde datos ingresados de
la programación en posiciones 'gui_Singleton',
MATLAB en corresponden a una gui_Singleton, ...
funcionamiento de los traslación. El
eslabones y las movimiento que 'gui_OpeningFcn',
articulaciones. debe generarse es @laboratorio1_Openi
Rotación en x, ngFcn, ...
I. Objetivos. Traslación,
1. Con la herramienta Rotación en y, 'gui_OutputFcn',
Guide de Matlab Rotación en Z. @laboratorio1_Outpu
cree una interfaz Cada Slider debe
tFcn, ...
gráfica que permitir ingresar un
contenga lo ángulo entre 0° y
'gui_LayoutFcn',
siguiente: Un texto 360°.
estático que tenga 4. ¿Qué es una [] , ...
como título articulación, qué
“Morfología de un tipos de 'gui_Callback',
Robot Industrial”. articulaciones []);
b. Tres botones cada existen y qué if nargin &&
uno al ser oprimido diferencia hay entre ARTICULACION ischar(varargin{1})
mostrará un dibujo ellas? ESLABON
en un axes y su 5. ¿Qué es un eslabón EFECTOR. gui_State.gui_Callb
respectiva y qué tipos de ack =
definición (en un eslabones existen? str2func(varargin{1
texto estático). Las 6. . ¿Qué es el efector });
gráficas y las final? end
definiciones deben 7. Una matriz de
corresponder a: transformación if nargout
Articulación homogénea está
rotativa, compuesta por [varargout{1:nargou
Articulación cuatro matrices, t}] =
prismática y ¿cuáles son estas gui_mainfcn(gui_Sta
Eslabón con efector. matrices? te, varargin{:});
2. Cree una interfaz de 8. Calcule la matriz else
usuario en donde se de transformación
observará en la patch([0 0 1 1],[0 A=[a(1) a(2) a(2)
gui_mainfcn(gui_Sta gráfica 0 0 0],[0 1 1 a(1) a(1) a(1) a(1)
te, varargin{:}); zlim(p,'manual'); 0],'r') a(2) a(2) a(1)];
end zlim(p,[-2 2]) patch([0 0 0 0],[0 B=[b(1) b(1) b(2)
%Define el límite 1 1 0],[0 0 1 b(2) b(1) b(1) b(2)
del eje z que se 1],'b') b(2) b(1) b(1)];
function observará en la patch([1 1 1 1],[0 C=[c(1) c(1) c(1)
laboratorio1_Openin gráfica 1 1 0],[0 0 1 c(1) c(1) c(2) c(2)
gFcn(hObject, axis vis3d 1],'b') c(2) c(2) c(2)];
eventdata, handles, grid on patch([0 1 1 0],[0 plot3(A,B,C)
varargin) t = 0 1 1],[0 0 0
linspace(8,8,8); 0],'g') A1=[a(1) a(1) a(2)
handles.output = r=sqrt(t); patch([0 0 1 1],[1 a(2) a(1) a(1) a(1)
hObject; cylinder(r); 1 1 1],[0 1 1 a(2) a(2) a(1)];
xlabel('Eje 0],'r') B1=[b(1) b(1) b(1)
guidata(hObject, x','FontSize',13) b(1) b(1) b(2) b(2)
handles); ylabel('Eje b(2) b(2) b(2)];
y','FontSize',13) xlabel('Eje C1=[c(1) c(2) c(2)
zlabel('Eje x','FontSize',13) c(1) c(1) c(1) c(2)
function varargout z','FontSize',13) ylabel('Eje c(2) c(1) c(1)];
= rotate3d y','FontSize',13) plot3(A1,B1,C1)
laboratorio1_Output hold off zlabel('Eje
Fcn(hObject, z','FontSize',13) x=[-1 0]; y=[-3 2];
eventdata, handles) function hold off z=[-2 -1];
varargout{1} = pushbutton5_Callbac function X=[x(1) x(2) x(2)
handles.output; k(hObject, pushbutton6_Callbac x(1) x(1) x(1) x(1)
eventdata, handles) k(hObject, x(2) x(2) x(1)];
function texto='LA eventdata, handles) Y=[y(1) y(1) y(2)
pushbutton1_Callbac ARTICULACION texto='Eslabón y(2) y(1) y(1) y(2)
k(hObject, PRISMATICA: efector: y(2) y(1) y(1)];
eventdata, handles) set(handles.text4,' set(handles.text4,' Z=[z(1) z(1) z(1)
string',texto) string',texto) z(1) z(1) z(2) z(2)
function h1 = plot3(0,0,0) z(2) z(2) z(2)];
pushbutton2_Callbac cla p1 = plot3(X,Y,Z)
k(hObject, h = plot3(0,0,0) get(h1,'Parent')
eventdata, handles) p = get(h,'Parent') cla X1=[x(1) x(1) x(2)
hold on hold on x(2) x(1) x(1) x(1)
function xlim(p,'manual'); xlim(p1,'manual'); x(2) x(2) x(1)];
pushbutton3_Callbac xlim(p,[-2 2]) xlim(p1,[-4 6]) Y1=[y(1) y(1) y(1)
k(hObject, %Define el límite %Define el límite y(1) y(1) y(2) y(2)
eventdata, handles) del eje x que se del eje x que se y(2) y(2) y(2)];
observará en la observará en la Z1=[z(1) z(2) z(2)
function gráfica gráfica z(1) z(1) z(1) z(2)
pushbutton4_Callbac ylim(p,'manual'); ylim(p1,'manual'); z(2) z(1) z(1)];
k(hObject, ylim(p,[-2 2]) ylim(p1,[-6 6]) plot3(X1,Y1,Z1)
eventdata, handles) %Define el límite %Define el límite
texto='ARTICULACION del eje y que se del eje y que se
ROTATIVA: ' observará en la observará en la d=[0 2]; e=[1 2];
gráfica gráfica f=[-2 -1];
cla zlim(p,'manual'); zlim(p1,'manual'); D=[d(1) d(2) d(2)
h = plot3(0,0,0) zlim(p,[-2 2]) zlim(p1,[-6 6]) d(1) d(1) d(1) d(1)
p = get(h,'Parent') %Define el límite %Define el límite d(2) d(2) d(1)];
xlim(p,'manual'); del eje z que se del eje z que se E=[e(1) e(1) e(2)
xlim(p,[-2 2]) observará en la observará en la e(2) e(1) e(1) e(2)
%Define el límite gráfica gráfica e(2) e(1) e(1)];
del eje x que se axis vis3d axis vis3d F=[f(1) f(1) f(1)
observará en la grid on grid on f(1) f(1) f(2) f(2)
gráfica rotate3d rotate3d f(2) f(2) f(2)];
ylim(p,'manual'); patch([0 1 1 0],[0 plot3(D,E,F)
ylim(p,[-2 2]) 0 1 1],[1 1 1 a=[-5 -1]; b=[-1
%Define el límite 1],'y') 0]; c=[-2 -1];% se D1=[d(1) d(1) d(2)
del eje y que se crea un vector d(2) d(1) d(1) d(1)
d(2) d(2) d(1)];
E1=[e(1) e(1) e(1)
e(1) e(1) e(2) e(2)
e(2) e(2) e(2)];
F1=[f(1) f(2) f(2)
f(1) f(1) f(1) f(2)
f(2) f(1) f(1)];
plot3(D1,E1,F1)

g=[0 2]; h=[-3 -2];


i=[-2 -1];
G=[g(1) g(2) g(2)
g(1) g(1) g(1) g(1)
g(2) g(2) g(1)];
H=[h(1) h(1) h(2)
h(2) h(1) h(1) h(2)
h(2) h(1) h(1)];
I=[i(1) i(1) i(1)
i(1) i(1) i(2) i(2)
i(2) i(2) i(2)];
plot3(G,H,I)

G1=[g(1) g(1) g(2)


g(2) g(1) g(1) g(1)
g(2) g(2) g(1)];
H1=[h(1) h(1) h(1)
h(1) h(1) h(2) h(2)
h(2) h(2) h(2)];
I1=[i(1) i(2) i(2)
i(1) i(1) i(1) i(2)
i(2) i(1) i(1)];
plot3(G1,H1,I1)

xlabel('Eje
x','FontSize',19) Referencia en negro,
ylabel('Eje rotación y translación en
y','FontSize',19) el eje “Y” en de Referencia en negro, Referencia en negro,
zlabel('Eje magenta. rotación y translación en rotación en magenta.
z','FontSize',19) el eje “Z” en de
hold off magenta.
PASO 2:
Referencia en negro,
rotación y translación en
el eje “X” en de
magenta.
,'BackgroundColor')
gui_State.gui_Callb ,
ack = get(0,'defaultUicon
str2func(varargin{1 trolBackgroundColor
}); '))
end
if nargout set(hObject,'Backgr
oundColor',[1.9 1.9
[varargout{1:nargou 1.9]);
t}] = end
gui_mainfcn(gui_Sta function
te, varargin{:}); slider2_Callback(hO
else bject, eventdata,
handles)
gui_mainfcn(gui_Sta x=get(hObject,'Valu
te, varargin{:}); e')
end A=[x x;0 0 0];
function p=[0 0 3 ;
PUNTO2DLAB1_Opening 3 0 0]
Fcn(hObject, hold off
eventdata, handles, plot(p(1,:),p(2,:),
varargin) 'k')
handles.output = grid on
hObject; hold on
guidata(hObject, a=0
handles); r=inv([cosd(a)
function varargout sind(a);-sind(a)
= cosd(a)]);
PUNTO2DLAB1_OutputF rp=r*p
cn(hObject, jj=rp+A
eventdata, handles) plot(jj(1,:),jj(2,:
varargout{1} = ),'m')
handles.output; hold on
function axis ([-5 5 -5 5])
CODIGO: slider1_Callback(hO %axis equal
function varargout bject, eventdata, function
= handles) slider2_CreateFcn(h
PUNTO2DLAB1(varargi Object, eventdata,
n) a=get(hObject,'Valu handles)
gui_Singleton = 1; e') if
gui_State = p=[0 0 3 ; isequal(get(hObject
struct('gui_Name', 3 0 0] ,'BackgroundColor')
mfilename, ... hold off ,
plot(p(1,:),p(2,:), get(0,'defaultUicon
'gui_Singleton', 'k') trolBackgroundColor
gui_Singleton, ... grid on '))
hold on
'gui_OpeningFcn', %a=40 set(hObject,'Backgr
@PUNTO2DLAB1_Openin r=inv([cosd(a) oundColor',[1.9 1.9
gFcn, ... sind(a);-sind(a) 1.9]);
cosd(a)]); end
'gui_OutputFcn', rp=r*p function
@PUNTO2DLAB1_Output plot(rp(1,:),rp(2,: slider3_Callback(hO
Fcn, ... ),'m') bject, eventdata,
hold on handles)
'gui_LayoutFcn', axis ([-5 5 -5 5]) y=get(hObject,'Valu
[] , ... e')
function A=[0 0 0 ;y y];
'gui_Callback', slider1_CreateFcn(h p=[0 0 3 ;
[]); Object, eventdata, 3 0 0]
if nargin && handles) hold off
ischar(varargin{1}) if %p=[0 3 4 ; 0 2 1]
isequal(get(hObject
plot(p(1,:),p(2,:), if PASO 3:
'k') isequal(get(hObject
grid on ,'BackgroundColor') Interfaz de inicio de la
hold on , plataforma.
a=0 get(0,'defaultUicon
r=inv([cosd(a) trolBackgroundColor
sind(a);-sind(a) '))
cosd(a)]);
rp=r*p set(hObject,'Backgr
jj=rp+A oundColor',[1.9 1.9
plot(jj(1,:),jj(2,: 1.9]);
),'m') end
hold on
axis ([-5 5 -5 5]) function
%axis equal slider5_Callback(hO
Gráficos según datos de
function bject, eventdata,
posiciones. 4 4 4.
slider3_CreateFcn(h handles)
Object, eventdata, a=get(hObject,'Valu
handles) e')
if %A=[x x x;0 0 0];
isequal(get(hObject p=[0 0 3 ; Rotación en el eje “X” de
,'BackgroundColor') 3 0 0] 218 grados.
, hold off
get(0,'defaultUicon %p=[0 3 4 ; 0 2 1]
trolBackgroundColor plot(p(1,:),p(2,:),
')) 'k')
grid on
set(hObject,'Backgr hold on
oundColor',[1.9 1.9 %a=0
1.9]); r=inv([cosd(a)
end sind(a);-sind(a)
function cosd(a)]); Gráficos según datos de
slider4_Callback(hO rp=r*p posiciones. 3 3 2.6 Grabada
bject, eventdata, %jj=rp+A sobre la gráfica anterior.
handles) plot(rp(1,:),rp(2,:
x=get(hObject,'Valu ),'m')
e') hold on
A=[x x x;x x x]; axis ([-5 5 -5 5]) Rotación en el eje “Y “en
p=[0 0 3 ; 244 grados
3 0 0] function
hold off slider5_CreateFcn(h
%p=[0 3 4 ; 0 2 1] Object, eventdata,
plot(p(1,:),p(2,:), handles)
'k') if
grid on isequal(get(hObject
hold on ,'BackgroundColor')
a=0 ,
r=inv([cosd(a) get(0,'defaultUicon
sind(a);-sind(a) trolBackgroundColor
cosd(a)]); '))
rp=r*p
set(hObject,'Backgr
CODIGO:
jj=rp+A function varargout
plot(jj(1,:),jj(2,: oundColor',[1.9 1.9
= Lab1_3(varargin)
),'m') 1.9]);
gui_Singleton = 1;
hold on end
Rotación en el eje”Z” de 180 gui_State =
axis ([-5 5 -5 5]) function
grados. struct('gui_Name',
%axis equal axes1_CreateFcn(hOb
mfilename, ...
function ject, eventdata,
slider4_CreateFcn(h handles) 'gui_Singleton',
Object, eventdata, xlabel('Eje gui_Singleton, ...
handles) x','FontSize',13)
ylabel('Eje 'gui_OpeningFcn',
y','FontSize',13)
@Lab1_4_OpeningFcn, aa0=line(a0(1,:),a0 0 cosd(ax) ylabel('Eje y')
... (2,:),a0(3,:),'Colo -sind(ax); zlabel('Eje z')
r','b','LineWidth', 0 sind(ax) axis ([-3 6 -3 6 -3
'gui_OutputFcn', 2) cosd(ax)];%Rotación 6]);
@Lab1_4_OutputFcn, ab0=line(a1(1,:),a1 en x
... (2,:),a1(3,:),'Colo
r','b','LineWidth', ry=[cosd(ay) 0 % --- Executes
'gui_LayoutFcn', 2) sind(ay); during object
[] , ... 0 1 0; creation, after
hold off; -sind(ay) 0 setting all
'gui_Callback', xlabel('Eje x') cosd(ay)];%Rotación properties.
[]); ylabel('Eje y') en y function
if nargin && zlabel('Eje z') slider1_CreateFcn(h
ischar(varargin{1}) axis ([-3 6 -3 6 -3 rz=[cosd(az) Object, eventdata,
6]); -sind(az) 0; handles)
gui_State.gui_Callb % Get default sind(az) if
ack = command line output cosd(az) 0; isequal(get(hObject
str2func(varargin{1 from handles 0 0 ,'BackgroundColor')
}); structure 1];%Rotación en z ,
end varargout{1} = get(0,'defaultUicon
handles.output; ar0=(inv(rx)*a0) trolBackgroundColor
if nargout ar1=(inv(rx)*a1)%De '))
splazo*marco de
[varargout{1:nargou % --- Executes on referencia en 0,0,0 set(hObject,'Backgr
t}] = slider movement. oundColor',[.9 .9 .
gui_mainfcn(gui_Sta function ar0=inv(ry)*ar0 9]);
te, varargin{:}); slider1_Callback(hO ar1=inv(ry)*ar1 end
else bject, eventdata,
handles) ar0=inv(rz)*ar0
gui_mainfcn(gui_Sta cla ar1=inv(rz)*ar1 % --- Executes on
te, varargin{:}); rotate3d slider movement.
end ax=get(hObject,'val p=[px py pz]' function
% End ue') %carga el dato slider2_Callback(hO
initialization code ingresado en la ar0(1,:)=ar0(1,:)+p bject, eventdata,
- DO NOT EDIT variable valor x handles)
set(handles.text2,' ar1(1,:)=ar1(1,:)+p cla
string',ax) x rotate3d
% --- Executes just ay=get(hObject,'val
before Lab1_4 is ay=str2double(get(h ar0(2,:)=ar0(2,:)+p ue') %carga el dato
made visible. andles.text3,'strin y ingresado en la
function g')) ar1(2,:)=ar1(2,:)+p variable valor
Lab1_4_OpeningFcn(h az=str2double(get(h y set(handles.text3,'
Object, eventdata, andles.text4,'strin string',ay)
handles, varargin) g')) ar0(3,:)=ar0(3,:)+p
handles.output = z ax=str2double(get(h
hObject; px=str2double(get(h ar1(3,:)=ar1(3,:)+p andles.text2,'strin
guidata(hObject, andles.text5,'strin z g'))
handles); g')) az=str2double(get(h
function varargout py=str2double(get(h aa0=line(a0(1,:),a0 andles.text4,'strin
= andles.text6,'strin (2,:),a0(3,:),'Colo g'))
Lab1_4_OutputFcn(hO g')) r','m','LineWidth',
bject, eventdata, pz=str2double(get(h 2) px=str2double(get(h
handles) andles.text7,'strin ab0=line(a1(1,:),a1 andles.text5,'strin
rotate3d; g')) (2,:),a1(3,:),'Colo g'))
h = plot3(0,0,0) r','m','LineWidth', py=str2double(get(h
p = get(h,'Parent') a0=[0 0 3 0; 2) andles.text6,'strin
grid on 3 0 0 0; patch(ar0(1,:),ar0( g'))
a0=[0 0 3 0; 0 0 0 0]; 2,:),ar0(3,:),'y',' pz=str2double(get(h
3 0 0 0; a1=[3 0 0 0; LineWidth',1); andles.text7,'strin
0 0 0 0]; 0 0 0 0; patch(ar1(1,:),ar1( g'))
a1=[3 0 0 0; 0 0 3 0]; 2,:),ar1(3,:),'y','
0 0 0 0; LineWidth',1); a0=[0 0 3 0;
0 0 3 0]; rx=[1 0 0; xlabel('Eje x') 3 0 0 0;
0 0 0 0]; patch(ar1(1,:),ar1( 0 0 3 0]; xlabel('Eje x')
a1=[3 0 0 0; 2,:),ar1(3,:),'y',' ylabel('Eje y')
0 0 0 0; LineWidth',1); rx=[1 0 0; zlabel('Eje z')
0 0 3 0]; xlabel('Eje x') 0 cosd(ax) axis ([-3 6 -3 6 -3
ylabel('Eje y') -sind(ax); 6]);
rx=[1 0 0; zlabel('Eje z') 0 sind(ax)
0 cosd(ax) axis ([-3 6 -3 6 -3 cosd(ax)];%Rotación function
-sind(ax); 6]); en x slider3_CreateFcn(h
0 sind(ax) function Object, eventdata,
cosd(ax)];%Rotación slider2_CreateFcn(h ry=[cosd(ay) 0 handles)
en x Object, eventdata, sind(ay); if
handles) 0 1 0; isequal(get(hObject
ry=[cosd(ay) 0 if -sind(ay) 0 ,'BackgroundColor')
sind(ay); isequal(get(hObject cosd(ay)];%Rotación ,
0 1 0; ,'BackgroundColor') en y get(0,'defaultUicon
-sind(ay) 0 , trolBackgroundColor
cosd(ay)];%Rotación get(0,'defaultUicon rz=[cosd(az) '))
en y trolBackgroundColor -sind(az) 0;
')) sind(az) set(hObject,'Backgr
rz=[cosd(az) cosd(az) 0; oundColor',[.9 .9 .
-sind(az) 0; set(hObject,'Backgr 0 0 9]);
sind(az) oundColor',[.9 .9 . 1];%Rotación en z end
cosd(az) 0; 9]);
0 0 end ar0=(inv(rx)*a0)
1];%Rotación en z ar1=(inv(rx)*a1)%De % --- Executes on
splazo*marco de slider movement.
ar0=(inv(rx)*a0) % --- Executes on referencia en 0,0,0 function
ar1=(inv(rx)*a1)%De slider movement. slider4_Callback(hO
splazo*marco de function ar0=inv(ry)*ar0 bject, eventdata,
referencia en 0,0,0 slider3_Callback(hO ar1=inv(ry)*ar1 handles)
bject, eventdata, cla
ar0=inv(ry)*ar0 handles) ar0=inv(rz)*ar0 rotate3d
ar1=inv(ry)*ar1 cla ar1=inv(rz)*ar1 px=get(hObject,'val
rotate3d; ue') %carga el dato
ar0=inv(rz)*ar0 az=get(hObject,'val ar0(1,:)=ar0(1,:)+p ingresado en la
ar1=inv(rz)*ar1 ue') %carga el dato x variable valor
ingresado en la ar1(1,:)=ar1(1,:)+p set(handles.text5,'
ar0(1,:)=ar0(1,:)+p variable valor x string',px)
x set(handles.text4,' %Escribe el valor
ar1(1,:)=ar1(1,:)+p string',az) ar0(2,:)=ar0(2,:)+p en text2
x y
ax=str2double(get(h ar1(2,:)=ar1(2,:)+p ax=str2double(get(h
ar0(2,:)=ar0(2,:)+p andles.text2,'strin y andles.text2,'strin
y g')) g'))
ar1(2,:)=ar1(2,:)+p ay=str2double(get(h ar0(3,:)=ar0(3,:)+p ay=str2double(get(h
y andles.text3,'strin z andles.text3,'strin
g')) ar1(3,:)=ar1(3,:)+p g'))
ar0(3,:)=ar0(3,:)+p z az=str2double(get(h
z px=str2double(get(h andles.text4,'strin
ar1(3,:)=ar1(3,:)+p andles.text5,'strin aa0=line(a0(1,:),a0 g'))
z g')) (2,:),a0(3,:),'Colo py=str2double(get(h
py=str2double(get(h r','m','LineWidth', andles.text6,'strin
aa0=line(a0(1,:),a0 andles.text6,'strin 2) g'))
(2,:),a0(3,:),'Colo g')) ab0=line(a1(1,:),a1 pz=str2double(get(h
r','m','LineWidth', pz=str2double(get(h (2,:),a1(3,:),'Colo andles.text7,'strin
2) andles.text7,'strin r','m','LineWidth', g'))
ab0=line(a1(1,:),a1 g')) 2)
(2,:),a1(3,:),'Colo patch(ar0(1,:),ar0( a0=[0 0 3 0;
r','m','LineWidth', a0=[0 0 3 0; 2,:),ar0(3,:),'y',' 3 0 0 0;
2) 3 0 0 0; LineWidth',1); 0 0 0 0];
patch(ar0(1,:),ar0( 0 0 0 0]; patch(ar1(1,:),ar1( a1=[3 0 0 0;
2,:),ar0(3,:),'y',' a1=[3 0 0 0; 2,:),ar1(3,:),'y',' 0 0 0 0;
LineWidth',1); 0 0 0 0; LineWidth',1); 0 0 3 0];
axis ([-3 6 -3 6 -3 0 cosd(ax) axis ([-3 6 -3 6 -3
rx=[1 0 0; 6]); -sind(ax); 6]);
0 cosd(ax) 0 sind(ax)
-sind(ax); function cosd(ax)];%Rotación function
0 sind(ax) slider4_CreateFcn(h en x slider5_CreateFcn(h
cosd(ax)];%Rotación Object, eventdata, Object, eventdata,
en x handles) ry=[cosd(ay) 0 handles)
if sind(ay); if
ry=[cosd(ay) 0 isequal(get(hObject 0 1 0; isequal(get(hObject
sind(ay); ,'BackgroundColor') -sind(ay) 0 ,'BackgroundColor')
0 1 0; , cosd(ay)];%Rotación ,
-sind(ay) 0 get(0,'defaultUicon en y get( 0,'defaultUico
cosd(ay)];%Rotación trolBackgroundColor ntrolBackgroundColo
en y ')) rz=[cosd(az) r'))
-sind(az) 0;
rz=[cosd(az) set(hObject,'Backgr sind(az) set(hObject,'Backgr
-sind(az) 0; oundColor',[.9 .9 . cosd(az) 0; oundColor',[.9 .9 .
sind(az) 9]); 0 0 9]);
cosd(az) 0; end 1];%Rotación en z end
0 0
1];%Rotación en z ar0=(inv(rx)*a0)
% --- Executes on ar1=(inv(rx)*a1)%De % --- Executes on
ar0=(inv(rx)*a0) slider movement. splazo*marco de slider movement.
ar1=(inv(rx)*a1) function referencia en 0,0,0 function
slider5_Callback(hO slider6_Callback(hO
ar0=inv(ry)*ar0 bject, eventdata, ar0=inv(ry)*ar0 bject, eventdata,
ar1=inv(ry)*ar1 handles) ar1=inv(ry)*ar1 handles)
cla cla
ar0=inv(rz)*ar0 rotate3d ar0=inv(rz)*ar0 rotate3d
ar1=inv(rz)*ar1 py=get(hObject,'val ar1=inv(rz)*ar1 pz=get(hObject,'val
ue') %carga el dato ue') %carga el dato
ar0(1,:)=ar0(1,:)+p ingresado en la ar0(1,:)=ar0(1,:)+p ingresado en la
x variable valor x variable valor
ar1(1,:)=ar1(1,:)+p set(handles.text6,' ar1(1,:)=ar1(1,:)+p set(handles.text7,'
x string',py) x string',pz)
%Escribe el valor %Escribe el valor
ar0(2,:)=ar0(2,:)+p en text2 ar0(2,:)=ar0(2,:)+p en text2
y y
ar1(2,:)=ar1(2,:)+p ax=str2double(get(h ar1(2,:)=ar1(2,:)+p ax=str2double(get(h
y andles.text2,'strin y andles.text2,'strin
g')) g'))
ar0(3,:)=ar0(3,:)+p ay=str2double(get(h ar0(3,:)=ar0(3,:)+p ay=str2double(get(h
z andles.text3,'strin z andles.text3,'strin
ar1(3,:)=ar1(3,:)+p g')) ar1(3,:)=ar1(3,:)+p g'))
z az=str2double(get(h z az=str2double(get(h
andles.text4,'strin andles.text4,'strin
aa0=line(a0(1,:),a0 g')) aa0=line(a0(1,:),a0 g'))
(2,:),a0(3,:),'Colo (2,:),a0(3,:),'Colo
r','m','LineWidth', px=str2double(get(h r','m','LineWidth', px=str2double(get(h
2) andles.text5,'strin 2) andles.text5,'strin
ab0=line(a1(1,:),a1 g')) ab0=line(a1(1,:),a1 g'))
(2,:),a1(3,:),'Colo pz=str2double(get(h (2,:),a1(3,:),'Colo py=str2double(get(h
r','m','LineWidth', andles.text7,'strin r','m','LineWidth', andles.text6,'strin
2) g')) 2) g'))
patch(ar0(1,:),ar0( patch(ar0(1,:),ar0(
2,:),ar0(3,:),'y',' a0=[0 0 3 0; 2,:),ar0(3,:),'y',' a0=[0 0 3 0;
LineWidth',1); 3 0 0 0; LineWidth',1); 3 0 0 0;
patch(ar1(1,:),ar1( 0 0 0 0]; patch(ar1(1,:),ar1( 0 0 0 0];
2,:),ar1(3,:),'y',' a1=[3 0 0 0; 2,:),ar1(3,:),'y',' a1=[3 0 0 0;
LineWidth',1); 0 0 0 0; LineWidth',1); 0 0 0 0;
xlabel('Eje x') 0 0 3 0]; xlabel('Eje x') 0 0 3 0];
ylabel('Eje y') ylabel('Eje y')
zlabel('Eje z') rx=[1 0 0; zlabel('Eje z') rx=[1 0 0;
0 cosd(ax) axis ([-3 6 -3 6 -3
-sind(ax); 6]);
0 sind(ax)
cosd(ax)];%Rotación
en x
% --- Executes
ry=[cosd(ay) 0 during object
sind(ay); creation, after
0 1 0; setting all
-sind(ay) 0 properties. Imagen. Articulación
cosd(ay)];%Rotación function Cilíndrica
en y slider6_CreateFcn(h
Object, eventdata,
rz=[cosd(az) handles) Imagen. Articulación
-sind(az) 0; if Articulación esférica:
rotacional
sind(az) isequal(get(hObject rótula esférica en tres
cosd(az) 0; ,'BackgroundColor') dimensiones, obliga a que
Articulación Prismática:
0 0 , un sólido se mueva
Las articulaciones
1];%Rotación en z get(0,'defaultUicon acopladamente con otro
prismáticas están formadas
trolBackgroundColor compartiendo un punto de
por dos uniones anidadas
común, pero sin restringir
ar0=(inv(rx)*a0) ')) que se desplazan dentro y a
de ninguna manera la
ar1=(inv(rx)*a1)%De lo largo de cada una, como
posibilidad de orientación
splazo*marco de set(hObject,'Backgr la antena de un coche. El
de un sólido respecto al
referencia en 0,0,0 oundColor',[.9 .9 . movimiento relativo entre
otro.
9]); las uniones se produce en
ar0=inv(ry)*ar0 end línea recta, extendiéndose ó
ar1=inv(ry)*ar1 retrayéndose una de las
uniones.
ar0=inv(rz)*ar0
ar1=inv(rz)*ar1
PASO 4:
En los sistemas mecánicos
existen articulaciones que
ar0(1,:)=ar0(1,:)+p
permiten el movimiento
x
relativo entre los elementos
ar1(1,:)=ar1(1,:)+p constitutivos, denominados
x eslabones. Por definición, la
articulación es un punto,
ar0(2,:)=ar0(2,:)+p línea o área entre dos Imagen.
y cuerpos que pueden o no Articulación
ar1(2,:)=ar1(2,:)+p tener movimiento relativo esférica
y entre ellos. Las Imagen. Articulación
articulaciones que permiten prismática
ar0(3,:)=ar0(3,:)+p Articulación Planar: Se
movimiento se llaman pares
caracteriza por el
z cinemáticos. se tienen los 6
movimiento de
ar1(3,:)=ar1(3,:)+p tipos diferentes de pares Articulación Cilíndrica:
desplazamiento en un
z cinemáticos posibles. De puede realizarse mediante
plano, existiendo dos
entre ellos, únicamente la un pasador cilíndrico o
grados de libertad.
aa0=line(a0(1,:),a0 articulación rotacional y la bulón, elimina tres grados
(2,:),a0(3,:),'Colo prismática son las básicas, a de libertad traslacionales y
r','m','LineWidth', partir de las cuales se pueden dos grados de libertad de
2) formar las otras; Los tipos de orientación, haciendo que
ab0=line(a1(1,:),a1 articulación que existen son: los dos sólidos compartan
(2,:),a1(3,:),'Colo un eje de giro común.
r','m','LineWidth', Articulación Rotacional: En dos dimensiones no
Articulación con un grado de puede distinguirse entre
2)
movilidad que permite un articulaciones cilíndricas y
patch(ar0(1,:),ar0(
movimiento relativo de esféricas, ya que en una
2,:),ar0(3,:),'y','
rotación alrededor de un eje estructura o mecanismo
LineWidth',1); plano sólo se suprimen
de rotación común,
patch(ar1(1,:),ar1( normalmente consistente en grados de libertad Articulacion planar.
2,:),ar1(3,:),'y',' una junta giratoria manejada traslacionales.
LineWidth',1); por motores eléctricos y Articulación tornillo:
xlabel('Eje x') transmisiones, o por El movimiento lo realiza a
ylabel('Eje y') cilindros hidráulicos y lo largo del eje de la
zlabel('Eje z') palancas. articulación. Es muy
similar a la prismática. Es una matriz de 4x4 porque 0 0
Estas configuraciones representa un sistema de 1 0;
básicas presentan coordenadas que van 0 0
diferentes propiedades en comprendidas entre 0 1];
cuanto a espacio de trabajo Rotación, Traslación, r=[3 6 -10 1]'
y accesibilidad a Perspectiva y escalado. rt=Tz*r;
posiciones determinadas T=[1 0 0 rt(1);
0 1 0 rt(2);
0 0 1 rt(3);
0 0 0 rt(4)];
PASO 6: a=46
Efector final: Es un Tx=[1 0 0
dispositivo que produce 0;
efectos bajo el control del Matriz de transformación
homogénea. 0 cosd(a)
robot. Está provisto de un -sind(a) 0;
actuador que convierte 0 sind(a)
comandos de software en PASO 8: cosd(a) 0;
movimientos físicos. Estos 0 0 0
pueden ser de locomoción Para desarrollar el 1];
(Modifica la ubicación del problema anterior, se utiliza
articulacion tipo tornillo robot respecto al ambiente) o el software Matlab, para rf=(Tx*T)*r
de manipulación (desplaza realizar todos los cálculos
PASO 5: objetos del entorno). En si correspondientes, las líneas
un efector final es la parte rf= 4.5734
Eslabones: Un manipulador de código y los resultados
con que el robot manipula 23.0847
robótico consta de una son los siguientes:
los objetos, estos suelen ser - 4.8863
secuencia de elementos %Coordenadas
neumáticos, hidráulicos, 1.0000
estructurales rígidos, Homogéneas
electroneumáticos y
denominados enlaces o %Traslación:
electrónicos (servo
eslabones, conectados entre % T(p)=[1 0 0 px;
sí mediante juntas o controlados).
% 0 1 0 py; PASO 9:
articulaciones, que permiten % 0 0 1 pz; Diferencias al
el movimiento relativo de % 0 0 0 1]; postmultiplicar y
cada dos eslabones premultiplicar matrices de
%Rotación:
consecutivos. transformación homogénea:
% T(x,a)=[1 0
Eslabón unitario: Es aquel Si un sistema OUVW se
0 0; obtiene mediante rotaciones
que solo cuenta con un punto % 0 cos(a)
de articulación. y traslaciones definidas con
-sin(a) 0; respecto al sistema fijo
% 0 sin(a) OXYZ, la matriz homogénea
cos(a) 0; que representa cada
% 0 0 transformación se deberá
PASO 7: 0 1]; premultiplicar sobre las
Las matrices de % T(y,b)=[cos(b) 0 matrices de las
transformación homogénea sin(b) 0; transformaciones previas.
se utilizan para representar % 0 1 Si el sistema OUVW se
Eslabón binario: Es aquel la posición y orientación de 0 0; obtiene mediante rotaciones
que cuenta con dos puntos de un sistema girado y % -sin(b) 0 y traslaciones definidas con
articulación. trasladado con respecto a un cos(b) 0; respecto al sistema móvil, la
sistema fijo, transformar un % 0 0 matriz homogénea que
vector expresado en 0 1]; representa cada
coordenadas movibles y su % T(z,c)=[cos(c) transformación se deberá
representación en un sistema -sin(c) 0 0; postmultiplicar sobre las
fijo, rotar y trasladar un % sin(c) matrices de las
vector con respecto a un cos(c) 0 0; transformaciones
sistema fijo, rotar y trasladar % 0 0 previas.
un vector con respecto a un 1 0;
Eslabón ternario: Es aquel sistema fijo; esta matriz de % 0 0 Ejemplo 1.
que cuenta con tres puntos transformación tiene PREMULTIPLICACIÓN
0 1];
de articulación. dimensiones 4x4, esta matriz Se quiere obtener la matriz
c=13
está conformada por cuatro de transformación que
Tz=[cosd(c)
matrices que corresponden a representa al sistema OUVW
-sind(c) 0 0; obtenido a partir del sistema
una de rotación, una de
sind(c) fijo OXYZ mediante un giro
traslación, una de
perspectiva, y una de escala. cosd(c) 0 0; de -90º alrededor del eje OX,
de una traslación de vector
pxyz(5, 5, 10) y un giro de CONCLUSIONES ioEstevesRebollo/robtica-no-
90º sobre el eje OZ: . mectar
Se debe tener especial [7]
cuidado al calcular las https://es.slideshare.net/mga
matrices de transformación rofalo85/robotica-2865379
homogéneas, pues se [8]
https://www.yumpu.com/es/d
manejan dos sistemas
ocument/view/36538843/inst
(OXYZ & OUVW), además,
ituto-tecnolagico-de-
tener clara la diferencia mazatlan-profe-saul/17
entre trasladar después de [9]
rotar y rotar después de https://es.wikipedia.org/wiki/
trasladar. Articulaci%C3%B3n_mec
Se considera al programa %C3%A1nica
Matlab como un software [10]
Ejemplo 2. óptimo para el
POSTMULTIPLICACIÓN https://definicion.de/articula
procesamiento de matrices y cion/
– Obtener la matriz de
al programa GUI (Graphic
transformación que
User Interfaz) como una
representa las
siguientes transformaciones herramienta que facilita el
sobre un sistema OXYZ fijo proceso de trabajo de planos
de en 2D Y 3D.
referencia: traslación de un • Al trabajar con sistemas
vector de referencia {A}{B} o
pxyz(- 3,10, 10); giro de -90º (OXYZ & OUVW) se debe
sobre el eje OU del sistema dar gran importancia al
trasladado y giro de 90º cálculo de la matriz de
sobre el eje transformación homogénea
OV del sistema girado: ya que, no brindara la
información de un punto con
respecto a otro sistema de
referencia, además se debe
identificar la diferencia entre
trasladar- rotar y rotar
trasladar.

BIBLIOGRAFIA Y
WEBGRAFIA.

ANALISIS DE
[1] Lung-Wen Tsai.
RESULTADOS.
“Robot analysis: the
Dado que la mayoría de las mechanics of serial
técnicas de control, parten de and parallel
un modelo matemático de la manipulators” Wiley-
planta, y que este modelo en IEEE.
raras ocasiones está
[2] Siciliano, Bruno;
disponible, Es
Sciavicco, Lorenzo;
imprescindible realizar la
Villani, Luigi ;
identificación del problema
Oriolo, Giuseppe.
para su respectiva solución.
“Robotics” Editorial:
Se debe tener en cuenta
[3] Craig, J. “Introduction to
cuando se hagan traslaciones
robotics”. Adisson Wesley.
y rotaciones, el sistema de [4] Ollero, A. “Robótica
referencia, ya que, de lo manipuladores y robots
contrario, la traslación se móviles”. Alfaomega
estaría haciendo en un eje Marcombo.
distinto, y la rotación en otra [5]
dirección o bien respecto a http://icaro.eii.us.es/descarga
otro punto. s/tema_4_parte_2.pdf
[6]
https://es.slideshare.net/Serg

También podría gustarte