Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso de Robotica Avanzada 2014 PDF
Curso de Robotica Avanzada 2014 PDF
COMPUTACIONALES................................................................................................................. 6
ROBOT .............................................................................................................................................. 78
CAPITULO 1: ............................................................................................................................................. 78
BIBLIOGRAFIA ..........................................................................................................................174
UNIDAD 1
HERRAMIENTAS MATEMÁTICAS Y RECURSOS
COMPUTACIONALES
INTRODUCCIÓN
Una de las tareas básicas de un robot y por lo demás habitual, consiste en la
manipulación de piezas, lo cual se hace posible, mediante el movimiento
espacial de sus dispositivos extremos. La manipulación robótica, nos indica que
tanto partes como herramientas, se mueven alrededor del espacio por algún
tipo de mecanismo. Cuando estudiamos la robótica, ineludiblemente nos
interesamos con los detalles de la localización de objetos en dos y tres
dimensiones. Estos objetos son los acoples del manipulador, las partes y
herramientas con las cuales él trata, y otros objetos en el entorno del
manipulador.
REPRESENTACIÓN DE LA POSICIÓN EN
COORDENADAS POLARES Y CILÍNDRICAS
MATRICES DE ROTACIÓN
[ ]
[ ]
Podemos encontrar algunas equivalencias, después de realizar una serie de
transformaciones:
[ ] [ ]
En donde
R=[ ]
[ ]
RESUMIENDO: MATRICES DE ROTACIÓN 2D
En un espacio tridimensional:
Los vectores unitarios del sistema OXY , mientras que los del sistema
OUVW son .
[ ]
[ ]
[ ] [ ]
En donde,
[ ]
( ) [ ]
( )=[ ]
( )=[ ]
RESUMIENDO: MATRICES DE ROTACIÓN 3D
REPRESENTACIÓN DE LA ORIENTACIÓN.
COMPOSICIÓN DE ROTACIONES
( ) ( ) ( ) [ ][ ][ ]
[ ]
[ ] [ ]
Podemos comentar, que la matriz T está compuesta por cuatro sub-matrices de
órdenes diferentes:
[ ] [ ]
( ) [ ]
[ ] [ ][ ] [ ]
ROTACIÓN
Las rotaciones de un vector alrededor de cada uno de los tres ejes en un ángulo
‘a’, se pueden realizar por las transformaciones de rotación. En términos
precisos, para entrar en operación, definimos tres matrices básicas de rotación,
las cuales adoptamos de acuerdo a la rotación elegida por alguno de los tres
ejes coordenados: OX, OY y OZ del sistema de referencia OXYZ.
( ) [ ]
Alrededor del eje y:
( ) [ ]
( ) [ ]
[ ] [ ]
[ ] [ ]
TRASLACIÓN ACOMPAÑADA CON ROTACIÓN
OBSERVACIONES FINALES:
(( ) ) [ ]
(( ) ) [ ]
(( ) ) [ ]
TRASLACIÓN SEGUIDA DE ROTACIÓN
Nos toca ahora tratar el caso, en el que se efectúa primero una traslación, a la
cual le sigue una rotación alrededor de uno de los ejes coordenados del sistema
OXYZ, en donde las matrices homogéneas resultante son las siguientes:
( ( )) [ ]
( ( )) [ ]
( ( )) [ ]
COMPOSICIÓN DE MATRICES HOMOGÉNEAS
ILUSTRACIÓN
MATRICES DE ROTACIÓN BÁSICAS
( ) [ ]
( ) [ ]
( ) [ ]
INTERPRETACIÓN: EJEMPLO
( ) ( ) ( ) [ ][ ][ ]=
[ ]
( ) ( ) ( ) [ ][ ][ ]=
[ ]
Las anteriores ilustraciones, nos impulsa a informar que los ejes sobre los que
recaían las operaciones correspondían al sistema de referencia fijo OXYZ. Esto
no impide la posibilidad de organizar un conjunto de matrices de
transformación, que activen operaciones dirigidas de manera permanente al
sistema que este moviéndose. Esto se logra enlazando matrices de manera
inversa.
Cuando se presenta una tarea robótica que impone la aplicación del recurso de
la composición de varias transformaciones, en las que hay que apelar al uso de
matrices homogéneas, se cuenta con algunas normas, ó los siguientes criterios:
( )
( ) ( )
IMPLEMENTACIÓN COMPUTACIONAL:
DESCRIPCIÓN PRELIMINAR
EJERCICIOS ILUSTRATIVOS:
ans =
30 -3 61
c=1:1.5:12
c=
1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000
d=8:1:1
d=
8 7 6 5 4 3 2 1
C= [0.0:pi/2:2*pi]';
F=sin(C); G=cos(C);
[C F G]
ans =
0 0 1.0000
1.5708 1.0000 0.0000
3.1416 0.0000 1.0000
4.7124 1.0000 0.0000
6.2832 0.0000 1.0000
ans =
10
A(3,1:4) % Extrae los 4 primeros elementos de la tercera fila
ans =
9 7 6 12
% x= inv(A)*b
% x= A\b
% EJERCICIOS ILUSTRATIVOS
% 1) A=[2 4],b=[4]
A=[2 4],b=[4]
A=
2 4
b=
4
x=A.\b
x=
2 1
A=
2 4
2 0
0 2
b=
4
0
0
x=A\b, resto=A*x-b
x=
0.3333
0.6667
resto =
0.6667
0.6667
1.3333
[1 2 3 4 5]^2
[1 2 3 4 5]*[1 -1 1 -1 2]
[1 2 3 4 5]*[1 -1 1 -1 2]
ans =
1 -2 3 -4 10
v=[1 4 5]
v=
1 4 5
Z=rand(1,)
Z=
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 0.4565
Z(v)
ans =
0.9501 0.4860 0.8913
Y=rand
(1,7) Y
=
0.0185 0.8214 0.4447 0.6154 0.7919 0.9218 0.7382
J=Y(6:1:1)
J=
0.9218 0.7919 0.6154 0.4447 0.8214 0.0185
a*c
ans =
6 9 18
a.*b
ans =
2.0000 3.7500 6.0000
a.^b
ans =
1.0000 2.7557 0.1111
a.\b
ans =
2.0000 1.6667 0.6667
c.^a
ans =
6.0000 14.6969 216.0000
PRODUCTOS ESCALAR Y VECTORIAL
a'*b
ans =
-112
diary off
% A’
A’
ans =
1 4 7
2 5 8
3 6 9
B=A'
B=
1 4 7
2 5 8
3 6 9
B(g,d)
ans =
23 7
10 19
g=[1 3 5 7]
g=
1 3 5 7
B(g),B(3),B(5)
ans =
17 4 11 5
ans =
4
ans =
11
L=magic(5)
L=
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
L(:,4:-1: 2)
ans =
8 1 24
14 7 5
20 13 6
21 19 12
2 25 18
% L(:) Representa un vector columna con las columnas de L una detrás de otra.
A+B
ans =
1 7 11
14 17 3
A-B
ans =
7 -19 5
-4 3 -3
B-A
ans =
-7 19 5
4 -3 3
A*C
ans =
-42 39
65 -100
C*A
ans =
-18 -78 9
-15 -100 15
3 118 -24
C*B
ans =
-63 -3 6
-78 16 19
87 -55 -43
B*C
ans =
-8 -17
38 -82
A/B
ans =
-0.3645 0.2523
0.2265 0.6839
A\B
ans =
0.3429 2.4571 1.4000
0.7286 -0.5286 -0.4000
0 0 0
B\A
ans =
0.2681 1.2464 -0.1522
0.3696 -0.1739 0.1957
0 0 0
H^p
ans =
4 25
16 81
p.^H
ans =
4 32
16 512
H^p
ans =
24 55
44 101
p^H
ans =
1.0e+003 *
0.4455 1.0202
0.8162 1.8738
ans =
1.0e+016 *
-0.4504 0.9007 -0.4504
0.9007 -1.8014 0.9007
-0.4504 0.9007 -0.4504
ans =
1 4 7
2 5 8
3 6 9
ans =
0
ans =
2
ans =
15
ans =
3 3
ones(2,3)
ans =
1 1 1
1 1 1
ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
zeros(2,3)
ans =
0 0 0
0 0 0
zeros(3)
ans =
0 0 0
0 0 0
0 0 0
eye(5)
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
eye(2,3)
ans =
1 0 0
0 1 0
diary off
LECCIÓN 3: MATRICES DE TRANSFORMACIÓN
HOMOGÉNEA: POSICIÓN
1. Según la figura, en el sistema O'UVW esta trasladado un vector p (6, 3,8) con
respecto al sistema OXYZ. Calcular las coordenadas (rx, ry, rz) del vector r cuyas
coordenadas con respecto al sistema O'UVW son ruvw (2, 7,3).
diary off
LECCION 4: MATRICES DE TRANSFORMACION
HOMOGENEA: ROTACION
% T(x,a)=[1 0 0 0;0 cosa -sena 0;0 sena cosa 0;0 0 0 1], (I)
% T(y,b)=[cosb 0 senb 0;0 1 0 0;-senb 0 cosb 0;0 0 0 1], (II)
% T(z,c)=[cosc -senc 0 0;senc cosc 0 0;0 0 1 0;0 0 0 1], (III)
Y a su vez un vector rxyz rotado según T vendrá expresado por r'x,y,z según:
Se trata de realizar primero una rotación sobre uno de los ejes del sistema OXYZ
seguida de una traslación, las matrices homogéneas serán las que a
continuación se expresan:
Rotación de un ángulo a sobre el eje OX seguido de una traslación de vector
pxyz:
% T((x,a),p)= [1 0 0 px;0 cosa sena py;0 sena cosa pz;0 0 0 1] (VI)
% T((y,b),p)= [cosb 0 senb px;0 1 0 py;senb 0 cosb pz;0 0 0 1] (VII)
% T((z,c),p)= [cosc senc 0 px;senc cosc 0 py;0 0 1 pz;0 0 0 1] (VII)
EJERCICIOS ILUSTRATIVOS
rxyz=Tzc*ruvw
rxyz =
8
4
12
1
t1=rotz(-pi/2)
t1 =
0.0000 1.0000 0 0
-1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
ruvw=[4 8 12 1]'
ruvw =
4
8
12
1
rxyz=t1*ruvw
rxyz =
8.0000
- 4.0000
12.0000
1.0000
ruvw=[3,4,11,1]'
ruvw =
3
4
11
1
rxyz=Txa*ruvw
rxyz =
5
7
16
1
diary off
LECCIÓN 5: MATRICES DE TRANSFORMACIÓN
HOMOGÉNEA: TRASLACIÓN SEGUIDA DE
ROTACIÓN
Se trata de realizar primero una traslación seguida de una rotación sobre los
ejes coordenados del sistema OXYZ. Las matrices homogéneas resultantes son
las siguientes:
Traslación del vector px, y, z seguida de rotación de un ángulo a sobre el eje OX.
Traslación del vector px, y, z seguida de rotación de un ángulo b sobre el eje OY.
Traslación del vector px, y, z seguida de rotación de un ángulo c sobre el eje OZ.
PERSPECTIVA Y ESCALADO
ruvw=[3,4,11,1]'
ruvw =
3
4
11
1
rxyz=Tpxa*ruvw
rxyz =
5
1
0
1
rotz(pi/2),rotx(-pi/2)
ans =
0.0000 -1.0000 0 0
1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
ans =
1.0000 0 0 0
0 0.0000 1.0000 0
0 -1.0000 0.0000 0
0 0 0 1.0000
T=rotz(pi/2)*Tp*rotx(pi/2)
T=
0.0000 -0.0000 -1.0000 -5.0000
1.0000 0.0000 0.0000 5.0000
0 -1.0000 0.0000 10.0000
0 0 0 1.0000
diary off
CAPITULO III: IMPLEMENTACIONES
COMPUTACIONALES.
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ]
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ]
TA =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ] ;
TB = transl ( 3 , 5, 0 )
TB =
1 0 0 3
0 1 0 5
0 0 1 0
0 0 0 1
TC = transl ( -2, -4, 1 )
TC =
1 0 0 2
0 1 0 4
0 0 1 1
0 0 0 1
frame ( TA , ' r ' , 1 ) ;
frame ( TB , ' b' , 1 ) , grid ;
SOLUCIÓN:
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ] ;
TB = transl ( 6 , -3, 8 )
TB =
1 0 0 6
0 1 0 -3
0 0 1 8
0 0 0 1
r uvw = [ -2 7 3 1 ] '
rx ry rz = TB * [ 2 7 3 1] '
rx ry rz =
4
4
11
1
diary off
LECCIÓN 2: REPRESENTACIÓN DE LA
ORIENTACIÓN, EJECUCIONES COMPUTACIONALES
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ]
SOLUCION
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ] ;
1 = rotz ( pi/2 )
T1 =
0.0000 1.0000 0 0
1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
rxryrz = T1 * [ 4 8 12 1 ] '
rxryrz =
8.0000
-4.0000
12.0000
1.0000
diary off
LECCIÓN 3: REPRESENTACIÓN DE LA POSICIÓN Y
ORIENTACIÓN: EJECUCIONES COMPUTACIONALES
grid on
B. Representación de dos cuadros de referencia {B} y {C}, generados a partir
de {A} mediante rotación y traslación.
TB=transl ( 3 , 5, 0 ) * rotx ( p i / 6 ) * TA ;
TA =transl ( 2, 4, 1 ) * rotz ( pi / 3 ) * TA ;
frame ( TA, ' y', 1) ;
diary off
LECCIÓN 4: CONCATENACIÓN DE LAS
OPERACIONES DE TRASLACIÓN Y ORIENTACIÓN,
EJECUCIONESCOMPUTACIONALES
T=transl( 0.4, 0 , 0 )
T=
1.0000 0 0 0.4000
0 1.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
T =roty(pi/2)
T=
0.0000 0 1.0000 0
0 1.0000 0 0
1.0000 0 0.0000 0
0 0 0 1.0000
T=rotz(pi/2)
0.0000 1.0000 0 0
1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
T=transl(0.4, 0, 0)*roty(pi/2)*rotz(pi/2)
T=
0.0000 0.0000 1.0000 0.4000
1.0000 0.0000 0 0
0.0000 1.0000 0.0000 0
0 0 0 1.0000
T=transl(0.4, 0,0)
T=
1.0000 0 0 0.4000
0 1.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
T=roty(pi/2)
T=
0.0000 0 1.0000 0
0 1.0000 0 0
1.0000 0 0.0000 0
0 0 0 1.0000
T=rotz(-pi/2)
T=
0.0000 1.0000 0 0
-1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
C. Concatenar las tres operaciones anteriores.
T=
0.0000 0.0000 1.0000 0.4000
-1.0000 0.0000 0 0
-0.0000 -1.0000 0.0000 0
0 0 0 1.0000
tr2eul ( T )
ans =
0 1.5708 -1.5708
2. Girar el sistema OUVW un ángulo φ con respecto al eje OY. A este ángulo
se le llama Pitch o cabeceo.
3. Girar el sistema OUVW un ángulo con respecto al eje OZ. A este ángulo
se le llama Roll o alabeo.
tr2rpy ( T )
ans =
-1.5708 0.0000 -1.5708
RESULTADO = [-1.5708 0.0000 -1.5708]
diary off
SEGUNDA UNIDAD
MODELADO CINEMÁTICO Y DINÁMICO DE UN
ROBOT
CAPITULO 1:
CINEMÁTICA DEL ROBOT INTRODUCCIÓN
( )
( )
( )
( )
( )
( )
( )
( )
( ) ( ) ( ) ( )
El producto entre las matrices comprometidas se expresa así:
[ ][ ][ ][ ]
Todo indica que la tarea a seguir consiste en identificar los parámetros para
obtener las matrices A y de esta manera vincular todos y cada uno de los
eslabones del robot.
Articulación d a
1 0 0
2 90 0 90
3 0 0 0
4 0 0
LECCIÓN 2: CINEMÁTICA INVERSA DEL
MANIPULADOR COMENTARIOS INICIALES
En la mayor parte de las aplicaciones, interesa definir los movimientos del robot
en el espacio cartesiano de manera relacionada con la tarea que se intenta
adelantar. Por lo tanto, para el control del robot se requiere obtener los valores
de las variables articulares, de tal manera que la posición y orientación del
robot, o en particular de su efector final, sea la deseada.
En este punto, surge el compromiso de encontrar los valores que deben asumir
las coordenadas articulares del robot [ ], labor esta que se
constituye en el objetivo central de problema cinemático inverso. De manera
directa y concisa, podemos conjeturar que la obtención de las respectivas
ecuaciones, esta intensamente subordinado a los elementos propios de la
configuración del robot.
noap
0 0 0 1 = tij
Los elementos tij están en función de las coordenadas articulares, por lo que es
factible mediante ciertas combinaciones de las 12 ecuaciones establecidas,
despejar las n variables articulares en función de las componentes de los
vectores.
( )
Cuando tenemos presente solamente los elementos 2 y 3 que se encuentran
situados en un plano (figura 4a), y utilizando el conocido teorema del coseno,
nos encontramos con las expresiones siguientes:
√
(9)
Se llega a obtener
√
( )
Con
(10)
Es fácil apreciar que existen dos soluciones posibles para de acuerdo al tipo
de signos que escojamos en la raíz (positivo o negativo). Estos casos
corresponden a las configuraciones de codo arriba y codo abajo.
Articulación d a
1 0 90
2 0 0 -90
3 0 0 0
Tomando en consideración estos parámetros, de manera ágil obtenemos las
matrices A y la matriz T.
[ ] [ ] [ ]
[ ] [ ]
( ) (16)
Dado que:
[ ]
Luego encontramos:
[ ]
[ ]
[ ]
(18)
( ) [ ]
( ) ( ) [ ]
( )
√( ) ( )
(23)
( ) √( ) ( )
(24)
√( ) ( )
( ) √( ) ( )
(25)
Para cumplir con este y otros propósitos, hemos de contar con la respectiva
relación que involucre las velocidades de las coordenadas articulares, las de
posición y orientación del extremo del robot. La relación que cobija ambos
vectores de velocidad se deriva a través de la denominada matriz Jacobiana.
RELACIONES DIFERENCIALES
La forma más directa para deducir la relación entre las velocidades articulares y
las del extremo del robot, se hace diferenciando las ecuaciones
correspondientes al modelo cinemático directo.
( ) ( ) ( )
( ) ( ) ( )
̇ ∑ ̇ ̇ ∑ ̇ ̇ ∑ ̇
̇ ∑ ̇ ̇ ∑ ̇ ̇ ∑ ̇
̇ ̇
̇
̇
̇
̇
[ ̇] [ ̇] [ ]
JACOBIANA INVERSA
( ) ̇ ̇
[ ( )] [ ̇] [ ̇]
[ ]
CONFIGURACIONES SINGULARES
Tipos:
- Singularidades en los límites del espacio de trabajo del robot.
- Singularidades en el interior del espacio de trabajo del robot.
Requieren su estudio y eliminación.
Las coordenadas (x, y), suministran la posición del robot con respecto a las
coordenadas globales y el ángulo φ su orientación con respecto a un eje
paralelo al Y. La configuración de la figura a. es la denominada síncrona en la
cual existen transmisiones que permiten orientar las tres ruedas
simultáneamente con una velocidad angular ω y hacer que el vehículo se
desplace con una velocidad lineal v .
( )
( )
Siendo b la vía del vehículo (distancia que separa las dos ruedas centrales). Si se
especifican, la velocidad lineal v y angular ω del vehículo, las velocidades de giro
que hay que aplicar a las ruedas izquierda y derecha son:
( ⁄ )
( ⁄ )
( ) ( )
[ ] [ ( ) ] [ ( ) ]
( ) ( )
[ ( ) ( ) ][ ]
[ ] ( ) [ ] ( ) [ ]
[ ] [ ]
( ) ( )
√
CAPITULO 2: DINÁMICA DEL ROBOT
INTRODUCCIÓN
∑ ̇ ∑ ( )
En donde:
̇
̇
̈
̇
Para facilitar la resolución del problema tendremos en cuenta que las masas M1
y M2 están concentradas en los extremos de los enlaces.
SOLUCION:
Variables articulares θ1 y θ2
>> syms t1 t2 real;
Aceleracion de la gravedad
>> syms g real;
simple (tau)
simplify:
[ l2^2*m2*tdd1+l2^2*m2*tdd2l2*m2*sin(t2)*sin(t1)*g+2*l2*m2*cos(t2)*tdd1
*l1+l2*m2*cos(t2)*cos(t1)*g+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2
*l2*td1*td2l1*sin(t2)*m2*l2*td2^2+m2*tdd1*l1^2+l1*m2*cos(t1)*g+l1*
cos(t2)*m2*l2*td2,l2*m2*(l2*tdd1l2*tdd2sin(t2)*td1^2*l1+sin(t2)*sin(t1)*gco
s(t2)*tdd1*l1cos(t2)*cos(t1)*g)]
radsimp:
[ l2^2*m2*tdd1+l2^2*m2*tdd2l2*m2*sin(t2)*sin(t1)*g+2*l2*m2*cos(t2)*tdd1
*l1+l2*m2*cos(t2)*cos(t1)*g+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2
*l2*td1*td2l1*sin(t2)*m2*l2*td2^2+sin(t2)^2*m2*tdd1*l1^2+l1*sin(t2)^2*m2
*cos(t1)*g+l1*cos (t2)*m2*l2*tdd2+cos(t2)^2*m2*tdd1*l1^2+l1*cos(t2)^2*m2
*cos(t1)*g,(l2*tdd1+l2*tdd2+sin(t2)*td1^2*l1sin(t2)*sin(t1)*g+cos(t2)*tdd1*l1
+cos(t2)*cos(t1)*g)*l2*m2]
combine (trig):
[l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*g*cos(t2+t1)+2*l2*m2*cos(t2)*tdd1*l+l
1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2*l2*td1*td2l1*sin(t2)*m2*l2*t
d2^2+l1*m2*cos(t1)*g+m2*tdd1*l1^2+l1*cos(t2)*m2*l2*tdd2,l2^2*m2*tdd1+
l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1+l2*m2*g*cos(t2+t1)+l2*m2*cos(t2)*td
d1*l1]
factor:
[l2^2*m2*tdd1+l2^2*m2*tdd2l2*m2*sin(t2)*sin(t1)*g+2*l2*m2*cos(t2)*tdd1
*l1+l2*m2*cos(t2)*cos(t1)*g+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2
*l2*td1*td2l1*sin(t2)*m2*l2*td2^2+sin(t2)^2*m2*tdd1*l1^2+l1*sin(t2)^2*m2
*cos(t1)*g+l1*cos(t2)*m2*l2*tdd2+cos(t2)^2*m2*tdd1*l1^2+l1*cos(t2)^2*m2
*cos(t1)*g,l2*m2*(l2*tdd1l2*tdd2sin(t2)*td1^2*l1+sin(t2)*sin(t1)*gcos(t2)*td
d1*l1cos(t2)*cos(t1)*g)]
expand:
[l2^2*m2*tdd1+l2^2*m2*tdd2l2*m2*sin(t2)*sin(t1)*g+2*l2*m2*cos(t2)*tdd1
*l1+l2*m2*cos(t2)*cos(t1)*g+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2
*l2*td1*td2l1*sin(t2)*m2*l2*td2^2+sin(t2)^2*m2*tdd1*l1^2+l1*sin(t2)^2*m2
*cos(t1)*g+l1*cos(t2)*m2*l2*tdd2+cos(t2)^2*m2*tdd1*l1^2+l1*cos(t2)^2*m2
*cos(t1)*g,l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1l2*m2*sin(t2
)*sin(t1)*g+l2*m2*cos(t2)*tdd1*l1+l2*m2*cos(t2)*cos(t1)*g]
combine:
[l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*g*cos(t2+t1)+2*l2*m2*cos(t2)*tdd1*l1
+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2*l2*td1*td2l1*sin(t2)*m2*l2
*td2^2+l1*m2*cos(t1)*g+m2*tdd1*l1^2+l1*cos(t2)*m2*l2*tdd2,l2^2*m2*tdd
1+l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1+l2*m2*g*cos(t2+t1)+l2*m2*cos(t2)
*tdd1*l1]
convert(exp):
[l2*m2*((tdd1+tdd2)*l2+1/2*i*(exp(i*t2)1/exp(i*t2))*(td1^2*l11/2*i*(exp(i*t1
)1/exp(i*t1))*g)+(1/2*exp(i*t2)+1/2/exp(i*t2))*(tdd1*l1+(1/2*exp(i*t1)+1/2/ex
p(i*t1))*g))+l1*m1*(tdd1*l1+(1/2*exp(i*t1)+1/2/exp(i*t1))*g)+l1*(1/2*i*(exp(i
*t2)1/exp(i*t2))*m2*((td1+td2)^2*l2+(1/2*exp(i*t2)+1/2/exp(i*t2))*(td1^2*l1
1/2*i*(exp(i*t1)1/exp(i*t1))*g)1/2*i*(exp(i*t2)1/exp(i*t2))*(tdd1*l1+(1/2*exp(
i*t1)+1/2/exp(i*t1))*g))+(1/2*exp(i*t2)+1/2/exp(i*t2))*m2*((tdd1+tdd2)*l2+1/
2*i*(exp(i*t2)1/exp(i*t2))*(td1^2*l11/2*i*(exp(i*t1)1/exp(i*t1))*g)+(1/2*exp(i
*t2)+1/2/exp(i*t2))*(tdd1*l1+(1/2*exp(i*t1)+1/2/exp(i*t1))*g))),l2*m2*((tdd1+
tdd2)*l2+1/2*i*(exp(i*t2)1/exp(i*t2))*(td1^2*l11/2*i*(exp(i*t1)1/exp(i*t1))*g)
+(1/2*exp(i*t2)+1/2/exp(i*t2))*(tdd1*l1+(1/2*exp(i*t1)+1/2/exp(i*t1))*g))]
convert(sincos):
[l2*m2*((tdd1+tdd2)*l2sin(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*
g))+l1*m1*(tdd1*l1+cos(t1)*g)+l1*(s in(t2)*m2*((td1+td2)^2*l2+cos(t2)*(td1^
2*l1+sin(t1)*g)+sin(t2)*(tdd1*l1+cos(t1)*g))+cos(t2)*m2*((tdd1+tdd2)*l2sin(
t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))),l2*m2*((tdd1+tdd2)*l2s
in(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))]
convert(tan):
[l2*m2*((tdd1+tdd2)*l22*tan(1/2*t2)/(1+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2
*t1)/(1+tan(1/2*t1)^2)*g)+(1tan(1/2*t2)^2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(
1/2*t1)^2)/(1+tan(1/2*t1)^2)*g))+l1*m1*(tdd1*l1+(1tan(1/2*t1)^2)/(1+tan(1/
2*t1)^2)*g)+l1*(2*tan(1/2*t2)/(1+tan(1/2*t2)^2)*m2*((td1+td2)^2*l2+(1tan(
1/2*t2)^2)/(1+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2*t1)/(1+tan(1/2*t1)^2)*g)+
2*tan(1/2*t2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(1/2*t1)^2)/(1+tan(1/2*t1)^2)
*g))+(1tan(1/2*t2)^2)/(1+tan(1/2*t2)^2)*m2*((tdd1+tdd2)*l22*tan(1/2*t2)/(1
+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2*t1)/(1+tan(1/2*t1)^2)*g)+(1tan(1/2*t2)^
2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(1/2*t1)^2)/(1+tan(1/2*t1)^2)*g))),l2*m*(
(tdd1+tdd2)*l22*tan(1/2*t2)/(1+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2*t1)/(1+t
an(1/2*t1)^2)*g)+(1tan(1/2*t2)^2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(
1/2*t1)^2)/(1+tan(1/2*t1)^2)*g))]
collect(t1):
[l2*m2*((tdd1+tdd2)*l2sin(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*
g))+l1*m1*(tdd1*l1+cos(t1)*g)+l1*(s in(t2)*m2*((td1+td2)^2*l2+cos(t2)*(td1^
2*l1+sin(t1)*g)+sin(t2)*(tdd1*l1+cos(t1)*g))+cos(t2)*m2*((tdd1+tdd2)*l2sin(
t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))),l2*m2*((tdd1+tdd2)*l2s
in(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))]
mwcos2sin:
[l2*m2*((tdd1+tdd2)*l2sin(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*
g))+l1*m1*(tdd1*l1+cos(t1)*g)+l1*(s in(t2)*m2*((td1+td2)^2*l2+cos(t2)*(td1^
2*l1+sin(t1)*g)+sin(t2)*(tdd1*l1+cos(t1)*g))+cos(t2)*m2*((tdd1+tdd2)*l2sin(
t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))),l2*m2*((tdd1+tdd2)*l2s
in(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))]
ans =
[l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*g*cos(t2+t1)+2*l2*m2*cos(t2)*tdd1*l+l
1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2*l2*td1*td2l1*sin(t2)*m2*l2*t
d2^2+l1*m2*cos(t1)*g+m2*tdd1*l1^2+l1*cos(t2)*m2*l2*tdd2,l2^2*m2*tdd1+
l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1+l2*m2*g*cos(t2+t1)+l2*m2*cos(t2)*td
d1*l1]
Matriz de masas
La función rne nos permite obtener el modelo dinámico. Para que esto
funcione, simplemente debemos pasarle una matriz de parámetros dyn con el
formato apropiado.
La función rne nos devuelve como resultado los pares ejercidos en cada
articulación.
LECCIÓN 4:
TRANSFORMACIONES HOMOGÉNEAS Y
CINEMÁTICA DEL ROBOT (Ejemplo)
DESCRIPCIÓN GENERAL
[ ]
Donde a = x / w, b = y / w, c = z / w y w es un factor de escala. Por ejemplo,
cualquiera de las siguientes matrices se utiliza para la representación del vector
v = 25i+10j+20k.
[ ]
Vectores de la forma anterior los podemos emplear para definir la posición del
extremo del brazo para un manipulador de robot. Cuando w = 0, entonces el
vector representa una dirección única.
u=HV
EJEMPLO:
Para el vector V = 25i + 10j + 20k realizar una traslación para una distancia 8 en
la dirección x, 5 en la dirección y 0 en la dirección z.
SOLUCION:
>> a = 8, b= 5, c = 0
a=
8
b=
5
c=
0
>> HV = H * V
HV =
33
15
20
1
diary off
LECCIÓN 5:
MODELO DIRECTO DEL MANIPULADOR:
IMPLEMENTACIÓN COMPUTACIONAL (Ejemplo)
syms t1 t2 t3 real
syms l1 l2 real
dh = [ 0 0 t1 0 0 ; 0 l1 t2 0 0 ; 0 l2 t3 0 0 ]
dh =
[ 0, 0, t1, 0, 0]
[ 0, l1, t2, 0, 0]
[ 0, l2, t3, 0, 0]
q =[t1 t2 t3] ;
T=simple (fkine (dh,q) )
T=
[cos (t1+ t2+ t3 ) , sin( t1+ t2+ t3 ), 0, cos ( t1+t2)* l2 + cos (t1)*l1][sin(t1+
t2+ t3), cos ( t1+ t2+ t3), 0, sin( t1+ t2)* l2+ sin( t1) * l1][ 0, 0, 1,0][0,0,0,1]
diary off
CAPITULO 3: IMPLEMENTACIONES
COMPUTACIONALES COMENTARIOS
PRELIMINARES
SOLUCION:
Variables articulares θ1
SOLUCION:
SOLUCION:
>> dh = [ 0 0 t1 0 0 ; 0 l1 t2 0 0 ; 0 l2 t3 0 0 ] ;
>> q = [ t1 t2 t3 ] ;
>> v0 = [ 0 0 0 ]' ;
Vector velocidad angular del {0}
>> w0 = [ 0 0 0 ]' ;
Existe un modelo que relaciona los pares de control en las articulaciones, con la
evolución de las variables articulares. Si nos proponemos simular el
comportamiento dinámico del manipulador ante determinados pares, se
requiere para lograr esto, resolver el modelo que nos conduce a las trayectorias
circulares.
m1 = 2 Kg, m2 = 1 Kg,
l1 = 3 m, l2 = 1 m.
SOLUCION:
>> m1 = 2 ; m2 = 1 ; l1 = 3 ; l2 =1 ;
>> dyn = [ 0 0 0 0 0 m1 l1 0 0 0 0 0 0 0 0 0 1 0 0 0 ; 0 l1 0 0 0 m2 l2 0 0 0 0 0 0 0 0
01000];
Integramos la dinámica
>> [ tsim, q, qd] fdyn (dyn, 0, 10, 'taucap5', [0 0]',[ 0 0]', [0 9.81 0] ) ;
>> dh = [0 0 0 0 0 ; 0 3 0 0 0 ] ;
plotbot (dh, q, 'd')
EJEMPLO:
>> r = robot ({ L1 L2 } )
r=
noname (2 axis, RR)
LECCIÓN 1: EJEMPLO
∏ [ ]
>> TA = [1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ]
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
LECCIÓN 2: EJEMPLO
SOLUCIÓN:
La traslación según 0 d 0T
PenB =
px
py
0
1
>> v2 = [ 0 d 0 ]
v2 =
[ 0 , d , 0]
DESCRIPCIÓN:
SOLUCIÓN:
>> TO = transl ( [ 0 0 0 ] )
TO =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> t = [ 0 : 0.056 : 10 ] ;
>> r = jtraj( 0 , 1 , t) ;
>> TC = ctraj (TO, T1, r) ;
>> plot ( t , transl ( TC ) ) ;
>> grid on
Un ejemplo simple.
DESCRIPCIÓN:
>> q1 = quaternion ( t )
q1 =
0.995 <0.099833, 0, 0>
>> q2 = quaternion ( roty ( 0.3 ) )
q2 =
0.98877 <0, 0.14944, 0>
>> q1 * q2
ans =
0.98383 <0.098712, 0.14869, 0.014919>
>> q1 * q1
ans =
0.98007 <0.19867, 0, 0>
>> q1^ 2
ans =
0.98007 <0.19867, 0, 0>
>> q1 * inv ( q1 )
ans =
1 <0, 0, 0>
>> q1 / q1
ans =
1 <0, 0, 0>
>> q1 / q2
ans =
0.98383 <0.098712, -0.14869,-0.014919>
>> q2 / q2
ans =
1 <0, 0, 0>
>> q1 * q2 ^ (-1)
ans =
0.98383 <0.098712, -0.14869,-0.014919>
( )
Los datos del cuerpo para el péndulo simple ( la masa y las propiedades
geométricas del cuerpo).
>> t1= 0 ; t2 = 0 ; t3 = 0 ;
>> l1 = 4 ; l2 = 3 ;
>> x = 0 : 0.05 :5 ;
>> y = sqrt ( 25 x.^2 ) ;
Cálculo del modelo inverso para cada uno de los puntos de la trayectoria,
usando un vector inicial q0 = [0 0 0] y una máscara M = [1 1 0 0 0 1].
>> rotate3d
LECCIÓN 2: Obtención del Jacobiano del robot
manipulador Puma 560
SOLUCIÓN:
Ingreso de las derivadas de las variables articulares (θ'1, θ'2, θ'3, θ'4, θ'5, y θ'6).
>> q = [ t1 t2 t3 t4 t5 t6 ]
q=
[ t1 , t2 , t3 , t4 , t5 , t6 ]
>> v0 = [ 0 0 0 ] '
v0 =
0
0
0
Ingreso del vector velocidad angular del marco { 0 }
>> w0 = [0 0 0] '
w0 =
0
0
0
>> z = simple (velprop( dh,q,qd,v0,w0 ) )
z=
cos(t6)*(cos(t5)*(cos(t4)*(cos(t3)*cos(t2)*td1*d3+sin(t3)*(td2*a2+sin(t2)*td1*
d3)(td2+td3)*d4)sin(t4)*(cos(t2)*td1*a2+(cos(t3)*sin(t2)*td1sin(t3)*cos(t2)*td
1)*d4(sin(t3)*sin(t2)*td1cos(t3)*cos(t2)*td1)*a3))+sin(t5)*(sin(t3)*cos(t2)*td1
*d3+cos(t3)*(td2*a2+sin(t2)*td1*d3)+(td2+td3)*a3))sin(t6)*(sin(t4)*(cos(t3)*c
os(t2)*td1*d3+sin(t3)*(td2*a2+sin(t2)*td1*d3)(td2+td3)*d4)+cos(t4)*(cos(t2)*
td1*a2+(cos(t3)*sin(t2)*td1sin(t3)*cos(t2)*td1)*d4(sin(t3)*sin(t2)*td1cos(t3)*c
os(t2)*td1)*a3))sin(t6)*(cos(t5)*(cos(t4)*(cos(t3)*cos(t2)*td1*d3+sin(t3)*(td2*
a2+sin(t2)*td1*d3)(td2+td3)*d4)sin(t4)*(cos(t2)*td1*a2+(cos(t3)*sin(t2)*td1si
n(t3)*cos(t2)*td1)*d4(sin(t3)*sin(t2)*td1cos(t3)*cos(t2)*td1)*a3))+sin(t5)*(sin(
t3)*cos(t2)*td1*d3+cos(t3)*(td2*a2+sin(t2)*td1*d3)+(td2+td3)*a3))cos(t6)*(si
n(t4)*(cos(t3)*cos(t2)*td1*d3+sin(t3)*(td2*a2+sin(t2)*td1*d3)(td2+td3)*d4)+c
os(t4)*(cos(t2)*td1*a2+(cos(t3)*sin(t2)*td1sin(t3)*cos(t2)*td1)*d4(sin(t3)*sin(
t2)*td1cos(t3)*cos(t2)*td1)*a3))sin(t5)*(cos(t4)*(cos(t3)*cos(t2)*td1*d3+sin(t
3)*(td2*a2+sin(t2)*td1*d3)(td2+td3)*d4)sin(t4)*(cos(t2)*td1*a2+(cos(t3)*sin(t
2)*td1sin(t3)*cos(t2)*td1)*d4(sin(t3)*sin(t2)*td1cos(t3)*cos(t2)*td1)*a3))+cos
(t5)*(sin(t3)*cos(t2)*td1*d3+cos(t3)*(td2*a2+sin(t2)*td1*d3)+(td2+td3)*a3)
cos(t6)*(cos(t5)*(cos(t4)*(cos(t3)*sin(t2)*td1sin(t3)*cos(t2)*td1)sin(t4)*(td2+t
d3))+sin(t5)*(sin(t3)*sin(t2)*td1cos(t3)*cos(t2)*td1+td4))sin(t6)*(sin(t4)*(cos(
t3)*sin(t2)*td1sin(t3)*cos(t2)*td1)+cos(t4)*(td2+td3)+td5)sin(t6)*(cos(t5)*(cos
(t4)*(cos(t3)*sin(t2)*td1sin(t3)*cos(t2)*td1)sin(t4)*(td2+td3))+sin(t5)*(sin(t3)si
n(t2)*td1cos(t3)*cos(t2)*td1+td4))cos(t6)*(sin(t4)*(cos(t3)*sin(t2)*td1sin(t3)*c
os(t2)*td1)+cos(t4)*(td2+td3)+td5)sin(t5)*(cos(t4)*(cos(t3)*sin(t2)*td1sin(t3)*
cos(t2)*td1)sin(t4)*(td2+td3))+cos(t5)*(sin(t3)*sin(t2)*td1cos(t3)*cos(t2)*td1+
td4)+td6
Ahora procedemos a emplear el Jacobiano
J=
[(cos(t2)*(cos(t3)*(cos(t4)*cos(t5)*cos(t6)sin(t4)*sin(t6))sin(t3)*sin(t5)*cos(t6))
+sin(t2)*(sin(t3)*(cos(t4)*cos(t5)*cos(t6)sin(t4)*sin(t6))+cos(t3)*sin(t5)*cos(t6)
))*d3+(sin(t4)*cos(t5)*cos(t6)cos(t4)*sin(t6))*(cos(t2)*(cos(t3)*a3sin(t3)*d4+a2
)sin(t2)*(sin(t3)*a3+cos(t3)*d4)),(cos(t3)*(cos(t4)*cos(t5)*cos(t6)sin(t4)*sin(t6)
)+sin(t3)*sin(t5)*cos(t6))*(sin(t3)*a3+cos(t3)*d4)+(sin(t3)*(cos(t4)*cos(t5)*cos(
t6)sin(t4)*sin(t6))+cos(t3)*sin(t5)*cos(t6))*(cos(t3)*a3sin(t3)*d4+a2),*cos(t4)*c
os(t5)*cos(t6)+sin(t4)*sin(t6))*d4+sin(t5)*cos(t6)*a3,0,0,0][(cos(t2)*(cos(t3)*(c
os(t4)*cos(t5)*sin(t6)sin(t4)*cos(t6))+sin(t3)*sin(t6)*sin(t5))+sin(t2)*(sin(t3)*(c
os(t4)*cos(t5)*sin(t6)sin(t4)*cos(t6))cos(t3)*sin(t6)*sin(t5)))*d3+(sin(t4)*cos(t5
)*sin(t6)cos(t4)*cos(t6))*(cos(t2)*(cos(t3)*a3sin(t3)*d4+a2)sin(t2)*(sin(t3)*a3+
cos(t3)*d4)),(cos(t3)*(cos(t4)*cos(t5)*sin(t6)sin(t4)*cos(t6))sin(t3)*sin(t6)*sin(t
5))*(sin(t3)*a3+cos(t3)*d4)+(sin(t3)*(cos(t4)*cos(t5)*sin(t6)sin(t4)*cos(t6))cos(
t3)*sin(t6)*sin(t5))*(cos(t3)*a3sin(t3)*d4+a2),(cos(t4)*cos(t5)*sin(t6)+sin(t4)*c
os(t6))*d4sin(t6)*sin(t5)*a3,0,0,0][(cos(t2)*(cos(t3)*cos(t4)*sin(t5)sin(t3)*cos(t
5))+sin(t2)*(sin(t3)*cos(t4)*sin(t5)+cos(t3)*cos(t5)))*d3+sin(t4)*sin(t5)*(cos(t2)
*(cos(t3)*a3sin(t3)*d4+a2)sin(t2)*(sin(t3)*a3+cos(t3)*d4)),(cos(t3)*cos(t4)*sin(
t5)+sin(t3)*cos(t5))*(sin(t3)*a3+cos(t3)*d4)+(sin(t3)*cos(t4)*sin(t5)+cos(t3)*co
s(t5))*(cos(t3)*a3sin(t3)*d4+a2),cos(t4)*sin(t5)*d4+cos(t5)*a3,0,0,0][sin(t2)*(c
os(t3)*(cos(t4)*cos(t5)*cos(t6)sin(t4)*sin(t6))sin(t3)*sin(t5)*cos(t6))cos(t2)*(sin
(t3)*(cos(t4)*cos(t5)*cos(t6)sin(t4)*sin(t6))+cos(t3)*sin(t5)*cos(t6)),sin(t4)*cos(
t5)*cos(t6)cos(t4)*sin(t6),sin(t4)*cos(t5)*cos(t6)cos(t4)*sin(t6),sin(t5)*cos(t6),
sin(t6),0][sin(t2)*(cos(t3)*(cos(t4)*cos(t5)*sin(t6)sin(t4)*cos(t6))+sin(t3)*sin(t6)
*sin(t5))cos(t2)*(sin(t3)*(cos(t4)*cos(t5)*sin(t6)sin(t4)*cos(t6))cos(t3)*sin(t6)*s
in(t5)),sin(t4)*cos(t5)*sin(t6)cos(t4)*cos(t6),sin(t4)*cos(t5)*sin(t6)cos(t4)*cos(t
6),sin(t6)*sin(t5),cos(t6),0][sin(t2)*(cos(t3)*cos(t4)*sin(t5)sin(t3)*cos(t5))cos(
t2)*(sin(t3)*cos(t4)*sin(t5)+cos(t3)*cos(t5)),sin(t4)*sin(t5),sin(t4)*sin(t5),cos(t5
),0,1]
>> puma560
Visualización respectiva
>> L.RP
ans =
R
>> L.mdh
ans =
0
>> L.G = 100
L=
1.570796 0.020000 0.000000 0.150000 R (std)
>> L.Tc = 5
L=
1.570796 0.020000 0.000000 0.150000 R (std)
>> L
L=
1.570796 0.020000 0.000000 0.150000 R (std)
Visualización de los parámetros.
>> showlink ( L )
alpha = 1.5708
A = 0.02
theta = 0
D = 0.15
sigma = 0
mdh = 0
offset = 0
m=
r=
I=
Jm =
G = 100
B=0
Tc = 5 -5
qlim =
Jm = 0.0002
G = 107.815
B = 0.000817
Tc = 0.126 -0.071
qlim =
EJEMPLO:
>> L1=1
>> L2=1
>> th1 = 0: (pi / 2 ) / 20 : pi /2
th1 =
Columns 1 through 8
0 0.0785 0.1571 0.2356 0.3142 0.3927 0.4712 0.5498
Columns 9 through 16
0.6283 0.7069 0.7854 0.8639 0.9425 1.0210 1.0996 1.1781
Columns 17 through 21
1.2566 1.3352 1.4137 1.4923 1.5708
>> th2 = 0: ( pi / 2 ) / 20 : pi /2 ;
>> px = L1*cos ( th1 ) + L2 *cos ( th1+ th2 )
px =
Columns 1 through 8
2.0000 1.9846 1.9387 1.8634 1.7601 1.6310 1.4788 1.3066
Columns 9 through 16
1.1180 0.9168 0.7071 0.4930 0.2788 0.0685 0.1338 0.3244
Columns 17 through 21
-0.5000 -0.6576 -0.7946 -0.9092 -1.0000
>> py = L1 * sin ( th1) + L2 *sin (th1+ th2)
py =
Columns 1 through 8
0 0.2349 0.4655 0.6874 0.8968 1.0898 1.2630 1.4135
Columns 9 through 16
1.5388 1.6371 1.7071 1.7481 1.7601 1.7436 1.7000 1.6310
Columns 17 through 21
1.5388 1.4264 1.2967 1.1534 1.0000
EJEMPLO:
Consideremos el manipulador ilustrado en la figura, el cual consta de dos
articulaciones de rotación, y sus masas están concentradas en sus extremos
respectivos. Se trata de obtener el modelo dinámico, mediante el par
correspondiente a los términos centrífugos y de Coriolis, cuya función se deriva
de las ecuaciones de Newton-Euler.
SOLUCION:
Variables articulares θ1 y θ2
>> syms t1 t2 real ;
Velocidades articulares θ'1 y θ'2
>> syms td1 td2 real ;
Aceleraciones articulares
θ''1 y θ''2
>> syms tdd1 tdd2 real ;
Longitudes de los enlaces ( l1 y l2 )
>> syms l1 l2 real ;
Masas de los enlaces ( m1 y m2 )
>> syms m1 m2 real ;
Aceleración de la gravedad
>> syms g real ;
>> dyn = [ 0 0 t1 0 0 m1 l1 0 0 0 0 0 0 0 0 0 1 0 0 0 ; 0 l1 t2 0 0 m2 l2 0 0 0 0 0 0 0
001000]
dyn =
[ 0, 0, t1, 0, 0, m1, l1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
[ 0, l1, t2, 0, 0, m2, l2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
expand:
[l2^2*m2*tdd1+l2^2*m2*tdd2l2*m2*sin(t2)*sin(t1)*g+2*l2*m2*cos(t2)*tdd1
*l1+l2*m2*cos(t2)*cos(t1)*g+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2
*l2*td1*td2l1*sin(t2)*m2*l2*td2^2+sin(t2)^2*m2*tdd1*l1^2+l1*sin(t2)^2*m2
*cos(t1)*g+l1*cos(t2)*m2*l2*tdd2+cos(t2)^2*m2*tdd1*l1^2+l1*cos(t2)^2*m2
*cos(t1)*g,l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1l2*m2*sin(t2
)*sin(t1)*g+l2*m2*cos(t2)*tdd1*l1+l2*m2*cos(t2)*cos(t1)*g]
combine:
[l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*g*cos(t2+t1)+2*l2*m2*cos(t2)*tdd1*l1
+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2*l2*td1*td2l1*sin(t2)*m2*l2
*td2^2+l1*m2*cos(t1)*g+m2*tdd1*l1^2+l1*cos(t2)*m2*l2*tdd2,l2^2*m2*tdd
1+l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1+l2*m2*g*cos(t2+t1)+l2*m2*cos(t2)
*tdd1*l1]
convert(exp):
[l2*m2*((tdd1+tdd2)*l2+1/2*i*(exp(i*t2)1/exp(i*t2))*(td1^2*l11/2*i*(exp(i*t1
)1/exp(i*t1))*g)+(1/2*exp(i*t2)+1/2/exp(i*t2))*(tdd1*l1+(1/2*exp(i*t1)+1/2/e
xp(i*t1))*g))+l1*m1*(tdd1*l1+(1/2*exp(i*t1)+1/2/exp(i*t1))*g)+l1*(1/2*i*(exp(
i*t2)1/exp(i*t2))*m2*((td1+td2)^2*l2+(1/2*exp(i*t2)+1/2/exp(i*t2))*(td1^2*l1
1/2*i*(exp(i*t1)1/exp(i*t1))*g)1/2*i*(exp(i*t2)1/exp(i*t2))*(tdd1*l1+(1/2*exp(
i*t1)+1/2/exp(i*t1))*g))+(1/2*exp(i*t2)+1/2/exp(i*t2))*m2*((tdd1+tdd2)*l2+1/
2*i*(exp(i*t2)1/exp(i*t2))*(td1^2*l11/2*i*(exp(i*t1)1/exp(i*t1))*g)+(1/2*exp(i
*t2)+1/2/exp(i*t2))*(tdd1*l1+(1/2*exp(i*t1)+1/2/exp(i*t1))*g))),l2*m2*((tdd1+
tdd2)*l2+1/2*i*(exp(i*t2)1/exp(i*t2))*(td1^2*l11/2*i*(exp(i*t1)1/exp(i*t1))*g)
+(1/2*exp(i*t2)+1/2/exp(i*t2))*(tdd1*l1+(1/2*exp(i*t1)+1/2/e xp(i*t1))*g))]
convert(sincos):
[l2*m2*((tdd1+tdd2)*l2sin(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*
g))+l1*m1*(tdd1*l1+cos(t1)* g)+l1*(sin(t2)*m2*((td1+td2)^2*l2+cos(t2)*(td1^
2*l1+sin(t1)*g)+sin(t2)*(tdd1*l1+cos(t1)*g))+cos(t2)*m2*((tdd1+tdd2)* l2sin(
t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))),l2*m2*((tdd1+tdd2)*l2s
in(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))]
convert(tan):
[l2*m2*((tdd1+tdd2)*l22*tan(1/2*t2)/(1+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2
*t1)/(1+tan(1/2*t1)^2)*g)+(1tan(1/2*t2)^2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(
1/2*t1)^2)/(1+tan(1/2*t1)^2)*g))+l1*m1*(tdd1*l1+(1tan(1/2*t1)^2)/(1+tan(1/
2*t1)^2)*g)+l1*(2*tan(1/2*t2)/(1+tan(1/2*t2)^2)*m2*((td1+td2)^2*l2+(1tan(
1/2*t2)^2)/(1+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2*t1)/(1+tan(1/2*t1)^2)*g)+
2*tan(1/2*t2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(1/2*t1)^2)/(1+tan(1/2*t1)^2)
*g))+(1tan(1/2*t2)^2)/(1+tan(1/2*t2)^2)*m2*((tdd1+tdd2)*l22*tan(1/2*t2)/(1
+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2*t1)/(1+tan(1/2*t1)^2)*g)+(1tan(1/2*t2)^
2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(1/2*t1)^2)/(1+tan(1/2*t1)^2)*g))),l2*m2
*((tdd1+tdd2)*l22*tan(1/2*t2)/(1+tan(1/2*t2)^2)*(td1^2*l1+2*tan(1/2*t1)/(1
+tan(1/2*t1)^2)*g)+(1tan(1/2*t2)^2)/(1+tan(1/2*t2)^2)*(tdd1*l1+(1tan(1/2*t1
)^2)/(1+tan(1/2*t1)^2)*g))]
collect(t1):
[l2*m2*((tdd1+tdd2)*l2sin(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*
g))+l1*m1*(tdd1*l1+cos(t1)* g)+l1*(sin(t2)*m2*((td1+td2)^2*l2+cos(t2)*(td1^
2*l1+sin(t1)*g)+sin(t2)*(tdd1*l1+cos(t1)*g))+cos(t2)*m2*((tdd1+tdd2)* l2sin(
t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))),l2*m2*((tdd1+tdd2)*l2s
in(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))]
mwcos2sin:
[l2*m2*((tdd1+tdd2)*l2sin(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*
g))+l1*m1*(tdd1*l1+cos(t1)* g)+l1*(sin(t2)*m2*((td1+td2)^2*l2+cos(t2)*(td1^
2*l1+sin(t1)*g)+sin(t2)*(tdd1*l1+cos(t1)*g))+cos(t2)*m2*((tdd1+tdd2)* l2sin(
t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))),l2*m2*((tdd1+tdd2)*l2s
in(t2)*(td1^2*l1+sin(t1)*g)+cos(t2)*(tdd1*l1+cos(t1)*g))]
ans=
[l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*g*cos(t2+t1)+2*l2*m2*cos(t2)*tdd1*
l1+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m2*l2*td1*td2l1*sin(t2)*m2*l
2*td2^2+l1*m2*cos(t1)*g+m2*tdd1*l1^2+l1*cos(t2)*m2*l2*tdd2,l2^2*m2*td
d1+l2^2*m2*tdd2+l2*m2*sin(t2)*td1^2*l1+l2*m2*g*cos(t2+t1)+l2*m2*cos(t2
)*tdd1*l1]
Evaluación de los términos que aparecen en la expresión del par por separado
Matriz de masas ( M ( θ ))
>> M = inertia (dyn , q)
M=
[l2*m2*(l2+cos(t2)*l1)+l1^2*m1+l1*(m2*sin(t2)^2*l1+cos(t2)*m2*(l2+cos(t
2)*l1)),l2*m2*(l2+cos(t2)*l1)] [l2^2*m2+l1*cos(t2)*m2*l2, l2^2*m2]
Termino gravitatorio G ( θ )
EJEMPLO
EJERCICIOS ILUSTRATIVO
A. MANEJO DEL AUTOMÓVIL DESCRIPCIÓN:
A. FLYBALL GOVERNOR
DESCRIPCIÓN:
DESCRIPCIÓN:
PÁGINAS WEB
http://fliiby.com/file/746518/dodtik04nq.html
http://www.itapizaco.edu.mx/paginas/robo/TTM1/PAG1.html
http://www.newtonium.com/