Está en la página 1de 215

DISEO Y CONTROL DE ROBOTS INDUSTRIALES:

TEORA Y PRCTICA

Vivas Albn, Oscar Andrs


Diseo y control de robots industriales: teora y prctica / Oscar Andrs
a
Vivas Albn; edicin literaria a cargo de Luis Pedro Videla. - 1 ed.
Buenos Aires: Deauno.com, 2010.
216 p.; 21x15 cm.
ISBN 978-987-1581-76-4
1. Robtica. 2. Diseo Industrial. I. Videla, Luis Pedro, ed. lit. II. Ttulo
CDD 629.892

Queda rigurosamente prohibida, sin la autorizacin escrita de los


titulares del copyright, bajo las sanciones establecidas por las leyes, la
reproduccin total o parcial de esta obra por cualquier medio o
procedimiento, comprendidos la fotocopia y el tratamiento informtico.
2010, Oscar Andrs Vivas Albn
2010, Elaleph.com (de Elaleph.com S.R.L.)
2010, Luis Videla, Edicin Literaria
contacto@elaleph.com
http://www.elaleph.com
Para comunicarse con el autor: avivas@atenea.unicauca.edu.co
Primera edicin
ISBN 978-987-1581-76-4
Hecho el depsito que marca la Ley 11.723

OSCARANDRSVIVASALBN

DISEO Y CONTROL DE ROBOTS INDUSTRIALES:


TEORA Y PRCTICA

elaleph.com

C ONTENIDO
PREFACIO

11

1. INTRODUCCIN
1.1 Historia de la robtica
1.2 Clula robotizada
1.3 Conceptos generales
1.4 El mercado de la robtica en el mundo
1.5 Conceptos matemticos utilizados en robtica
1.5.1 Transformaciones homogneas
1.5.1.1 Coordenadas homogneas
1.5.1.2 Transformacin de coordenadas

13
16
18
26
28
28
29
30

2. MODELO GEOMTRICO
2.1. Conceptos generales
2.2. Procedimiento para hallar la tabla de
parmetros geomtricos de un robot
2.2.1 Relaciones entre la base y el rgano terminal
2.3 Modelo geomtrico directo
2.4 Modelo geomtrico inverso
2.4.1 Mtodo de Paul
2.4.1.1 Caso especial de una mueca tipo rtula

36
41
42
48
48
51

3. MODELO CINEMTICO
3.1 Conceptos generales
3.2 Clculo de la matriz Jacobiana
3.3 Configuraciones singulares

59
60
66

4. MODELO DINMICO
4.1 Conceptos generales
4.3 Clculo de los parmetros dinmicos

69
74

ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE


OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

35

4.3.1 Mtodo de Lagrange


4.3.1.1 Clculo de la energa cintica
4.3.1.2 Clculo de la energa potencial
4.3.1.3 Modelado de los frotamientos
4.3.1.4 Inercia del accionador
4.4 Determinacin de los parmetros de base
4.4.1 Clculo de los parmetros de base

75
77
77
78
79
79
81

5. IDENTIFICACIN PARAMTRICA
5.1. Introduccin
5.2. Planificacin de la identificacin sobre el robot

95
97

6. CONTROL DE ROBOTS
6.1 Controladores industriales
6.2 Consignas de movimiento
6.2.1 Interpolacin polinomial
6.2.1.1 Interpolacin lineal
6.2.1.2 Polinomio de 3er grado
6.2.1.3 Polinomio de 5 grado
6.2.1.4 Ley tipo Bang-bang
6.2.1.5 Ley Bang-bang con trapecio en la velocidad
6.3 Estrategias de control
6.4 Control PID
6.4.1 Sintonizacin manual del controlador PID
6.5 Control dinmico
6.5.1 Control en el espacio articular
6.5.1.1 Movimiento completo deseado
6.5.1.2 Solo la posicin deseada
6.5.2 Control en el espacio operacional
6.5.2.1 Control en el espacio operacional con
correccin en el espacio articular (primer caso)
6.5.2.2 Control en el espacio operacional con correccin
en el espacio operacional (segundo caso)
7. SIMULACIN DE SISTEMAS ROBTICOS
7.1 Aspectos iniciales
7.2 Simulacin de controladores
7.2.1 Simulacin de un control PID articular
7.2.2 Simulacin de un control CTC articular
7.2.3 Simulacin de un control PID cartesiano

101
103
104
104
104
106
107
109
110
112
113
114
116
116
118
118
119
119
123
133
133
136
138

7.2.4 Simulacin de un control CTC cartesiano


7.2.5 Simulacin de un control CTC operacional
7.2.6 Simulacin de una consigna lineal con
cambio de direccin
7.2.7 Comportamiento frente a perturbaciones
7.2.8 Presencia de errores en el modelo

145
149
154
157
160

8. EJERCICIOS RESUELTOS

171

REFERENCIAS

209

NDICE

213

P REFACIO
LA ROBTICA INDUSTRIAL es un campo que hace mucho
tiempo dej de pertenecer a la ciencia ficcin para convertirse en una realidad cotidiana, impulsada por los procesos de globalizacin y competencia internacional que obligan a la fabricacin de cada vez mejores productos a
mejores precios.
A 2009 existan casi milln y medio de robots industriales instalados en todo el mundo y todo hace preveer que
esta cifra aumentar cada ao. Es igualmente notable la
presencia de asignaturas de robtica en universidades e
institutos tecnolgicos, buscando preparar los profesionales que manejarn esta tecnologa en el futuro. Y aunque
existen numerosas aplicaciones de la robtica en mltiples
campos del actuar humano (robtica mvil, espacial,
quirrgica, humanoide, etc.), es la robtica industrial el
origen y la base de esta novedosa tecnologa.
Este libro pretende ofrecer a los estudiantes universitarios de pregrado y postgrado, as como a los profesionales
en el rea, una gua bsica sobre el modelado y el control
de robots industriales. Se incluyen gran cantidad de ejemplos as como ejercicios propuestos y resueltos, con el fin
de que inclusive estos conceptos puedan ser aprendidos a
travs de un proceso de auto-aprendizaje. Sin embargo,
siendo la robtica un rea de trabajo tan extensa, se pretende ofrecer una gua general que pueda servir a todos, y
no abarcar tpicos ms especializados o de complejidad
superior. Entindase con esto que este libro permitir al
lector disear, simular y controlar un robot industrial tipo

11

serie, y que con conocimientos adicionales en electrnica


podra tambin construir uno por su propia cuenta.
Existen variadas formas de modelar matemticamente
un robot. Este documento utiliza la notacin geomtrica
propuesta por Khalil y Kleinfinger (1986) para la definicin
de un robot, as como los conceptos de parmetros de base
y control de robots presentes en el libro de Khalil y Dombre
(2002). Se recomienda as mismo el libro editado por Siciliano y Khatib (2008) donde se encuentran ms de setenta
contribuciones de diversos autores sobre gran cantidad de
aspectos relacionados con la robtica.
Las simulaciones han sido realizadas utilizando el software Matlab/Simulink, aunque una vez definidos los modelos matemticos del mecanismo a estudiar, varios paquetes comerciales pueden ser utilzados con el fin de simular
su comportamiento.
Finalmente se espera que este libro aporte al lector los
conocimientos fundamentales sobre esta tecnologa, y lo
motive para profundizar en ella y en sus mltiples aplicaciones, vislumbrando nuevas formas de progreso hacia el
futuro.
SUECIA, VERANO DE 2010

12

1. I NTRODUCCIN
1.1 Historia de la robtica
LA PALABRA ROBOT fue acuada por el checo Karel apek,
quien en 1921 present una obra de teatro donde aparecan humanos artificiales. Dado que en el idioma checo y en
muchos idiomas eslavos la palabra robota significa trabajo o servidumbre, mostraba con el trmino a un ser
artificial creado para servir a los seres humanos.
Desde sus inicios los robots han fascinado y generado
temor en el ser humano, gozando hoy en da de gran popularidad en el imaginario colectivo. Autores de ciencia ficcin
como Isaac Asimov (1920 1992) o exitosas pelculas de
cine como La Guerra de las Galaxias (1977 2005), Yo
robot (2004), o Wall-E (2008) han sabido guiar este marcado inters. Sin embargo, a nivel cientfico y comercial, la
historia de la robtica muestra una industria muy dinmica y variada, con aplicaciones que van desde el ensamblaje
industrial, pasando por la exploracin espacial o la robtica quirrgica, hasta llegar a los robots humanoides de
Honda o Sony, ltimos desarrollos que podran corresponder ms al trmino original creado por apek.
De manera general cualquier mecanismo que opere con
cierta autonoma y controlado por computador podra ser
llamado un robot. Sin embargo la expresin clsica del
trmino describe un manipulador mecnico con ciertas
similitudes a un brazo humano y controlado por un computador.

13

La Organizacin Internacional para la Estandarizacin


(International Organization for Standarization) define en la
ISO 8373 a un robot como:
Un sistema automticamente controlado, reprogramable, multipropsito, manipulador programable en tres o
ms ejes, que puede estar fijo en un sitio o hacer parte de
una plataforma mvil, y que tiene su uso principal en aplicaciones automticas industriales.
Sin embargo la definicin de la ISO se ha quedado corta
con la aparicin en las ltimas dcadas de gran cantidad
de aplicaciones robticas en campos diferentes a la industria. Por eso la Federacin Internacional de Robtica (International Federation of Robotics) ha introducido el trmino de robot de servicios como un robot que puede operar
semi o completamente autnomo para llevar a cabo tareas
tiles al bienestar de los humanos y al buen funcionamiento de ciertos equipos, excluyendo las operaciones de manufactura.
La pieza clave en la definicin de la ISO es el hecho de
que un robot pueda ser reprogramado para ejecutar diversas tareas, gracias a la programacin que su cerebro
electrnico (computador) pueda generar. Desde este punto
de vista la robtica no es ms que un paso evolutivo de los
computadores.
Algunos autores (Spong et. al, 2006) afirman que la
robtica ha sido el fruto de la mezcla de dos tecnologas: la
teleoperacin por una parte, utilizada durante la segunda
guerra mundial para la manipulacin de substancias radioactivas; y las mquinas de control numrico (CNC), desarrolladas para el ensamblaje de precisin exigido por ciertas industrias.
A continuacin se muestran algunos de los hitos ms
importantes en la historia de la robtica:
1947: Primer teleoperador elctrico, inventado por George Devol.
1954: Devol disea el primer robot programable.

14

1956: Joseph Engelberger compra los derechos del robot


de Devol y funda la compaa Unimation en Estados Unidos.
1961: El primer robot Unimation es instalado en una
fbrica de la General Motors.
1963: Es desarrollado el primer sistema de visin robotizada.
1971: El robot Stanford es desarrollado en la Universidad de Stanford (Estados Unidos).
1976: Brazos robot son utilizados en las misiones espaciales Viking I y II a Marte.
1978: Unimation desarrolla el robot PUMA (Programmable Universal Machine for Assembly), basado en los estudios realizados en la compaa General Motors.
1979: El robot SCARA (Selective Compliant Articulated
Robot for Assembly) es desarrollado en Japn.
1986: El robot submarino Jason del Instituto Oceanogrfico Woods Hole explora los restos descubiertos del
transatlntico Titanic.
1988: Es fundada la Sociedad de Robtica y Automtica
de la IEEE.
1996: Honda desarrolla su proyecto de robot humanoide.
1997: Se lleva a cabo el primer campeonato de ftbol
con robots en Japn, donde participan 40 equipos de todo
el mundo.
2001: Sony comercializa exitosamente el primer robot
para uso domstico, el perro Aibo.
2001: Se lleva a cabo la primera operacin laparoscpica a distancia (teleciruga), donde los cirujanos se encontraban en Estados Unidos y la paciente en Francia.
2004: Misin espacial a Marte de los robots Opportunity
y Spirit.
2005: Robot humanoide ASIMO de Honda.
2009: Prtesis robotizada de brazo de la agencia DARPA
de los Estados Unidos.

15

1.2 Clula robotizada


Se define una clula robotizada como un sistema que
involucra uno o varios robots, lo cuales realizan diversas
tareas de tipo industrial. Diversos componentes hacen parte de una clula robotizada:

Mecanismo, que permite interactuar sobre el ambiente. Est movido por motores que pueden ser actuadores elctricos, neumticos o hidrulicos.
Percepcin, realizada a travs de sensores internos
(posicin y velocidad articular) o externos (deteccin
de presencia, distancia, visin artificial).
Control, el cual genera las rdenes hacia los actuadores.
Interfaz humano-mquina, a travs de la cual el
usuario programa las tareas que el robot debe realizar.
Puesto de trabajo, que constituye el ambiente general sobre el cual interacta el robot.

La robtica es pues una disciplina multidisciplinaria


que involucra los campos de la mecnica, electrnica, automtica, tratamiento de seal, comunicaciones, informtica, gestin industrial, etc. De manera muy general se podra decir que los ingenieros mecnicos, elctricos y
electrnicos se encargan del diseo y construccin del mecanismo; los ingenieros especialistas en instrumentacin
se encargan de la percepcin; los ingenieros en control o
automtica se encargan del control del robot; los ingenieros
en sistemas o informtica se encargan de construir la interfaz humano-mquina y de la programacin del robot;
por ltimo los ingenieros industriales se encargan de la
produccin de un robot en un puesto de trabajo. No obstante los ingenieros que salen al mundo laboral deben
adaptarse cada vez ms a este tipo de entornos multidisciplinarios sin importar muchas veces su formacin inicial.
Desde el punto de vista mecnico los robots estn constituidos por:

16

a) rgano terminal, el cual reagrupa todo dispositivo


destinado a manipular objetos o a transformarlos.
b) Estructura mecnica articulada, cuya tarea es llevar el rgano terminal a una situacin (posicin y
orientacin) determinada. Su arquitectura consta
de una cadena de cuerpos generalmente rgidos
unidos por articulaciones.
Las cadenas cinemticas pueden ser abiertas, arborescentes, cerradas o en paralelo, como se muestra en la Figura 1.1 (Khalil and Dombre, 2002).

a)

b)

c)

d)

Figura 1.1 Tipos de estructuras robticas: a) robot serie; b) robot


cerrado; c) robot arborescente; d) robot paralelo.

Las cadenas abiertas, que son las ms comunes, simulan un brazo humano y constan de varias articulaciones
que permiten al rgano terminal realizar determinada tarea
en el espacio. Las cadenas cerradas pueden involucrar articulaciones pasivas, es decir carentes de motor, las cuales
se mueven gracias al impulso que les proporcionan las
articulaciones activas presentes en el anillo cinemtico
17
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

cerrado. Las cadenas arborescentes constan de varias cadenas abiertas unidas a una misma base. Dado que es ms
fcil implementar varias cadenas abiertas trabajando de
forma colaborativa, las cadenas arborescentes no son utilizadas en la industria. Por ltimo los robots paralelos constan de una base y una plataforma, unidas entre s por varias cadenas cinemticas, lo cual proporciona al robot
mucha mayor precisin y le permite alcanzar velocidades y
aceleraciones considerables. Este tipo de robots son estudiados de manera ms detallada en Merlet (2006) y Zhang
(2009).
Industrialmente hablando la gran mayora de robots
est constituida por cadenas cinemticas abiertas, dejando
una pequea proporcin a los robots paralelos, utilizados
en aplicaciones industriales especiales donde la velocidad o
la carga son aspectos de vital importancia. De otra parte
las cadenas cerradas encuentran su aplicacin en la robtica quirrgica laparoscpica, donde el robot debe moverse
manteniendo siempre un punto fijo en alguno de sus eslabones, el cual corresponde a la abertura abdominal por
donde se realiza la intervencin laparoscpica. Finalmente
las cadenas arborescentes pueden utilizarse en aplicaciones tales como el diseo de robots bpedos, donde cada
cadena representa una pierna del robot.
1.3 Conceptos generales
A continuacin se muestran las principales definiciones
en el campo de la robtica.
Articulacin: Mecanismo que une dos cuerpos sucesivos, accionado por un motor. Las articulaciones son principalmente rotoides (de giro) o prismticas (de desplazamiento), aunque existen combinaciones de las dos o
articulaciones pasivas (sin motor) que reproducen cualquiera de los dos movimientos.
Articulacin rotoide: El movimiento de rotacin se realiza alrededor de un eje comn entre dos cuerpos. La situacin relativa entre los dos cuerpos est dada por el ngulo
alrededor de este eje (Figura 1.2).

18

Figura 1.2. Articulacin rotoide.

Articulacin prismtica: El movimiento de traslacin


se realiza a lo largo del eje comn entre dos cuerpos. La
situacin relativa entre los dos cuerpos est dada por la
distancia a lo largo de este eje (Figura 1.3).
P

Figura 1.3. Articulacin prismtica.

Grado de libertad: Define cada movimiento independiente del robot (Figura 1.4). Para situar un objeto en un
espacio tridimensional son necesarios tres grados de libertad, uno por cada dimensin. Pero un robot debe disponer
de 6 grados de libertad para posicionar y orientar un slido
en el espacio: para ubicarlo en el espacio necesita 3 grados
de libertad, para imprimirle cualquier rotacin necesita 3
grados de libertad adicionales. Esto significa que un robot
con menos de 6 grados de libertad no puede alcanzar cualquier punto del espacio de trabajo con una orientacin arbitraria.

Figura 1.4. Mecanismos de uno y dos grados de libertad.

19

Comnmente los robots industriales poseen cuatro, cinco o seis grados de libertad. Los robots con ms de 6 grados de libertad son llamados robots redundantes y son
utilizados en aplicaciones especiales donde es necesario
sobrepasar obstculos cercanos al rgano terminal (por
ejemplo en la robtica quirrgica).
Espacio articular: Es el espacio en el cual se representa la situacin de todos los cuerpos del robot; corresponde
al lenguaje que maneja el mecanismo en s mismo (movimientos rotacionales o prismticos). Su dimensin N corresponde al nmero de grados de libertad de la estructura. En una estructura abierta o arborescente las variables
articulares son independientes, mientras que en una estructura cerrada es necesario establecer relaciones entre
las diferentes variables.
Espacio operacional: Es aquel donde se representa la situacin del rgano terminal. Para definir esta situacin se
utilizan las coordenadas cartesianas en tres dimensiones. Es
llamado tambin espacio cartesiano y es importante desde el
punto de vista de la tarea industrial a realizar por el robot.
Dicho de otra manera el robot es diseado en el espacio
articular pero los movimientos que se le piden, los cuales
corresponden a determinadas tareas industriales, son definidos en el espacio operacional. Se deben utilizar entonces
herramientas matemticas para transformar un espacio en
otro, y en tiempo real, con el fin de que efectivamente el
robot realice la tarea que le ha sido programada.
Configuraciones singulares: En ciertas configuraciones puede suceder que el nmero de grados de libertad del
rgano terminal sea inferior a la dimensin del espacio
operacional, perdindose por lo tanto un grado de libertad.
Por ejemplo si se tienen dos ejes de articulaciones prismticas paralelos o dos ejes de articulaciones rotoides confundidas, se tendr en cada caso dos articulaciones pero
solo un grado de libertad (Figura 1.5). Esto claro est es un
desperdicio desde el punto de vista econmico. Sin embargo existen otros casos donde la presencia de configuraciones singulares no es tan evidente, pudindose presentar

20

daos importantes en el robot. Esta situacin particular se


ver en la seccin 3.3.

Figura 1.5. Configuraciones singulares.

Morfologas de brazos manipuladores: Con el fin de


definir los diversos tipos de arquitecturas de robots industriales posibles se tienen en cuenta dos parmetros: tipo de
articulacin y ngulo que forman dos ejes sucesivos. Generalmente los ejes consecutivos son o paralelos o perpendiculares. El nmero de morfologas posibles se deduce entonces de la combinacin de los cuatro valores que pueden
tomar estos parmetros: articulacin rotoide, articulacin
prismtica, eje paralelo, y eje perpendicular.
Como puede observarse en la Tabla 1.1 (Khalil and
Dombre, 2002), con 6 grados de libertad es posible construir hasta 3.508 robots completamente diferentes, lo cual
muestra la gran diversidad de aplicaciones para las cuales
pueden ser construidos. La Figura 1.6 muestra como ejemplo las 8 estructuras diferentes que se pueden construir
con solo 2 grados de libertad.
Tabla 1.1 Estructuras posibles de robots dependiendo
de los grados de libertad.
Grados de libertad
2
3
4
5
6

No. de estructuras
8
36
168
776
3.508

21

* Conf.
singular

Figura 1.6. Estructuras posibles con 2 grados de libertad.

Diversas arquitecturas de robots: Los tres primeros


grados de libertad de un robot industrial tipo serie (cadena
cinemtica abierta) forman lo que se llama el portador del
robot. Dicho portador o brazo propiamente dicho, permite
que el rgano terminal o mueca llegue con su herramienta al sitio determinado en el espacio de trabajo donde el
robot deba realizar su tarea. La mueca est formada por
los grados de libertad adicionales al portador y tiene dimensiones ms pequeas y de menor masa.
La Figura 1.7 muestra las combinaciones ms utilizadas
como portadores en el medio industrial, dependiendo del
tipo de articulacin que utilicen (rotoide R o prismtica P).
Es de notar que la arquitectura RRR (rotoiderotoide
rotoide) es conocida como la arquitectura antropomorfa, ya
que simula la configuracin hombro y codo de un brazo
humano.
En la prctica los portadores son de tipo RRP (esfricos),
RPR (tricos), RPP (cilndricos), PPP (cartesianos), RRR (antropomorfos), y el conocido RRRP (robot SCARA). Los nombres en parntesis hacen referencia al volumen que dibuja
en el espacio tridimensional cada robot. Estas estructuras
se muestran en la Figura 1.8.

22

RRR

RRP

RPR

RPP

PRR

PPR

PPP

Figura 1.7. Diversos tipos de portadores robticos.

23

Figura 1.8. Portadores esfrico, trico, cilndrico, cartesiano,


antropomrfico y tipo SCARA.

El volumen de trabajo de los portadores ms utilizados, suponiendo un giro completo de 360 para la primera articulacin y un desplazamiento de L en su brazo es:
Portador
Portador
Portador
Portador

cilndrico: 3L3
esfrico: (28/3) L3
Scara: 4L3
antropomrfico: (32/3)L3
24

Los anteriores datos explican la popularidad comercial


del portador antropomrfico, ya que su volumen de trabajo
es claramente superior.
Para las muecas se encuentran varias arquitecturas,
siendo la ms utilizada una mueca RRR con 3 ejes que se
cruzan, tambin llamada rtula. Esto significa que los tres
ejes de rotacin confluyen en un solo punto, lo cual se
asemeja a la mueca humana, pudiendo realizar las rotaciones llamadas de alabeo, cabeceo y guiada (roll, pitch y
yaw respectivamente). Los diversos tipos de mueca se
observan en la Figura 1.9.
Mueca de un eje

Mueca con dos ejes que


se cruzan

Mueca con dos ejes


paralelos

Mueca con tres ejes


que se cruzan (rtula)

Figura 1.9. Diversos tipos de muecas robticas.

Desde el punto de vista comercial existen muchas caractersticas tcnicas que diferencian un robot de otro. Sin
embargo las ms comunes son:

Espacio de trabajo: Se refiere al conjunto de posiciones que el rgano terminal puede alcanzar. Est
dado en centmetros o metros cbicos.
Carga til: Es la carga mxima transportable por el
robot, dada en kilogramos.

25

Velocidades y aceleraciones mximas: tiles para


saber qu cadencia de produccin puede proporcionar determinado robot. Las unidades son cm/seg o
m/seg para la velocidad y cm/seg2 o m/seg2 para la
aceleracin.
Desempeo: El cual se mide a partir de la exactitud
del robot (diferencia entre la posicin deseada y la
posicin medida), y la repetibilidad (dispersin de
las posiciones alcanzadas cuando se controla sucesivamente la misma posicin).
Resolucin: Hace referencia a la ms pequea modificacin de la configuracin del robot, a la vez observable y controlable por el sistema de control.

1.4 El mercado de la robtica en el mundo


Segn la Federacin Internacional de Robtica (International Federation of Robotics), existan en el ao 2009 alrededor de 1.300.000 robots industriales instalados en todo
el planeta. En el mismo ao se vendieron alrededor de
113.000 nuevas unidades en el mundo, mercado que registra cierto estancamiento debido a la crisis econmica mundial, pero del cual se espera un renovado crecimiento en
los prximos aos.
La crisis ha trado una disminucin de los robots instalados en Norteamrica, debido a que sta ha golpeado particularmente la industria automotriz, principal usuario de
esta tecnologa. Pero de otro lado las ventas han crecido en
China, Corea y otros pases de Asia. La Tabla 1.2 muestra
un resumen de los robots vendidos en 2009 y el nmero
total de robots en funcionamiento.
Las principales aplicaciones para los robots vendidos en
los ltimos aos se centran en la industria automotriz, la
fabricacin de partes para automviles, la fabricacin de
maquinaria elctrica, la produccin de productos qumicos
y plsticos, la produccin de maquinaria industrial y la
elaboracin de productos alimenticios.

26

Tabla 1.2. Robots vendidos en 2009 y total instalados.


Pas
Japn
Norteamrica (USA,
Canad, Mxico)
Alemania
Corea
Italia
China
Francia
Espaa
Taiwn
Reino Unido
Benelux (Blgica,
Holanda, Luxemburgo)
Suecia
Australia y Nueva Zelanda
Tailandia
Latinoamrica
India

Vendidos en
2009
18.000

Total instalados
339.800

9.000
10.000
8.100
3.500
5.000
1.800
1.500
3.400
600

166.800
145.800
79.300
62.900
36.800
34.400
27.400
23.700
13.300

1.300
1.100
850
1.600
600
500

11.200
9.500
6.700
6.500
6.000
4.200

En cuanto a los robos de servicios stos tuvieron un


mercado mucho ms dinmico en 2009: ms de 65.000
unidades vendidas. De estos alrededor del 30% corresponden a robots de defensa, rescate y aplicaciones de seguridad. Le siguen los robots para aplicaciones agroindustriales con un 23%, los robots de limpieza con un 9%, robots
mdicos y submarinos con un 8%, robots para construccin y demolicin con un 7% y robots mviles para usos
variados con un 6%.
Por ltimo el mercado de robots para uso personal y
privado es mucho ms grande, ya que involucra robots
producidos en masa a precios ms bajos que los anteriores
y cuyo destinatario es un usuario particular. En 2009 se
vendieron cerca de 4 millones y medio de robots para uso
domstico (robots aspiradora, robots cortadores de csped,
etc.) y casi 3 millones de robots de entretenimiento (jugue 27
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

tes robot, robots educativos, robots de entrenamiento, etctera).


1.5 Conceptos matemticos utilizados en robtica
Los conceptos matemticos imprescindibles en la robtica son el lgebra lineal y el trabajo con los sistemas de
coordenadas espaciales. Para describir la posicin y orientacin de un robot en cada instante de tiempo, tanto al
puesto de trabajo como a cada una de las articulaciones
del robot debe asignrsele un sistema de coordenadas. La
nocin de transformacin de coordenadas es por lo tanto
fundamental y permite:

Expresar la situacin de los diferentes cuerpos del


robot, los unos con referencia a los otros.
Especificar la situacin que debe tomar el sistema
de coordenadas asociado al rgano terminal del robot para realizar una determinada tarea, as como
su velocidad correspondiente.
Describir y controlar los esfuerzos necesarios cuando el robot interacta con su entorno.
Integrar al control las informaciones provenientes
de los sensores, los cuales poseen su sistema de referencia propio.

Existen diversas formas de ubicar un punto en el espacio, tales como los ngulos de Euler o los cuaternios (Siciliano and Khatib, 2008), que tratan la rotacin y el desplazamiento de manera separada. ltimamente ha despertado
bastante inters la teora de los screws (Davidson and
Hunt, 2004), la cual combina rotacin y desplazamiento
utilizando pocos clculos. Sin embargo la forma ms utilizada para trabajar estas dos situaciones sigue siendo las
transformaciones homogneas, las cuales se vern a continuacin.
1.5.1 Transformaciones homogneas
Permiten expresar las posiciones de los diferentes cuerpos del robot, las unas en relacin con las otras. En este
28

caso los vectores de posicin y las matrices de orientacin


se combinan y se expresan de manera compacta.
1.5.1.1 Coordenadas homogneas
Para representar un punto en el espacio se utilizan cuatro elementos: tres describen su posicin en el espacio respecto al origen, y un cuarto representa un factor de escalamiento, normalmente unitario. La representacin de un
punto se realiza entonces de la siguiente manera:
p = Px

Py

Pz 1

(1)

Pz

Px
x

Py

Figura 1.10. Representacin de un punto en coordenadas


homogneas.

La representacin de una direccin es algo mucho ms


complejo. Se realiza igualmente a partir de cuatro elementos como en el caso anterior, pero ahora los primeros tres
elementos son vectores de dimensin 3x1, donde cada uno
de ellos representa la rotacin del punto final en x, y e z,
respecto a los ejes x, y e z originales. Esta rotacin se define por medio de la siguiente matriz.
u = u

uy

uz

Expandiendo cada vector:

29

(2)

s x
s
u= y
s z

nx
ny
nz
0

ax
ay
az

(3)

Donde:
sx: Rotacin del eje x actual respecto al eje x anterior.
sy: Rotacin del eje x actual respecto al eje y anterior.
sz: Rotacin del eje x actual respecto al eje z anterior.
nx: Rotacin del eje y actual respecto al eje x anterior.
ny: Rotacin del eje y actual respecto al eje y anterior.
nz: Rotacin del eje y actual respecto al eje z anterior.
ax: Rotacin del eje z actual respecto al eje x anterior.
ay: Rotacin del eje z actual respecto al eje y anterior.
az: Rotacin del eje z actual respecto al eje z anterior.
1.5.1.2 Transformacin de coordenadas
Utilizando las representaciones anteriores para rotar y
desplazar un cuerpo, en la Figura 1.11 se muestra la
transformacin de coordenadas entre dos sistemas de referencia. Esta transformacin est definida por la matriz iTj,
la cual se expresa de la siguiente manera:

T j = i s j

nj

aj

s x
s
i
P j = y
s z

30

nx

ax

ny

ay

nz
0

az
0

Px
Py
Pz

(4)

xj
zj

zi
Rj

Ri
yi

yj

xi
iTj

Figura 1.11. Transformacin de coordenadas.

Se puede decir entonces que los vectores unitarios isj,


i
,
j aj son los vectores segn los ejes xj, yj y zj de la base
Rj, expresados en la base Ri ; y que iPj es el vector que expresa el origen de la base Rj en la base Ri. Dicho de otra
manera la matriz iTj define la base Rj en la base Ri.
in

