Sunteți pe pagina 1din 142

INSTITUTO POLITCNICO

NACIONAL

ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA


SECCIN DE ESTUDIOS DE POSGRADO E INVESTIGACIN

MAESTRA EN CIENCIAS EN INGENIERA ELECTRNICA

DISEO DE UN CONTROLADOR GPI DESCENTRALIZADO


PARA TAREAS DE SEGUIMIENTO DE TRAYECTORIAS EN
LAS EXTREMIDADES DE UN ROBOT CAMINANTE

T E S I S
QUE PARA OBTENER EL TTULO DE MAESTRO EN
CIENCIAS EN INGENIERA ELECTRNICA

PRESENTA:
ING. EDWARDS ERNESTO SNCHEZ RAMREZ

ASESOR:

DR. ALBERTO JORGE ROSALES SILVA

MXICO D.F. FEBRERO DEL 2015.


Ing. Edwards Ernesto Snchez Ramrez

DISEO DE UN
CONTROLADOR GPI
DESCENTRALIZADO
PARA TAREAS DE
SEGUIMIENTO DE
TRAYECTORIAS EN LAS
EXTREMIDADES DE UN
ROBOT CAMINANTE
Agradecimientos
Agradezco a mi esposa Mayte y mi hija Loreto, por su ininito apoyo en estos aos,
y por comprender esos momentos de ausencia.
Agradezco infinitamente a mis padres Jos Ernesto y Flor de Azalia por la mejor
herencia que me pudieron dar: Eduacin y Estudio.
Agradezco a mis hermanos Gerardo y Cristian, por sus consejos y apoyos brinda-
dos.
Agradezco a mi asesor de Tesis el Dr. Alberto Jorge Rosales, por su destacable
dedicacin y empeo en la direccin de este trabajo de Tesis.
Agradezco a los Doctores Alberto Luviano y Alfredo Ramrez, por sus importantes
consejos, comentarios y sugerencias que fueron de gran ayuda en el desarrollo de este
trabajo.
Agradezco al Dr. Francisco Javier Gallegos, por supervisar el desarrollo de este
trabajo y por los consejos, sugerencias y apoyos brindados.
Agradezco al Instituto Politcnico Nacional, por la formacin acadmica y profe-
sional de calidad que me ha otorgado.
Agradezco al Instituto de Investigacin y Desarrollo Tecnolgico de la Armada de
Mxico por el apoyo brindado en la realizacin del presente trabajo de Tesis.
Agradezco al Consejo Nacional de Ciencia y Tecnologa por la beca de manutencin
otorgada en apoyo a la realizacin del presente trabajo.
Agradezco infinitamente a mis compaeros Belmar Garca, Mario Dehesa, Isabel
Hernndez, Josafath Cruz, Mariana Vzquez, Fernando Gamino, Diana Contreras,
Samuel Souverville, Jean Marie Vianney, Javier Zenteno, Arturo Gonzalez y Sergio
Gonzalez, por el apoyo brindado en todo momento durante mi estancia en el Labora-
torio de Seales y Sistemas.
Resumen

DISEO DE UN CONTROLADOR GPI


DESCENTRALIZADO PARA TAREAS DE
SEGUIMIENTO DE TRAYECTORIAS EN LAS
EXTREMIDADES DE UN ROBOT CAMINANTE

Este trabajo presenta el diseo e implementacin de un controlador Proporcional


Integral Generalizado aplicado a la extremidad de un robot caminante Hexpodo. El
desarrollo de este tipo de robots implica resolver diversos problemas relacionados con
la dinmica, patrones de marcha, control y diseo de trayectorias. Este trabajo se ha
enfocado en proponer una ley de control de movimiento para la extremidad del robot
que permita seguir trayectorias predefinidas con el menor error posible. El proceso
de control abarc el modelado cinemtico y dinmico, el diseo de trayectorias y
el diseo de un Controlador GPI. Para el proceso de implementacin se arm una
plataforma experimental utilizando como interfaz de instrumentacin una tarjeta de
adquisicin de datos NI USB-6008. El Controlador fue programado en lenguaje grfico
mediante el software LabVIEW. Finalmente se muestran y se discuten los resultados
experimentales y de simulacin.
Abstract

DESIGN OF A DECENTRALIZED GPI CONTROLLER


FOR TRAJECTORY TRACKING TASKS IN THE LIMBS
OF A WALKING ROBOT

This work presents the design and implementation of a Generalized Proportional


Integral Controller applied to the limb of a hexapod walking robot. The development
of such robots involves solving various problems related to its dynamics, gait pat-
terns, control and trajectory tracking. This work has focused on proposing a law of
motion control for the robot limb that allows follow predefined trajectories with the
least possible error. The control process covered the kinematic and dynamic mode-
ling, trajectory design and GPI Controller design. For the process of implementation
a Hardware Setup was assembled by using the data acquisition card NI USB-6008
as intrumentation interface. The Controller was programmed in graphic language th-
rough LabVIEW software. Finally the experimental and simulation results are shown
and discussed.
ndice general

Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
ndice de figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
ndice de tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Lista de Acrnimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Objetivos particulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Justificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii

1. Estado del arte 1


1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Modelado cinemtico y dinmico de brazos robticos . . . . . . . . . 4
1.3. Control de Robots manipuladores . . . . . . . . . . . . . . . . . . . . 5
1.3.1. Control Proporcional-Derivativo . . . . . . . . . . . . . . . . . 6
1.3.2. Control por Dinmica Inversa . . . . . . . . . . . . . . . . . . 7
1.3.3. Control por juntas independientes . . . . . . . . . . . . . . . . 8
1.3.4. Control adaptativo . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.5. Control GPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2. Modelado cinemtico de la extremidad del robot Hexapod Mark II 13


2.1. Anlisis de cinemtica directa . . . . . . . . . . . . . . . . . . . . . . 14
2.1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.2. Convencin Denavit-Hartenberg (DH) y marcos de referencia . 16
2.1.3. Obtencin de la matriz de rotacin y vector de posicin . . . . 17
2.2. Anlisis de cinemtica inversa . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2. Mtodo geomtrico para cinemtica inversa . . . . . . . . . . 20
2.3. Anlisis de cinemtica diferencial . . . . . . . . . . . . . . . . . . . . 23
2.3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

xv
xvi ndice general

2.3.2. Obtencin de matrices Jacobianas . . . . . . . . . . . . . . . . 23


2.3.3. Identificacin de singularidades . . . . . . . . . . . . . . . . . 24
2.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3. Modelado dinmico de la extremidad del robot Hexapod Mark II 29


3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2. Obtencin del modelo dinmico mediante el mtodo de Euler-Lagrange 30
3.2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2. Obtencin de las matrices del modelo dinmico . . . . . . . . 31
3.3. Obtencin del modelo dinmico mediante el mtodo de Newton-Euler 33
3.3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.2. Anlisis de fuerzas y pares aplicados a cada eslabn . . . . . . 33
3.4. Modelo dinmico de los actuadores . . . . . . . . . . . . . . . . . . . 37
3.5. Caracterizacin de la extremidad y actuadores del robot Hexapod Mark
II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4. Control GPI de la extremidad del Robot Hexapod Mark II 45


4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Diseo de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3. Control Par-Calculado . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4. Control Proporcional Integral Generalizado . . . . . . . . . . . . . . . 51
4.5. Control GPI no lineal aplicado a un brazo robtico . . . . . . . . . . 55
4.6. Control GPI no lineal con integrador de tercer orden . . . . . . . . . 59
4.7. Anlisis de desempeo de los controladores propuestos . . . . . . . . 63
4.8. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5. Implementacin en Hardware del Controlador GPI 69


5.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2. Entorno de programacin LabVIEW . . . . . . . . . . . . . . . . . . 70
5.3. Tarjeta de Adquisicin de datos NI USB-6008 . . . . . . . . . . . . . 72
5.4. Plataforma experimental . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5. Programacin y resultados experimentales del controlador Par-Calculado 75
5.6. Programacin y resultados experimentales del controlador GPI no lineal 79
5.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

6. Conclusiones y trabajo a futuro 85

Bibliografa 91

A. Publicaciones en Congresos 97
ndice general xvii

B. Cdigos escritos en MATLABr 99


B.1. Representacin grfica de la extremidad del robot Hexapod Mark II
utilizando cinemtica directa o inversa . . . . . . . . . . . . . . . . . 99
B.2. Obtencin de las matrices D(q), C(q, q) y G(q) . . . . . . . . . . . . . 101
B.3. Ecuaciones para el mtodo de Newton-Euler . . . . . . . . . . . . . . 104
B.4. Comprobacin ambos mtodos . . . . . . . . . . . . . . . . . . . . . . 105

C. Matrices, Jacobianos y Trigonometra 107


C.1. Matriz de rotacin y matriz de transformacin homognea . . . . . . 107
C.2. Jacobiano angular y Jacobiano lineal . . . . . . . . . . . . . . . . . . 108
C.3. Ley de los cosenos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

D. Matrices D(q), C(q, q) y G(q) 111


ndice de figuras

1.1. Clasificacin general de la robtica mvil. . . . . . . . . . . . . . . . . 2


1.2. Robot Hex-Piderix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Robots manipuladores. . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Control en lazo cerrado de un robot manipulador. . . . . . . . . . . . 6
1.5. Tcnicas de control en robots manipuladores. . . . . . . . . . . . . . . 7
1.6. Estructura bsica de un sistema de control en lazo cerrado. . . . . . . 8

2.1. Robot Hexapod Mark II. . . . . . . . . . . . . . . . . . . . . . . . . . 14


2.2. Ejes de rotacin y eslabones. . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Marcos de referencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4. Grados de libertad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5. Marcos de referencia y desplazamientos angulares y lineales. . . . . . 18
2.6. Plano x y del espacio de trabajo de la extremidad del robot. . . . . 21
2.7. Vista lateral del brazo del robot. . . . . . . . . . . . . . . . . . . . . 22
2.8. Singularidad para el caso en el que q1 , q2 y q3 valen 0o . . . . . . . . . 25
2.9. Singularidad para el caso en el que el efector final toca el eje z. . . . . 25
2.10. Diagrama de flujo para evasin de singularidades. . . . . . . . . . . . 26

3.1. Fuerzas y pares aplicados al i-simo eslabn. . . . . . . . . . . . . . . 34


3.2. Prisma rectangular con densidad uniforme. . . . . . . . . . . . . . . . 39
3.3. Numeracin de servomotores. . . . . . . . . . . . . . . . . . . . . . . 40
3.4. Terminales del estator del servomotor 11. . . . . . . . . . . . . . . . . 41
3.5. Estimacin de la resistencia de armadura. . . . . . . . . . . . . . . . 41
3.6. Procedimiento para la estimacin de la constante de par. . . . . . . . 42
3.7. Estimacin de la constante de par. . . . . . . . . . . . . . . . . . . . 43
3.8. Porcentajes estimados de masas de las partes del servomotor. . . . . . 43

4.1. Trayectoria a seguir para poder dar un paso. . . . . . . . . . . . . . . 47


4.2. Resultados de simulacin del controlador Par-Calculado. . . . . . . . 50
4.3. Resultados de simulacin del controlador GPI no lineal. . . . . . . . . 58
4.4. Resultados de simulacin del controlador GPI no lineal modificado. . 62

xix
xx ndice de figuras

4.5. ndices de desempeo de los controladores simulados. . . . . . . . . . 65

5.1. Esquema general de la implementacin de un controlador robtico. . . 70


5.2. Panel frontal de un VI. . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3. Diagrama de bloques de un VI. . . . . . . . . . . . . . . . . . . . . . 71
5.4. Tarjeta de adquisicin de datos NI USB-6008. . . . . . . . . . . . . . 72
5.5. Pines de entrada y salida de la tarjeta NI USB-6008. . . . . . . . . . 73
5.6. Diagrama de bloques de la plataforma experimental. . . . . . . . . . . 74
5.7. Plataforma experimental. . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.8. Cdigo fuente del controlador Par-Calculado. . . . . . . . . . . . . . . 76
5.9. Cdigo fuente del sub-VI ROBOT. . . . . . . . . . . . . . . . . . . . 77
5.10. Resultados experimentales del controlador Par-Calculado. . . . . . . . 78
5.11. Cdigo fuente del controlador GPI no lineal. . . . . . . . . . . . . . . 80
5.12. Resultados experimentales del controlador GPI no lineal. . . . . . . . 81

6.1. Estados de las extremidades del robot Hexapod Mark II. . . . . . . . 88


6.2. Secuencia de estados. . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
ndice de tablas

2.1. Parmetros Denavit-Hartenberg (DH) para una extremidad del robot


Hexapod Mark II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1. Matrices caractersticas de los eslabones de la extremidad. . . . . . . 32


3.2. Matrices y vectores caractersticos de los eslabones de la extremidad. 35
3.3. Parmetros dinmicos de la extremidad del robot Hexapod Mark II. . 40
3.4. Valores utilizados para la estimacin de Km . . . . . . . . . . . . . . . 42
3.5. Estimacin de la inercia del rotor y de los engranes. . . . . . . . . . . 43
3.6. Estimacin de R y Km para cada servomotor. . . . . . . . . . . . . . 44

4.1. Puntos cartesianos a seguir. . . . . . . . . . . . . . . . . . . . . . . . 46


4.2. ndices de desempeo de los controladores simulados. . . . . . . . . . 64

xxi
Lista de acrnimos
Siglas Descripcin
3-D Tres dimensiones
DH Denavit-Hartenberg
GDL Grado de libertad
GPI Generalized Proportional Integral (Proporcional Integral Generalizado)
LabVIEW Laboratory Virtual Instrumentation Engineering Workbench
NI National Instruments
VI Virtual Instrument (Instrumento Virtual)
DSP Digital Signal Processor (Procesador Digital de Seales)
FPGA Field Programmable Gate Array (Arreglo Programable de Compuertas
en Campo)
Objetivo general
Disear e implementar un controlador Proporcional-Integral Generalizado (GPI) con pro-
piedades robustas para garantizar que la extremidad de un robot caminante tengan un
ptimo desempeo en el seguimiento de trayectorias deseadas.

Objetivos particulares

1. Obtener los modelos cinemtico y dinmico para una de las extremidades del robot
hexpodo.

2. Generar trayectorias de prueba y trayectorias de locomocin para la extremidad.

3. Disear un controlador Proporcional Integral Generalizado no lineal.

4. Disear un controlador Par-Calculado para usar de comparativo.

5. Simular los controladores propuestos utilizando las trayectorias establecidas.

6. Evaluar y comparar el desempeo de cada uno de los controladores diseados para


caracterizar su rendimiento.

7. Implementar, analizar y validar el controlador GPI en hardware.


Justificacin
Los robots caminantes tienen como principal aplicacin la exploracin de terrenos desco-
nocidos y de reas siniestradas o contaminadas. Generalmente se componen de un cuerpo
principal y una serie de brazos robticos acoplados simtricamente a dicho cuerpo. Para
poder cumplir con las tareas de exploracin, requieren de tcnicas de control robustas en
las que se garantice un adecuado seguimiento de trayectorias para los grados de libertad
de cada extremidad, esto con el fin de obtener un buen desempeo en su andar. Con el fin
de reducir los errores de seguimiento presentes en el sistema, es necesario continuar con el
diseo de esquemas de control robustos aplicados a los brazos robticos de tal manera que
permitan rechazar perturbaciones de manera eficiente y adems asegurar la estabilidad ante
incertidumbre paramtrica.
Captulo 1

Estado del arte

1.1. Introduccin
Una rama de la robtica que hemos visto desarrollarse en estos ltimos aos es la
robtica mvil. Las principales aplicaciones de este tipo de robots se han registrado en
las reas de asistencia mdica, exploracin militar, exploracin de reas siniestradas
o contaminadas, exploracin espacial y minera.
Cabe mencionar que se han derivado diversas lneas de investigacin para el de-
sarrollo de los robots mviles entre las que destacan:

Modelado cinemtico y dinmico [1].

Control clsico, robusto y adaptivo aplicado a posicionamiento y seguimiento


de trayectorias [2].

Generacin de patrones de marcha (en robots caminantes) [3].

Generacin y parametrizacin de trayectorias [4].

Tcnicas de visin artificial para retroalimentacin del lazo cerrado de control


[5].

Los trabajos realizados a la fecha han permitido realizar una clasificacin de es-
te tipo de robots con respecto a los aditamentos y medios que utilizan para poder
moverse de un punto a otro en el espacio abierto. As pues, dependiendo del tipo de
locomocin que tengan, se pueden clasificar en Sistemas de locomocin por ruedas,
Sistemas de Locomocin por Extremidades y Sistemas de Locomocin por Propulsin
[9] (Fig. 1.1).
El desplazamiento de los robots mviles en ausencia de superfices de contacto
requiere de sistemas de locomocin por propulsin que permitan dar el empuje y el

1
2 Captulo 1: Estado del arte

Figura 1.1: Clasificacin general de la robtica mvil.

rumbo deseado. Los entornos en los que han trabajado los robots mviles son el aire,
el agua y el espacio exterior. El desplazamiento en el aire se ha realizado mediante
helicpteros, aviones y cuadrpteros. Para el agua se han desarrollado vehculos ro-
bticos submarinos, y para el espacio exterior se han diseado sistemas de propulsin
basados en combustin. Un ejemplo del desarrollo de un cuadricptero se muestra en
[6].
Los robots mviles que emplean un sistema de locomocin por ruedas utilizan
un nmero determinado de ruedas acopladas a su base que a su vez se mantienen
en contacto con una superficie en la que se trasladan de un punto a otro. Existen
numerosas variantes para este tipo de robots, principalmente modificando el nmero
de ruedas y los grados de libertad de cada una de ellas, consiguiendo con esto diversas
configuraciones que han sido ampliamente estudiadas y que brindan caractersticas
tiles tales como alta eficiencia energtica, reduccin de dimensiones del robot y
capacidad de omnidireccionalidad.
A pesar de que los sistemas de locomocin por ruedas ofrecen una alta eficiencia
y maniobrabilidad a la hora de desplazarse de un punto a otro sobre una superficie,
Captulo 1: Estado del arte 3

se ven limitados en el momento en que dicha superficie presenta irregularidades que


impiden su movimiento. Por ello se ha continuado con las investigaciones sobre los
robots caminantes que en escencia, ofrecen las siguientes ventajas sobre los de ruedas:

Libertad para aprovechar el espacio de trabajo de cada extremidad.

Facilidad de desplazamiento en terrenos irregulares y terrenos blandos.

Capacidad de omnidireccionalidad sin requerir ajustes en los actuadores de di-


reccionamiento.

La principal desventaja de este tipo de robots radica en que requieren de mayor


complejidad en el desarrollo de mecanismos y sistemas de control. De acuerdo con los
trabajos reportados, los robots con extremidades se pueden clasificar en dos grandes
ramas: Robots Caminantes y Robots Escaladores.
Como ejemplo podemos mencionar al robot escalador Hex-Piderix [1] con extre-
midades adheribles a paredes mediante mecanismos de succin desarrollado en el
CICATA-IPN. Diseado especialmente para detectar grietas sobre superficies verti-
cales o inclinadas mediante cmaras tipo estreo 3-D (Fig. 1.2).

Figura 1.2: Robot Hex-Piderix.

Para el control de este tipo de robots es necesario desarrollar un sistema en lazo


cerrado que garantice que dichas extremidades efecten movimientos deseados, y que
adems permita rechazar perturbaciones presentes tales como la friccin viscosa, fric-
cin de coulomb, incertidumbre paramtrica, etc. Otro ejemplo de desarrollo de este
tipo de robots se observa en [7]. Aqu se muestra el prototipo de un robot cuadrpedo
de grandes dimensiones en donde tambin cada extremidad se comporta de manera
independiente como un brazo robtico.
4 Captulo 1: Estado del arte

En general, es de gran utilidad modelar cada una de las extremidades como brazos
manipuladores individuales, creando un sistema de control descentralizado, en el que
cada brazo ser considerado como una planta con el fin de reducir el proceso de
modelado dinmico. De esta forma es posible utilizar teora de robots manipuladores
ampliamente utilizada con el fin de realizar el proceso de modelado y control de
cada brazo. En la siguiente seccin describiremos en forma general lo concerniente al
modelado cinemtico y dinmico de un brazo robtico.

1.2. Modelado cinemtico y dinmico de brazos


robticos
La cinemtica de un brazo robtico trata del estudio analtico de la geometra del
movimiento de un brazo robot con respecto a un sistema de coordenadas de referencia
fijo. Esto sin considerar las fuerzas o torques que originan dicho movimiento. De esta
forma la cinemtica se interesa por la descripcn analtica del desplazamiento espacial
del robot como una funcin del tiempo, en particular de las relaciones entre la posicin
de las variables de articulacin y la posicin y orientacin del efector final del brazo
del robot.
Existen dos principales problemas en la cinemtica del robot. El primero de ellos
se denomina como problema cinemtico directo, y el segundo como problema cine-
mtico inverso. Como las variables independientes en un robot son las variables de
articulacin, y una tarea se suele dar en trminos del sistema de coordenadas de re-
ferencia se utiliza de manera ms frecuente el problema cinemtico inverso. Denavit
y Hartenberg propusieron en [21] un enfoque sistemtico para utilizar el lgebra ma-
tricial en la descripcin y representacin de la geometra espacial de los elementos
del brazo del robot con respecto a un sistema de referencia fijo. Este mtodo utiliza
una matriz de transformacin homognea de 4 4 para describir la relacin espacial
entre dos elementos mecnicos rgidos adyacentes y reduce el problema cinemtico
directo a encontrar una matriz de transformacin homognea de 4 4 qie relaciona el
desplazamiento espacial del sistema de coordenadas de la mano al sistema de coorde-
nadas de referencia. Estas matrices de transformacin homogneas son tambin tiles
en derivar las ecuaciones dinmicas de movimiento del brazo del robot, tal como se
abordar en el Captulo 3 de este trabajo de tesis. Los mtodos ms utilizadas para
resolver el problema cinemtico inverso son el algebraico matricial, el iterativo y el
geomtrico. En [1] se muestra el modelado cinemtico de un robot caminante.
La dinmica del robot, por otra parte, trata con la formulacin matemtica de
las ecuaciones del movimiento del brazo. Las ecuaciones dinmicas de movimiento
de un brazo robtico son un conjunto de ecuaciones matemticas que describen la
conducta dinmica del brazo. Tales ecuaciones de movimiento son tiles para realizar
Captulo 1: Estado del arte 5

simulaciones, disear leyes de control apropiadas para el robot y evaluar su diseo y


estructura cinemtica. El modelo dinmico real de un brazo se puede obtener de leyes
fsicas conocidas tales como las leyes de Newton y la mecnica Lagrangiana. Esto
conduce al desarrollo de las ecuaciones dinmicas de movimiento para las distintas
articulaciones del manipulador en trminos de los parmetros geomtricos e inerciales
especificados para los distintos elementos. Es posible aplicar sistemticamente enfo-
ques convencionales como las formulaciones de Euler-Lagrange y de Newton-Euler
para desarrollar las ecuaciones de movimientos del robot, tal y como se ver en el
Captulo 3. En [24] se muestra el procedimiento detallado para la obtencin de estas
ecuaciones de movimiento mediante los mtodos mencionados.

1.3. Control de Robots manipuladores


Los robots manipuladores han sido utilizados en numerosas aplicaciones mdicas
e industriales. Se caracterizan por poseer una serie de eslabones acoplados uno con
otro de tal forma que se alcance el espacio de trabajo deseado en funcin de la apli-
cacin especfica (Fig. 1.3). En este caso se utilizan con el fin de seguir trayectorias
establecidas de tal forma que cumplan la funcin que realiza una extremidad de un
robot caminante.
El diseo de controladores para robots sigue siendo un rea de intensos estudios
por parte de los constructores de robots as como de los centros de investigacin, esto
debido a que el estudio de controladores en robtica es indispensable en aplicaciones
especficas que no pueden ser llevadas a cabo mediante los robots comerciales actuales
[36].

Figura 1.3: Robots manipuladores.


6 Captulo 1: Estado del arte

El problema de control de robots manipuladores ha sido abordado desde diferentes


perspectivas, que estn ligadas a las diferentes ramas de la teora de control clsica y
moderna. En general, el control en lazo cerrado de un robot manipulador se realiza
como se muestra en la Fig. 1.4, donde qd , qd y qd representan las posiciones, velocidades
y aceleraciones deseadas de los grados de libertad. Asimismo q, q y representan las
posiciones reales, velocidades reales y el torque aplicado. En la Fig. 1.5 se muestran
algunas de las tcnicas empleadas en el control de robots, las cuales abordaremos en
las siguientes secciones.

Figura 1.4: Control en lazo cerrado de un robot manipulador.

1.3.1. Control Proporcional-Derivativo


El algoritmo de control proporcional derivativo (PD) es el ms conocido y emplea-
dooo en el rea de control automtico. En los inicios de la robtica (1950), este esque-
ma de control se empleaba para controlar a los robots manipuladores. En esa poca
ya se conoca como esquema de control al algoritmo Todo/Nada, tambin conocido
como control On/Off. No obstante, su desempeo prctico era muy pobre compara-
do al control PD. Durante muchos aos el algoritmo de control PD fue emprico, es
decir careca de un sustento cientfico, y su empleo se reduca a la experimentacin
o aplicaciones prcticas por intuicin. La demostracin formal de estabilidad para la
ecuacin en lazo cerrado formada por la dinmica del robot manipulador y el algo-
ritmo de control PD se realiz en 1981 por Takegaki y Arimoto en [10], sentando las
bases para el desarrollo de control de robots manipuladores.
La demostracin consisti en formular una funcin de energa o funcin candida-
ta de Lyapunov compuesta por la energa cintica del robot manipulador, ms un
trmino que realiza el papel de energa potencial artificial (una funcin cuadrtica
del error de posicin) tal que su potencia o derivada temporal de la energa sea una
funcin semidefinida negativa. Empleando el principio de invariancia de Barbashin-
Captulo 1: Estado del arte 7

Figura 1.5: Tcnicas de control en robots manipuladores.

Krasovskii-Lasalle se demuestra la estabilidad asinttica del punto de equilibrio en


forma global.

1.3.2. Control por Dinmica Inversa


