You are on page 1of 174

2013

CURSO DE ROBTICA AVANZADA

ING. JAIRO PERTUZ OCAMPO

UNIVERSIDAD NACIONAL ABIERTA


Y A DISTANCIA - UNAD
REVISADO Y ACTUALIZADO:
ING. MANUEL ENRIQUE WAGNER
2013

CURSO DE ROBTICA AVANZADA

ING. JAIRO PERTUZ CAMPO

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
PROGRAMA DE INGENIERA ELECTRNICA
BOGOT
2013

Tabla de contenido
UNIDAD 1 .......................................................................................................................................... 6
HERRAMIENTAS MATEMTICAS Y RECURSOS .................................................... 6
COMPUTACIONALES................................................................................................................. 6
CAPTULO 1: HERRAMIENTAS MATEMTICAS ........................................................................... 6
LECCIN 1: REPRESENTACIN DE LA POSICIN .................................................................... 7
LECCIN 2: REPRESENTACIN DE LA ORIENTACIN......................................................... 10
LECCIN 3: NGULOS DE EULER ................................................................................................... 18
LECCIN 4: MATRICES DE TRANSFORMACIN HOMOGNEA ........................................ 21
LECCIN 5: CUATERNIOS ................................................................................................................... 31
CAPTULO II: OPERACIONES MATEMTICAS EN EL ENTORNO DE TRABAJO
COMPUTACIONAL. ................................................................................................................................. 33
LECCIN 1: OPERACIONES GENERALES SOBRE VECTORES. ......................................... 33
LECCIN 2: OPERACIONES GENERALES SOBRE MATRICES. .......................................... 40
LECCIN 3: MATRICES DE TRANSFORMACIN HOMOGNEA: POSICIN................ 48
LECCION 4: MATRICES DE TRANSFORMACION HOMOGENEA: ROTACION .............. 51
LECCIN 5: MATRICES DE TRANSFORMACIN HOMOGNEA: TRASLACIN
SEGUIDA DE ROTACIN ....................................................................................................................... 56
CAPITULO III: IMPLEMENTACIONES COMPUTACIONALES. ................................................ 60
LECCIN 1: REPRESENTACIN DE LA POSICIN: EJECUCIONES
COMPUTACIONALES. ............................................................................................................................. 60
LECCIN 2: REPRESENTACIN DE LA ORIENTACIN, EJECUCIONES
COMPUTACIONALES .............................................................................................................................. 65
LECCIN 3: REPRESENTACIN DE LA POSICIN Y ORIENTACIN: EJECUCIONES
COMPUTACIONALES .............................................................................................................................. 69
LECCIN 4: CONCATENACIN DE LAS OPERACIONES DE TRASLACIN Y
ORIENTACIN, EJECUCIONESCOMPUTACIONALES ............................................................ 72
LECCIN 5: NGULOS DE EULER: EJECUCIONES COMPUTACIONALES ................... 75

SEGUNDA UNIDAD .................................................................................................................. 78

MODELADO CINEMTICO Y DINMICO DE UN ................................................... 78


ROBOT .............................................................................................................................................. 78
CAPITULO 1: ............................................................................................................................................. 78
CINEMTICA DEL ROBOT INTRODUCCIN ................................................................................ 78
LECCIN 1: EL PROBLEMA CINEMTICO DIRECTO DEL MANIPULADOR .................. 79
LECCIN 2: CINEMTICA INVERSA DEL MANIPULADOR .................................................. 85
LECCIN 3: RESOLUCION DEL PROBLEMA CINEMTICO INVERSO MEDIANTE LA
MATRZ DE TRANSFORMACIN HOMOGNEA ........................................................................ 89
LECCIN 4: MATRIZ JACOBIANA DEL MANIPULADOR ....................................................... 94
LECCIN 5: MODELOS DE DIFERENTES CONFIGURACIONES ......................................... 98
CAPITULO 2: DINMICA DEL ROBOT .......................................................................................... 101
INTRODUCCIN .................................................................................................................................... 101
LECCIN 1: ESTRUCTURA MECNICA DE UN ROBOT RGIDO ...................................... 102
LECCIN 2: FORMULACIN DE LAGRANGEEULER ............................................................. 105
LECCIN 3: FORMULACIN DE NEWTONEULER: IMPLEMENTACIN
COMPUTACIONAL .................................................................................................................................. 106
LECCIN 4: TRANSFORMACIONES HOMOGNEAS, CINEMTICA DEL ROBOT ... 112
LECCIN 5: MODELO DIRECTO DEL MANIPULADOR .......................................................... 115
CAPITULO 3: IMPLEMENTACIONES ............................................................................................. 117
COMPUTACIONALES COMENTARIOS .......................................................................................... 117
PRELIMINARES ...................................................................................................................................... 117
LECCIN 1: MODELO DIRECTO DEL MANIPULADOR .......................................................... 120
LECCIN 2: MODELO INVERSO DEL MANIPULADOR .......................................................... 121
LECCIN 3: JACOBIANO DEL MANIPULADOR ........................................................................ 122
LECCIN 4: OBTENCIN DE LAS TRAYECTORIAS ARTICULARES .............................. 125
LECCIN 5: CREACIN DE UN ROBOT: SIMULACIN ........................................................ 126

UNIDAD III: IMPLEMENTACIN Y SIMULACIN ..............................................128


COMPUTACIONAL DE TAREAS ROBTICAS.......................................................128
CAPITULO 1: REPRESENTACIN DE LA ORIENTACIN Y POSICIN ........................... 128

POSICIN ................................................................................................................................................. 128


LECCIN 1: EJEMPLO .......................................................................................................................... 128
LECCIN 2: EJEMPLO .......................................................................................................................... 131
LECCIN 3: EJEMPLO (calcular una trayectoria cartesiana entre dos puntos). . 133
LECCIN 4: EJEMPLO (clculo de cuaternios) ...................................................................... 134
LECCIN 5: CREACIN DE UN MODELO MECNICO (Modelado y simulacin del
pndulo simple). ..................................................................................................................................... 137
CAPITULO 2: MODELOS CINEMTICOS DE ROBOTS ............................................................ 141
EJEMPLO .................................................................................................................................................. 141
LECCIN 1: CINEMTICA INVERSA DE UN MANIPULADOR (trayectoria de
transformaciones). ................................................................................................................................ 141
LECCIN 2: OBTENCIN DEL JACOBIANO DEL ROBOT MANIPULADOR PUMA 560
......................................................................................................................................................................... 144
LECCIN 3: ORIENTACIN Y POSICIN CARTESIANA DEL E.F CONOCIDA LA
ESTRUCTURA CINEMTICA Y LAS COORDENADAS ARTICULARES. ......................... 148
LECCIN 4: CONSTRUCCIN DE UN OBJETO LINK (parmetros cinemticos). . 151
LECCIN 4: ANLISIS CINEMTICO DEL MANIPULADOR RR ........................................ 153
CAPITULO 3: MODELOS DINMICOS DE ROBOTS ................................................................. 157
LECCIN 1: EL MTODO DE NEWTONEULER.......................................................................... 157
LECCIN 2: DINMICA DE UN MANIPULADOR PLANO CON TRES
ARTICULACIONES DE ROTACIN ................................................................................................. 162
LECCIN 3: MANEJO DE UN ROBOT GRFICO ...................................................................... 165
LECCIN 4: MODELADO Y SIMULACIN DE SISTEMAS MECNICOS ........................ 167
LECCIN 5: MODELOS DE MQUINAS SIMPLES ................................................................... 170
EJERCICIOS ILUSTRATIVOS. .......................................................................................................... 170

BIBLIOGRAFIA ..........................................................................................................................174

UNIDAD 1
HERRAMIENTAS MATEMTICAS Y RECURSOS
COMPUTACIONALES
CAPTULO 1: HERRAMIENTAS MATEMTICAS
PARA LA LOCALIZACIN ESPACIAL
INTRODUCCIN
Una de las tareas bsicas de un robot y por lo dems habitual, consiste en la
manipulacin de piezas, lo cual se hace posible, mediante el movimiento
espacial de sus dispositivos extremos. La manipulacin robtica, nos indica que
tanto partes como herramientas, se mueven alrededor del espacio por algn
tipo de mecanismo. Cuando estudiamos la robtica, ineludiblemente nos
interesamos con los detalles de la localizacin 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.
En esta direccin, conviene mencionar, que la informacin de la posicin, al
igual que la posible orientacin de sta con respecto a la base del robot, es
factor determinante para que ste adquiera la habilidad propia que le permita
maniobrar de manera indistinta con las piezas.
Todo lo anterior nos invita a buscar y apropiarnos de un conjunto de
instrumentos y herramientas matemticas, enfocadas a determinar de manera
especfica tanto la posicin como la orientacin en el entorno espacial de
piezas, accesorios y, en general, de cualquier objeto. Los recursos matemticos
que trataremos, deben ofrecer la potencialidad mnima que nos garantice llegar
de manera sencilla a las relaciones espaciales entre los diferentes objetos, y en
especial, entre stos y el manipulador.

Nos dedicaremos a abordar los diferentes mtodos clsicos que representan la


posicin y orientacin espacial de un cuerpo rgido. Iniciamos con la
representacin en dos dimensiones, pasando posteriormente al anlisis
correspondiente a tres, en sus diferentes modalidades, sin omitir el aporte de
los ngulos de Euler cuando se trata de la orientacin. Seguidamente,
ingresamos en el mbito del concepto de la matriz de transformacin
homognea, con lo cual activamos la representacin articulada de la posicin y
orientacin, agrupando propiedades y aplicaciones. Finalizamos, tratando la
representacin de la orientacin, mediante pares de rotacin, conocidos
tambin como cuaternios.

LECCIN 1: REPRESENTACIN DE LA POSICIN


Para definir y manipular cantidades matemticas con las cuales podemos
representar la posicin, nosotros debemos definir sistemas de coordenadas y
establecer las convenciones propias para la representacin respectiva. Es por
esto que nos apoyamos en la concepcin, de que en cualquier parte existe un
sistema de coordenadas, para lo cual todo lo emprendido puede ser
referenciado.
Trataremos el posicionamiento en un plano y en el espacio de tres dimensiones.
El primero cuenta con dos grados de libertad, en donde la posicin debida a un
punto, se define por dos componentes independientes. Para el caso
tridimensional, se requiere usar tres componentes. Comenzaremos con las
coordenadas cartesianas, y seguidamente, presentaremos los otros mtodos de
uso cotidiano, como son, las coordenadas polares para dos dimensiones, y las
cilndricas y esfricas dirigidas a implementar el espacio de tres dimensiones.

REPRESENTACIN DE LA POSICIN EN
COORDENADAS CARTESIANAS
En un plano: Sistema coordenado OXY de referencia, para el cual el punto a se
expresa por las componentes (x, y). A este punto le corresponde un vector p(x,
y).
En el espacio de tres dimensiones: El vector p est definido por las respectivas
componentes cartesianas (x, y, z).

REPRESENTACIN DE LA POSICIN EN
COORDENADAS POLARES Y CILNDRICAS
En un plano: la localizacin de un punto, es decir, el vector p, se expresa como
p (r, ) en coordenadas polares.
En esta representacin, r es la distancia desde el origen O hasta extremo del
vector p; en tanto que es el ngulo formado por el vector p con el eje OX.
En tres dimensiones: el vector p, queda expresado como p (r, , Z) mediante
las coordenadas cilndricas.

REPRESENTACIN DE LA POSICIN EN
COORDENADAS ESFRICAS
En este caso, el vector p posee como coordenadas esfricas (r, , ), en donde
la componente r es la distancia que va desde el origen O hasta el extremo del
vector p; la componente es el ngulo formado por la proyeccin del vector p
sobre el plano OXY con el eje OX; y la componente es el ngulo formado por
el vector p con el eje OZ.

LECCIN 2: REPRESENTACIN DE LA
ORIENTACIN
Cuando necesitamos definir un punto en el espacio, es suficiente a travs de los
datos correspondientes a su posicin. Pero, para el caso de un slido, se precisa
adicionalmente contar con su orientacin respecto a un sistema de referencia.
Para el caso que nos ocupa, es decir, el de un robot, adems de especificar la
posicin de extremo, tambin se requiere indicar su orientacin. Una
orientacin referida al espacio tridimensional, la podemos definir mediante tres
grados de libertad, lo que se traduce como tres componentes linealmente
independientes. La orientacin de un objeto respecto a un sistema de
referencia, se intenta de manera habitual y relativamente cmoda, asignando al
objeto un nuevo sistema, y luego se estudia la relacin espacial que existe entre
estos dos sistemas, cuya versin es la de coordenadas rectangulares.
Casi siempre, esta relacin se presenta mediante la posicin y orientacin del
sistema, asociado al objeto respecto al de referencia. Para poder ejecutar el
anlisis de los diferentes mtodos con los cuales se representan las
orientaciones, se consideran que ambos coinciden en el origen, y que por
consiguiente no se registra cambio de posicin entre ellos.
El sistema de coordenadas que esta fijo en el espacio tridimensional, se
considera que es el sistema de referencia. El otro sistema de coordenadas est
girando con respecto al sistema de referencia.
Fsicamente, podemos considerar que este sistema de coordenadas, es un
sistema de coordenadas ligado al cuerpo. Es decir, se encuentra permanente y
convenientemente unido al cuerpo rgido (por ejemplo, un elemento del brazo
del robot) y se mueve junto con l. Un punto p en el espacio se puede
representar por sus coordenadas con respecto a ambos sistemas de
coordenadas.
Una forma que facilita el anlisis, consiste en considerar al punto en reposo y
fijo con respecto al sistema que representa el giro. De esta manera, el punto p

se puede representar por sus coordenadas, con respecto a ambos sistemas de


coordenadas.
Para definir y manipular cantidades matemticas con las cuales podemos
representar la orientacin, nosotros debemos definir sistemas de coordenadas
y establecer las convenciones propias para la representacin respectiva.

MATRICES DE ROTACIN
En el espacio del algebra matricial, encontramos el nicho adecuado que
contiene todos los ingredientes esenciales, los cuales hacen posible que
podamos adentrarnos en la tarea de la descripcin de las orientaciones.
Los dos sistemas de referencia arriba mencionados son: OXY y OUV.
El sistema OXY es el de referencia fija, y el sistema OUV es el mvil solidario al
objeto. Los vectores unitarios del sistema OXY son
en tanto que los del
sistema OUV son
.
La representacin en ambos sistemas del vector p en el plano, se registra de la
siguiente manera:

Podemos encontrar algunas equivalencias, despus de realizar una serie de