Otra forma de expresar la matriz iTj vista en (4) es:

i Aj
Tj =
0 0 0

Pj i s j
=
1 0

nj
0

aj
0

Pj

(5)

En este caso a iAj se le conoce como matriz de orientacin y a iPj como vector de posicin, iguales a:

sx
A j = sy
sz

nx
ny
nz

ax
Px
ay ; i P j = Py
Pz
a z

(6)

Ejemplo 1.1: Representacin de la matriz iTj cuando se presenta desplazamiento y rotacin respecto al sistema de coordenadas original.

31

a) Desplazamiento:
1
0
i
Tj =
0

Zj
Zi

(3, 2, 4)

4
Yj
3

Xj
2

0 0 -3
1 0 -2
0 1 4

0 0 1

Yi

Xi

Definir el vector de posicin es fcil, simplemente se expresa el actual origen de coordenadas (sistema Rj) respecto
al anterior origen de coordenadas (sistema Ri). Se observa
entonces que el origen del sistema Rj se encuentra a 3
unidades en x, 2 unidades en y, 4 unidades en z, respecto
al origen del sistema Ri. Definir la orientacin es ms complejo, por algo se necesitan nueve elementos para realizarlo. En este caso la presencia de la matriz unitaria en iAj
significa que el vector Xj est en la misma direccin que el
vector Xi, que el vector Yj est en la misma direccin que el
vector Yi, y que el vector Zj est en la misma direccin que
el vector Zi.
b) Desplazamiento y rotacin de 90 grados en los ejes:
0
0
i
Tj =
-1

(2, 8, 5)
Zi

Yj

5
Zj
Xj 8

Yi

2
Xi

32

0 1 2
1 0 8
0 0 5

0 0 1

En este ejemplo, aparte del desplazamiento de (2, 8, 5)


del origen del sistema de coordenadas Rj, se presenta
adems una rotacin de 90 grados. Para cada uno de los
vectores de la matriz de orientacin se realiza el siguiente
anlisis:
is : El vector X est en la direccin contraria del vector
j
j
Zi, siendo paralelo a l. Por lo tanto hay coincidencia en el
elemento sz, el cual ser igual a 1 dada la direccin contraria entre los dos. Los otros dos elementos sern iguales
a cero ya que son perpendiculares con el vector Xj.
in : El vector Y est en la misma direccin del vector Y ,
j
j
i
siendo paralelo a l. Hay coincidencia en el elemento ny, el
cual ser igual a 1. Los otros dos elementos son iguales a
cero.
ia : El vector Z est en la misma direccin del vector X ,
j
j
i
siendo paralelo a l. Hay coincidencia en el elemento ax, el
cual ser igual a 1. Los otros dos elementos son iguales a
cero.

Ejercicio 1.1:
Dibujar las rotaciones y translaciones representadas por
las siguientes matrices de transformacin:
0
-1
a) iT j =
0

0
0
-1
0

1 0
0 0
c) iT j =
0 -1

0 0

1 3
0 5
; b) iT j =
0 5

0 1
0 -2
-1 1
0 -2

0 1

0 -1
0 0

1 0

0 0

0 1
1 0
;
0 4

0 1

Rotacin sobre un solo eje:


Cuando se presenta rotacin sobre uno solo de los ejes
en un ngulo determinado, se tienen las siguientes matrices de transformacin:
33

a) Rotacin sobre el eje x:


Zi

aj

Zj

Yj

nj

Yi

Xi
sj

1 0
0 C
i
Tj =
0 S

0 0

0 0
-S 0
C 0

0 1

Xj

b) Rotacin sobre el eje y:

Zj

Yi
nj

Xi

C
0
i
Tj =
-S

Zi

aj

0 S

0
1 0 0
0 C 0

0 0 1

Yj

sj X j

c) Rotacin sobre el eje z:

Zj

aj

Yj

nj

Xi

C -S 0 0
S C 0 0
i

Tj =
0
0 1 0

0 0 1
0

Zi

Yi

sj X j

Es claro que en la prctica se presentan mltiples combinaciones de desplazamientos y rotaciones, con varios cuerpos
y al mismo tiempo. Esto exige una representacin mucho
ms compleja, la cual se ver en el siguiente captulo.

34

2. M ODELO GEOMTRICO
2.1. Conceptos generales
Existen dos mtodos para representar geomtricamente
un robot, es decir, dos maneras de representar las caractersticas fsicas del robot en un sistema de coordenadas
referenciado a cada articulacin. El ms comn y antiguo
es el mtodo de Denavit-Hartenberg (1955). Sin embargo,
debido a las limitaciones de dicho mtodo frente estructuras robticas ms complejas, Khalil-Kleinfinger (1986) desarrollaron un mtodo ms general, el cual ser utilizado
en este libro. Dicho mtodo tambin es utilizado en los
libros de Craig (1986) y Ollero (2001).
Antes de utilizar este mtodo se debe realizar la colocacin de los ejes x y z sobre las articulaciones del robot (el
eje y no es importante). Para esto se deben tener en cuenta
dos consideraciones:

el eje zj es el eje de la articulacin j, es decir el eje


sobre el cual rota o se traslada la articulacin.
el eje xj es perpendicular comn a los ejes zj y zj+1
(esto implica que el eje xj forma un ngulo de 90
con cada uno de los ejes zj y zj+1, y que adems los
toque directamente).

Se definen cinco parmetros geomtricos para cada una


de las articulaciones del robot:

j: tipo de articulacin (j = 0 si la articulacin es rotoide; j = 1 si la articulacin es prismtica).


j: ngulo entre los ejes zj-1 y zj correspondiente a una
rotacin alrededor de xj-1.
35

dj: distancia entre zj-1 y zj a lo largo de xj-1.


j: ngulo entre los ejes xj-1 y xj correspondiente a una
rotacin alrededor de zj.
rj: distancia entre xj-1 y xj a lo largo de zj.
La matriz que define Rj en Rj-1 (ntese que antes era
llamada iTj) es :
j-1T
j

= Rot(x, j) Trans(x, dj) Rot(z, j) Trans(z, rj)


C j
C S
j-1
Tj = j j
S j S j

-S j

C j C j

-S j

S j C j
0

C j
0

dj

-r j S j
r j C j

(7)

Donde para aligerar la escritura, Cj representa a cos(j),


Sj a sen(j), y as sucesivamente. Existe igualmente la
transformacin inversa, de Rj-1 a Rj, la cual es igual a:
-d j C j

j -1 A T
d j S j
j
j
T j -1 =

-r j

1
0 0 0

(8)

Obsrvese que en esta ltima ecuacin la matriz de


orientacin de jTj-1 es la transpuesta de la matriz de orientacin de j-1Tj, mas no as el vector de posicin, que tiene
su propia expresin.
2.2. Procedimiento para hallar la tabla de parmetros
geomtricos de un robot
c) Colocar los ejes zj- de cada articulacin.
d) Colocar los ejes xj- de cada articulacin, teniendo en
cuenta la condicin de perpendicularidad comn
expresada anteriormente.
e) Hallar los cinco parmetros geomtricos dependiendo de la relacin (distancias y ngulos) entre los
ejes de las articulaciones.
36

Recomendaciones:
-

El parmetro j es el ms sencillo de hallar, l es


igual a 0 si la articulacin es rotoide, igual a 1 si la
articulacin es prismtica.
El parmetro j se obtiene mediante la regla de la
mano derecha: se ubica el pulgar en la direccin de
xj-1 y los dedos en la direccin de zj-1. Los dedos se
dirigen hacia la palma, donde estar zj, formando
un ngulo de 90. Si la rotacin se verifica de zj-1 a
zj el signo es positivo (+90), si va de zj a zj-1 el signo
es negativo (-90). Igualmente se puede verificar la
presencia de un signo negativo en el ngulo si el
pulgar tiene que ubicarse en -xj-1 para poder realizar
la rotacin requerida.
El parmetro dj se obtiene fcilmente a partir de la
distancia definida anteriormente.
El parmetro j muestra directamente la presencia
de una articulacin rotoide. Obsrvese que al aplicar la definicin efectivamente deber aparecer un
ngulo entre xj-1 y xj, teniendo en cuenta que xj se
mueve (rota) mientras que xj-1 permanece inmvil.
Igualmente podra existir un ngulo de +90 o de 90 entre estos dos ejes, sin la presencia de una articulacin rotoide.
El parmetro rj muestra directamente la presencia
de una articulacin prismtica. Al aplicar la definicin se debe mantener fijo el eje xj-1 y suponer que
existe movimiento en el eje xj con el fin de verificar
la presencia o no de la distancia respectiva. Igualmente podra existir una distancia fija entre los ejes
xj y xj-1 sin la presencia de una articulacin prismtica

37
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

Ejemplo 2.1: Parmetros geomtricos de un robot tipo PUMA.


z4, z6

z4
x4, x5, x6

z6

z5
z5

z0, z1

R4

z2

x5, x6
z3
x2

x0, x1, x2
z3

x4

z0, z1

R4
x3

z2

D3

x0, x1

D3

Figura 2.1. Arquitectura robot tipo PUMA


(izquierda: vista en 3D; derecha: vista frontal).

La anterior figura muestra la arquitectura de un robot


tipo PUMA de seis grados de libertad, donde todas las articulaciones son rotoides. Obsrvese igualmente que las tres
primeras articulaciones corresponden a un portador antropomrfico mientras que las tres ltimas corresponden a
una mueca tipo rtula. La Figura 2.1 muestra el robot
visto en tres dimensiones y en dos, con el fin de facilitar su
anlisis. Ntese que intencionalmente en la figura de la
derecha se ha rotado la articulacin nmero cinco, sin embargo esto no vara la tabla de parmetros geomtricos que
se muestran en la Tabla 2.1.

38

Tabla 2.1. Tabla de parmetros geomtricos


robot tipo PUMA.
j
1
2
3
4
5
6

0
0
0
0
0
0

0
90
0
-90
90
-90

dj
0
0
D3
0
0
0

j
1
2
3
4
5
6

rj
0
0
0
R4
0
0

Ejemplo 2.2: Parmetros geomtricos de un robot cilndrico.


z0, z1, z2

z0, z1, z2
z3, z4

z3, z4
x0, x1, x2,
x3, x4

x0, x1, x2, x3, x4

Figura 2.2. Arquitectura robot cilndrico.

Tabla 2.2. Tabla de parmetros geomtricos


robot cilndrico.
j
1
2
3
4

0
1
1
0

0
0
-90
0

dj
0
0
0
0

39

j
1
0
0

rj
0
r2
r3
0

Ejercicio 2.1:
Hallar la tabla de parmetros geomtricos de los siguientes
robots:
a)

b)

c)

d)

e)

f)

Nota: El robot del numeral e) es conocido como robot tipo SCARA, ampliamente utilizado en la industria para operaciones de ensamblado.

40

2.2.1 Relaciones entre la base y el rgano terminal


Como se vio en el captulo anterior, a cada cuerpo en
movimiento se le debe asociar un sistema de coordenadas
determinado. Si se tienen varios cuerpos unidos y movidos
por cierto nmero de articulaciones (como en un robot tipo
serie), un sistema de coordenadas estar presente en cada
articulacin. Es de vital importancia en cada tiempo de
muestreo saber exactamente cul es la posicin y orientacin del rgano terminal respecto a la base.
Como lo muestra la Figura 2.3, al moverse todo el robot
al mismo tiempo debe encontrarse una manera de relacionar las matrices de transformacin de cada una de las articulaciones. Antes de hallar la relacin entre el rgano terminal y la base se debe modelar matemticamente cada
articulacin con el fin de obtener una matriz de transformacin para cada una de ellas.
De la base al rgano terminal (modelo geomtrico
inverso)

Rn-2
R3
Rn-1
Rn

R2

R1
R0
Del rgano terminal a la
base (modelo geomtrico
directo)

Figura 2.3. Sistemas de coordenadas para cada articulacin.

Dos modelos son necesarios para saber en todo momento dnde exactamente se encuentra el rgano terminal, y
qu articulaciones se deben mover para posicionar el rgano terminal en un punto deseado. En el primer caso se
habla del modelo geomtrico directo, donde a partir de la
matriz 0Tn la base puede conocer en todo momento la posi 41

cin y orientacin del rgano terminal. En el segundo caso


se habla del modelo geomtrico inverso, donde es necesario
conocer las ecuaciones que rigen cada articulacin para
saber cmo deben moverse para posicionar el rgano terminal en un punto deseado. Los dos modelos son complementarios, la siguiente tabla muestra sus diferencias.
Tabla 2.3. Diferencias entre el modelo geomtrico
directo e inverso.
Variables conocidas
Modelo geomtrico
directo
Modelo geomtrico
inverso

Incgnitas

0T n

ri
0T n

i
ri

2.3 Modelo geomtrico directo


Este modelo expresa la situacin del rgano terminal, es
decir, las coordenadas operacionales del robot (notadas por
X), en funcin de sus coordenadas articulares (notadas por
q). En este caso X representa las tres dimensiones x, y, z
en un espacio tridimensional, y q representa el tipo de articulacin (rotoide o prismtica) expresada en el espacio articular.
En otras palabras, conocidas las posiciones articulares
de cada articulacin de un robot, este modelo permite conocer la posicin cartesiana y la orientacin del rgano
terminal. Esto permite al programador saber con exactitud
dnde se encuentra el rgano terminal del robot en cada
momento, sin hacer uso de un sistema de visin.
Para hallar el modelo geomtrico directo (0Tn) es necesario aplicar la matriz j-1Tj vista en la ecuacin (7) a cada una
de las articulaciones del robot, utilizando para ello la tabla
de parmetros geomtricos.
Ejemplo 2.3: Modelo geomtrico directo del robot tipo PUMA
del Ejemplo 2.1. El modelo geomtrico directo de este robot
de seis grados de libertad estar representado por la matriz
42

0T 6.

A su vez esta matriz es igual a la multiplicacin sucesiva de 0T6 = 0T11T22T33T44T55T6. Esto significa que deben
hallarse cada una de las seis matrices que representan la
transformacin entre cada sistema de coordenadas de este
robot.

Para la primera articulacin del robot PUMA los valores


geomtricos son:
j
1

dj
0

j
1

Reemplazando estos valores en la matriz


se tiene:

j-1T ,
j

rj
0
con j = 1,

-S j
0
dj
C j
C S C C -S -r S
j
j
j
j
j
j-1
Tj = j j
S j S j S j C j C j r j C j

0
0
1
0
-sen1
0
d1
cos1
cos sen cos cos -sen -r sen
1
1
1
1
1
1
1
=
sen1sen1 sen1cos1 cos1 r1cos1

0
0
0
1

Se reemplaza entonces 1 = 0, d1 = 0, r1 = 0 en la ecuacin anterior. De la misma manera, y utilizando los dems


datos de la tabla de parmetros geomtricos, se hallan las
dems matrices de transformacin, las cuales se detallan a
continuacin:

43

C1 -S1 0 0
C 2 -S 2 0 0
S1 C1 0 0

0 -1 0
0
; 1T = 0
T1 =
;
2
0
S 2 C 2 0 0
0 1 0

0 0 1
0
0 1
0
0
C 3 -S 3 0 D 3
C 4 -S 4 0 0
S 3 C 3 0 0

0 1 R 4
2
; 3T = 0
T3 =
;
4
0
-S 4 -C 4 0 0
0 1 0

0 0 1
0 0 1
0
0
C 6 -S 6 0 0
C 5 -S 5 0 0
0
0

0 1 0
0 -1 0 5
4
T5 =
; T6 =
-S 6 -C 6 0 0
S 5 C 5 0 0

0 0 1
0
0 1
0
0

Nota: Inmediatamente se observe en las ecuaciones resultantes un esquema que pueda conducir a una reduccin
de sumas de senos y cosenos, deben aplicarse las frmulas
siguientes con el fin de aligerar los clculos:

sen(a + b )=sen(a )cos(b )+sen(b )cos(a )


cos(a + b )=cos(a )cos(b )-sen(a )sen(b )

(9)

Esto significa que una cadena cinemtica tiene dos o


ms ejes paralelos consecutivos. Por ejemplo para el PUMA,
las articulaciones 2 y 3 son paralelas. La matriz resultante
de multiplicar sus respectivas matrices de transformacin
es:
C 2C 3 - S 2S 3 -C 2S 3 - S 2C 3 0 D 3C 2

0
0
-1
0
1
T3 =
S 2C 3 + C 2S 3 -S 2S 3 + C 2C 3 0 D 3S 2

0
0
0
1

44

Aplicando las relaciones mostradas en (9) la matriz 1T3


se simplifica a:
C 23 -S 23 0 C 2D 3
0
0
-1
0
1
T3 =
S 23 C 23 0 S 2D 3

0
0
1
0

Se calcula ahora el modelo geomtrico directo para el robot


PUMA, partiendo de la ltima articulacin:
U 5 = 5T6

C 5C 6 -C 5S 6 -S 5
S6
C6
0
U 4 = 4T6 = 4T5 5T6 =
S 5C 6 -S 5S 6 C 5

0
0
0

0
0
0

U 3 = 3T6 = 3T4U 4 =
C 4C 5C 6 - S 4S 6 -C 4C 5S 6 - S 4C 6 -C 4S 5 0

S 5C 6
C5
R 4
-S 5S 6

-S 4C 5C 6 - C 4S 6 S 4C 5S 6 - C 4C 6 S 4S 5
0

0
0
0
1

U 2 = 2T6 =2T3U 3

Los vectores de la matriz U2 son:

45

sx =C 3 (C 4C 5C 6 - S 4S 6 ) - S 3S 5C 6
sy =S 3 (C 4C 5C 6 - S 4S 6 ) + C 3S 5C 6
sz =- S 4C 5C 6 - C 4S 6

n x =- C 3 (C 4C 5S 6 + S 4C 6 ) + S 3S 5S 6
n y =- S 3 (C 4C 5S 6 + S 4C 6 ) - C 3S 5S 6
n z =S 4C 5S 6- C 4C 6
a x =- C 3C 4S 5 - S 3C 5
ay =- S 3C 4S 5 + C 3C 5
a z =S 4S 5
Px =- S 3R 4 + D 3
Py =C 3R 4
Pz =0
U 1 = 1T6 = 1T2U 2 = 1T3U 3

Los vectores de la matriz U1 son:


sx =C 23 (C 4C 5C 6 - S 4S 6 ) - S 23S 5C 6
sy =S 4C 5C 6 + C 4S 6
sz =S 23 (C 4C 5C 6 - S 4S 6 ) + C 23S 5C 6
n x =- C 23 (C 4C 5S 6 + S 4C 6 ) + S 23S 5S 6
n y =- S 4C 5S 6 + C 4C 6
n z =- S 23 (C 4C 5S 6 + S 4C 6 ) - C 23S 5S 6
a x =- C 23C 4S 5 - S 23C 5
ay =- S 4S 5
a z =- S 23C 4S 5 + C 23C 5
Px =- S 23R 4 + C 2D 3
Py =0
Pz =C 23R 4 + S 2D 3

46

Finalmente los vectores de la matriz U0 son:


sx =C1(C23(C4C5C6-S4S6) -S23S5C6) -S1(S4C5C6 + C4S6)
sy =S1(C23(C4C5C6-S4S6) -S23S5C6) +C1(S4C5C6+C4S6)
sz =S23(C4C5C6-S4S6) +C23S5C6

nx =C1( -C23(C4C5S6+S4C6) +S23S5S6) +S1(S4C5S6-C4C6)


ny =S1( -C23(C4C5S6+S4C6) +S23S5S6) -C1(S4C5S6-C4C6)
nz =-S23(C4C5S6+S4C6) -C23S5S6
ax =-C1(C23C4S5+S23C5) +S1S4S5
ay =-S1(C23C4S5+S23C5) -C1S4S5
az =-S23C4S5+C23C5
Px =-C1(S23R4-C2D3)
Py =-S1(S23R4-C2D3)
Pz =C23R4+S2D3

Para hallar la matriz 0T6 de este ejemplo se puede proceder de dos formas, igualmente equivalentes. O bien se
multiplican de izquierda a derecha cada una de las matrices, o bien se lo hace de derecha a izquierda:
f)

De izquierda a derecha: Se multiplica primero la


matriz 0T1 por 1T2 para obtener la matriz 0T2. Luego
se multiplica sta por 2T3 para obtener la matriz
0T , y as sucesivamente.
3
g) De derecha a izquierda: Se multiplica primero la
matriz 4T5 por 5T6 para obtener la matriz 4T6. Luego
se multiplica sta por 3T4 para obtener la matriz
3T , y as sucesivamente.
6

Los dos mtodos generan la misma matriz 0T6, pero se


debe utilizar el segundo mtodo (de derecha a izquierda),
ya que los resultados parciales de este procedimiento son
utilizados en el clculo del modelo geomtrico inverso, el
cual se ver en la seccin siguiente.

47
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

Ejercicio 2.2:
Hallar el modelo geomtrico directo de los robots del
Ejercicio 2.1.
2.4 Modelo geomtrico inverso
Este modelo provee todas las soluciones posibles del
clculo de las coordenadas articulares, correspondientes a
una situacin cartesiana determinada. Es decir, para una
posicin y orientacin deseadas del rgano terminal, el
modelo geomtrico inverso entrega todas las posibles soluciones de las posiciones articulares con el fin de alcanzar
esa situacin deseada. La dificultad de este modelo estriba
en el hecho de que para una posicin cartesiana deseada,
pueden existir mltiples soluciones para las posiciones
articulares. Esto puede observarse en la Figura 2.4, donde
la posicin deseada marcada con una cruz puede alcanzarse a travs de diferentes movimientos de las articulaciones
involucradas.
Para hallar el modelo geomtrico inverso existen varios
mtodos (Buchberger, 1987; Raghavan and Roth, 1990;
Manocha and Canny, 1992), el ms general y conveniente a
la mayora de robots industriales es el mtodo de Paul
(1981).
2.4.1 Mtodo de Paul
Dado un robot serial con la matriz de transformacin:
0

Tn = 0T1 1T2 n -1Tn

(10)

Y sea U0 la situacin deseada, es decir la posicin y


orientacin que se desea tenga el rgano terminal. Esta
matriz es por lo tanto perfectamente conocida:

48

Figura 2.4. Figura 8. Diferentes movimientos realizados para


alcanzar una posicin deseada.

s x
s
U0 = y
sz

nx
ny
nz
0

ax
ay
az
0

Px
Py
Pz

(11)

Se busca entonces hallar las posiciones de las articulaciones del robot con el fin de que el rgano terminal se site en U0.
Por ejemplo para un robot de 6 grados de libertad se
procede como sigue:
1) Se multiplica a la izquierda de cada parte de la ecuacin
(10) por 1T0. Con esto se logra eliminar la matriz 0T1 en la
parte derecha de la ecuacin, quedando as:
1

T0U 0 = 1T2 2T3 3T4 4T5 5T6


49

(12)

De esta forma el trmino de la izquierda estar en funcin de los elementos de U0 y de la variable q1. Se despeja
entonces esta variable igualando los trminos a la derecha
y a la izquierda.
2) Una vez despejada la variable q1 se multiplica a la izquierda de cada ecuacin por 2T1, obtenindose por despeje la variable q2. Se contina sucesivamente con las
multiplicaciones a la izquierda de cada ecuacin hasta
que todas las variables hayan sido despejadas.

3) La sucesin completa del clculo para un robot de seis


grados de libertad ser:
U 0 = 0T1 1T2 2T3 3T4 4T5 5T6
1

T0U 0 = 1T2 2T3 3T4 4T5 5T6

T1U 1 = 2T3 3T4 4T5 5T6

T2U 2 = 3T4 4T5 5T6

(13)

T3U 3 = 4T5 5T6

T4U 4 = 5T6

La metodologa aconseja que cada vez se comparen solamente los vectores de posicin de cada lado de la igualdad, tratando de despejar la variable buscada. Sino es posible despejar, realizar una nueva multiplicacin a la
izquierda, y as sucesivamente. En caso de quedar variables por encontrar, volver a la primera multiplicacin pero
esta vez comparar los trminos de la matriz de orientacin.
En cada caso lo que se pretende es, o bien despejar completamente la variable, o bien obtener una ecuacin a partir de la cual sea posible el despeje utilizando algn tipo de
software especializado como Matlab, o ms fcilmente
Maple.
En los casos particulares donde el robot posee una mueca tipo rtula (tres articulaciones rotoides con ejes concurrentes), puede utilizarse una estrategia particular para
hallar los ngulos de esta mueca, lo cual simplifica los

50

clculos. Es decir, ngulos del portador se hallan utilizando el mtodo de Paul, pero los ngulos de la mueca utilizan una variacin de este mtodo, teniendo en cuenta solo
la matriz de orientacin.
Las particularidades de este caso, para un robot de seis
grados de libertad, se muestran a continuacin as como
en el ejemplo siguiente.
2.4.1.1 Caso especial de una mueca tipo rtula
Suponiendo un robot de seis grados de libertad con una
mueca tipo rtula, los siguientes valores geomtricos se
dan:
d5 = r5 = d6 = 0
4 = 5 = 6 = 0
S5 0; S6 0
La posicin del centro de la rtula es entonces nicamente funcin de las variables q1, q2 y q3. Esto significa
que si el centro de la rtula permanece en un punto fijo,
las articulaciones 4, 5 y 6 pueden moverse en cualquier
direccin pero el centro de la rtula no se mover. Luego la
posicin del rgano terminal estar dada por la posicin
del centro de la rtula, esto es: 0P6 = 0P4.
La orientacin del rgano terminal se definir entonces
como:
(14)
[s n a ] = 0 A6 ( q )
Si se multiplica al lado izquierdo de cada trmino por la
matriz 3A0 se obtiene:
3

A0 (q1 ,q 2 ,q 3 ) [s n a ] = 3 A6 (4 ,5 ,6 )

[F

H ] = 3 A6 (4 ,5 ,6 )

Es decir:
51

(15)

A0 (q1 ,q 2 ,q 3 ) [s n a ] = [F

H]

(16)

La anterior frmula introduce los vectores F, G y H, necesarios para simplificar los clculos como se ver en el
ejemplo siguiente.
Ejemplo 2.4: Modelo geomtrico inverso del robot tipo PUMA del Ejemplo 2 1.
Para hallar los valores de las variables articulares se utilizar el mtodo de Paul para las tres primeras (1, 2, 3), y
el caso particular de la mueca tipo rtula para las tres
ltimas (4, 5, 6).
a) Clculo de 1, 2, 3:
De acuerdo a la metodologa de Paul se multiplica a la
izquierda de la ecuacin del modelo geomtrico directo por
1T , como se indic en (12):
0
1

T0U 0 = 1T6

La parte izquierda es:


U (1)= C1Px + S1Py
U (2)=- S1Px + C1Py
U (3)= Pz

La parte derecha est dada por la cuarta columna de


(Ejemplo 2.3):

1T
6

T (1)=- S 23R 4 + C 2D 3
T (2)= 0
T (3)= C 23R 4 + S 2D 3

Igualando U(2) con T(2) se encuentran las dos soluciones siguientes para 1 :

52

1 = atan(Py , Px )
1 '= 1 +180
La solucin 1' muestra que una rotacin de 180 para
este ngulo tambin puede ser solucin del problema (ver
Figura 2.1), permitiendo igualmente alcanzar la posicin
U0 deseada. Esto sucede solo en ciertos ngulos, requirindose un anlisis cuidadoso para determinar si dicho
movimiento adicional tambin lleva a U0.
Nota: Deben hallarse siempre las soluciones de los
ngulos en trminos de arco tangente, ya que de esta manera se obtiene una solucin global en los cuatro cuadrantes. Esto significa que soluciones de solamente arco seno o
arco coseno no deben ser consideradas ya que proveen solo
soluciones parciales al problema.

Multiplicando ahora por 2T1 se obtiene:


2

T1U 1 = 2T6

La parte izquierda de esta ecuacin es:


U (1)= C 2(C 1Px + S 1Py )+ S 2Pz
U (2)=- S 2(C 1Px + S 1Py )+ C 2Pz
U (3)= S 1Px - C 1Py

Los elementos de la derecha representan la cuarta columna de 2T6 :


T (1)=- S 3R 4 + D 3
T (2) = C 3R 4
T (3)= 0

Se pueden calcular 2 y 3 considerando las dos primeras ecuaciones. Para esto se elevan al cuadrado y se su-

53

man con el fin de eliminar el ngulo 3 y tener una ecuacin solo en funcin de 2. El procedimiento es el siguiente:
Se define B1 como una constante, ya que 1 fue hallado
en el punto anterior:
B 1 = C 1Px + S 1Py

Reescribiendo las dos ecuaciones (U(1)=T(1) y U(2)=T(2)):


C 2B 1 + S 2Pz - D 3 =- S 3R 4
-S 2B 1 + C 2Pz = C 3R 4

(17)

Se eleva al cuadrado cada ecuacin (hay dos binomios


en la primera ecuacin) y se suman, con lo cual se cancela
3. La ecuacin resultante es:

XS 2 + YC 2 = Z
Con:
X =- 2Pz D 3
Y =- 2B 1D 3
Z =(R 4 )2 -(D 3)2 -(PZ )2 -(B 1)2

Por medio de Maple se deduce entonces:


C2 =
S2 =

YZ - X X 2 +Y 2 - Z 2
X 2 +Y 2

YZ + X X 2 +Y 2 - Z 2
X 2 +Y 2

; = 1

Se obtienen dos soluciones (dependiendo del valor de ) de


la forma:

2 =atan(S 2,C 2)

54

A partir de (17) se obtiene 3 , despejando S3 y C3:


-Pz S 2 - B 1C 2 + D 3
R4
-B 1S 2 + Pz C 2
C3=
R4
S3=

Luego el tercer ngulo es:

3 =atan(S 3,C 3)
b) Clculo de 4, 5, 6 :
Se puede continuar con la metodologa de Paul (multiplicaciones sucesivas a la izquierda de cada trmino), o
aprovechar las caractersticas especiales de la mueca tipo
rtula, vistas anteriormente. En este ltimo caso solo interesan solo las ecuaciones de orientacin. Se debe hallar
entonces la ecuacin (16):
3

A0 [s n a ] = [F

H]

La matriz 3A0 se obtiene a partir de la transpuesta de la


matriz de orientacin 0A3, que a su vez sale de la matriz
0T . Esto es:
3

Luego se tiene:

55

El resultado es una matriz 3x3, donde la primera columna es igual a:


Fx = C 23(C1sx + S1sy )+ S 23sz
Fy =- S 23(C1sx + S1sy )+ C 23sz
Fz = S1sx - C1sy