El mtodo de control de robots manipuladores por dinmica inversa es tambin
conocido como el control par-calculado, el cual fue conocido y difundido ampliamente
por quienes trabajaban en el rea de robtica. Esta tcnica se caracteriza por realizar
una linealizacin exacta del modelo dinmico del robot manipulador, el cual est
modelado por un sistema de ecuaciones diferenciales no lineales.
Lo que se realiza en realidad es una transformacin de la coordenada de control u
en una nueva entrada v, la cual depende de las componentes del estado. Mediante una
redefinicin de la variable de control u, en trminos de las variables originales, y de
operaciones no lineales sobre las componentes del estado, obtenemos un nuevo canal
de control v, desde el cual el sistema luce perfectamente lineal. Esto nos dice que
hemos encontrado una nueva forma de representar la accin de control, representada
8 Captulo 1: Estado del arte

por v, desde donde el sistema exhibe un comportamiento perfectamente lineal [37].


Esta tcnica de control fue propuesta inicialmente en [11], y posteriormente dicha
tcnica fue denominada en [12] y [13] como mtodo del torque calculado, precisamente
porque el torque necesario para llevar el sistema al punto de equilibrio se calcula de
manera directa por simple inspeccin de las ecuaciones. La aplicacin de esta tcnica
de control se ver a mas detalle en el Captulo 4.

1.3.3. Control por juntas independientes


En esta seccin se trata la estrategia de control mas simple en el control de ro-
bots denominada control por juntas independientes. En esta tcnica de control cada
articulacin del manipulador es controlada como un sistema de una entrada una sa-
lida (SISO). Los efectos de acoplamiento producidos por el movimiento de los otros
eslabones son tratados como perturbaciones. La estructura bsica de un sistema de
control en lazo cerrado de un sistema SISO se muestra en la Fig. 1.6.

Figura 1.6: Estructura bsica de un sistema de control en lazo cerrado.

El objetivo principal es disear el compensador de tal forma que la salida de


la planta siga una trayectoria deseada establecida por la seal de referencia. Sin
embargo la seal de control no es la nica que est actuando sobre el sistema. Las
perturbaciones que son entradas que no podemos controlar, tambin influyen en el
comportamiento del sistema en lazo cerrado. Por lo tanto, el controlador debe ser
diseado de tal forma que se reduzcan los efectos de dichas perturbaciones. Si esto
se cumple, entonces se dice que el sistema rechaza las perturbaciones. En realidad,
los aspectos de seguimiento de trayectorias y rechazo de perturbaciones son de vital
importancia al momento de disear un controlador. Algunos ejemplos del diseo de
tcnicas de control para motores de corriente directa se muestran en [14], [24] y [22].
Captulo 1: Estado del arte 9

1.3.4. Control adaptativo


El problema del diseo de leyes de control adaptativas para robots manipuladores
que aseguren un adecuado seguimiento de trayectorias ha sido de gran inters para los
investigadores durante muchos aos. El desarrollo de esquemas de control adaptativos
representa un importante avance hacia la mejora de aplicaciones que demanden alta
velocidad y precisin.
Incluso en las aplicaciones de robots industriales actuales, se presentan perturba-
ciones asociadas a la incertidumbre paramtrica debido a que las diferentes cargas que
tratan este tipo de mquinas hacen variar las propiedades del modelo dinmico tales
como los momentos de inerica. Ya que dichos parmetros son difciles de obtener o me-
dir, limitan la capacidade de los robots manipuladores para manejar adecuadamente
objetos de gran peso y tamao.
Para compensar este tipo de incertidumbre parmetrica, algunos investigadores
han propuesto estrategias adaptativas para controlar los robots manipuladores. Una
ventaja de estos esquemas adaptativos con respecto a otros esquemas de control robus-
tos es que la exactitud del manipulador al momento de manejar cargas desconocidas
se ve mejorada con el tiempo porque los mecanismos de adaptacin continan ex-
trayendo informacin del sistema en funcin del error de seguimiento medido. Por
lo tanto, los controladores adaptativos presentan un adecuado desempeo ante las
variaciones de la carga.
Cuando los parmetros en el modelo no concuerdan con los parmetros reales
del manipulador, se producen errores de seguimiento en el sistema de lazo cerrado.
Estos errores podra usarse para controlar cierto esquema de adaptacin que intente
actualizar los valores de los parmetros del modelo hasta que los errores alcancen un
margen aceptable.
En estos esquemas de control, hay un proceso de adaptacin que, dadas las ob-
servaciones del estado del manipulador y los errores de seguimiento, se reajustan los
parmetros en el modelo no lineal hasta que desaparezcan los errores. Un sistema
de este tipo aprendera sus propias propiedades dinmicas. Ejemplos de este tipo de
leyes de control propuestas podemos encontrarlas en [15], [16] y [17]. Una aplicacin
del esquema de control adaptativo se muestra en [18].

1.3.5. Control GPI


El uso de observadores en electrnica de potencia no es una prctica comn debido
al incremento en el costo del circuito; es decir, un observador debe ser construido a
travs de circuitos analgicos o programado mediante software para reproducir un
sistema del mismo orden que el sistema observado o de orden reducido dependiendo del
nmero de salidas. Por otro lado, el controlador Proporcional Integral Generalizado
10 Captulo 1: Estado del arte

(GPI, por sus siglas en ingls) integra tanto observador como controlador en un mismo
algoritmo.
El control GPI es una tcnica de control basada en la idea de evitar el diseo de
observadores utilizando reconstructores integrales como estimadores de las variables
de estado no medidas. Una de las caractersticas atractivas del control GPI radica
en el hecho de que se basa slo en mediciones de entradas, salidas y combinaciones
lineales de un nmero finito de integraciones de las mismas despreciando cualquier
condicin inicial desconocida. Como resultado, el reconstructor integral difiere del va-
lor real de la seal estimada, este error estructural es fundamentalmente inestable y
puede ser caracterizado mediante un polinomio de orden finito. De esta manera, em-
pleando el principio de superposicin, el controlador se complementa con un nmero
finito de integradores que cancelan el efecto desestabilizante del estimador estructu-
ral. Como resultado, se obtiene un controlador PI de n-simo orden, el cual estabiliza
el sistema en lazo cerrado mediante la asignacin arbitraria de los polos del polinomio
caracterstico del sistema.
El Control GPI apareci inicialmente en [29], y fue utilizado en diversos trabajos
posteriores. En la actualidad sigue predominando como una potente tcnica de control
de sistemas lineales debido a su principal caracterstica intrnseca que se manifiesta
como rechazo activo de perturbaciones. Algunos trabajos recientes en los que que
utilizan esta tcnica de control se muestran en [19] y [20]. El desarrollo del controlador
GPI, as como sus principales caractersticas de diseo, se presentan en el Captulo 4
a ms detalle.
El primer trabajo de un controlador GPI no lineal aplicado a robots manipuladores
se present en [42]. En el Captulo 4 del presente trabajo de tesis se aplica este
controlador a la extremidad de un robot caminante tipo hexpodo, y adems se
propone una modificacin a la ley de control que permite rechazar de una mejor
forma las perturbaciones constantes y no lineales presentes en el sistema de lazo
cerrado.

1.4. Conclusiones
En este captulo se abord lo concerniente al modelado cinemtico y dinmico
de un brazo robtico, adems de diferentes tcnicas de control que se han propuesto
en estas ltimas dcadas. Esto debido a que las extremidades del robot caminante
hexpodo a tratar en este trabajo de tesis, pueden modelarse como brazos robticos
independientes y de esta forma, utilizar teora de robots manipuladores con el fin de
realizar su estudio, modelado y control.
El proceso de modelado cinemtico y dinmico de un brazo robtico se vuelve
ms complejo al aumentar el nmero de grados de libertad. Como se ver en el
Captulo 1: Estado del arte 11

Captulo 3, los efectos de fuerzas centrpetas y de coriolis afectan directamente los


movimientos del manipulador. Con los mtodos de Newton-Euler y Euler-Lagrange
es posible considerar todos los efectos inerciales presentes el la dinmica del robot, y
con esto obtener una buena aproximacin del modelo dinmico.
A su vez, el modelo dinmico del robot manipulador es un sistema no lineal,
representado por un sistema de ecuaciones diferenciales no lineales. Debido a esto, el
diseo de controladores se complica por lo que se han propuesto diversas tcnicas de
control basadas en la linealizacin local o exacta de dicho modelo dinmico, adems
de tcnicas adaptivas, entre otras.
El campo de los controladores de robots manipuladores sigue estando en intensa
investigacin hoy en da, por lo que resulta interesante continuar con el estudio de
esta rama con el fin de proponer nuevas leyes de control con caractersticas atractivas.
Ya que cada controlador propuesto en la literatura tiene sus respectivas ventajas y
desventajas, el controlador a utilizar en un robot fsico depender directamente de la
aplicacin que vaya a tener.
En este caso se requiere que las extremidades del robot caminante hexpodo efec-
ten movimientos deseados con el mnimo error de seguimiento posible, por lo cual en
el Captulo 4 se propone una ley de control no lineal basada en la tcnica del Control
Proporcional Integral Generalizado (GPI).
En la siguiente seccin se comenzar con el anlisis cinemtico de la extremidad
del robot caminante hexpodo, lo cual resulta el punto de partida para un correcto
modelado dinmico y posteriormente, el diseo de la ley de control GPI no lineal.
Captulo 2

Modelado cinemtico de la
extremidad del robot Hexapod
Mark II

En el caso de los robots que se componen de cadenas cinemticas abiertas de n


grados de libertad, adems de la obtencin del modelo dinmico para poder controlar
las variables de un sistema con el cual se pueda disear alguna ley de control en
especfico para satisfacer los requerimientos de estabilidad, respuesta transitoria y
error en estado estable en la respuesta de dicho sistema, se requiere de un anlisis
cinemtico detallado, que nos brinde las herramientas para determinar las posiciones,
orientaciones y velocidades de cada eslabn con respecto a un marco de referencia
inercial. Dicho anlisis consta de tres partes: anlisis de cinemtica directa, anlisis
de cinemtica inversa y anlisis de cinemtica diferencial.
El robot caminante Hexapod Mark II de la empresa Trossen Roboticsr, cuenta
con seis extremidades (ver Fig. 2.1). Cada una de ellas consta de tres eslabones y tres
grados de libertad (ver Fig. 2.2). Para lograr un desplazamiento estable se requiere
de un modelo dinmico que pueda servir como base para poder disear controladores
de seguimiento de trayectorias, de tal forma que las extremidades sean capaces de dar
pasos siguiendo puntos de referencia deseados.
Modelar un robot de este tipo resulta complejo debido a la cantidad de extre-
midades y grados de libertad que posee. Para simplificar el modelado cinemtico y
dinmico, se propone utilizar un sistema de control descentralizado en el que cada
extremidad sea tratada como una sola planta. De esta forma, el anlsis cinemtico
estar enfocado en modelar una extremidad compuesta de tres eslabones y tres gra-
dos de libertad. El movimiento de las otras extremidades afectarn el movimiento del
cuerpo del robot, y por consiguiente la extremidad a tratar se ver perturbada por
dichos efectos. Debido a esto ser necesario utilizar una ley de control de movimiento

13
14 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

Figura 2.1: Robot Hexapod Mark II.

robusta que trate de minimizar lo ms posible los efectos de estas perturbaciones.

2.1. Anlisis de cinemtica directa


2.1.1. Introduccin
Una vez establecido el sistema que se va a modelar, el cual consta de una ex-
tremidad del robot Hexapod Mark II, se procede a realizar el anlisis de cinemtica
directa, el cual consiste bsicamente en determinar las posiciones y orientaciones de
cada uno de los eslabones que componen la cadena cinemtica abierta, en funcin de
los desplazamientos angulares que se puedan manipular. Para ello es necesario como
primer paso identificar los grados de libertad del sistema. Una extremidad de este
robot consta de tres grados de libertad, debido a que cada uno de los tres eslabones
es capaz de rotar alrededor de un eje fijo. En la Figura 2.2 se muestran con lneas
verdes los tres eslabones, y con lneas naranjas punteadas los ejes de rotacin de cada
uno de ellos. Los eslabones son enumerados a partir del eslabn cero o la base fija,
que en este caso sera idealmente el cuerpo del robot.
Enseguida se establece un supuesto marco de referencia inercial o fijo, el cual se
ubica en el punto donde la extremidad se acopla al cuerpo del robot, o al eslabn
cero. Esto para poder tener una referencia fija a partir de la cual se van a ubicar
las posiciones de cada eslabn. Este marco de referencia invercial est formado por
Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 15

los vectores unitarios x0 , y0 y z0 (ver Fig. 2.3). A partir de este marco de referencia
se van a ubicar los movimientos de la extremidad. Se necesitan otros tres marcos
de referencia para ubicar a cada eslabn, para ello haremos uso de una convencin
ampliamente usada en el modelado de robots manipuladores.

Figura 2.2: Ejes de rotacin y eslabones.

Figura 2.3: Marcos de referencia.


16 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

2.1.2. Convencin Denavit-Hartenberg (DH) y marcos de re-


ferencia
Una convencin que se utiliza comunmente en la determinacin de marcos de
referencia para robots manipuladores es la convencin Denavit-Hartenberg [21]. En
el apndice C se muestran los conceptos de matriz de rotacin y matriz de trans-
formacin homognea, necesarios para comprender las operaciones involucradas en
dicha convencin. Esta ltima bsicamente consiste en una multiplicacin sucesiva de
matrices de transformaciones homogneas que representan movimientos rgidos, to-
mando en cuenta si el grado de libertad es de tipo prismtico (desplazamiento lineal)
o de tipo rotacional (desplazamiento angular). De esta forma, los vectores unitarios
xi1 , yi1 y zi1 que representan un (i 1)-simo marco de referencia cuyo origen
se encuentra en el extremo final del (i 1)-simo eslabn, son trasladados y girados
para crear un i-simo marco de referencia que se posicionar en el extremo final del
siguiente eslabn, de tal forma que el eje de rotacin de este ltimo coincida con el
vector unitario zi1 .
Sean xi , yi y zi los vectores unitarios que representan el -simo marco de referencia
asociado al -simo eslabn. Las matrices de transformaciones homogneas utilizadas
para implementar la convencin Denavit-Hartenberg son las siguientes (ver Figuras
2.3, 2.4 y 2.5 para ubicar vectores):

1. Rotz,i : Rotacin del -simo marco de referencia en i unidades alrededor del


vector zi1 .

2. T rasz,di : Desplazamiento del origen del -simo marco de referencia en di uni-


dades a lo largo del vector zi1 .

3. T rasx,ai : Desplazamiento del origen del -simo marco de referencia en ai uni-


dades a lo largo del vector xi1 .

4. Rotx,i : Rotacin del -simo marco de referencia en i unidades alrededor del


vector xi1 .

Si multiplicamos estas matrices como en la ecuacin 2.1, obtenemos una nueva


matriz Hii1 que representa la posicin y orientacin del -simo marco de referencia
con respecto al marco 1, en funcin de los parmetros i , di , ai y i pertenecientes
al -simo eslabn.

Hii1 = Rotz,i T rasz,di T rasx,ai Rotx,i =


Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 17


cos i sen i 0 0 1 0 0 0 1 0 0 ai 1 0 0 0
sen i cos i 0 0
0 1 0 0 0 1 0 0 0 cos i sen i 0


=
0

0 1
0
0 0 1 0
di
0 1 0 0 sen i
cos i 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

cos i sen i cos i sen i sen i ai cos i
sen i cos i cos i cos i sen i ai sen i

=
. (2.1)
0 sen i cos i di
0 0 0 1
En este caso, los parmetros a utilizar para una extremidad del robot Hexapod
Mark II se muestran en la Tabla 2.1, de acuerdo al nmero de eslabones y de las ubi-
caciones de los grados de libertad como se muestra en la Fig. 2.4. Asimismo L1 , L2 yL3
representan las longitudes de cada eslabn.

Tabla 2.1: Parmetros Denavit-Hartenberg (DH) para una extremidad del robot He-
xapod Mark II.

Eslabn i di ai i
1 q1 0 L1 90o
2 q2 0 L2 0
3 q3 0 L3 0

Con estos parmetros es posible determinar la posicin y orientacin de cualquie-


ra de los tres marcos de referencia con respecto a algn otro, como se muestra en la
Figura 2.3. Una mayor proyeccin de los grados de libertad, eslabones y marcos de
referencia se puede observar en la figura 2.4. Los ngulos q1 , q2 y q3 pueden variar
debido a que el robot tiene acoplado en las articulaciones servomotores generadores de
torque necesarios para efectuar el desplazamiento angular deseado. Con estos resul-
tados ahora es posible determinar las matrices de rotacin y los vectores de posicin
de puntos especficos de la extremidad, como se indica en la siguiente seccin.

2.1.3. Obtencin de la matriz de rotacin y vector de posi-


cin
Finalmente en el anlisis cinemtico obtendremos la posicin y orientacin del
ltimo marco de referencia, comnmente llamado efector final, en funcin de los des-
plazamientos angulares q1 , q2 y q3 que podemos hacer variar como se puede observar
en la Figura 2.4. De acuerdo a los parmetros de la Tabla 2.1 se obtienen las matrices
18 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

Figura 2.4: Grados de libertad.

Figura 2.5: Marcos de referencia y desplazamientos angulares y lineales.


Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 19

Hii1 para cada uno de los eslabones. Los resultados obtenidos se muestran en las
ecuaciones 2.2, 2.3 y 2.4.

cos q1 0 sen q1 L1 cos q1 sen q1
sen q1 0 cos q1 L1 cos q1 sen q1

H10 =

0
, (2.2)
1 0 0

0 0 0 1

cos q2 sen q2 0 L2 cos q2
sen q2 cos q2 0 L2 sen q2

H21 =

0
, (2.3)
0 1 0

0 0 0 1

cos q3 sen q3 0 L3 cos q3
sen q3 cos q3 0 L3 sen q3

H32 =

0
. (2.4)
0 1 0

0 0 0 1
La matriz H30 que representa la posicin y orientacin del efector final se obtiene al
multiplicar sucesivamente las matrices H10 , H21 y H32 , como se muestra en la ecuacin
2.5.


H30 = H10 H21 H32
cos(q2 + q3 ) cos q1 sen(q2 + q3 ) cos q1 sen q1 A cos q1
cos(q2 + q3 ) sen q1 sen(q2 + q3 ) sen q1 cos q1 A sen q1 (2.5)

=
sen(q + q )
,
2 3 cos(q2 + q3 ) 0 B
0 0 0 1

simplificando: L1 + L3 cos(q2 + q3 ) + L2 cos q2 = A y L3 sen(q2 + q3 ) + L2 sen q2 = B.

Con este resultado, se obtiene la matriz de rotacin R30 y el vector r30 que represen-
tan la orientacin y posicin del efector final respectivamente, con respecto al marco
de referencia inercial, denotados por las ecuaciones 2.6 y 2.7.

cos(q2 + q3 ) cos q1 sen(q2 + q3 ) cos q1 sen q1



0
R3 = cos(q2 + q3 ) sen q1 sen(q2 + q3 ) sen q1 cos q1 ,

(2.6)

sen(q2 + q3 ) cos(q2 + q3 ) 0

A cos q1
r30 = A sen q1 . (2.7)

B
En el apndice B.1 se muestra el cdigo fuente utilizado para representar grfica-
mente los eslabones y los marcos de referencia de la figura 2.4.
20 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

2.2. Anlisis de cinemtica inversa


2.2.1. Introduccin
En la seccin anterior se obtuvo el vector que representa en coordenadas cartesia-
nas la posicin del efector final de la extremidad del robot en funcin de las posiciones
angulares de las articulaciones q1 , q2 y q3 . La cinemtica inversa consiste en realizar
el procedimiento inverso para obtener las ecuaciones que representan las posiciones
angulares q1 , q2 y q3 en funcin de las coordenadas cartesianas. Solucionar el pro-
blema de forma analtica implica resolver un sistema de ecuaciones no lineales, por
lo que tambin se han reportado otros mtodos de solucin como la transformacin
inversa, el lgebra de tornillo, matrices duales, cuaterniones duales, iterativo y mto-
dos geomtricos [23]. Debido a su naturaleza iterativa, las soluciones numricas son
generalmente mucho ms lentas que la solucin de forma cerrada correspondiente;
de hecho, son tan lentas que para casi todos los fines no estaremos interesados en
el enfoque numrico para la solucin de problemas cinemticos [22]. Mientras tanto
el mtodo geomtrico solo es realizable para robots que no posean gran cantidad de
eslabones ni demasiados grados de libertad [24], como es el caso de la extremidad del
robot Hexapod Mark II.

2.2.2. Mtodo geomtrico para cinemtica inversa


El mtodo consiste en representar grficamente cada uno de los eslabones con
sus respectivos grados de libertad, y establecer relaciones trigonomtricas para poder
obtener los valores angulares de cada grado de libertad en funcin de las coordenadas
cartesianas conocidas.
Para comenzar con el mtodo geomtrico, primeramente de la Figura2.4 tomamos
una vista del plano x y como se muestra en la Figura 2.6. Dado un punto P (x, y, z)
deseado para colocar el efector final cuyas coordenadas cartesianas son x, y y z, el
ngulo q1 puede obtenerse mediante la ecuacin 2.8. En esta misma figura, se observa
que el valor de B est dado por la ecuacin 2.9.
y
q1 = arctan , (2.8)
x
q
B= (x L1 cos q1 )2 + (y L1 sen q1 )2 . (2.9)
Ahora nos enfocaremos en una vista lateral del brazo del robot, donde se puedan
apreciar de una mejor forma los ngulos q2 y q3 , como se muestra en la Figura 2.7.
Debido a que el ngulo q3 puede tener dos soluciones para llegar a un mismo punto,
buscamos una expresin que incluya una raz cuadrada que nos permita elegir el signo
del ngulo a utilizar.
Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 21

Figura 2.6: Plano x y del espacio de trabajo de la extremidad del robot.

En la figura 2.7, el tringulo O1 O2 O3 posee un ngulo interno cuyo valor es 180o


q3 . Aplicando la ley de los cosenos (Apndice C), el valor de este ngulo est dado
por la ecuacin 2.10:

B 2 + z 2 L23 L22
cos(180o q3 ) = cos q3 = = C. (2.10)
2L2 L3
Mediante la identidad Pitagrica dada por la ecuacin 2.11, despejamos el valor
de sen q3 obteniendo una expresin que incluye una raz cuadrada, como se muestra
en la ecuacin 2.12. Finalmente se obtiene el valor de tan q3 y se despeja el ngulo,
quedando como en la ecuacin 2.14.

sen2 q3 + cos2 q3 = 1, (2.11)


sen q3 = 1 C 2, (2.12)
donde para simplificar:

B 2 + z 2 L23 L22
C= ,
2L2 L3
22 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

Figura 2.7: Vista lateral del brazo del robot.

sen q3
tan q3 = , (2.13)
cos q3


1 C2
q3 = arctan . (2.14)
C
Para obtener el valor del ngulo q2 se procede de la siguiente forma: primero se
obtienen los catetos del tringulo rectngulo O2 VC O3 , que a su vez forman parte de
los catetos del tringulo O1 VC O3 . Con los catetos de este ltimo y aplicando una
tangente inversa, se puede obtener una parte del ngulo q2 (segundo trmino de la
parte derecha de la ecuacin 2.15). La otra parte se obtiene con ayuda del tringulo
rectngulo cuyos catetos son B y z (primer trmino de la parte derecha de la ecuacin
2.15). Siguiendo este procedimiento, obtenemos el valor del ngulo q2 como se muestra
en la ecuacin 2.15.

z L3 sen q3
q2 = arctan arctan (2.15)
B L2 + L3 cos q3
En forma matricial, la solucin de la cinemtica inversa dada por las ecuaciones
Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 23

2.8, 2.15 y 2.14 queda como en la ecuacin 2.16:

arctan xy

q1
z L3 sen q3
arctan B arctanL2 +L3 cos q3 .

q2 = (2.16)

2
q3 q3 = arctan 1C
C

2.3. Anlisis de cinemtica diferencial


2.3.1. Introduccin
Aparte de conocer de forma analtica las posiciones y orientaciones de cada marco
de referencia involucrado en la extremidad del robot, es importante conocer tam-
bin las expresiones que nos indican como cambian con el tiempo esas posiciones y
desplazamientos angulares. Son de gran utilidad a la hora de determinar un modelo
dinmico en el que las fuerzas y momentos de torsin presentes en el sistema estn en
funcin de las velocidades lineales y velocidades angulares de cada eslabn. A conti-
nuacin se determinarn las matrices Jacobianas las cuales nos muestran la relacin
entre las velocidades lineales y las velocidades angulares de cada marco de referencia.

2.3.2. Obtencin de matrices Jacobianas


Considrese una cadena cinemtica abierta de n nmero de eslabones y de grados
de libertad (articulaciones). Sean vn0 y n0 los vectores de velocidad lineal y velocidad
angular del efector final, respectivamente, con respecto al marco de referencia inercial.
Sea q = [q1 , ..., qn ]T el vector de ngulos o distancias de las articulaciones, ya sean
de tipo rotacionales o prismticas. El anlisis de cinemtica diferencial consiste en
determinar la matriz Jacobiana lineal Jv y la matriz Jacobiana angular J , de tal
forma que se cumplan las ecuaciones 2.17 y 2.18 para establecer las relaciones entre
las velocidades lineales y las velocidades angulares.

vn0 = Jv q, (2.17)

n0 = J q. (2.18)
0
Sea zi1 el vector unitario que coincide con el eje de rotacin del i-simo eslabn,
expresado con respecto al marco de referencia inercial. La matriz Jacobiana angular
est determinanda por la ecuacin 2.19, donde vale 1 si la articulacin es de tipo
rotacional, y vale 0 si es de tipo prismtica [24].

J = [1 z00 ...n zn1


0
]. (2.19)
24 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

Sea o0n el vector posicin del origen del marco de referencia del efector final re-
presentado por el punto P (x, y, z) en la Fig. 2.7 ). La i-sima columna del la matriz
Jacobiana lineal Jvi est dada por la ecuacin 2.20. La deduccin de las matrices
Jacobianas puede consultarse en el apndice C[24].

o0n
Jvi = . (2.20)
qi
En la cadena cinemtica abierta que constituye una extremidad del robot Hexapod
Mark II, aplicando las ecuaciones 2.19 y 2.20 se obtienen las matrices Jacobianas que
se muestran en las ecuaciones 2.21 y 2.22.