transformaciones:
[

En donde
R=[

es denominada matriz de rotacin. Esta matriz es la encargada de definir la


orientacin del sistema OUV respecto al otro sistema OXY, la cual se emplea
para transformar las coordenadas de un vector expresado en un sistema, en las
del otro.
Por ser una matriz ortonormal, cumple la condicin
, tambin se le
conoce como matriz de cosenos directores.
Para el caso de dos dimensiones, la posicin relativa al sistema OUV girado un
ngulo a sobre el sistema OXY, la matriz R ser de la forma:
[

RESUMIENDO: MATRICES DE ROTACIN 2D

En un espacio tridimensional:
Los vectores unitarios del sistema OXY
OUVW son
.

, mientras que los del sistema

La correspondiente representacin del vector p queda as:


[
[

]
]

En este caso, tambin se obtiene la equivalencia siguiente:

[ ]
En donde,

Que, como en el caso anterior, representa la matriz de rotacin, mediante la


cual definimos la orientacin del sistema OUVW con respecto al sistema OXYZ
Ahora, cuando el eje OU coincide con el eje OX, la orientacin del sistema
OUVW queda representada por la matriz:

De igual manera, podemos representar la orientacin del sistema OUVW,


cuando el eje OV coincide con el OY,

En cuyo caso estar representada mediante la correspondiente matriz:

)=[

Ahora, se considera la orientacin del sistema OUVW, cuando el eje OW


coincide con el eje OZ, en cuyo caso, la representacin grafica y la
correspondiente matriz, son:

)=[

RESUMIENDO: MATRICES DE ROTACIN 3D

REPRESENTACIN DE LA ORIENTACIN.
COMPOSICIN DE ROTACIONES
Algunos movimientos efectuados por un robot, o algunas de sus piezas, son el
resultado de la aplicacin continua y combinada de varias rotaciones. La
respectiva definicin y manipulacin de las cantidades matemticas asociadas,
se resuelve mediante la operacin llamada composicin de matrices de
rotacin.
Consideremos la situacin siguiente: al sistema OUVW tratado anteriormente
se le aplica una rotacin con ngulo sobre OX, la cual es seguida de una
rotacin de ngulo
sobre OY, ms la rotacin de ngulo sobre OZ. La
rotacin resultante global requerida por el movimiento especifico, la podemos
resumir de la manera siguiente:
1. Rotacin sobre OX.
2. Rotacin sobre OY.
3. Rotacin sobre OZ.
Y representarla mediante la expresin:

) (

) (

][

][

NOTA: El producto de matrices no es conmutativo, por lo que hay que tomar


en cuenta el orden o secuencia en que se realizan las rotaciones.

LECCIN 3: NGULOS DE EULER


La representacin matricial empleada para la orientacin de un cuerpo rgido
en el espacio tridimensional, aporta mltiples ventajas, ya que permite la
simplificacin de muchas operaciones, pero de igual manera, para su
implantacin, es menester emplear nueve elementos que hacen posible la
descripcin completa de la rotacin de un cuerpo rgido.
En este tipo de representacin, en lugar de efectuar tres rotaciones
consecutivas alrededor de los ejes del sistema de referencia, las rotaciones se
efectan alrededor de los ejes del sistema solidario del cuerpo.
Cuando tratamos de describir la orientacin de un sistema OUVW solidario al
cuerpo, lo hacemos respecto al sistema OXYZ, para lo cual hacemos uso de tres
ngulos: , , , denominados ngulos de Euler. El problema nos plantea
obtener el sistema OUVW partiendo del sistema OXYZ. El modo de operacin lo
podemos resumir de la manera siguiente:
Se gira de manera sucesiva los valores de , , , en el sistema OXYZ sobre
unos ejes determinados. Por tanto, debemos tener conocimiento de los valores
de los ngulos. Se requiere tener la informacin de los ejes sobre los que se
realizan los giros.
Los ngulos de Euler mencionados anteriormente, nos definen la orientacin
mediante tres giros consecutivos en los tres ejes de coordenadas. Realizando de
forma diferente los giros, se obtienen otras representaciones. Entre estas
posibilidades, presentamos las siguientes.

NGULOS DE EULER ZXZ


Esta representacin la podemos describir as:
Los sistemas de partida OXYZ y OUVW son inicialmente coincidentes. El sistema
OUVW lo podemos colocar en cualquier orientacin, lo cual es posible
siguiendo estos pasos:

1. El sistema OUVW se hace girar un ngulo


con respecto al eje OZ,
transformndose de esta manera en el sistema OUVW.
2. Ahora, se hace girar el sistema OUVW un ngulo con respecto al eje
OU, transformndose de esta manera en el sistema OUVW.
3. Finalmente, el sistema OUVW lo giramos un ngulo con respecto al
eje OW, transformndose de esta manera en el sistema OUVW.
La correspondiente ilustracin grafica es:

NGULOS DE EULER ZYZ


Esta otra representacin habitualmente utilizada, se diferencia solamente de la
anterior, en lo referente a la eleccin del eje sobre el que se realiza el segundo
giro.

Como en el anterior caso, esta representacin la podemos describir as:


Los sistemas de partida OXYZ y OUVW son inicialmente coincidentes. El sistema
OUVW lo podemos colocar en cualquier orientacin, lo cual es posible
siguiendo estos pasos:
1. El sistema OUVW se hace girar un ngulo con respecto al eje
OZ, transformndose de esta manera en el sistema OUVW.
2. Ahora, se hace girar el sistema OUVW un ngulo con respecto al eje
OV, transformndose de esta manera en el sistema OUVW.
3. Finalmente, el sistema OUVW lo giramos un ngulo con respecto al
eje OW, transformndose de esta manera en el sistema OUVW.
La correspondiente ilustracin grafica es:

LECCIN 4: MATRICES DE TRANSFORMACIN


HOMOGNEA
Hasta ahora hemos estudiado diferentes mtodos o tcnicas encaminadas a
representar de manera aislada, ya sea la posicin, o la orientacin, de un slido
en el espacio. Estos mtodos resultan bastante incmodos, cuando tratamos de
analizar un manipulador con muchas articulaciones.
En estas circunstancias, la complejidad de movimientos se manifiesta por la
estrecha combinacin de operaciones simultneas. Los mtodos acometidos no
estn en condiciones de responder a las exigencias mencionadas.
Especficamente, llegamos a enfrentar movimientos que requieren de una
representacin conjunta de la posicin y de la orientacin.
Para solucionar este interesante problema, tenemos que acudir al empleo de
las denominadas coordenadas homogneas.

COORDENADAS Y MATRICES HOMOGNEAS


El concepto de una representacin en coordenadas homogneas en un espacio
euclideo tridimensional, es til para desarrollar transformaciones matriciales
que incluyan: rotacin, traslacin, escalado y transformacin en perspectiva. En
general, la representacin de un vector de posicin de n componentes por un
vector de (n+1) componentes se llama representacin en coordenadas
(
) queda representado por
homogneas. Es decir, un vector
(
) donde w posee un valor arbitrario y representa un factor de
escala.
Comenzando a precisar, definimos como matriz de transformacin homognea
T a una matriz de dimensin 4 x 4, encargada de transformar a un vector de
coordenadas homogneas de un sistema de coordenadas a otro.

Podemos comentar, que la matriz T est compuesta por cuatro sub-matrices de


rdenes diferentes:

Una matriz de rotacin, la sub-matriz


.
Vector de traslacin, la sub-matriz
.
Una transformacin de perspectiva, la sub-matriz
Un escalado global, la sub-matriz
.

APLICACIN DE LAS MATRICES DE


TRANSFORMACIN HOMOGNEA

TRASLACIN CON MATRICES HOMOGNEAS


Corresponde considerar que en el sistema OUVW solo esta trasladado un
vector
respecto al sistema OXYZ. La matriz homognea
de traslacin T, es:

( )

Las componentes del vector r con respecto al sistema OXYZ, representado en el


sistema OUVW, son:

[ ]

][ ]

De igual manera, un vector r(x, y, z) al ser desplazado segn la traslacin T,


tendr como componentes r'(x, y, z').

][ ]

ROTACIN
Las rotaciones de un vector alrededor de cada uno de los tres ejes en un ngulo
a, se pueden realizar por las transformaciones de rotacin. En trminos
precisos, para entrar en operacin, definimos tres matrices bsicas de rotacin,
las cuales adoptamos de acuerdo a la rotacin elegida por alguno de los tres
ejes coordenados: OX, OY y OZ del sistema de referencia OXYZ.

Matrices de rotacin bsicas:


Alrededor del eje x, la transformacin de rotacin es:

Alrededor del eje y:

Alrededor del eje z:

Cambio de sistema de coordenadas:


Las componentes del vector (
el sistema girado OUVW, son:

) en el sistema OXYZ, representado en

[ ]

[ ]

De igual manera, un vector


despus de ser rotado de acuerdo a la
transformacin T, queda expresado por
as:

[ ]

TRASLACIN ACOMPAADA CON ROTACIN


Como se menciono anteriormente, las matrices homogneas poseen la debida
garanta para representar de manera conjunta, las operaciones de posicin y
orientacin. Segn esto, la ejecucin contempla la debida representacin que
incluye, el vector de traslacin
y la matriz de rotacin
de manera
simultnea, mediante el empleo de la misma transformacin homognea.

Este tipo de transformaciones, se efectan en relacin a un sistema de


referencia. Resulta oportuno comentar, que la traslacin y la rotacin son
transformaciones espaciales no conmutativas, lo cual se demuestra en la figura.
OBSERVACIONES FINALES:
Es posible combinar rotaciones y traslaciones bsicas multiplicando las matrices
correspondientes.
El producto no es conmutativo:
Rotar y trasladar trasladar y rotar

ROTACIN SEGUIDA DE TRASLACIN


Nos estamos refiriendo a la situacin, en la que se ha de realizar una rotacin
alrededor de uno de los ejes coordenados del sistema OXYZ, a la cual le sigue
una traslacin.
Comenzamos ilustrando la rotacin de un ngulo
le sigue una traslacin del vector
:

((

alrededor del eje OX, al cual

Ahora procedemos a ilustrar la rotacin de un ngulo


cual le sigue una traslacin del vector
.

((

Finalmente, presentamos la rotacin de un ngulo


cual le sigue una traslacin del vector
.

((

alrededor del eje OY, al

alrededor del eje OZ, al

TRASLACIN SEGUIDA DE ROTACIN


Nos toca ahora tratar el caso, en el que se efecta primero una traslacin, a la
cual le sigue una rotacin alrededor de uno de los ejes coordenados del sistema
OXYZ, en donde las matrices homogneas resultante son las siguientes:
Una vez trasladado el vector
alrededor del eje OX.

))

se contina con la rotacin de un ngulo

Ahora se trata de considerar la traslacin del vector


rotacin de un ngulo alrededor del eje OY.

))

Finalmente, a la traslacin del vector


alrededor del eje OZ.

))

al cual le sigue la

le sigue la rotacin de un ngulo

COMPOSICIN DE MATRICES HOMOGNEAS


Es habitual contemplar movimientos de traslacin y giros realizados sobre un
sistema de referencia, lo cual como ya hemos tratado es posible representarlos
por una matriz de transformacin homognea.
Existen movimientos generalizados que requieren de diferentes giros y
traslaciones que deben obrar de manera consecutiva sobre un sistema de
referencia establecido. Sintetizando, podemos codificar los giros bsicos y las
traslaciones, como una transformacin compleja, siempre y cuando esta pueda
descomponerse en la aplicacin consecutiva de los mencionados eventos
(transformaciones simples).

ILUSTRACIN
MATRICES DE ROTACIN BSICAS

INTERPRETACIN: EJEMPLO
1. Giro de un ngulo sobre el eje OZ
2. Giro de un ngulo sobre el eje OY
3. Giro de un ngulo sobre el eje OX
La matriz que representa el giro resultante, la obtenemos mediante la
composicin de las matrices bsicas de rotacin, y resulta ser:

) (

) (

][

][

]=

NOTA: es preciso comentar, que el producto de matrices no es conmutativo,


por lo que tampoco lo es la operacin de composicin de transformaciones.
Para el caso en el que la situacin obedezca a la inversin en el orden de
aplicacin de las transformaciones, el resultado obtenido es necesariamente
distinto:

) (

) (

][

][

]=

Las anteriores ilustraciones, nos impulsa a informar que los ejes sobre los que
recaan las operaciones correspondan al sistema de referencia fijo OXYZ. Esto
no impide la posibilidad de organizar un conjunto de matrices de
transformacin, que activen operaciones dirigidas de manera permanente al
sistema que este movindose. Esto se logra enlazando matrices de manera
inversa.
Cuando se presenta una tarea robtica que impone la aplicacin del recurso de
la composicin de varias transformaciones, en las que hay que apelar al uso de
matrices homogneas, se cuenta con algunas normas, los siguientes criterios:
Si el sistema fijo (OXYZ) y el transformado (0UVW) concuerdan, la matriz
homognea de transformacin resulta ser la matriz identidad.
(Matriz de orden 4)
.
Cuando el sistema transformado resulta de traslaciones y rotaciones definidas
con respecto al sistema fijo, la matriz homognea representativa de cada
transformacin, deber pre-multiplicarse sobre las matrices de las respectivas
transformaciones previas.
Cuando el sistema transformado resulta de traslaciones y rotaciones definidas
con respecto al sistema mvil, la matriz homognea representativa de cada
transformacin, deber post-multiplicarse sobre las matrices de las respectivas
transformaciones previas.
Las orientaciones mencionadas nos permiten argumentar, que para cualquier
operacin que incluya composicin de matrices homogneas, podemos tratarla
como si se efectuara cada transformacin con respecto al sistema de referencia
fijo, o con respecto al sistema de referencia mvil.
Finalmente, presentamos una ilustracin grafica de un ejemplo de
transformaciones diversas para localizar un objeto.

LECCIN 5: CUATERNIOS
La variedad de movimientos contemplados en cualquier faena habitual de los
robots, engloba eventos compuestos por giros y cambios de orientacin de
naturaleza diversa y compleja. Esto hace que tengamos que disponer de
recursos y herramientas matemticas verstiles, que sean capaces de
responder a las exigencias propias de las caractersticas mencionadas. Los
cuaternios se constituyen en los dispositivos creados para tal fin, pudiendo ser
empleados como herramienta analtica de gran efectividad y flexibilidad
computacional, para tratar y ocuparse de los giros y orientaciones.
Un cuaternio Q est constituido por cuatro componentes (
) los
cuales representan las coordenadas propias de cuaternio en la base {e, i, j, k}.

Se denomina a la componente en e: , la parte escalar del cuaternio, y parte