Las expresiones para las columnas dos y tres son las siguientes:
G x = C 23(C1n x + S1n y )+ S 23n z
G y =- S 23(C1n x + S1n y )+ C 23n z
G z = S1n x - C1n y
H x = C 23(C1a x + S1ay )+ S 23a z
H y =- S 23(C1a x + S1a y )+ C 23a z
H z = S1a x - C1ay

Ntese que se trata de la misma expresin, solamente


cambia el nombre del vector y los elementos de orientacin.
Una vez hallados los vectores F, G y H, stos se igualan a
la matriz 3A6 segn la ecuacin (15):

[F

C 6C 5C 4-S 6S 4 -S 6C 5C 4-C 6S 4 -S 5C 4
C 6S 5
-S 6S 5
C 5
H ] =
-C 6C 5S 4-S 6C 4 S 6C 5S 4-C 6C 4 S 5S 4

Comparando ambos lados de la igualdad se observa que


no se obtienen ecuaciones fciles de resolver. Por tal motivo se multiplica a la izquierda de [F G H ]= 3 A6 por 4A3
para tratar de simplificar la matriz resultante (obsrvese
que se multiplica por 4A3 y no por 5A3, ya que sino se ob-

56

tendra una matriz ms compleja de resolver). El resultado


es:

A partir de los elementos (2, 3) se obtiene la siguiente


ecuacin para 4 :

-S 4H x - C 4H z = 0
La cual proporciona dos soluciones:
4 = atan(H z ,- H x )
4 '= 4 +180
A partir de los elementos (1, 3) y (3, 3) se obtiene la solucin para 5 :

-S 5 = C 4H x - S 4H z
C5 = Hy
Obtenindose por solucin:

5 =atan(S 5,C 5)
Finalmente considerando los elementos (2, 1) y (2, 2) se
obtiene la solucin para 6:
57
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

S 6 =- C 4Fz - S 4Fx
C 6 =- C 4G z - S 4G x
Sistema que tiene por solucin:
6 = atan(S 6,C 6)
6 '= 6 +180
Ejercicio 2.3:
Hallar el modelo geomtrico inverso de los robots del
Ejercicio 2.1.

58

3. M ODELO CINEMTICO
3.1 Conceptos generales
El modelo cinemtico describe las velocidades de las articulaciones del robot en el espacio operacional (cartesiano)
en funcin de las velocidades de estas articulaciones expresadas en el espacio articular. El modelo cinemtico directo tiene por expresin:
(18)
Donde J(q) es la llamada matriz Jacobiana, definida como la derivada parcial entre las posiciones cartesianas y
articulares (X/q). La matriz Jacobiana tiene un inters
particular en el diseo mecnico, en el anlisis de singularidades, y en el diseo de controladores en el espacio operacional.
De otra parte el modelo cinemtico inverso se expresa como:
(19)
La matriz Jacobiana tiene una dimensin de (6 x n),
donde n representa el nmero de grados de libertad del
robot. La expresin completa del modelo cinemtico directo
ser:

59

(20)
Obsrvese que el vector X& se descompone en las velocidades lineales x& , y& , z& , y en las velocidades rotacionales
x , y , z . Dado que la Jacobiana tiene una dimensin de
(6 x n), ella ser cuadrada solamente para robots de seis
grados de libertad, indicndose con esto que dicho robot
puede posicionarse perfectamente en un espacio de tres
dimensiones, y puede realizar tres rotaciones en su rgano
terminal (alabeo, cabeceo y guiada).
En robots de menos de seis grados de libertad la matriz
Jacobiana no ser cuadrada, reflejando el hecho de que
algn grado de libertad se pierde, o que alguna rotacin no
es posible realizar. Como para los anlisis siguientes es
necesario el carcter invertible de la Jacobiana, las filas o
columnas que representan movimientos nulos pueden suprimirse para as lograr una matriz cuadrada e invertible.
3.2 Clculo de la matriz Jacobiana
Para hallar la matriz Jacobiana de un robot serie se utiliza la frmula de la Jacobiana de base (Khalil and Dombre,
2002), la cual define la ksima columna de nJn como:
n

n a + k ( - k Pny n sk + k Pnx n nk )
j n:k = k k

k n ak

(21)

Los elementos de la columna njn:k se calculan a partir de


los elementos de la matriz kTn, resultados obtenidos dentro
del clculo del modelo geomtrico directo. En la ecuacin
(21) pueden distinguirse los vectores s, n, a pertenecientes
60

a la matriz de orientacin kAn, as como los valores del vector de posicin en x e y (kPnx y kPny respectivamente).
Es de notar que el clculo de la matriz nJn sirve para
hallar la relacin entre las velocidades cartesianas y articulares de las articulaciones situadas entre las articulaciones
k y n, lo cual puede ser til desde el punto de vista del diseo mecnico del robot. Ms interesante y visto desde el
sistema de control, es hallar la matriz 0Jn, es decir la relacin de velocidades cartesianas y articulares desde la base
hasta el rgano terminal. La ksima columna de 0Jn se escribe:
0

0a + k ( -k Pny 0sk + k Pnx 0nk )


j n:k = k k

k 0ak

(22)

En este caso los elementos de la columna k se obtienen


a partir de los de la matriz de orientacin 0Ak y del vector
de posicin 0Pn.

Ejemplo 3.1: Clculo de la matriz Jacobiana 0J4 de un robot SCARA.


La tabla de parmetros geomtricos del robot SCARA del
Ejercicio 2.1, es:
j
1
2
3
4

0
0
0
1

0
0
0
0

dj
0
D2
D3
0

j
1
2
3
0

Las respectivas matrices de transformacin son:

61

rj
0
0
0
r4

C1 -S1 0 0
C 2 -S 2
S1 C1 0 0

0
; 1T = S 2 C 2
T1 =
2
0
0
0 1 0
0

0 0 1
0
0
0
C 3 -S 3
S 3 C 3
2
T3 =
0
0

0
0

0 D 3
1

0
0 0 3
; T4 =
0
1 0

0 1
0

0
1
0
0

0 D 2
0 0
1 0

0 1
0 0
0 0
1 r4

0 1

Aplicando la frmula (22), las expresiones para cada


una da las columnas de la matriz Jacobiana de base para
el robot SCARA son:

Columna 1:

Columna 2:

Columna 3:

Columna 4:

-1 P 0s + 1P4 x 0n1
j 4:1 = 4y 10

a1

-2 P 0s + 2P4 x 0n 2
j 4:2 = 4y 20

a2

-3 P 0s + 3P4 x 0n 3
j 4:3 = 4y 30

a3

0a
j 4:4 = 34
0

El primer vector de la primera columna es (se debe


hallar previamente el vector 1P4):

- P4y s1 + P4 x

C1
-S1

n1 =-(D 3S 2) S1 +(D 3C 2+ D 2) C1
0
0

-D 3S12- D 2S1
= D 3C12+ D 2C1

62

El segundo vector de la primera columna es:

0
a1 = 0
1

El primer vector de la segunda columna es (se deben


hallar previamente las matrices 0A2 y el vector 2P4):

- P4y s 2 + P4 x

C12
-S12 -D 3S12

n 2 =-(0) S12 +(D 3) C12 = D 3C12


0
0 0

El segundo vector de la segunda columna es:

0
a 2 = 0
1

El primer vector de la tercera columna es (se debe hallar


previamente la matriz 0A3):
C 3C12- S 3S12
-S 3C12- C 3S12
-3 P4y 0s 3 + 3P4 x 0n 3 =- (0) C 3S12+ S 3C12 + (0) -S 3S12+ C 3C12

0
0
0
= 0
0

El segundo vector de la tercera columna es:

0
a 3 = 0
1

63

El primer vector de la cuarta columna es:

0
a 4 = 0
1

Y el segundo vector de la cuarta columna es:


0
0 = 0
0
3

Luego, la matriz completa 0J4 del robot SCARA es:

Como toda Jacobiana, la matriz anterior tiene una dimensin (6 x 4). Para hacerla cuadrada pueden quitarse
las filas que contienen trminos nulos (filas 4 y 5), lo que
significa que el rgano terminal no puede realizar rotaciones en los ejes x e y. El modelo cinemtico directo se expresa entonces por:

Y el modelo cinemtico inverso:


64

Nota: Tener en cuenta los siguientes vectores particulares, los cuales pueden ser necesarios en el clculo de determinadas matrices Jacobianas:

1
0
0
0

n
n
n
sn = 0 ; nn = 1 ; a n = 0 ; Pn = 0
0
0
1
0

(23)

Ejemplo 3.2: Clculo de las velocidades cartesianas puntuales para un robot SCARA con valores geomtricos D2 =
0.5 y D3 = 0.4.
Si el robot SCARA del ejemplo anterior se encuentra en
un momento dado en las posiciones articulares q1 = /2
rads; q2 = /4 rads; q3 = /5 rads y q4 = 0.15 m; y sus velocidades articulares de valor instantneo son q&1 =/3
rad/seg; q& 2 = /6 rad/seg; q& 3 =/4 rad/seg y q& 4 = 0.3
m/seg. A partir de la ecuacin del modelo cinemtico directo del ejemplo anterior se puede calcular el valor instantneo de sus velocidades cartesianas, as:

x& = ( -0.4 * sin(/2+ /4) - 0.2 * sin(/2) * (/3)

+ (- 0.4 * sin(/2+ /4) * (/6) =- 0.6537 m/seg


&
y = ( 0.4 * cos(/2+ /4) + 0.2 * cos(/2) * (/3)
+ (0.4 * cos(/2+ /4) * (/6) =- 0.4443 m/seg
z& =0.3 m/seg
65

Obsrvese que la velocidad articular de la tercera articulacin no influye en ninguna de las velocidades cartesianas
ya que representa simplemente la rotacin de la tercera
articulacin, sin proporcionar movimiento en x, y o z. No
obstante dicha velocidad est relacionada con la velocidad
rotacional z .

Ejercicio 3.1:
Hallar la matriz Jacobiana 0Jn de los robots del Ejercicio
2.1.

3.3 Configuraciones singulares


Como se vio en la seccin 1.3, las configuraciones singulares ocurren cuando se pierde un grado de libertad en
el robot. En este caso son fciles de detectar. Sin embargo
pueden existir determinados movimientos de un robot que
hacen que ste pase por una configuracin singular, ocasionando el dao del mismo. Estas configuraciones pueden
ser clasificadas como:
-Singularidades en los lmites del espacio de trabajo: Se presentan cuando el rgano terminal del robot se encuentra en
algn punto cercano al lmite del espacio de trabajo. En esta
situacin es claro que el robot no podr desplazarse en las
direcciones que lo alejan de este espacio de trabajo.
-Singularidades en el interior del espacio de trabajo: Ocurren al interior del espacio de trabajo del robot y se producen generalmente por el alineamiento de dos o ms ejes de
las articulaciones del robot.
Cuando el robot pasa por una configuracin singular el
determinante de su matriz Jacobiana se anula. Por lo tanto
en estas configuraciones no existe Jacobiana inversa. Al
anularse el Jacobiano, un incremento infinitesimal en las
coordenadas cartesianas supone un incremento infinito en
las coordenadas articulares, lo cual conllevar a un dao
grave en el robot.

66

Se debe prestar especial atencin a la localizacin de las


configuraciones singulares del robot para que sean tenidas
en cuenta al momento de disear el controlador, evitndose solicitar a los actuadores movimientos a velocidades
inabordables o cambios bruscos en estas velocidades.
Para determinar cundo puede suceder esto se hace necesario un anlisis ms detallado de la matriz Jacobiana
del robot, como lo muestra el siguiente ejemplo.

Ejemplo 3.3: Determinar si existen configuraciones singulares para un robot SCARA.


Para el robot SCARA del Ejemplo 3.1, la matriz Jacobiana
superior es (quitando la columna nula):

El Jacobiano se expresa entonces de la siguiente manera:

Este Jacobiano ser nulo siempre que q2 = 0 q2 =, lo


cual ocurrir en el lmite exterior o interior del espacio de
trabajo.
Estas posiciones deben entonces ser tenidas en cuenta
en el control, evitndose solicitar a los actuadores movimientos a velocidades inabordables o cambios bruscos de
las mismas. La siguiente figura muestra esta situacin
particular en el seguimiento de una consigna lineal para
un robot SCARA.
Puede observarse en la figura que a medida que el ngulo 2 disminuye el robot se acerca a una posicin a partir
de la cual es imposible seguir el movimiento programado.
67
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

Entonces ocurre un cambio brusco de los ngulos 1 y 2


con el fin de ubicar el brazo hacia el otro lado y as continuar con la trayectoria. Pero este cambio abrupto en la
posicin significa alcanzar velocidades extremadamente
altas en las articulaciones del robot.
2

Figura 3.1. Paso por una singularidad de un robot SCARA.

Para evitar esta configuracin singular o bien se define la


trayectoria a realizar desplazada hacia alguno de los lados
con el fin de dar espacio suficiente al robot para realizarla,
o bien se realiza la mitad de la trayectoria, se detiene el
robot y se lo ubica manualmente del lado contrario antes
de continuar con la ejecucin de la tarea.

68

4. M ODELO DINMICO
4.1 Conceptos generales
El modelo dinmico contiene toda la informacin (geometra y dinmica) del robot (Khalil and Dombre, 2002;
Siciliano and Khatib, 2008). Matemticamente se define
como la relacin entre las fuerzas aplicadas a los actuadores () y las posiciones, velocidades y aceleraciones articulares. Se expresa as:

= f (q , q& , q&&, f e )

(24)

En este caso fe representa el esfuerzo exterior que ejerce


el robot sobre el ambiente, en caso de existir. Esta ecuacin representa en particular al modelo dinmico inverso
(MDI).
Por su parte el modelo dinmico directo (MDD) expresa
las aceleraciones articulares en funcin de las posiciones,
velocidades y fuerzas en las articulaciones, as:

q&&= f (q , q& , , f e )

(25)

El modelo dinmico es utilizado para:


-

la simulacin en computador utilizando un programa como Matlab (el MDD equivale a la funcin de
transferencia en un sistema de control y permite
simular cualquier tipo de robot).
el dimensionamiento de los actuadores (ya que en
simulacin se pueden obtener los pares o fuerzas
69

que van a los motores y de esta manera conocer el


tipo de motor necesario).
la identificacin de los parmetros inerciales y de
frotamiento del robot (necesarios cuando el sistema
de control implementado est basado en el modelo
matemtico del robot).
el control (que cuando est basado en el modelo
matemtico del robot utiliza el modelo dinmico inverso).

Las siguientes notaciones van a ser utilizadas en este


captulo, segn Khalil y Dombre (2002), referenciadas a un
cuerpo Cj cuyo centro est situado en la posicin Oj y su
sistema de referencia es Rj :

Tabla 4.1. Notaciones utilizadas para el modelo dinmico.


aj

vector unitario segn el eje zj. Su valor es

igual a: j a j = [0 0 1]

jJj

MSj

Iaj
Mj
Gj
Vj
j
Fsj
Fvj
G

tensor de inercia del cuerpo Cj con relacin a


la base Rj
primer momento de inercia del cuerpo Cj alrededor del origen de la base Rj
momento de inercia del accionador j y de su
reductor, sentido por la articulacin
masa del cuerpo Cj
centro de gravedad del cuerpo Cj
velocidad del punto Oj
velocidad de rotacin del cuerpo Cj
frotamientos secos de la articulacin j
frotamientos viscosos de la articulacin j
aceleracin de la gravedad (9.81 m/s2)

4.2 Momentos de inercia


La inercia es la propiedad de la materia de resistir a
cualquier cambio en su movimiento, ya sea en direccin o
velocidad. Existen dos momentos de inercia: el primer momento de inercia, tambin llamado momento de rea o de

70

primer orden, y el segundo momento de inercia o de rea,


el cual da lugar a la matriz de inercia.
Si se tiene un disco de radio r que gira sobre su eje, el
primer momento de inercia se obtiene multiplicando el radio por la masa del disco; el segundo momento de inercia
se obtiene multiplicando el radio al cuadrado por la masa
del disco. Cuando el objeto que gira no es un disco sino un
cuerpo ms complejo, el radio se cambia por la distancia
del centro de masa en tres dimensiones hasta el eje de giro.
El primero momento de inercia para su aplicacin en
robtica se define como:
j

MS j = xdm

= MX j

ydm zdm
MZ j

MY j

(26)

El segundo momento de inercia hace referencia a la resistencia en los tres ejes que opone un cuerpo sometido a
una rotacin. Por su parte el tensor de inercia es un tensor
simtrico de segundo orden que caracteriza la inercia rotacional de un slido rgido. Expresado en una base ortonormal viene dado por una matriz simtrica, dicho tensor
se forma a partir de los momentos de inercia segn tres
ejes perpendiculares y tres productos de inercia. Su frmula se muestra a continuacin:
(y 2 + z 2 )dm

j
J j = - xy dm

- xz dm

XX j

= XY j
XZ j

XY j
YY j
YZ j

- xy dm

(x + z )dm
- yz dm
2

- yz dm

2
2

(
x
+
y
)
dm

- xz dm

(27)

XZ j

YZ j
ZZ j

La matriz del tensor de inercia jJj es simtrica, lo cual


significa que la diagonal superior y la diagonal inferior son

71

iguales. Por lo tanto se tienen solamente seis trminos diferentes en vez de nueve.
Ejemplo 4.1: Determinar el tensor de inercia y el primer
momento de inercia del siguiente robot de dos grados de
libertad.
Dado del robot de dos grados de libertad que se muestra
en la Figura 4.1 se desea calcular numricamente los valores del tensor de inercia jJj y del primer momento de inercia jMSj para cada una de las articulaciones. Las masas de
cada cuerpo son iguales a M1 = 5 Kg y M2 = 2 Kg. El punto
al interior de cada cuerpo revela la posicin del centro de
masa.
Se supone que la posicin del centro de masa del primer
cuerpo est desplazada Z1cm metros del origen del sistema
de coordenadas, con Z1cm = 0.15 m. Este centro de masa
no tiene ningn desplazamiento en x ni en y respecto a ese
mismo origen de coordenadas. Adems la rotacin se verifica respecto al eje z, que se llamar z1g (z de giro).
De otra parte se supone que el centro de masa del segundo cuerpo tiene desplazamientos en x y en y, respecto
al sistema origen de coordenadas, que es el mismo del primer cuerpo, teniendo en cuenta que la z2g de este segundo
cuerpo est en la misma direccin que x1 y x2. Estos desplazamientos son: X2cm = 0.1 m y Y2cm = 0.03 m.
z0, z1

z1g
X2cm
z2

Y2cm

z2
M2

Z1cm

z2g
x0, x1, x2

M1

Figura 4.1. Clculo de los momentos de inercia en un


manipulador de dos grados de libertad.

72

Resumiendo, los valores de las distancias de los centros


de masa al origen del sistema de coordenadas son:
X1cm = 0
Y1cm = 0
Z1cm = 0.15
X2cm = 0.1
Y2cm = 0.03
Z2cm = 0
Para hallar el primer momento de inercia (ecuacin (26)),
se multiplican las masas por las distancias desde el centro
de masa al origen de coordenadas, resultando:
MS1 = [M 1 X 1cm

M 1Y1cm

= [0 0 0.75 ]
2

MS2 = [M 2 X 2cm

M 1Z1cm ]

M 2Y2cm

= [0.2 0.06 0 ]

M 2 Z 2cm ]

Finalmente para hallar el tensor de inercia, se multiplica


la distancia del centro de masa al origen de coordenadas al
cuadrado por la masa del cuerpo, como lo indica la ecuacin (27):
(Y1cm 2 + Z 1cm 2 )dm
- X 1cmY1cm dm

1
2
2
J 1 = - X 1cmY1cm dm
(X 1cm + Z 1cm )dm

- X Z dm
-Y1cm Z 1cm dm
1cm 1cm
0
0
0.1125

= 0
0.1125 0
0
0
0

73

- X 1cm Z 1cm dm

-Y1cm Z 1cm dm

2
2
(X 1cm +Y1cm )dm

(Y2cm 2 + Z 2cm 2 )dm


- X 2cmY2cm dm

2
2
2
J 2 = - X 2cmY2cm dm
(X 2cm + Z 2cm )dm

- X Z dm
-Y2cm Z 2cm dm
2cm 2cm
0
0.0018 -0.006

= -0.006
0.02
0
0
0
0.0218

- X 2cm Z 2cm dm

-Y2cm Z 2cm dm

2
2

(
X
+
Y
)
dm
2
cm
cm
2

Lgicamente este mtodo es muy aproximado. Para


hallar valores ms cercanos a la realidad stos deben calcularse con la ayuda de un software de diseo (por ejemplo
SolidEdge) o mejor an a partir de un procedimiento de
identificacin sobre el robot real, teora que se ver en el
captulo 5.

4.3 Clculo de los parmetros dinmicos


Los parmetros dinmicos que hacen parte de las ecuaciones dinmicas de un robot serial son once:

Seis trminos del tensor de inercia: XXj, XYj, XZj,


YYj, YZj, ZZj.
Tres trminos del primer momento de inercia: MXj,
MYj, MZj.
Un trmino para la masa: Mj.
Un trmino para la inercia del motor: Iaj.

Para expresar el modelo dinmico de un robot existen


dos mtodos: el mtodo de Lagrange y el mtodo de Newton-Euler. El primero es ms fcil de comprender, por lo
cual ser explicado en este libro; el segundo es ms complejo pero ms rpido computacionalmente, utilizado normalmente por los paquetes comerciales, por ejemplo SYMORO (Khalil and Creusot, 1997) que calculan el modelo
dinmico. Pero los dos conducen al mismo resultado matemtico.

74

4.3.1 Mtodo de Lagrange


Este mtodo describe las ecuaciones del movimiento en
trminos del trabajo y de la energa del sistema, lo cual se
traduce, cuando el esfuerzo sobre el rgano terminal es
nulo, por la siguiente ecuacin:
j =

d L
dt q& i qi

(28)

Con:
L : Lagrangiano del sistema igual a: L = E - U.
E : Energa cintica total del sistema.
U : Energa potencial total del sistema.
La energa cintica se expresa como:
1
E = q& T A q&
2

(29)

donde A es la matriz de inercia del robot o matriz de


energa cintica. Sus elementos son funcin de la variable
articular q.
La fuerza o cupla total, que es enviada a los motores,
puede entonces escribirse con la siguiente ecuacin, la
cual representa el modelo dinmico inverso:

= A(q )q&& +C (q,q& )q& +Q (q )

(30)

Donde:
A: Matriz de inercia.
Q: Vector de fuerzas de gravedad.
C (q,q& )q& : vector que representa las fuerzas de Coriolis
(debida a la rotacin de la Tierra) y centrfugas (inercia debido a la aceleracin centrpeta) tal que:

75

& & - E
Cq& = Aq
q

(31)

Varias formas pueden utilizarse para hallar la matriz C,


por ejemplo utilizando el smbolo de Christoffel Ci,jk (Spivak, 1990), el cual calcula estos valores a partir de los elementos de la matriz de inercia A as:
n
1 Aij Aik A jk
+
Cij = Ci, jk q& k =

2 qk q j qi
k=1

(32)

Sin embargo, para bajas velocidades articulares del robot esta matriz C puede despreciarse. En los ejercicios de
este libro no se calcular, no obstante es tenida en cuenta
en los clculos que realiza el software SYMORO (Khalil and
Creusot, 1997), presentes en algunos ejercicios en la parte
prctica al final de este documento.
Por ltimo los elementos del vector Q son calculados a
partir de la energa potencial as:

Qi =

U
q j

(33)

Los elementos A, C y Q son funciones de los parmetros


geomtricos e inerciales del mecanismo, de ah la importancia de obtener los valores numricos ms aproximados
de los once parmetros dinmicos de cada articulacin del
robot.
Para calcular A, C y Q, es necesario inicialmente calcular las energas cintica y potencial de todos los cuerpos
del robot. Una vez calculadas estas energas se procede as
(Khalil and Dombre, 2002):
h) El elemento Aii (diagonal de la matriz de inercia) es
igual al coeficiente de (q& i 2 2 ) de la expresin de la

energa cintica, y el elemento Aij, si i j (diagonal


superior e inferior), es igual al coeficiente de q& i q& j .
76

j)

El clculo de C se hace por medio del smbolo de


Christophell (ecuacin (32)).
k) El clculo de Q se hace con la ecuacin (33)(derivada parcial de la energa potencial total respecto a
cada articulacin).

4.3.1.1 Clculo de la energa cintica


La energa cintica total est dada por la sumatoria de las
energas cinticas de cada cuerpo, es decir:
n

E =E j

(34)

j=1

Ej es la energa cintica del cuerpo Cj, que se expresa


como:
1
E j = j j T j J j j j + M j jV j T jV j +2 j MS j T
2

(V
j

j j )

(35)

Donde las velocidades de rotacin j j y de traslacin


j

V j se calculan con las siguientes ecuaciones:


j

j = j A j-1 j-1 j-1 + j q& j j a j

V j = j A j -1 j -1V j -1 +

j -1

j -1

j -1

P j + j q& j j a j

(36)
(37)

En las ecuaciones anteriores el trmino jAj-1 se refiere a


la matriz de orientacin (3x3) obtenida a partir de la correspondiente matriz de transformacin jTj-1. No confundir
entonces con la matriz de inercia A.

4.3.1.2 Clculo de la energa potencial


La frmula de la energa potencial se define como:

U j = - 0 g T

j MS j
0 0T j

M j

77
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

(38)

Donde el vector gT hace referencia a la gravedad y es


igual a 0 g T = [0 0 G3] , con G3 = 9.81 m/s2. Obsrvese
que la gravedad se expresa como un vector de cuatro elementos, para hacerlo compatible matemticamente con la
matriz 0Tj.
4.3.1.3 Modelado de los frotamientos
Se consideran dos frotamientos presentes en cada articulacin: frotamiento seco y frotamiento viscoso. El frotamiento seco o de Coulomb hace referencia a una fuerza
constante opuesta al movimiento, la cual est presente al
inicio de ste, donde una fuerza superior al frotamiento
seco debe ser aplicada con el fin de mover la articulacin.
El frotamiento viscoso por su parte hace referencia al frotamiento existente en presencia de movimiento, lo cual
significa que debe energizarse constantemente el motor
para que no se detenga debido a la presencia de este frotamiento.
La expresin de estos dos frotamientos es:
(39)
f = Fv q& + Fs sign(q& )
Por lo tanto, considerando los frotamientos, se llega a
una expresin del modelo dinmico inverso ms completa
que es:
= A(q )q&& +C (q,q& )q& +Q (q ) + Fv q& + Fs sign(q& )
(40)
Sin embargo normalmente los frotamientos no son tenidos en cuenta dada la dificultad en identificarlos con cierta
precisin. Se considera entonces que los eslabones son
rgidos y que no presentan torsin ni ningn otro fenmeno
de deformacin. Sin tener en cuenta los frotamientos y sin
considerar fuerzas de Coriolis y centrfugas (es decir suponer que el robot no se mueve a grandes velocidades), se
llega a la expresin ms simple con la cual se puede modelar un robot serie, la cual es:
= A(q )q&& + Q (q )
(41)

78

4.3.1.4 Inercia del accionador


Esta inercia hace referencia a la inercia propia del motor
de cada articulacin. Se expresa como:
I aj = N j J mj

(42)

Con:
Nj : relacin de reduccin del eje j.
Jmj : momento de inercia del rotor del accionador.
El valor de esta inercia es proporcionado por el fabricante de cada motor, sin embargo es un valor que no tiene en
cuenta la carga del motor. Para hallar el valor real, con el
motor posicionado en la articulacin y por lo tanto con
carga, debe realizarse un procedimiento de identificacin,
el cual se ver en el captulo 5.
Nota: La ecuacin (40) representa la dinmica del manipulador robtico. Sin embargo el robot necesita dispositivos que lo muevan, en este caso motores elctricos o hidrulicos. Para una definicin ms completa de la dinmica
del robot sera necesario incluir la dinmica de los motores
en la ecuacin del modelo dinmico inverso. En este libro
no se considera el modelo de los actuadores con el fin de
simplificar los clculos, lo cual no influye significativamente en los resultados obtenidos al controlar un robot serie.
No obstante el lector podr consultar ms detalles sobre la
inclusin del modelo matemtico de los motores en la
ecuacin del modelo dinmico en Lewis, et al. (2004) y
Spong, et al. (2006).
4.4 Determinacin de los parmetros de base
Como se vio anteriormente, existen once parmetros que
definen la dinmica del robot por cada articulacin. Estos
parmetros pueden ser hallados por clculo simple (por
medio de un software CAO (por ejemplo SolidEdge), o por
medio de un mtodo experimental de identificacin paramtrica (Captulo 5). El objetivo de cualquiera de estos
79

mtodos es hallar los valores numricos ms cercanos a los


reales, con el fin de poder realizar la simulacin del sistema robot en un software de simulacin como Matlab/Simulink. Sin estos valores numricos no ser posible ejecutar la simulacin.
Como son once parmetros por cada articulacin, que
deben ser hallados numricamente, la tarea no es fcil. Por
ejemplo para un robot de cuatro grados de libertad deben
encontrarse 44 parmetros numricos. Existe sin embargo
un juego mnimo de parmetros que describe la dinmica
de un robot segn consideraciones mecnicas, lo cual hace
que puedan reducirse sustancialmente la cantidad de
parmetros a encontrar. Este juego mnimo, propuesto por
Khalil y Dombre (2002), se llama parmetros de base.
Antes de iniciar su clculo deben definirse dos trminos,
llamados r1 y r2 as:

r1: se define como la primera articulacin rotoide


partiendo de la base.
r2: hace referencia a la primera articulacin rotoide
despus de r1 y de eje zr2 no paralelo a zr1.

Los parmetros que no afectan al modelo estaran entre


la base y r2. Estos dos trminos pueden verse ms claramente en la siguiente configuracin supuesta de un robot
cualquiera (Figura 4.2): la articulacin cuatro es la primera
articulacin rotoide, por lo tanto ser nombrada r1; la articulacin siete es la primera articulacin rotoide despus de
la cuatro cuyo eje no es paralelo a ella, por lo tanto ser
nombrada r2.
z1

z2

zj

zr1

zr2

Figura 4.2. Determinacin de las articulaciones r1 y r2


(Khalil y Dombre, 2002).

80

El clculo de los parmetros de base se hace entonces a


partir de seis frmulas que deben revisarse y aplicarse una
por una. De la misma manera existen tres frmulas particulares para reagrupar los parmetros inerciales de los
motores. A continuacin se vern las frmulas respectivas.
4.4.1 Clculo de los parmetros de base
Clculo de los diez primeros parmetros:
1)

Se utilizan las frmulas:


a) Cuando la articulacin j es rotoide, los parmetros YYj, MZj y Mj pueden ser reagrupados
segn las siguientes frmulas:
XXRj = XXj YYj
XXRj-1 = XXj-1 + YYj + 2rjMZj + rj2Mj
XYRj-1 = XYj-1 + djSjMZj + djrjSjMj
XZRj-1 = XZj-1 djCjMZj + djrjCjMj
YYRj-1 = YYj-1 + CCjYYj + 2rjCCjMZj + (dj2 + rj2CCj)Mj
YZRj-1 = YZj-1 + CSjYYj + 2rjCSjMZj + rj2CSjMj
ZZRj-1 = ZZj-1 + SSjYYj + 2rjSSjMZj + (dj2 + rj2SSj)Mj
MXRj-1 = MXj-1 + djMj
MYRj-1 = MYj-1 S jMZj rjSjMj
MZRj-1 = MZj-1 + C jMZj + rjCjMj
MRj-1 = Mj-1 + Mj
b) Cuando la articulacin j es prismtica, los parmetros de la matriz de inercia del cuerpo j se reagrupan con los del cuerpo j-1, pudindose agrupar los
parmetros XXj, XYj, XZj, YYj, YZj, ZZj:

XXRj-1 = XXj-1 + CCjXXj 2CSjXYj + SSjYYj


XYRj-1 = XYj-1 + CSjCjXXj + (CCj SSj)CjXYj CjSjXZj
CSjCjYYj + SjSjYZj
XZRj-1 = XZj-1 + CSjSjXXj + (CCj SSj)SjXYj CjCjXZj
CSjSjYYj SjCjYZj
YYRj-1 = YYj-1 + SSjCCjXXj + 2CSjCCjXYj 2SjCSjXZj CCjCCjYYj 2CjCSjYZj + SSjZZj

81

YZRj-1 = YZj-1 + SSjCSjXXj + 2CSjCSjXYj + Sj(CCj


SSj)XZj + CCjCSjYYj + Cj(CCj SSj)YZj
CSjZZj
ZZRj-1 = ZZj-1 + SSjSSjXXj + 2CSjSSjXYj + 2SjCSjXZj +
CCjSSjYYj + 2CjCSjYZj + CCjZZj
Con estas dos frmulas (a y b) se reagrupan:

YYj, MZj y Mj si j = 0.
XXj, XYj, XZj, YYj, YZj, ZZj si j = 1.

Nota: Obsrvese que cada trmino que aparece reagrupado incluye a l mismo y a otros ms. Cuando no incluye
a otros trminos no est reagrupado, se le quita entonces
la R mayscula que indica la reagrupacin.
2) Eliminar MZj y reagrupar MXj y MYj utilizando la siguiente relacin, si j es prismtica y aj paralelo a
ar1, para r1 < j < r2:
MXRj-1 = MXj-1 + CjMXj SjMYj
MYRj-1 = MYj-1 + SjCjMXj + CjCjMYj
MZRj-1 = MZj-1 + SjSjMXj + CjSjMYj
ZZRj = ZZj + 2djCjMXj 2djSjMYj
3) Reagrupar o eliminar uno de los parmetros MXj,
MYj o MZj si j es prismtica y si aj NO es paralela a
arj para r1 < j < r2, segn la siguiente tabla:
ja

ja

zr1

= 0;
0;
ja
yr1 0
ja
zr1 = 0;
ja
xr1 = 0
ja
zr1 = 0;
ja
yr1 = 0
ja

zr1

xr1

MXRj=MXj
(jaxr1/jazr1)MZj
MYRj
=
(jayr1/jazr1)MZj
=
MXRj
(jaxr1/jayr1)MYj
MYj = 0
MXj = 0

82

MYj

MXj

4) XXj, XYj, XZj y YZj no tienen efecto si j = 0 para


r1 j <r2 (los ejes de estas articulaciones son paralelos al eje r1). El trmino YYj tampoco tiene efecto
pues ya fue eliminado en la etapa 1.
5) Eliminar los parmetros MXj, MYj si j = 0, si
r1 j < r2, si aj se confunde con ar1, y si ar1 es paralelo a aj y a la gravedad. Es de notar que MZj fue
eliminada en la etapa 1.
6) Eliminar MXj, MYj, MZj si j = 1 y j < r1.
Clculo de los parmetros de inercia de los motores:
7) Parmetros del cuerpo Cr1:
El parmetro Iar1 es reagrupado con ZZr1 as:
ZZRr1 = ZZr1 + Iar1
8) Parmetros del cuerpo Cr2 cuando zr2 es perpendicular a zr1 y cuando no existe articulacin rotoide
entre r1 y r2:
El parmetro Iar2 se agrupa con ZZr2 as:
ZZRr2 = ZZr2 + Iar2
9) La primera articulacin es prismtica y su eje es
paralelo a la gravedad:
MR1 = M1 + Iar1
Ejemplo 4.2: Calcular los parmetros de base del robot
Puma del Ejemplo 2.1.
Obsrvese que para este robot r1 = 1 (articulacin 1) y
r2 = 2 (articulacin 2). Siempre se debe iniciar el clculo de
los parmetros de base a partir de la ltima articulacin,
as:

83

Cuerpo 6:
XXR6 = XX6 YY6
XXR5 = XX5 + YY6
ZZR5 = ZZ5 + YY6
MYR5 = MY5 + MZ6
MR5 = M5 + M6
Parmetros mnimos (es decir, parmetros que finalmente quedan activos para esta articulacin): XXR6, XY6,
XZ6, YZ6, ZZ6, MX6, MY6.
Cuerpo 5:
XXR5 = XX5 YY5 = (XX5 + YY6) YY5
XXR4 = XX4 + YY5
ZZR4 = ZZ4 + YY5
MYR4 = MY4 MZ5
MR4 = M4 + MR5 = M4 + M5 + M6
Parmetros mnimos: XXR5, XY5, XZ5, YZ5, ZZR5, MX5,
MYR5.
Nota: Para el clculo de XXR5 se tiene en cuenta el resultado obtenido para este parmetro en el cuerpo 6.
Cuerpo 4:
XXR4 = XX4 + YY5 YY4
XXR3 = XX3 + YY4 + 2RL4MZ4 + RL42(M4 + M5 + M6)
ZZR3 = ZZ3 + YY4 + 2RL4MZ4 + RL42(M4 + M5 + M6)
MYR3 = MY3 + MZ4 + RL4(M4 + M5 + M6)
MR3 = M3 + M4 + M5 + M6
Parmetros mnimos: XXR4, XY4, XZ4, YZ4, ZZR4, MX4,
MYR4.

84

Cuerpo 3:
XXR3 = XX3 + YY4 + 2RL4MZ4 + RL42(M4 + M5 + M6) YY3
XXR2 = XX2 + YY3
XZR2 = XZ2 D3MZ3
YYR2 = YY2 + D32(M3 + M4 + M5 + M6) + YY3
ZZR2 = ZZ2 + D32(M3 + M4 + M5 + M6)
MXR2 = MX2 + D3(M3 + M4 + M5 + M6)
MZR2 = MZ2 + MZ3
MR2 = M2 + M3 + M4 + M5 + M6
Parmetros mnimos: XXR3, XY3, XZ3, YZ3, ZZR3, MX3,
MYR3.
Cuerpo 2:
XXR2 = XX2 YY2 D32(M3 + M4 + M5 + M6)
ZZR1 = ZZ1 + YY2 + D32(M3 + M4 + M5 + M6) + YY3
Parmetros mnimos: XXR2, XY2, XZR2, YZ2, ZZR2,
MXR2, MY2.
Cuerpo 1:
El nico parmetro no nulo es ZZR1.
Inercias:
Ia1 se reagrupa con ZZ1.
Ia2 se reagrupa con ZZ2.
Las frmulas finales de los parmetros que no son nulos se
muestran a continuacin:
ZZR1 = ZZ1 + YY2 + D32(M3 + M4 + M5 + M6) + YY3
XXR2 = XX2 YY2 D32(M3 + M4 + M5 + M6)
XZR2 = XZ2 D3MZ3
ZZR2 = ZZ2 + D32(M3 + M4 + M5 + M6)
MXR2 = MX2 + D3(M3 + M4 + M5 + M6)
XXR3 = XX3 + YY4 + 2RL4MZ4 + RL42(M4 + M5 + M6)
ZZR3 = ZZ3 + YY4 + 2RL4MZ4 + RL42(M4 + M5 + M6)
MYR3 = MY3 + MZ4 + RL4(M4 + M5 + M6)
XXR4 = XX4 + YY5 YY4
85

ZZR4 = ZZ4 + YY5


MYR4 = MY4 MZ5
XXR5 = XX5 + YY6
ZZR5 = ZZ5 + YY6
MYR5 = MY5 + MZ6
XXR6 = XX6 YY6
La tabla de parmetros dinmicos de base es:
j
1
2
3
4
5
6

XXj
0
XXR2
XXR3
XXR4
XXR5
XXR6

j
1
2

MXj
0
MX
R2
MX3
MX4
MX5
MX6

3
4
5
6

XYj
0
XY2
XY3
XY4
XY5
XY6

XZj
0
XZR2
XZ3
XZ4
XZ5
XZ6

YYj
0
0
0
0
0
0

MYj
0
MY2

MZj
0
0

Mj
0
0

Iaj
0
0

MYR3
MYR4
MYR5
MY6

0
0
0
0

0
0
0
0

Ia3
Ia4
Ia5
Ia6

YZj
0
YZ2
YZ3
YZ4
YZ5
YZ6

ZZj
ZZR1
ZZR2
ZZR3
ZZR4
ZZR5
ZZ6

Si se supone que la distribucin de masas de cada cuerpo es simtrica respecto al sistema base de coordenadas de
cada articulacin, los trminos del tensor de inercia jJj fuera
de la diagonal son iguales a cero, lo cual simplifica los clculos. Haciendo un anlisis similar al mostrado en el Ejemplo
4.1 se llega a las siguientes simplificaciones adicionales:
MS1 = [0 0 MZ1 ]

MS2 = [MX 2

0]

MS3 = [0 MY3

MS 4 = [0 0 MZ 4 ]

MY2
0]

T
T

86

MS5 = [0 MY5

0]

MS6 = [0 0 MZ 6 ]

T
T

Se obtiene entonces la tabla completa de parmetros de


base:
j
1
2
3
4
5
6

XXj
0
XXR2
XXR3
XXR4
XXR5
XXR6

XYj
0
0
0
0
0
0

j
1
2
3
4
5
6

MXj
0
MXR2
0
0
0
0

MYj
0
MY2
MYR3
0
MYR5
0

XZj
0
0
0
0
0
0

YYj
0
0
0
0
0
0

MZj
0
0
0
0
0
0

Mj
0
0
0
0
0
0

YZj
0
0
0
0
0
0

ZZj
ZZR1
ZZR2
ZZR3
ZZR4
ZZR5
ZZ6
Iaj
0
0
Ia3
Ia4
Ia5
Ia6

Obsrvese que en vez de tener 66 parmetros que definen


la dinmica de este robot, con la aplicacin de las frmulas
de los parmetros de base y teniendo en cuenta las consideraciones adicionales se obtienen solamente 19.
Ejercicio 4.1:
Hallar los parmetros de base de los robots del Ejercicio
2.1.
Ejemplo 4.3: Encontrar los elementos de las matrices A y Q
del modelo dinmico inverso de un robot de 3 grados de
libertad, con la misma estructura que el robot PUMA del
Ejemplo 2.1.

87
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

Segn la tabla de parmetros de base hallada anteriormente (Ejemplo 4.2.), las matrices del tensor de inercia y del
primer momento de inercia pueden organizarse as:
0
0
0 0
XXR2 0

2
J 1 = 0 0
0 ; J 2 = 0
0
0 ;
0 0 ZZR1
0
0 ZZR2
0
XXR3 0
0 0 0
3
J 3 = 0
0
0 ; I a = 0 0 0 ;
0
0 0 IA3
0 ZZR3

0
MXR2
0

2
3
MS1 = 0 ; MS2 = MY2 ; MS3 = MYR3
0
0
0

a) Clculo de las velocidades de rotacin segn la ecuacin


(36):
Recordando que: j a j = [0 0 1]

O =0

1 = 1 A0 0 0 + q&1 1a1 = [0 0 q&1 ]

C 2 0 S 2 0 0 S 2q&1
2 = A1 1 + q& 2 a 2 = -S 2 0 C 2 0 + 0 = C 2q&1
0 -1 0 q&1 q& 2 q& 2

C 3 S 3 0 S 2q&1 0 S 23q&1
3
&
3 = A2 2 + q 3 a 3 = -S 3 C 3 0 C 2q&1 + 0 = C 23q&1
0
0 1 q& 2 q& 3 q& 2 + q& 3

b) Clculo de las velocidades de translacin segn la ecuacin (37):


0

V 0 =0
88

V 1 = 1 A0 0V0 + 0 0 0 P1 = 0

V2 = 2 A1 1V1 + 1 1 1P2 =0
3
V3 = 3 A2 2V2 + 2 2 2P3
2

Dado que: 2 2 2P3 = [0 D 3q& 2

-D 3C 2q&1 ]

Entonces:

V3 = 3 A2 2V2 + 22 2P3 = [D 3S 3q& 2

D 3C 3q& 2

-D 3C 2q&1 ]

c) Clculo de los elementos de la matriz de inercia A, utilizando la ecuacin de la energa cintica (35):
Energa cintica del cuerpo 1:
1
E1 = 11T 1J 1 11 + M 1 1V1T 1V1 +2 1MS1T ( 1V1 11 )
2

Dado que M1 = 0 y 1MS1 = [0 0 0 ] , el trmino de la


T

energa cintica para la primera articulacin queda resumido a:

0 0
0 0
1 1 T1 1
1

&

E1 = 1 J 1 1 = [0 0 q1 ] 0 0
0 0
2
2

0 0 ZZR1 q&1
1
= ZZR1q&12
2

Energa cintica del cuerpo 2:


1
E 2 = 2 2 T 2J 2 2 2 + M 2 2V2 T 2V2 +2 2MS2 T ( 2V2 2 2 )
2

Dado que M2 = 0 y 2V2 = 0, el trmino de la energa cintica para la segunda articulacin queda resumido a:
89

1 2 T2 2
2 J 2 2
2

0 S 2q&1
XXR2 0
1

= [S 2q&1 C 2q&1 q& 2 ] 0


0
0 C 2q&1
2

0 ZZR2 q& 2
0

1
1
= XXR2S 22 q&12 + ZZR2 q& 22
2
2

E2 =

Energa cintica del cuerpo 3:


E3 =

1 3 T3 3
3 J 3 3 + M 3 3V3 T 3V3 + 2 3MS3 T ( 3V3 3 3 )

Dado que M3 = 0, el trmino de la energa cintica para


la tercera articulacin queda resumido a:
1
E 3 = 3 3 T 3J 3 3 3 +2 3MS3 T ( 3V3 3 3 )
2

Donde:
3

3 T 3J 3 33 =

0 S 23q&1
XXR3 0

[S 23q&1 C 23q&1 q& 2 + q& 3 ] 0 0 0 C 23q&1


0
0 ZZR3 q& 2 + q& 3
2
2
2
= XXR3S 23 q&1 + ZZR3q& 2 + 2ZZR3q& 2q& 3 + ZZR3q& 32
D 3S 3q& 2 S 23q&1
V3 3= D 3C 3q& 2 C 23q&1
-D 3C 2q&1 q& 2 + q& 3
D 3C 3q& 22 + D 3C 3q& 2q& 3 + D 3C 2C 23q&12

= -D 3C 2S 23q&12 - D 3S 3q& 22 - D 3S 3q& 2q& 3


D 3S 3C 23q&1q& 2 - D 3C 3S 23q&1q& 2

90

2 3MS3 T ( 3V3 33 ) =
D 3C 3q& 22 + D 3C 3q& 2q& 3 + D 3C 2C 23q&12

2 [0 MYR3 0] -D 3C 2S 23q&12 - D 3S 3q& 22 - D 3S 3q& 2q& 3


D 3S 3C 23q&1q& 2 - D 3C 3S 23q&1q& 2

2
2
&
&
=- 2MYR3D 3C 2S 23q1 - 2MYR3D 3S 3q 2 - 2MYR3D 3S 3q& 2q& 3

Luego, la energa cintica del tercer cuerpo es:

XXR3S 232 q&12 + ZZR3q& 22 + 2ZZR3q& 2q& 3 + ZZR3q& 32

1
E 3 = -2MYR3D 3C 2S 23q&12 - 2MYR3D 3S 3q& 22

- 2MYR3D 3S 3q& 2q& 3

Una vez obtenidas las expresiones de las tres energas


cinticas se procede a armar la matriz de inercia, como se
vio en la seccin 4.3.1:
2

A11 = ZZR1+ XXR2S 2 + XXR3S 23 - 2MYR3D 3C 2S 23

A22 =ZZR2+ZZR3-2MYR3D 3S 3
A33 = ZZR3+ IA 3

A12 = A21 =0
A13 = A31 =0
A23 =ZZR3-MYR3D 3S 3
Ntese que el valor de la inercia del accionador IA3 es
adicionada al trmino A33. Si existiesen por ejemplo las
inercias IA1 y IA2, deberan ser adicionadas a los trminos
A22 y A33 respectivamente.

d) Clculo del vector de gravedad utilizando la ecuacin


(38):
Recordar que: 0 g T = [0 0 G3]

91

Energa potencial del cuerpo 1:

U 1 =- 0 g T

MS1
0 T
0 0T1
=- g
M1
1

0
0
0 0T1 = 0
0

0

Energa potencial del cuerpo 2:


U 2 =- 0 g T

2MS2
0 0T2

M2
C1C 2 -C1S 2 S1
S1C 2 -S1S 2 -C1
0
S2
C2
0

0
0
0

0 MXR2
0 MY2
=- 0 g T
0 0

1 0
MXR2C1C 2 - MY2C1S 2
MXR2S1C 2 - MY2S1S 2

=- [0 0 G3 0]
MXR2S 2 + MY2C 2

=- G3MXR2S 2- G3MY2C 2

Energa potencial del cuerpo 3:

92

3MS3
0 0T3

M3
a1 -C1C 2S 3 - C1S 2S 3 b1 c1 0
a 2 -S1C 2S 3 - S1S 2C 3 b 2 c 2 MYR3

=- 0 g T 0
a 3
b 3 c 3 0
-S 2S 3 + C 2C 3

0
0 1 0
0
MYR3(-C1C 2S 3 - C1S 2S 3)
MYR3(-S1C 2S 3 - S1S 2C 3)

=- [0 0 G3 0]

MYR3C 23

=- G3MYR3C 23

U 3 =- 0 g T

Los trminos ai, bi y ci de la matriz anterior no se calculan pues no son necesarios, dado que el vector conformado
por 3MS3 y M3 tiene solo un elemento no nulo, perteneciente a la segunda fila.

La energa potencial total ser:

U =- G3MXR2S 2-G3MY2C 2-G3MYR3C 23


Luego los elementos del vector de gravedad son:
Q1 =

U U
=
=0
q1 1

Q2 =

U U
=
=- G3MXR2C 2+G3MY2S 2+G3MYR3S 23
q 2 2

Q3 =

U U
=
= G3MYR3S 23
q 3 3

Finalmente la expresin del modelo dinmico inverso


puede escribirse como:

93

1 A11
= 0
2
3 0

0
A22
A23

0 q&&1 0
A23 q&&2 + Q2
A33 q&&3 Q3

Ejercicio 4.2:
Hallar la matriz A y el vector Q del modelo dinmico inverso de los robots del ejercicio.
Ejemplo 4.4: Hallar la expresin del modelo dinmico directo del ejemplo anterior (Ejemplo 4.3). En este caso se debe
despejar el vector de aceleraciones articulares e invertir la
matriz de inercia. Esto ltimo se puede realizar con la ayuda de Matlab, una vez definida la matriz de manera
simblica. El resultado es:
1
0
0
A11


&&
q

1
1
A23
A33
q&& = A 1 - Q = 0

Q2

2
2 2
B
B 2

q&&3
3 - Q3
A
A22 3 - Q3
0
- 23
B
B

Con:
B = A22 A33 - A232

94

5. I DENTIFICACIN PARAMTRICA
5.1. Introduccin
Dado que varias leyes de control estn basadas en el
modelo dinmico (control robusto, predictivo, adaptativo,
por par calculado, etc.), el modelo matemtico de la planta
debe ser conocido con cierta exactitud. Aun si no se tuviera
en cuenta el modelo en una ley de control (control PID por
ejemplo), para realizar la simulacin del robot en un ambiente como Matlab/Simulink se necesitan los valores de
los parmetros dinmicos del mecanismo. Estos parmetros son:
= XX j XYj XZ j YYj YZ j ZZ j MX j MYj MZ j M j Iaj

En general existen cuatro mtodos para el clculo de los


parmetros inerciales del robot:

Las medidas, donde se miden cada uno de los cuerpos del robot. Esto implica que el robot debe ser
desmontado.
La aproximacin, donde a partir de consideraciones
geomtricas bsicas se pueden encontrar valores
aproximados (como en el Ejemplo 4.1).
El clculo, a partir de consideraciones geomtricas
y de un sistema CAO (como SolidEdge).
La identificacin, que es la mejor solucin para conocer en forma real los parmetros del robot.

Se explicar a continuacin el procedimiento de identificacin propuesto por Khalil y Dombre (2002). Ante todo se

95

parte de la ecuacin del modelo dinmico inverso, escribindola de otra manera:

= Aq&&(q )+ Q (q )
Y =W ( q , q& , q&& ) +

(43)

La matriz W es llamada matriz de observacin y es el


vector de errores en la identificacin. Obsrvese que esta
expresin es igual a aquella del modelo dinmico inverso
simplificado (ecuacin (41)), solamente que se han dejado
las incgnitas (parmetros dinmicos) a la derecha de la
ecuacin (vector ).
Es decir las cuplas ahora se llamarn Y, y los parmetros dinmicos que antes estaban presentes en A y Q ahora
se agrupan todos en el vector . El vector solamente
aparece al realizar la experimentacin real sobre el robot.
La solucin en el sentido de mnimos cuadrados implica:

= Argmin

(44)

Y la solucin ser:

min Y -W Y - W

min Y TY - 2W T TY +W T T W

(45)

El mnimo se obtiene entonces derivando respecto a e


igualando a cero:
-2W TY +2W TW =0

(46)

Luego el vector de parmetros estimados ser:


= (W TW ) W TY =W +Y
1

96

(47)

Donde a W+ se le llama la matriz seudoinversa de W. Se


debe tener en cuenta que esta W no es determinista sino
aleatoria. Suponiendo que el vector de errores est centrado, se define la varianza como:

p =

Y -W

(r - c )

(48)

con r = nmero de medidas y c = nmero de parmetros a hallar.

Finalmente la desviacin estndar es:


jr
% =100

j
j

(49)

Normalmente se considera que se ha realizado una buena estimacin de parmetros cuando la desviacin estndar para cada parmetro es menor del 10%. Desviaciones
mayores a este valor obligan a realizar experimentaciones
adicionales hasta bajar el error por debajo del 10%.

5.2. Planificacin de la identificacin sobre el robot


En la prctica se programan diversos movimientos para
todas las articulaciones del robot, al mismo tiempo, con el
fin de excitar todos los parmetros que se van a hallar.
Esto se hace por medio de trayectorias dinmicas en cada
articulacin, ricas en informacin, de manera que se exciten todos los parmetros inerciales del robot. El robot real
se mover de manera dinmica y se guardarn en memoria
tanto los voltajes enviados a los motores como las posiciones generadas por estos voltajes. La identificacin final se
hace fuera de lnea en un programa como Matlab. Generalmente se concatenan o unen varias trayectorias (al menos cinco) para obtener diferentes grupos de datos provenientes de movimientos diferentes, con el fin de hallar una

97
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

desviacin estndar menor al 10% para todos los parmetros estimados.


Condicin bsica para esta estimacin es construir la
segunda parte de la ecuacin (43), lo cual se mostrar en el
ejemplo siguiente.

Ejemplo 5.1: Conformacin de la matriz de observacin W y


de la nueva expresin del modelo dinmico inverso para un
robot SCARA de 4 grados de libertad.
Dado el modelo dinmico inverso de este robot, expresado de la siguiente forma:

1

2

A
11
A
21
=
A31

A41

A12
A22

A13
A23

A32
A42

A33
A43

A14 q&&1 Q1
A24 q&&2 Q2
+
A34 q&&3 Q3

A44 q&&4

Q4

Con:
A11 = ZZR1 + ZZR2 + 2MXR2D2C2 2MY2D2S2
2MXR3(D2C23 + D3C3) 2MYR3(D2S23 + D3S3) + ZZR3
M4D22 + 2M4D2D3C2 + M4D32
A12 = ZZR2 + MXR2D2C2 MY2D2S2 + ZZR3
MXR3(2D3C3 + D2C23) MYR3(2D3S3 + D2S23)
M4D2D3C2 + M4D32
A13 = ZZR3 + MXR3(D2C23 + D3C3) MYR3(D2S23
D3S3)
A14 = 0

+
+
+
+
+

A22 = ZZR2 + ZZR3 + 2MXR3D3C3 2MYR3D3S3 +


M4D32 + IA2
A23 = ZZR3 + MXR3D3C3 MYR3D3S3
A24 = 0
A33 = ZZR3 + IA3
A34 = 0

98

A44 = M4 + IA4
Q1 = 0
Q2 = 0
Q3 = 0
Q4 = G3M4
Recurdese que la matriz de inercia es simtrica, por lo
tanto A12 = A21. El vector de once parmetros dinmicos a
identificar ser:

= [ ZZR1 ZZR2 ZZR3 MXR2 MXR3...


... MY2 MYR3 M4 IA2 IA3 IA4]
La expresin de la matriz de observacin W (matriz
4x11) a hallar es:

Y = =W
El modelo dinmico inverso del SCARA, expresado por
filas es:

1 = A11q&&1 + A12q&&2 + A13q&&3 + A14q&&4 + Q1


2 = A21q&&1 + A22q&&2 + A23q&&3 + A24q&&4 + Q2
3 = A31q&&1 + A32q&&2 + A33q&&3 + A34q&&4 + Q3
4 = A41q&&1 + A42q&&2 + A43q&&3 + A44q&&4 + Q4
Ahora la nueva expresin para el modelo dinmico inverso, donde aparece la matriz de observacin W (4x11) es:

99

Y1 q&&1 q&&1 + q&&2


Y 0 q&& + q&&
1
2
2=
Y3 0
0

0
Y 4 0

q&&1 + q&&2 + q&&3


q&&1 + q&&2 + q&&3
q&&1 + q&&2 + q&&3
0

2Aq&&1 + q&&2 2Bq&&1 + Cq&&2 + Bq&&3


Aq&&1
Cq&&1 + 2Hq&&2 + Hq&&3
Bq&&1 + Hq&&2
0
0
0

D ( q&&1 + q&&2 ) Eq&&1 + Fq&&2 + Eq&&3 G ( q&&1 + q&&2 ) 0


Dq&&1
Fq&&1 - 2Iq&&2 - Iq&&3 G ( q&&1 + q&&2 ) q&&2
Eq&&1 - Iq&&2
0
0
0
0
0
q&&4 - G 3
0

0
0
&&
q3
0

ZZR1
ZZR2

ZZR3

MXR2
0
MXR3

0
MY2

0
MYR3
q&&4
M4

IA2
IA3

IA4

Con:
A = D 2C 2
B = ( D 2C 23 + D 3C 3 )
C = ( 2D 3C 3 + D 2C 23 )
D =- 2D 2S 2
E =- ( D 2S 23 + D 3S 3 )
F =- ( 2D 3S 3 + D 2S 23 )
G = D 32
H = D 3C 3
I = D 3S 3
Ejercicio 5.1:
Hallar la matriz W y la ecuacin general para identificacin de los robots del Ejercicio 2.1.

100

6. C ONTROL DE ROBOTS
6.1 Controladores industriales
La mayora de robots comerciales utilizan servomotores
elctricos, tanto DC como AC, con reductores de velocidad.
Para algunas aplicaciones especiales pueden encontrarse
robots con motores hidrulicos, mientras que los robots
accionados con motores neumticos son ya bastante raros.
Y todos poseen sensores de posicin en sus articulaciones,
siendo menos comn el uso de sensores de velocidad.
Los controladores industriales actuales son sistemas
especializados que proporcionan cuatro caractersticas que
permiten la integracin del robot en un sistema de automatizacin industrial. Estas caractersticas son:
a) Generacin de trayectorias y seguimiento de stas:
Los controladores industriales deben trabajar en tiempo
real, con tasas de muestreo de entre 10 y 20 milisegundos.
El controlador debe transformar las rdenes de consignas
deseadas en seales de movimiento que sean ejecutadas
por cada servo controlador individual que posean las articulaciones. Este controlador individual normalmente es un
clsico PID, lo cual es suficiente para la mayora de aplicaciones, pero que se queda corto en el seguimiento de consignas conjuntas de posicin y velocidad, o cuando se involucra el esfuerzo del robot sobre el ambiente. ltimamente
algunos fabricantes ofrecen sofisticados sistemas de control que integran control de movimiento, visin de mquina, sensado de fuerza y programacin de manufactura en
una misma plataforma, lo cual resuelve prcticamente
cualquier problemtica de la robtica industrial.

101

b) Integracin del movimiento y el proceso: Esto significa


la integracin de los movimientos del manipulador con los
sensores y dems dispositivos externos del proceso. Esta
integracin puede ir desde las simples seales que enva el
proceso para que el robot inicie la carga de determinado
material, hasta su trabajo en un sistema complejo de manufactura, donde el controlador del robot puede tener integrado diversas funciones de un PLC (programmable logic
controller).
c) Interaccin humanocomputador: La forma como el
operador humano se comunica con el sistema robtico es
extremadamente importante. Esta comunicacin puede
llevarse a cabo de dos maneras: escribiendo el cdigo de
programacin de las tareas del robot fuera de lnea para
despus enviar estas rdenes en tiempo real, o por medio
de terminales especializados que utilizan touch keys o joysticks. Es claro que esta ltima manera es ms amigable y
fcil de trabajar para el operador humano, adems muchas
de las tareas que realiza el robot pueden depender de la
experticia del operador que las va programando y guardando en memoria al mismo tiempo. Sin embargo estos mecanismos de interface directos son efectivos cuando no se
esperan cambios en la programacin y no estn hechos
para ambientes de trabajo cambiantes.
ltimamente se ha comenzado a trabajar en programacin basada en comportamiento, donde varios comportamientos especficos son programados en el control del robot a bajo nivel. Entonces un sistema de alto nivel escoger
el comportamiento a activar dependiendo de la tarea deseada por el operador humano.
d) Integracin de la informacin: Su propsito es incrementar la flexibilidad del sistema robtico. Los sistemas
comerciales actuales han comenzado a soportar funciones
de integracin de la informacin a travs de un PC usando
los puertos de comunicacin habituales, o bien usando
redes de datos industriales. ltimamente los esfuerzos se
han concentrado en la conexin de sistemas robticos con
Internet con el fin de permitir el monitoreo y control a distancia.