0 sen q1 sen q1
J = 0 cos q1 cos q1 , (2.21)

1 0 0

E sen q1 D cos q1 [L3 sen(q2 + q3 )] cos q1


Jv = E cos q1 D sen q1 [L3 sen(q2 + q3 )] sen q1 , (2.22)


0 F + L2 cos q2 F

simplificando: D = L3 sen q2 + q3 + L2 sen q2 , E = L1 + L3 cos q2 + q3 + L2 cos q2 y


F = L3 cos q2 + q3 .

En la siguiente seccin se muestra otra de las utilidades de la matriz Jacobiana


lineal que es la identificacin de singularidades.

2.3.3. Identificacin de singularidades


Adems de establecer la relacin entre la velocidad lineal y la velocidad angular del
efector final, la matriz Jacobiana lineal es de ayuda para identificar las singularidades
de la cadena cinemtica abierta, es decir, los valores qi para los cuales la matriz pierde
rango[44] y por consiguiente su determinante se vuelve cero, por lo que no es posible
calcular la matriz inversa ni obtener el Jacobiano. Esto ocasiona que las velocidades
angulares de las aticulaciones qi no puedan ser calculadas.
Al obtener el determinante de 2.22 se obtiene la ecuacin 2.23. La condicin pa-
ra que no existan singularidades es que el trmino entre parntesis de esta ltima
ecuacin, sea diferente de cero.

det(Jv ) = L2 L3 (L3 sen q2 cos2 q3 + L3 cos q2 sen q2 cos q3 ...


(2.23)
... + L1 sen q3 L3 sen q2 + L2 cos q2 sen q3 ).
Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 25

Figura 2.8: Singularidad para el caso en el que q1 , q2 y q3 valen 0o .

Figura 2.9: Singularidad para el caso en el que el efector final toca el eje z.

En la Figura 2.8 se muestra la singularidad para cuando q2 y q3 valen 0o . En


este caso los tres eslabones tienen una misma velocidad angular, la matriz Jacobiana
pierde rango, y el determinante se vuelve cero.
Otras singularidades se identifican con ayuda de las ecuaciones de cinemtica
26 Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II

inversa. En la ecuacin 2.16 se observa que las soluciones se indeterminan cuando x,


B, C o (L2 + L3 cos q3 ) valen cero. En la Figura 2.9 vemos el caso para cuando el
efector final toca el eje z. Se puede notar que el ngulo q1 puede tomar cualquier valor
y por lo tanto, el nmero de soluciones para la cinemtica inversa es infinito.
Al momento de la implementacin en Hardware deben considerarse estas singu-
laridades para no caer en indeterminaciones y saturar los registros de memoria. Una
opcin es realizar la correccin por Software estableciendo que los valores que cau-
san dichas singularidades sean ignorados. Este procedimiento se muestra en la Figura
2.10, en donde se observa que se obtienen las posiciones angulares q1 , q2 y q3 y el
Jacobiano Jv . En caso de que el determinante de este ltimo sea cero, entonces se
agrega un valor muy pequeo para que Jv pueda obtenerse y con ello despejar el
vector q de la ecuacin 2.17.

Figura 2.10: Diagrama de flujo para evasin de singularidades.

2.4. Conclusiones
En este captulo se analiz a detalle la cinemtica de la extremidad del robot
Hexapod Mark II en cuanto a cinemtica directa, inversa y diferencial.
En la cinemtica directa nos encontramos con una cadena abierta compuesta de
tres eslabones y tres grados de libertad. Para la ubicacin de los extremos de cada
eslabn se requirieron asignar cuatro marcos de referencia, utilizando la convencin
Captulo 2: Modelado cinemtico de la extremidad del robot Hexapod Mark II 27

Denavit-Hartenberg. Podemos observar que las matrices de transformaciones homo-


gneas Hii1 obtenidas resultan un poco complejas, por lo que incrementar el nmero
de trminos en el modelado dinmico.
En la cinemtica inversa se obtuvo una aproximacin geomtrica para obtener
los desplazamientos angulares en funcin de las coordenadas cartesianas del extremo
final del ltimo eslabn. Nos encontramos con dos soluciones, una para q2 positiva
y otra para q2 negativa. En esta aplicacin se considerarn siempre valores para q2
negativos.
En la cinemtica diferencial, con ayuda de los Jacobianos se obtuvieron las ex-
presiones que relacionan las velocidades angulares con las velocidades lineales. Esta
herramienta tambin ser de gran utilidad en la obtencin del modelo dinmico. Asi-
mismo se identificaron algunas singularidades con ayuda de dichos Jacobianos.
Captulo 3

Modelado dinmico de la
extremidad del robot Hexapod
Mark II

3.1. Introduccin
Una vez realizado el anlisis cinemtico, se utilizarn los parmetros DH y las
matrices Jacobianas para la obtencin de un modelo dinmico que permita establecer
una relacin entre las fuerzas involucradas en la extremidad del robot Hexapod Mark
II y su movimiento en un espacio tridimiensional. Dicha extremidad puede ser tratada
como un robot manipulador.
Un manipulador es un sistema mecnico muy complejo cuya descripcin analtica
requiere de ecuaciones diferenciales. La naturaleza no lineal, multivariable y acopla-
da de su comportamiento dinmico ofrece un amplio espectro en la formulacin de
problemas de control tericos y prcticos. El modelo dinmico del robot manipulador
permite explicar todos los fenmenos fsicos que se encuentran en su estructura mec-
nica, tales como efectos inerciales, fuerzas centrpetas y de Coriolis, pares gravitacio-
nales y friccin, los cuales son fenmenos fsicos intrnsecos o propios de la naturaleza
dinmica del robot [8]. Aunque se han reportado diversos mtodos para la obtencin
de este modelo dinmico, los ms conocidos son el mtodo de Euler-Lagrange y el de
Newton-Euler. El primero de ellos presenta las siguientes ventajas y caractersticas:

1. El robot es tratado como un solo sistema.

2. Las fuerzas de reaccin internas en los eslabones son eliminadas automtica-


mente.

3. Las ecuaciones en forma cerrada son obtenidas de forma directa.

29
30 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

4. El modelo obtenido es ms apto para el estudio de las propiedades dinmicas y


el anlisis de los esquemas de control.
Mientras tanto el segundo de ellos presenta estas otras ventajas y caractersticas:
1. El anlisis dinmico se realiza para cada eslabn separadamente.
2. Las ecuaciones se obtienen de forma recursiva, lo que permite utilizar valores
previamente calculados y reducir el costo computacional.
3. Es ms apto para la implementacin de esquemas de control.
4. Si se eliminan las fuerzas de reaccin y se sustituyen las expresiones de forma
regresiva, se obtienen las ecuaciones en forma cerrada.
Estas ventajas y caractersticas sern tomadas en cuenta en diversos aspectos
para el desarrollo de los controladores y su implementacin, adems de obtener los
mismos resultados para cada mtodo. Tambin es de suma importancia considerar el
modelo dinmico de los actuadores ya que con esto podemos manipular las variables
de salida del controlador digital para que sean acopladas con las seales de entrada de
los actuadores, que en este caso al utilizar motores de corriente directa, sern seales
de entrada de voltaje.

3.2. Obtencin del modelo dinmico mediante el


mtodo de Euler-Lagrange
3.2.1. Introduccin
En este mtodo se utilizan las ecuaciones de movimiento de Euler-Lagrange, que
en forma general describen la relacin entre el movimiento de un cuerpo rgido y
las fuerzas involucradas. En robtica estas ecuaciones son utilizadas para modelar la
dinmica de robots manipuladores de n grados de libertad. Sea q = [q1 , q2 , ..., qn ]T
un vector de coordenadas generalizadas que representa los desplazamientos de cada
articulacin ya sea de tipo rotacional o prismtica. Sean K y P la energa cintica y la
energa potencial del manipulador, respectivamente. Sea L = K P el lagrangiano1
del sistema y = [1 , 2 , ..., n ]T el vector de pares aplicados a cada articulacin. Las
ecuaciones de movimiento de Euler-Lagrange estn dadas por la ecuacin 3.1.
" #
d L(q, q) L(q, q)
= . (3.1)
dt q q
1 Un
lagrangiano es una funcin escalar a partir de la cual se puede obtener la evolucin
temporal, las leyes de conservacin y otras propiedades importantes de un sistema dinmico.
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II 31

Al efectuar las operaciones del lado izquierdo de la ecuacin anterior, se encuentran


trminos que son mltiplos del vector de aceleraciones articulares q, del vector de
velocidades articulares q y de la aceleracin de la gravedad terrestre g. Agrupando
dichos trminos obtenemos el modelo dinmico para un robot manipulador de n
grados de libertad como se muestra en la ecuacin 3.2, donde D(q) es la matriz de
inercia, C(q, q) es la matriz de fuerzas centrpetas y de Coriolis, y G(q) es el vector
de pares gravitacionales.

D(q)q + C(q, q)q + G(q) = . (3.2)

3.2.2. Obtencin de las matrices del modelo dinmico


Las matrices D(q), C(q, q) y G(q) pueden obtenerse de forma directa mediante
expresiones dadas en [24]. Antes de utilizar dichas expresiones es necesario conocer
para cada eslabn de la extremidad lo siguiente:

1. El Jacobiano lineal Jvi del i-simo eslabn a partir de la ecuacin 2.20.

2. El Jacobiano angular Ji del i-simo eslabn a partir de la ecuacin 2.19.

3. La matriz de rotacin Ri0 del i-simo marco de referencia con respecto al marco
de referencia inercial, a partir de la ecuacin 2.1.

4. El Tensor de Inercia Ii del i-simo eslabn, que est representado por una matriz
diagonal compuesta por los momentos principales de inercia Ixi , Iyi e Izi , con
respecto al centro de masa de dicho eslabn.

5. El vector de posicin del extremo final del i-simo eslabn ubicado en el origen
del i-simo marco de referencia, mediante la ecuacin 2.1. Recordando que Li
representa la longitud del i-simo eslabn, y Lci es la distancia desde el origen
del marco de referencia i 1 al centro de masa del i-simo eslabn.

Estos trminos han sido obtenidos y se muestran en la Tabla 3.1.


Para obtener de forma directa D(q), se utiliza la ecuacin 3.3 sustituyendo las
ecuaciones obtenidas de la Tabla 3.1.

n
mi Jvi (q)T Jvi + Ji (q)T Ri (q)Ii Ri (q)T Ji (q).
X
D(q) = (3.3)
i=1
32 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

Tabla 3.1: Matrices caractersticas de los eslabones de la extremidad.

Matrices de rotacin Tensores de inercia



cos q1 0 sen q1 Ix1 0 0
R10 (q) = sen q1 0 cos q1 I1 = 0 Iy1 0

0 1 1 0 0 Iz1
cos q1 cos q2 cos q1 sen q2 sen q1

Ix2 0 0
R20 (q) = sen q1 cos q2 sen q1 sen q2 cos q1 I2 = 0 Iy2 0

sen q2 cos q2 0 0 0 Iz2


cos(q2 + q3 ) cos q1 sen(q2 + q3 ) cos q1 sen q1

Ix3 0 0
R30 (q) = cos(q2 + q3 ) sen q1 sen(q2 + q3 ) sen q1 cos q1 I3 = 0 Iy3 0

sen(q2 + q3 ) cos(q2 + q3 ) 0 0 0 Iz3


Jacobianos lineales Jacobianos angulares
Lc1 sen q1

0
Jv1 (q) = Lc1 cos q1 J1 = 0

0 1
(L1 + Lc2 cos q2 ) sen q1 Lc2 cos q1 sen q2

0 sen q1
Jv2 (q) = (L1 + Lc2 cos q2 ) cos q1 Lc2 sen q1 sen q2 J2 = 0 cos q1

0 Lc2 cos q2 1 0
B sen q1 A cos q1 Lc3 sen(q2 + q3 ) cos q1

Jv3 (q) = B cos q1 A sen q1 Lc3 sen(q2 + q3 ) sen q1




0 C + L2 cos q2 C 0 sen q1 sen q1
donde para simplificar: J3 = 0 cos q1 cos q1

A = Lc3 sen(q2 + q3 ) + L2 sen q2 , 1 0 0


B = L1 + Lc3 cos(q2 + q3 ) + L2 cos q2 ,
C = Lc3 cos(q2 + q3 ).

La matriz C(q, q)se obtiene elemento a elemento, de tal forma que el (k, j)-simo
elemento de dicha matriz est dado por la ecuacin 3.4, donde dij representa el (i, j)-
simo elemento de D(q).

n
( )
X dkj dki dij
ckj = + qi . (3.4)
i=1 qj qj qk

Para obtener el vector de pares gravitacionales G(q)primero hay que obtener la


expresin para la energa potencial total del sistema, la cual est dada por la ecuacin
3.5, donde en este caso g es el vector que da la direccin de la gravedad con respecto
al marco de referencia inercial, y rci es el vector que da las coordenadas del centro de
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II 33

masa del i-simo eslabn.


n
mi g T rci ,
X
P = (3.5)
i=1

enseguida se obtiene cada elemento del vector de pares gravitacionales mediante


la ecuacin 3.6.

P
gk = . (3.6)
qk
Las matrices obtenidas utilizando los trminos de la Tabla 3.1 se pueden consultar
en el apndice D. En el apndice B.2 se muestra el cdigo fuente utilizado para el
desarrollo algebraico que involucra la obtencin de estas matrices mediante el uso de
variable simblica.

3.3. Obtencin del modelo dinmico mediante el


mtodo de Newton-Euler
3.3.1. Introduccin
En este mtodo se realiza un anlisis de fuerzas y pares en cada eslabn, de
tal forma que es necesario conocer velocidades y aceleraciones tanto lineales como
angulares de puntos especficos tales como el centro de masa, el origen y la posicin
del extremo final. Tambin se conoce como el mtodo iterativo-recursivo porque las
velocidades y aceleraciones de cada punto dependen del eslabn anterior, mientras
que las fuerzas y pares aplicados dependen del eslabn posterior. Esto nos obliga a
obtener velocidades y aceleraciones de forma iterativa, es decir comenzando con el
primer eslabn hasta llegar al ltimo. Las fuerzas y pares aplicados se obtienen de
forma recursiva, es decir comenzando con el tlimo eslabn hasta llegar al primero[24].

3.3.2. Anlisis de fuerzas y pares aplicados a cada eslabn


Antes de comenzar con el anlisis de fuerzas y pares aplicados, es necesario obte-
ner algunas expresiones para cada eslabn. Siendo el i-simo eslabn el que se va a
analizar, y recordando que su origen est sujeto al (i 1)-simo marco de referencia
y su extremo final al i-simo, se debe obtener inicialmente:

1. La matriz de rotacin Ri0 .

2. La matriz de rotacin Rii1 .


34 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

i
3. La matriz de rotacin Ri+1 .
0
4. El vector zi1 , representa el eje de rotacin del i-simo eslabn con respecto al
marco de referencia inercial.

5. El vector gi , representa la aceleracin de la gravedad con respecto al i-simo


marco de referencia, asumiendo que el vector unitario z0 est alineado con el
vector de aceleracin de la gravedad terrestre.

6. El vector ri1,i , representa el vector que va desde Oi1 hasta Oi , donde Oi es el


origen del i-simo marco de referencia.

7. El vector ri1,ci , representa el vector que va desde Oi1 hasta el centro de masa
del i-simo eslabn.

8. El vector ri,ci , representa el vector que va desde Oi hasta el centro de masa del
i-simo eslabn.

Figura 3.1: Fuerzas y pares aplicados al i-simo eslabn.


Tabla 3.2: Matrices y vectores caractersticos de los eslabones de la extremidad.

Matriz Eslabn 1 Eslabn 2 Eslabn 3



cos q1 0 sen q1 " # " #
cos q1 cos q2 cos q1 sen q2 sen q1 cos(q2 + q3 ) cos q1 sen(q2 + q3 ) cos q1 sen q1
Ri0 0
R1 = sen q1 0 cos q1 R20 = cos q2 sen q1 sen q1 sen q2 cos q1 R30 = cos(q2 + q3 ) sen q1 sen(q2 + q3 ) sen q1 cos q1
sen q2 cos q2 0 sen(q2 + q3 ) cos(q2 + q3 ) 0
0 1 1

cos q1 0 sen q1 cos q2 sen q2 0 cos q3 sen q3 0

Rii1 R10 = sen q1 0 cos q1 R21 = sen q2 cos q2 0 R32 = sen q3 cos q3 0
0 1 1 0 0 1 0 0 1

cos q2 sen q2 0 cos q3 sen q3 0
i
Ri+1

R21 = sen q2 cos q2 0

R32 = sen q3 cos q3

No existe.
0
0 0 1 0 0 1

0 sen q1 sen q1
0
zi1

z00 = 0

z10 = cos q1
0
z2 = cos q1

1 0 0

0 g sen q2 g(cos q2 sen q3 + cos q3 sen q2 )

gi g1 = g g2 = g cos q2 g3 = g(cos q2 cos q3 sen q2 sen q3 )
0 0 0

L1 L2 L3

ri1,i r0,1 = 0 r1,2 = 0 r2,3 = 0
0 0 0

Lc1 Lc 2 Lc3

ri1,ci r0,c1 = 0 r1,c2 = 0 r2,c3 = 0
0 0 0

Lc1 L1 Lc2 L2 Lc3 L3

ri,ci r1,c1 = 0 r2,c2 = 0 r3,c3 = 0
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

0 0 0
35
36 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

En la Fig. 3.1 se pueden apreciar los marcos de referencia, el eslabn, las fuerzas
y pares aplicados. Los vectores y matrices mencionados han sido obtenidos para cada
eslabn de la extremidad del robot y se muestran en la Tabla 3.2.
Una vez obtenidas las expresiones anteriores, se debe comenzar con la obtencin
de velocidades y aceleraciones de forma iterativa. Comenzando con el primer eslabn
se obtienen las ecuaciones 3.7, 3.8, 3.9, 3.10 y 3.11 [24]. Despus se procede con el
segundo eslabn de la misma forma y as hasta llegar al ltimo. Observemos que cada
una de estas ecuaciones depende de la ecuacin anterior, a excepcin de la ecuacin
i
3.7. Los trminos zi1 , i , i , aei y aci asociados al i-simo eslabn representan el
eje de rotacin, velocidad angular, aceleracin angular, aceleracin lineal del extremo
final y aceleracin lineal del centro de masa respectivamente, todos referidos al i-simo
marco de referencia.

i
zi1 = (Ri0 )T zi1
0
, (3.7)

i = (Rii1 )T i1 + zi1
i
qi , (3.8)

i = (Rii1 )T i1 + i (zi1
i
qi ), (3.9)

ae,i = (Rii1 )T ae,i1 + i ri1,i + i (i ri1,i ), (3.10)

ac,i = (Rii1 )T ae,i1 + i ri1,ci + i (i ri1,ci ), (3.11)


Para la obtencin de fuerzas y pares aplicados a cada eslabn se procede de forma
recursiva. Comenzando con el ltimo eslabn se obtienen las ecuaciones 3.12 y 3.13.
Se contina de la misma forma con el eslabn anterior y as sucesivamente hasta
llegar al primero. En este caso, los vectores fi y i representan la fuerza y el torque
aplicados por el eslabn i 1 al eslabn i. Cada una de estas ecuaciones se obtuvo
para la extremidad del robot mediante el uso de variable simblica (utilizando soft-
ware Matlab) para el desarrollo algebraico. El cdigo fuente puede consultarse en el
apndice B.3.

i
fi = (Ri+1 )T fi+1 + mi ac,i mi gi , (3.12)

i
i = (Ri+1 )T i+1 fi ri1,ci + (Ri+1
i
fi+1 ) ri,ci + Ii i + i (Ii i ). (3.13)

Una vez obtenido el vector i se tienen tres componentes vectoriales ix , iy y iz , de


las cuales hay que identificar cual es la que representa el torque aplicado en el i-simo
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II 37

eslabn que ocasionar que gire sobre el eje correspondiente al grado de libertad. Hay
que puntualizar que este mtodo no considera las restricciones holonmicas2 de forma
automtica, a diferencia del mtodo anterior. Para ubicar cual es la componente de
inters de un eslabn en particular, solo hay que ubicar cual es la componente de i
que coincide con el eje de rotacin de dicho eslabn. Para el caso de la extremidad
del robot Hexapod Mark II se obtuvieron los vectores 1 , 2 y 3 . De la figura 2.4
observamos que para el primer eslabn, la componente de 1 que coincide con el eje
de rotacin es 1y . Para el segundo eslabn, la componente de 2 que coincide con el
eje de rotacin es 2z . Para el tercer eslabn, la componente de 3 que coincide con
el eje de rotacin es 3z . De esta forma concluimos que las componentes 1y , 2z y 3z
son las que ocasionan que los eslabones roten alrededor de los ejes representados por
los vectores unitarios z0 , z1 y z2 . Para validar el modelo se construy un vector dado
por A = [1y , 2z , 3z ]T , se obtuvo el vector B mediante las matrices D(q), C(q, q)y
G(q)obtenidas por el mtodo de Euler-Lagrange, y finalmente se realiz la resta entre
ambos vectores A B = 0 con lo cual todos los trminos quedaron cancelados.
El cdigo fuente de este procedimiento se puede consultar en el apndice B.4. Esto
resulta indispensable ya que en todo sistema de control la respuesta depende del
correcto modelado de la planta.

3.4. Modelo dinmico de los actuadores

Si observamos la ecuacin 3.2, veremos que se trata de un sistema no lineal mul-


tivariable, en donde el vector representa las entradas de control como seales de
torque. Sin embargo, en brazos manipuladores, generalmente se utilizan motores de
C. D. como actuadores, los cuales tienen como entrada de control seales de voltaje.
Por consiguiente es necesario contar con el modelo del motor de C. D. y acoplarlo al
modelo dinmico de la extremidad del robot Hexapod Mark II.
En [24] se muestran las ecuaciones 3.14 y 3.15. La primera de ellas representa la
funcin de transferencia de la parte elctrica de un motor de C. D. de imn perma-
nente. La segunda representa la funcin de transferencia de la parte mecnica. En
estas ecuaciones m es la posicin angular del rotor, Km es la constante de torque,
Kb es la constante de fuerza contraelectromotriz, V es el voltaje de armadura, L es
la inductancia de armadura, R es la resistencia de armadura, Bm es el coeficiente de
friccin del motor y engranajes, Jm es la inercia del rotor y engranajes, r es la relacin

2 Unarestriccin holonmica es una restriccin en forma de relacin algebraca entre las


coordenadas generalizadas.
38 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

de engranaje y es el torque aplicado a la carga.

m (s) Km
= , (3.14)
V (s) s[(Ls + R)(Jm s + Bm ) + Kb Km ]

m (s) (Ls + R)/r


= . (3.15)
(s) s[(Ls + R)(Jm s + Bm ) + Kb Km ]
Generalmente en muchos sistemas electromecnicos, la constante de tiempo elc-
trica L/R es mucho menor que la constante de tiempo mecnica Jm /Bm [25]. Si
dividimos las ecuaciones 3.14 y 3.15 por R y despreciamos el factor L/R, obtenemos
una aproximacin ms simplificada del modelo del motor de C. D. en donde ahora las
funciones de transferencia son de segundo orden, como se muestra en las ecuaciones
3.16 y 3.17[24].

m (s) Km /R
= , (3.16)
V (s) s(Jm s + Bm + Kb Km /R)

m (s) 1/r
= . (3.17)
(s) s(Jm s + Bm + Kb Km /R)
Para combinar las ecuaciones 3.16 y 3.17, se transforman al dominio del tiempo
y se suman, con lo cual obtenemos la ecuacin 3.18. Utilizando la relacin mi =
ri qi , despejando de 3.18 y sustituyendo en 3.2 obtenemos la ecuacin 3.19, donde
M (q) = D(q)+J siendo J una matriz diagonal cuya diagonal principal est compuesta
por elementos dados por ri2 Jm i. B representa una matriz diagonal de coeficientes de
friccin cuyos elementos estn dados por Bmi + Kbi Kmi /Ri . El vector de entrada i
est dado por la ecuacin 3.20. Recordemos que el subndice i en cada uno de estos
trminos est asociado al actuador que provoca la rotacin del i-simo eslabn.

Jm m (t) + (Bm + Kb Km /R)m (t) = (Km /R)V (t) (t)/r. (3.18)

M (q)q + C(q, q)q + B q + G(q) = , (3.19)

Kmi
i = ri Vi . (3.20)
Ri
La ecuacin 3.19 representa el modelo dinmico combinado, es decir el modelo
dinmico del manipulador con el modelo del actuador. Para efectos de simulaciones e
implementaciones se simplificar esta ecuacin despreciando la matriz de coeficientes
de friccin (B = 0) como es costumbre en muchas aplicaciones de robtica [24].
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II 39

3.5. Caracterizacin de la extremidad y actuado-


res del robot Hexapod Mark II
Una vez obtenido el modelo dinmico de la extremidad del robot se realiz la
caracterizacin de los parmetros dinmicos. Se realizaron las mediciones correspon-
dientes para calcular la masa, la longitud y la posicin del centro de masa de cada
eslabn de la extremidad. Para la estimacin de los momentos principales de inercia
(Ixi , Iyi e Izi ), cada eslabn fue modelado como un prisma rectangular de densidad
uniforme de lados a, b y c, con un marco de referencia rgidamente sujeto a su centro
de masa (ver Fig. 3.2). Con esto, los momentos principales de inercia quedan deter-
minados por las ecuaciones 3.21, 3.22 y 3.23, donde ai , bi y ci representan los lados
del i-simo eslabn y mi representa su masa. Los resultados obtenidos se muestran
en la Tabla 3.3.

Figura 3.2: Prisma rectangular con densidad uniforme.

Ixi = (mi /12)(b2i + c2i ), (3.21)

Iyi = (mi /12)(a2i + c2i ), (3.22)

Izi = (mi /12)(a2i + b2i ). (3.23)


El robot Hexapod Mark II cuenta con 18 servomotores marca DYNAMIXEL mo-
delo AX-12, numerados como se muestra en la Fig. 3.3. Observando las ecuaciones
3.19 y 3.20 notamos que es necesario obtener R, r, Km y J para cada servomotor.
40 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