vectorial, al resto de componentes. De tal manera, que un cuaternio lo
podemos representar as:
(

En donde representamos por s a la parte escalar, y con v a la parte vectorial.


Para aplicar los cuaternios como metodologa de representacin de
orientaciones, asociamos el giro de un ngulo sobre el vector K al cuaternio y
lo definimos como:
(

Resumiendo, un cuaternio es un mtodo compacto que nos permite


representar una rotacin en 3D, presentando ventajas computacionales, entre
las cuales destacamos la velocidad y la robustez numrica.

IMPLEMENTACIN COMPUTACIONAL:
DESCRIPCIN PRELIMINAR
Para implementar un cuaternio, establecemos su respectivo objeto, el cual
tiene en Matlab un constructor, llamado quaternin. El empleo esta matizado
por tres formas, a saber: la primera nos retorna un nuevo objeto con el mismo
valor de su argumento. La segunda forma inicializa el cuaternio para una
rotacin del ngulo (theta) alrededor del vector v. La tercera forma establece
los cuatro elementos del cuaternio de manera directa, para una rotacin
equivalente de la matriz de rotacin 3x3, o la sub-matriz de rotacin de una
transformacin homognea 4x4.

RESEA DE LOS OPERADORES COMUNES


q1*q2: retorna el producto del cuaternio o su composicin.
q*v: retorna el producto vectorial del cuaternio, es decir, el vector v es rotado
por el cuaternio. En este caso, ves un vector 3x3.
inv (q): retorna la inversa del cuaternio.
q1 / q2: retorna q1 * inv q2
norm (q): retorna la magnitud del cuaternio.
plot (q): despliega una grafica de 3D
q = quaternin ([s v1 v2 v3]): de 4 elementos.
q = quaternin (v, theta): de un vector con su ngulo.
q= quaternin (R): de una matriz 3x3 4x4.
q = quaternin (q): para otro cuaternio.

CAPTULO II: OPERACIONES MATEMTICAS EN EL


ENTORNO DE TRABAJO COMPUTACIONAL.
LECCIN 1: OPERACIONES GENERALES SOBRE
VECTORES.
En MATLAB los vectores son variables que tienen nombres.
EJERCICIOS ILUSTRATIVOS:
DEFINICION DE UN VECTOR FILA Y VECTOR COLUMNA
X= [15 25 35] % Vector fila
X=
15 25 35

Y= [15; 28; 26] % Vector columna.


Y=
15
28
26
length(X) % Longitud del vector X.
ans =
3
length (Y) % Longitud del vector Y
ans =
3
X+Y % MATLAB TIENE EN CUENTA LA DIFERENCIA ENTRE VECTORES FILA Y
COLUMNA
??? Error using ==> plus
Matrix dimensions must agree.
X+Y' % LA DIFICULTAD DESAPARECE SI SE SUMA X CON EL
VECTOR TRASPUESTO DE Y
ans =
30 -3 61
% OPERADOR DOS PUNTOS (:)
a=1:10 % DEFINICION DEL VECTOR a
a
=
1 2 3 4 5 6 7 8 9 10

b=1:3:12
b=
1 4 7 10
c=1:1.5:12
c=
1.0000 2.5000
d=8:1:1
d=
8 7 6

4.0000

5.5000

7.0000

8.5000

10.0000

% FORMACION DE UNA TABLA DE FUNCIONES


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
% OPERACIONES ELEMENTALES Y DIVERSAS
A=magic (4)
A=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1A (2,3) % Acceso a los elementos de la matriz mediante los
ndices de fila y columna.
ans =

10
A(3,1:4) % Extrae los 4 primeros elementos de la tercera fila
ans =
9 7 6 12
A(2,:) % Extrae los elementos de la segunda fila
ans =
5 11 10 8
A(end,:) % Se extrae la cuarta fila
ans =
4 14 15 1
A (2:4,:) % Extrae los elementos de las filas 2, 3 y 4
ans =
5 11 10 8
9 7 6 12
4 14 15 1
% OPERADORES DE DIVISION: Para un sistema de ecuaciones lineales Ax=b, en
donde x y b son vectores columna, y A es una matriz cuadrada invertible.
% 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
% 2) A=[2 4;2 0;0 2], b=[4 0 0]'
A=[2 4;2 0;0 2], b=[4 0 0]'
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
% OPERADORES MATRICIALES (*, ^, \ y /) APLICAR ELEMENTO A
ELEMENTO.
[1 2 3 4 5]^2
??? Error using ==> mpower
Matrix must be square.

[1 2 3 4 5]^2
ans =
1 4 9 16
[1

2 3

25

4 5]*[1 -1 1 -1 2]

??? Error using ==> mtimes


Inner matrix dimensions must agree.
[1 2 3 4 5]*[1 -1 1 -1 2]
ans =
1 -2 3 -4 10
% DIRECCIONAMIENTO DE VECTORES A PARTIR DE VECTORES
% LOS ELEMENTOS DE UN VECTOR SE PUEDEN DIRECCIONAR A PARTIR DE LOS
DE OTRO VECTOR.
v=[1 4 5]
v=
1 4 5
Z=rand(1,)
Z=
0.9501 0.2311

0.6068

Z(v)
ans =
0.9501

0.8913

0.4860

0.4860

0.8913

0.7621

0.4565

% INVERSION DEL ORDEN DE LOS ELEMENTOS DE UN VECTOR.


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

% ALGUNAS OPERACIONES CON VECTORES


% Sean los vectores a=[1

1.5

3];b=[2

a=[1 1.5 3];b=[2 2.5 2]; c=6;


a+c ans =
7.0000 7.5000 9.0000
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

2.5

2]; c=6;

PRODUCTOS ESCALAR Y VECTORIAL


a=[4;6;4; 2]; b=[6;16; 14;8];
c=dot(a,b) % PRODUCTO ESCALAR
c=
-112
a'*b
ans =
-112
A1=[18;12;26]; B1=[54; 22;24];
cross(A1,B1) % PRODUCTO VECTORIAL
ans =
-284
-1836
-1044
diary off

LECCIN 2: OPERACIONES GENERALES SOBRE


MATRICES.
% En MATLAB las matrices son variables que tienen nombres.
% DEFINICION DE MATRICES
A=[1 2 3;4 5 6;7 8 9]
A=
1 2 3
4 5 6
7 8 9

% A partir de este momento la matriz A esta disponible para hacer cualquier


tipo de operacin con ella.
% OPERACIONES INTRODUCTORIAS: EJERCICIOS ILUSTRATIVOS.
% A
A
ans =
1 4
2 5
3 6

7
8
9

B=A'
B=
1 4
2 5
3 6

7
8
9

B*A % Producto de matrices


ans =
66 78 90
78 93 108
90 108 126
% DIRECCIONAMIENTO DE UNA MATRIZ
g=[2 4];d=[1 3];
B=magic(5)
B=
17 24 1 8
23 5 7 14
4
6 13 20
10 12 19 21
11 18 25 2
B(g,d)

15
16
22
3
9

ans =
23 7
10 19
g=[1 3 5
g=
1 3 5 7

7]

B(g),B(3),B(5)
ans =
17 4 11 5
ans =
4
ans =
11

% INVERSION DEL ORDEN DE LOS ELEMENTOS DE UNA MATRIZ


L=magic(5)
L=
17 24 1
23 5 7
4
6 13
10 12 19
11 18 25
L(:,4:-1: 2)
ans =
8 1 24
14 7 5
20 13 6
21 19 12
2 25 18

8
14
20
21
2

15
16
22
3
9

% L(:) Representa un vector columna con las columnas de L una detrs de otra.

% fliplr(L);INVIERTE EL ORDEN DE LAS COLUMNAS


fliplr(L)
15 8 1 24 17
16 14 7 5 23
22 20 13 6
4
3 21 19 12 10
9 2 25 18 11
% OPERACIONES BASICAS CON MATRICES: EJERCICIOS ILUSTRATIVOS
A=[4 6 3;5 10 0];B=[3 13 8;9 7 3];C=[3 6; 5 7; 8 7];
H=[2 5;4 9];p=2;
A+B
ans =
1 7
14 17

11
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.2265

0.2523
0.6839

A\B
ans =
0.3429
0.7286
0

2.4571
-0.5286
0

B\A
ans =
0.2681
0.3696
0

1.2464
-0.1739
0

1.4000
-0.4000
0

-0.1522
0.1957
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

% OTRAS OPERACIONES CON MATRICES: EJERCICIOS ILUSTRATIVOS


K=[1
K=
1
4
7

2 3;4 5 6;7 8 9]
2 3
5 6
8 9

diag(K), inv(K), K', det(K),rank(K), trace(K), norm(K); size (K)


ans =
1
5
9

Warning: Matrix is close to singular or badly scaled.


Results may be inaccurate. RCOND = 1.541976e-018.
ans =
1.0e+016 *
-0.4504
0.9007
0.9007
-1.8014
-0.4504
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

% ALGUNAS MATRICES ESPECIALES

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

eye(2,3)
ans =
1 0 0
0 1 0
diary off

0
0
0
1
0

0
0
0
0
1

LECCIN 3: MATRICES DE TRANSFORMACIN


HOMOGNEA: POSICIN
Mediante las coordenadas homogneas podemos representar de manera
conjunta la posicin y la orientacin (localizacin).
Partiendo de las coordenadas homogneas, ingresamos al concepto de matriz
de transformacin homognea.
TRASLACION: Se trata de representar la posicin y orientacin de un sistema
girado y trasladado O'UVW con respecto a un sistema fijo de referencia OXYZ.

Un vector trasladado es de la forma


de traslacin es:

. La matriz homognea

T(p)= [1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1],la cual se denomina matriz bsica de


traslacin.

Un vector cualquiera r, representado en el sistema O'UVW, tendr como


componentes del vector con respecto al sistema OXYZ:
[rx ry rz 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]*[ru rv rw 1]'=
[ru+px;rv+py;rw+pz+1] (1)
Y a su vez, un vector rx, y, z desplazado segn T tendr como componentes r'x,
y, z:
[r'x r'y r'z 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]* [rx ry rz
1]=[rx+px;ry+py;rz+pz;1] (2)

EJERCICIOS ILUSTRATIVOS
1. Segn 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).

Solucin: Procedemos a ingresar los valores y aplicamos la ecuacin (I)


Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1];
ruvw=[-2 7 3 1]';
rxyz=Tp*ruvw
rxyz =
4
4
11
1
2. Calcular el vector r'xyz resultante de trasladar al vector rxyz(4,4,11)segn la
transformacin T(p) con % p(6,3,8)
(ver figura adjunta).

Solucin: Procedemos a ingresar los valores y aplicamos la ecuacin (II)


Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1];
rxyz=[4 4 11 1]';
r1xyz=Tp*rxyz
r1xyz =
10
1
19
1
diary off

LECCION 4: MATRICES DE TRANSFORMACION


HOMOGENEA: ROTACION
En esta situacin corresponde definir tres matrices homogneas bsicas segn
se realice sta de acuerdo a cada uno de los tres ejes coordenados OX, OY y OZ
del sistema de referencia OXYZ:
% 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)
Un vector cualquiera r, representado en el sistema girado O'UVW por ruvw,
tendr como componentes (rx, ry, rz) en el sistema OXYZ las siguientes:
[rx ry rz 1]'=T[ru rv rw 1]' (IV)
Y a su vez un vector rxyz rotado segn T vendr expresado por r'x,y,z segn:
[r'x r'y r'z 1]'=T[rx ry rz 1]' (V)

TRASLACIN JUNTO CON ROTACIN


La traslacin y la rotacin son transformaciones que se realizan en relacin a un
sistema de referencia.

ROTACIN SEGUIDA DE TRASLACIN


Se trata de realizar primero una rotacin sobre uno de los ejes del sistema OXYZ
seguida de una traslacin, las matrices homogneas sern las que a
continuacin se expresan:
Rotacin de un ngulo a sobre el eje OX seguido de una traslacin 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
1. Segn la figura adjunta, el sistema 0UVW se encuentra girado -90 grados
alrededor del eje OZ con respecto al sistema OXYZ. Calcular las
coordenadas del vector rxyz si ruvw=[4,8,12]'

Solucin: Procedemos a ingresar los valores inicialmente para construir la


matriz T(z,c), ecuacin (III).
Tzc=[0 1 0 0;1 0 0 0;0 0 1 0;0 0 0 1], y luego construimos la matriz
ruvw utilizando la informacin entregada [ru rv rw 1]'= ruvw=[4,8,12,1]'.
Luego aplicamos [rx ry rz 1]'=T[ru rv rw 1]' , ecuacion (IV)
Tzc=[0
Tzc =
0
1
0
0

1 0 0;1 0 0 0;0 0 1 0;0 0 0 1]


1
0
0
0

0
0
1
0

0
0
0
1

% [rx ry rz 1]'=T[ru rv rw 1]'


% [ru rv rw 1]'=[4,8,12,1]'
ruvw=[4,8,12,1]'
ruvw =
4
8
12
1
rxyz=Tzc*ruvw
rxyz =
8
4
12
1

EMPLEANDO COMANDOS ESPECIALES


t1=rotz(-pi/2)
t1 =
0.0000
-1.0000
0
0
ruvw=[4 8 12 1]'
ruvw =
4
8
12
1

1.0000
0.0000
0
0

0
0
1.0000
0

0
0
0
1.0000

rxyz=t1*ruvw
rxyz =
8.0000
- 4.0000
12.0000
1.0000
2. Un sistema OUVW ha sido girado 90 grados alrededor del eje OX y
posteriormente trasladado un vector p(8,-4,12) con respecto al sistema
OXYZ (figura adjunta). Calcular las coordenadas (rx,ry,rz) del vector r con
coordenadas ruvw(-3,4,-11).

Solucin: Procedemos a ingresar los valores inicialmente para construir la


matriz T(z,c),ecuacin (III).
Procedemos a utilizar la ecuacin [rx ry rz 1]'=T[ru rv rw 1]' ecuacin (IV).
En donde, la matriz de transformacin,
T((x,a),p)= [1 0 0 px;0 cosa sena py;0 sena cosa pz;0 0 0 1] (VI)

Queda as:
Txa=[1 0 0 8;0 0 -1 -4;0 1 0 12;0 0 0 1]
Txa =
1 0 0 8
0 0 1 4
0 1 0 12
0 0 0 1
[ru rv rw 1]'= ruvw=[-3,4, -11,1]'
% Ahora ya podemos aplicar [rx ry rz 1]'=T[ru rv rw 1]' , ecuacin (IV).
Txa=[1
Txa =
1
0
0
0

0 8;0

0
0
1
0

0 8
1 4
0 12
0 1

ruvw=[3,4,11,1]'
ruvw =
3
4
11
1
rxyz=Txa*ruvw
rxyz =
5
7
16
1
diary off

0 -1 -4; 0

12;0

1]

LECCIN 5: MATRICES DE TRANSFORMACIN


HOMOGNEA: TRASLACIN SEGUIDA DE
ROTACIN
Se trata de realizar primero una traslacin seguida de una rotacin sobre los
ejes coordenados del sistema OXYZ. Las matrices homogneas resultantes son
las siguientes:
Traslacin del vector px, y, z seguida de rotacin de un ngulo a sobre el eje OX.
T(p,(x,a))= [1 0 0 px;0 cosa
pysena+pzcosa;0 0 0 1] (I)

sena

pycosapzsena;0

sena

cosa

Traslacin del vector px, y, z seguida de rotacin de un ngulo b sobre el eje OY.
T(p,(y,b))= [cosb 0 senb pxcosb+pzsenb;0
pzcosbpxsenb;0 0 0 1] (II).

py;senb

cosb

Traslacin del vector px, y, z seguida de rotacin de un ngulo c sobre el eje OZ.
T(p,(z,c))=[cosc senc 0
1 pz;0 0 0 1] (III).

pxcoscpysenc;senc

cosc

0 pxsenc+pycosc;0

PERSPECTIVA Y ESCALADO
Cuando en las componentes de un vector es posible la realizacin de un
escalado, podemos aplicar las matrices homogneas. Para lograr esto, es
suficiente emplear una matriz del tipo: T=[a 0 0 0;0 b 0 0;0 0 c 0; 0 0 0 1].
El caso tpico es transformar el vector r(x, y, z) en el vector r (ax, by, cz). Si se
trata de hacer un escalado global de las tres componentes, tenemos el recurso
apropiado con la matriz T=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 s].

EJERCICIOS ILUSTRATIVOS
1. Un sistema OUVW ha sido trasladado un vector p(8,-12,-4) con respecto
al sistema OXYZ y girado 90 grados alrededor del eje OX (figura adjunta).
Calcular las coordenadas (rx,ry,rz)del vector r de coordenadas ruvw (3,4,11).

Solucin: Procedemos a ingresar los valores inicialmente para construir la


matriz T(p,(x,a)),ecuacin (I).
Tpxa=[1 0 0 8;0 0 -1 -12; 0 1 0 -4; 0 0 0 1]
Y luego construimos la matriz [ru rv rw 1]'= ruvw=[3,4, 11,1]'
Ahora ya podemos aplicar [rx ry rz 1]'=T[ru rv rw 1]'
Tpxa=[1 0 0 8;0 0 1 12; 0 1 0 4; 0 0 0 1]

Tpxa =
1
0
0
0

0
0
1
0

0 8
1 12
0 4
0 1

ruvw=[3,4,11,1]'
ruvw =
3
4
11
1
rxyz=Tpxa*ruvw
rxyz =
5
1
0
1
2. Composicin de matrices homogneas: Se quiere obtener la matriz de
transformacin que representa al sistema O'UVW obtenido a partir del
sistema OXYZ mediante un giro de ngulo de -90 grados alrededor del eje
OX, de una traslacin de vector p(x, y, z) , (5,5,10) y un giro de 90 grados
sobre el eje OZ.
Solucin: Procedemos a ingresar los valores de la matriz T(p):
Tp=[1 0 0 5;0 1 0 5;0 0 1 1 0;0 0 0 1]
Y empleando comandos especiales de ejecucin directa:
Tp=[1 0 0 5;0 1 0 5;0 0 1 10;0 0 0 1]

Tp =
1
0
0
0

0
1
0
0

0 5
0 5
1 10
0 1

rotz(pi/2),rotx(-pi/2)
ans =
0.0000 -1.0000
1.0000
0.0000
0
0
0
0

0
0
1.0000
0

0
0
0
1.0000

0
1.0000
0.0000
0

0
0
0
1.0000

ans =
1.0000
0
0
0

0
0.0000
-1.0000
0

% Ahora se procede a aplicar T=T(z,90 grados)T(p)T(x,-90 grados)