102

6.2 Consignas de movimiento


A las rdenes de referencia en posicin, velocidad y aceleracin, que son funciones del tiempo, se les llama consignas y deben ser definidas para cada uno de los motores
del robot. Las consignas pueden ser articulares (utilizadas
para realizar pruebas del robot o movimientos industriales
simples) o cartesianas (necesarias para seguir requerimientos industriales).
A diferencia de la consigna clsica utilizada en el mundo
industrial el escaln, ste no puede utilizarse en robtica
ya que implicara ir de una posicin inicial a una posicin
final en grados o radianes, en un tiempo infinitesimal. Esto
daara al robot debido a las inercias de las masas que
estn en juego durante el movimiento. Por lo tanto debe
programarse una trayectoria suave que proporcione el
tiempo suficiente para que el movimiento sea realizado.
El movimiento entre qi y qf (posiciones inicial y final) en
funcin del tiempo t se describe por (as como su derivada):

q (t )= q i + r (t ) D
q& (t )= r&(t ) D

(50)

Con: D = qf qi
La trayectoria que permitir realizar el movimiento articular deseado r(t) est definida por los siguientes valores
lmites (significa que empieza en 0 y termina en el valor
final):
r(0) = 0; r(tf) = 1
En seguimiento de trayectoria el trmino qf vara, siendo
entonces la distancia a recorrer:
D = qf(0) qi
Existen varias funciones que permiten satisfacer los requerimientos de la funcin q(t) para pasar suavemente de
103

qi a qf. A continuacin se muestran estas funciones, propuestas por Khalil y Dombre (2002). Para mayores detalles
se aconseja consultar ese documento.

6.2.1 Interpolacin polinomial


6.2.1.1 Interpolacin lineal
El movimiento de cada articulacin es descrito por una
ecuacin lineal en el tiempo, lo cual equivale a una rampa
entre la posicin inicial y la posicin final, definida por la
ecuacin:

q (t )= q i +

t
D
tf

(51)

Aunque esta ley es continua en posicin (una rampa), es


discontinua en velocidad (la derivada de una rampa es un
escaln), por lo cual no es aconsejable ya que presentara
un salto en la velocidad.

6.2.1.2 Polinomio de 3er grado


Se realiza imponiendo una velocidad nula al inicio y al
final del movimiento, lo cual asegura continuidad en la
velocidad. El grado mnimo del polinomio que satisface esta
condicin es tres, y est dado por la siguiente expresin:
q (t )= a 0 + a1t + a 2t 2 + a 3t 3

(52)

Con el fin de satisfacer las condiciones en los lmites, los


coeficientes de la ecuacin anterior sern:

a0 = q i
a2 =

a1 = 0

3
D
tf 2

a 3 =-

2
D
tf 3

(53)

La evolucin en el tiempo de los tres parmetros se da


as:

104

qf

q&

3D/2tf

q&&

tf /2

6D/tf 2

t
6D/t

f2

Figura 6.1. Evolucin de las consignas para el polinomio


de tercer grado.

Puede observarse que existe continuidad en posicin y


en velocidad. Aunque no hay continuidad en la aceleracin,
en la prctica los robots industriales son lo suficientemente
rgidos para absorber esta discontinuidad. La utilizacin de
este polinomio es entonces suficiente.
La velocidad mxima ocurre cuando t = tf/2, entonces:

q& j max =

3 Dj
2t f

(54)

Con: D j = q j f - q j i
Por su parte la aceleracin es mxima en t = 0 y t = tf :

105

q&&j max =

6 Dj

(55)

tf 2

6.2.1.3 Polinomio de 5 grado


Para los robots rpidos o que transportan cargas importantes, es necesario asegurar la continuidad de las aceleraciones con el fin de evitar sobrecargar la mecnica del robot. Como el polinomio de tercer grado no es suficiente
deben imponerse dos condiciones suplementarias a la trayectoria diseada, esto es, aceleracin inicial y final nula:

q&&(0)= 0
q&&(t f )= 0

(56)

La funcin de posicin se escribe entonces como:


t
q (t )=10
tf

t
t
-15 + 6

tf
tf

(57)

Las expresiones para las velocidades y aceleraciones


mximas sern de la siguiente forma:
q& j max =

15 D j
8t f

q&&j max =

10 D j
3 tf 2

Los tres parmetros evolucionan en el tiempo as:

106

(58)

qf

q&

15D/8tf

q&&

tf /2

10D/3tf 2

t
10D/3tf 2

Figura 6.2. Evolucin de las consignas para el polinomio


de quinto grado.

Como puede verse existe continuidad en posicin, velocidad y aceleracin.


6.2.1.4 Ley tipo Bang-bang
En este caso el movimiento est representado por una
fase de aceleracin constante seguido por una fase de frenado constante, con las velocidades de inicio y de llegada
nulas. El movimiento es entonces continuo en posicin y
en velocidad pero discontinuo en aceleracin.
La posicin est dada por:

107
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

t
i
q (t )= q + 2 D
tf

i
q (t )= q + -1+ 4

tf

para 0 t
t
- 2
tf

tf
2

t
D para f t t f
2

(59)

Para una articulacin j dada, las velocidades y aceleraciones mximas son:

q& j max =

2 Dj
tf

q&&j max =

4 Dj

(60)

tf 2

La evolucin de los tres parmetros es:

qf

q&

2D/tf

q&&

tf /2

4D/tf 2

t
4D/tf 2
Figura 6.3. Evolucin de las consignas para la ley
tipo Bang- bang.

108

Igualmente como en el caso del polinomio de grado tres,


la mayora de robots industriales son capaces de absorber
la discontinuidad presente en las aceleraciones para esta
ley de movimiento.

6.2.1.5 Ley Bang-bang con trapecio en la velocidad


En este caso, cuando se saturan las velocidades de las
articulaciones, se puede saturar igualmente la aceleracin
y de esta forma disminuir el tiempo de recorrido en relacin con la ley Bang-bang original. La ley con trapecio en la
velocidad es la ms ptima en tiempo comparada con todas
las otras que aseguran continuidad en velocidad.
La posicin est representada por:

1 2

i
q (t )= q + 2 t ka sign ( D )


i
q (t )= q + t - kv sign ( D )
2

2
1
f
q (t )= q - (t f - t ) ka sign ( D )
2

Con: =

para 0 t
para t t f -
para t f - t t f

kv
ka

La evolucin de los tres parmetros es:

109

(61)

qf

q&

kv
ka
q&&

tf /2

ka

Figura 6.4. Evolucin de las consignas para la ley tipo Bang- bang
con trapecio en la velocidad.

El tiempo de recorrido mnimo de una trayectoria de este tipo ser igual a:


t f = +

D
kv

(62)

6.3 Estrategias de control


Como se vio anteriormente, la forma general del modelo
dinmico inverso es, incluyendo frotamientos:

= A(q )q&& + C (q,q& ) q& + Q (q )+ Fv q& + Fs sign(q& )


De una manera compacta puede escribirse:
= A(q ) q&& + H (q , q& )

110

(63)

(64)

El vector H agrupa entonces los siguientes trminos:


H = A(q ) q&& + C (q,q& ) q& + Q (q )+ Fv q& + Fs sign(q& )
(65)
Varios tipos de estrategias pueden ser utilizadas para
controlar un robot (Sciavicco and Siciliano, 1996; Khalil
and Dombre, 2002; Lewis et al., 2004; Kelly, et al., 2005;
Spong et al., 2006; Siciliano and Khatib, 2008; Jazar,
2010). stas pueden dividirse en:

Si no se utiliza un modelo matemtico del robot:


control PID, control difuso (fuzzy).
Si se utiliza un modelo matemtico del robot: control por par calculado, control pasivo, control predictivo, control robusto, control adaptativo, control
por modos deslizantes, etc.

A continuacin se analizarn los dos tipos de controladores ms utilizados en robtica industrial segn las propuestas de Khalil y Dombre (2002): control PID y control
por par calculado. En este libro se hace un anlisis simple
de dichos controladores y se proponen unas leyes de control que son de fcil aplicacin para la mayora de los robots industriales tipo serie. Sin embargo no se trata el problema de la estabilidad de los mismos segn la funcin de
Lyapunov, y las no linealidades presentes en el modelo del
robot se solucionan con la linealizacin por realimentacin.
Para mayores detalles sobre estos dos importantes aspectos se invita al lector a que consulte Lewis et al. (2004),
Kelly et al. (2005) o cualquiera de los otros libros listados
anteriormente.

111

6.4 Control PID

El mecanismo es considerado como un sistema lineal y


cada articulacin es controlada por un control descentralizado de tipo PID con ganancias constantes. Su ventaja es
su facilidad de implementacin y su bajo costo. En contraste se pueden encontrar malas precisiones y desplazamientos excesivos en el caso de movimientos rpidos. Su
esquema general es:

qd

_
Kp

Ki

q
Robot

+
q&

q&

Kv
_
Figura 6.5. Esquema control PID.

Ntese que el bloque Robot contiene el modelo dinmico directo (MDD), necesario para realizar la respectiva simulacin en un software como Simulink. La ley de control PID se escribe como:
= K p (q d - q )+ K v (q& d - q& )+ K i (q d - q )dt

(66)

El clculo de las ganancias Kp, Kv y Ki se realiza considerando el sistema robot, lineal y de segundo orden:
(67)
= a j q&& j + Fv q& j + j
Donde aj = Ajjmax designa el valor mximo del elemento
Ajj de la matriz de inercia A del robot y j es una fuerza
perturbadora.

112

Igualando las ecuaciones (66) y (67) y aplicando la


transformada de Laplace, para una fuerza perturbadora
nula, se obtiene:

q j (s )

K vj s 2 + K pj s + K ij

(68)

q j d (s ) a j s 3 +(K vj + Fvj )s 2 + K pj s + K ij

La solucin ms corriente consiste en escoger las ganancias con el fin de obtener un triple polo real negativo, lo
cual proporciona una respuesta rpida y sin oscilaciones.
Entonces:

(s )= a j s 3 +(K vj + Fvj )s 2 + K pj s + K ij = a j (s + j )3 ;

j > 0 (69)

Ubicando el polo tripe en la posicin j, se deducen entonces las ganancias del controlador:

K pj = 3a j j 2

K vj + Fvj = 3a j j
K =a 3
ij
j j

(70)

La frecuencia j se escoge lo ms alta posible, sin ser


superior a la pulsacin de resonancia del robot, normalmente j = rj/2. En la prctica, se desactiva la parte integral cuando el error de posicin es muy grande, ya que el
trmino proporcional es suficiente. Se lo desactiva tambin
cuando el error es muy pequeo para evitar las oscilaciones que podran introducir los frotamientos secos. El
trmino K v q& d permite reducir los errores de seguimiento
del movimiento deseado, algo que en automtica no se utiliza.

6.4.1 Sintonizacin manual del controlador PID


Aparte de las frmulas de sintonizacin mostradas anteriormente existen varios mtodos para sintonizar controladores PID aplicados a robots industriales. Sin embargo la
metodologa ms simple que puede aplicarse es por ensayo

113

y error, a menos que se tengan demasiadas articulaciones.


La metodologa que se sigue en simulacin es:

i.

ii.
iii.

iv.

v.

Colocar las constantes Kp en 1 y las Kv y Ki en cero.


El sistema reaccionar como si no existiera controlador alguno, lo cual har que la respuesta del robot sea inestable.
Aumentar los valores de Kp hasta obtener estabilidad aunque aparezcan oscilaciones.
Empezar a aumentar levemente los valores de Kv
con el fin de disminuir las oscilaciones. Estos valores no pueden ser muy altos porque el sistema se
har extremadamente lento.
Una vez disminuidas las oscilaciones se pueden incrementar de nuevo los valores proporcionales Kp
con el fin de disminuir el error. Ajustar poco a poco
estos dos valores (Kp y Kv): aumentar el primero para disminuir el error aunque aparezcan oscilaciones, aumentar el segundo para disminuir estas oscilaciones.
En caso de que exista al final error en estado estacionario para las consignas cartesianas, incrementar levemente los valores de Ki, aunque esto puede
ocasionar que de nuevo aumenten las oscilaciones.

Una vez sintonizado el control en simulacin se puede


proceder a realizar un ajuste fino con el robot real. La desventaja del PID en la parte de sintonizacin es que se trabaja con un sistema altamente acoplado, lo que significa
que la sintonizacin de una articulacin influye en las articulaciones ya sintonizadas, haciendo ms difcil el ajuste
global de todos los valores de ganancias. Para ms de tres
o cuatro articulaciones la sintonizacin puede ser un procedimiento bastante engorroso.

6.5 Control dinmico


Cuando la aplicacin exige evoluciones rpidas del robot
y una gran precisin, es necesario disear una ley de control ms sofisticada, que tenga en cuenta parcial o totalmente las fuerzas de interaccin dinmica. Una buena so 114

lucin al respecto es el control por desacoplamiento no


lineal, control por par calculado o simplemente, control
dinmico. En ingls se lo conoce como CTC (computed torque control).
Este tipo de control exige el clculo del modelo dinmico
en lnea y el conocimiento de los valores numricos de los
parmetros dinmicos. Es decir el control lleva implcito el
modelo del sistema que se quiere calcular, y por lo tanto es
imprescindible conocer con cierta exactitud el valor de los
parmetros dinmicos del robot.
Un robot es bsicamente un sistema no lineal, lo cual
puede verse fcilmente en el contenido de las expresiones
para la matriz de inercia A y el vector Q. Aunque existen
varias maneras de implementar un controlador no lineal
(Lewis, et al., 2004; Haddad and Chellaboina, 2008), la
forma ms sencilla es linealizar el sistema no lineal y aplicar luego un control lineal.
La idea bsica de la linealizacin por realimentacin es
construir una transformacin que linealice el sistema no
lineal despus de un determinado cambio de coordenadas
en el espacio de estados. Esto se realiza en un primer lazo
interno del controlador. Un segundo lazo (externo) contendr un controlador tradicional el cual trabajar con las
nuevas coordenadas definidas.
Definiendo los siguientes vectores en el espacio de estados:
x1 = q ; x 2 = q&

(71)
x
x = 1 ; y = x1
x
2
La ecuacin (64) puede entonces ser reescrita como:

x& = Bx + C(x )-1 ( - (x ))

(72)

0 I
0
; C = ; (x )= A(x1 ); (x ) = H (x1 , x 2 )
B =

0 0
I

(73)

Con:

115

Considerando una realimentacin no lineal dada por:

= (x )v + (x )

(74)

Realizando una transformacin entre v y x se halla que:


y&& = v
(75)
Esto corresponde a un sistema linealizado por realimentacin, donde la ecuacin (64) del modelo dinmico inverso
se transforma en un doble par de integradores.
6.5.1 Control en el espacio articular
Para la ecuacin (64), si A y H son las estimaciones
respectivas de A y H, y suponiendo que las posiciones y
velocidades articulares son medibles y que no estn contaminadas con ruido, se puede escoger una variable de
control de la forma:

(q )w (t )+ H (q , q& )
=A

(76)

Entonces, en el caso ideal donde el modelo se supone


bastante bien conocido A A; H H , el sistema puede ser

gobernado por la ecuacin (equivalente a la ecuacin (75)):

q&& = w (t )
(77)
El vector w(t) se considera entonces como un nuevo vector de control, siendo sta la esencia del control por par
calculado. El problema se reduce entonces a un problema
de control de n sistemas lineales, invariantes, desacoplados
y de segundo orden (doble integrador). En la prctica esta
es una ventaja considerable para el control CTC, donde
cada articulacin se sintoniza por separado sin tener en
cuenta las dems.
Dependiendo del tipo de consigna se pueden tener los
siguientes esquemas para el control CTC.
6.5.1.1 Movimiento completo deseado
Se fijan como variables deseadas la posicin, la velocidad y la aceleracin. El vector de control se define como:
116

w (t ) = q&&d + K v (q& d - q& )+ K p (q d - q )

(78)

La respuesta del sistema en bucle cerrado se escribe por


la ecuacin desacoplada siguiente (e = qd q):
(79)
e&& + K v e& + K p e = 0
Las ganancias Kpj y Kvj son escogidas para imponer al
error del eje j la dinmica deseada de amortiguamiento j
(en general igual a 1 para obtener una respuesta sin sobreimpulso), y de pulsacin j para no importa cul configuracin del robot:

K pj = j

K vj = 2 j j

(80)

El esquema de este controlador es:

qd
q& d
d

q&&

e&

Kp
+ w

Kv

A (q )

+
+

q
Robot

q&

Algoritmo de
Newton-Euler

H (q,q& )

Figura 6.6. Esquema control CTC con movimiento


completamente especificado.

La parte punteada se refiere al modelo dinmico inverso


(MDI) o modelo matemtico de la planta (en este caso el
robot), el cual cual ha sido linealizado por realimentacin.
Igual que para el PID, la forma ms fcil de sintonizar este
controlador es por ensayo y error, siendo ms sencillo an
si se tiene en cuenta que se deben sintonizar dos ganancias (Kp y Kv) en vez de tres, y que las articulaciones estn
desacopladas.
117
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

6.5.1.2 Solo la posicin deseada


En este caso el objetivo es solamente alcanzar la posicin qd. Una posibilidad para w(t) es:

w (t )= K p (q d - q )- K v q&

(81)

Si la modelizacin es perfecta, reemplazando w(t) por la


aceleracin articular se deduce la ecuacin en lazo cerrado
del sistema como:

q&& + K v q& + K p q = K p q d

(82)

Esto representa igualmente una ecuacin lineal desacoplada de segundo orden. Su esquema es:

qd

_
Kp
+ w

Kv

A (q )

q
Robot

q&

+
q

H (q,q& )

Figura 6.7. Esquema control CTC con solo el


movimiento especificado.

6.5.2 Control en el espacio operacional

Cuando el movimiento se define en el espacio cartesiano u


operacional (consignas tpicamente industriales), se puede
proceder de dos maneras:
se transforma el movimiento definido en el espacio
operacional en un movimiento en el espacio articular
y se aplica luego un control en el espacio articular
(como los que se vieron en la seccin precedente);

118

se definen las ecuaciones dinmicas del robot en el


espacio operacional para escribir directamente en
este espacio las ecuaciones de control.

6.5.2.1 Control en el espacio operacional con


correccin en el espacio articular (primer caso)
Para transformar el movimiento cartesiano deseado en
un movimiento articular, se utiliza el modelo geomtrico
inverso (seccin 2.4), donde qd = f(Xd).
El control se realiza entonces por cualquiera de los
mtodos vistos anteriormente (movimiento completamente
especificado o cuando solo se especifica la posicin).
6.5.2.2 Control en el espacio operacional con
correccin en el espacio operacional (segundo
caso)
Este tipo de control resulta interesante cuando el robot
interacta con el ambiente, por ejemplo en tareas que requieran ejercer un esfuerzo sobre algn tipo de material
(control de fuerza). A partir del modelo cinemtico directo
se tiene:
X& = Jq&
(83)
Derivando esta ecuacin:
&& = Jq&& + Jq
&&
X

(84)

Reemplazando en la ecuacin general del modelo dinmico inverso (ecuacin (64)) se obtiene:
&& - Jq
& & )+H
(85)
= A J 1 ( X
Igualmente que para el caso en el espacio articular, una
ley de control que linealice y desacople las ecuaciones del
robot puede escribirse como:
& & ) + H
(86)
= A J 1 (w (t )- Jq

119

Para el caso de una buena estimacin de los parmetros


del robot A A; H H , el sistema puede ser gobernado por

una ecuacin con doble integrador como se muestra en la


siguiente ecuacin:

&& = w (t )
X

(87)

Existen varias soluciones para el controlador. Si se aplica un corrector PD, con el movimiento deseado completamente especificado se obtiene:
&& d + K (X& d - X& )+ K (X d - X )
w (t )= X
(88)
v

Con esta ley, teniendo como hiptesis una modelizacin


perfecta y errores iniciales nulos, el comportamiento del
robot es descrito por:
(89)
e&&x + K v e& x + K p e x = 0
siendo: e x = X d - X

El esquema del controlador ser:

X& = J q&

X = f (q)

d
X&

+
&& d
X

Kp
+
Kv

MGD

+ ++

J(q)-1

A (q )

Robot

q&

Algoritmo de
NewtonEuler

H (q,q& )

J& q&

Figura 6.8. Control en el espacio operacional con


movimiento completamente especificado.

Si solamente se especifica la posicin deseada, lo cual


lleva a un control ms simple, se tendr el siguiente esquema:
120

X& = J q&

X = f (q)

Kp
+
Kv

MGD

+ ++

J(q)-1

A (q )

Robot

q&

Algoritmo de
NewtonEuler

H (q,q& )

J& q&

Figura 6.9. Control en el espacio operacional con solo el movimiento especificado.

Tngase en cuenta que ahora los valores de las ganancias proporcionales y derivativas a sintonizar son tres por
cada dimensin, independiente del nmero de articulaciones del robot. Es decir se sintonizarn los errores en los
ejes x, y e z, y no errores por cada articulacin. Esto hace
que el proceso de sintonizacin sea ms simple, aunque la
construccin del controlador total es ms compleja debido
a la presencia de la Jacobiana.

121

7. S IMULACIN DE SISTEMAS ROBTICOS


7.1 Aspectos iniciales
En este captulo se vern diversas implementaciones de
los controladores vistos, en el ambiente Matlab/Simulink.
Los archivos a los cuales hacen referencia los ejemplos que
se mostrarn pueden ser bajados de la siguiente direccin:

www.ai.unicauca.edu.co/Robotica
Los diferentes bloques de Simulink que se utilizarn son:

Men Sources:
From Workspace: Bloque que introduce en la simulacin
valores previamente cargados en memoria, por ejemplo las
consignas.
Men Sinks:
To Workspace: Bloque que enva al espacio de trabajo
las variables definidas en este bloque.
Scope: Osciloscopio que muestra las seales de entrada.
El orden de las seales segn el color es: primera seal
(amarillo); segunda seal (fucsia); tercera seal (azul claro);
cuarta seal (rojo); quinta seal (verde); sexta seal (azul
oscuro); etctera.
XY Graph: Osciloscopio que muestra la seal X sobre Y.

123

Men Signal Routing:


Mux: Multiplexor que toma varias seales y reagrupa en
la salida una sola. Por defecto tiene dos entradas pero puede cambiarse al nmero de entradas necesarias.
Demux: Demultiplexor que recibe una sola seal y deriva de aqu varias seales de salida. Por defecto entrega dos
seales pero puede cambiarse al nmero de salidas necesarias.
Men Math Operations:
Sum: Bloque que suma dos entradas por defecto. Puede
cambiarse a la suma de varias entradas (+ + +...), o a un
restador (+ ), as como el tipo de forma del bloque (circular
o rectangular).
Gain: Bloque de ganancia que multiplica la entrada por
el valor escalar de ganancia definido.
Men Continuous:
Derivative: Deriva la seal de entrada.
Integrator: Integra la seal de entrada.
Men Discrete:
Zero-Order Hold: Retenedor de orden de cero que simula
la presencia de conversores anlogo-digital o digitalanlogo.
Men Ports & Subsystems:
Subsystem: Subsistema que agrupar diferentes bloques con el fin de organizar de mejor manera el sistema
completo.
In1: Entrada del subsistema. Si se necesitan ms entradas se deben realizar copias de sta.
Out1: Salida del subsistema. Si se necesitan ms salidas se deben realizar copias de sta.
Men User-Defined Functions:
MATLAB Fcn: Funcin definida por el usuario. Aqu
normalmente se define el modelo dinmico inverso (MDI),
as como los modelos geomtricos, la Jacobiana, etctera.
124

S-Function: Funcin definida por el usuario, implicando


estados y derivadas. Aqu normalmente se define el modelo
dinmico directo del robot (MDD).
El sistema de control para un robot en Simulink constar de lo siguiente:

Consignas: Las consignas se definen en Simulink


con los bloques From Workspace. Es necesario cargar estas consignas antes de realizar la simulacin.
Modelo matemtico del robot: Est representado
por el modelo dinmico directo del robot, el cual se
define en un archivo y es llamado por la S-Function.
El nombre del archivo para el ejemplo es scara_directo1.m.
Controlador: El cual puede ser tipo PID o CTC (o
algn otro controlador avanzado). Si el controlador
involucra el modelo del robot, como es el caso del
CTC, este modelo se define por medio de la MATLAB
Fcn. El archivo representar el modelo dinmico inverso del robot y para el ejemplo se llama scara_inverso1.m.
Error cartesiano o articular: Es la herramienta que
permite alcanzar los requerimientos del problema
planteado. Estos errores se ven en un osciloscopio a
travs de una funcin que entrega la diferencia entre las seales deseadas y las medidas. Estas seales son articulares para el caso del error articular y
cartesianas para el caso del error cartesiano.

Consignas:
En los ejercicios desarrollados en este libro se tratarn
las siguientes consignas:

Consigna grado cinco: Consigna articular de quinto


grado.
Consigna circular: Consigna circular cartesiana.
Consigna lineal: Consigna lineal cartesiana con
cambio de direccin.
A continuacin se mostrarn cada una de estas consignas.
125

a) Consigna de grado cinco: Es una consigna de quinto


grado que se define para cada una de las articulaciones del
robot, sean rotoides o prismticas. El nombre del archivo
es grado_cinco.m, y su cdigo para una articulacin es:

% Tiempo de muestreo:
Tem=0.001;
% Posicin inicial y final (en radianes):
Qiniti = 0.0;
Qfini = 1.0;
% Tiempo final de la trayectoria:
Tfini=1.0;
% Clculo de la distancia a recorrer:
delta_pos=Qfini-Qiniti;
% Puntos de quiebre:
t1=0;
t2=Tfini;
t3=2*Tfini;
t4=Tfini;
% Calculo del nmero de muestras:
nbech=1000;
instant=[0.001:Tem:1]';
xt=0;
temps=0;
p=[]';
% Construccin de los vectores para la simulacin:
for g=1:1:nbech
p(g)=xt;

126

if (temps<=t2)
ti=t1;
a0=Qfini*(10*(temps/Tfini)^3 - 15*(temps/Tfini)^4 +
6*(temps/Tfini)^5);
elseif (temps<=t3)
ti=t2;
a0=Qfini;
end
xt=a0;
temps=temps+Tem;
end
qd_1 = p';
%Consigna articular:
cons1 = qd_1;
La forma de la consigna es:
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

100

200

300

400

500

600

700

800

900

1000

Figura 7.1. Consigna de quinto grado.

Obsrvese que la consigna se realiza durante 1 segundo.


Como el tiempo de muestreo se ha definido en 0.001 segundos, el tamao del vector cons1 ser de 1000x1 (mil
filas, una columna). Importante a retener: tiempo de muestreo, vector con la base de tiempo de la trayectoria (instant), y vector con la consigna (cons1).
127
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

El archivo permite cambiar el punto inicial y final de la


trayectoria as como el tiempo final. Los puntos de quiebre
permiten variar la pendiente de la trayectoria.
b) Consigna circular: Es una consigna que se define sobre dos ejes, normalmente x e y. Permite dibujar un crculo
de radio y centro definidos por el usuario. Se debe tener en
cuenta el espacio de trabajo del robot, pues fuera de este
espacio el robot no podr seguir la trayectoria. El nombre
del archivo es Circular.m y su cdigo es:

% Tiempo de muestreo y duracin final de la trayectoria:


Tfinal=3.0;
Tem=0.001;
% Clculo del nmero de muestras:
nbech=(Tfinal/Tem)+1;
if ((round(nbech)-nbech) == 0)
instant=[0:Tem:Tfinal]';
else
nbech=nbech+1;
instant=[0:Tem:Tfinal+Tem]';
end
t=0;
for h=1:1:nbech
t=t+Tem;
x1(h)=0.05*sin(2*pi*1/Tfinal*t);
y1(h)=0.05*cos(2*pi*1/Tfinal*t);
end
x1=x1';
y1=y1';
%-------------------cons1= 0.4 + x1;
cons2= 0.3 + y1;
cons3=0.5*ones(3001,1);

128

La forma de la consigna es:


>>plot(cons1,cons2)
0.46

0.44

0.42

0.4

0.38

0.36

0.34
0.34

0.36

0.38

0.4

0.42

0.44

0.46

Figura 7.2. Consigna circular.

La consigna circular se construye siguiendo una seal


senoidal en x y cosenoidal en y. En este caso la amplitud
de cada seal determina el radio del crculo, 5 centmetros
en el ejemplo. Obsrvese que el tiempo final de la trayectoria afecta la frecuencia de la seal senoidal y cosenoidal
(sen(t) = sen(2ft)). El centro del crculo se define al final,
en el ejemplo se ubica en la posicin (0.4, 0.3). La posicin
en el eje z se mantiene constante, a 50 centmetros de la
base del robot. Si el tiempo final cambia (si el crculo se
hace ms rpido o ms despacio), se debe cambiar tambin
el tamao del vector cons3 para hacerlo igual a los otros
dos vectores de consigna (x e y).
c) Consigna lineal: Esta consigna cartesiana definida
sobre los ejes x e y exige bastante del controlador ya que la
direccin de la recta se cambia bruscamente, siendo afectada por las inercias del movimiento. El nombre del archivo
es lineal.m y su cdigo es:

129

% Tiempo de muestreo y duracin final de la trayectoria:


Tfinal=3.0;
Tem=0.001;
% Clculo del nmero de muestras:
nbech=(Tfinal/Tem)+1;
if ((round(nbech)-nbech) == 0)
instant=[0:Tem:Tfinal]';
else
nbech=nbech+1;
instant=[0:Tem:Tfinal+Tem]';
end
% Definicin de la base de tiempo:
instant = instant(1:3000,:);
% Definicin de las dos lneas:
t=0;
for h=1:1:1500
t=t+Tem;
x1(h)=t;
y1(h)=t;
end
t=1.5;
for h=1:1:1500
t=t+Tem;
x2(h)=-t + 3.0;
y2(h)= t;
end
xx = [x1 x2];
yy = [y1 y2];
xx = xx';
yy = yy';
%------------------- 130

cons1= 0.35 + 0.01*xx;