Tabla 3.3: Parmetros dinmicos de la extremidad del robot Hexapod Mark II.

Parmetro Eslabn 1 Eslabn 2 Eslabn 3


mi [Kg] 25.08 103 74.94 103 97.03 103
Li [m] 5.2 102 6.6 102 13 102
Lci [m] 2.6 102 3.3 102 6.5 102
Ixi [Kg m2 ] 9.23 106 2.23 105 4.31 105
Iyi [Kg m2 ] 1.02 105 3.57 105 1.68 104
Izi [Kg m2 ] 1.02 105 4.1 105 1.47 104

Figura 3.3: Numeracin de servomotores.

La relacin de engranaje r = 1/254 est especificada por el fabricante[26]. Para


estimar el valor de R se aplicaron diversos voltajes entre las terminales del estator
(ver Fig. 3.4), se midi la corriente suministrada y se ajust una lnea recta a los
valores obtenidos. Calculando la pendiente de la recta se obtuvo R = 8.4 para el
servomotor 11 como se muestra en la Fig. 3.5.
Para la estimacin de Km se acopl una barra de 12 cm al servomotor como
se muestra en la Fig. 3.6. En el extremo de la barra se fueron colocando masas de
diferentes pesos y se conectaron las terminales del estator a una fuente de corriente
la cual se hizo variar hasta que la barra alcanz una posicin horizontal. En ese
momento se calcul el torque aplicado y se midi la corriente suministrada (ver Tabla
3.4). Con los valores obtenidos se ajust una recta y, obteniendo su pendiente se
obtuvo Km = 0.0031481N m/A para el servomotor 11 como se muestra en la Fig.
3.7.
Para la estimacin de la inercia del rotor y de los engranes, se realiz el siguiente
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II 41

Figura 3.4: Terminales del estator del servomotor 11.

Figura 3.5: Estimacin de la resistencia de armadura.

procedimiento descrito en [27]. Se estim el porcentaje de la masa correspondiente a


los engranes y el motor de C. D. teniendo en cuenta que el servomotor tiene una masa
total de 53.5 grs. Considerando que el motor de C. D. cuenta con imanes permanentes
en la carcasa, se puede aproximar la masa del rotor a un poco menos de la mitad de
42 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

Figura 3.6: Procedimiento para la estimacin de la constante de par.

Tabla 3.4: Valores utilizados para la estimacin de Km .

Corriente aplicada [A] Masa [gr] Torque calculado [N m]


0.16 109 0.12
0.20 148 0.17
0.23 174 0.20
0.27 200 0.23
0.31 258 0.30

la masa total del motor de C. D. Los porcentajes estimados se muestran en la Fig.


3.8.
La inercia de un cilindro que gira sobre su propio eje est dada por la ecuacin
3.24, donde m es su masa y r es el radio. Conociendo los dimetros del rotor y de
los engranes, podemos estimar la inercia de cada uno de ellos como se muestra en
la Tabla 3.5. Considerando que el servomotor cuenta con seis engranes se calcul el
valor de la inercia total del rotor y engranes J = 1.13 106 Kg m2 .

mr2
J= . (3.24)
2
Podemos notar que para todos los servomotores los valores de J y r pueden ser los
mismos, mientras que los valores R y Km pueden variar ligeramente. Por consiguiente
en la Tabla 3.6 se muestran estos valores estimados para los servomotores 7, 9 y 11,
que corresponden a la extremidad con la que se va a trabajar. Para esto se utiliz el
mismo mtodo de caracterizacin utilizado en el servomotor 11.
Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II 43

Figura 3.7: Estimacin de la constante de par.

Figura 3.8: Porcentajes estimados de masas de las partes del servomotor.

Tabla 3.5: Estimacin de la inercia del rotor y de los engranes.

Objeto Masa [gr] Dimetro [mm] Inercia [Kg m2 ]


Rotor 10.7 26 9.04 107
Engrane 0.9 16 2.88 108
44 Captulo 3: Modelado dinmico de la extremidad del robot Hexapod Mark II

Tabla 3.6: Estimacin de R y Km para cada servomotor.

Servomotor R[] Km [N m/A]


7 8.5 0.0033325
9 8.3 0.0038039
11 8.4 0.0031481

3.6. Conclusiones
En este captulo se realiz el modelado dinmico de la extremidad del robot cami-
nante Hexapod Mark II mediante dos mtodos conocidos: el mtodo de Newton Euler
y el de Euler-Lagrange. El primero de ellos realiza un anlisis de fuerzas y pares apli-
cados a cada eslabn. El segundo hace uso del concepto de lagrangiano para obtener
el modelo del sistema.
Debido a que ambos mtodos entregaron los mismos resultados, se pudo verificar
que la aproximacin del modelo dinmico obtenida fue adecuada. Esto resulta indisc-
pensable, ya que en todo sistema de control, el correcto modelado de la planta influye
directamente en la respuesta del sistema ante una entrada de control.
Observando el modelo dinmico obtenido en el apndice D podemos notar que po-
see una gran cantidad de trminos algebraicos, por lo que en el proceso de implemen-
tacin nos limita a utilizar microcontroladores de alta capacidad de procesamiento,
con el fin de estimar adecuadamente el modelo dinmico de la planta en tiempo real.
Asimismo se consider tambin el modelado dinmico de los actuadores, siendo de
suma importancia debido a que son los generadores de torque, teniendo como entradas
seales de voltaje o de corriente. Combinando el modelo dinmico de los actuadores
con el modelo de la extremidad del robot se obtuvo el modelo dinmico combinado
que en lugar de tener como entrada seales de torque, tiene como entrada seales de
voltaje. Esto resulta indispensable ya que en la prtica no resulta conveniente tener
un sistema que tenga como entradas de control seales de torque. Tambin se realiz
la caracterizacin de los motores de C. D. mediante mtodos conocidos.
Con estos resultados obtenidos finalmente se tiene un adecuado modelado y carac-
terizacin de la extremidad del robot Hexapod Mark II, la cual por sus caractersticas
propias se considera como un sistema no lineal multivariable. En la actualidad existen
diversas tcnicas para linealizar y tratar este tipo de sistemas. La ventaja de utilizar
este modelo no lineal, es que en l se incluyen todos los efectos inerciales causados
por los movimientos de cada eslabn, por lo que resulta interesante el diseo de un
controlador que permita que el sistema siga referencias deseadas, y que adems re-
chaze perturbaciones presentes. En el siguiente captulo se propone un controlador
Proporcional Integral Generalizado que cumple con estas caractersticas.
Captulo 4

Control GPI de la extremidad del


Robot Hexapod Mark II

4.1. Introduccin
Las herramientas desarrolladas en el rea de control automtico en las ltimas
dcadas han permitido resolver una serie de problemas presentes en la dinmica de
diversos sistemas. Aspectos tales como no linealidades, rechazo de perturbaciones,
incertidumbre paramtrica entre otros, han sido tratados ampliamente. En la robtica
mvil se han desarrollado tcnicas de control clsico, adaptivo y robusto, aplicado a
posicionamiento y seguimiento de trayectorias [28].
En el presente Captulo se propone una ley de Control basada en una tcnica
denominada Control Proporcional-Integral Generalizado (GPI)[29] que a su vez em-
plea teora de sistemas diferencialmente planos [30][31][32] e introduce el concepto
de reconstructor integral1 . Dicha tcnica fue aplicada inicialmente a sistemas lineales
[33], y posteriormente fue extendida a sistemas no lineales como en [34]. Se utilizar
el modelo dinmico de la extremidad del robot Hexapod Mark II obtenido en el ca-
ptulo 3, combinado con la dinmica de los actuadores. Los parmetros obtenidos al
caracterizar los actuadores y la extremidad sern utilizados para obtener resultados
de simulacin.
Para poder llevar a cabo el control de movimiento, se disearn tambien trayecto-
rias de referencia que representarn los movimientos deseados, basadas en polinomios
de Bzier[35]. Asimismo se disear una ley de control Par-Calculado ampliamente
utilizada en aplicaciones de Robots Manipuladores. Los resultados de simulacin ob-
tenidos al utilizar esta ley servirn como referencia para comparar cuantitativamente
el desempeo del controlador GPI propuesto.
1 El
reconstructor integral permite observar una variable no medible a partir de la integral
de una cierta relacin entre la entrada y la salida de un sistema.

45
46 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

4.2. Diseo de trayectorias


Antes de comenzar con el diseo de los controladores propuestos, este apartado se
enfocar al diseo de las trayectorias deseadas que representan las seales de referencia
que cada actuador debe seguir. A diferencia de las trayectorias utilizadas en el control
de posicin, las trayectorias aqu diseadas son dinmicas, caracterizadas por una
funcin en el tiempo. Para disear dichas funciones se utilizar una tcnica basada
en polinomios de Bzier [35], en la que se proponen los puntos en donde se desea que
la trayectoria de referencia se aproxime, y utilizando las ecuaciones que describen las
curvas de Bzier se generan funciones que se aproximan a los puntos deseados en un
tiempo determinado. Los puntos propuestos para que la extremidad del Robot pase se
muestran en la Tabla 4.1. Tambin se muestran los valores en coordenadas angulares
obtenidos mediante cinemtica inversa.

Tabla 4.1: Puntos cartesianos a seguir.

Punto cartesiano [cm] q1 [rad] q2 [rad] q3 [rad]


P0 (10, 16, 8.5) 1.0122 0.3343 1.2964
P1 (8, 18, 4) 1.1526 0.7693 1.4913
P2 (2, 20, 2) 1.4711 1.1728 1.4924
P3 (2, 20, 2) 1.6705 0.1728 1.4924
P4 (8, 18, 4) 1.9890 0.7693 1.4913
P5 (10, 16, 8.5) 2.1293 0.3343 1.2964
P6 (5, 18, 8.5) 1.8418 0.3508 1.3269
P7 (5, 18, 8.5) 1.2998 0.3508 1.3269
P8 (10, 16, 8.5) 1.0122 0.3343 1.2964

La extremidad del robot siguiendo los puntos deseados (P0 ...P8 ) se puede observar
en la Fig. 4.1, que como se puede ver simula la trayectoria que seguira para poder dar
un paso y avanzar hacia adelante. Asimismo se propone que la trayectoria completa la
efecte en dos segundos. Finalmente las trayectorias expresadas en funcin del tiempo
para cada grado de libertad se muestran en las ecuaciones 4.1, 4.2 y 4.3, en donde qid
representa la trayectoria angular a seguir por la i-sima articulacin. Llamaremos a
estas trayectorias como trayectorias de locomocin.

q1d = 0.00002t8 0.00090t7 + 0.01130t6 0.05856t5 + ... (4.1)

0.1464t4 0.26006t3 + 0.31167t2 + 0.280t + 1.0122,


Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 47

Figura 4.1: Trayectoria a seguir para poder dar un paso.

q2d = 0.00005t8 0.00026t7 0.00178t6 + 0.10172t4 ... (4.2)

0.3255t3 0.055125t2 + 0.87t + 0.3343,

q3d = 0.0001t8 + 0.00141t7 0.0055t6 + 0.05269t4 ... (4.3)

0.16861t3 + 0.33915t2 0.3898t 1.2964.


Para evaluar el desempeo de los controladores propuestos, en [36] se propone di-
sear trayectorias que contengan un trmino tipo escalon para observar la respuesta
transitoria, un trmino tipo sinusoidal para evaluar la respuesta ante seales pe-
ridicas relativamente rpidas, y un trmino que crezca suavemente para evitar la
saturacin de los actuadores. Las trayectorias propuestas que cumplen con estas ca-
ractersticas estn dadas por las ecuaciones 4.4, 4.5 y 4.6, y sern de gran utilidad mas
adelante para determinar de forma cuantitativa el desempeo de dichos controladores.
Llamaremos a estas trayectorias como trayectorias de prueba.
3 3
q1d = (1 e2t ) + (1 e2t )sen(15t), (4.4)
9 12
4 3 3
q2d = (1 e2t ) + (1 e2t )sen(10t), (4.5)
13 12
48 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

3 3
q3d = (1 e2t ) + (1 e2t )sen(10t). (4.6)
2 12

4.3. Control Par-Calculado


El mtodo de control Par-Calculado o tambin conocido como dinmica inversa
es un caso especial del mtodo de linealizacin por retroalimentacin en sistemas no
lineales [37]. Consideremos el modelo dinmico de un robot manipulador de n grados
de libertad, representado por la ecuacin 4.7[24].

M (q)q + C(q, q)q + g(q) = u. (4.7)

La idea principal de la dinmica inversa es encontrar una ley de control no lineal


u = f (q, q, t) que en lazo cerrado linealize el sistema 4.7. Analizando la ecuacin 4.7
vemos que es posible elegir una nueva entrada de control v de acuerdo a la ecuacin
4.8.

u = M (q)v + C(q, q)q + g(q). (4.8)

Sustituyendo 4.7 en 4.8, reduciendo trminos y tomando en cuenta que la matriz


M (q) es invertible, tenemos finalmente la ecuacin 4.9.

q = v. (4.9)

El resultado obtenido es un sistema reducido lineal y con dinmica desacoplada,


razn por la cual este mtodo se denomina Dinmica Inversa. Lo que se realiza es
una transformacin de una entrada de control de torque a una entrada de control de
aceleracin. Ahora se puede disear la entrada de control v para un sistema lineal
de segundo orden, por lo que resulta conveniente establecer una ley de control PD
con aceleracin anticipativa quedando como en la ecuacin 4.10, donde q = q qd
representa el error de posicin, q = q qd representa el error de velocidad y Kd , Kp
son matrices diagonales cuyos elementos representan las ganancias proporcionales y
derivativas. Como se vio en la seccin anterior, qd = [q1d , q2d , q3d ]T representa el vector
de trayectorias deseadas que en este caso, representan las trayectorias de prueba y de
locomocin diseadas.


v = qd (t) Kp q Kd q. (4.10)

Analizando la ecuacin anterior vemos que para la implementacin del sistema


en lazo cerrado necesitaramos de actuadores de aceleracin, los cuales no tenemos
Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 49

disponibles. Por ello es necesario regresar nuevamente a la representacin del siste-


ma donde tenemos una entrada de control de torque. Esto se logra sustituyendo la
ecuacin 4.10 en 4.8, lo que resulta en la ecuacin 4.11.

+ C(q, q)q + g(q).


u = M (q)(qd (t) Kp q Kv q) (4.11)
Sustituyendo la ecuacin anterior en el modelo dinmico del robot manipulador
(ecuacin 3.2) y reduciendo trminos tenemos finalmente la ecuacin 4.12.

q(t) + Kd q + Kp q = 0. (4.12)
De esta ltima se obtiene el denominador de la funcin de transferencia en lazo
cerrado para la i-sima articulacin dado por: s2 + Kdi s + Kpi . Mediante el mtodo de
asignacin de polos[44][46] es posible establecer un polinomio deseado de tal forma que
el sistema responda a un cierto factor de amortiguamiento y frecuencia natural ,
como se muestra en la ecuacin 4.13. El factor de amortiguamiento determinar el tipo
de oscilacin que tendr el sistema, mientras que la frecuencia natural determinar
el ancho de banda y por consiguiente, la velocidad de respuesta.

s2 + Kdi s + Kpi = s2 + 2i i s + i2 . (4.13)


Comparando coeficientes de las potencias de s se observa que la ganancia deri-
vativa queda determinada por Kdi = 2i i y la ganancia proporcional queda como
Kpi = i2 .
Observando la ecuacin 4.12 notamos que finalmente las matrices Kp y Kd quedan
como en las ecuaciones 4.14 y 4.15.

2 0 . . . 0
1
0 2 . . .

2 0
Kp =
... ..

, (4.14)
. . .
.
0 0 . . . n2

21 1 0 ... 0

0 22 2 ...
0
Kd =
... .. .

(4.15)
...
.

0 0 . . . 2n n
Para la extremidad del robot Hexapod Mark II se dise una ley de control Par-
Calculado basada en la ecuacin 4.11, con una frecuencia natural de 30 y un factor
de amortiguamiento de 1 que obedece a una respuesta crticamente amortiguada para
evitar saturacin de los actuadores. La frecuencia natural determinar la tasa de
decaimiento del error de seguimiento.
50 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

a) Trayectorias de locomocin
d) Trayectorias de prueba
2 2
q 1(t) q 1(t)
1.5 q 2(t) q 2(t)
q 3(t) 1.5 q 3(t)
1 q 1d (t) q 1d (t)
q 2d (t) q 2d (t)
q 3d (t) 1 q 3d (t)
0.5
[rads]

[rads]
0
0.5

-0.5

0
-1

-1.5 -0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

b) Error de seguimiento para trayectorias de locomocin


e)
Error de seguimiento para trayectorias de prueba
0.03 0.04
q~1(t) q~1 (t)
0.02 q~2(t) 0.02 q~2 (t)
q~3(t) q~3 (t)
0.01
0

0
-0.02
[rads]

[rads]

-0.01
-0.04
-0.02

-0.06
-0.03

-0.04 -0.08

-0.05 -0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

c) Torque aplicado para trayectorias de locomocin


f)
Torque aplicado para trayectorias de prueba
0.1 0.1
=1 (t) =1 (t)
=2 (t) =2 (t)
0.05 =3 (t) 0.05 =3 (t)

0 0
[N-m]

[N-m]

-0.05 -0.05

-0.1 -0.1

-0.15 -0.15
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

Figura 4.2: Resultados de simulacin del controlador Par-Calculado.


Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 51

Se realizaron simulaciones para observar la respuesta transitoria del sistema, tanto


para las trayectorias de locomocin como para las trayectorias de prueba. Se aadi al
sistema una perturbacin constante de par L = [0.01, 0.01, 0.01]T [N m] quedando
como en la ecuacin 4.16. Esto con el fin de observar la capacidad del controlador
para rechazar perturbaciones. Los resultados obtenidos se observan en la Fig. 4.2.

M (q)q + C(q, q)q + g(q) = u + L . (4.16)


En la Fig. 4.2 a) se presenta un aceptable seguimiento de las trayectorias de
locomocin para los primeros dos grados de libertad, siendo el tercero el ms afectado
presentando un mayor error de seguimiento debido a la perturbacin constante de par
y a la influencia de las fuerzas centrpetas y de Coriolis causadas por el movimiento de
los dos primeros eslabones. Los errores de seguimiento se observan de mejor manera
en la Fig. 4.2 b) donde confirmamos que se presenta un mayor error de seguimiento en
la tercera articulacin. La magnitud de estos errores de seguimiento es mnima por lo
que se considera que el sistema en lazo cerrado tiene una respuesta aceptable. En la
Fig. 4.2 c) se observa el torque aplicado en cada una de las articulaciones, mostrando
que el sistema responde de manera rpida partiendo del reposo.
De la misma forma en la Fig. 4.2 d) se observa un adecuado seguimiento de las
trayectorias de prueba para los primeros dos grados de libertad, siendo el tercero ms
afectado por las mismas causas expuestas anteriormente. Se confirma la magnitud
de los errores de seguimiento con la Fig. 4.2 e) resultando ser mnimos y mostrando
una aceptable respuesta del sistema en lazo cerrado a pesar de las trayectorias de
referencia que cambian drsticamente en el tiempo y de la perturbacin constante
aadida al sistema. El torque aplicado en este caso se muestra en la Fig. 4.2 f).

4.4. Control Proporcional Integral Generalizado


Uno de los principales inconvenientes en la teora de control moderna es la ne-
cesidad de disponer de todos los estados del sistema. Para ello se han propuesto
numerosas tcnicas que involucran diseos de observadores asintticos del estado, lo
cual en ocasiones incrementa el costo de los sistemas o requieren ser programados por
software para reproducir el sistema del mismo orden que el observado. Sin embargo
dichos observadores no son robustos ante perturbaciones externas tales como friccin
viscosa, friccin de Coulomb, entre otras[38]. Aunado a esto la estimacin de variables
derivativas utilizadas en sistemas en lazo cerrado introducen ruido al mismo sistema.
La tcnica de control conocida como Proporcional-Integral Generalizado (GPI) es
una tcnica que se basa en la idea de evitar el diseo de observadores y de mediciones
de los estados utilizando reconstructores integrales como estimadores de las variables
de estado. Una de las principales caractersticas de esta tcnica es que se basa solo
52 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

en mediciones de las entradas, salidas y combinaciones lineales de un nmero finito


de integraciones de las mismas despreciando las condiciones iniciales desconocidas.
Resultado de esto es que el reconstructor integral difiera del valor real de la variable
estimada, generando un error que puede ser caracterizado mediante un polinomio
de orden finito. De esta manera el controlador se complementa con un nmero fini-
to de integradores que cancelan el efecto desestabilizante del reconstructor integral.
Como resultado, se obtiene un controlador PI de n-simo orden, el cual estabiliza el
sistema en lazo cerrado mediante la asignacin arbitraria de los polos del polinomio
caracterstico del sistema.
En resumen, el controlador GPI presenta los siguientes elementos fundamentales
en su construccin[39]:

Los reconstructores integrales, que permiten evitar el uso de derivadas y medi-


ciones del estado.

Las integrales de la salida, que son introducidas para garantizar la robustez ante
perturbaciones externas.

Las integrales de la entrada, que pueden ser introducidas a travs de los recons-
tructores integrales y directamente para facilitar la seleccin de las ganancias
del controlador.

A continuacin se analizar un sistema de segundo orden que tiene una estructura


especial, a travs de la cual se justifica el desarrollo del controlador GPI.
Consideremos el siguiente sistema lineal de segundo orden:

y = u, (4.17)
con condiciones iniciales

y(0) = y0 , y(0) = y0 , (4.18)


tomando como variables de estado a:

x1 = y, x2 = y, (4.19)
las condiciones iniciales y(0) y y(0) pueden ser reescritas como:

x1 (0) = x10 , x2 (0) = x20 , (4.20)


entonces, la representacin en el espacio de estados del sistema 4.17 queda como:
" # " #" # " #
x1 0 1 x1 0
= + u, (4.21)
x2 0 0 x2 1
Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 53

en donde se observa que los polos del sistema estn ubicados en s1,2 = 0, es decir,
el sistema es crticamente estable, por lo tanto ante una perturbacin infinitesimal se
vuelve inestable.
Por otro lado, la ley de control por retroalimentacin de estados dada por:

u = k2 x2 k1 x1 , (4.22)
estabiliza el sistema mediante la asignacin arbitraria de polos. Ahora, asumiendo
que x2 no est disponible, necesita ser aproximada por medio de un observador; sin
embargo integrando x2 de 4.21 tenemos:
Z t
x2 = u( )d + x20 (4.23)
0

en donde la condicin inicial x20 es desconocida. Entonces considerando que el


reconstructor integral solo contiene trminos de la entrada y la salida queda definido
a:
Z
x2 = u, (4.24)

en donde por simplicidad, los lmites y la variable de integracin se omiten.


Sustituyendo esta ltima ecuacin en la ley de control 4.22, se tiene:

u = k2 x2 k1x1 , (4.25)
en donde la relacin del reconstructor integral x2 con la variable real x2 est dada
por:

x2 = x2 x20 . (4.26)
Sustituyendo la ecuacin anterior en 4.25 tenemos:

u = k2 (x2 x20 ) k1 x1 , (4.27)


y tomando a x1 como salida, la dinmica del sistema en lazo cerrado queda go-
bernada por:

x2 + k2 x1 + k1 x1 = k2 x20 . (4.28)
Aplicando el teorema del valor final para analizar la respuesta en estado estable
[40][41], vemos que:

k2
x1 x20 6= 0. (4.29)
k1
54 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

Por consiguiente, el sistema no tiende al valor deseado que en este caso es la


referencia igual a cero. Este error de estabilizacin puede ser corregido aadiendo una
accin de control integral a la ley de control quedando de la siguiente forma:
Z
u = k2 x2 k1 x1 k0 x1 . (4.30)

Tomando nuevamente a x1 como salida, el sistema en lazo cerrado est dado por:
Z
x2 + k2 x1 + k1 x1 + k0 x1 = k2 x20 . (4.31)
k2
Definiendo = x1
R
k0
, el sistema en lazo cerrado puede ser reescrito como:

x2 + k2 x1 + k1 x1 = k0 ,

= x1 , (4.32)

k2
(0) = x20 .
k0
Como resultado, en estado estable se tiene:

x1 0. (4.33)
Regresando a las coordenadas originales, la ley de control est dada por:
Z Z
u = k2 u k1 y k0 y. (4.34)

Observemos como la ley de control anterior se compone nicamente de mediciones


de la entrada y de la salida, evitando el uso de la variable de estado x2 = y. El sistema
en lazo cerrado en coordenadas iniciales est dado por:

y + k2 y + k1 y = k0 , (4.35)

= y. (4.36)
Finalmente, tomando la transformada de Laplace de la ecuacin 4.38, se tiene
que la ley de control y la funcin de transferencia del sistema en lazo cerrado en el
dominio de la frecuencia quedan como:
" #
k1 s + k0
U (s) = Y (s), (4.37)
s + k2
Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 55

k1 s + k0
G(s) = . (4.38)
s3 + k2 s2 + k1 s + k0
Observamos que el polinomio caracterstico pc (s) = s3 + k2 s2 + k1 s + k0 tiene polos
completamente asignables de manera arbitraria.
Como se puede observar, los estados del sistema estimados mediante reconstruc-
tores integrales presentan un error respecto al valor real del estado.
El uso del vector de estado reconstruido integralmente en lugar del vector de estado
real genera una ley de control que desestabiliza el sistema en lazo cerrado debido al
error de la reconstruccin. Para cancelar dicho efecto desestabilizante el controlador
se complementa con un nmero suficiente de integrales iteradas del error de la salida.
Adicionalmente, si se desea que el controlador GPI sea robusto ante perturbaciones
constantes se aade una accin integral extra. En la siguiente seccin presentaremos
un controlador GPI pero aplicado a un sistema no lineal que consiste en un brazo
robtico.

4.5. Control GPI no lineal aplicado a un brazo ro-