T=rotz(pi/2)*Tp*rotx(pi/2)
T=
0.0000
-0.0000 -1.0000
1.0000
0.0000
0.0000
0
-1.0000
0.0000
0
0
0
diary off

-5.0000
5.0000
10.0000
1.0000

CAPITULO III: IMPLEMENTACIONES


COMPUTACIONALES.
LECCIN 1: REPRESENTACIN DE LA POSICIN:
EJECUCIONES COMPUTACIONALES.
A. Representacin de un cuadro de referencia {A}, a partir del cual
referiremos los cuadros de los ejemplos siguientes:
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

frame ( TA , ' r ' , 1) ;


grid on

B. Representacin de dos cuadros de referencia {B} y {C}, generados a partir


de {A}, mediante traslacin.
{B} ser trasladado a las coordenadas (3, 5, 0)
{C} ser trasladado a las coordenadas (2, 4, 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 ;

frame ( TC , ' k', 1) , grid ;

TRANSFORMACIN TRANSLACIONAL:
EJERCICIO
Segn la figura, el sistema 0'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 ) .

SOLUCIN:
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
frame (TA , ' b ', 1 )

frame ( TB , ' r ', 1)

r uvw = [ -2 7 3 1 ] '
rx ry rz = TB * [ 2 7 3 1] '
rx ry rz =
4
4
11
1
diary off

LECCIN 2: REPRESENTACIN DE LA
ORIENTACIN, EJECUCIONES COMPUTACIONALES
A. Representacin de un cuadro de referencia {A}, a partir del cual
referiremos los cuadros de los ejemplos siguientes:
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ]
B. Representacin de dos cuadros de referencia {B} y {C}, generados a partir
de {A} mediante rotacin:
frame ( TA, ' r ' , 1) ;
grid on
{B} ser rotado 30 grados en torno al eje X
{C} ser rotado 60 grados en torno al eje Z
Por lo tanto, las tareas a ejecutar serian:
TA = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 1 0 ; 0 0 0 1 ] ;
TB = rotx ( pi /6 ) * TA;
TC = rotz ( pi / 3 ) * TA ;
frame ( TA , ' b ', 1)

frame ( TB , ' g ' , 1 )

frame ( TC , ' y ', 1 )

TRANSFORMACIN ROTACIONAL: EJERCICIO


El sistema OUVW se encuentra girado 90 grados alrededor del eje OZ con
respecto al sistema OXYZ. Calcular las coordenadas del vector rxyz si
ruvw = [4 8 12 ] '.
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

frame ( TA , ' b ', 1 )

0
0
1.0000
0

0
0
0
1.0000

frame ( T1 , ' g ',1 )Y

rxryrz = T1 * [ 4 8 12 1 ] '
rxryrz =
8.0000
-4.0000
12.0000
1.0000
diary off

LECCIN 3: REPRESENTACIN DE LA POSICIN Y


ORIENTACIN: EJECUCIONES COMPUTACIONALES
A. Representacin de un cuadro de referencia {A}, a partir del cual
referiremos los cuadros de los siguientes ejemplos:
TA = [ 1
TA =
1 0 0
0 1 0
0 0 1
0 0 0

0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]


0
0
0
1

frame ( TA , ' y ' , 1) ;


grid on

B. Representacin de dos cuadros de referencia {B} y {C}, generados a partir


de {A} mediante rotacin y traslacin.
{B} ser rotado 30 grados en torno al eje X y trasladado a las coordenadas
(3 , 5, 0).
{C} ser rotado 60 grados en torno al eje Z y trasladado a las coordenadas
(2, 4, 1).
Por lo tanto, las tareas a ejecutar serian:
TB=transl ( 3 , 5, 0 ) * rotx ( p i / 6 ) * TA ;
TA =transl ( 2, 4, 1 ) * rotz ( pi / 3 ) * TA ;
frame ( TA, ' y', 1) ;

frame ( TB, ' b ', 1) ;

frame ( TC, ' r ', 1) ;

diary off

LECCIN 4: CONCATENACIN DE LAS


OPERACIONES DE TRASLACIN Y ORIENTACIN,
EJECUCIONESCOMPUTACIONALES
A. Traslacin pura de 0.4 m en la direccin del eje X.
T=transl( 0.4, 0 , 0 )
T=
1.0000
0
0
0
1.0000
0
0
0
1.0000
0
0
0
frame ( T , ' g ' , 1 ) ;

0.4000
0
0
1.0000

B. Rotacin de 90 grados en torno al eje Y.


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

frame ( T , ' y ', 1 ) ;

C. Rotacin de 90 grados en torno al eje Z


T=rotz(pi/2)
0.0000
1.0000
0
0

1.0000
0.0000
0
0

frame ( T , ' b ', 1 ) ;

0
0
1.0000
0

0
0
0
1.0000

C. Concatenar las tres operaciones anteriores.


T=transl(0.4, 0, 0)*roty(pi/2)*rotz(pi/2)
T=
0.0000
1.0000
0.0000
0

0.0000
0.0000
1.0000
0

frame ( T , ' r ', 1 ) ;

1.0000
0
0.0000
0

0.4000
0
0
1.0000

LECCIN 5: NGULOS DE EULER: EJECUCIONES


COMPUTACIONALES
Calcular los ngulos de Euler ZYZ de la transformacin resultantes.
Traslacin pura de 0.4 m en la direccin del eje X.
T=transl(0.4, 0,0)
T=
1.0000
0
0
0

0
1.0000
0
0

0
0
1.0000
0

0.4000
0
0
1.0000

A. Rotacin de 90 grados en torno al eje Y


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

B. Rotacin de -90 grados en torno al eje Z.


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=transl( 0.4, 0, 0)*roty(pi/2)*rotz(-pi/2)
T=
0.0000
-1.0000
-0.0000
0

0.0000
0.0000
-1.0000
0

1.0000
0
0.0000
0

0.4000
0
0
1.0000

D. Calcular los ngulos de Euler ZYZ de la transformacin resultante.


tr2eul ( T )
ans =
0
1.5708

-1.5708

RESULTADO = [0

1.5708

-1.5708]

E. ngulos RPY : Roll, pitch and yaw ( alabeo, cabeceo y guinada)


Esta representacin es la ms empleada cuando se trata de la aplicacin de
giros sobre los ejes del sistema fijo. Si partimos de los sistemas OXYZ y OUVW,
nos corresponde colocar al sistema OUVW en cualquier orientacin siguiendo
los pasos siguientes (ver figura).

1. Girar el sistema OUVW un ngulo con respecto al eje OX. A este ngulo
se le llama Yaw o guiada.
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
se le llama Roll o alabeo.

con respecto al eje OZ. A este ngulo

Como ya hemos considerado, y de manera general podemos afirmar, que


cuando concatenamos varios giros seguidos, tenemos que tener muy presente,
que no podemos tratarlos como transformaciones conmutativas, por lo que
hemos de seguir la secuencia establecida para los mismos.

F. Calcular los ngulos RPY de la misma transformacin.


tr2rpy ( T )
ans =
-1.5708
0.0000
-1.5708
RESULTADO = [-1.5708
0.0000
diary off

-1.5708]

SEGUNDA UNIDAD
MODELADO CINEMTICO Y DINMICO DE UN
ROBOT
CAPITULO 1:
CINEMTICA DEL ROBOT INTRODUCCIN
La fsica nos permite entender, a la cinemtica como el estudio del movimiento
sin tener en cuenta, las fuerzas que lo producen. Tomando esto en
consideracin, surge el compromiso de emprender el estudio tanto de las
propiedades geomtricas, como de las temporales del movimiento. En este
espacio, hemos de estimar, adems del problema estrictamente geomtrico
comprometido en el posicionamiento esttico, los efectos correspondientes a
las variaciones de carcter temporal, en lo referente a las posiciones y tambin
a las orientaciones; con esto nos estamos refiriendo a las velocidades.
Cuando estudiamos el fenmeno del movimiento, hemos de referirnos a un
sistema de referencia. Resulta habitual, dada la naturaleza del tema, contar con
un plan para controlar el movimiento de un manipulador; en cuyo caso, se hace
necesario establecer tcnicas para representar la posicin del brazo, en puntos,
en relacin con el tiempo. El manipulador del robot se determina empleando
dos elementos bsicos: articulaciones y enlaces. Cada articulacin representa
un grado de libertad. Las articulaciones pueden ocasionar un movimiento lineal
(articulacin tipo L) o un movimiento rotacional (articulaciones tipos R, T y V)
entre los enlaces adyacentes.
En los modelos geomtricos y cinemticos se involucra de manera substancial el
tratado de las relaciones existentes entre el espacio de las variables articulares
y el espacio de trabajo, llamado tambin, espacio operacional, el cual suele ser
un espacio cartesiano. De manera general, el espacio de las variables articulares
tendr n dimensiones, por lo que se utilizara un vector de dimensin n para
especificar la posicin y orientacin del robot. El espacio de trabajo de un
manipulador tendr dimensin seis, por lo que se requieren seis valores para
especificar la posicin y la orientacin. Cuando se trata de manipuladores

planares, o en robots mviles que navegan en el plano, ser suficiente con un


espacio de dimensin tres, para precisar la posicin y el ngulo de orientacin.
En nuestro caso, cuando tenemos que abordar el estudio de la cinemtica del
robot, hemos de procurar describir de manera analtica, el movimiento del
robot como una funcin del tiempo, teniendo que emplear los valores que
toman sus coordenadas articulares, en virtud de las relaciones existentes entre
la posicin y la orientacin del extremo final del robot.
En la cinemtica del robot, los problemas a resolver se reducen al conocido
como problema cinemtico directo, y al cinemtico inverso. El primero consiste
en determinar cul es la posicin y orientacin del robot, con respecto a un
sistema de coordenadas que se toma como referencia, teniendo conocidos los
valores de las articulaciones y los parmetros geomtricos de los elementos del
robot. El segundo, nos permite solucionar la configuracin que debe adoptar el
robot para una posicin y orientacin del extremo conocidas.
Finalmente tenemos que agregar, que la cinemtica del robot est
comprometida con obtener las relaciones entre las velocidades del movimiento
de las articulaciones y las del extremo. Esta relacin se encuentra contemplada
por el modelo diferencial, el cual es declarado mediante la matriz Jacobiana.

LECCIN 1: EL PROBLEMA CINEMTICO


DIRECTO DEL MANIPULADOR
En menciones anteriores, hemos apreciado la utilizacin permanente del
algebra vectorial y matricial, cuando requerimos describir la localizacin de un
objeto en el espacio de tres dimensiones con respecto a un sistema de
referencia fijo. Por la naturaleza del modo de operacin de un robot, lo
podemos considerar como una cadena cinemtica constituida por objetos
rgidos o eslabones ligados entre s mediante articulaciones. De esta manera,
podemos establecer un sistema de referencia fijo situado en la base del robot y
adelantar la descripcin de la localizacin de cada uno de los eslabones con
respecto a dicho sistema de referencia. En estas circunstancias, el problema
cinemtico directo se resume a encontrar una matriz homognea de

transformacin T, la cual relaciona la posicin y orientacin del extremo del


robot, respecto al sistema de referencia fijo situado en la base del mismo. Esta
matriz T se expresa como funcin de las coordenadas articulares.

SOLUCION DEL PROBLEMA CINEMATICO DIRECTO:


MATRICES DE TRANSFORMACION HOMOGENEA
El tipo de problema que nos hemos propuesto tratar y resolver, se refiere a
encontrar las relaciones que hacen posible obtener la localizacin espacial del
extremo del robot, a partir de los valores de sus coordenadas articulares.
De esta manera, procedemos a elegir coordenadas cartesianas y ngulos de
Euler, con los que logramos representar la posicin y orientacin del extremo
de un robot de seis grados de libertad. Las relaciones que nos permiten resolver
el problema cinemtico directo son:
(

Estas relaciones se obtienen mediante simples consideraciones geomtricas.


Por ejemplo, para el caso de de un robot de con dos grados de libertad (GDL),
nos resulta:
(

Robot planar de dos grados de libertad.

De manera general, un robot con n grados de libertad est constituido por n


eslabones unidos tambin por n articulaciones, de tal manera que cada par de
articulacin eslabn, conforma un grado de libertad. De esta manera, a cada
eslabn se le asocia un sistema de referencia solidario a l y, empleando las
transformaciones homogneas, podemos representar las rotaciones y
traslaciones relativas, entre los distintos eslabones que componen el robot.
La matriz de transformacin homognea que representa tanto la posicin como
la orientacin, la denominamos matriz
.
Considerando todos los grados de libertad, a la matriz
se le denomina
matriz T. Si queremos ilustrar un robot de seis grados de libertad, la posicin y
orientacin estn dados por la matriz T:

Cuando tratamos de describir la relacin entre dos elementos contiguos,


hacemos uso de cualquier sistema de referencia ligado a cada elemento.

Generalmente en robtica utilizamos la representacin de Denavit-Hartenberg


(DH), que se refiere a un mtodo matricial
con el cual establecemos de
manera sistemtica un sistema de coordenadas ligado a cada eslabn i de una
cadena articulada, permitiendo seguidamente establecer las ecuaciones
cinemticas de la cadena completa.
Mediante esta representacin, podemos escoger adecuadamente los sistemas
de coordenadas relacionados con cada eslabn, haciendo posible pasar de uno
al siguiente a travs de 4 transformaciones bsicas, las cuales dependen
exclusivamente de las caractersticas geomtricas del eslabn.
Estas transformaciones bsicas estriban en una sucesin de rotaciones y
traslaciones, que permiten vincular al sistema de referencia i con el sistema del
elemento i - 1. Las transformaciones citadas son las siguientes:

1. Rotacin alrededor del eje

un ngulo

2. Traslacin a travs de
una distancia di; esto es un vector el cual
se expresa como di(0, 0, di).
3. Traslacin a travs de

una distancia

3. Rotacin alrededor del eje

un ngulo

; cuyo vector es

(0, 0,

).

Conviene tener presente que el producto de matrices no es conmutativo, por lo


que las transformaciones se deben ejecutar en el orden indicado. Es por esto,
que la ejecucin de las operaciones debe cumplir el siguiente formato:
(

) (

) (

) (

El producto entre las matrices comprometidas se expresa as:

NOTA:

][

][

][

son los parmetros DH del eslabn i.

Todo indica que la tarea a seguir consiste en identificar los parmetros para
obtener las matrices A y de esta manera vincular todos y cada uno de los
eslabones del robot.
Los cuatro parmetros de
(
) estn sujetos nicamente a las
caractersticas geomtricas de cada eslabn y de las articulaciones que le unen
con las adyacentes, es decir, el anterior y el siguiente. Esto lo visualizamos en la
figura siguiente.

Figura 2. Parmetros DH para un eslabn giratorio.

Con la matriz T ya obtenida, tendremos expresada la orientacin requerida,


mediante una sub-matriz (3 X 3) de rotacin, y conjuntamente la posicin, en
una sub-matriz (3 X 1) de traslacin, del extremo del robot, en funcin de las
coordenadas articulares, quedando de esta manera, resuelto el problema
cinemtico directo.

EJEMPLO ILUSTRATIVO: ROBOT CILINDRICO

Los correspondientes parmetros DH para este robot, quedan expresados en la


tabla siguiente:
Articulacin
1
2
3
4

d
90
0

a
0
0
0
0

0
90
0
0

LECCIN 2: CINEMTICA INVERSA DEL


MANIPULADOR COMENTARIOS INICIALES
En nuestro afn por estructurar y conocer los aspectos de la configuracin de
los robots, dentro de lo cual hace parte los aspectos de la localizacin espacial,
se hace indispensable que su extremo se posicione y oriente.
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 posicin y orientacin 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 cinemtico inverso. De manera
directa y concisa, podemos conjeturar que la obtencin de las respectivas
ecuaciones, esta intensamente subordinado a los elementos propios de la
configuracin del robot.
Tratando de encontrar procedimientos para aliviar las dificultades inherentes al
problema, se han presentado propuestas de solucin de ndole diversa, pero
estas conllevan inconvenientes que generan limitaciones apreciables.
La mayor parte de los robots suponen cinemticas relativamente simples, lo
que facilita en cierta medida la solucin de su problema cinemtico inverso. Es
a este tipo de problemas a los que nosotros daremos atencin y dedicacin.

ASPECTOS GENERALES DEL PROBLEMA


Si consideramos solo los tres primeros grados de libertad de la mayora de los
robots, estos presentan una estructura planar, es decir, los tres primeros
elementos quedan contenidos en un plano. Este detalle hace muy asequible
encontrar la solucin del problema. Adicionalmente, cabe mencionar que en
muchos robots se observa que los tres grados de libertad ltimos, en lo

referente a la orientacin del extremo del robot, corresponden a giros sobre


ejes que se cortan en un punto. Nuevamente, este pormenor hace viable el
clculo de la nupla correspondiente tanto a la posicin como a la orientacin
requerida. Es por esto que podemos establecer algunos derroteros generales
que nos concedan elementos adecuados para plantear y resolver el problema
cinemtico inverso de una manera ordenada y jerarquizada.
Los mtodos geomtricos encauzan la obtencin de los valores de las primeras
variables articulares, las cuales se encargan de posicionar el robot (descartando
la orientacin de su extremo). Para esto acudimos al empleo de relaciones
geomtricas y trigonomtricas sobre los elementos del robot. Tambin en
algunas ocasiones apelamos a la resolucin de tringulos que se forman a
travs de los elementos y articulaciones del robot. Buscando alternativas que
permitan resolver el mismo problema, se encuentra que se hace posible cuando
manipulamos de manera directa las ecuaciones correspondientes al problema
inverso. Por esta ruta logramos la siguiente relacin:
noap
0 0 0 1 = tij
Los elementos tij estn en funcin de las coordenadas articulares, por lo que es
factible mediante ciertas combinaciones de las 12 ecuaciones establecidas,
despejar las n variables articulares en funcin de las componentes de los
vectores.

RESOLUCION DEL PROBLEMA CINEMATICO


INVERSO POR METODOS GEOMETRICOS
Como mencionamos anteriormente, usamos este procedimiento cuando
tratamos robots de pocos grados de libertad, o cuando todo indica considerar
nicamente los primeros grados de libertad, encargados de posicionar el
extremo. La base de este procedimiento establece que hay que encontrar un
suficiente nmero de relaciones geomtricas, en las que participan las
coordenadas del extremo del robot, sus coordenadas articulares y las
dimensiones fsicas de sus consabidos elementos.

Para aplicar el mtodo de resolucin del problema cinemtico inverso de un


robot con 3 GDL de rotacin, emplearemos una estructura tpica articular. Esta
figura nos permite visualizar la configuracin del robot.

Figura 3. Robot articular

El dato de partida son las coordenadas (


se intenta posicionar su extremo.

) referidas a {

en las que

La estructura de este robot es planar, en donde el plano est determinado por


el ngulo de la primera variable articular .
El valor adquirido por

lo obtenemos de manera automtica empleando:


(

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:

Figura 4. Ilustrativa de los elementos 2 y 3 del robot de la figura 3.

Ejecutando la ecuacin anterior, logramos obtener


en virtud del vector de
posicin p. Sin embargo, y por razn de ventajas computacionales, resulta ms
conveniente usar la expresin de la arco-tangente en lugar del coseno.
Por lo que significa

(9)
Se llega a obtener
(

Con

(10)
Es fcil apreciar que existen dos soluciones posibles para
de acuerdo al tipo
de signos que escojamos en la raz (positivo o negativo). Estos casos
corresponden a las configuraciones de codo arriba y codo abajo.

LECCIN 3: RESOLUCION DEL PROBLEMA


CINEMATICO INVERSO MEDIANTE LA MATRIZ
DE TRANSFORMACIN HOMOGNEA
En este apartado abordamos el proceso dirigido a un robot de 3 GDL de
configuracin esfrica (2 giros y un desplazamiento), situacin que ilustramos
en la presente figura. El robot queda siempre incluido en un plano el cual est
determinado por el ngulo

Figura 5. Robot polar de 3 GDL

Para resolver el problema cinemtico inverso, iniciamos obteniendo la


expresin (6) correspondiente a este robot. Esto equivale a obtener la matriz T,
con la que relacionamos el sistema de referencia S0 correspondiente a la base,
con el sistema respectivo de referencia S3. En la siguiente figura, podemos
apreciar la asignacin de los sistemas de referencia de acuerdo a los criterios
de Denavit-Hartenberg con el robot que est situado en su
) y adicionalmente la tabla nos muestra los
posicin de partida (
valores de los parmetros apropiados de Denavit-Hartenberg.

Figura 6. Asignacin de sistemas de referencia del robot polar de la figura 5.

Articulacin
1
2
3

d
0
0

a
0
0
0

90
-90
0

Tomando en consideracin estos parmetros, de manera gil obtenemos las


matrices A y la matriz T.

Los pasos siguientes, nos orientan a poder manipular directamente las 12


ecuaciones resultantes de T, con el propsito de de poder despejar
en trminos de n, o, a p. Este camino resulta inapropiado, por lo
que optamos por el procedimiento siguiente:
Debido a que

, tendremos que:
(

(16)

Dado que:
[

Ya conocida, los miembros a la izquierda en las expresiones (16) son funcin de


). Mediante algunas consideraciones,
las variables articulares (
tendremos
; luego a partir de
, llegamos al valor de
, en ambas
situaciones haciendo manipulaciones en la ecuacin (16).
Finalmente, conocidos
y
podremos obtener
haciendo uso de la
expresin (6). Este procedimiento lo indicamos de manera abreviada as:

]
[

]
(17)

Luego encontramos:

(18)
Por consiguiente, empleando la primera de las ecuaciones de (16) llegamos a
tener:

De las relaciones anteriores establecidas en la ecuacin anterior nos interesan


aquellas que expresan
en funcin de constantes (y no de
).

Empleando

] llegamos a tener:

)
(20)

Empleando ahora la segunda de las ecuaciones de (16) llegamos a obtener:

) (

De manera sucesiva llegamos a las expresiones siguientes:

( )

)
(23)

Llegando por ltimo a:


(

( )

)
(24)

Resumiendo, las expresiones 20, 23 y 24 se refieren a la solucin del problema


cinemtico inverso de nuestro robot considerado. Las colocamos de manera
despejada y grupal:

( )

( )

)
(25)

LECCIN 4: MATRIZ JACOBIANA DEL


MANIPULADOR
Como pudimos darnos cuenta, el estudio del modelado cinemtico de un robot,
pretende hallar las relaciones que puedan existir entre las variables articulares y
la posicin (lo cual se expresa normalmente en forma de coordenadas polares)
y orientacin del extremo del robot. En este evento no se consideran las fuerzas
o pares que actan sobre el robot (actuadores, cargas, fricciones, etc.) y que
pueden causar el movimiento del mismo.
Conviene poder tener acceso a la relacin entre las derivadas respectivas. Es
decir, el sistema de control debe estar en condiciones de poder registrar las
velocidades adquiridas en cada articulacin (a travs de sus respectivos
actuadores), de tal manera que el extremo desarrolle una trayectoria temporal
concreta.
Para cumplir con este y otros propsitos, hemos de contar con la respectiva
relacin que involucre las velocidades de las coordenadas articulares, las de
posicin y orientacin del extremo del robot. La relacin que cobija ambos
vectores de velocidad se deriva a travs de la denominada matriz Jacobiana.

RELACIONES DIFERENCIALES
La forma ms directa para deducir la relacin entre las velocidades articulares y
las del extremo del robot, se hace diferenciando las ecuaciones
correspondientes al modelo cinemtico directo.
Se trata de partir conociendo las ecuaciones que solucionan el problema
cinemtico directo de un robot de n GDL (grados de libertad):

Mediante el empleo de la matriz Jacobiana podemos conocer las velocidades


del extremo del robot mediante las velocidades de cada articulacin.
(

Si estas expresiones las derivamos respecto al tiempo, llegamos a tener:

Estas expresiones podemos presentarlas en forma matricial:

[ ]

[ ]

La matriz J puesta en escena, es conocida como matriz Jacobiana.


Debido a que el valor numrico de cada uno de los elementos [ ] de la
Jacobiana, est en funcin de las coordenadas articulares por lo que el valor
de la Jacobiana ser diferente en cada uno de los puntos del espacio articular.

JACOBIANA INVERSA
De igual manera que obtenemos la relacin directa, mediante la cual se facilita
el clculo de las velocidades del extremo a partir de las velocidades articulares,
es pertinente obtener la relacin inversa, por medio de la cual podemos
calcular las velocidades articulares partiendo de las del extremo. Esto es factible
mediante el concurso de procedimientos diferentes.

MTODOS DE CLCULO DE LA JACOBIANA


INVERSA.
Inversin simblica de la matriz Jacobiana.
- Gran complejidad (matriz 6x6).

Evaluacin numrica de J e inversin numrica


- Necesidad de un re-computo continuo.
- En ocasiones J no es cuadrada matriz pseudoinversa.
- En ocasiones | J | = 0
A partir del modelo cinemtico inverso.

)]

[ ]

[ ]

Es posible que este mtodo resulte algebraicamente complicado, por lo que


conviene apelar a otras opciones, haciendo uso de procedimientos numricos
para el clculo gil de la Jacobiana.

CONFIGURACIONES SINGULARES
Denominamos configuraciones singulares de un robot, a todas aquellas en las
que el determinante de su matriz Jacobiana se anula. En virtud de esto, en las
configuraciones singulares no puede existir Jacobiana inversa.
Aquellas en las que | J | = 0 (Jacobiano nulo).

Incremento infinitesimal de coordenadas cartesianas implica incremento


infinito coordenadas articulares.

Implica perdida de algn grado de libertad.


Tipos:
- Singularidades en los lmites del espacio de trabajo del robot.
- Singularidades en el interior del espacio de trabajo del robot.

Requieren su estudio y eliminacin.

LECCIN 5: MODELOS DE DIFERENTES


CONFIGURACIONES
Las coordenadas (x, y), suministran la posicin del robot con respecto a las
coordenadas globales y el ngulo su orientacin con respecto a un eje
paralelo al Y. La configuracin de la figura a. es la denominada sncrona en la
cual existen transmisiones que permiten orientar las tres ruedas
simultneamente con una velocidad angular y hacer que el vehculo se
desplace con una velocidad lineal v .

TOMADO DE : Robtica: Manipuladores y robots mviles.

Siendo b la va del vehculo (distancia que separa las dos ruedas centrales). Si se
especifican, la velocidad lineal v y angular del vehculo, las velocidades de giro
que hay que aplicar a las ruedas izquierda y derecha son:

( )

( )

Este modelo puede expresarse en funcin de variables de control como,

[ ]

(
[ (

)
)

(
[ (

)
)

(
[ (

(
(

)
)

)
)

][

En la figura c anterior se representa el triciclo convencional en el cual la rueda


delantera se utiliza tanto para la orientacin como para la traccin.
En este caso las variables de control suelen tomarse como el ngulo de
direccin de la rueda delantera y la velocidad de giro de la misma t. Se
supondr que el punto de gua (x, y) est en el centro del eje trasero.

Las velocidades, lineal v y angular del vehculo, son respectivamente:

El ngulo de orientacin del vehculo vara segn:

Por consiguiente se puede obtener el siguiente modelo en funcin de las


velocidades de control
y
.

]
[

[ ]

Conocidas las velocidades lineal v y angular las variables de control y


pueden obtenerse mediante.
( )

CAPITULO 2: DINMICA DEL ROBOT


INTRODUCCIN
Cuando abordamos el estudio de la dinmica, nos ocupamos de la relacin que
existe entre las fuerzas que actan sobre un cuerpo y el movimiento originado
sobre l, como consecuencia de la fuerza aplicada. Por consiguiente, el llamado
modelo dinmico de un robot, tiene por objetivo, encontrar la relacin entre el
movimiento del robot y las fuerzas implicadas en el mismo.
Esta relacin la conseguimos haciendo uso del denominado modelo dinmico, a
travs del cual relacionamos matemticamente:
La localizacin del robot. Esta localizacin es determinada por sus
variables articulares o por las coordenadas de localizacin de su extremo,
y sus derivadas: velocidad y aceleracin.
Las fuerzas y pares que se aplican en las articulaciones, o en el extremo
del robot.
Los parmetros dimensionales del robot, en cuyo caso podemos citar, la
longitud, las masas e inercias de sus elementos.
Cuando tratamos problemas que involucran mecanismos de uno o dos grados
de libertad, la obtencin de este modelo no es compleja, pero con el aumento
de grados de libertad, el planteamiento y la obtencin del modelo dinmico,
suele complicarse de manera apreciable. Es por esta razn, que no siempre es
posible obtener un modelo dinmico expresado mediante una serie de
ecuaciones, en donde la integracin de las mismas, nos ayude a conocer el tipo
de movimiento que surge al aplicar las fuerzas, o las que deberamos aplicar
para obtener un movimiento determinado. Es por esto que optamos resolver el
modelo dinmico de una manera iterativa, apelando a la utilizacin de un
proceso numrico.
La obtencin del modelo dinmico de un robot, se ha constituido en uno de los
problemas ms complejos de la robtica, llegando a alcanzar adems, la

categora de reto interesante. Podemos afirmar, que en su ejecucin es


imprescindible conseguir los fines siguientes:
Diseo y evaluacin de la estructura mecnica del robot.
Dimensionamiento de los actuadores.
Diseo evaluacin del control dinmico del robot.
Simulacin del movimiento del robot.
La obtencin del modelo dinmico de un robot ha sido y es an objeto de
estudio e investigacin. Un buen nmero de investigadores han desarrollado
una serie de mtodos y formulaciones alternativas, las cuales las han basado
partiendo de la mecnica Newtoniana y Lagrangiana, con la acertada y atractiva
intencin de derivar modelos, que a su vez resulten ampliamente manejables
por los sistemas de clculo convencional, de una manera lo ms eficiente
posible.
En este captulo dedicaremos especial atencin al tratamiento del modelo
dinmico, considerando al robot como un cuerpo rgido. De igual manera, slo
llegaremos a exponer nicamente los resultados de los planteamientos
mencionados, expresados en forma algortmica, y con la metodologa aplicada
sobre los robots de dos grados de libertad.

LECCIN 1: ESTRUCTURA MECNICA DE UN


ROBOT RGIDO. DESCRIPCIN GENERAL
Cuando tratamos un mecanismo o particularmente un robot, la obtencin del
modelo dinmico la soportamos fundamentalmente planteando el equilibrio de
fuerzas, situacin sta la cual se encuentra determinada de manera completa y
precisa en la segunda ley de Newton. Tambin se registra un planteamiento
para movimientos de rotacin, de envergadura terica y con reconocimientos

oficiales por sus logros en el terreno de la aplicacin, denominada ley de Euler,


cuya presentacin es la siguiente:

Para el caso de un simple robot mono-articular, como el representado por la


figura adjunta, el equilibrio de fuerzas-pares lo expresamos empleando la
siguiente ecuacin:

De esta manera, a partir del establecimiento del equilibrio de fuerzas y pares


que participan sobre el robot, podemos obtener los denominados modelos
dinmicos directo e inverso:
Modelo dinmico directo: declara la evolucin temporal de las
coordenadas articulares del robot en funcin de las fuerzas y pares que
intervienen.
Modelo dinmico inverso: manifiesta los tipos de fuerzas y pares que
intervienen en funcin de la forma, cmo evolucionan las coordenadas
articulares y sus derivadas.
Como planteamiento alternativo para la obtencin del modelo, apelamos a la
formulacin Lagrangiana, la cual se sustenta en apropiadas consideraciones

energticas. Es oportuno destacar que este planteamiento es ms sistemtico


que el anterior, y por ende, hace fcil de manera muy apreciable, la formulacin
de un modelo tan complejo como resulta ser el de un robot.
El empleo de esta formulacin lo hacemos estableciendo la ecuacin:

En donde:
Coordenadas generalizadas (Las articulares).
t= Vector de fuerzas y pares aplicados en las .
Funcin Lagrangiana.
K= Energa cintica.
U= Energa potencial.
Teniendo en cuenta el robot mono-articular de la figura de arriba, tendramos:

En donde se encuentra establecido que:

Adems se conoce que:

Entonces, reemplazando en L tendremos inicialmente:

Haciendo la debida sustitucin se obtiene:

Ecuacin que llega a coincidir con la correspondiente a la de un robot monoarticular.


OBSERVACION: la formulacin Lagrangiana aunque resulta ms tediosa que la
Newtoniana, presenta ventajas cuando aumenta el nmero de grados de
libertad.

LECCIN 2: FORMULACIN DE LAGRANGEEULER


DESCRIPCIN GENERAL
Cuando emprendemos este planteamiento, estamos direccionados a utilizar
ciertas matrices que relacionan el sistema de coordenadas de referencia del
elemento i con el elemento i -1.
Se efectan operaciones de suma y producto de manera innecesaria, por lo que
resulta ser un procedimiento ineficiente desde el punto de vista computacional.
Sin embargo, es legtimo dejar claro que su aplicacin nos puede conducir a
unas ecuaciones finales bien estructuradas donde aparecen de manera clara y

concisa, los diversos pares y fuerzas que intervienen en el movimiento de


inercia.
Hacemos referencia a la fuerza de inercia, Coriolis y gravedad. Este
procedimiento se basa en una interpretacin de la energa involucrada.
Teniendo en consideracin el ejemplo del manipulador con una nica
articulacin, la energa cintica viene dada por:

Y la energa potencial por:

La funcin Lagrangiana de la manera siguiente:

La formulacin dinmica se basa en la ecuacin:

En donde es el par aplicado.

LECCIN 3: FORMULACIN DE NEWTONEULER:


IMPLEMENTACION COMPUTACIONAL
Para la obtencin de un modelo dinmico de este tipo, se requiere generalizar a
las aceleraciones, los conceptos y notaciones empleadas para ilustrar las
velocidades. Se comienza presentando las expresiones correspondientes a las
aceleraciones. Seguidamente, se establece el mtodo de Newton-Euler en su
forma iterativa, haciendo la ilustracin de la aplicacin en el manipulador plano
con dos articulaciones.

EJEMPLO:
Consideremos el manipulador con dos articulaciones de rotacin como el
mostrado en la figura.

Para facilitar la resolucin del problema tendremos en cuenta que las masas M1
y M2 estn concentradas en los extremos de los enlaces.

OBTENCION DEL MODELO DINAMICO SIMBOLICO


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 e los enlaces (l1 y l2 )


>> syms l1 l2 real;
Masas de los enlaces (m1 y m2 )
>> syms m1 m2 real;
Aceleracion de la gravedad
>> syms g real;
Digitamos la matriz con los parmetros dinmicos del manipulador.
>> 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] ;
Vector de variables articulares
>> q = [ t1 t2 ] ;
Vector de velocidades articulares
>> qd = [ td1 td2 ] ;
Vector de aceleraciones articulares
>> qdd=[tdd1 tdd2] ;
Vector aceleracicon de la gravedad
>> grav = [ 0 g 0 ] ;
tau =rne (dyn, q, qd, qdd, grav) ;
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
>> 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(t2)*l
1)), l2*m2*(l2+cos(t2)*l1)][ l2^2*m2+l1*cos(t2)*m2*l2, l2^2*m2]
Trminos centrfugos y de Coriolis
>> V = coriolis (dyn, q, qd )
V=
[l2*m2*sin(t2)*td1^2*l1+l1*(sin(t2)*m2*((td1+td2)^2*l2cos(t2)*td1^2*l1)+cos
(t2)*m2*sin(t2)*td1^2*l1), l2*m2*sin(t2)*td1^2*l1]

OBSERVACIONES
La funcin rne nos permite obtener el modelo dinmico. Para que esto
funcione, simplemente debemos pasarle una matriz de parmetros dyn con el
formato apropiado.
Adicionalmente, se requiere pasarle un vector con la aceleracin de la
gravedad que sufre el manipulador, as como los valores de las variables
articulares, los de las velocidades y las aceleraciones articulares.
La funcin rne nos devuelve como resultado los pares ejercidos en cada
articulacin.

LECCIN 4:
TRANSFORMACIONES HOMOGNEAS Y
CINEMTICA DEL ROBOT (Ejemplo)
DESCRIPCIN GENERAL
Un mtodo de categora general con el que podemos determinar las ecuaciones
cinemticas de un brazo de robot, consiste en hacer uso de las
transformaciones homogneas.
Un vector de punto,
se puede representar en un espacio de
tres dimensiones por una matriz de columna:

[ ]

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 representacin del vector
v = 25i+10j+20k.

Vectores de la forma anterior los podemos emplear para definir la posicin del
extremo del brazo para un manipulador de robot. Cuando w = 0, entonces el
vector representa una direccin nica.
Podemos trasladar o girar un vector en el espacio, mediante una
transformacin. Una transformacin de este tipo, la hacemos posible mediante
el empleo de una matriz H 4 x 4. Por ejemplo, el vector v lo podemos
transformar en un vector u, haciendo uso de la siguiente operacin matricial.
u=HV
Para realizar una traslacin de un vector en el espacio en una distancia x, b en la
direccin , y c en la direccin z, hemos de ejecutar una transformacin, la cual
viene dada por:
H=Trans a,b,c= 100010000
EJEMPLO:
Para el vector V = 25i + 10j + 20k realizar una traslacin para una distancia 8 en
la direccin x, 5 en la direccin y 0 en la direccin z.
SOLUCION:
>> a = 8, b= 5, c = 0

a=
8
b=
5
c=
0
El vector en consideracin es:
>> V = [25 10 20 1 ] '
V=
25
10
20
1
La transformacin de traslacin seria:
>> H = transl (a, b, c)
H=
1 0 0 8
0 1 0 5
0 0 1 0
0 0 0 1
El vector de traslacin seria:
>> HV = H * V
HV =
33
15
20
1
diary off

LECCIN 5:
MODELO DIRECTO DEL MANIPULADOR:
IMPLEMENTACIN COMPUTACIONAL (Ejemplo)
Considrese el manipulador plano con tres articulaciones de rotacin (ver
figura). Las longitudes de los dos primeros segmentos son l1 y l2. Se trata de
implementar el modelado del manipulador mediante la obtencin de la
transformacin apropiada para tal fin.

SOLUCION:
Establecemos las variables articulares 1 , 2 y 3.
syms t1 t2 t3 real
Determinamos los parmetros l1 y l2.
syms l1 l2 real
Ahora ingresamos la matriz mediante los parmetros de DenavitHartenberg.
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]