cons2= 0.35 + 0.01*yy;
cons3= 0.4*ones(3000,1);
La forma de la consigna es:
>>plot(cons1,cons2)
0.38

0.375

0.37

0.365

0.36

0.355

0.35
0.35

0.352

0.354

0.356

0.358

0.36

0.362

0.364

0.366

Figura 7.3. Consigna lineal con cambio de direccin.

Varios cambios son posibles con las tres consignas vistas:


Consigna de grado cinco:
Tiempo final: Tfini 1.
Valor final de la posicin: Qfini 1
Diferente pendiente de la trayectoria: Cambiar la
proporcin entre los puntos de quiebre.
Consigna circular:
Tiempo final: Tfini 3. Se pueden programar diferentes tiempos para la realizacin de la consigna
circular. Obsrvese que la cons3 (al final del programa) es una seal constante igual a 0.5 y definida
como un vector de 3001 filas. Sin embargo si se
cambia el tiempo final el tamao del vector debe
cambiar tambin. Por ejemplo si la consigna se hace
131

en 5 segundos, el vector deber ser definido como


5001x1.
Amplitud de la seal: El radio del crculo depende
de la amplitud de las seales seno y coseno. Esta
amplitud est definida en metros. Las dos amplitudes deben ser iguales, en caso contrario se obtiene
una elipse.
Centro del crculo: Se define con los valores presentes en cons1 y cons2.
Consigna lineal:
Tiempo final: Tfini 3. Se pueden programar diferentes tiempos para la realizacin de la consigna lineal. Obsrvese que la cons3 (al final del programa)
es una seal constante igual a 0.5 y definida como
un vector de 3001 filas. Sin embargo si se cambia el
tiempo final, el tamao del vector debe cambiar
tambin, igual que en el caso anterior. Igualmente
debe cambiarse el tamao del vector en la definicin
de la base de tiempo (variable instant).
Punto de inicio de la trayectoria: Se define con los
valores presentes en cons1 y cons2.
Forma de la seal: La seal est conformada por
dos lneas que forman un ngulo entre s. Esto depende de dos bucles for as:
t=0;
for h=1:1:X
t=t+Tem;
x1(h)=t;
y1(h)=t;
end
t=Y;
for h=1:1:X
t=t+Tem;
x2(h)=-t + Tfinal;
y2(h)= t;
end

132

Donde X indica el nmero de muestras que hay hasta


llegar a la mitad de la trayectoria (para 3 segundos hay
1500 muestras); Y indica la mitad del tiempo total (para 3
segundos es 1.5); y en la segunda parte de la trayectoria
debe colocarse de nuevo el tiempo final.

7.2 Simulacin de controladores


En esta seccin se vern cinco controladores, aplicados
a un robot SCARA de cuatro grados de libertad. Los valores
de los parmetros geomtricos y dinmicos supuestos para
este robot se muestran en la siguiente tabla.

Tabla 3. Valores geomtricos y dinmicos supuestos para


un robot SCARA.
0.063 ZZR3
0.1
ZZR1
3.38 ZZR2
MXR2
0.242 MXR3
0.2 MY2
0.001
MYR3
0.1 M4
1.8 IA3
0.045
IA4
0.045 D2
0.5 D3
0.3
Tener en cuenta que todos los archivos que van a ser
tratados deben ubicarse en la misma carpeta y el path de
Matlab debe estar situado sobre ella.

7.2.1 Simulacin de un control PID articular


La consigna deseada est definida en el archivo grado_cinco.m, donde aparecen cuatro trayectorias de quinto
grado, iniciando todas en cero radianes y finalizando en
valores entre 0.8 y 1.5 radianes. Estas consignas se muestran a continuacin:

133

1.5
Articulacin 1
Articulacin 2
Articulacin 3
Articulacin 4

Consignas (rads)

0.5

100

200

300

400
500
600
Tiempo (ms)

700

800

900

1000

Figura 7.4. Consignas articulares para un robot SCARA.

El esquema del sistema completo en Simulink es:


Y(4,1)
[i nstant qd_1]
q1d

Mux

pos

Consignas

[i nstant qd_2]

scara_directo

Torques

q2d

Zero-Order
Hold

Pos/Vel

[i nstant qd_3]

pos

Dem ux

MDD

vel
vel

Control PID

q3d
[i nstant qd_4]
q4d

Zero-Order
Hold1

Figura 7.5. Esquema del control PID articular

Y el bloque del control PID:


1
Consignas
-KKp

1
s

-K-

1
Torques

Integrator

Ki
du/dt
Derivative

-K-

Dem ux

2
Pos/Vel

Sum 3
Kd

Figura 7.6. Esquema del bloque controlador PID.


134

Las consignas estn construidas con bloques From


Workspace, con los siguientes valores internos:

Data: [instant qd_1]


Sample time: Tem
La variable instant est definida en la trayectoria grado_cinco.m como se vio anteriormente, la cual define la
base de tiempo. Las posiciones articulares deseadas estn
contenidas en qd_1, qd_2, qd_3 y qd_4, y Tem se refiere al
tiempo de muestreo, el cual ser definido despus en un
archivo general de inicializacin.
Sintonizando el controlador con los siguientes valores se
obtiene errores articulares de menos de 1 mili radin. Se
muestra adems el archivo inicio.m que debe ser construido con el fin de inicializar las variables del proceso:

clear all;
clc;
% Tiempo de muestreo
Tem=0.001;
% Trayectoria deseada:
grado_cinco;
% Valores articulares iniciales para el SCARA:
QI = [0;0;0;0];
% Ganancias del controlador PID:
KP1=60000;
KV1=70;
KI1=0;
KP2=20000;
KV2=50;
KI2=0;

135

KP3=40000;
KV3=50;
KI3=0;
KP4=50000;
KV4=100;
KI4=0;
Los errores articulares obtenidos son:
-4

x 10

Articulacin 1
Articulacin 2
Articulacin 3
Articulacin 4

Error articular (rads)

4
2
0
-2
-4
-6
-8
0

100

200

300

400
500
600
Tiempo (ms)

700

800

900

1000

Figura 7.7. Error articular del control PID.

Ejercicio 7.1:
Sintonizar el controlador PID articular con el fin de obtener errores articulares menores de 3x10-4.
7.2.2 Simulacin de un control CTC articular
El control CTC involucra el modelo de la planta, representado por el modelo dinmico inverso (archivo scara_inverso1.m). Teniendo las mismas consignas del caso
anterior, el esquema de esta estrategia es:

136

Y(4,1)

[instant qd_1]

pos

q1d

Mux

Consignas

MATLAB
Function

Mux

Torques

[instant qd_2]

Zero-Order
Hold

MDI

Pos/Vel

q2d
[instant qd_3]

Demux

scara_directo1
MDD

pos

vel
vel

Control CTC

q3d
[instant qd_4]
q4d

Zero-Order
Hold1

Figura 7.8. Esquema del control CTC articular.

El bloque MDI tiene 12 entradas: 4 posiciones, 4 velocidades y 4 aceleraciones. Por lo tanto al dar doble click sobre l debe colocarse el llamado a la funcin respectiva as:
scara_inverso1(u(1),u(2),u(3),u(4),u(5),u(6),u(7),u(8),u(9),u(10),
u(11),u(12))
El bloque del control CTC es:

entrada1
4

-K-

Ganancia posicion
4

4
4

Demux

1
salida

entrada2
4

-K-

Ganancia velocidad
Sum3

Figura 7.9. Esquema del bloque controlador CTC.

Sintonizando el controlador con los siguientes valores se


obtiene errores articulares de menos de 15 mili radianes.
El archivo inicio.m es el mismo que en el caso anterior,
solamente cambian las ganancias de los controladores fijadas en los siguientes valores:

137
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

% Ganancias del controlador CTC:


KP1=2500000;
KV1=1300;
KP2=2400000;
KV2=1200;
KP3=2700000;
KV3=1400;
KP4=2500000;
KV4=1400;
Los errores articulares son:
-4

16

x 10

14

Error articular (rads)

12
10
8
6
4
2

Articulacin 1
Articulacin 2
Articulacin 3
Articulacin 4

0
-2

100

200

300

400
500
600
Tiempo (ms)

700

800

900

1000

Figura 7.10. Error articular del control CTC.

Ejercicio 7.2:
Sintonizar el controlador CTC articular con el fin de obtener errores articulares menores de 5x10-4.
7.2.3 Simulacin de un control PID cartesiano
La consigna deseada est definida ahora en el archivo
circular.m, equivalente a un crculo de 5 centmetros de

138

radio centrado en (0.4, 0.3). El esquema de sistema completo en Simulink es:


Y(4,1)

[instant cons1]

4
4

Posicion deseada 1
[instant cons2 ]
Posicion deseada 2
[instant cons3 ]

Mux

MATLAB
Function

MGI

salida
8

Control
PID

scara_directo

Zero-Order
Hold

entrada2

Posicion deseada 3

Pos
Posiciones

entrada1

8
8

Demux

mod_directo

Vel
Velocidades

8
8

Zero-Order
Hold1

xr
To Workspace
yr

To Workspace1

MATLAB
Function
Dif Circular

em

MAT LAB
Function

Art --> Cart

E Cartesiano
Terminator2

Figura 7.11. Esquema del control PID cartesiano.

El bloque del control PID es igual al del caso del control


articular. Sin embargo para este nuevo controlador, la seal definida en el espacio cartesiano debe ser transformada
al espacio articular por medio del bloque del modelo geomtrico inverso (MGI). Es decir la seal de tres dimensiones de la consigna circular (x, y, z) se convertir a una
consigna articular en q1, q2, q3 y q4 para el robot SCARA.
Al dar doble clic sobre la MATLAB Fcn del modelo geomtrico inverso y dado que este bloque cuenta con tres entradas, se hace el llamado a la funcin respectiva as:

mgi_scara(u(1),u(2),u(3))
Es decir este bloque llama al archivo mgi_scara.m, el
cual debe haber sido escrito con anterioridad. El archivo
contiene el modelo geomtrico inverso del SCARA, el cual
se escribe:

function salida = mgi_scara(x1,x2,x3)


% Modelo geomtrico inverso del SCARA de cuatro ejes:
% Valores constantes:
D2 = 0.5;
D3 = 0.3;
139

sy = 0;
sx = 1;
C2 = (x1^2 + x2^2 - D2^2 - D3^2)/(2*D2*D3);
B1 = D2 + D3*C2;
% Valor de la segunda articulacin:
q2 = atan2((-sqrt(1 - C2^2)),C2);
B2 = D3*sin(q2);
S1 = (B1*x2 - B2*x1)/(B1^2 + B2^2);
C1 = (B1*x1 + B2*x2)/(B1^2 + B2^2);
% Valor de la primera articulacin:
q1 = atan2(S1,C1);
% Valor de la tercera articulacin:
q3 = atan2(sy,sx) - q2 - q1;
% Valor de la cuarta articulacin:
q4 = x3;
salida = [q1 q2 q3 q4];
Igualmente esta estrategia de control debe involucrar el
modelo geomtrico directo (MGD), ya que las seales que
entrega el robot son articulares y deben transformarse en
seales cartesianas para ser comparadas con las consignas
iniciales. En la MATLAB Fcn que contiene al MGD se escribe:

mgd_scara(u(1),u(2),u(3),u(4))
El archivo mgd_scara.m tiene el respectivo modelo:

function salida = mgd_scara(q1,q2,q3,q4)


% Modelo geomtrico directo del SCARA de cuatro ejes:
% Valores constantes:
D2 = 0.5;
140

D3 = 0.3;
% Matriz de transformacin 0T4 (modelo geomtrico directo):
TTT = [cos(q1+q2+q3) -sin(q1+q2+q3) 0 (D3*cos(q1+q2) +
D2*cos(q1));
sin(q1+q2+q3) cos(q1+q2+q3) 0 (D3*sin(q1+q2) +
D2*sin(q1));
0 0 1 q4;
0 0 0 1];
% Valores de la cuarta columna:
xa = TTT(1,4);
ya = TTT(2,4);
za = TTT(3,4);
salida = [xa ya za];
Para hallar el error cartesiano se utiliza el bloque Dif
Circular, el cual contiene el archivo Diferencia.m. En este
archivo se realiza un clculo del mdulo de los errores
cuadrticos en cada eje, entregando la diferencia entre el
crculo deseado y el crculo obtenido. Su cdigo es:

function dif = diferencia(a1,a2,a3,a4)


d=abs(sqrt((a1 - a3)^2 + (a2 - a4)^2));
dif = d;
Obsrvese que entran cuatro seales que deben ser correctamente conectadas:
a1:
a2:
a3:
a4:

x deseada (cons1 en el esquema).


y deseada (cons2 en el esquema).
x obtenida (xr en el esquema).
y obtenida (yr en el esquema).

141

Hay un aspecto muy importante a tener en cuenta con


una consigna cartesiana. Como ella inicia en un punto
especfico del espacio de tres dimensiones, el robot no puede iniciar con una posicin articular de [0; 0; 0; 0] radianes, pues esto implicara que en un tiempo infinitesimal el
robot salte de esa posicin inicial en cero radianes hasta la
posicin articular definida para la trayectoria deseada. Por
lo tanto se debe asegurar que el robot se ubique en la posicin de inicio de la trayectoria deseada.
Sabiendo que la trayectoria circular inicia en la posicin
(0.4, 0.35) en la parte superior del crculo, a partir de MATLAB se puede hallar la posicin articular inicial correspondiente as:

>> mgi_scara(0.4, 0.35, 0.5)


>> ans =
1.3059 -1.7636 3.5992 0.5000
Esto significa que para iniciar la trayectoria circular definida, el robot se debe ubicar inicialmente en [1.3059; 1.7636; 3.5992; 0.5000] para evitar un salto perjudicial
para la mecnica del mismo.
Otra forma de hallar estos valores es colocar un llamado
al MGI directamente en el archivo de inicio y despus de
haber cargado la trayectoria deseada. Es decir primero se
carga la consigna circular y despus se coloca la siguiente
lnea de clculo:

QI = mgi_scara(cons1(1),cons2(1),cons3(1))
El archivo inicio.m se escribe entonces:

% Inicio control PID SCARA 4 Ejes:


clear all
close all
clc

142

% Definicin del tiempo de muestreo:


Tem = 0.001;
% Definicin de la trayectoria:
circular;
% Definicin del punto articular de inicio:
QI = [1.3059 -1.7636 3.5992 0.5000];
% Definicin de las ganancias del controlador:
KP1=220000;
KV1=150;
KI1=1000;
KP2=280000;
KV2=170;
KI2=1000;
KP3=80000;
KV3=120;
KI3=1000;
KP4=200000;
KV4=250;
KI4=10000;
El error articular es:

143

-3

1.5

x 10

Articulacin 1
Articulacin 2
Articulacin 3
Articulacin 4

Error articular (rads)

0.5

-0.5

-1

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.12. Error articular PID cartesiano.

En este caso se utilizan las grficas del error articular


para realizar una sintona fina sobre cada articulacin.
Recordar que sobre el osciloscopio de MATLAB, la grfica
amarilla corresponde a la primera articulacin, la fucsia a
la segunda, la azul a la tercera y la roja a la cuarta. El
error cartesiano es menor a 4.5x10-4 metros:
-4

4.5

x 10

Error cartesiano (m)

3.5
3
2.5
2
1.5
1
0.5
0

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.13. Error cartesiano PID cartesiano.

Con el siguiente comando se puede observar al mismo


tiempo la consigna deseada y la consigna obtenida:

144

>> plot(cons1,cons2);hold on;plot(xr,yr,'r')


Esta orden lo que hace es dibujar en azul (color por defecto) la consigna deseada, y en rojo la seal obtenida (de
ah la letra r, red). Otros colores pueden ser g (green), k
(black), c (cyan), etctera.
Haciendo un zoom al inicio de la trayectoria se puede
observar la diferencia entre las dos seales:
Consigna
Seal obtenida

0.351
0.3505
0.35

Eje Y (m)

0.3495
0.349
0.3485
0.348
0.3475
0.347
0.3465
0.346
0.398

0.4

0.402

0.404

0.406
0.408
Eje X (m)

0.41

0.412

0.414

Figura 7.14. Consigna circular deseada y obtenida


con el PID cartesiano.

Ejercicio 7.3:
Sintonizar el controlador PID cartesiano con el fin de obtener un error cartesiano menor de 1x10-4 metros (100
micras).
7.2.4 Simulacin de un control CTC cartesiano
El control CTC involucra el modelo de la planta, representado por el modelo dinmico inverso (archivo scara_inverso1.m). Teniendo la misma consigna circular del
caso anterior, el esquema de esta estrategia es:

145

Y(4,1)
[instant cons1]

4
4

Posicion deseada 1
[instant cons2 ]

Mux

MAT LAB
Function

MGI

Posicion deseada 2

salida
8

[instant cons3 ]

Mux

12

MAT LAB
Function

scara_directo1

Zero-Order
Hold2

MDI

entrada2

8
8

Demux

mod_directo

Vel
Velocidades

CTC

Posicion deseada 3

Pos
Posiciones

entrada1

8
8

Zero-Order
Hold1

x1

em

To Workspace
4

MATLAB
Function
Dif Circular

y1
E Cartesiano

MATLAB
Function
MGD

4
4

Zero-Order
Hold3

T erminator

T o Workspace1

Figura 7.15. Esquema control CTC cartesiano.

El bloque MDI y el subsistema del control CTC son los


mismos que los utilizados para el controlador CTC en el
espacio articular. De nuevo la diferencia ahora est en las
consignas (tres seales), que deben ser transformadas en
consignas articulares (cuatro seales) a travs del modelo
geomtrico inverso (MGI).
El archivo inicio.m es:

% Inicio control CTC SCARA 4 Ejes:


clear all
close all
clc
% Definicin del tiempo de muestreo:
Tem = 0.001;
% Definicin de la trayectoria:
circular;
% Definicin del punto articular de inicio:
QI = [1.3059 -1.7636 3.5992 0.5000];
% Definicin de las ganancias del controlador:
146

KP1=125000;
KV1=250;
KP2=140000;
KV2=200;
KP3=150000;
KV3=1000;
KP4=120000;
KV4=700;
El error articular es:
-3

x 10

Articulacin 1
Articulacin 2
Articulacin 3
Articulacin 4

Error articular (rads)

-1

-2

-3

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.16. Error articular CTC cartesiano.

El error cartesiano es menor a 4x10-4 metros:

147
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

-4

x 10

Error cartesiano (m)

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.17. Error cartesiano CTC cartesiano.

Haciendo un zoom al inicio de la trayectoria se puede


observar la diferencia entre las dos seales:

Consigna
Seal obtenida

0.351
0.3505
0.35

Eje Y (m)

0.3495
0.349
0.3485
0.348
0.3475
0.347
0.3465
0.346
0.398

0.4

0.402

0.404

0.406
0.408
Eje X (m)

0.41

0.412

0.414

Figura 7.18. Consigna circular deseada y obtenida


con el CTC cartesiano.

Ejercicio 7.4:
Sintonizar el controlador CTC cartesiano con el fin de
obtener un error cartesiano menor de 1x10-4 metros (100
micras).

148

7.2.5 Simulacin de un control CTC operacional


Como se vio en la parte terica, este controlador no
transforma las consignas cartesianas en consignas articulares, sino que directamente implementa el controlador en
el espacio operacional o cartesiano. Esto implica utilizar
varias funciones adicionales, implementadas todas en los
bloques MATLAB Fcn. Estas funciones adicionales son:
Jacobiana inversa: Contenida en el archivo Jinv.m. Este
archivo tiene 7 entradas: tres vectores de control (uno por
cada dimensin) y las cuatro posiciones articulares de salida, las cuales son utilizadas para hallar la Jacobiana. El
cdigo es:

function salida = Jinv(w1,w2,w3,q1,q2,q3,q4)


% Inversa de la matriz Jacobiana, multiplicada por el vector de control:
q = [q1 q2 q4]';
w = [w1 w2 w3]';
D2 = 0.5;
D3 = 0.3;
t1 = q1;
t2 = q2;
% Matriz Jacobiana (3x3):
J = [-(D3*sin(t1+t2)+D2*sin(t1)) -D3*sin(t1+t2) 0;
D3*cos(t1+t2)+D2*cos(t1) D3*cos(t1+t2) 0;
0 0 -1];
% Inversa de la Jacobiana:
J1 = inv(J);
% Producto de la Jacobiana inversa por el vector w:
Producto = J1*w;
Vector = [Producto(1,1);Producto(2,1);0;Producto(3,1)];
149

salida = Vector;
Posicin cartesiana: Contenida en el archivo Xpunto.m.
El archivo tiene 8 entradas: cuatro posiciones articulares y
cuatro velocidades articulares, todas tomadas desde la
salida. Con las posiciones articulares se halla la Jacobiana
y luego sta se multiplica por el vector de velocidades articulares con el fin de obtener X& . El cdigo es:
function salida = Xpunto(q1,q2,q3,q4,qp1,qp2,qp3,qp4)
% Velocidad cartesiana X mayscula: incluye a x punto, y
punto, z punto.
qp = [qp1 qp2 qp4]';
D2 = 0.5;
D3 = 0.3;
t1 = q1;
t2 = q2;
% Matriz Jacobiana (3x3):
J = [-(D3*sin(t1+t2)+D2*sin(t1)) -D3*sin(t1+t2) 0;
D3*cos(t1+t2)+D2*cos(t1) D3*cos(t1+t2) 0;
0 0 -1];
% Clculo de Xpunto = J*Qpunto (modelo cinemtico directo):
A = J*qp;
salida = A;
Derivada de la Jacobiana por la velocidad articular:
Contenida en el archivo JpQp.m. El archivo tiene 8 entradas: cuatro posiciones articulares y cuatro velocidades articulares, todas tomadas desde la salida. La Jacobiana se
150

obtiene gracias a las posiciones articulares y luego debe ser


derivada. El cdigo es:
function salida = JpQp(q1,q2,q3,q4,qp1,qp2,qp3,qp4)
% Multiplicacin de Jpunto por Qpunto:
% Derivada de la matriz Jacobiana:
persistent JK_1;
if isempty(JK_1),
JK_1 = zeros(3,3);
end
qp = [qp1 qp2 qp4]';
D2 = 0.5;
D3 = 0.3;
t1 = q1;
t2 = q2;
% Matriz Jacobiana (3x3):
J = [-(D3*sin(t1+t2)+D2*sin(t1)) -D3*sin(t1+t2) 0;
D3*cos(t1+t2)+D2*cos(t1) D3*cos(t1+t2) 0;
0 0 -1];
% Derivacin numrica :
Jp = ((J - JK_1)/0.001);
% Actualizacin de la matriz J:
JK_1 = J;
% Clculo de Jp*Qp:
A = Jp*qp;
151

salida = A;
El esquema en Simulink de este controlador puede verse a continuacin. Se recomienda compararlo detalladamente con aquel presentado en la parte terica con el fin
de comprender bien lo que se est implementando.
Y(4,1)
[instant cons1]

4
4

Posicion deseada 1
[instant cons2 ]

Mux

7
4

MATLAB
Function

Mux

12

MATLAB
Function
MDI

Jinv

-K-

8
8

scara_directo1

Zero-Order
Hold

Demux

mod_directo

Vel
Velocidades

Gain1

Posicion deseada 3

Pos
Posiciones

Gain 3

Posicion deseada 2
[instant cons3 ]

3 -K-

3
3

8
8

Zero-Order
Hold1

MATLAB
Function

Jpunto Qpunto

3
4

MATLAB
Function

xr

Diferencia

To Workspace

E Cartesiano

MATLAB
Function

4
4

Zero-Order
Hold2

MGD

yr

MATLAB
Function

Xpunto

To Workspace1
Terminator

Figura 7.19. Esquema control CTC operacional.

El archivo inicio.m es similar al del control CTC cartesiano, utilizndose las siguientes ganancias del controlador:
KP1=125000;
KV1=250;
KP2=140000;
KV2=200;
KP3=150000;
KV3=1000;
Nota: Debido a la necesidad de calcular la matriz Jacobiana, este controlador no puede funcionar si los valores
iniciales de las articulaciones estn en cero radianes. Por lo
tanto debe encontrarse el valor correcto o aproximado de
QI antes de correr el programa en Simulink. Es decir

152

hallar QI como se hizo en los ejemplos del PID y del CTC


cartesiano. Obsrvese que ahora se tienen tres ganancias
proporcionales y tres derivativas, una por cada eje (x, y, z).
La sintonizacin buscar entonces disminuir el error por
cada eje y no por cada articulacin, como se haca antes.
El error articular obtenido es:
-4

x 10

Eje x
Eje y
Eje z

Error articular (rads)

3
2
1
0
-1
-2
-3

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.20. Error articular CTC operacional.

Con este controlador se obtiene un error cartesiano menor a 4x10-4 metros:


-4

x 10

Error cartesiano (m)

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.21. Error cartesiano CTC operacional.

153

Haciendo un zoom al inicio de la trayectoria se puede


observar que la diferencia entre las dos seales es mnima.
Este controlador es ms preciso que el CTC cartesiano, ya
que con los mismos valores de ganancias se obtiene un
menor error. Sin embargo la complejidad del controlador
aumenta considerablemente al involucrarse diversas funciones que trabajan la matriz Jacobiana.
Consigna
Seal obtenida
0.351

Eje Y (m)

0.35

0.349

0.348

0.347

0.346
0.398

0.4

0.402

0.404

0.406
0.408
Eje X (m)

0.41

0.412

0.414

Figura 7.22. Consigna circular deseada y obtenida


con el CTC operacional.

Ejercicio 7.5:
Sintonizar el controlador CTC operacional con el fin de
obtener un error cartesiano menor de 1x10-4 metros (100
micras).
7.2.6 Simulacin de una consigna lineal con cambio de
direccin
En este caso la trayectoria deseada se llama lineal.m, y los
esquemas de control PID y CTC son los mismos utilizados
para el control cartesiano. Solamente se cambia en el archivo
inicio.m, de consigna circular a consigna lineal, conservndose los valores de las ganancias en los dos casos.
El error cartesiano obtenido para el CTC en el cambio de
direccin es de menos de 6x10-5 metros, estabilizndose en
un valor fijo 100 milisegundos despus. Esto puede observarse en la siguiente figura:
154

-5

x 10

5.5
5

Error cartesiano (m)

4.5
4
3.5
3
2.5
2
1.5
1
1000

1100

1200

1300

1400 1500 1600


Tiempo (ms)

1700

1800

1900

2000

Figura 7.23. Error cartesiano en el cambio de


direccin con el control CTC.

Realizando un zoom sobre el momento del cambio de direccin puede verse como el controlador rpidamente corrige y sigue la trayectoria deseada.
0.3655
Consigna
Seal obtenida

0.3654
0.3653
0.3652

Eje Y (m)

0.3651
0.365
0.3649
0.3648
0.3647
0.3646
0.3645
0.3645

0.3646

0.3647

0.3648
Eje X (m)

0.3649

0.365

0.3651

Figura 7.24. Respuesta a la consigna lineal con cambio


de direccin con el control CTC.

El error cartesiano para el caso del PID es menor a


8x10-5 metros pero mucho ms oscilatorio que el generado
por el CTC, ya que en este caso todava oscila 0.5 segundos
despus del cambio de direccin. Sin embargo, gracias a la
accin integral, el error en estado estacionario es casi nulo
155

antes del cambio de direccin mientras que para el CTC es


cercano a los 2x10-5 metros.
-5

x 10

Error cartesiano (m)

6
5
4
3
2
1
0
1000

1100

1200

1300

1400 1500 1600


Tiempo (ms)

1700

1800

1900

2000

Figura 7.25. Error cartesiano en el cambio de


direccin con el control PID.

La siguiente figura muestra un zoom sobre el momento


del cambio en la direccin de la consigna deseada para el
PID.
0.3655
Consigna
Seal obtenida

0.3654
0.3653
0.3652

Eje Y (m)

0.3651
0.365
0.3649
0.3648
0.3647
0.3646
0.3645
0.3645

0.3646

0.3647

0.3648
Eje X (m)

0.3649

0.365

0.3651

Figura 7.26. Respuesta a la consigna lineal con cambio de


direccin con el control PID.

Ejercicio 7.6:

156

Sintonizar con el fin de disminuir a la mitad los errores


cartesianos producidos por el PID y el CTC frente a una
consigna lineal. Disminuir adems el error en estado estacionario para el CTC y las oscilaciones para el PID.

7.2.7 Comportamiento frente a perturbaciones


Los controladores en robtica aparte de ser utilizados
como seguidores de trayectoria (seis ejemplos vistos anteriormente), se utilizan tambin como reguladores, es decir
sistemas que mantienen una posicin fija determinada.
Esto puede verse como un robot mantenido en una posicin fija por unos instantes (por ejemplo mientras se carga
algn tipo de material en una banda transportadora) y que
en algn momento es sometido a una perturbacin externa
involuntaria (un accidente que arroja un peso sobre el robot). El controlador como regulador debe regresar rpidamente las articulaciones a su posicin fija, produciendo el
menor disturbio posible.
El siguiente ejemplo muestra el comportamiento del
control CTC frente a una perturbacin externa involuntaria, presentada a los 0.3 segundos de iniciada la simulacin. La perturbacin es un pulso de amplitud de 0.2 radianes aplicada a cada una de las cuatro articulaciones del
robot SCARA. El esquema en Simulink es:
Y(4,1)

[instant qd1]

q1d

Mux

4
4

Consignas
Torq

[instant qd2]
q2d

Mux

12

MAT LAB
Function

MDI

Pos/Vel

[instant qd3]

Zero-Order
Hold1

scara_directo1

8
8

mod_inverso

Pos
q1

Demux
4

Vel
q2

CTC

4
4
4

q3d

Scope2

[instant qd4]
q4d

Out1

In1

Perturbaciones

8
8

Zero-Order
Hold2

4
4

Zero-Order
Hold3

Figura 7.27. Esquema del control CTC como regulador.

Este esquema es el mismo utilizado para los controles


articulares, solo que esta vez aparece un bloque de Pertur-

157
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

baciones encargado de introducir los disturbios externos.


Este bloque contiene lo siguiente:
Perturbacion1
Perturbacion2

em
1
Out1

em

1
In1

Perturbacion3

Perturbacion4

Figura 7.28. Esquema de simulacin de las perturbaciones.

Las perturbaciones son inyectadas a las posiciones articulares de realimentacin del sistema. Por el contrario los
datos de velocidad se supone pasan sin inconveniente
hacia la entrada. La perturbacin se simula con un bloque
Pulse Generator con los siguientes parmetros:
Pulse type: Time based
Time (t): use simulation time
Amplitude: 0.2
Periode (secs): 10
Pulse width (% of period): 0.1
Phase delay (secs): 0.3
El archivo inicio_perturbacion.m define las consignas fijas para cada una de las articulaciones del robot. El cdigo
es:
% Inicio regulador CTC para rechazo de perturbaciones:
clear all;
clc;
% Posiciones iniciales fijas:

158

QI=[1.2;0.7;0.5;0.2];
Tem = 0.001;
Tfinal = 1.0;
% Definicin de la base de tiempo;
instant=[0:Tem:Tfinal-Tem]';
% Definicin de los valores fijos de consignas:
qd1
qd2
qd3
qd4

=
=
=
=

1.2*ones(1000,1);
0.7*ones(1000,1);
0.5*ones(1000,1);
0.2*ones(1000,1);

% Ganancias del controlador:


KP1=125000;
KV1=250;
KP2=140000;
KV2=200;
KP3=150000;
KV3=1000;
KP4=120000;
KV4=700;
La siguiente figura muestra la perturbacin sobre las
cuatro articulaciones y como rpidamente, en alrededor de
150 milisegundos, las articulaciones vuelven a su posicin
de reposo.

159

0.3
0.25
0.2

Perturbacin (rads)

0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2

100

200

300

400
500
600
Tiempo (ms)

700

800

900

1000

Figura 7.29. Respuesta a perturbaciones articulares


del control CTC.

Ejercicio 7.7:
Implementar un controlador PID articular y sintonizar
para rechazo de perturbaciones, con el fin de obtener un
resultado similar al obtenido con el CTC articular.
7.2.8 Presencia de errores en el modelo
El xito de un controlador basado en el modelo radica
en un buen conocimiento de los valores de los parmetros
dinmicos, lo que significa haber obtenido previamente
buenos resultados a partir del proceso de identificacin
paramtrica. Pero una identificacin perfecta no es posible,
y siempre existirn diferencias entre el valor real de un
parmetro y su valor identificado o supuesto.
Para evitar estas diferencias entre el modelo real y el
modelo identificado o supuesto, se han diseado una gran
cantidad de soluciones que involucran controladores avanzados como el robusto, el adaptativo, el predictivo, etctera.
Sin embargo, a menos que para una aplicacin industrial
en particular se necesite mejorar notablemente los resultados obtenidos, el control por par calculado visto debera
manejar bastante bien los errores presentes en el modelo.
En esta seccin se ver el comportamiento de un control
CTC cartesiano cuando existen errores del 50% en todos
160

los valores de los parmetros dinmicos. Para esto se disminuye en un 50% los valores obtenidos en la Tabla 3. Los
valores errneos se colocan en el modelo dinmico inverso (archivo scara_inverso1.m), dejndose los valores reales
en el modelo dinmico directo (archivo scara_directo1.m).
Se introducen como consignas a este controlador con
errores en los parmetros, la consigna circular y la consigna lineal con cambio de direccin, vistas anteriormente.
Las siguientes figuras muestran los nuevos errores cartesianos obtenidos.
La Figura muestra el nuevo error cartesiano frente a la
consigna circular. Si se compara este resultado con la Figura puede verse que el error transitorio ha aumentado
desde 3.5x10-4 m hasta casi 5x10-4 m, aunque el error estacionario no presenta cambios aparentes.
Para el caso de la consigna lineal con cambio de direccin, el nuevo error cartesiano llega hasta 8.5x10-5 m,
mientras que anteriormente se haba visto en la Figura que
ste llegaba solo a 5.5x10-5 m. Adems han aumentado
ahora las oscilaciones.
-4

x 10

Error cartesiano (m)

500

1000

1500
Tiempo (ms)

2000

2500

3000

Figura 7.30. Error cartesiano CTC, incluyendo


errores en el modelo.

161

-5

x 10

Error cartesiano (m)

1
1000

1100

1200

1300

1400 1500 1600


Tiempo (ms)

1700

1800

1900

2000

Figura 7.31. Error cartesiano CTC en el cambio de


direccin, incluyendo errores en el modelo.

Los resultados expuestos muestran que el control por


par calculado mantiene relativamente bien sus respuestas
pese a la presencia de hasta un 50% de diferencia entre los
valores reales y los estimados. Si esta diferencia pasa del
80% podr verse que los errores cartesianos empiezan a
ser importantes, y ms del 100% de error producir respuestas completamente oscilatorias. Es en este ltimo caso, cuando el modelo del robot no es conocido con exactitud y la respuesta obtenida dista mucho de lo que se
espera del sistema, cuando se debe recurrir a un controlador ms complejo que tenga en cuenta esta situacin. En
principio un control robusto debera ser capaz de solucionar esta situacin (Siciliano and Khatib, 2008).
Ejemplo 7.1: Implementar un control CTC articular para el
robot de tres grados de libertad con la misma configuracin
de un robot PUMA.
El modelo dinmico inverso de este robot se desarroll
en el Ejemplo 4.3, lo mismo que su modelo dinmico directo (Ejemplo 4.4). ste ltimo se expres de la siguiente
manera:

162

1
0
A11
&&
q1
1
A33
q&& = A 1 - Q = 0

2
2
2
B
q&&3
3 - Q3
A23
0
B

Con:


1
A23

Q2
B 2

A22 3 - Q3
B
0

B = A22 A33 - A232

A11 = ZZR1+ XXR2S 22 + XXR3S 232 - 2MYR3D 3C 2S 23


A22 = ZZR2+ ZZR3 - 2MYR3D 3S 3
A33 = ZZR3+ IA3
A12 = A21 = 0
A13 = A31 = 0
A23 = ZZR3- MYR3D 3S 3
Q1 = 0

Q2 = - G3MXR2C 2+G3MY2S 2+G3MYR3S 23


Q3 = G3MYR3S 23
Para realizar la simulacin de este robot debe crearse el
modelo dinmico directo en una S-Function de MATLAB.
Abrir para esto el archivo scara_directo1.m y en l se crear
el nuevo modelo para el PUMA de tres grados de libertad,
cambindole el nombre por puma_directo.m. En este caso
como el robot tiene tres grados de libertad, el nmero de
entradas es tres, de salidas es seis (tres posiciones y tres
velocidades), y el nmero de estados igualmente seis. En el
archivo abierto cambiar las siguientes lneas:
Lnea 56:
function [sys,x0,str,ts]=mdlInitializeSizes(QI)
sizes = simsizes;
sizes.NumContStates = 6;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 6;
sizes.NumInputs = 3;
163

sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
El vector x0 define los valores iniciales de los estados
definidos. Para las posiciones son los valores definidos para
QI en el archivo de inicio respectivo y para las velocidades
es cero, con el fin de asegurar continuidad en estas seales.
Lnea 73:
x0=[QI(1);QI(2);QI(3);0;0;0];
Se colocan los valores de los parmetros geomtricos y
dinmicos que aparecen en las ecuaciones del modelo
dinmico inverso:
Lnea 93:
G3=9.81;
D3=0.4;
ZZR1=4.25;
ZZR2=1.25;
ZZR3=0.58;
XXR2=0.90;
XXR3=0.40;
MXR2=0.35;
MY2=0.05;
MYR3=0.10;
IA3=0.040;
Se definen luego las entradas (cuplas ) y los estados
del sistema de x(1) a x(6), donde los tres primeros son posiciones articulares y los tres siguientes las velocidades articulares (QPi):
GAM1=u(1);
GAM2=u(2);
GAM3=u(3);
S1=sin(x(1));
164

C1=cos(x(1));
S2=sin(x(2));
C2=cos(x(2));
S3=sin(x(3));
C3=cos(x(3));
QP1=x(4);
QP2=x(5);
QP3=x(6);
Posteriormente se deben escribir las ecuaciones del modelo dinmico directo as:

A11=ZZR1+XXR2*S2^2+XXR3*S23^2-2*MYR3*D3*C2*S23;
A22=ZZR2+ZZR3-2*MYR3*D3*S3;
A33=ZZR3+IA3;
A23=ZZR3-MYR3*D3*S3;
Q2=-G3*MXR2*C2+G3*MY2*S2+G3*MYR3*S23;
Q3=G3*MYR3*S23;
B=A22*A33-A23^2;
QDP1 = 1/A11+GAM1;
QDP2 = (A33/B)*(GAM2-Q2)-(A23/B)*(GAM3-Q3);
QDP3 = -(A23/B)*(GAM2-Q2)+(A22/B)*(GAM3-Q3);
Finalmente se describen y organizan las salidas del sistema:

sys(1)
sys(2)
sys(3)
sys(4)
sys(5)
sys(6)

=
=
=
=
=
=

x(4) ;
x(5) ;
x(6) ;
QDP1;
QDP2;
QDP3;

% end mdlDerivatives
% mdlOutputs
% Return the block outputs.
165

function sys=mdlOutputs(t,x,u)
sys(1)
sys(2)
sys(3)
sys(4)
sys(5)
sys(6)

=
=
=
=
=
=

x(1);
x(2);
x(3);
x(4);
x(5);
x(6);

Se utiliza el mismo esquema del control PID articular


visto anteriormente, con el siguiente archivo de inicio:

clear all
clc
Tem = 0.001;
grado_cinco;
QI = [0;0;0];
KP1=80000;
KV1=100;
KI1=0;
KP2=80000;
KV2=100;
KI2=0;
KP3=80000;
KV3=100;
KI3=0;
Los errores articulares que se obtienen con estos valores
de ganancia son:

166

-4

x 10

Articulacin 1
Articulacin 2
Articulacin 3

1.5

Error articular (rads)

1
0.5
0
-0.5
-1
-1.5
-2
-2.5

100

200

300

400
500
600
Tiempo (ms)

700

800

900

1000

Figura 7.32. Error articular del control PID para el PUMA


de tres grados de libertad.

Si por el contrario se quiere implementar un control


CTC, es necesario en una MATLAB Fcn describir el modelo
dinmico inverso del robot. La ecuacin que describe este
modelo se vio anteriormente y tiene la siguiente forma:

1 A11
= 0
2
3 0

0
A22
A23

0 q&&1 0
A23 q&&2 + Q2
A33 q&&3 Q3

Se construye entonces el archivo puma_inverso.m as:

function GAM =
puma_inverso(pos1,pos2,pos3,vel1,vel2,vel3,w1,w2,w3)
% Definicin de los parmetros geomtricos y dinmicos:
G3=9.81;
D3=0.4;
ZZR1=4.25;
ZZR2=1.25;
ZZR3=0.58;
XXR2=0.90;
XXR3=0.40;
MXR2=0.35;
MY2=0.05;
167
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

MYR3=0.10;
IA3=0.040;
% Definicin de las entradas del sistema:
S1=sin(pos1);
C1=cos(pos1);
S2=sin(pos2);
C2=cos(pos2);
S3=sin(pos3);
C3=cos(pos3);
S23=sin(pos2+pos3);
C23=cos(pos2+pos3);
QP1=vel1;
QP2=vel2;
QP3=vel3;
QDP1=w1;
QDP2=w2;
QDP3=w3;
% Definicin de la matriz de inercia:
A11=ZZR1+XXR2*S2^2+XXR3*S23^2-2*MYR3*D3*C2*S23;
A22=ZZR2+ZZR3-2*MYR3*D3*S3;
A33=ZZR3+IA3;
A23=ZZR3-MYR3*D3*S3;
Q2=-G3*MXR2*C2+G3*MY2*S2+G3*MYR3*S23;
Q3=G3*MYR3*S23;
B=A22*A33-A23^2;
% Modelo dinmico inverso:
GAM1 = A11*QDP1;
GAM2 = A22*QDP2 + A23*QDP3 + Q2;
GAM3 = A23*QDP3 + A33*QDP3 + Q3;
% Salidas finales:
GAM(1) = GAM1;
GAM(2) = GAM2;
GAM(3) = GAM3;

168

Con este procedimiento, construyendo el modelo dinmico directo en una S-Function (y eventualmente el modelo
dinmico inverso en una MATLAB Fcn), y siguiendo los
pasos vistos en este ejemplo, se puede simular cualquier
robot tipo serie partiendo de la definicin de los ejes y la
tabla de parmetros geomtricos hasta llegar al modelo
dinmico directo, base principal de la simulacin.
Ejercicio 7.8:
1) Implementar un controlador PID articular y utilizar como consigna una trayectoria tipo Bang-bang (archivo bangbang.m en la pgina Web www.ai.unicauca.edu.co/Robotica).
Sintonizar para obtener un error articular menor a 300
micras (3x10-4 metros).
2) Implementar un control CTC cartesiano y utilizar como consigna un crculo de 2 centmetros de dimetro, realizado en 2 segundos y con centro en (0.35, -0.35). Sintonizar para obtener un error cartesiano menor a 100 micras
(1x10-4 metros).
3) Implementar un control PID cartesiano y utilizar una
consigna lineal con cambio de direccin, realizada en 1
segundo e iniciando en el punto (-0.4, -0.4). Sintonizar
para obtener un error cartesiano de mximo 100 micras
(1x10-4 metros) en el momento del cambio de direccin.
4) Implementar un control CTC operacional utilizando
una consigna elipsoidal (amplitud de la seal seno igual a
0.02 m; amplitud de la seal coseno igual a 0.001 m), centrada en (0.4, 0.4) y realizada en 3 segundos. Sintonizar
para obtener un error cartesiano menor a 100 micras
(1x10-4 metros).

169

8. E JERCICIOS RESUELTOS
A continuacin se presenta la solucin de buena parte
de los ejercicios propuestos.

Ejercicio 1.1:
a)

Zi

0
-1
i
Tj =
0

0
0
-1
0

1
0
0
0

3
5
5

Xj
Zj

Yj
5

Yi

3
Xi

Ejercicio 2.1:
a)
z0, z1

x0,
x1

j
1
2
3

z3

x2,
x3

z2

b)

171

0
0
1

0
-90
90

dj
0
0
0

j
1
2
0

rj
0
R2
r3

x2,
x3,
x4

z0, z1

z3, z4

x0,
x1

j
1
2
3
4

z2

1
1
1
0

0
-90
90
0

dj
0
0
0
0

0
-90
0
4

rj
r1
r2
r3
0

d)
z2
z3

x2,
x3

j
1
2
3

0
1
1

0
90
-90

z0, z1
x0,
x1

172

dj
0
0
0

j
1
0
0

rj
0
r2
r3

Ejercicio 2.2:
a)
C1
S1
0
T1 =
0

0
1
0
2
T3 =
0

-S1 0 0
C 2 -S 2

0
C1 0 0 1
0
; T2 =

0 1 0
-S 2 -C 2

0 0 1
0
0

0 0
1 R 2
;
0 0

0 1

0 0 0
0 -1 -r 3
1 0 0

0 0 1
C1C 2 -S1 C1S 2 C1S 2r 3 - S1R 2
S1C 2 C1 S1S 2 S1S 2r 3 + C1R 2
0

T3 =
-S 2

C2
C 2r 3
0

0
0
1
0

b)
1
0
0
T1 =
0

0 0
1 0

1
0
2
T3 =
0

0 0
0 -1

0 1
0 0

1
0

0
0

0
0 1

0 0
0 1
; T2 =
1 0
r1

1
0 0
0
C 4

S 4
-r 3 3
; T4 =
0
0

1
0

0 0
1 r 2
;
0 0

0 1
-S 4 0 0
C 4 0 0
0 1 0

0 0 1

0 -1 -r 3
0
S 4 C 4 0 r 2
0

T4 =
C 4 -S 4 0 r1

0
0 1
0

173

d)
C1 -S1 0 0
1
S1 C1 0 0

0
; 1T = 0
T1 =
2
0
0
0 1 0

0 0 1
0
0

0 0 0
0 -1 -r 2
;
1 0 0

0 0 1

1 0 0 0
0 0 1 r 3
2

T3 =
0 -1 0 0

0 0 0 1
C1 -S1 0 S1r 2
S1 C1 0 -C1r 2
0

T3 =
0
r3
0 1

0 0
1
0

Ejercicio 2.3:
a) U 0 = 0T1 1T2 2T3
Primera iteracin de Paul:
1

T0U 0 = 1T3

Comparando las cuartas columnas de cada lado:


C1Px + S1Py = S 2r 3
-S1Px + C1Py = R 2
Pz = C 2r 3

No es evidente el despeje que se deba realizar. Por lo


tanto se ensaya con la segunda iteracin:
2

T1 1T0U 0 = 2T3

174

Comparando las cuartas columnas de cada lado:


C1C 2Px + S1C 2Py - S 2Pz = 0
-C1S 2Px - S1S 2Py - C 2Pz =- r 3
-S1Px + C1Py - R 2= 0

Tampoco es clara la solucin de cualquiera de las ecuaciones. Se procede entonces a analizar los valores de las
matrices de orientacin de la primera iteracin:

C1sx + S1sy C1nx + S1ny C1ax + S1ay C 2 0 S 2


-S1sx + C1sy -S1nx + C1ny -S1ax + C1ay = 0 1 0

-S 2 0 C 2
sz
nz
az
Igualando los trminos (1,2) a cada lado se obtiene:

C1nx + S1ny =0
Luego: 1 = atan(nx,ny)
Para hallar r3 se toman de nuevo las ecuaciones de las
cuartas columnas de la primera iteracin:
C1Px + S1Py = S 2r 3

Pz = C 2r 3
Haciendo B1= C1Px + S1Py , las ecuaciones anteriores se
reescriben como:
B1= S 2r 3

Pz = C 2r 3
Elevando al cuadrado y sumando:
B12 + Pz 2 = r 32

Luego: r 3 = B12 + Pz 2

175

Finalmente para 2:

S 2= B1/r 3
C 2= Pz /r 3
Obtenindose 2 = atan(S2,C2)
b) U 0 = 0T1 1T2 2T3 3T4
Primera iteracin de Paul:
1

T0U 0 = 1T4

Comparando las cuartas columnas de cada lado:


Px =- r 3
Py = r 2
Pz - r1= 0

Por lo tanto:
r1 = Pz
r2 = Py
r3 = Px
De la primera iteracin con la matriz de orientacin
( 1T0U 0 = 1T4 ) se obtiene:

0 -1
sx nx ax 0
sy ny ay = S 4 C 4 0

sz nz az C 4 -S 4 0
Entonces una solucin para 4 podra ser:
4 = atan(sy, ny)
d) U 0 = 0T1 1T2 2T3

176

Primera iteracin de Paul:


1

T0U 0 = 1T3

Comparando las cuartas columnas de cada lado:


C1Px + S1Py = 0
-S1Px + C1Py =- r 2
Pz = r 3

Luego:
1 = atan(Px,Py)
r2 = (S1PxC1Py)
r3 =Pz

Ejercicio 3.1:
a) La matriz Jacobiana estar definida como:
0

- 1P 0s + 1P3 x 0n1 - 2P3y 0s 2 + 2P3 x 0n 2


J 3 = 3y 10
0
a1
a2

a3

Ntese que la tercera columna tiene una expresin diferente ya que la articulacin es prismtica. Se tienen en
total seis vectores, la solucin para cada uno de ellos es:

Primera columna:
1

- P3y s1 + P3 x

C1
-S1

n1 =- (R 2) S1 +(S 2r 3) C1
0
0

-R 2C1- S1S 2r 3
= -R 2S1 + C1S 2r 3

0
0

0
a1 = 0
1
177
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

Segunda columna:
2

- P3y s 2 + P3 x

C1C 2
-C1S 2 r 3C1C 2

n 2 =- (-r 3) S1C 2 +(0) -S1S 2 = r 3S1C 2


-S 2
-C 2 -r 3S 2

-S1
a 2 = C1
0

Tercera columna:

C1S 2
0

a 3 = S1S 2 ; 0 = 0
0
C 2

Luego el modelo cinemtico directo puede expresarse


como:
x& -R 2C1- S1S 2r 3 r 3C1C 2 C1S 2
y& -R 2S1+ C1S 2r 3 r 3S1C 2 S1S 2

q&
1
z&
0
-r 3S 2
C2
=
q& 2
0
-S1
0
x
q& 3
y
C1
0
0

1
0
0
z

b) La matriz Jacobiana estar definida como:


0

0a
J4 = 1
0

a2
0

a3
0

- 4P4y 0s 4 + 4P4 x 0n 4

0
a4

Se tienen en total ocho vectores, la solucin para cada


uno de ellos es:

178

Primera columna:
0

0
0

a1 = 0 ; 0 = 0
1
0
Segunda columna:

0
0

a 2 = 1 ; 0 = 0
0
0
Tercera columna:

-1
0

a 3 = 0 ; 0 = 0
0
0
Cuarta columna:
4

- P4y s 4 + P4 x

0
0 0

n 4=- (0) S 4 +(0) C 4 = 0


C 4
-S 4 0

-1
a 4 = 0
0
El modelo cinemtico directo puede expresarse como:

x& 0
y& 0

z& 1
=
x 0
y 0

z 0

0 -1 0
1 0 0 q&1
0 0 0 q& 2

0 0 -1 q& 3

0 0 0 q& 4

0 0 0

179

d) La matriz Jacobiana estar definida como:


0

- 1P 0s + 1P3 x 0n1
J 3 = 3y 10
a1

a2
0

a3

Se tienen en total seis vectores, la solucin para cada


uno de ellos es:
Primera columna:

C1
-S1 r 2C1
0
- 1P3y 0s1 + 1P3 x 0n1 =- (-r 2) S1 +(0) C1 = r 2S1 ; 0a1 = 0
0
0 0
1
Segunda columna:
0

S1
0

a 2 = -C1 ; 0 = 0
0
0
Tercera columna:

0
0

a 3 = 0 ; 0 = 0
1
0

Luego el modelo cinemtico directo puede expresarse


como:
x& r 2C1 S1 0
y& r 2S1 -C1 0

q&
1
z& 0
0 1
=
q& 2
0 0
x 0
q& 3
y 0
0 0

0 0
z 1

180

Ejercicio 4.1:
a) Para este caso r1 = 1 y r2 = 2.
Se aplican las frmulas del caso as:
Cuerpo 3 (j = 3):
Segn la frmula 1b (seccin 4.4.1) para una articulacin prismtica y teniendo en cuenta la tabla de parmetros geomtricos vista en el Ejercicio 2.1:
XXR2 = XX2 XX3
XYR2 = XY2 XZ3
XZR2 = XZ2 + XY3
YYR2 = YY2 + ZZ3
YZR2 = YZ2 YZ3
ZZR2 = ZZ2 + YY3
Los trminos XX3, XY3, XZ3, YY3, YZ3, ZZ3 son eliminados segn la definicin. Revisando las otras frmulas se
observa que no hay ninguna otra que pueda ser aplicada a
este cuerpo prismtico.
Cuerpo 2 (j = 2):
Frmula 1a (seccin 4.4.1) para una articulacin rotoide, donde se eliminan los parmetros YY2, MZ2 y M2:
XXR2 = XX2 YY2 = (XX2 XX3) (YY2 + ZZ3)
XXR1 = XX1 + YY2 + 2R2MZ2 + R22M2 = XX1 + (YY2 +
ZZ3) + 2R2MZ2 + R22M2
ZZR1 = ZZ1 + YY2 + 2R2MZ2 + R22M2 = ZZ1 + (YY2 +
ZZ3) + 2R2MZ2 + R22M2
MYR1 = MY1 + MZ2 + R2M2
MR1 = M1 + M2
En este caso varios parmetros pasan sin el reagrupamiento (XY1, XZ1, YY1, YZ1, MX1, MZ1). Por otra parte no
hay ninguna otra frmula que pueda ser aplicada a este
cuerpo rotoide.
Cuerpo 1 (j = 1):
181

Como en este caso r1 1, segn las frmulas 4 y 5, y


1a se obtiene:
XX1, XY1, XZ1, YZ1 son eliminados (frmula 3), as como
YY1 (frmula 1a). El nico trmino del tensor de inercia
que se mantiene es ZZR1. Por otra parte para el primer
momento de inercia se eliminan MX1, MY1 (frmula 5) y
MZ1 (frmula 1a). Es decir ningn trmino del primer
momento de inercia queda en la tabla final.
En cuanto a la inercia de los motores se aplican las
frmulas 7 y 8:
ZZR1 = ZZR1 + IA1
ZZR2 = ZZR2 + IA2
La tabla final de parmetros de base es:
j
1
2
3

XXj
0
XXR2
0

j
1
2
3

MXj
0
MX2
MX3

XYj
0
XYR2
0
MYj
0
MY2
MY3

XZj
0
XZR2
0
MZj
0
0
MZ3

Mj
0
0
M3

YYj
0
0
0

YZj
0
YZR2
0

ZZj
ZZR1
ZZR2
0

Iaj
0
0
IA3

b) En este caso r1 = 4.
Cuerpo 4 (j = 4):
Se eliminan YY4, MZ4 y M4. Los reagrupamientos son
(frmula 1a, seccin 4.4.1):
XXR4 = XX4 YY4
XXR3 = XX3 + YY4
YYR3 = YY3 + YY4
MZR3 = MZ3 + MZ4
MR3 = M3 + M4
En este caso varios parmetros pasan sin el reagrupamiento (XY3, XZ3, YZ3, ZZ3, MX3, MY3).
182

Cuerpo 3 (j = 3):
Los trminos XX3, XY3, XZ3, YY3, YZ3, ZZ3 son eliminados segn la definicin (frmula 1b). Aplicando sta se
tiene:
XXR2 = XX2 + XX3 = XX2 + (XX3 + YY4)
XYR2 = XY2 XZ3
XZR2 = XZ2 + XY3
YYR2 = YY2 + ZZ3
YZR2 = YZ2 YZ3
ZZR2 = ZZ2 + YY3 = ZZ2 + (YY3 + YY4)
De otra parte, aplicando la frmula 6 (j < r1) se eliminan MX3, MY3 y MZ3.
Cuerpo 2 (j = 2):
Los trminos XX2, XY2, XZ2, YY2, YZ2, ZZ2 son eliminados segn al definicin (frmula 1b). Aplicando sta se
tiene:
XXR1 = XX1 + YY2 = XX1 + (YY2 + ZZ3)
XYR1 = XY1 + YZ2 = XY1 + (YZ2 YZ3)
XZR1 = XZ1 + XY2 = XZ1 + (XY2 XZ3)
YYR1 = YY1 + ZZ2 = YY1 + (ZZ2 + YY3 + YY4)
YZR1 = YZ1 + XZ2 = YZ1 + (XZ2 + XY3)
ZZR1 = ZZ1 + XX2 = ZZ1 + (XX2 + XX3 + YY4)
Igualmente aplicando la frmula 6 (j < r1) se eliminan
MX2, MY2 y MZ2.
Cuerpo 1 (j = 1):
Los trminos XX1, XY1, XZ1, YY1, YZ1, ZZ1 son eliminados segn la definicin (frmula 1b). Igualmente aplicando la frmula 6 (j < r1) se eliminan MX1, MY1 y MZ1.
En cuanto a la inercia de los motores se aplican las
frmulas 7 y 9:
ZZR4 = ZZR4 + IA4
MR1 = M1 + IA1

183

La tabla final de parmetros de base es:


j
1
2
3
4

XXj
0
0
0
XXR4

j
1
2
3
4

MXj
0
0
0
MX4

XYj
0
0
0
XY4
MYj
0
0
0
MY4

XZj
0
0
0
XZ4
MZj
0
0
0
0

YYj
0
0
0
0
Mj
MR1
M2
MR3
0

YZj
0
0
0
YZ4

ZZj
0
0
0
ZZR4

Iaj
0
IA2
IA3
0

d) En este caso r1 = 1.
Cuerpo 3 (j = 3):
Los trminos XX3, XY3, XZ3, YY3, YZ3, ZZ3 son eliminados segn la definicin (frmula 1b, seccin 4.4.1).
Aplicando sta se tiene:
XXR2 = XX2 + XX3
XYR2 = XY2 + XZ3
XZR2 = XZ2 XY3
YYR2 = YY2 + ZZ3
YZR2 = YZ2 YZ3
ZZR2 = ZZ2 + YY3
Adicionalmente debe aplicarse la frmula 2 (eliminar
MX2, MY2 y MZ3), lo cual produce:
MXR2 = MX2 + MX3
MZR2 = MZ2 MY3
Cuerpo 2 (j = 2):
Los trminos XX2, XY2, XZ2, YY2, YZ2, ZZ2 son eliminados segn la definicin (frmula 1b). Aplicando sta se
tiene:
XXR1 = XX1 + XX2
XYR1 = XY1 + XZ2
XZR1 = XZ1 XY2
184

YYR1 = YY1 + ZZ2


YZR1 = YZ1 YZ2
ZZR1 = ZZ1 + YY2
Adicionalmente debe aplicarse la frmula 3 (jazr1 = 0;
xr1 = 0), lo cual produce:
MY2 = 0

ja

Cuerpo 1 (j = 1):
Como en este caso r1 1, segn las frmulas 4 y 5, y
1a se obtiene:
YY1, MZ1 y M1 son eliminados (frmula 1a). XX1,
XY1, XZ1 y YZ1 se eliminan tambin (frmula 4), as como MX1 y MY1 (frmula 5). El nico trmino que queda
para esta articulacin es ZZR1.
En cuanto a la inercia de los motores se aplica la frmula 7:
ZZR1 = ZZR1 + IA1
La tabla final de parmetros de base es:
j
1
2
3

XXj
0
0
0

j
1
2
3

MXj
0
MXR2
0

XYj
0
0
0
MYj
0
0
0

XZj
0
0
0
MZj
0
MZR2
0

YYj
0
0
0
Mj
0
M2
M3

YZj
0
0
0

ZZj
ZZR1
0
0

Iaj
0
IA2
IA3

Ejercicio 4.2:
a) Segn la tabla de parmetros de base hallada en el
Ejercicio 4.1, las matrices del tensor de inercia y del primer
momento de inercia pueden organizarse como sigue (suponiendo que los cuerpos son simtricos, por lo que se eliminan los trminos no pertenecientes a la diagonal):
185

niendo que los cuerpos son simtricos, por lo que se eliminan los trminos no pertenecientes a la diagonal):

0
0
0 0
XXR2 0
0 0 0

2
3
0 ; J2 = 0
0
0 ; J 3 = 0 0 0
J 1 = 0 0
0 0 ZZR1
0
0 0 0
0 ZZR2

0
MX2
MX3
MS1 = 0 ; 2MS2 = MY2 ; 3MS3 = MY3 ;
0
0
MZ3

0 0 0
I a = 0 0 0
0 0 IA3
a1) Clculo de las velocidades de rotacin:
0

0 = 0

1 = 1A0 0 0 + q&1 1a1 = [0 0 q&1 ]

C 2 0 -S 2 0 0 -S 2q&1
2 = A1 1 + q& 2 a 2 = -S 2 0 -C 2 0 + 0 = -C 2q&1
0 1 0 q&1 q& 2 q& 2