btico
Como se mencion anteriormente, la estructura de control GPI se implement
en sistemas lineales incialmente. Ms tarde se present en un sistema no lineal re-
presentado por las ecuaciones de movimiento de un robot manipulador de n grados
de libertad con articulaciones rotativas. El controlador fue presentado en [42] y de la
misma forma que en el controlador GPI lineal posee las mismas caractersticas: utiliza
el concepto de reconstructor integral e integrales tanto de la entrada como de la salida
del sistema, evitando en este caso, la medicin del vector de velocidades angulares
q = [q1 , q2 , q3 ]T .
Consideremos el modelo dinmico perturbado del robot manipulador dado por la
ecuacin 4.39, donde M (q) es la matriz de inercia, C(q, q) es la matriz de fuerzas
centrpetas y de Coriolis, G(q) es el vector de pares gravitacionales, q es el vector de
aceleraciones articulares, q es el vector de velocidades articulares, es el vector de
pares aplicados y L es un vector de perturbaciones de par.

M (q)v + C(q, q)q + g(q) = + L . (4.39)

Entonces la ley de control GPI no lineal presentada en [42] est dada por la
ecuacin 4.40, donde las matrices Kd , Kp , Ki y Kii son matrices diagonales de n n
que contienen elementos kd , kp , ki y kii respectivamente.
56 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

Z t
= D(q)[qd Kd (q qd ) Kp (q qd )] D(q)Ki [q(s) qd (s)] ds...
Z t Z 0s
... + D(q)[D1 (qd )C(qd , qd )qd ] + G(q) D(q)Kii [q(z) qd (z)] dzds... (4.40)
Z t 0 0
... + D(q)Kd D1 (qd )C(qd , qd )qd ds.
0

El reconstructor integral est dado por la ecuacin 4.41, y se ha obtenido del


modelo dinmico del robot manipulador (ecuacin 4.39) al integrar una vez el vector
de estados q. Ntese que del resultado de la integracin solo hay que considerar los
trminos que incluyen mediciones de la entrada y de la salida del sistema para disear
el reconstructor integral.

Z t
q = D1 (q)[G(q) + ] ds. (4.41)
0

De esta forma, el reconstructor de velocidades angulares se relaciona con la velo-


cidad verdadera como:

Z t
q = q D1 (q)[C(q, q)q L ] ds + q(0). (4.42)
0

En los sistemas lineales, la diferencia entre las seales reconstruidas y las verda-
deras est dada por polinomios del tiempo que dependen de las condiciones iniciales
del estado. En el caso de sistemas no lineales, esta diferencia puede tambin incluir
los trminos del modelo de la planta que, debido a las no linealidades, no pueden
calcularse en funcin de integrales de la salida y de la entrada. Estos trminos no
lineales, aparecen como perturbaciones no lineales de la dinmica del error en lazo
cerrado. La manera de cancelar estas perturbaciones es utilizar en la ley de control,
prealimentaciones de la trayectoria a seguir con el fin de construir una perturbacin
no lineal que desaparece con el tiempo. [42] Con la teora conocida sobre sistemas
exponencialmente estables [43] se demuestra estabilidad en el equilibrio deseado. De
esta forma, sustituyendo la ley de control GPI en la ecuacin 4.39 tenemos un sistema
de la forma:

x = Ax + g(q, q, qd , qd ), (4.43)
...
q, q ] representa el vector de estados y g(q, q, qd , qd ) representa el
donde x = [q, q,
vector de trminos no lineales que desaparecen con el tiempo. Del sistema nominal,
Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 57

la matriz A queda de la siguiente forma:



0 I 0 0
0 0 I 0

A=
, (4.44)
0 0 0 I
Kii Ki Kp Kd
donde I representa una matriz identidad de n n. El polinomio caracterstico de
A queda determinado por:

det(sI A) = (s4 + kd s3 + kp s2 + ki s + kii )3 . (4.45)


De la ecuacin anterior observamos que se puede igualar la ecuacin caracterstica
a un polinomio deseado[44][46] con un factor de amortiguamiento y una frecuencia
natural especfica de las siguiente forma:

s4 + kd s3 + kp s2 + ki s + kii = (s2 + 21 1 + 12 )(s2 + 22 2 + 22 ). (4.46)

Desarrollando trminos de la parte derecha de la ecuacin anterior y comparando


coeficientes de las potencias de s, vemos que las ganancias quedan determinadas por:

kd = 21 1 + 22 2 , (4.47)

kp = 12 + 41 2 1 2 + 22 , (4.48)

ki = 22 12 2 + 21 1 22 , (4.49)

kii = 12 22 . (4.50)
Se realiz la simulacin del controlador GPI aplicado a la dinmica de la extre-
midad del robot Hexapod Mark II caracterizada en el captulo 3. Las simulaciones se
realizaron tanto para las trayectorias de prueba como para las trayectorias de loco-
mocin, utilizando como parmetros transitorios 1 = 1, 1 = 30, 2 = 0.9 y 2 = 31.
El vector de perturbaciones se estableci como L = [0.01, 0.01, 0.01]T [N m]. Los
resultados se muestran en la Fig. 4.3.
Observando las Fig. 4.3 a) y d) notamos que las trayectorias se siguien de una mejor
manera en comparacin con el controlador Par-Calculado, y esto lo podemos verificar
en la Figs. 4.3 b) y e) donde se muestran los errores de seguimiento cuyas magnitudes
han decaido a pesar de la perturbacin constante de par aadida al sistema.
58 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

a) d)
Trayectorias de locomocin Trayectorias de prueba
2 2
q 1(t) q 1(t)
1.5 q 2(t) q 2(t)
q 3(t) 1.5 q 3(t)
1 q 1d (t) q 1d (t)
q 2d (t) q 2d (t)
q 3d (t) 1 q 3d (t)
0.5
[rads]

[rads]
0
0.5

-0.5

0
-1

-1.5 -0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]
b) e)
Error de seguimiento para trayectorias de locomocin Error de seguimiento para trayectorias de prueba
0.035 0.08
q~1 (t) q~1 (t)
0.03
q~2 (t) q~2 (t)
0.06
0.025 q~3 (t) q~3 (t)
0.02
0.04
0.015
[rads]

[rads]

0.01 0.02

0.005
0
0

-0.005
-0.02
-0.01

-0.015 -0.04
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

c) Torque aplicado para trayectorias de locomocin


f) Torque aplicado para trayectorias de prueba
0.2 0.1
=1 (t) =1 (t)
0.15 =2 (t) =2 (t)
=3 (t) 0.05 =3 (t)
0.1

0.05 0
[N-m]

[N-m]

0
-0.05

-0.05

-0.1
-0.1

-0.15
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -0.15
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs]
[segs]

Figura 4.3: Resultados de simulacin del controlador GPI no lineal.


Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 59

Se observa un mayor sobretiro para el tercer grado de libertad en los errores de


seguimiento debido a que, como era de esperarse, se ve mayormente perturbado por
los efectos de fuerzas centrpetas y de Coriolis.
En las Figs. 4.3 c) y f) se muestra el torque aplicado para cada trayectoria, siendo
mucho menor al lmite de saturacin de los actuadores el cual es de 1.5 [N m] y fue
proporcionado por el fabricante.
Es importante notar que el seguimiento de las trayectorias ha mejorado conside-
rablemente, rechazando la perturbacin constante y estabilizando el sistema en un
tiempo muy corto de aproximadamente 0.3 segundos. Sin embargo en estado estable
notamos que contina existiendo un error de seguimiento, aunque mnimo y acep-
table, asociado a las perturbaciones no lineales que aparecen en el sistema en lazo
cerrado. Finalmente hay que recalcar que en este caso no se est midiendo el vector
de velocidades angulares q.
En el siguiente apartado veremos como el error de seguimiento puede disminuir
an ms modificando la ley de control propuesta en [42].

4.6. Control GPI no lineal con integrador de tercer


orden
En la seccin anterior se present el controlador propuesto en [42]. Se dise el
sistema en lazo cerrado para la extremidad del robot Hexapod Mark II, se sintonizaron
las ganancias y se obtuvieron los resultados de simulacin. Sin embargo observamos
que en estado estable existe un error mnimo pero aceptable debido las perturbaciones
asociadas la dinmica no lineal del sistema en lazo cerrado. Tambin se observ que la
cancelacin de estas perturbaciones no lineales se logra utilizando en la ley de control
integrales del error de seguimiento, tal como se hace en los sistemas lineales para el
rechazo de perturbaciones.
Siguiendo esta idea se propone modificar la ley de control GPI no lineal aadiendo
un trmino que contiene la triple integral del error de seguimiento, con el fin de reducir
las perturbaciones no lineales antes mencionadas. As, la ley de control modificada
toma la forma:

Z t
= D(q)[qd Kd (q qd ) Kp (q qd )] D(q)Ki [q(s) qd (s)] ds...
Z t Z 0s
... + D(q)[D1 (qd )C(qd , qd )qd ] + G(q) D(q)Kii [q(z) qd (z)] dzds... (4.51)
Z t Z t0Z s0Z z
... + D(q)Kd D1 (qd )C(qd , qd )qd ds D(q)Kiii [q(r) qd (r)] drdzds,
0 0 0 0

de donde observamos que se tiene una nueva matriz diagonal Kiii de n n con
60 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

elementos dados por kiii , y que adems se utiliza el mismo reconstructor integral dado
por:.
Z t
q = D1 (q)[G(q) + ] ds. (4.52)
0

De la misma forma, el reconstructor de velocidades angulares se relaciona con la


velocidad verdadera como:
Z t
q = q + D1 (q)[C(q, q)q L ] ds + q(0). (4.53)
0

Tambin, el modelo dinmico perturbado del brazo robtico est determinado por:

M (q)v + C(q, q)q + g(q) = + L . (4.54)


Sustituyendo 4.51 en 4.54, usando 4.53 y multiplicando ambos lados por D1 (q)
tenemos:

Z t
q + D1 C(q, q)q = D1 (q)L + qd Kd [q + D1 (q)[C(q, q)q L ] ds + q(0)]...
0

Z t
1
... Kp (q qd ) + D (q)C(qd , qd )qd + Kd D1 (qd )C(qd , qd )qd ds... (4.55)
0

Z t Z tZ s
... Ki [q(s) qd (s)] ds Kii [q(z) qd (z)] dzds...
0 0 0

Z tZ sZ z
... D(q)Kiii [q(r) qd (r)] drdzds.
0 0 0

Derivando cuatro veces la ecuacin anterior y reagrupando trminos, obtenemos:


...
q (5) + Kd q (4) + Kp q + Ki q + Kii q + Kiii q = () + 1 (L ), (4.56)
Donde:

q = q qd ,

d3 d2
() = + K d ,
dt3 dt2

= [D1 (qd )C(qd , qd )qd ] [D1 (q)C(q, q)q],


Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 61

d3 1 d2 1
1 (L ) = D (q)L + K d D (q)L .
dt3 dt2
Representando la ecuacin anterior en el espacio de estados obtenemos la siguiente
dinmica en lazo cerrado:

= A + B[() + 1 (L )], (4.57)


Donde:
...
= [q, q,
q, q , q (4) ],


0 I 0 0 0
0 0 I 0 0



A= 0
0 0 I 0 , (4.58)
0 0 0 0 I

Kiii Kii Ki Kp Kd

0
0


B= 0 .
(4.59)
0

I
De la misma forma que en [42], () y 1 (L ) representan trminos no lineales
acotados que desaparecen con el tiempo. Asimismo I representa una matriz identidad
de nn, donde n es el nmero de grados de libertad de un brazo robtico con uniones
rotativas. Ocupndonos ahora del sistema nominal, el polinomio caracterstico de A
queda como:

det(sI A) = (s5 + kd s4 + kp s3 + ki s2 + kii s + kiii )3 . (4.60)


De esta forma podemos igualar el polinomio caracterstico a un polonomio deseado
que obedezca a parmetros transitorios como el factor de amortiguamiento y la
frecuencia natural . Esto se realiza de la siguiente manera:

s5 +kd s4 +kp s3 +ki s2 +kii s+kiii = (s+a)(s2 +21 1 s+12 )(s2 +22 2 s+22 ), (4.61)

donde el polo s = a es un polo no dominante. Desarrollando la parte derecha de


la ecuacin anterior, observamos que las ganancias del controlador estn dadas por:

kd = a + 21 1 + 22 2 , (4.62)
62 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

a) Trayectorias de locomocin d) Trayectorias de prueba


2 2
q 1(t) q 1(t)
1.5 q 2(t) q 2(t)
q 3(t) 1.5 q 3(t)
1 q 1d (t) q 1d (t)
q 2d (t) q 2d (t)
q 3d (t) 1 q 3d (t)
0.5
[rads]

[rads]
0
0.5

-0.5

0
-1

-1.5 -0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

b) x 10
-3 Error de seguimiento para trayectorias de locomocin e) Error de seguimiento para trayectorias de prueba
8 0.02
q~1 (t) q~1 (t)
q~2 (t) q~2 (t)
6 0.015
q~3 (t) q~3 (t)

4 0.01
[rads]

[rads]

2 0.005

0 0

-2 -0.005

-4 -0.01
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

c) Torque aplicado para trayectorias de locomocin f) Torque aplicado para trayectorias de prueba
0.6 0.1
=1 (t) =1 (t)
0.5 =2 (t) =2 (t)
=3 (t) 0.05 =3 (t)
0.4

0.3
0
[N-m]

[N-m]

0.2

0.1 -0.05

0
-0.1
-0.1

-0.2 -0.15
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
[segs] [segs]

Figura 4.4: Resultados de simulacin del controlador GPI no lineal modificado.


Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 63

kp = 12 + 22 + 22 2 (a + 21 1 ) + 2a1 1 , (4.63)

ki = 22 (a + 21 1 ) + a12 + 22 2 (12 + 2a1 1 ), (4.64)

kii = 22 (12 + 2a1 1 ) + 2a2 12 2 , (4.65)

kiii = a12 22 . (4.66)


De la misma forma se realizaron simulaciones para el controlador aqu propuesto
utilizando la dinmica de la extremidad del robot Hexapod Mark II para las trayecto-
rias de prueba y de locomocin. Los parmetros transitorios se eligieron como 1 = 1,
1 = 30, 2 = 0.9, 2 = 31. El polo a = 300 est diez veces ms alejado de la parte real
de los polos dominantes para no afectar la aproximacin de segundo orden. El vector
de perturbaciones se estableci como L = [0.01, 0.01, 0.01]T [N m]. Los resultados
se muestran en la Fig. 4.4.
En las Figs. 4.4 a) y d) se observa un ptimo seguimiento de las trayectorias
de prueba y de locomocin. El sobretiro inicial en el tercer grado de libertad que
se present en las simulaciones del controlador anterior ha sido disminuido conside-
rablemente. Esto se puede verificar en las Figs. 4.4 b) y e) donde se presenta una
disminucion en la magnitud de los errores de seguimiento. Las Figs. 4.4 c) y f) mues-
tran el torque aplicado, donde se puede observar que para las trayectorias de locomo-
cin, el torque inicial aplicado en cada grado de libertad es mayor que en las otras
simulaciones realizadas.
Es importante destacar que el error de seguimiento ha disminuido al agregar en
la ley de control el trmino de la triple integral del error de seguimiento. Como se
puede observar las perturbaciones no lineales son rechazadas de una mejor forma,
adems de que con el uso del reconstructor integral se evita la medicin del vector de
velocidades q.
En el siguiente apartado analizaremos de forma cuantitativa el desempeo de los
tres controladores simulados.

4.7. Anlisis de desempeo de los controladores


propuestos
El anlisis de desempeo de un robot manipulador se complica debido a su na-
turaleza no lineal a diferencia de los sistemas lineales donde es posible determinar
parmetros tales como el tiempo de asentamiento, tiempo de subida, etc. Algunas
64 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

evaluaciones de desempeo se han realizado observando la respuesta transitoria de


los sistemas en lazo cerrado, y a juicio del evaluador se determina si el controlador
tiene un buen desempeo.
Sin embargo existe un mtodo en el cual se obtiene un ndice de desempeo de
un controlador para robots manipuladores, el cual est basado en la norma L2 y fue
introducido inicialmente en 1993 por Whitcomb en [45]. Posteriormente fue utilizado
por otros autores en [48], [49] y [50].
El ndice de desempeo de un controlador para un robot manipulador se define
como:
s
1ZT
L2 [q(t)] = kq(t)k2 dt (4.67)
T 0
donde T representa el tiempo de simulacin o de experimentacin. Observemos
que la expresin anterior no es mas que un promedio en el tiempo de la norma de la
seal de error de seguimiento.
El mejor comportamiento de desempeo del controlador corresponde a una nor-
ma L2 ms pequea. Un valor alto en el ndice de desempeo representa un pobre
desempeo.
Un alto desempeo del controlador significa que la exactitud en el error de posi-
cionamiento debe ser idealmente cero, entonces la respuesta del robot es de calidad.
Es decir, prsenta una curva con perfil suave, picos o sobreimpulsos atenuados, rpido
estado transitorio, no hay vibracin mecnica ni oscilaciones [8].
En la siguiente tabla se muestran los ndices de desempeo obtenidos para cada
controlador diseado, utilizando las trayectorias de prueba y de locomocin.

Tabla 4.2: ndices de desempeo de los controladores simulados.

L2 para trayectorias de locomocin


Controlador Par Calculado Controlador GPI Controlador GPI Modificado
0.0382 0.0076 0.0013
L2 para trayectorias de prueba
Controlador Par Calculado Controlador GPI Controlador GPI modificado
0.0462 0.0132 0.0021

Para poder comparar de una mejor manera los ndices de desempeo, se colocaron
en un grfico de barras, tomando como referencia al 100 % el controlador con el
desempeo mas pobre, como se muestra en la Fig. 4.5.
Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 65

ndice de desempeo para


trayectorias de locomocin
100%
ndice de desempeo
90%
80%
70%
60%
50% 100%
40%
30%
20%
10% 20%
0% 3%
Controlador Par Calculado Controlador GPI Controlador GPI
modificado

ndice de desempeo para


trayectorias de prueba
100%
ndice de desempeo
90%
80%
70%
60%
50% 100%
40%
30%
20%
29%
10%
0% 5%
Controlador Par Calculado Controlador GPI Controlador GPI
modificado

Figura 4.5: ndices de desempeo de los controladores simulados.


66 Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II

Analizando la grfica para las trayectorias de locomocin observamos que en efec-


to, el controlador que presenta el ndice de desempeo ms pobre es el Par-Calculado
debido a que es el que presenta un mayor error de seguimiento en las trayectorias
deseadas. Mientras tanto el controlador GPI presenta una mejora notable al caer
a un 20 % comparndolo con el anterior. Le sigue el controlador GPI modificado
presentando un desempeo ms ptimo cayendo a un 3 % en comparacin con el
Par-Calculado.
La grfica para las trayectorias de prueba muestra ndices de desempeo similares,
poniendo tambin con el desempeo ms pobre al controlador Par-Calculado, seguido
del controlador GPI con un 29 % y el GPI modificado con un 5 %. Se puede observar un
ligero aumento en el ndice de desempeo en ambos controladores GPI en comparacin
con las trayectorias de prueba. Esto refleja un empobrecimiento mnimo, y se debe a
que dichas trayectorias estn diseadas para evaluar el desempeo de los controladores
ante cambios abruptos en la trayectoria deseada. An as los controladores GPI siguen
mostrando una mejora sustancial en comparacin con el controlador Par-Calculado.

4.8. Conclusiones
En este captulo se disearon trayectorias deseadas mediante polinomios de B-
zier para simular el movimiento de la extremidad del robot Hexapod Mark II. Como
resultado, las trayectorias de locomocin diseadas se aproximan a puntos de refe-
rencia propuestos y quedan representadas por funciones en el tiempo, siendo de gran
utilidad en el diseo e implementacin de controladores de movimiento en robots
manipuladores.
Se utiliz un controlador tipo Par-Calculado basado en el mtodo de dinmica
inversa para aplicarlo a la extremidad del Robot con el fin de evaluar la respuesta
transitoria. Se construy un sistema en lazo cerrado con la dinmica perturbada de
la extremidad del Robot, se sintonizaron las ganancias y en las simulaciones se obtu-
vieron resultados aceptables en el error de seguimiento, tanto para las trayectorias de
prueba como para las trayectorias de locomocin a pesar de incluir una perturbacin
constante en el sistema en lazo cerrado.
Los resultados en el error de seguimiento mejoraron al utilizar una ley de control
GPI no lineal[42] donde de la misma forma se sintonizaron las ganancias mediante el
mtodo de asignacin de polos y se realizaron las simulaciones correspondientes para
los dos tipos de trayectorias. Con ayuda del reconstructor integral se evit hacer uso
del vector de velocidades q. Los resultados mostraron una reduccin significativa en
el error de seguimiento, mantieniendo una magnitud mnima pero aceptable asociada
a la dinmica no lineal presentada en el sistema en lazo cerrado.
Para corregir an ms dicho error de seguimiento, se propuso modificar la ley de
Captulo 4: Control GPI de la extremidad del Robot Hexapod Mark II 67

control GPI no lineal aadiento un trmino que contiene la integral triple del error
de seguimiento. Este controlador modificado se aplic a la dinmica perturbada de
la extremidad del robot creando un sistema en lazo cerrado, para lo cual siguiendo
el mismo camino se sintonizaron las ganancias y se realizaron las simulaciones de la
respuesta del sistema para las trayectorias de prueba y de locomocin. Se observ que
el error de seguimiento disminuy an ms con esta ley de control GPI modificada.
Para obtener de forma cuantitativa el desempeo de los controladores emplea-
dos se utiliz el ndice de desempeo. Poniendo los resultados en un grfico de barras
observamos una mejora significativa en el desempeo de los controladores GPI en com-
paracin con el controlador Par-Calculado. Asimismo se observa un mejor desempeo
del controlador GPI modificado en comparacin con el GPI. Con esto se comprue-
ba que el trmino aadido a la ley de control GPI compensa de manera efectiva la
dinmica no lineal presente en el sistema de lazo cerrado.
Hay que reconocer la gran carga computacional requerida en las simulaciones de los
controladores GPI debido a las integraciones numricas necesarias para su ejecucin,
aunque en la actualidad se dispone de dispositivos de alta capacidad de procesamiento
capaces de realizar tanto simulaciones como implementacin en Hardware de dichos
controladores.
Los resultados de simulacin obtenidos son en condiciones ideales ya que en la
prctica observamos diferentes tipos de ruido. Para el caso del subsistema de sensado
de posicin de los motores de CD podemos encontrar fuentes de ruido tales como
ruido trmico, ruido blanco y ruido rosa [47]. En el subsistema mecnico de los motores
encontramos otras fuentes de ruido como el cascabeleo, friccin de Coulomb y friccin
viscosa[25], entre otros encontrados en la literatura.
Estos efectos aparecen como perturbaciones en el sistema, por lo que el hecho de
cancelarlos parcialmente depender de la instrumentacin realizada, del desempeo
del controlador utilizado y de la programacin numrica efectuada.
En el siguiente captulo se realizar la implementacin en Hardware de los con-
troladores Par-Calculado y GPI no lineal.
Captulo 5

Implementacin en Hardware del


Controlador GPI

5.1. Introduccin
Implementar un controlador para un robot manipulador implica acondicionar cada
uno de los subsistemas que componen el lazo cerrado. Como se muestra en la figura
5.1 se necesita de un planificador de trayectorias el cual determinar la posicin
angular a seguir en un instante de tiempo determinado. Dependiendo del recorrido
deseado del robot se pueden construir funciones en el tiempo que determinen de
forma automtica la posicin deseada, tal y como se hizo en el captulo anterior. Este
constructor de trayectorias puede ser una computadora, o bien podemos tener una
entrada de referencia externa manipulada por una persona.
Se necesita tambin de un sistema de cmputo que procese la ley de control con
el fin de calcular el torque o voltaje que deber aplicarse a cada una de las articu-
laciones del robot. Este sistema computacional requiere forzosamente del clculo en
tiempo real de los valores de las trayectorias reales y deseadas. Generalmente se utili-
za la modulacin por ancho de pulso (PWM) [51] para generar como salida el voltaje
aplicado a los actuadores y el sentido de giro. En este campo es muy utilizado las
computadoras personales, o tambin hardware de propsito general como las tarjetas
arduino, en las cuales es posible programar directamente los algoritmos de control o
bien establecer interfaces de comunicacin con otras plataformas [52].
La etapa de potencia es la que recibe y amplifica la seal PWM de voltaje pro-
veniente del sistema de cmputo. Para ello normlamente se utilizan circuitos en con-
figuracin Puente H [53] para accionar a los motores de corriente directa adems de
controlar su sentido de giro.
Los robots manipuladores normalmente constan de motores de corriente direc-
ta. Los mas modernos y los industriales constan de servomotores de transmisin

69
70 Captulo 5: Implementacin en Hardware del Controlador GPI

directa[54] los cuales carecen de engranajes reduciendo considerablemente los efectos


de friccin.
Los sensores de posicin angular utilizados en robtica son los resolvers, potenci-
metros, tacmetros y encoders [55][56][57]; siendo estos dos ltimos los ms utilizados.
El uso de cada uno de ellos depender de la aplicacin que tenga el manipulador que
sin duda tiene que ver con el nivel de exactitud deseado en las mediciones.

PLANIFICADOR PROCESADOR DE LA ETAPA DE SENSORES DE


ROBOT
DE TRAYECTORIAS LEY DE CONTROL POTENCIA POSICIN/VELOCIDAD

Figura 5.1: Esquema general de la implementacin de un controlador robtico.

Como se mencion anteriormente, el robot Hexapod Mark II incorpora servomo-


tores que a su vez estn compuestos de motores de corriente directa. Para medir las
posiciones angulares se utilizan potencimetros. El proceso de acondicionamiento de
las seales de posicin, as como el procesamiento de la ley de control se efectu me-
diante una tarjeta de adquisicin de datos USB-60008 de National Instruments. Para
la etapa de potencia se utilizaron circuitos en configuracin Puente H utilizando el
integrado L298N. La programacin de los controladores se realiz en el entorno de
programacin LabVIEW.
En la siguiente seccin se describe brevemente el entorno de programacin Lab-
VIEW para sistemas de instrumentacin.

5.2. Entorno de programacin LabVIEW


LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) es una
plataforma y entorno de desarrollo para disear sistemas, desarrollado por National
Instruments (NI), con un lenguaje de programacin visual grfico. Recomendado para
sistemas hardware y software de pruebas, control y diseo, simulado o real y embe-
bido, pues acelera la productividad. El lenguaje que usa se llama lenguaje G, donde
la G representa lenguaje Grfico. Los programas aqu creados se denominan instru-
mentos virtuales (VIs), haciendo alusin a un instrumento real que hace la funcin
de adquisicin, acondicionamiento o control.
Un instrumento real tendr un Panel Frontal donde estarn sus botones, pantallas,
etc. y una circuitera interna. En LabVIEW estas partes reciben el nombre de Panel
Frontal y Diagrama de Bloques respectivamente. El Panel Frontal es la parte que ver
Captulo 5: Implementacin en Hardware del Controlador GPI 71

Figura 5.2: Panel frontal de un VI.

Figura 5.3: Diagrama de bloques de un VI.

el usuario y en LabVIEW suele ser de fondo gris. El Diagrama de Bloques es donde


se realizar la programacin y suele ser de fondo blanco [58][59].
El panel frontal se construye con controles e indicadores, los cuales representan
las entradas y salidas interactivas del VI. Los controles pueden ser perillas, botones,
etc. Los indicadores pueden ser grficas, LEDs, indicadores de barras entre otros. Un
ejemplo de un Panel Frontal utilizado en LabVIEW se muestra en la Fig. 5.2.
El Diagrama de Bloques utiliza una representacin grfica de funciones para con-
trolar los objetos del Panel Frontal, los cuales aparecen como terminales en el Dia-
grama de Bloques. Un ejemplo de un diagrama de bloques utilizado en LabVIEW se
muestra en la Fig. 5.3. En la siguiente seccin se ver la tarjeta de adquisicin de
72 Captulo 5: Implementacin en Hardware del Controlador GPI

datos NI USB-6008 utilizada para las pruebas experimentales.

5.3. Tarjeta de Adquisicin de datos NI USB-6008


Se utiliz una tarjeta de adquisicin de datos NI USB-6008 (Fig. 5.4) en el proceso
de implementacin de los controladores diseados. Esta tarjeta brinda funcionalidad
de adquisicin de datos bsica para aplicaciones como registro de datos simple, medi-
das porttiles y experimentos acadmicos de laboratorio. Funciona directamente con
el software de instrumentacin virtual LabVIEW.

Figura 5.4: Tarjeta de adquisicin de datos NI USB-6008.

Dentro de sus principales caractersticas destacan[60]:

8 entradas analgicas (12 bits, 10 kS/s).

2 salidas analgicas (12 bits a 150 S/s).

12 E/S digitales.

Contador de 32 bits.

Energizado por bus para una mayor movilidad.

Conectividad de seal integrada.

Compatible con Linux, Mac OS, Pocket PC y Windows.

En la Fig. 5.5 se observan los pines de entrada y salida de este dispositivo, donde
los pines AI son las entradas analgicas, AO las salidas analgicas y P las salidas
digitales.
Captulo 5: Implementacin en Hardware del Controlador GPI 73

En la implementacin de los controladores diseados se utilizaron las salidas anal-


gicas para adquirir los voltajes suministrados por los potencimetros de los servomo-
tores, los cuales hacen variar un voltaje al variar su posicin angular.
Tambin se utilizaron las salidas digitales para proporcionar las seales PWM y
las seales de sentido de giro a la etapa de potencia. En la siguiente seccin veremos
la plataforma experimental montada para la implementacin de los controladores
diseados.

Figura 5.5: Pines de entrada y salida de la tarjeta NI USB-6008.

5.4. Plataforma experimental


La plataforma experimental montada para la implementacin de los controladores
Par-Calculado y GPI se muestra en la Fig. 5.6 como diagrama de bloques.
Observando dicha figura vemos que la tarjeta NI USB-6008 se conecta va USB a
una computadora personal con sistema operativo Windows, que adems tiene insta-
lado el software LabVIEW versin 2011. En las entradas analgicas de la tarjeta se
conectan las terminales de los potencimetros de cada sevomotor de la extremidad
del Robot Hexapod Mark II.
74 Captulo 5: Implementacin en Hardware del Controlador GPI

POTENCIMETROS
MOTORES DE CD
PWM +/- 12V

0-5V
+12VDC
+5V

ENTRADAS ANALGICAS
PWM SALIDAS DIGITALES
L298N
GIRO
+12 V

USB

Figura 5.6: Diagrama de bloques de la plataforma experimental.

Las salidas digitales de la tarjeta se conectan a los circuitos en configuracin puente


H basados en el circuito integrado L298N. En estas salidas digitales se generan las
seales PWM y de sentido de giro para cada servomotor. Los circuitos puentes H se
alimentan con +12VDC provenientes de una fuente de alimentacin marca MATRIX,
y con +5VDC provenientes de la tarjeta NI USB-6008. Las seales PWM de +/-
12VDC generadas por los puentes H van directamente conectadas a las terminales de
cada motor de corriente directa que se encuentran dentro de los servomotores de la
extremidad del Robot. Asimismo, los potencimetros son alimentados con una fuente
Captulo 5: Implementacin en Hardware del Controlador GPI 75

de alimentacin adicional de +12VDC.


El montaje final se observa en la Fig. 5.7, a partir del cual se realiz la implemen-
tacin en Hardware de los controladores Par-Calculado y GPI.
En la siguiente seccin se ver la programacin en lenguaje grfico del controlador
Par-Calculado y los resutlados experimentales obtenidos.

Figura 5.7: Plataforma experimental.

5.5. Programacin y resultados experimentales del


controlador Par-Calculado
Se realiz la construccin del cdigo fuente en LabVIEW para el controlador Par-
Calculado. Se program la dinmica de la extremidad del Robot Hexapod Mark II.
Las trayectorias de locomocin fueron modificadas y programadas de tal forma que el
movimiento deseado se d en cuatro segundos. Para la estimacin de las velocidades
angulares se utiliz un mtodo de diferencial numrica. Los voltajes medidos de los
sensores de posicin fueron acondicionados para poder ser representados en valores
angulares. Las seales PWM fueron programadas utilizando un mtodo presentado
en [61]. El cdigo fuente principal se observa en la Fig. 5.8 en donde se puede notar
que se construyo un sub-VI denominado ROBOT (Fig. 5.9). En l se encuentra pro-
gramada la dinmica del robot, las trayectorias deseadas, los errores de seguimiento,
la sintonizacin de ganancias y el clculo del ciclo de trabajo de la seal PWM.
76 Captulo 5: Implementacin en Hardware del Controlador GPI

Figura 5.8: Cdigo fuente del controlador Par-Calculado.


Captulo 5: Implementacin en Hardware del Controlador GPI 77

Figura 5.9: Cdigo fuente del sub-VI ROBOT.


78 Captulo 5: Implementacin en Hardware del Controlador GPI

0 4

0 4

0 4

Figura 5.10: Resultados experimentales del controlador Par-Calculado.


Captulo 5: Implementacin en Hardware del Controlador GPI 79

En la Fig. 5.10 se muestran los resultados experimentales obtenidos al implementar


el controlador Par-Calculado en la extremidad del Robot Hexapod Mark II, donde
para esto q1, q2, q3, q1d, q2d, q3d, q1t, q2t y q3t representan q1 , q2 , q3 , q1d , q2d , q3d ,
q1 , q2 y q3 respectivamente. Asimismo tau1, tau2 y tau3 representan 1 , 2 y3 . La
primera grfica muestra las trayectorias reales y las deseadas. Para el primer grado
de libertad observamos un adecuado seguimiento de la trayectoria. Los otros dos
grados de libertad presentan un error de seguimiento inicialmente. Esto lo verificamos
en la segunda grfica donde se presenta el error de seguimiento, donde el mayor
error registrado es de 0.25[rad] que luego es compensado hasta caer en un margen
aceptable en un tiempo de aproximadamente 2.3[seg]. En la tercer grfica se presenta
el torque aplicado a cada articulacin, en donde el mayor torque registrado es de
aproximadamente 0.8[N m] siendo menor al lmite de saturacin de los actuadores
de 1.5[N m].
En resumen, observamos una respuesta aceptable del controlador Par-Calculado.
El seguimiento de las trayectorias con un margen de error aceptable nos indica que
se obtuvo una adecuada aproximacin de los parmetros dinmicos, tanto de la ex-
tremidad del Robot como de los motores de corriente directa. Como era de esperarse
en este experimento se presentan los efectos de las diferentes fuentes de ruido, como
el ruido trmico, ruido rosa, ruido blanco, cascabeleo, friccin de Coulomb, friccin
viscosa y el error de cuantizacin. En la siguiente seccin se muestran los resultados
experimentales del controlador GPI no lineal.

5.6. Programacin y resultados experimentales del


controlador GPI no lineal
Se realiz en el software Labview la programacin del controlador GPI no lineal.
Se program la dinmica de la extremidad, la dinmica de los actuadores, la ley
de control y las trayectorias de locomocin ajustadas a cuatro segundos como en el
caso anterior. Las integrales numricas involucradas se realizaron mediante sumas de
Riemman. Los voltajes obtenidos de los sensores de posicin fueron acondicionados
para representar los desplazamientos angulares correspondientes. La programacin de
las seales PWM se realiz mediante el mismo mtodo utilizado en la seccin anterior.
En la Fig. 5.11 se muestra el cdigo fuente utilizado para el Controlador GPI no
lineal. Debido a la gran cantidad de integrales numricas y matrices calculadas, no
fue posible construir un sub-VI que realizara todo el clculo de la dinmica a causa de
la limitada cantidad de entradas y salidas de un sub-VI. Por ello el cdigo fuente se
tuvo que realizar en una sola ventana tratando de agrupar los elementos principales.
80 Captulo 5: Implementacin en Hardware del Controlador GPI

Figura 5.11: Cdigo fuente del controlador GPI no lineal.


Captulo 5: Implementacin en Hardware del Controlador GPI 81

0 4

0 4

0 4

Figura 5.12: Resultados experimentales del controlador GPI no lineal.


82 Captulo 5: Implementacin en Hardware del Controlador GPI

En la Fig. 5.12 se muestran los resultados experimentales obtenidos al implementar


el controlador GPI en la extremidad del Robot Hexapod Mark II, donde de la misma
forma q1, q2, q3, q1d, q2d, q3d, q1t, q2t, q3t, tau1, tau2 y tau3 representan q1 ,
q2 , q3 , q1d , q2d , q3d , q1 , q2 , q3 y 1 , 2 y3 respectivamente. En la primera grfica se
observan las trayectorias reales y las deseadas. En el primer grado de libertad se
presenta un error de seguimiento mnimo el cual tiende a reducirse con el tiempo. En
el segundo grado de libertad se presenta un mayor error de seguimiento que empieza
a ser compensado en aproximadamente 3[seg]. El tercer grado de libertad presenta
un aceptable seguimiento de la trayectoria deseada. En la segunda figura se presentan
los errores de seguimiento donde se confirma una mayor error para el segundo grado
de libertad. El error presentado podra ser dismunuido modificando el mtodo de
integracin. En la tercer figura se muestra el torque aplicado en cada articulacin
donde podemos notar que no exceden los 0.2[N m].
En resumen podemos notar un adecuado seguimiento de las trayectorias deseadas
a excepcin del segundo grado de libertad donde se presenta un mayor error de se-
guimiento. De la misma forma podemos observar los efectos de las fuentes de ruido
reflejado como perturbaciones en el sistema. Como trabajo a futuro se plantea con-
tinuar con la programacin para modificar los mtodos de integracin y obtener una
mejor respuesta del sistema en lazo cerrado. Hay que recalcar tambin que en este
Controlador programado no se estn midiendo las velocidades angulares debido al uso
del reconstructor integral en la ley de control.

5.7. Conclusiones
En este captulo se present una breve descripcin del software de instrumentacin
virtual LabVIEW donde se programaron los Controladores Par-Calculado y GPI no
lineal. Se programaron tambin las matrices del modelo dinmico de la extremidad
del robot Hexapod Mark II, las trayectorias deseadas y la generacin de seales PWM,
encontrndonos con una manera prctica de realizar la programacin de toda la di-
nmica del sistema y de los procesos multitareas involucrados. Se present la tarjeta
de adquisicin de datos NI USB-6008 la cual sirvi como interfaz entre la computado-
ra y la extremidad del robot, teniendo como ventaja el tener en un solo dispositivo
la adquisicin y generacin de seales tanto analgicas como digitales. Asimismo se
explic la composicin de la plataforma experimental montada que se utiliz en la
implementacin de los controladores mencionados.
En los resultados experimentales del Controlador Par Calculado se observa un
aceptable seguimiento de las trayectorias deseadas. Esto demuestra que las estima-
ciones de los parmetros dinmicos de la extremidad del Robot y de los actuadores
es adecuada. El error de seguimiento presentado se encuentra tambin en un margen
Captulo 5: Implementacin en Hardware del Controlador GPI 83

aceptable para los tres grados de libertad.


En los resultados experimentales del Controlador GPI no lineal se observa un buen
seguimiento de las trayectorias deseadas a excepcin del segundo grado de libertad,
donde vemos que el error de seguimiento comienza a ser compensado a los 3[seg] apro-
ximadamente. Dicho error podra ser disminudo an ms modificando las tcnicas
de integracin utilizadas, ya que para estos experimentos se utilizo como mtodo de
integracin numrica una suma de Riemman.
En resumen, hemos obtenido resultados aceptables en el proceso de implementa-
cin de ambos controladores, lo cual se ve reflejado en mrgenes de error suficien-
temente bajos para aplicaciones de locomocin en un robot caminante como el aqu
tratado. Observamos tambin la presencia de diversas fuentes de ruido inherentes al
sistema que afectan ligeramente la respuesta transitoria del sistema en lazo cerrado.
Es importante notar que a pesar de no estar midiendo velocidades angulares en
el Controlador GPI, se obtuvieron resultados aceptables que podran ser mejorados
modificando el cdigo fuente.
La implementacin del controlador GPI modificado requiere de un dispositivo que
cuente con mayor capacidad de procesamiento, tal como un DSP o un FPGA, por lo
cual dicho proceso de implementacin est fuera del alcance de este trabajo de Tesis.
Captulo 6

Conclusiones y trabajo a futuro

En este trabajo de tesis se realiz el proceso de control de la extremidad de un


Robot caminante. El trabajo incluy el modelado, la caracterizacin y el diseo de
esquemas de control no lineales. En el Captulo 1 se realiz el modelado cinemtico del
brazo robtico, el cual result esencial en el modelado dinmico visto en el Captulo
3. Este modelado dinmico se verific mediante dos mtodos conocidos, comprobando
que se obtienen las mismas ecuaciones. En este mismo captulo se realiz la caracte-
rizacin de los parmetros dinmicos tanto de la extremidad del robot como de los
actuadores partiendo del modelo dinmico del motor de corriente directa.
Cabe destacar que el control de un brazo manipulador se puede realizar de dos
formas. La primera es viendo cada articulacin como un sistema lineal en el que los
efectos de fuerzas centrpetas y de coriolis, as como los pesos de los eslabones son
vistos como perturbaciones en el sistema. Este esquema de control es conocido como
Control por juntas independientes. La segunda forma es modelando el brazo robtico
completo como un sistema no lineal, lo que complica un poco ms el anlisis de
estabilidad y el diseo de los controladores, aunque tiene la ventaja de que el sistema
contiene los efectos inerciales que se ignoran en el mtodo anterior. En este trabajo
de tesis se ha optado por este ltimo mtodo para modelar el brazo robtico, con el
fin de continuar con el estudio de controladores aplicables a este tipo de sistemas no
lineales.
En el Captulo 4 se disearon dos tipos de trayectorias de referencia. Las trayecto-
rias de locomocin fueron aquellas donde la extremidad del Robot Hexapod Mark II
simulaba dar un paso. Las trayectorias de prueba se disearon con el fin de evaluar el
desempeo de los controladores diseados al observar la respuesta transitoria cuando
la entrada de referencia era una seal que cambiaba drsticamente en el tiempo.
Se utiliz un controlador Par Calculado aplicado a la dinmica de la extremidad
del robot, se sintonizaron las ganancias para observar una respuesta adecuada del
sistema ante las trayectorias de referencia diseadas y se obtuvieron resultados de

85
86 Captulo 6: Conclusiones y trabajo a futuro

simulacin aceptables, con un error de seguimiento mnimo. Asimismo se utiliz un


controlador GPI no lineal en el que se obtuvieron mejores resultados de simulacin
en comparacin con el controlador Par-Calculado. Este controlador se basa principal-
mente en el concepto del reconstructor integral, el cual es capaz de estimar el estado
de un sistema utilizando nicamente mediciones de la entrada y la salida de dicho
sistema. Adems, es capaz de rechazar perturbaciones utilizando, en la ley de control,
integrales iteradas de la salida.
Se propuso modificar la ley de Control GPI no lineal aadiendo un trmino que
contiene la integral triple del error de seguimiento. Con esto, los resultados de simu-
lacin mejoraron an ms, lo cual se vi reflejado en una disminucin del error de
seguimiento.
La modificacin del controlador GPI demostr que es capaz de reducir significa-
tivamente el error de seguimiento a pesar de las perturbaciones constantes de par
aadidas al sistema. Esta ley de control GPI modificada podr ser utilizada en cual-
quier robot manipulador de n grados de libertad con uniones rotativas. Asimismo el
cdigo fuente desarrollado para ambos controladores podr ser utilizado en un robot
manipulador que cuente con el mismo modelo dinmico que posee la extremidad del
Robot aqu tratada.
Se realiz la evaluacin de desempeo de los tres controladores utilizados con el
fin de obtener cuantitativamente el desempeo de cada uno. En estas evaluaciones
result que el controlador Par-Calculado tiene el desempeo ms pobre, el Controlador
GPI un desempeo medio y el Controlador GPI modificado un desempeo alto. Sin
embargo se reconoce la gran carga computacional que conlleva el procesar una ley
de control GPI no lineal como las aqu tratadas, esto debido a la gran cantidad de
trminos algebraicos y trigonomtricos, adems de las integrales numricas utilizadas.
En el Captulo 5 se muestra la plataforma experimental necesaria para la imple-
mentacin de los Controladores Par-Calculado y GPI. Las principales herramientas
utilizadas fueron el software de instrumentacin virtual LabVIEW, la tarjeta de ad-
quisicin de datos NI USB-6008, la extremidad del Robot, circuitos Puentes H y
fuentes de alimentacin de +12VDC. La programacin de ambos controladores se
realiz en el software antes mencionado. Tambin se programaron las matrices din-
micas del Robot, las trayectorias de locomocin y la generacin de seales PWM y
de sentido de giro.
En los resultados experimentales se observ un adecuado seguimiento de las tra-
yectorias utilizando el Controlador Par-Calculado, en donde las estimaciones de las
velocidades angulares fueron realizadas mediante diferenciales numricas.
En los resultados experimentales del Controlador GPI no lineal se observ tambin
un adecuado seguimiento de las trayectorias siendo el segundo grado de libertad el
que present un mayor error de seguimiento.
En resumen se han obtenido resultados experimentales aceptables al observar que
Captulo 6: Conclusiones y trabajo a futuro 87

las magnitudes de los errores de seguimiento son suficientemente mnimas para apli-
caciones de locomocin en el robot caminante Hexapod Mark II.
Adems, con estos resultados obtenidos podemos notar que se ha realizado un
correcto modelado y caracterizacin de la extremidad del Robot Hexapod Mark II
representado por un sistema no lineal mutlivariable.
En el proceso de implementacin del controlador GPI se aproximaron las integrales
numricas mediante sumas de Riemman. Como trabajo a futuro se puede continuar
perfeccionando el cdigo fuente del controlador GPI para obtener mejores aproxi-
maciones de las integrales involucradas y con ello obtener una mejor respuesta del
sistema en lazo cerrado. Por ejemplo, se podra utilizar un mtodo de integracin
trapezoidal o el mtodo de Runge-Kutta.
Tambin se deja como trabajo a futuro la implementacin del controlador GPI
modificado en una tarjeta DSP o FPGA. Esto debido al gran esfuerzo computacional
que se requiere al calcular esta ley de Control propuesta, la cual ha demostrado tener
un mejor desempeo, tal y como se observa en los resultados de simulacin efectuados
en el Captulo 4.
Otro punto importante sera realizar la programacin necesaria para poder con-
trolar de manera simultnea las seis extremidades implementando las trayectorias de
locomocin diseadas en este trabajo de Tesis. De la misma forma se requiere tambin
de dispositivos de alta capacidad de procesamiento como los DSP o FPGA.
Con el control de las seis extremidades se podran generar patrones de marcha con
el fin de que el robot pueda efectuar movimientos hacia adelante, hacia atrs, giros,
etc. Como trabajo a futuro tambin se deja la realizacin e implementacin de una
mquina de estado finito que permita al robot realizar movimientos especficos.
Una mquina de estado finito puede definirse como un modelo computacional que
realiza cmputos en forma automtica sobre una entrada para producir una salida.
En [62] se define como:

Un conjunto de eventos de entrada

Un conjunto de eventos de salida

Un conjunto de estados

Una funcin que relaciona los estados y las entradas con las salidas

Una funcin que relaciona los estados y las entradas con los estados (funcin de
transicin)

Una descripcin del estado inicial

A continuacin se deja como propuesta un modelo computacional sencillo que


permitir al robot Hexapod Mark II efecutar los siguientes movimientos:
88 Captulo 6: Conclusiones y trabajo a futuro

1. Partir del reposo - avanzar hacia adelante - regresar al reposo

2. Partir del reposo - avanzar hacia atrs - regresar al reposo

3. Partir del reposo - avanzar hacia adelante - avanzar hacia atrs - regresar al
reposo

En primer lugar se proponen los estados del robot Hexapod Mark II como se
describe en la Fig. 6.1. En ella se observan once estados diferentes E0, EF, E1, E2,
E3, E4, E5, E6, E7, E8, EB, donde las posiciones de cada extremidad cambian. Se
observa la simbologa ocupada para las extremidades que estn en contacto con el
suelo, y para aquellas que no lo estn. Tambin se observa la simbologa para ubicar
el frente del robot.

Figura 6.1: Estados de las extremidades del robot Hexapod Mark II.

En la figura 6.2 se muestra la secuencia de estados para las operaciones bsicas


de movimiento propuestas. Se muestra la simbologa ocupada para la secuencia del
avance hacia adelante, avance hacia atrs y reposo.
Para realizar el primer movimiento primero partimos del estado E0. Avanzamos
por lo estados EF, E1 y E2. Despues seguimos la secuencia E2...E7 y regresamos
otra vez a E2. Este ciclo permite al robot dar un paso hacia adelante. Si queremos
dar n pasos hacia adelante hay que repetir el ciclo n veces llegando siempre a E2.
Finalmente, para regresar al reposo partimos de E2 y seguimos la secuencia E1, EF,
E0.
Captulo 6: Conclusiones y trabajo a futuro 89

Figura 6.2: Secuencia de estados.

Para realizar el segundo movimento partimos de E0 y seguimos la secuencia E0,


E8, E7. A partir de aqu efectuamos m veces la secuencia E6, E5, E4, E3, E2, E7
para m nmero de pasos para que el robot avance hacia atrs. Para regresar al reposo
partimos de E7 y seguimos la secuencia E8, EB, E0.
Para realizar el tercer movimiento partimos de E0 y seguimos la secuencia EF, E1,
E2. Para avanzar hacia adelante seguimos n veces la secuencia E2, E3, E4, E5, E6,
E7, E2, para poder efectuar n pasos. Despus partiendo de E2, seguimos m veces la
secuencia E2, E7, E6, E5, E4, E3, E2 para poder dar m cantidad de pasos hacia atrs.
Finalmente partiendo de E2 seguimos la secuencia E1, EF, E0 y con esto llegamos al
estado de reposo.
Las transiciones entre los estados pueden efectuarse mediante tareas de segui-
miento de trayectorias en las extremidades efectuadas por un controlador GPI como
el diseado en este trabajo de Tesis. Cuando las extremidades estn en reposo se
puede utilizar un controlador de posicin en lazo cerrado para garantizar que el robot
permanezca en un estado determinado. Asimismo se propone que las extremidades
del robot cuenten con sensores de contacto, con el fin de determinar el momento en
el que cada extremidad toque el suelo.
Asimismo, se puede continuar con el diseo de mquinas de estado ms complejas
que permitan realizar movimientos tales como giros adems de diversos patrones de
marcha encontrados en la literatura.
Bibliografa

[1] Sandoval X. Y., Garca M., Prez L. A. & Castillo E., Kinematics of Hex-Piderix
- A six legged robot - Using Screw Theory, International Journal of Advanced
Robotic Systems, Vol. 10, 2013.

[2] Arikan K. B., A Test Bench to Study Bioinspired Control for Robot Walking, Con-
trol Engineering and Applied Informatics, Vol. 13, Nm. 2, pp. 76-80, Rumania,
2011.

[3] Garca M., Gorrostieta E., et. al., Kinematic analysis for trajectory generation in
one leg of a hexapod robot, Procedia Technology 3, pp. 342-350, 2012.

[4] De Len L. A., Generacin de patrones de marcha de un hexpodo por CPGs


mediante autmatas de Mealy, Instituto Politcnico Nacional - Centro de Investi-
gacin e Innovacin Tecnolgica, Tesis de Maestra, 2010.

[5] Habib M. K., Bioinspiration and Robotics: Walking and Climbing Robots, I-Tech
Education and Publishing, Vienna, 2007.

[6] Pounds P., Mahony R. & Corke P., Modeling and Control of a Quad-Rotor Robot,
Australian National University, Canberra, Australia, 2007.

[7] Raibert M., BigDog, the Rough-Terrain Quadruped Robot, Boston Dynamics,
Waltham, USA, 2008.

[8] Reyes F., Robtica, Control de Robots Manipuladores, Alfaomega, p. 522, 2011.

[9] Ollero A., Robtica, Manipuladores y Robots Mviles, Alfaomega, pp. 29-30, 2001.

[10] Takegaki M. and Arimoto S., A new feedback method for dynamic control of
manipulators, ASME J. Dyn. Syst. Meas. Control, 1981, pp. 119-125.

[11] Paul R. P., Modeling, Trajectory Calculation, and Servoing of a Computer Con-
trolled Arm, reporte tcnico AIM-, Laboratorio de Inteligencia Artificial de la
Universidad de Stanford, 1972.

91
92 Bibliografa

[12] Markiewicz B., Analysis of the Computed Torque Drive Method and Compari-
son with Conventional Position Servo for a Computed-Controlled Manipulator,
memorndum tcnico 33-601, Jet Propulsion Laboratory, marzo de 1973.