Seguidamente, llamamos a la funcin con la que podemos obtener la matriz T.


La funcin empleada para tal efecto es fkine (dh , q ) y sus parmetros son la
matriz de parmetros Denavit-Hartenberg y el vector de variables articulares.
Ingresamos el vector de variables articulares
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]
La funcin simple se encarga de simplificar la expresin resultante.

OBSERVACIONES:
La funcin fkine se encarga de tomar los valores para las variables
articulares del segundo parmetro que se le pasa, y no de los que
aparecen en la matriz dh. Esto significa, que si la articulacin es de
rotacin, no se tendr en cuenta el valor del tercer elemento de la fila
correspondiente de la matriz dh.
diary off

CAPITULO 3: IMPLEMENTACIONES
COMPUTACIONALES COMENTARIOS
PRELIMINARES
El tratamiento de la cinemtica de los robots manipuladores, nos indica la
conveniencia de emplear de manera exclusiva la plataforma de MATLAB, ante la
otra opcin de hacerlo con la del SIMULINK. La explicacin consiste en la
circunstancia de que los datos involucrados en la cinemtica son matrices, los
cuales como es sabido, son ms fcilmente tratados desde MATLAB que desde
SIMULINK.
En la unidad I abordamos los temas relacionados con vectores y matrices, con el
propsito de facilitar la comprensin de los aspectos aplicativos, los cuales
tocaremos en estas secciones. De igual manera tratamos la representacin
grfica, con la cual hacemos posible la ilustracin de ciertos modelos de robots
mviles.
Para resolver la cinemtica de un robot, resulta suficiente conocer los
parmetros de Denavit-Hartenberg. Estos parmetros son ingresados en una
matriz de acuerdo a un formato determinado (matriz dh ). Esta matriz ser la
que permitir el paso de las funciones de MATLAB, por lo que recomendamos
asimilar bien su significado y contenido.

En la tabla siguiente presentamos de manera resumida, las instrucciones que


habitualmente se emplean para efectuar ciertos clculos relacionados con la
cinemtica de los robots manipuladores. Conviene aclarar, que algunas de ellas
no se utilizan directamente, pero aparecen en el cuerpo de funciones que si se
usan, por lo que tambin aparecen descritas.

Instrucciones relacionadas con la cinemtica

En cuanto a la dinmica de los robots manipuladores es posible elegir emplear


el MATLAB directamente, o el SIMULINK. Cuando el propsito es tratar
resultados simblicos y trabajar con matrices, resulta ms conveniente el uso
del MATLAB. En los otros casos, ambas plataformas reportan un manejo en
igualdad de condiciones.
En la tabla siguiente presentamos de manera resumida, las instrucciones que
habitualmente se emplean para efectuar ciertos clculos relacionados con la
dinmica de los brazos manipuladores.

LECCIN 1: MODELO DIRECTO DEL


MANIPULADOR
EJEMPLO: Consideremos el robot que se muestra en la figura.