1 0 0 -S 2q&1 -S 2q&1
3 = A2 2 = 0 0 1 -C 2q&1 = q& 2
0 -1 0 q& 2 C 2q&1

a2) Clculo de las velocidades de traslacin:


0

V 0 =0

V 1 = 1 A0 0V0 + 0 0 0 P1 = 0
2
V2 = 2 A1 1V1 + 1 1 1P2

Dado que: 1 1 1P2 = [-R 2q&1 0 0 ]

186

Entonces: 2V2 = 2 A1 1 1 1P2 = [-R 2C 2q&1 R 2S 2q&1 0]

V3 = 3 A2 2V2 + 2 2 2P3 + q& 3 3a 3

Dado que: 2 2 2P3 = [r3q& 2

0 r3S 2q&1 ]

Entonces:
-R 2C 2q&1 + r3q& 2

r3S 2q&1
V3 = A2 V2 + 2 P3 + q& 3 a 3 =

-R 2S 2q&1 + q& 3

a3) Clculo de las energas cinticas:


Energa cintica del cuerpo 1:
1 1 T1 1
1 J 1 1 + M 1 1V1T 1V1 + 2 1MS1T ( 1V111 )

E1 =

Dado que M1 = 0 y 1MS1 = [0 0 0 ] , el trmino de la


T

energa cintica para la primera articulacin queda resumido a:

0 0
0 0
1 1 T1 1
1

E1 = 1 J 1 1 = [0 0 q&1 ] 0 0
0 0
2
2

0 0 ZZR1 q&1
=

1
ZZR1q&12
2

Energa cintica del cuerpo 2:


E2 =

1 2 T2 2
2 J 2 2 + M 2 2V2 T 2V2 + 2 2MS2 T ( 2V2 2 2 )

Dado que M2 = 0, el trmino de la energa cintica para


la segunda articulacin queda resumido a:

187
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

E2 =

1 2 T2 2
2 J 2 2 + 2 2MS2 T ( 2V2 2 2 )

Donde:

T 2

J2

0 -S 2q&1
XXR2 0

&
&
&
0
0 -C 2q&1
2 = [-S 2q1 -C 2q1 q 2 ] 0
0
0 ZZR2 q& 2
= XXR2S 22 q&12 + ZZR2q& 22

R 2S 2q&1q& 2
-R 2C 2q&1 -S 2q&1

R 2C 2q&1q& 2
V2 2= R 2S 2q&1 -C 2q&1 =

q& 2 R 2C 22 q&12 + R 2S 22 q&12


0

2 MS2

R 2S 2q&1q& 2
V2 2 ) = 2 [MX2 MY2 0] R 2C 2q&1q& 2
2
R 2q&1

= 2MX2R 2S 2q&1q& 2 + 2MY2R 2C 2q&1q& 2

Luego, la energa cintica del segundo cuerpo es:


E2 =

2
2
2
1 XXR2S 2 q&1 + ZZR2q& 2 + 2MX2R 2S 2q&1q& 2

2 + 2MY2R 2C 2q&1q& 2

Energa cintica del cuerpo 3:


E3 =

1 3 T3 3
3 J 3 3 + M 3 3V3 T 3V3 + 2 3MS3 T ( 3V3 3 3 )

188

Dado que 3J3 = 0, el trmino de la energa cintica para


la tercera articulacin queda resumido a:
E3 =

1
M3 3V3 T 3V3 + 2 3MS3 T ( 3V3 3 3 )

Donde:
3

V3 T 3V3 =

-R 2C 2q&1 +r3q& 2
[-R 2C 2q&1 +r3q& 2 r3S 2q&1 -R 2S 2q&1 +q& 3 ] r3S 2q&1
-R 2S 2q&1 +q& 3
= ( R 22 q&12 +r32S 22 q&12 +r32q& 22 +q& 32 -2R 2r3C 2q&1q& 2 -2R 2S 2q&1q& 3 )
-R 2C 2q&1 +r3q& 2 -S 2q&1
q&
V3 3=
r3S 2q&1
2
-R 2S 2q&1 +q& 3 C 2q&1

-R 2C 2q&1q& 2 + r3q& 22 + r3S 22 q&12

2
=
r3S 2C 2q&1 + R 2S 2q&1q& 2 -q& 2q& 3

R 2S 22 q&12 - S 2q&1q& 3 + R 2C 2q&12 - r3C 2q&1q& 2

Luego:
E3 =

1
M3 3V3 T 3V + 2K
2

Con:
K=

-R 2C 2q&1q& 2 + r3q& 22 + r3S 22 q&12

2
r3S 2C 2q&1 + R 2S 2q&1q& 2 -q& 2q& 3
[MX3 MY3 MZ3]

R 2S 22 q&12 - S 2q&1q& 3 + R 2C 2q&12 - r3C 2q&1q& 2

189

M3R 22 q&12 +M3r32S 22 q&12 +M3r32q& 22 +M3q& 32

2
-2M3R 2r3C 2q&1q& 2 -2M3R 2S 2q&1q& 3 +MX3r3q& 2

1
2
2
2
E 3 = + 2MX3r3S 2 q&1 - 2MX3R 2C 2q&1q& 2 + 2MY3r3S 2C 2q&1
2
+ 2MY3R 2S 2q& q& - 2MY3q& q& + 2MZ3R 2S 22 q& 2

1 2
2 3
1

- 2MZ3S 2q&1q& 2 + 2MZ3R 2C 2q&12 - 2MZ3r3C 2q&1q& 2

Una vez obtenidas las expresiones de las tres energas


cinticas se procede a armar la matriz de inercia:

A11 = ZZR1+ XXR2S 22 + 2MX3r3S 22 + 2MY3r3S 2C 2


+ 2MZ3R 2S 22 + 2MZ3R 2C 2+M3R 22 +M3r32S 22
A22 = ZZR2+ 2MX3r3 +M3r32

A33 = M3+IA3
A12 = A21 = MX2R 2S 2+ MY2R 2C 2- MX3R 2C 2+ MY3R 2S 2

- MZ3S 2- MZ3r3C 2-M3R 2r3C 2

A13 = A31 =-M3R 2S 2

A23 =- MY3
a4) Clculo del vector de gravedad:
Energa potencial del cuerpo 1:

U 1 =- 0 g T

MS1
0 T
0 0T1
=- g
M
1
1

Energa potencial del cuerpo 2:

190

0
0
0 0T1 = 0
0

0

U 2 =- 0 g T

=- 0 g T

2MS2
0 0T2

M2
C1C 2 -C1S 2 -S1 -R 2S1 MX2
S1C 2 -S1S 2 C1 R 2C1 MY2

0
-S 2
-C 2
0
0 0

0
0
1 0
0

MX2C1C 2-MY2C1S 2
MX2S1C 2-MY2S1S 2

=- [0 0 G3 0 ]
-MX2S 2-MY2C 2

= G3MX2S 2+ G3MY2C 2

Energa potencial del cuerpo 3:


3MS3
0 0T3

M3
C1C 2 -S1 C1S 2 C1S 2r 3-S1R 2 MX3
S1C 2 C1 S1S 2 S1S 2r 3+C1R 2 MY3
0 T

=- g
0
-S 2
MZ3
0
C2
C 2r 3

0
0
1
0
M3
fila1

fila 2

=- [0 0 G3 0 ]
-MX3S 2+ MZ3C 2

M3

= G3MX3S 2- G3MZ3C 2

U 3 =- 0 g T

Los trminos fila 1 y fila 2 de la matriz anterior no se


calculan, ya que este vector columna es multiplicado por el
vector fila de la izquierda que tiene solo un trmnio no nulo
(representado por la gravedad).

La energa potencial total ser:

191

U =G3MX2S 2+G3MY2C 2+G3MX3S 2- G3MZ3C 2


Luego los elementos del vector de gravedad son:
Q1 =

U U
=
=0
q1 1

Q2 =

U U
=
= G3MX2C 2- G3MY2S 2+ G3MX3C 2+ G3MZ3S 2
q 2 2

U U
=
=0
q 3 3
Finalmente la expresin del modelo dinmico inverso
puede escribirse como:
Q3 =

1 A11
= A
2 12
3 A13

A12
A22
A23

A13 q&&1 0
A23 q&&2 + Q2
A33 q&&3 0

b) Segn la tabla de parmetros de base hallada en el


Ejercicio 4.1, las matrices del tensor de inercia y del primer
momento de inercia pueden organizarse como sigue (suponiendo que los cuerpos son simtricos, por lo que se eliminan los trminos no pertenecientes a la diagonal):
0 0 0
0 0 0

2
J 1 = 0 0 0 ; J 2 = 0 0 0 ;
0 0 0
0 0 0
0
0 0 0
XXR4 0

3
4
J 3 = 0 0 0 ; J 4 = 0
0
0
0 0 0
0
0 ZZR4

192

0
0
0
MX4

2
3
4
MS1 = 0 ; MS2 = 0 ; MS3 = 0 ; MS4 = MY4 ;
0
0
0
0
0 0
0 0
0 IA2 0 0

Ia =
0 0 IA3 0

0 0
0 0

b1) Clculo de las velocidades de rotacin:


0

0 = 0

1 = 1A0 00 =0

2 = 2 A1 1 1 = 0

3 = 3 A2 2 2 =0

4 = A3 3 + q& 4

0
a 4 = 0
q& 4

b2) Clculo de las velocidades de traslacin:


0

V 0 =0

0
0
0
0
1
&

V1 = A0 V0 + 0 P1 + q1 a1 = 0
q&1
0 0 1 0 0 q&1
2
2
1
1
1
2
V2 = A1 V1 + 1 P2 + q& 2 a 2 = 1 0 0 0 + 0 = 0
0 1 0 q&1 q& 2 q& 2

V3 = 3 A2 2V2 + 22 2P3 +q& 3 3a 3

1 0 0 q&1 0 q&1
= 0 0 1 0 + 0 = q& 2
0 -1 0 q& 2 q& 3 q& 3
193

V4 = 4 A3 3V3 + 33 3P4 = 4 A3 3V3


C 4 S 4 0 q&1 C 4q&1 +S 4q& 2
= -S 4 C 4 0 q& 2 = -S 4q&1 +C 4q& 2
q& 3
0 1 q& 3
0

b3) Clculo de las energas cinticas:


Energa cintica del cuerpo 1:
Dado que 1J1 = 0 y 1MS1 = [0 0 0 ] , el trmino de la
T

energa cintica para la primera articulacin queda resumido a:

0
1
1
1
1 T1
E1 = M1 V1 V1 = MR1[0 0 q&1 ] 0 = MR1q&12
2
2
2

q&1

Energa cintica del cuerpo 2:


Dado que 2J2 = 0 y

MS2 = [0 0 0 ] , el trmino de la
T

energa cintica para la segunda articulacin queda resumido a:


1
M2 2V2 T 2V2
2

q&1
1
1
1
= M2 [q&1 0 q& 2 ] 0 = M2 q&12 + M2q& 22
2
2
2

q& 2

E2 =

Energa cintica del cuerpo 3:


Dado que 3J3 = 0 y

MS3 = [0 0 0 ] , el trmino de la
T

energa cintica para la tercera articulacin queda resumido a:


194


q&1
1
1

3
T 3
E 3 = M3 V3 V3 = MR3 [q&1 q& 2 q& 3 ] q& 2
2
2

q& 3
1
1
1
= MR3 q&12 + MR3q& 22 + MR3q& 32
2
2
2

Energa cintica del cuerpo 4:


Dado que M4 = 0, el trmino de la energa cintica para
la cuarta articulacin queda resumido a:
1 4 T4 4
4 J 4 4 + 2 4MS 4 T ( 4V4 4 4 )

2
Donde:
E4 =

T 4

J4

0 0
XXR4 0

0
0 0
4 = [0 0 q& 4 ] 0
0
0 ZZR4 q& 4

= ZZR4q& 42

C 4q&1 +S 4q& 2 0 -S 4q&1q& 4 + C 4q& 2q& 4


V4 4= -S 4q&1 +C 4q& 2 0 = -C 4q&1q& 4 - S 4q& 2q& 4

q& 4

0
q& 3

2 4MS4 T ( 4V4 4 4 )

-S 4q&1q& 4 + C 4q& 2q& 4


= 2 [MX4 MY4 0 ] -C 4q&1q& 4 - S 4q& 2q& 4
0

=-2MX4S 4q&1q& 4 +2MX4C 4q& 2q& 4 - 2MY4C 4q&1q& 4 - 2MY4S 4q& 2q& 4

Luego:

1 ZZR4q& 42 -2MX4S 4q&1q& 4 +2MX4C 4q& 2q& 4


E4 =

2 - 2MY4C 4q&1q& 4 - 2MY4S 4q& 2q& 4

195

Una vez obtenidas las expresiones de las cuatro energas


cinticas se procede a armar la matriz de inercia:

A11 = MR1+M2+MR3
A22 = M2+ MR3 + IA2

A33 =MR3+IA3
A44 = ZZR4
A12 = A21 =0
A13 = A31 =0
A14 = A41 =- MX4S 4- MY4C 4
A23 = A32 = 0
A24 = A42 = MX4C 4- MY4S 4

A34 = A43 = 0
b4) Clculo del vector de gravedad:
Energa potencial del cuerpo 1:

0
0
MS1
0 T

U 1 =- 0 g T 0 0T1
0 0T1
=- g
0
M1

MR1
1 0 0 0 0
0 1 0 0 0

=- [0 0 G3 0 ]
0 0 1 r1 0

0 0 0 1 MR1
0
0
=- G3MR1r
=- [0 0 G3 0 ]
1
MR1r1

MR1
1

196

Energa potencial del cuerpo 2:

U 2 =- 0 g T

MS2
0 T
0 0T2
=- g
M
2

0
0
0
1

1 0 0 0
0 1 r2 0
0 0 0 0

0 0 1 M2

0
M2r
2
=- [0 0 G3 0]
=0
0

M2

Energa potencial del cuerpo 3:


3MS3
0 0T3

M3
0 0 -1 -r3 0
0 1 0 r 0
2

=- 0 g T 0
1 0 0 0 0

0 0 0 1 MR3
-MR3r3
MR3r
2
=- [0 0 G3 0]
=0
0

MR3

U 3 =- 0 g T

Energa potencial del cuerpo 4:

197
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

4MS4
0 0T4

M4
0 -1 -r 3 MX4
0
S 4 C 4 0 r 2 MY4

=- 0 g T 0
C 4 -S 4 0 r1 0

0
0 1 0
0
0

MX4S 4+MY4C 4

=- [0 0 G3 0]
MX4C 4-MY4S 4

=- G3MX4C 4 + G3MY4S 4

U 4 =- 0 g T

La energa potencial total ser:

U =-G3MR1r1 - G3MX4C 4 + G3MY4S 4


Luego los elementos del vector de gravedad son:
Q1 =

U U
=
=-G3MR1
q1 r1

Q2 =

U U
=
=0
q 2 r2

Q3 =

U U
=
=0
q 3 r3

Q4 =

U U
=
= G3MX4S 4 + G3MY4C 4
q 4 4

Finalmente la expresin del modelo dinmico inverso


puede escribirse como:

198

1 A11
0
2=
3 0

4 A14

0
A22

0
0

A33

A24

A14 q&&1 Q1
A24 q&&2 0
+
0 q&&3 0

A44 q&&4 Q4

d) Segn la tabla de parmetros de base hallada en el


Ejercicio 4.1, las matrices del tensor de inercia y del primer
momento de inercia pueden organizarse como sigue (suponiendo que los cuerpos son simtricos, por lo que se eliminan los trminos no pertenecientes a la diagonal). Es de
notar que ya que el robot est asentado sobre el muro, el
eje de rotacin de la primera articulacin en z equivale al
eje y general del robot.

0
0 0
0 0 0
0 0
J 1 = 0 0
0 ; 2J 2 = 0 0 0 ; 3J 3 = 0 0
0 0 ZZR1
0 0 0
0 0
0
0
MXR2
0

1
2
3
MS1 = 0 ; MS2 = 0 ; MS3 = 0 I a = 0
0
0
MZR2
0
;
d1) Clculo de las velocidades de rotacin:
1

0 = 0

0
1 = A0 0 + q&1 a1 = 0
q&1

1 0 0 0 0
2 = A1 1 = 0 0 1 0 = q&1
0 -1 0 q&1 0

199

0
0
0
0
IA2
0

0
0
IA3

1 0 0 0 0
3 = A2 2 = 0 0 -1 q&1 = 0
0 1 0 0 q&1

d2) Clculo de las velocidades de traslacin:


0

V 0 =0

V 1 = 1A0 0V0 + 0 0 0 P1 = 0
2
V2 = 2 A1 1V1 + 1 11P2 + q& 2 2a 2

1 0 0 r2q&1 0 r2q&1
= 0 0 1 0 + 0 = 0
0 -1 0 0 q& 2 q& 2

V3 = 3 A2 2V2 + 22 2P3 +q& 3 3a 3

1 0 0 r2q&1 0 r2q&1
= 0 0 1 0 + 0 = q& 2
0 1 0 q& 2 q& 3 q& 3

d3) Clculo de las energas cinticas:

Energa cintica del cuerpo 1:


Dado que M1 = 0 y 1MS1 = [0 0 0 ] , el trmino de la
T

energa cintica para la primera articulacin queda resumido a:

0 0
0 0
1 1 T1 1
1

&
0 0
E1 = 1 J 1 1 = [0 0 q1 ] 0 0
2
2

0 0 ZZR1 q&1
1
= ZZR1q&12
2

200

Energa cintica del cuerpo 2:


Dado que 2J2 = 0, el trmino de la energa cintica para
la segunda articulacin queda resumido a:
E2 =

1
M2 2V2 T 2V2 + 2 2MS2 T ( 2V2 2 2 )

Donde:
M2 V2 V2 = M2 [r2q&1
2

T 2

r2q&1
0 q& 2 ] 0 = M2r22q&12 + M2q& 22
q& 2

r2q&1 0 -q&1q& 2
V2 2 = 0 q&1 = 0
q& 2 0 r2q&12

2 MS2

-q&1q& 2
V2 2 ) = 2 [MXR2 0 MZR2] 0
r2q&12

=-2MXR2q&1q& 2 + 2MZR2r2q&12

Luego:
E2 =

1
M2r22q&12 + M2q& 22 -2MXR2q&1q& 2 + 2MZR2r2q&12
2

Energa cintica del cuerpo 3:


Dado que 3J3 = 0 y

MS3 = [0 0 0 ] , el trmino de la
T

energa cintica para la tercera articulacin queda resumido a:

201


r2q&1
1
1

3
T 3
E 3 = M3 V3 V3 = M3 [r2q&1 q& 2 q& 3 ] q& 2
2
2

q& 3
1
1
1
= M3 r22q&12 + M3q& 22 + M3q& 32
2
2
2

Una vez obtenidas las expresiones de las tres energas


cinticas se procede a armar la matriz de inercia:
A11 = ZZR1+ M2r22 + 2MZR2r2 + M3r22

A22 =M2+M3+ IA2


A33 =M3+IA3
A12 = A21 =-2MXR2
A13 = A31 = 0
A23 = A32 = 0
d4) Clculo del vector de gravedad:
En este caso ya que el robot se halla sobre un muro, la
gravedad estar sobre el eje z, el cual corresponde al eje y
del robot. Esto significa que 0 g T = [0 G3 0] .
Energa potencial del cuerpo 1:

U 1 =- 0 g T

MS1
0 T
0 0T1
=- g
M
1
1

Energa potencial del cuerpo 2:

202

0
0
0 0T1 = 0
0

0

2MS2
0 0T2

M2
C1 0 S1 r2S1 MXR2
S1 0 -C1 -r C1 0
2

=- 0 g T 0
0 1 0
0 MZR2

1 M2
0 0 0
MXR2C1+MZR2S1+M2r2S1
MXR2S1-MZR2C1-M2r C1
2

=- [0 G3 0 0]

M2

=-G3MXR2S1+ G3MZR2C1+ G3M2r2C1

U 2 =- 0 g T

Energa potencial del cuerpo 3:


U 3 =- 0 g T

=- 0 g T

3MS3
0 0T3

M3
C1 S1 0 r2S1 0
S1 C1 0 -r C1 0
2

0
0
r3 0
0 1

0 0
1 M3
0

M3r2S1
-M3r C1
2
= G3M3r C1
=- [0 G3 0 0]
2
M3r3

M3

La energa potencial total ser:

U =-G3MXR2S1+ G3MZR2C1+G3M2r2C1+G3M3r2C1
Luego los elementos del vector de gravedad son:

203

Q1 =

U U
=
q1 1

=-G3MXR2C1- G3MZR2S1- G3M2r2S1- G3M3r2S1


Q2 =

U U
=
= G3M2C1+ G3M3C1
q 2 r2

Q3 =

U U
=
=0
q 3 r3

Finalmente la expresin del modelo dinmico inverso


puede escribirse como:

1 A11
= A
2 12
3 0

A12
A22

0 q&&1 Q1
0 q&&2 + Q2
A33 q&&3 0

Ejercicio 5.1:
a) Dado el modelo dinmico inverso hallado en el Ejercicio 4.2:

1 A11
= A
2 12
3 A13

A12
A22
A23

A13 q&&1 0
A23 q&&2 + Q2
A33 q&&3 0

Expresado de otra manera:

1 = A11q&&1 + A12q&&2 +A13q&&3


2 = A12q&&1 + A22q&&2 + A23q&&3 + Q2
3 = A13q&&1 +A23q&&2 + A33q&&3

204

Segn el Ejercicio 4.1, los parmetros a identificar para


este robot son diez:

= [ ZZR1 XXR2 ZZR2 MX2 MY2...

...MX3 MY3 MZ3 M3 IA3]


Luego de acuerdo a los resultados del Ejercicio 4.2, el
modelo dinmico inverso para identificacin se escribe como:
2
Y1 q&&1 0 S 2 q&&1
Y = 0 q&&
0
2
2
Y3 0 0
0

Aq&&2
Aq&&1 +C

Bq&&2
Bq&&1 -D

2r3S 2q&&1 +Aq&&2

2R 2S 22 q&&1 -S 2q&&2

Aq&&1 -q&&3
-q&&2

-S 2q&&1 +D
0

[ ZZR1

2r3S 22 q&&1 -Bq&&2 ...


-Bq&&1 +2r3q&&2 +C ...
0
...

( R 2 +r
2

S 22 ) q&&1 -Eq&&2 -Aq&&3 0


-Eq&&1
0
-Aq&&1 +q&&3
q&&3

ZZR2 XXR2 MX2 MY2 MX3 MY3 MZ3 M3 IA3]

Con:
A = R 2S 2
B = R 2C 2
C = G3C 2
D = G3S 2
E = R 2r3C 2

b) Dado el modelo dinmico inverso:

205

1 A11
0
2=
3 0

4 A14

0
A22
0
A24

0
0
A33
0

A14 q&&1 Q1
A24 q&&2 0
+
0 q&&3 0

A44 q&&4 Q4

Expresado de otra manera:


1 = A11q&&1 + A14q&&4 + Q1
2 = A22q&&2 + A24q&&4

3 = A33q&&3
4 = A41q&&1 + A42q&&2 + A44q&&4 + Q4
Segn el Ejercicio 4.1, los parmetros a identificar para
este robot son ocho:

= [MR1 M2 MR3 ZZR4 MX4 MY4 IA2 IA3]


Luego de acuerdo a los resultados del Ejercicio 4.2, el
modelo dinmico inverso para identificacin se escribe como:
Y1 q&&1 -G3 q&&1 q&&1 0
Y 0
q&&2 q&&2 0
2=
Y3 0
0 q&&3 0

0 0 q&&4
Y 4 0

-S 4q&&4
C 4q&&4

...
0
...
-S 4q&&1 +C 4q&&2 +G3S 4...

-C 4q&&4
-S 4q&&4

0 0
q&&2 0
0
0 q&&3
...

... -C 4q&&1 -S 4q&&2 +G 3C 4 0 0


...
...

...

d) Dado el modelo dinmico inverso:

206

MR1
M2

MR3

ZZR4
MX4

MY4
IA2

IA3

1 A11
= A
2 12
3 0

A12
A22

0 q&&1 Q1
0 q&&2 + Q2
A33 q&&3 0

Expresado de otra manera:

1 = A11q&&1 + A12q&&2 +Q1


2 = A12q&&1 + A22q&&2 + Q2

3 = A33q&&3
Segn el Ejercicio 4.1, los parmetros a identificar para
este robot son siete:

= [ ZZR1 MXR2 MZR2 M2 M3 IA2 IA3]


Luego de acuerdo a los resultados del Ejercicio 4.2, el
modelo dinmico inverso para identificacin se escribe como:
2
Y1 q&&1 -2q&&2 -G3C1 2r2q&&1 -G3S1 r2 q&&1 -G3r2S1...
Y = 0
-2q&&1
0
q&&2 +G3C1 ...
2
Y3 0
0
0
0
...
ZZR1
MXR2

... r22q&&1 -G3r2S1 0 0 MZR2

... q&&2 +G3C1 q&&2 0 M2


...
0 q&&3 M3
q&&3

IA2
IA3

207
ESTE LIBRO FUE AUTORIZADO POR ELALEPH.COM PARA EL USO EXCLUSIVO DE
OSCAR ANDRS VIVAS ALBN (AVIVAS@UNICAUCA.EDU.CO)

R EFERENCIAS
Buchberger, B. (1987). Applications of Grbner bases in
non-linear computational geometry. In: Lecture Notes in
Computer Science, Vol. 296, pp. 5280.
Craig, J.J. (1986). Introduction to Robotics: Mechanics
and Control. Addison-Wesley Publishing Company, Reading, MA, USA.
Denavit, J. and Hartenberg, R.S. (1955). A kinematic notation for lower-pair mechanisms based on matrices. Journal of Applied Mechanics, Vol. 22, pp. 215221.
Davidson, J. and Hunt, K. (2004). Robots and Screw
Theory: Applications of Kinematics and Statics to Robotics.
Oxford University Press, Oxford, UK.
Haddad, W. and Challaboina, V. (2008). Nonlinear Dynamical Systems and Control: A Lyapunov-Based Approach.
Princeton University Press, Princeton, USA.
Jazar, R. (2010). Theory of Applied Robotics: Kinematics,
Dynamics, and Control. Springer, New York, USA.
Kelly, R., Santibez, V., and Lora, A. (2005). Control of
Robot Manipulators in Joint Space. Springer-Verlag, London, UK.
Khalil, W. and Creusot, D. (1997). SYMORO+: a system
for the symbolic modelling of robots. Robotica, Vol. 15, pp.
153-161.

209

Khalil, W. and Dombre, E. (2002). Modeling, Identification and Control of Robots. Hermes Penton Science, London,
UK.
Khalil, W. and Kleinfinger, J.F. (1986). A new geometric
notation for open and closed-loop robots. IEEE International Conference on Robotics and Automation, San Francisco,
USA, pp. 1174-1180.
Lewis, F., Dawson, D. and Abdallah, C. (2004). Robot
Manipulator Control. Marcel Dekker, Inc., New York, USA.
Manocha, D., and Canny, J. (1992). Real time inverse
kinematics for general 6R manipulators. International Conference on Robotics and Automation, Nice, France, pp. 383389.
Merlet, J.P. (2006). Parallel Robots, Solid Mechanics and
Its Applications. Springer, Dordrecht, Netherlands.
Ollero, A. (2001). Robotica: Manipuladores y Robots Mviles. Marcombo, Madrid, Espaa.
Paul, R.C. (1981). Robot Manipulators: Mathematics, Programming and Control. The MIT Press, Cambridge, MA,
USA.
Raghavan, M. and Roth, B. (1990). Kinematic analysis of
the 6R manipulator of general geometry. 5th International
Symposium in Robotics Research, Tokio, Japan, pp. 262269.
Sciavicco, L. and Siciliano, B. (1996). Modeling and Control of Robot Manipulators. McGraw Hill, London, UK.
Siciliano, B. and Khatib, O. (Eds), (2008). Handbook of
Robotics. Springer-Verlag, Berlin, Germany.
Spivak, M. (1990). A Comprehensive Introduction to Differential Geometry. Publish or Perish Inc., Houston, TX, USA.

210

Spong, M, Hutchinson, S. and Vidyasagar, M. (2006).


Robot Modeling and Control. John Wiley and Sons, Inc.,
Hoboken, NJ, USA.
Zhang, D. (2009). Parallel Robotic Machine Tools. Springer, New York, USA.

211

NDICE
Arquitecturas
de robots ................. 16
Articulacin prismtica 13
Articulacin rotoide ..... 12
Bloques Simulink
(Matlab) ................. 123
Carga til .................... 19
Clula robotizada .......... 8
Cntrol CTC en el
espacio articular .... 116
Configuraciones
singulares.......... 14, 62
Consigna circular ...... 128
Consigna de
quinto grado .. 106, 126
Consigna de
tercer grado ........... 104
Consigna lineal.. 104, 129
Consigna tipo
bang-bang ............. 107
Consignas de
movimiento............ 103
Control CTC .............. 115
Control CTC en el
espacio operacional 119
Control de robots ...... 102
Control PID ............... 112
Coordenadas
homogneas ............ 23

Desempeo ..................20
Desviacin estndar.....95
Ejercicios resueltos .... 171
Energa cintica ...........73
Energa potencial .........73
Espacio articular .........14
Espacio de trabajo .......19
Espacio operacional .....14
Formalismo de
Lagrange ..................71
Frotamientos ...............74
Fuerzas de Coriolis
y centrifugas ............71
Fuerzas de gravedad ....71
Grado de libertad .........13
Identificacin de
parmetros ..............93
Inercia del accionador ..75
Matriz de inercia ..........71
Matriz Jacobiana .........55
Mtodo de Paul ............44
Modelo cinemtico .......55
Modelo dinmico..........65
Modelo geomtrico .......31
Modelo geomtrico
directo .....................38
Modelo geomtrico
inverso .....................44
Momentos de inercia ....66

Mueca tipo rtula ......47


Parmetros de base .....76
Rechazo de
perturbaciones .......157
Resolucin ...................20
Robots en el mundo .....20
Simulacin consigna
lineal con cambio de
direccin ................154
Simulacin CTC
articular .................136
Simulacin CTC
cartesiano ..............145
Simulacin CTC
operacional ............149

Simulacin PID
articular ................ 133
Simulacin PID
cartesiano ............. 139
Sintonizacin de
un PID................... 113
Transformacin de
coordenadas ............ 24
Transformaciones
homogneas ............ 23
Velocidad de rotacin .. 73
Velocidad de
traslacin ................ 73
Velocidad y aceleracin
mxima ................... 20