[13] Bejczy A., Robot Arm Dynamics and Control, memorndum tcnico 33-669, Jet
Propulsion Laboratory, febrero de 1974.

[14] Irving M., Electric Motors and Control Techniques, TAB Books, New York, 1994.

[15] Craig J, Hsu P. y Sastry S., Adaptive Control of Mechanical Manipulators, IEEE
Conference on Robotics and Automation, San Francisco, 1986.

[16] Craig J., Adaptive Control of Mechanical Manipulators, Addison-Wesley,


Reading, MA, 1998.

[17] Brogliato B., Landau I. D. and Lozano R., Adaptive Control of Mechanical Ma-
nipulators: A unified approach based on pasivity, Int. J. of Robust and Nonlinear
Control, 1:187-202, 1991.

[18] Slotine J. J. and Li W., On the Adaptive Control of Mechanical Manipulators,


The International Journal of Robotics Research, Vol. 6, nm. 3, 1987.

[19] Jurez J. A., Linares J., Guzmn E. and Sira-Ramrez H., Generalized Proportio-
nal Integral Tracking Controller for a Single-Phase Multilevel Cascade Inverter:
An FPGA Implementation, IEEE Transactions on Industrial Informatics, Vol. 10,
No. 1, 2014, pp. 256-266.

[20] Blanco A., Vela L. G., Lpez G., and Madagn A., A Generalized Proportional In-
tegral Controller for the Robust Perturbation Rejection in an Ankle Rehabilitation
Machine, International Conference on Mechatronics Electronics and Automotive
Engineering, 2013, pp. 140-145.

[21] Uicker J. J., Denavit J., and Hartenberg R. S., An iterative method for the dis-
placement analysis of spacial mechanisms, Trans. Applied Mechanics, 31 Series
E:309-314, 1964.

[22] Craig J. J., Robtica, Pearson Prentice Hall, p. 106, 2006.

[23] Fu K. S., Gonzalez R. C. & Lee C. S. G., Robtica, control, deteccin, vision e
inteligencia, Mc Graw Hill, 1998.

[24] Spong M. W. & Vidyasagar, Robot modeling and control, Ed. Wiley & Sons,
2006.
Bibliografa 93

[25] De Silva C. W., Sensors and actuators, control system instrumentation, CRC
Press, 2007.

[26] Robotis, Robotis e-Manual AX-12/ AX-12+/ AX-12A, 2010.

[27] Mecatronics Systems Inc., Mechatronics control kit model M-1, users manual
and software included, P. O. Box 11196, Champaign IL 61826-1196, 2001.

[28] Grizzle J. W., Chevallereau C., Choi J. H and Morris B., Feedback control of
dynamic bipedal locomotion, Boca Raton: CRC press, 2007.

[29] Fliess M., Marquez R., Delaleau E. and Sira-Ramrez H., Correcteurs
proportionnels-intgraux gnraliss, ESAIM: Control, Optimisation and Calcu-
lus of Variations, Vol. 7, pp. 23-41, 2002.

[30] Fliess M., Lvin J., Martin P. and P. Rouchon, Flatness and defect of nonlinear
systems: introductory theory and examples, Int. J. Control, Vol. 61, No. 6, 1327-
1361, 1995.

[31] Fliess M., Lvin J., Martin P. and P. Rouchon, Systmes diffrentiellement plats:
Intrt et examples, En Ecole dEt d Automatique de Grenoble. Flat systems:
theory and practice, 1996.

[32] Sira-Ramrez H. and Kumar S., Differentially flat systems, CRC press, 2004.

[33] Fliess M., Sur des pensers nouveaux faisons des vers anciens, in Actes Conference
Internationale Francophone d Automatique (CIFA-2000), pp. 26-36, Lille, France,
July 2000.

[34] Hernndez V. M., Control PI generalizado de sistemas no lineales, [Ph. D. thesis],


Departamento de Ingeniera Elctrica del CINVESTAV-IPN, 2003.

[35] Farin G. E., Curves and Surfaces for CAGD: A Practical Guide, 5ta Ed., Ed.
Morgan Kaufmann, San Francisco E. U., 2002.

[36] Kelly R. and Santibez V., Control de movimiento de robots manipuladores,


Ed. Pearson, 2003.

[37] Sira-Ramrez H., et. al., Control de sistemas no lineales, linealizacin aproxima-
da, extendida, exacta, Ed. Pearson, 2005.

[38] Fliess M., Marquez R. and Delaleau E., State feedbacks without asymptotic ob-
servers and generalized PID regulators, in Nonlinear Control in the Year 2000,
Lecture Notes in Control and Information Sciences, Vol. 258, pp. 367-384, Sprin-
ger, London 2001.
94 Bibliografa

[39] Mrquez R., A propos de quelques mthodes classiques de commande linaire:


Commande prdictive, correcteurs proportionnels-intgraux, prdicteurs de Smith,
PhD. Thesis, Universit Paris XI, UFR Scientifique dOrsay, No dordre 6584,
September 2001.

[40] Nise N. S., Sistemas de Control para Ingeniera, Compaa Editorial Continental,
1ra. Ed., 2002.

[41] Ogata K., Ingeniera de Control Moderna, Pearson Education, 5ta. Ed., 2010.

[42] Hernndez V.M. and Sira-Ramrez H., Generalized Proportional Integral Control
of Rigid Robots, Proc. of the 41st IEEE Conf. on Decision and Control, Las Vegas
E. U., 2002.

[43] Khalil H. Nonlinear Systems, Mcmillan Publishing Company, New York, 1992.

[44] Chen Ch., Linear System Theory and Design,Oxford University Press Inc., Third
Edition, 1999.

[45] Whitcomb L. L. A. and Koditschek D. E., Comparative experiments with a new


adaptive controller for robot arms, IEEE Transactions on Robotics and Automa-
tion, Vol.9 No. 1, February, 1993.

[46] Domnguez S., et. al., Control en el Espacio de Estado, Pearson Prentice Hall,
2nda. Ed., 2006.

[47] Tomasi W., Sistemas de Comunicaciones Electrnicas, Pearson Prentice Hall,


4ta. Ed., 2003.

[48] De Jager B. and Banens J., Experimental evaluations of robot controllers, Pro-
ceedings of the 33rd. Conference on Decision and Control. Lake Buena Vista, FI.
U.S.A.,pp. 363-368, December, 1994.

[49] Berghuis H, Roebbers H. and Nijmeijer H., Experimental comparison of para-


meter estimation methods in adaptive robot control, Automatica, 31(9), pp. 1275-
1285, 1995.

[50] Jaritz A. and Spong M., An experimental comparison of robust control algorithms
on a direct drive manipulator, IEEE Transactions on Control Systems Technology,
pp. 363-368, 1996.

[51] Carlson A. B., Crilly P. B. y Rutledge J. C., Sistemas de comunicacin: Una


introduccin a las seales y el ruido en las comunicaciones elctricas, McGraw-
Hill Interamericana,4ta Ed., 2007.
Bibliografa 95

[52] Lajara J. R. y Pelegr J., Sistemas integrados con arduino, Alfaomega Grupo
Editor, 1ra Ed., 2014.

[53] Torrente O., Ardunino, Curso Prctico de Formacin, Alfaomega Grupo Editor,
1ra Ed., 2013.

[54] Asada H. and Youcef K., Direct-Drive Robots: Theory and Practice, MIT Press
Classics, 1987.

[55] Deobelin E. O., Measurements Systems: Application and Design, McGrawHill,


Fifth Edition, 2003.

[56] Considine D. M. and Ross S. D., Manual de instrumentacin aplicada, Vols. I y


II, CECSA, 1971.

[57] Nof S. Y., Handbook of Industrial Robotics, John Wiley & Sons Inc., Second
Edition, 1999.

[58] Lajara J. R. y Pelegr J., LabVIEW. Entorno grfico de programacin, Alfaomega


Grupo Editor, 2nda Ed., 2012.

[59] Del Ro J., Lzaro A. M., Shariat P., et. al., LabVIEW, Programacin Para
Sistemas De Instrumentacin, Alfaomega Grupo Editor, 1ra Ed., 2013.

[60] National Instruments Corporation, NI USB-6008/6009 Bus-Powered Multifun-


ction DAQ USB Device, User Guide and Specifications, 2012.

[61] Hamed B., Application of a LabVIEW for Real-Time Control of Ball and Beam
System, IACSIT International Journal of Engineering Technology, Vol. 2, No.4,
pp. 401-407, August 2010.

[62] Selic B., Gullekson G. and Ward P., Real-Time Object-Oriented Modeling, Wiley
Professional Computing, 1994.
Apndice A

Publicaciones en Congresos

1. Edwards E. Snchez, Alberto J. Rosales, Alfredo R. Garca, Anlisis cinem-


tico de la extremidad de un robot caminante, IEEE International Engineering
Summit, pp. 143-147, Octubre (2013), Coatzacoalcos Ver.

2. Edwards E. Snchez, Alberto J. Rosales, Alfredo R. Garca, Obtencin del


modelo dinmico para la extremidad de un robot caminante, Memorias del
XIV Congreso Nacional de Ingeniera Electromecnica y de Sistemas, pp. 19-
24, Noviembre (2013), Mxico D. F.

3. Edwards E. Snchez, Alberto L. Jurez, Alfredo R. Garca y Alberto J. Ro-


sales, Diseo de un Controlador GPI para las extremidades de un Robot Cami-
nante, Memorias del XI Encuentro Participacin de la Mujer en la Ciencia,
pp. 19-24, Mayo (2014), Len Guanajuato.

97
Apndice B

Cdigos escritos en MATLABr

B.1. Representacin grfica de la extremidad del


robot Hexapod Mark II utilizando cinemti-
ca directa o inversa

1 %ESTE PROGRAMA GRAFICA LA EXTREMIDAD EN 3D UTILIZANDO CINEMATICA DIRECTA O INVERSA