El sistema de referencia {0} se supone rgidamente unido al enlace 0 (anclaje del


robot) y el {n} al ltimo enlace. El sistema {1} coincide con el {0} para 1= 0,
pero gira con respecto a este valor al variar 1.
SOLUCION:
Variables articulares 1
>> syms t1 d2 t3 real ;
Parametro l2
>> syms l2 real ;
Clculo de las respectivas matrices
>> T1 = linktrans ( [ 0 0 125 0 0 ] , t1 )
T1 =
[ cos(t1), -sin(t1), 0, 0]
[ sin(t1), cos(t1), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

>> T2 = linktrans ( [ pi/2 0 0 426 1 ] , d2 )


T2 =
[ 1, 0, 0, 0]
[ 0, 0, 1, d2]
[ 0, 1, 0, 0]
[ 0, 0, 0, 1]
>> T3 = linktrans ( [ 0 0 876 l2 0 ] , t3 )

LECCIN 2: MODELO INVERSO DEL


MANIPULADOR
Generalmente, en la mayor parte de las aplicaciones, nos interesa determinar
los movimientos del robot ubicado en el espacio cartesiano, haciendo una
estrecha relacin con la tarea que se intenta desarrollar. En virtud de esto, para
establecer el control del robot, se hace necesario encontrar los valores de las
variables articulares, de tal manera que la posicin y orientacin del robot, o en
particular de su efector final, sea la deseada.
EJEMPLO: Consideremos el manipulador del ejemplo anterior. El sistema de
referencia {0} coincide con el {1} para el valor de 1= 0 (figura anterior). Se
trata de estudiar la posicin (x, y) del extremo del segundo enlace. Por
consiguiente el giro de la tercera articulacin (sistema de referencia {3}) no se
considera. Supuesta la segunda articulacin en su mxima extensin, el origen
de {2} coincidir con el de {3}, como se observa en la figura. Las coordenadas x e
y de este origen expresadas en el sistema {0} pueden tomar cualquier valor solo
limitado por los rangos de variacin de las variables articulares.
SOLUCION:
Calcular el modelo directo del manipulador a. Variables articulares 1 y d2.
>> syms t1 d2 real ;
Matriz con los parmetros de Denavit-Hartenberg

>> dh =[ 0 0 t1 0 0 ; pi/2 0 0 d2 1 ] ;
Vector de las variables articulares
>> q = [t1 d2];
Calculo del resultado
>> T= simple (fkine (dh , q ) )
T=
[ cos ( t1 ), 0, sin ( t1), sin ( t1) * d2 ]
[ sin ( t1 ), 0, -cos( t1 ), -cos( t1 ) * d2 ]
[ 0, 1, 0, 0 ]
[ 0, 0, 0, 1 ]
b. Representacin de los valores que toma 1 en funcin de las coordenadas(x,
y).
>> [ x , y] = meshgrid (1: 0.03 :1, 1: 0.03 : 1 ) ; t1 = atan2 (x,y);
>> surf (x , y, t1 ) ;
Representacin de d2 en funcin del punto (x , y ) del extremo del manipulador
>> [x1, y1] = meshgrid ( 1: 0.03: 1 , 1: 0.03:1 ) ;
>> d2 = sqrt (x1. ^2 + y. ^2 ) ;
>> surf ( x1 , y1, d2 ) ;

LECCIN 3: JACOBIANO DEL MANIPULADOR


El Jacobiano del manipulador se encarga de relacionar las velocidades, con las
velocidades cartesianas del extremo del manipulador. En el modelo matemtico
apropiado, hay que tomar como referencia el sistema {0}. Es conveniente tener
presente que el Jacobiano se expresa en un determinado sistema de referencia.
De igual manera, notamos que para unos determinados valores de las variables
articulares, las relaciones entre las velocidades articulares y las velocidades en
el espacio cartesiano son lineales.
EJEMPLO: Consideremos el manipulador con tres articulaciones de rotacin,
con los ejes del marco de referencia {3} en la misma direccin que los del {2}. Se

trata de obtener la velocidad en el origen del sistema {3} y el Jacobiano del


manipulador.
SOLUCION:
Variables articulares 1, 2 y 3
>> syms t1 t2 t3 real ;
Parmetros l1 y l2
>> syms l1 l2 real ;
Matriz con los parmetros de Denavit-Hartenberg del robot.
>> dh = [ 0 0 t1 0 0 ; 0 l1 t2 0 0 ; 0 l2 t3 0 0 ] ;
>> q = [ t1 t2 t3 ] ;
Expresin en {3} para el Jacobiano
>> J = simple ( jacobn (dh , q ))
Expresin en {0} para el Jacobiano
>> J = simple ( jacob0 (dh, q) )
J=
[ l2*sin(t1+t2)sin(t1)*l1, l2*sin(t1+t2), 0]
[ l2*cos(t1+t2)+cos(t1)*l1, l2*cos(t1+t2), 0]
[ 0, 0, 0]
[ 0, 0, 0]
[ 0, 0, 0]
[ 1, 1, 1]
Comprobacin de los resultados: propagacin de velocidades
Derivadas de las variables articulares ('1, '2 y '3).
>> syms td1 td2 td3 real ;
Parmetros l1 y l2

>> syms l1 l2 real ;


Vector con las derivadas de las variables articulares.
>> qd = [ td1 td2 td3 ] ;
Vector velocidad lineal del {0}
>> v0 = [ 0 0 0 ]' ;
Vector velocidad angular del {0}
>> w0 = [ 0 0 0 ]' ;
Ejecucin de los resultados esperados.
>> z = simple (velprop (dh, q, qd, v0, w0 ) )
z=
td1*l1*sin(t2+t3)+sin(t3)*l2*td1+sin(t3)*l2*td2
td1*l1*cos(t2+t3)+cos(t3)*l2*td1+cos(t3)*l2*td2
0
0
0
td1+td2+td3
OBSERVACION: la funcin velprop se encarga de calcular el vector de
velocidades en el espacio cartesiano, expresado en el sistema de coordenadas
del cuadro {n}, donde n representa el nmero de enlaces del manipulador. Esta
funcin contiene las velocidades lineales y angulares del extremo del
manipulador. Para poderla activar de manera conveniente, se requiere
entregarle una serie de parmetros, los cuales son:
q: vector de variables articulares.
qd: vector de velocidades de las variables articulares.
v0: velocidad lineal de la base.
w0: velocidad angular de la base.

LECCIN 4: OBTENCIN DE LAS TRAYECTORIAS


ARTICULARES
Existe un modelo que relaciona los pares de control en las articulaciones, con la
evolucin de las variables articulares. Si nos proponemos simular el
comportamiento dinmico del manipulador ante determinados pares, se
requiere para lograr esto, resolver el modelo que nos conduce a las trayectorias
circulares.
EJEMPLO: Se trata de obtener la trayectoria que seguir el manipulador de la
figura:

Los datos que tendremos en consideracin son estos:


m1 = 2 Kg, m2 = 1 Kg,
l1 = 3 m, l2 = 1 m.

SOLUCION:
Ingresamos los datos del problema.
>> m1 = 2 ; m2 = 1 ; l1 = 3 ; l2 =1 ;
Cargamos los parmetros del manipulador.
>> 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 dinmica
>> [ tsim, q, qd] fdyn (dyn, 0, 10, 'taucap5', [0 0]',[ 0 0]', [0 9.81 0] ) ;
Para obtener una animacin del manipulador, ingresamos:
>> dh = [0 0 0 0 0 ; 0 3 0 0 0 ] ;
plotbot (dh, q, 'd')

LECCIN 5: CREACIN DE UN ROBOT:


SIMULACIN
EJEMPLO:
Consideremos un manipulador plano de dos enlaces, el cual posee los
parmetros de articulaciones estndar de Denavit-Hartenberg, mostrados en la
tabla:

Nosotros procederemos a crear un par de articulaciones tipo objeto.


>> L1 = link ([0 1 0 0 0 ] , ' standard ' )
L1 =
0.000000
1.000000
0.000000
>> L2 = link ([0 1 0 0 0 ] , ' standard ' )
L2 =
0.000000
1.000000
0.000000

0.000000

0.000000

(std)

(std)

Ahora creamos el objeto robot.


>> r = robot ({ L1 L2 } )
r=
noname (2 axis, RR)
grav = [0.00 0.00 9.81]
alpha
A
0.000000
1.000000
0.000000
1.000000

theta
0.000000
0.000000

Visualizacin grafica del robot creado.


>> plot ( r, [0 0] )

standard D&H parameters


D
R/P
0.000000
R
(std)
0.000000
R
(std)

UNIDAD III: IMPLEMENTACIN Y SIMULACIN


COMPUTACIONAL DE TAREAS ROBTICAS
CAPITULO 1: REPRESENTACIN DE LA
ORIENTACIN Y
POSICIN
LECCIN 1: EJEMPLO
Un robot mvil provisto de sensores de proximetra detecta un obstculo, cuya
posicin con respecto a un sistema de coordenadas solidario al robot es:

[ ]

Calcular la rotacin que realiza de 20 grados alrededor del eje .


>> P1enA = [ 0 2 0 1 ] '
P1enA =
0
2
0
Procedemos a calcular empleando un recurso computacional directo.
>> P2enA = rotz(pi/9)*P1enA
P2enA =
-0.6840
1.8794
0
1.0000

Obtener las coordenadas del obstculo en el sistema de referencia { A }, cuando


el robot se encuentra en las coordenadas (8,4).
>> P3enA = transl (8,4,0) * rotz (pi/9) * P1enA
7.3160
5.8794
0
1.0000
Ilustracin de las relaciones de los sistemas de referencia.
>> 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
>> TB = transl (8,4,0) * rotz ( pi / 9) * TA
TB =
0.9397
0.3420
0
8.0000
0.3420
0.9397
0
4.0000
0
0
1.0000
0
0
0
0
1.0000
>> frame (TA, 'c' ,1 ) ;

>> frame (TB,'b',1);

Determinacin de rangos de representacin


>> axis ( [ 0 9 2 6 0 5 ] )

Activacin para facilitar el giro de la representacin


>> rotate3d
Adicionarle rejilla a la representacin
>> grid on
(El resultado aparecer mostrado en la siguiente figura)

COMENTARIO: visualizacin de las transformaciones entre los sistemas de


referencia.

LECCIN 2: EJEMPLO
Consideremos un manipulador plano con una articulacin de traslacin y otra
de rotacin como el que se muestra en la figura:

Sean d y las variables de la primera y segunda articulacin. Calcular las


coordenadas en el sistema {A} en funcin de las coordenadas respecto al
sistema {B}.
SOLUCIN:
Contamos la informacin siguiente:
Una rotacin segn un ngulo /2 -
Una traslacin segn el vector lsin lcos 0T
La traslacin segn 0 d 0T
Procedemos a ingresar comandos en nuestra plataforma computacional.
>> syms t l d px py real
>> PenB = [ px py 0 1] '
PenB =
px
py
0
1
>> v1 = [l *sin( t ) l *cos ( t ) 0 ]
v1 =
[ l* sin(t) , l*cos(t), 0]
>> v2 = [ 0 d 0 ]
v2 =
[ 0 , d , 0]
>> solucion1 = transl (v1) *t ransl (v2) * rotz (pi / 2) * PenB
solucion1 =

4967757600021511/81129638414606681695789005144064*pxpy+l*sin(t)px+4
967757600021511/81129638414606681695789005144064*py+d+l*cos(t)
0
1

LECCIN 3: EJEMPLO (calcular una trayectoria


cartesiana entre dos puntos).
DESCRIPCIN:
La trayectoria consta de una serie de puntos, la cual coincide con la longitud
del vector (r).
El vector distancia r a lo largo de la trayectoria se considera dentro de un
intervalo (0, 1).
Se trata de obtener una trayectoria cartesiana (TC) desde un punto, la cual
representaremos por una transformacin homognea de TO a T1.
Con la funcin jtraj podemos crear la trayectoria del vector r.
Con la funcin cjtraj obtenemos la trayectoria cartesiana.
SOLUCIN:
>> TO = transl ( [ 0 0 0 ] )
TO =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> T1= transl ( [ 1
2 1 ])
T1 =

1
0
0
0

0
1
0
0

0
0
1
0

1
2
1
1

>> t = [ 0 : 0.056 : 10 ] ;
>> r = jtraj( 0 , 1 , t) ;
>> TC = ctraj (TO, T1, r) ;
>> plot ( t , transl ( TC ) ) ;
>> grid on

LECCIN 4: EJEMPLO (clculo de cuaternios)


Un ejemplo simple.
DESCRIPCIN:
Se trata de hacer interpolacin de unidades de cuaternios mediante el uso de
la funcin qinterp.
La interpolacin planteada es entre Q1 y Q2.

>> q1 = quaternion (rotx ( 0.3 ) )


q1 =
0.98877 <0.14944, 0, 0>
>> q2 = quaternion ( roty (-0.5) )
q2 =
0.96891 <0, -0.2474,0>
>> qinterp (q1 , q2 , 0 )
ans =
0.98877 <0.14944, 0, 0>
>> qinterp (q1 , q2 , 1 )
ans =
0.96891 <0, 0.2474,0>
>> qinterp (q1 , q2 , 0.3)
ans =
0.99159 <0.10536, -0.075182,0>
Construccin de un objeto cuaternio
>> t = rotx ( 0.2 )
t=
1.0000
0
0
0.9801
0
0.1987
0
0

0
-0.1987
0.9801
0

0
0
0
1.0000

>> 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>
Grfica de la rotacin de cuaternios
>> q = quaternion (rotx (0.3 ) )
>> plot ( q )

LECCIN 5: Creacin de un modelo mecnico


(Modelado y simulacin del pndulo simple).
UN PNDULO SIMPLE: una barra de acero oscilante

El Sistema de Coordenada Mundial y la Gravedad.


Sistema de coordenada (SC) llamado mundial.
El (SC) tiene un origen en (0,0,0) y una trada dextrgira, ejes de sistemas
ortogonales .

Un punto cualquiera conectado a tierra respecto al mundo.

Representacin de puntos conectados a tierra mediante los Ground


blocks (Configuracin).

Propiedades del pndulo simple


Teniendo en cuenta los datos siguientes:
= 7.93 gm / cc, L = 1 m , r = 1 cm , m =
inercia I.

L = 2490 gm y los tensores de

(
(

Los datos del cuerpo para el pndulo simple ( la masa y las propiedades
geomtricas del cuerpo).

El Elipsoide equivalente de Pndulo Simple con los Sistemas de Coordenada del


Cuerpo.

Representacin final del modelo y su configuracin respectiva.

Simulacin del movimiento pendular (visualizacin).

Grfica del espacio fase del movimiento del pndulo simple: velocidad angular
versus ngulo.

CAPITULO 2: MODELOS CINEMTICOS DE ROBOTS


EJEMPLO
LECCIN 1: Cinemtica inversa de un manipulador
(trayectoria de transformaciones).
Ingreso de las variables articulares.
>> t1= 0 ; t2 = 0 ; t3 = 0 ;
>> l1 = 4 ; l2 = 3 ;
Creacin de la matriz dh del manipulador (parmetros de Denavit-Hartenberg).

>> dh = [ 0 0 t1 0 0 ; 0 l1 t2 0 0 ; 0 l2 t3 0 0 ]
dh =
0 0 0 0 0
0 4 0 0 0
0 3 0 0 0
Determinacin de la tolerancia y el nmero mximo de iteraciones.
>> stol = 1e-6; ilimit = 1000 ;
Ingreso de la trayectoria ( arco de radio 5) y la orientacin deseadas (radianes).
>> x = 0 : 0.05 :5 ;
>> y = sqrt ( 25 x.^2 ) ;
Ingreso del vector fila nulo de la misma dimensin que x.
Clculo del modelo inverso para cada uno de los puntos de la trayectoria,
usando un vector inicial q0 = [0 0 0] y una mscara M = [1 1 0 0 0 1].
>> q = ikine (dh , stol , limit,TG , [0 0 0] , [1 1 0 0 0 1] )
q=
14.7807 -32.9867 18.2061
14.7407 -32.9867 18.2461
14.7006 -32.9867 18.2861
14.6604 -32.9867 18.3263
14.6200 -32.9867 18.3667
14.5793 -32.9867 18.4074
14.5383 -32.9867 18.4484
14.4969 -32.9867 18.4898
14.4549 -32.9867 18.5318
14.4124 -32.9867 18.5743
14.3692 -32.9867 18.6176
14.3251 -32.9867 18.6617
14.2800 -32.9867 18.7067

14.2338
14.1863
14.1372
14.0862
14.0329
13.9769
13.9174
13.8534
13.7834
13.7048
13.6126
13.4937
13.2099

-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867
-32.9867

18.7529
18.8004
18.8496
18.9006
18.9538
19.0099
19.0694
19.1334
19.2033
19.2819
19.3741
19.4931
19.7769

Grfica del manipulador mientras recorre la trayectoria (representacin


matricial en el plano XY, con representacin de los cuadros de referencia de
cada una de las articulaciones y el cuadro de referencia asociado al efector
final).

Activacin de los efectos rotacionales (animacin).


>> rotate3d

LECCIN 2: Obtencin del Jacobiano del robot


manipulador Puma 560

SOLUCIN:
Ingreso de las variables articulares ( 1, 2, 3, 4, 5 y 6 ).
>> syms t1 t2 t3 t4 t5 t6 real;
Ingreso de las derivadas de las variables articulares ('1, '2, '3, '4, '5, y '6).
>> syms td1 td2 td3 td4 td5 td6 real;
Ingreso de los parmetros a2, a3, d3, y d4.
>> syms a2 a3 d3 d4 real ;
Ingreso de la matriz con los parmetros de Denavit-Hartenberg del Puma 560.

>> dh = [ 0 0 t1 0 0; pi/ 2 0 t2 0 0 ; 0 a2 t3 d3 0 ; pi/ 2 a3 t4 d4 0;pi/2 0 t5 0 0 ; pi/


2 0 t6 0 0 ]
dh =
[ 0, 0, t1, 0, 0 ]
[ pi/2, 0, t2, 0, 0 ]
[ 0, a2, t3, d3, 0 ]
[ pi/2, a3, t4, d4, 0]
[ pi/2, 0, t5, 0, 0 ]
[ pi/2, 0, t6, 0, 0 ]
Ingreso del vector de variables articulares.
>> q = [ t1 t2 t3 t4 t5 t6 ]
q=
[ t1 , t2 , t3 , t4 , t5 , t6 ]
Ingreso del vector con las derivadas de las variables articulares.
>> qd = [ td1 td2 td3 td4 td5 td6 ]
qd =
[ td1, td2, td3, td4, td5, td6]
Ingreso del vector velocidad lineal del marco {0}
>> 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]
Visualizacin grfica del robot Puma560.
>> puma560
>> plot (p560, q )

Activacin de los efectos rotacionales (animacin)


>> rotate3d

LECCIN 3: Orientacin y posicin cartesiana del


efector final conocida la estructura cinemtica y
las coordenadas articulares.
Definicin de la matriz cinemtica del robot Puma 560.
>> puma560
Cinemtica directa de un robot para articulaciones seriales del robot.
>> fkine ( p560, qz)
ans =
1.0000
0
0
1.0000
0
0
0
0
Visualizacin respectiva
>> plot ( p560, qz)

0
0
1.0000
0

0.4521
0.1500
0.4318
1.0000

Ejecucin de la cinemtica inversa: encontrar las coordenadas articulares del


robot.
Generacin de la transformacin correspondiente para una coordenada
articular particular.
>> q = [0 pi / 4 pi / 4 0 pi / 8 0 ]
q=
0 -0.7854 -0.7854 0 0.3927 0
>> T = fkine ( p560, q )
T=
0.3827 0.0000
0.9239 0.7371
-0.0000
1.0000 -0.0000 -0.1501
-0.9239 -0.0000
0.3827 - 0.3256
0
0
0
1.0000
Obtencin de los correspondientes ngulos articulares.
>> qi = ikine (p560 , T)
qi =
-0.0000 -0.7854 -0.7854

-0.0000

0.3927

0.0000

Obtencin del Jacobiano del manipulador correspondiente.


>> q = [ 0.1 0.75 -2.25 0 0.75
q=
0.1000 0.7500 2.2500 0
>> J1 = jacob0 ( p560 , q )
J1 =
0.0746 -0.3031 -0.0102
0.7593 -0.0304 -0.0010
0
0.7481 0.4322
0.0000
0.0998 0.0998
0
-0.9950 -0.9950
1.0000
0.0000 0.0000

0]
0.7500

0
0
0
0.9925
0.0996
0.0707

0
0
0
0.0998
-0.9950
0.0000

0
0
0
0.6782
0.0681
0.7317

El Jacobiano en el sistema de referencia del efector final.


>> J =jacobn ( p560 , q )
J=
0.1098 -0.7328 -0.3021
0
0
0
0.7481
0.0000 0.0000
0
0
0
0.1023
0.3397 0.3092
0
0
0
-0.6816
0
0
0.6816
0
0
-0.0000 -1.0000 -1.0000 -0.0000 -1.0000
0
0.7317
0.0000 0.0000 0.7317
0.0000 1.0000
Observar la condicin de invertibilidad.
>> det (J)
ans =
-0.0632
Velocidad articular (traslacin de 0.1 m / s en la direccin X del efector final)
>> vel = [ 0.1 0 0 0 0 0 ] '
vel =
0.1000
0
0
0
0
0
>> qvel = inv( J ) * vel
qvel =
0.0000
-0.2495
0.2741
-0.0000
-0.0246

0.0000
Expresada en arreglo de fila.
>> qvel '
ans =
0.0000 -0.2495

0.2741

0.0000

-0.0246

-0.0000

LECCIN 4: Construccin de un objeto link


(parmetros cinemticos).

Construccin del objeto link.


>> L= link ([ pi/2 , 0.02, 0,0.15 ] )
L=
1.570796
0.020000 0.000000
Parmetros de
cinemticos.
>> L.RP
ans =
R
>> L.mdh
ans =
0
>> L.G = 100
L=
1.570796
>> L.Tc = 5
L=
1.570796
>> L
L=

0.150000

Denavit-Hartenberg

que

(std)

implementan

0.020000

0.000000

0.150000

(std)

0.020000

0.000000

0.150000

(std)

modelos

1.570796
0.020000
0.000000
Visualizacin de los parmetros.

0.150000

>> 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 =
Visualizacin detallada para el robot Puma (link 2).
>> showlink ( p560.link{2} )
alpha = 0
A = 0.4318
theta = 0
D=0
sigma = 0
mdh = 0
offset = 0
m = 17.4
r=
-0.3638
0.006
0.2275

(std)

I=
0.13
0
0
0 0.524
0
0
0
0.539
Jm = 0.0002
G = 107.815
B = 0.000817
Tc = 0.126 -0.071
qlim =

LECCIN 4: Anlisis cinemtico del manipulador RR


EJEMPLO:
Visualizacin grafica de los puntos de una trayectoria que recorre el efector
final de un manipulador RR (con enlaces de longitud L1 = L2 = 1), cuando las dos
variables rotacionales 1 y 2 varan uniformemente de 0 a pi = 2.

A. Ingreso de los valores respectivos.

>> 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
Obtencin de la grfica respectiva
plot (px , py)

>> p = [ px ; py ] ;
p=
Columns 1 through 8
2.0000 1.9846
0
0.2349
Columns 9 through 16
1.1180 0.9168
1.5388 1.6371
Columns 17 through 21
-0.5000 -0.6576
1.5388
1.4264

1.9387
0.4655

1.8634
0.6874

1.7601
0.8968

1.6310
1.0898

1.4788 1.3066
1.2630 1.4135

0.7071
1.7071

0.4930 0.2788 0.0685 -0.1338 - 0.3244


1.7481 1.7601 1.7436 1.7000 1.6310

-0.7946 -0.9092 -1.0000


1.2967 1.1534 1.0000

B. Mediante el uso de funciones ( function p = pcd (L1, L2, th1, th2 )

>> p = pcd ( L1, L2, th1, th2 ) ;


p=
Columns 1 through 8
2.0000 1.9846 1.9387 1.8634 1.7601 1.6310
0
0.2349 0.4655 0.6874 0.8968 1.0898
Columns 9 through 16
1.1180 0.9168 0.7071 0.4930 0.2788 0.0685
1.5388 1.6371 1.7071 1.7481 1.7601 1.7436
Columns 17 through 21
-0.5000 -0.6576 -0.7946 -0.9092 -1.0000
1.5388 1.4264 1.2967
1.1534 1.0000

1.4788 1.3066
1.2630 1.4135
-0.1338 -0.3244
1.7000 1.6310

>> plot ( p (1, : ) , p( 2 , : ) , '+' )

C. Grfica de la configuracin espacial del robot.

>> th1= 30 *pi /180 ;


>> th2 = 60 * pi /180 ;
>> p = pcd ( L1, L2, th1, th2 ) ;
>> robot ( L1, th1, p);
>> L1= linspace (1, 1, 21)
>> L2 = linspace ( 1, 1, 21)
>> x = [ 0 L1.* cos( th1 ) p(1) ] ;
>> y = [0 L1.*sin( th1 ) p(2) ] ;
>> plot ( x , y )

CAPITULO 3: MODELOS DINMICOS DE ROBOTS


LECCIN 1: EL MTODO DE NEWTONEULER
EJEMPLO:
Consideremos el manipulador ilustrado en la figura, el cual consta de dos
articulaciones de rotacin, y sus masas estn concentradas en sus extremos
respectivos. Se trata de obtener el modelo dinmico, mediante el par
correspondiente a los trminos centrfugos y de Coriolis, cuya funcin 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 ;
Aceleracin de la gravedad
>> syms g real ;
Ingresamos la matriz con los parmetros dinmicos del manipulador.
>> 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]
Ingresamos el vector de variables articulares
>> q = [t1 t2]
q=
[ t1, t2]
Ingresamos el vector de velocidades articulares
>> qd = [td1 td2]
qd =
[ td1, td2]
Ingresamos el vector de aceleraciones articulares
qdd =
[ tdd1, tdd2]
Ingresamos el vector de aceleracin de la gravedad

>> grav = [0 g 0 ]
grav =
[ 0, g, 0 ]
>> tau = rne (dyn, q , qd , qdd , grav )
tau =
[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))]
Obtencin de la expresin simblica de los trminos pares (centrfugos y de
Coriolis).
>> 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(t
2)*m2*l2*t dd2,l2*m2*(l2*tdd1l2*tdd2sin(t2)*td1^2*l1+sin(t2)*sin(t1)*gcos(
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*m2*(l2*tdd1+l2*tdd2+sin(t2)*td1^2*l1sin(t2)*sin(t1)*g+cos(t2)*t
dd1*l1+cos(t2)*cos(t1)*g)]
combine(trig:
[l2^2*m2*tdd1+l2^2*m2*tdd2+l2*m2*g*cos(t2+t1)+2*l2*m2*cos(t2)*tdd1*l
1+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]
factor:
[l2^2*m2*tdd1+l2^2*m2*tdd2l2*m2*sin(t2)*sin(t1)*g+2*l2*m2*cos(t2)*tdd

1*l1+l2*m2*cos(t2)*cos(t1)*g+l1^2*m1*tdd1+l1*m1*cos(t1)*g2*l1*sin(t2)*m
2*l2*td1*td21*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(t
2)^2*m2*cos(t1)*g,l2*m2*(l2*tdd1l2*tdd2sin(t2)*td1^2*l1+sin(t2)*sin(t1)*gco
s(t2)*tdd1*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/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]
Evaluacin de los trminos que aparecen en la expresin 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 ( )
>> G = gravity ( dyn, q, grav )
G=
[l2*m2*(sin(t2)*sin(t1)*g+cos(t2)*cos(t1)*g)+l1*m1*cos(t1)*g+l1*(sin(t2)*m2*
(cos(t2)*sin(t1)*g+sin(t2)*cos(t1)*g)+cos(t2)*m2*(sin(t2)*sin(t1)*g+cos(t2)*cos
(t1)*g))
Trminos centrfugos y de Coriolis V ( , ' )
>> V = coriolis ( dyn, q, qd )
V=
[l2*m2*sin(t2)*td1^2*l1+l1*(sin(t2)*m2*((td1+td2)^2*l2cos(t2)*td1^2*l1)+cos
(t2)*m2*sin(t2)*td1^2*l1)

LECCIN 2: DINMICA DE UN MANIPULADOR


PLANO CON TRES ARTICULACIONES DE
ROTACIN
EJEMPLO
Consiste en abordar la dinmica de un manipulador plano con tres
articulaciones de rotacin (ver figura). Los valores de los parmetros del
manipulador son los siguientes:

l1 = l2 = 0.8 m
m1 = 4.7 Kg
m2 = 2.6 Kg
m3 = 1.1
Kg g= 9.8 m / seg^2

SOLUCION: con los datos dados podemos construir la matriz de parmetros


dinmicos.
Obtencin de los pares que se ejercen en las tres articulaciones.
>> syms t1 t2 t3 real ;
>> syms td1 td2 td3 real ;
>> syms tdd1 tdd2 tdd3 real ;
>> dyn = [0 0 0 0 0 4.7 0.8 0 0 0 0 0 0 0 0 0 1 0 0 0; 0 0.8 0 0 0 2.6 0.8 0 0 0 0 0 0
0 0 0 1 0 0 0; 0 0.8 0 0 0 1.1 0 0 0 0.05 0.1 0.1 0 0 0 0 1 0 0 0]
>> q = [ t1 t2 t3 ]
q=
[ t1, t2, t3]

>> qdd = [ tdd1 tdd2 tdd3 ]


qdd =
[ tdd1, tdd2, tdd3]
>> grav = [ 0 -9.8 0 ]
grav =
0 -9.8000 0
>> tau = rne (dyn , q , qd , qdd , grav)
tau =
[1193/250*tdd1+441/250*tdd2+1/10*tdd352/25*sin(t2)*(4/5*td1^2+49/5*sin
(t1))+52/25*cos(t2)*(4/5*tdd1+49/5*cos(t1))+4/5*sin(t3)*(11/10*cos(t3)*((
td1+td2)*(4/5*td1+4/5*td2)+cos(t2)*(4/5*td1^2+49/5*sin(t1))+sin(t2)*(4/5*td
d1+49/5*cos(t1)))+11/10*sin(t3)*(4/5*tdd1+4/5*tdd2sin(t2)*(4/5*td1^2+49/5
*sin(t1))+cos(t2)*(4/5*tdd1+49/5*cos(t1))))+4/5*cos(t3)*(11/10*sin(t3)*((td1+
td2)*(4/5*td1+4/5*td2)+cos(t2)*(4/5*td1^2+49/5*sin(t1))+sin(t2)*(4/5*tdd1+
49/5*cos(t1)))+11/10*cos(t3)*(4/5*tdd1+4/5*tdd2sin(t2)*(4/5*td1^2+49/5*si
n(t1))+cos(t2)*(4/5*tdd1+49/5*cos(t1))))+4606/125*cos(t1)+4/5*sin(t2)*(cos(t
3)*(11/10*cos(t3)*((td1+td2)*(4/5*td1+4/5*td2)+cos(t2)*(4/5*td1^2+49/5*sin
(t1))+sin(t2)*(4/5*tdd1+49/5*cos(t1)))+11/10*sin(t3)*(4/5*tdd1+4/5*tdd2sin(
t2)*(4/5*td1^2+49/5*sin(t1))+cos(t2)*(4/5*tdd1+49/5*cos(t1))))sin(t3)*(11/
10*sin(t3)*((td1+td2)*(4/5*td1+4/5*td2)+cos(t2)*(4/5*td1^2+49/5*sin(t1))
+sin(t2)*(4/5*tdd1+49/5*cos(t1)))+11/10*cos(t3)*(4/5*tdd1+4/5*tdd2sin(t2)*(
4/5*td1^2+49/5*sin(t1))+cos(t2)*(4/5*tdd1+49/5*cos(t1))))13/5*(td1+td2)*(4/
5*td1+4/5*td2)+13/5*cos(t2)*(4/5*td1^2+49/5*sin(t1))+13/5*sin(t2)*(4/5*td
d1+49/5*cos(t1)))+4/5*cos(t2)*(sin(t3)*(11/10*cos(t3)*((td1+td2)*(4/5*td1+4/
5*td2)+cos(t2)*(4/5*td1^2+49/5*sin(t1))+sin(t2)*(4/5*tdd1+49/5*cos(t1)))+11
/10*sin(t3)*(4/5*tdd1+4/5*tdd2sin(t2)*(4/5*td1^2+49/5*sin(t1))+cos(t2)*(4/5
*tdd1+49/5*cos(t1))))+cos(t3)*(11/10*sin(t3)*((td1+td2)*(4/5*td1+4/5*td2)+c
os(t2)*(4/5*td1^2+49/5*sin(t1))+sin(t2)*(4/5*tdd1+49/5*cos(t1)))+11/10*cos(
t3)*(4/5*tdd1+4/5*tdd2sin(t2)*(4/5*td1^2+49/5*sin(t1))+cos(t2)*(4/5*tdd1+4
9/5*cos(t1))))+52/25*tdd1+52/25*tdd213/5*sin(t2)*(4/5*td1^2+49/5*sin(t1))
+13/5*cos(t2)*(4/5*tdd1+49/5*cos(t1))),441/250*tdd1+441/250*tdd2+1/10*t
dd352/25*sin(t2)*(4/5*td1^2+49/5*sin(t1))+52/25*cos(t2)*(4/5*tdd1+49/5*c
os(t1))+4/5*sin(t3)*(11/10*cos(t3)*((td1+td2)*(4/5*td1+4/5*td2)+cos(t2)*(4/
5*td1^2+49/5*sin(t1))+sin(t2)*(4/5*tdd1+49/5*cos(t1)))+11/10*sin(t3)*(4/5*t
dd1+4/5*tdd2sin(t2)*(4/5*td1^2+49/5*sin(t1))+cos(t2)*(4/5*tdd1+49/5*cos(t
1))))+4/5*cos(t3)*(11/10*sin(t3)*((td1+td2)*(4/5*td1+4/5*td2)+cos(t2)*(4/

5*td1^2+49/5*sin(t1))+sin(t2)*(4/5*tdd1+49/5*cos(t1)))+11/10*cos(t3)*(4/5*t
dd1+4/5*tdd2sin(t2)*(4/5*td1^2+49/5*sin(t1))+cos(t2)*(4/5*tdd1+49/5*cos(t
1)))),1/10*tdd1+1/10*tdd2+1/10*tdd3]

LECCIN 3: MANEJO DE UN ROBOT GRFICO


DESCRIPCIN:
Se presentara una ventana con pops up y un deslizador para cada articulacin.
Mediante la operacin de los deslizadores se maneja el robot grafico sobre la
pantalla. Resulta muy til para avanzar en el entendimiento de los lmites de las
articulaciones y el espacio de trabajo del robot. El estado de las coordenadas de
las articulaciones se mantiene con el robot grafico y se obtiene usando la
funcin plot.
Los valores iniciales de las coordenadas de las articulaciones se toman desde el
robot grafico.

ROBOT PUMA 560


Comenzamos definiendo el robot
>> puma560

Ahora procedemos a manejarlo.


>> drivebot ( p560 )

Accionamos los deslizadores y presentamos algunas visualizaciones.

LECCIN 4: MODELADO Y SIMULACIN DE


SISTEMAS MECNICOS
EJERCICIOS ILUSTRATIVO
A. MANEJO DEL AUTOMVIL DESCRIPCIN:
Este modelo simula el manejo de un automvil para un juego de chasis, rueda y
caractersticas del eje. Usted puede simular al modelo para una rigidez del rollo,
o para un rango de durezas del mismo haciendo clic en el subsistema azul.
El modelo muestra que cuando un carro es acelerado a un ngulo constante de
"timoneada", el circula hacia afuera o hacia adentro.

B. Movimiento de un proyectil con arrastre de aire.

LECCIN 5: MODELOS DE MQUINAS SIMPLES


EJERCICIOS ILUSTRATIVOS.

A. FLYBALL GOVERNOR
DESCRIPCIN:
El regulador mecnico con el rbol, collar, brazos y las bolas de equilibrio.

B. MECANISMO DE CUATRO BARRAS CON


VISUALIZACIN DE DATOS.
DESCRIPCIN:
Este modelo simula un mecanismo de cuatro barras. La visualizacin de datos
para cada cuerpo es suministrada por un archivo.

BIBLIOGRAFIA
ROBTICA: Manipuladores y Robots mviles. Anibal Ollero Baturone.
Alfaomega Grupo Editor S.A. 2007. Marcombo S.A 2007.
ROBTICA. Tercera Edicin. John J. Craig. Editorial PEARSON. Prentice Hall.
SISTEMAS DE CONTROL APLICADOS A LA ROBTICA. Universidad de
Costa Rica. Escuela de Ingeniera Elctrica. 2002.
A ROBOTICS TOOLBOX FOR MATLAB, IEEE Robotics and Automation
Magazine, Vol. 3
ROBOT MANIPULATORS: MATHEMATICS, PROGRAMMING AND CONTROL.
Paul R.P. MIT Massachusetts.
ADAPTIVE MANIPULATOR CONTROL: A CASE STUDY. Slotine J., Li W. IEEE
Trans. On Automatic Control Vol. 33.
THEORY OF ROBOT CONTROL. Canudas de Wit., B. Siciliano ,y G. Bastin
(1997).Springer.
INTEGRATE MECHANICAL DESIGN AND MODELLING OF A NEW MOBILE
ROBOT. Ollero A.,1995.
EL PROBLEMA CINEMTICO EN MANIPULADORES ROBTICOS INDUSTRIALES.
A Hoosian., E. Sierra., E. Fernandez,. P. Britos.

PGINAS WEB
http://fliiby.com/file/746518/dodtik04nq.html
http://www.itapizaco.edu.mx/paginas/robo/TTM1/PAG1.html
http://www.newtonium.com/

You might also like