2
3 clear all;
4 close all;
5 clc;
6
7 %Longitudes de los eslabones en centimetros
8 l1=5;
9 l2=8;
10 l3=13;
11
12 %Valores de ngulos en radianes para cinemtica directa
13 q1=pi/4;
14 q2=pi/6;
15 q3=pi/2;
16
17 %Valores de coordenadas para cinemtica inversa
18 % x=2;
19 % y=2;
20 % z=20;
21 % q1=atan(y/x);
22 % B=((x l1*cos(q1))^2 + (y l1*sin(q1))^2)^(1/2);
23 % C=((x l1*cos(q1))^2 l3^2 l2^2 + z^2 + (y l1*sin(q1))^2)/(2*l2*l3);
24 % q3=abs(atan((sqrt(1C^2))/C));
25 % q2=atan(z/B)atan((l3*sin(q3))/(l2+l3*cos(q3)));
26
27 %Ploteo de los marcos de referencia
28 %Marco de referencia 0
29 xvu=0:0.1:2;
30 yvu=0:0.1:2;
31 zvu=0:0.1:2;
32 xprol=5:2:25;
33 yprol=15:2:15;
34 zprol=10:2:20;
35 pos_texto_x0=[2.5;0;0];
36 pos_texto_y0=[0;2.5;0];
37 pos_texto_z0=[0;0;2.5];
38 ceros=zeros(size(xvu));
39 offsetz_origin=0;
40 plot3(xvu,ceros,cerosoffsetz_origin,ceros,yvu,cerosoffsetz_origin,...
41 ceros,ceros,zvuoffsetz_origin,'','LineWidth',2.5,'Color','red');
42 hold on;
43 plot3(xprol,zeros(size(xprol)),zeros(size(xprol)),'','LineWidth',1,'Color','black');
44 plot3(zeros(size(yprol)),yprol,zeros(size(yprol)),'','LineWidth',1,'Color','black');
45 plot3(zeros(size(zprol)),zeros(size(zprol)),zprol,'','LineWidth',1,'Color','black');
46 text(pos_texto_x0(1,1)1,pos_texto_x0(2,1),pos_texto_x0(3,1)offsetz_origin0.7,...

99
100 Apndice B: Cdigos escritos en MATLABr

47 '\it{x_0}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
48 text(pos_texto_y0(1,1),pos_texto_y0(2,1)0.8,pos_texto_y0(3,1)offsetz_origin+0.5,...
49 '\it{y_0}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
50 text(pos_texto_z0(1,1)+0.25,pos_texto_z0(2,1)1,pos_texto_z0(3,1)offsetz_origin,...
51 '\it{z_0}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
52 %grid on;
53 axis([10 30 20 20 10 20]);
54 [A,B] = meshgrid(10:10:30, 20:10:20);
55 surf(A,B,zeros(size(A))10*ones(size(A)));
56 colormap([0 1 0; 0 1 1]);
57
58
59 %Marco de referencia 1
60 thetai=q1;
61 ai=l1;
62 di=0;
63 alphai=pi/2;
64 Hdesp=[ 0 0 0 3;
65 0 0 0 0;
66 0 0 0 0;
67 0 0 0 1];
68
69 H10=[cos(thetai) sin(thetai)*cos(alphai) sin(thetai)*sin(alphai) ai*cos(thetai) ;
70 sin(thetai) cos(thetai)*cos(alphai) cos(thetai)*sin(alphai) ai*sin(thetai) ;
71 0 sin(alphai) cos(alphai) di ;
72 0 0 0 1 ];
73
74 xo1=H10(1,4); %Posicin del origen del marco de ref. 1
75 yo1=H10(2,4);
76 zo1=H10(3,4);
77 MR0=[xvu,zeros(size(xvu)),zeros(size(xvu)); ...
78 zeros(size(yvu)),yvu,zeros(size(yvu)); zeros(size(zvu)),zeros(size(zvu)),zvu];
79 MR1=H10(1:3,1:3)*MR0+[xo1*ones(size(MR0(1,:))); yo1*ones(size(MR0(2,:))); zo1*ones(size(MR0(3,:)))];
80 plot3(MR1(1,:),MR1(2,:),MR1(3,:),'LineWidth',2.5,'Color','red');
81 pos_texto_x1=H10(1:3,1:3)*pos_texto_x0+[xo1;yo1;zo1];
82 pos_texto_y1=H10(1:3,1:3)*pos_texto_y0+[xo1;yo1;zo1];
83 pos_texto_z1=H10(1:3,1:3)*pos_texto_z0+[xo1;yo1;zo1];
84 text(pos_texto_x1(1,1),pos_texto_x1(2,1),pos_texto_x1(3,1),...
85 '\it{x_1}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
86 text(pos_texto_y1(1,1),pos_texto_y1(2,1),pos_texto_y1(3,1),...
87 '\it{y_1}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
88 text(pos_texto_z1(1,1),pos_texto_z1(2,1),pos_texto_z1(3,1),...
89 '\it{z_1}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
90
91
92 %Marco de referencia 2
93 thetai=q2;
94 ai=l2;
95 di=0;
96 alphai=0;
97
98 H21=[cos(thetai) sin(thetai)*cos(alphai) sin(thetai)*sin(alphai) ai*cos(thetai) ;
99 sin(thetai) cos(thetai)*cos(alphai) cos(thetai)*sin(alphai) ai*sin(thetai) ;
100 0 sin(alphai) cos(alphai) di ;
101 0 0 0 1 ];
102
103 H20=H10*H21;
104 xo2=H20(1,4); %Posicin del origen del marco de ref. 2
105 yo2=H20(2,4);
106 zo2=H20(3,4);
107 MR2=H20(1:3,1:3)*MR0+[xo2*ones(size(MR0(1,:))); yo2*ones(size(MR0(2,:))); zo2*ones(size(MR0(3,:)))];
108 plot3(MR2(1,:),MR2(2,:),MR2(3,:),'LineWidth',2.5,'Color','red');
109 pos_texto_x2=H20(1:3,1:3)*pos_texto_x0+[xo2;yo2;zo2];
110 pos_texto_y2=H20(1:3,1:3)*pos_texto_y0+[xo2;yo2;zo2];
111 pos_texto_z2=H20(1:3,1:3)*pos_texto_z0+[xo2;yo2;zo2];
112 text(pos_texto_x2(1,1),pos_texto_x2(2,1),pos_texto_x2(3,1),...
113 '\it{x_2}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
114 text(pos_texto_y2(1,1),pos_texto_y2(2,1),pos_texto_y2(3,1),...
115 '\it{y_2}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
116 text(pos_texto_z2(1,1),pos_texto_z2(2,1),pos_texto_z2(3,1),...
117 '\it{z_2}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
118
119
120 %Marco de referencia 3
121 thetai=q3;
122 ai=l3;
123 di=0;
124 alphai=0;
125
126 H32=[cos(thetai) sin(thetai)*cos(alphai) sin(thetai)*sin(alphai) ai*cos(thetai) ;
127 sin(thetai) cos(thetai)*cos(alphai) cos(thetai)*sin(alphai) ai*sin(thetai) ;
128 0 sin(alphai) cos(alphai) di ;
129 0 0 0 1 ];
130
131 H30=H10*H21*H32;
132 xo3=H30(1,4); %Posicin del origen del marco de ref. 3
133 yo3=H30(2,4);
134 zo3=H30(3,4);
Apndice B: Cdigos escritos en MATLABr 101

135 MR3=H30(1:3,1:3)*MR0+[xo3*ones(size(MR0(1,:))); yo3*ones(size(MR0(2,:))); zo3*ones(size(MR0(3,:)))];


136 plot3(MR3(1,:),MR3(2,:),MR3(3,:),'LineWidth',2.5,'Color','red');
137 pos_texto_x3=H30(1:3,1:3)*pos_texto_x0+[xo3;yo3;zo3];
138 pos_texto_y3=H30(1:3,1:3)*pos_texto_y0+[xo3;yo3;zo3];
139 pos_texto_z3=H30(1:3,1:3)*pos_texto_z0+[xo3;yo3;zo3];
140 text(pos_texto_x3(1,1),pos_texto_x3(2,1),pos_texto_x3(3,1),...
141 '\it{x_3}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
142 text(pos_texto_y3(1,1),pos_texto_y3(2,1),pos_texto_y3(3,1),...
143 '\it{y_3}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
144 text(pos_texto_z3(1,1),pos_texto_z3(2,1),pos_texto_z3(3,1),...
145 '\it{z_3}','HorizontalAlignment','left','Fontsize',12,'Fontweight','b');
146
147 %Primer eslabn
148 EOdiv=0:0.4:l1;
149 EO=[EOdiv;zeros(size(EOdiv));zeros(size(EOdiv));];
150 E1=H10(1:3,1:3)*EO;
151 plot3(E1(1,:),E1(2,:),E1(3,:),'','LineWidth',3,'Color','blue');
152
153 %Segundo eslabn
154 EOdiv=0:0.4:l2;
155 EO=[EOdiv;zeros(size(EOdiv));zeros(size(EOdiv));];
156 E2=H20(1:3,1:3)*EO+[xo1*ones(size(EO(1,:))); yo1*ones(size(EO(2,:))) ; zo1*ones(size(EO(3,:)))];
157 plot3(E2(1,:),E2(2,:),E2(3,:),'','LineWidth',3,'Color','blue');
158
159 %Tercer eslabn
160 EOdiv=0:0.4:l3;
161 EO=[EOdiv;zeros(size(EOdiv));zeros(size(EOdiv));];
162 E3=H30(1:3,1:3)*EO+[xo2*ones(size(EO(1,:))); yo2*ones(size(EO(2,:))) ; zo2*ones(size(EO(3,:)))];
163 plot3(E3(1,:),E3(2,:),E3(3,:),'','LineWidth',3,'Color','blue');

B.2. Obtencin de las matrices D(q), C(q, q) y G(q)

1 %MODELO DINAMICO DE LA EXTREMIDAD POR EL METODO DE EULERLAGRANGE


2 clc;
3 clear all;
4
5 %Ttulo de resultados
6 fprintf('____________________________________________________________________');
7 fprintf('\n\nMODELO DINAMICO PARA UNA EXTREMIDAD DE 3GL PARA UN ROBOT MVIL');
8 fprintf('\n__________________________________________________________________');
9 fprintf('\n\nParmetros de la extremidad: \n');
10 fprintf('\nm1=masa del primer eslabn \nm2=masa del segundo eslabn \nm3=masa del tercer eslabn');
11 fprintf('\nL1=longitud del primer eslabn \nL2=longitud del segundo eslabn \nL3=longitud del ...
tercer eslabn');
12 fprintf('\nI1=momento de inercia del primer eslabn \nI2=momento de inercia del segundo eslabn ...
\nI3=momento de inercia del tercer eslabn');
13 fprintf('\nLC1=centro de masa del primer eslabn \nLC2=centro de masa del segundo eslabn ...
\nLC3=centro de masa del tercer eslabn');
14 fprintf('\n\nq1=ngulo entre el eje "x" y el primer eslabn \nq2=ngulo entre el primer eslabn y ...
el segundo \nq3=ngulo entre el segundo eslabn y el tercero');
15 fprintf('\n(q1p,q2p,q3p)=velocidades angulares');
16 fprintf('\n(q1pp,q2pp,q3pp)=aceleraciones angulares');
17 fprintf('\n\n(x1,y1,z1)=posicin del centro de masa del primer eslabn \n(x2,y2,z2)=posicin del ...
centro de masa del segundo eslabn \n(x3,y3,z3)=posicin del centro de masa del tercer eslabn');
18 fprintf('\nv1=(x1p,y1p,z1p)=vel. lineal del centro de masa del primer eslabn ...
\nv2=(x2p,y2p,z2p)=vel. lineal del centro de masa del segundo eslabn \nv3=(x3p,y3p,z3p)=vel. ...
lineal del centro de masa del tercer eslabn');
19 fprintf('\na1=(x1pp,y1pp,z1pp)=acel. lineal del centro de masa del primer eslabn ...
\na2=(x2pp,y2pp,z2pp)=acel. lineal del centro de masa del segundo eslabn ...
\na3=(x3pp,y3pp,z3pp)=acel. lineal del centro de masa del tercer eslabn');
20 fprintf('\n\nMI=Matriz de inercia');
21 fprintf('\nMFCC=Matriz de fuerzas centrpetas y de Coriolis');
22 fprintf('\nG=Pares gravitacionales');
23 fprintf('\n\ng=gravedad K=energa cintica U=energa potencial L=KU=Lagrangiano');
24 fprintf('\n(b1,b2,b3)=coeficientes de friccin viscosa');
25 fprintf('\n(fc1,fc2,fc3)=coeficientes de friccin de Coulomb');
26 fprintf('\n(fs1,fs2,fs3)=coeficientes de friccin esttico');
27 fprintf('\n\n\n_______________________________________________________________');
28
29 syms m1 L1 I1 LC1 b1 fc1 fs1 q1 q1p q1pp Ix1 Iy1 Iz1 w1;
30 syms m2 L2 I2 LC2 b2 fc2 fs2 q2 q2p q2pp Ix2 Iy2 Iz2 w2;
31 syms m3 L3 I3 LC3 b3 fc3 fs3 q3 q3p q3pp Ix3 Iy3 Iz3 w3;
32 syms g x;
33
102 Apndice B: Cdigos escritos en MATLABr

34 %
35 %Paso 1: Cinematica directa con respecto al centro de masa de cada eslabn:
36 fprintf('\n\n\n_______________________________________________________________');
37 fprintf('\nPaso 1: Cinemtica directa con respecto al centro de masa de cada eslabn:\n');
38
39 %Eslabn 1
40 %li=LC1;
41 %alphai=pi/2;
42 %ai=0;
43 %thetai=q1;
44 H10=[ cos(q1) 0 sin(q1) LC1*cos(q1);
45 sin(q1) 0 cos(q1) LC1*sin(q1);
46 0 1 0 0 ;
47 0 0 0 1 ];
48 R10=H10(1:3,1:3);
49 dLC1=H10(1:3,4);
50 x1=H10(1,4);
51 y1=H10(2,4);
52 z1=H10(3,4);
53 fprintf('\n| x1 | \n| y1 | = \n| z1 | ');
54 pretty([x1;y1;z1]);
55
56
57 %Eslabn 2
58 %li=LC2;
59 %alphai=0;
60 %di=0;
61 %thetai=q2;
62 H10=[ cos(q1) 0 sin(q1) L1*cos(q1);
63 sin(q1) 0 cos(q1) L1*sin(q1);
64 0 1 0 0 ;
65 0 0 0 1 ];
66
67 H21=[ cos(q2) sin(q2) 0 LC2*cos(q2);
68 sin(q2) cos(q2) 0 LC2*sin(q2);
69 0 0 1 0 ;
70 0 0 0 1 ];
71 H20=H10*H21;
72 R20=H20(1:3,1:3);
73 dLC2=H20(1:3,4);
74 x2=H20(1,4);
75 y2=H20(2,4);
76 z2=H20(3,4);
77 fprintf('\n| x2 | \n| y2 | = \n| z2 | ');
78 pretty([x2;y2;z2]);
79
80
81 %Eslabn 3
82 %li=LC3;
83 %alphai=0;
84 %di=0;
85 %thetai=q3;
86 H10=[ cos(q1) 0 sin(q1) L1*cos(q1);
87 sin(q1) 0 cos(q1) L1*sin(q1);
88 0 1 0 0 ;
89 0 0 0 1 ];
90
91 H21=[ cos(q2) sin(q2) 0 L2*cos(q2);
92 sin(q2) cos(q2) 0 L2*sin(q2);
93 0 0 1 0 ;
94 0 0 0 1 ];
95
96 H32=[ cos(q3) sin(q3) 0 LC3*cos(q3);
97 sin(q3) cos(q3) 0 LC3*sin(q3);
98 0 0 1 0 ;
99 0 0 0 1 ];
100
101 H30=H10*H21*H32;
102 R30=H30(1:3,1:3);
103 dLC3=H30(1:3,4);
104 x3=H30(1,4);
105 y3=H30(2,4);
106 z3=H30(3,4);
107 fprintf('\n\n\n| x3 | \n| y3 | = \n| z3 | ');
108 pretty([x3;y3;z3]);
109
110
111 %
112 %Paso 2: Obtener la cinemtica diferencial del centro de masa de cada
113 %eslabn
114 fprintf('\n\n\n________________________________________________________________');
115 fprintf('\nPaso 2: Cinemtica diferencial con respecto al centro de masa de cada eslabn:\n');
116
117 %Jacobiano J1
118 J1=[ diff(x1,q1) 0 0;
119 diff(y1,q1) 0 0;
120 diff(z1,q1) 0 0;
Apndice B: Cdigos escritos en MATLABr 103

121 0 0 0;
122 0 0 0;
123 1 0 0];
124 fprintf('\nJacobianos: \n\nJ1 = '); pretty(simplify(J1));
125
126 %Jacobiano J2
127 J2=[ diff(x2,q1) diff(x2,q2) 0;
128 diff(y2,q1) diff(y2,q2) 0;
129 diff(z2,q1) diff(z2,q2) 0;
130 0 sin(q1) 0;
131 0 cos(q1) 0;
132 1 0 0];
133 fprintf('\nJ2 = '); pretty(simplify(J2));
134
135 %Jacobiano J3
136 J3=[ diff(x3,q1) diff(x3,q2) diff(x3,q3);
137 diff(y3,q1) diff(y3,q2) diff(y3,q3);
138 diff(z3,q1) diff(z3,q2) diff(z3,q3);
139 0 sin(q1) sin(q1) ;
140 0 cos(q1) cos(q1) ;
141 1 0 0 ];
142 fprintf('\nJ3 = '); pretty(simplify(J3));
143
144 %Velocidades lineales de los centros de masa de cada eslabn
145 v1=J1(1:3,1)*q1p;
146 v2=J2(1:3,1:2)*[q1p;q2p];
147 v3=J3(1:3,1:3)*[q1p;q2p;q3p];
148 fprintf('\n\n\nVelocidades lineales de los centros de masa de cada eslabn: \n\nv1 = '); ...
pretty(simplify(v1));
149 fprintf('\nv2 = '); pretty(simplify(v2));
150 fprintf('\nv3 = '); pretty(simplify(v3));
151
152
153 %Paso 3: Obtencin de la matriz de Inercia
154 fprintf('\n\n\n_________________________________________________________________');
155 fprintf('\nPaso 3: Obtencin de la matriz de inercia\n');
156 TI1=[0,0,0;0,0,0;0,0,Iz1];
157 TI2=[Ix2,0,0;0,Iy2,0;0,0,Iz2];
158 TI3=[Ix3,0,0;0,Iy3,0;0,0,Iz3];
159
160 MI = simplify(m1*transpose(J1(1:3,:))*J1(1:3,:) + ...
transpose(J1(4:6,:))*R10*TI1*transpose(R10)*J1(4:6,:) + ...
161 m2*transpose(J2(1:3,:))*J2(1:3,:) + ...
transpose(J2(4:6,:))*R20*TI2*transpose(R20)*J2(4:6,:) + ...
162 m3*transpose(J3(1:3,:))*J3(1:3,:) + ...
transpose(J3(4:6,:))*R30*TI3*transpose(R30)*J3(4:6,:)) ;
163 fprintf('\nMI = '); pretty(simplify(MI));
164
165
166 %Paso 4: Obtencin de la matriz de fuerzas centrpetas y coriolis
167 fprintf('\n\n\n_________________________________________________________________');
168 fprintf('\nPaso 4: Obtencin de la matriz de fuerzas centrpetas y de coriolis\n');
169 MFCC = x*zeros(3,3);
170 temp1= x*zeros(1);
171 q=[q1;q2;q3];
172 qp=[q1p;q2p;q3p];
173 qpp=[q1pp;q2pp;q3pp];
174 for k=1:3
175 for j=1:3
176 for i=1:3
177 qi=q(i);
178 qj=q(j);
179 qk=q(k);
180 qip=qp(i);
181 temp1 = temp1 + (1/2)* (diff(MI(k,j),qi) + diff(MI(k,i),qj) diff(MI(i,j),qk))*qip;
182 end
183 MFCC(k,j)=simplify(temp1);
184 temp1= x*zeros(1);
185 end
186 end
187 fprintf('\nMFCC = '); pretty(simplify(MFCC));
188
189
190 %Paso 5: Obtencin de la pares gravitacionales
191 fprintf('\n\n\n__________________________________________________________________');
192 fprintf('\nPaso 5: Obtencin de los pares gravitacionales\n');
193 P1=m1*[0,0,g]*dLC1;
194 P2=m2*[0,0,g]*dLC2;
195 P3=m3*[0,0,g]*dLC3;
196 P=P1+P2+P3;
197 G=[diff(P,q1);diff(P,q2);diff(P,q3)];
198 fprintf('\nG = '); pretty(simplify(G));
199
200
201 %Paso 6: Obtencin de los momentos de torsin
202 fprintf('\n\n\n__________________________________________________________________');
203 fprintf('\nPaso 6: Obtencin de los momentos de torsin\n');
104 Apndice B: Cdigos escritos en MATLABr

204 tau= simplify(MI*qpp + MFCC*qp + G);


205 tau1=tau(1);
206 tau2=tau(2);
207 tau3=tau(3);
208 fprintf('\ntau1 = '); pretty(simplify(tau1));
209 fprintf('\ntau2 = '); pretty(simplify(tau2));
210 fprintf('\ntau3 = '); pretty(simplify(tau3));

B.3. Ecuaciones para el mtodo de Newton-Euler

1 %MODELO DINAMICO DE LA EXTREMIDAD POR EL METODO DE NEWTON EULER


2
3 clc;
4 clear all;
5
6 syms q1 q2 q3 d1 d2 d3 l1 l2 l3 w1 w2 w3 alpha1 alpha2 alpha3;
7 syms q1p q2p q3p q1pp q2pp q3pp;
8 syms L1 L2 L3 LC1 LC2 LC3;
9 syms Ix1 Iy1 Iz1 Ix2 Iy2 Iz2 Ix3 Iy3 Iz3;
10 syms g m1 m2 m3;
11
12 %Matriz DH del marco de referencia 1 con respecto al 0
13 %li=l1;
14 %alphai=pi/2;
15 %ai=0;
16 %thetai=q1;
17 H10=[ cos(q1) 0 sin(q1) l1*cos(q1);
18 sin(q1) 0 cos(q1) l1*sin(q1);
19 0 1 0 0 ;
20 0 0 0 1 ];
21
22
23 %Matriz DH del marco de referencia 2 con respecto al 1
24 %li=l2;
25 %alphai=0;
26 %ai=0;
27 %thetai=q2;
28 H21=[ cos(q2) sin(q2) 0 l2*cos(q2);
29 sin(q2) cos(q2) 0 l2*sin(q2);
30 0 0 1 0 ;
31 0 0 0 1 ];
32
33 %Matriz DH del marco de referencia 3 con respecto al 2
34 %li=l3;
35 %alphai=0;
36 %ai=0;
37 %thetai=q3;
38 H32=[ cos(q3) sin(q3) 0 l3*cos(q3);
39 sin(q3) cos(q3) 0 l3*sin(q3);
40 0 0 1 0 ;
41 0 0 0 1 ];
42 R10=H10(1:3,1:3);
43 R21=H21(1:3,1:3);
44 R32=H32(1:3,1:3);
45
46 %Vectores de los eslabones
47 r0_c1=[LC1;0;0];
48 r1_c2=[LC2;0;0];
49 r2_c3=[LC3;0;0];
50
51 r0_1=[L1;0;0];
52 r1_2=[L2;0;0];
53 r2_3=[L3;0;0];
54
55 r1_c1=[(L1LC1);0;0];
56 r2_c2=[(L2LC2);0;0];
57 r3_c3=[(L3LC3);0;0];
58
59 %Eje de rotacin de la isima articulacin expresado en el isimo marco
60 %de referencia: bi
61 % b1=[0;1;0];
62 % b2=[0;0;1];
63 % b3=[0;0;1];
64
65 b1=simplify(transpose(R10)*[0;0;1]);
Apndice B: Cdigos escritos en MATLABr 105

66 b2=simplify(transpose(R10*R21)*[sin(q1);cos(q1);0]);
67 b3=simplify(transpose(R10*R21*R32)*[sin(q1);cos(q1);0]);
68
69 %Velocidades angulares
70 w1=simplify( b1*q1p);
71 w2=simplify(transpose(R21)*w1 + b2*q2p);
72 w3=simplify(transpose(R32)*w2 + b3*q3p);
73
74 %Aceleraciones angulares
75 alpha1=simplify( b1*q1pp + cross(w1,b1*q1p));
76 alpha2=simplify(transpose(R21)*alpha1 + b2*q2pp + cross(w2,b2*q2p));
77 alpha3=simplify(transpose(R32)*alpha2 + b3*q3pp + cross(w3,b3*q3p));
78
79 %Derivadas de las velocidades angulares d(w1)/dt, d(w2)/dt, d(w3)/dt
80 w1p=[ 0 ;
81 q1pp ;
82 0 ];
83
84 w2p=[ q1pp*sin(q2) + q2p*cos(q2)*q1p;
85 q1pp*cos(q2) q2p*sin(q2)*q1p;
86 q2pp ];
87
88 w3p=[ q1pp*sin(q2+q3) + cos(q2+q3)*q1p*(q2p+q3p);
89 q1pp*cos(q2+q3) sin(q2+q3)*q1p*(q2p+q3p);
90 q2pp + q3pp ];
91
92 %Tensores de inercia
93 TI1=[0,0,0;0,0,0;0,0,Iz1];
94 TI2=[Ix2,0,0;0,Iy2,0;0,0,Iz2];
95 TI3=[Ix3,0,0;0,Iy3,0;0,0,Iz3];
96
97 %
98 %Ecuaciones hacia adelante
99 %aceleraciones de los finales de los eslabones
100 ae1=simplify( cross(w1p,r0_1) + cross(w1,cross(w1,r0_1)));
101 ae2=simplify(transpose(R21)*ae1 + cross(w2p,r1_2) + cross(w2,cross(w2,r1_2)));
102 ae3=simplify(transpose(R32)*ae2 + cross(w3p,r2_3) + cross(w3,cross(w3,r2_3)));
103
104 %Aceleraciones de los centros de masa
105 ac1=simplify( cross(w1p,r0_c1) + cross(w1,cross(w1,r0_c1)));
106 ac2=simplify(transpose(R21)*ae1 + cross(w2p,r1_c2) + cross(w2,cross(w2,r1_c2)));
107 ac3=simplify(transpose(R32)*ae2 + cross(w3p,r2_c3) + cross(w3,cross(w3,r2_c3)));
108
109 %Aceleracin de la gravedad expresada en el isimo marco de referencia: gi
110 g1=transpose(R10)*g*[0;0;1];
111 g2=transpose(R10*R21)*g*[0;0;1];
112 g3=transpose(R10*R21*R32)*g*[0;0;1];
113
114 %
115 %Ecuaciones hacia atrs
116 %Fuerzas
117 f3=simplify( m3*ac3+m3*g3);
118 f2=simplify(R32*f3+m2*ac2+m2*g2);
119 f1=simplify(R21*f2+m1*ac1+m1*g1);
120
121 %Torques
122 tau3= simplify( 0 cross(f3,r2_c3) + 0 + TI3*alpha3 + cross(w3,TI3*w3));
123 tau2= simplify(R32*tau3 cross(f2,r1_c2) + cross(R32*f3,r2_c2) + TI2*alpha2 + cross(w2,TI2*w2));
124 tau1= simplify(R21*tau2 cross(f1,r0_c1) + cross(R21*f2,r1_c1) + TI1*alpha1 + cross(w1,TI1*w1));
125
126 fprintf('tau1y = '); pretty(simplify(tau1(2)));
127 fprintf('\n\ntau2z = '); pretty(simplify(tau2(3)));
128 fprintf('\n\ntau3z = '); pretty(simplify(tau3(3)));

B.4. Comprobacin ambos mtodos

1 %COMPROBACION DE LOS METODOS NEWTONEULER Y EULERLAGRANGE


2 clc;
3 clear all;
4
5 syms q1 q2 q3 d1 d2 d3 l1 l2 l3;
6 syms q1p q2p q3p q1pp q2pp q3pp;
7 syms L1 L2 L3 LC1 LC2 LC3;
8 syms Ix1 Iy1 Iz1 Ix2 Iy2 Iz2 Ix3 Iy3 Iz3;
9 syms g m1 m2 m3;
106 Apndice B: Cdigos escritos en MATLABr

10
11 %EulerLagrange
12 tau1_el= Ix2*q1pp + (Ix3*q1pp)/2 + (Iy3*q1pp)/2 Ix2*q1pp*cos(q2)^2 + Iy2*q1pp*cos(q2)^2 ...
(Ix3*q1pp*cos(2*q2 + 2*q3))/2 + (Iy3*q1pp*cos(2*q2 + 2*q3))/2 + L1^2*m2*q1pp + L1^2*m3*q1pp + ...
LC1^2*m1*q1pp + (LC3^2*m3*q1pp)/2 + L2^2*m3*q1pp*cos(q2)^2 + LC2^2*m2*q1pp*cos(q2)^2 + ...
(LC3^2*m3*q1pp*cos(2*q2 + 2*q3))/2 + Ix3*q1p*q2p*sin(2*q2 + 2*q3) + Ix3*q1p*q3p*sin(2*q2 + ...
2*q3) Iy3*q1p*q2p*sin(2*q2 + 2*q3) Iy3*q1p*q3p*sin(2*q2 + 2*q3) + ...
2*Ix2*q1p*q2p*cos(q2)*sin(q2) 2*Iy2*q1p*q2p*cos(q2)*sin(q2) + 2*L1*LC3*m3*q1pp*cos(q2 + q3) ...
+ 2*L1*L2*m3*q1pp*cos(q2) + 2*L1*LC2*m2*q1pp*cos(q2) + L2*LC3*m3*q1pp*cos(q3) ...
LC3^2*m3*q1p*q2p*sin(2*q2 + 2*q3) LC3^2*m3*q1p*q3p*sin(2*q2 + 2*q3) + ...
L2*LC3*m3*q1pp*cos(2*q2 + q3) 2*L2^2*m3*q1p*q2p*cos(q2)*sin(q2) ...
2*LC2^2*m2*q1p*q2p*cos(q2)*sin(q2) 2*L1*L2*m3*q1p*q2p*sin(q2) 2*L1*LC2*m2*q1p*q2p*sin(q2) ...
L2*LC3*m3*q1p*q3p*sin(q3) 2*L2*LC3*m3*q1p*q2p*sin(2*q2 + q3) L2*LC3*m3*q1p*q3p*sin(2*q2 ...
+ q3) 2*L1*LC3*m3*q1p*q2p*sin(q2 + q3) 2*L1*LC3*m3*q1p*q3p*sin(q2 + q3);
13 tau2_el= Iz2*q2pp + Iz3*q2pp + Iz3*q3pp (Ix2*q1p^2*sin(2*q2))/2 + (Iy2*q1p^2*sin(2*q2))/2 + ...
L2^2*m3*q2pp + LC2^2*m2*q2pp + LC3^2*m3*q2pp + LC3^2*m3*q3pp (Ix3*q1p^2*sin(2*q2 + 2*q3))/2 ...
+ (Iy3*q1p^2*sin(2*q2 + 2*q3))/2 LC3*g*m3*cos(q2 + q3) L2*g*m3*cos(q2) LC2*g*m2*cos(q2) ...
+ (L2^2*m3*q1p^2*sin(2*q2))/2 + (LC2^2*m2*q1p^2*sin(2*q2))/2 + (LC3^2*m3*q1p^2*sin(2*q2 + ...
2*q3))/2 + L1*L2*m3*q1p^2*sin(q2) + L1*LC2*m2*q1p^2*sin(q2) L2*LC3*m3*q3p^2*sin(q3) + ...
L2*LC3*m3*q1p^2*sin(2*q2 + q3) + 2*L2*LC3*m3*q2pp*cos(q3) + L2*LC3*m3*q3pp*cos(q3) + ...
L1*LC3*m3*q1p^2*sin(q2 + q3) 2*L2*LC3*m3*q2p*q3p*sin(q3);
14 tau3_el= Iz3*q2pp + Iz3*q3pp + LC3^2*m3*q2pp + LC3^2*m3*q3pp (Ix3*q1p^2*sin(2*q2 + 2*q3))/2 + ...
(Iy3*q1p^2*sin(2*q2 + 2*q3))/2 LC3*g*m3*cos(q2 + q3) + (LC3^2*m3*q1p^2*sin(2*q2 + 2*q3))/2 + ...
(L2*LC3*m3*q1p^2*sin(q3))/2 + L2*LC3*m3*q2p^2*sin(q3) + (L2*LC3*m3*q1p^2*sin(2*q2 + q3))/2 + ...
L2*LC3*m3*q2pp*cos(q3) + L1*LC3*m3*q1p^2*sin(q2 + q3);
15
16 %NewtonEuler
17 tau1_ne= Ix2*q1pp + (Ix3*q1pp)/2 + (Iy3*q1pp)/2 Ix2*q1pp*cos(q2)^2 + Iy2*q1pp*cos(q2)^2 ...
(Ix3*q1pp*cos(2*q2 + 2*q3))/2 + (Iy3*q1pp*cos(2*q2 + 2*q3))/2 + L1^2*m2*q1pp + L1^2*m3*q1pp + ...
LC1^2*m1*q1pp + (LC3^2*m3*q1pp)/2 + L2^2*m3*q1pp*cos(q2)^2 + LC2^2*m2*q1pp*cos(q2)^2 + ...
(LC3^2*m3*q1pp*cos(2*q2 + 2*q3))/2 + Ix3*q1p*q2p*sin(2*q2 + 2*q3) + Ix3*q1p*q3p*sin(2*q2 + ...
2*q3) Iy3*q1p*q2p*sin(2*q2 + 2*q3) Iy3*q1p*q3p*sin(2*q2 + 2*q3) + ...
2*Ix2*q1p*q2p*cos(q2)*sin(q2) 2*Iy2*q1p*q2p*cos(q2)*sin(q2) + 2*L1*LC3*m3*q1pp*cos(q2 + q3) ...
+ 2*L1*L2*m3*q1pp*cos(q2) + 2*L1*LC2*m2*q1pp*cos(q2) + L2*LC3*m3*q1pp*cos(q3) ...
LC3^2*m3*q1p*q2p*sin(2*q2 + 2*q3) LC3^2*m3*q1p*q3p*sin(2*q2 + 2*q3) + ...
L2*LC3*m3*q1pp*cos(2*q2 + q3) 2*L2^2*m3*q1p*q2p*cos(q2)*sin(q2) ...
2*LC2^2*m2*q1p*q2p*cos(q2)*sin(q2) 2*L1*L2*m3*q1p*q2p*sin(q2) 2*L1*LC2*m2*q1p*q2p*sin(q2) ...
L2*LC3*m3*q1p*q3p*sin(q3) 2*L2*LC3*m3*q1p*q2p*sin(2*q2 + q3) L2*LC3*m3*q1p*q3p*sin(2*q2 ...
+ q3) 2*L1*LC3*m3*q1p*q2p*sin(q2 + q3) 2*L1*LC3*m3*q1p*q3p*sin(q2 + q3);
18 tau2_ne= Iz2*q2pp + Iz3*q2pp + Iz3*q3pp (Ix2*q1p^2*sin(2*q2))/2 + (Iy2*q1p^2*sin(2*q2))/2 + ...
L2^2*m3*q2pp + LC2^2*m2*q2pp + LC3^2*m3*q2pp + LC3^2*m3*q3pp (Ix3*q1p^2*sin(2*q2 + 2*q3))/2 ...
+ (Iy3*q1p^2*sin(2*q2 + 2*q3))/2 LC3*g*m3*cos(q2 + q3) L2*g*m3*cos(q2) LC2*g*m2*cos(q2) ...
+ (L2^2*m3*q1p^2*sin(2*q2))/2 + (LC2^2*m2*q1p^2*sin(2*q2))/2 + (LC3^2*m3*q1p^2*sin(2*q2 + ...
2*q3))/2 + L1*L2*m3*q1p^2*sin(q2) + L1*LC2*m2*q1p^2*sin(q2) L2*LC3*m3*q3p^2*sin(q3) + ...
L2*LC3*m3*q1p^2*sin(2*q2 + q3) + 2*L2*LC3*m3*q2pp*cos(q3) + L2*LC3*m3*q3pp*cos(q3) + ...
L1*LC3*m3*q1p^2*sin(q2 + q3) 2*L2*LC3*m3*q2p*q3p*sin(q3);
19 tau3_ne= Iz3*q2pp + Iz3*q3pp + LC3^2*m3*q2pp + LC3^2*m3*q3pp (Ix3*q1p^2*sin(2*q2 + 2*q3))/2 + ...
(Iy3*q1p^2*sin(2*q2 + 2*q3))/2 LC3*g*m3*cos(q2 + q3) + (LC3^2*m3*q1p^2*sin(2*q2 + 2*q3))/2 + ...
(L2*LC3*m3*q1p^2*sin(q3))/2 + L2*LC3*m3*q2p^2*sin(q3) + (L2*LC3*m3*q1p^2*sin(2*q2 + q3))/2 + ...
L2*LC3*m3*q2pp*cos(q3) + L1*LC3*m3*q1p^2*sin(q2 + q3);
20
21 dif1=tau1_eltau1_ne;
22 dif2=tau2_eltau2_ne;
23 dif3=tau3_eltau3_ne;
24
25 fprintf('dif1='); pretty(simplify(dif1));
26 fprintf('\ndif2='); pretty(simplify(dif2));
27 fprintf('\ndif3='); pretty(simplify(dif3));
Apndice C

Matrices, Jacobianos y
Trigonometra

C.1. Matriz de rotacin y matriz de transforma-


cin homognea
Sean xi , yi y zi tres vectores unitarios mutuamente ortogonales con un origen
comn en un espacio tridimensional, representando un i-simo marco de referencia.
Sean xj , yj y zj otros tres vectores con las mismas caractersticas representando un
j-simo marco de referencia.
Recordando que el producto punto de dos vectores unitarios representa la proyec-
cin de uno con respecto al otro, se tiene que la proyeccin del vector xi con respecto
a los vectores xj , yj y zj est dado por:

xi x j

xi yj ,

xi zj
de la misma forma, la proyeccin del vector yi queda como:

yi x j

yi yj ,

yi zj
y la proyeccin del vector zi como:

z i xj

zi yj ,

zi zj

107
108 Apndice C: Matrices, Jacobianos y Trigonometra

De esta forma, se tienen las proyecciones de los tres vectores unitarios del i-
simo marco de referencia, con respecto a los vectores unitarios del j-simo marco.
Reordenando las proyecciones en una matriz de 3x3 obtenemos una matriz de rotacin
Rij (ecuacin C.1), la cual representa la proyeccin del i-simo marco de referencia
con respecto al j-simo. Debido a que el producto punto est en funcin del ngulo
existente entre los vectores unitarios, se puede considerar que uno de ellos ha rotado
con respecto al otro. Es por ello que a la matriz anterior se le conoce como matriz de
rotacin.

x i x j yi x j z i xj

j
Hi = xi yj yi yj zi yj , (C.1)

xi zj yi zj zi zj
Sea oji un vector de posicin que inicia en el origen del j-simo marco de refe-
rencia y termina en el origen del i-simo marco. Sean xji , yij y zij sus componentes
vectoriales. Aumentando la matriz de rotacin Rij con las componentes vectoriales de
oji , y representndola como una matriz de 4 4 obtenemos una matriz de transfor-
macin homognea Hij , que representa la posicin y orientacin del j-simo marco de
referencia con respecto al i-simo, como se muestra en la ecuacin C.2.

xi xj yi xj zi xj xji

xi yj yi yj zi yj yij

Rij = j ,
(C.2)
xi zj yi zj zi zj zi

0 0 0 1

C.2. Jacobiano angular y Jacobiano lineal


Considere una cadena cinemtica abierta compuesta de n eslabones y n grados
de libertad, con marcos de referencia establecidos conforme a la convencin Denavit-
Hartenberg. Sea q = [q1 , ..., qn ]T el vector de ngulos o distancias de las articulaciones,
ya sean de tipo rotacionales o prismticas. Sean vn0 y n0 los vectores de velocidad
lineal y velocidad angular del efector final, respectivamente. El objetivo principal de
las matrices Jacobianas (Jv ) y (J ) es relacionar los vectores vn0 y n0 con el vector q,
de tal forma que se cumplan las ecuaciones C.3 y C.4.

vn0 = Jv q, (C.3)

n0 = J q. (C.4)
La matriz Jacobiana angular J puede deducirse de la siguiente forma: conside-
rando que el vector unitario zi1 es el eje de rotacin del i-simo eslabn, y adems
Apndice C: Matrices, Jacobianos y Trigonometra 109

que el vector de velocidad angular del efector final n0 es la suma de los vectores de
velocidades angulares de cada eslabn, se tiene que n0 est dado por la ecuacin
C.5, donde vale 1 para las articulaciones de tipo rotacional, y 0 para las de tipo
prismtica.

n0 = 10 + ... + n1
0
= [z0 q1 + ... + zn1 qn ],

= [z0 + ... + zn1 ]q, (C.5)


Comparando con la ecuacin C.4 se tiene que el Jacobiano angular est dado por
la ecuacin C.6

J = [z0 + ... + zn1 ]. (C.6)


La matriz Jacobiana lineal se deduce de esta forma: Considerando que la velocidad
lineal del efector final est dada por o0n , aplicando la regla de la cadena se tiene la
ecuacin C.7.
n
o0n
o0n
X
= qi . (C.7)
i=1 qi

De esta forma se observa que la i-sima columna de la matriz Jacobiana lineal


denotada por Jvi , est dada por la ecuacin C.8.

o0n
Jvi = . (C.8)
qi

C.3. Ley de los cosenos


Si un tringulo tiene lados de longitud a, b y c, y es el ngulo opuesto al lado
de longitud c, entonces:

c2 = a2 + cb2 2ab cos . (C.9)


Apndice D

Matrices D(q), C(q, q) y G(q)

Utilizando el mtodo de Euler-Lagrange, se obtivieron las matrices dadas por las


ecuaciones D.1, D.2 y D.3 para la extremidad del robot Hexapod Mark II.

d11 0 0
D(q) = 0 d22 d23 , (D.1)

0 d32 d33


c11 c12 c13
C(q, q) = c21 c22 c23

, (D.2)
c31 c32 0

111
112 Apndice D: Matrices D(q), C(q, q) y G(q)
Apndice D: Matrices D(q), C(q, q) y G(q) 113


0
G(q) = g2 . (D.3)

g3

S-ar putea să vă placă și