Descripción
El objetivo de esta obra es mostrar de forma teorica y practica las tecnicas mas importantes utilizadas en la academia y la industria para el desarrollo de sistemas roboticos, y para esto se exponen desde los conceptos basicos de robotica hasta los algoritmos de control y las tecnicas de planificacion de trayectorias. En especial, se hace uso de los sistemas roboticos LEGO Mindstorms NXT junto con la plataforma de desarrollo LabVIEW.
Aprenda ] Que es un robot LEGO NXT y cual es el entorno de programacion NXT.
Conozca ] Los sistemas de control empleando robots NXT, asi como el entorno de programacion de los LEGO Mindstorms.
Desarrolle ] Sus propias aplicaciones de planificacion de ruta y de planificacion de trayectorias con espacios variantes en el tiempo.
Pedro Ponce Cruz. El Dr. Ponce es Ingeniero en Control y Automatizacion, Maestro en Ciencias y Doctor en Ciencias con especialidad en Ingenieria Electrica. Ha publicado tres libros, ha asesorado mas de 25 tesis de licenciatura y posgrado en el area de control y automatizacion y ha sido miembro del Sistema Nacional de Investigadores. Actualmente es Director de la Maestria y Doctorado en Ciencias de la Ingenieria del Tecnologico de Monterrey, Campus Ciudad de Mexico.
Victor M. De la Cueva Hernandez. El Dr. de la Cueva es Ingeniero en Sistemas Electronicos, Maestro en Ciencias
Computacionales con especialidad en Inteligencia Artificial y Doctor en Ciencias Computacionales con Especialidad en
Inteligencia Artificial. Es investigador en las areas de Inteligencia Artificial, Robotica y Educacion, y Director de
Investigacion y Posgrado del Tecnologico de Monterrey, Campus Ciudad de Mexico.
Hiram Ponce Espinosa. El Mtro. Ponce Espinosa es Ingeniero en Mecatronica, Maestro en Ciencias de la Ingenieria con especialidad en Control Inteligente, y actualmente estudia el Doctorado en Ciencias Computacionales, desarrollando una nueva tecnica de inteligencia artificial denominada Artificial Organic Networks. Ha trabajado como investigador en robotica, mecatronica, metodos de inteligencia artificial y control de sistemas, y es Profesor del departamento de computacion en el Tecnologico de Monterrey, Campus Ciudad de Mexico
Índice
Acceso al material complementario XIII
Introducción XV
Capítulo 1. Introducción a la robótica 1
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. ¿Qué es un robot? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Componentes básicos de un robot . . . . . . . . . . . . . . . . . . . . . 5
1.3.1. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2. Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.3. Unidad de control . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.4. Diseño mecánico . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4. Clasificación de robots . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5. Modelado de los robots . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.1. Modelado de robots fijos . . . . . . . . . . . . . . . . . . . . . . 23
1.5.2. Modelado de robots móviles . . . . . . . . . . . . . . . . . . . . 24
1.6. Aplicaciones de los robots . . . . . . . . . . . . . . . . . . . . . . . . . 28
Capítulo 2. Robots LEGO NXT 29
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2. ¿Qué es un robot NXT? . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3. Componentes básicos de un robot NXT . . . . . . . . . . . . . . . . . 31
2.3.1. Sensores NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.2. Motores NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.3. Conectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.4. Bloque inteligente NXT . . . . . . . . . . . . . . . . . . . . . . 49
2.3.5. Estructura de bloques LEGO . . . . . . . . . . . . . . . . . . . 53
2.4. Ejemplos de robots NXT . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4.1. Diseño de tracciones . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4.2. Diseño de piernas . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.4.3. Diseño de brazos robóticos y manipuladores . . . . . . . . . . . 58
Capítulo 3. Entorno de programación NXT 61
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2. Conexión entre el robot NXT y LabVIEW . . . . . . . . . . . . . . . . 62
3.3. Introducción a la programación básica en LabVIEW . . . . . . . . . . 63
3.4. Estructura de la caja de herramientas LEGO NXT . . . . . . . . . . . 73
3.5. Inicialización de la programación NXT en LabVIEW . . . . . . . . . 75
3.6. Manejo de sensores NXT . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.6.1. Sensor de contacto NXT . . . . . . . . . . . . . . . . . . . . . . 78
3.6.2. Sensor de luz NXT . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.6.3. Sensor ultrasónico NXT . . . . . . . . . . . . . . . . . . . . . . 81
3.6.4. Sensor de sonido NXT . . . . . . . . . . . . . . . . . . . . . . . 81
3.6.5. Brújula NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.6.6. Sensor de color NXT . . . . . . . . . . . . . . . . . . . . . . . . 84
3.6.7. Acelerómetro NXT . . . . . . . . . . . . . . . . . . . . . . . . 84
3.6.8. Sensor de temperatura NXT . . . . . . . . . . . . . . . . . . . 85
3.7. Manejo de motores NXT . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.8. Comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.8.1. Comunicación USB y comunicación Bluetooth . . . . . . . . . . 87
3.8.2. Programación de la comunicación en robots NXT . . . . . . . . 88
Capítulo 4. Sistemas de control empleando robots NXT 93
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2. Sistemas de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.2.1. Señales que conforman un sistema de control . . . . . . . . . . 96
4.2.2. Componentes básicos de un sistema de control . . . . . . . . . 98
4.3. Sistema de control en lazo abierto y lazo cerrado . . . . . . . . . . . . 100
4.4. Tipos de controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.4.1. Controlador de dos posiciones . . . . . . . . . . . . . . . . . . . 104
4.4.2. Controladores PID . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.5. Robot Segway. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . 116
4.5.1. Transporte personal Segway . . . . . . . . . . . . . . . . . . . . 116
4.5.2. Modelación de un Segway mediante robots NXT . . . . . . . . 116
4.5.3. Robot Segway NXT . . . . . . . . . . . . . . . . . . . . . . . . 117
4.5.4. Implementación del robot Segway NXT . . . . . . . . . . . . . 120
Capítulo 5. Introducción al entorno de programación de los LEGO Mindstorms 123
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2. Funciones básicas en el NXT LEGO Mindstorms . . . . . . . . . . . . 126
5.2.1. Funciones básicas con los comandos directos del NXT . . . . . 126
5.2.2. Sensor al tacto . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2.3. Sensor ultrasónico . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2.4. Sensor de luz y color . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2.5. Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.3. Funciones básicas con el Toolkit NXT . . . . . . . . . . . . . . . . . . 132
5.3.1. Visualización de mensajes . . . . . . . . . . . . . . . . . . . . . 133
5.3.2. Sensor al tacto . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.3.3. Sensor ultrasónico . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.4. Sensor de luz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.5. Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.3.6. Sensor de rotación . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.3.7. Comunicación vía Bluetooth entre el robot NXT LEGO
MindsMindstorms y LabVIEW . . . . . . . . . . . . . . . . . . 138
5.4. Ingeniería de control par a las ruedas . . . . . . . . . . . . . . . . . . . 141
Capítulo 6. Planificación de ruta 149
6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2. Robots en la planificación de ruta . . . . . . . . . . . . . . . . . . . . . 154
6.3. Técnicas básicas de planeación de ruta . . . . . . . . . . . . . . . . . . 155
6.3.1. Robots fijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.4. Espacio de configuración . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.5. Robots móviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.5.1. Hojas de ruta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Capítulo 7. Planificación de trayectorias con espacios variantes en el tiempo 177
7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.2. Introducción del tiempo en el espacio de trabajo . . . . . . . . . . . . 178
7.3. Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.4. Planificación para dos objetos en movimiento en un plano . . . . . . . 181
7.4.1. Un solo espacio de configuraciones . . . . . . . . . . . . . . . . 182
7.4.2. Desacoplando los robots . . . . . . . . . . . . . . . . . . . . . . 184
7.4.3. Manteniendo el tiempo de recorrido constante . . . . . . . . . . 187
7.4.4. Movimientos secuenciales de los robots . . . . . . . . . . . . . . 190
7.5. Otros problemas de planificación con objetos en movimiento . . . . . . 192
Capítulo 8. Planificación de trayectorias en reversa (o planificación invertida de trayectorias) 195
8.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.2. Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3. Espacio discreto de planificación en reversa . . . . . . . . . . . . . . . 198
8.4. Algoritmo de propagación de onda . . . . . . . . . . . . . . . . . . . . 199
8.5. Algoritmo de búsqueda en árboles . . . . . . . . . . . . . . . . . . . . 202
8.6. Algoritmo de diagramas de Voronoi . . . . . . . . . . . . . . . . . . . . 205
8.6.1. Conexión mediante búsqueda en árboles . . . . . . . . . . . . . 208
8.6.2. Recorrido mediante propagación de onda . . . . . . . . . . . . 209
8.7. Algoritmos de planificación en reversa en espacios continuos . . . . . . 210
Capítulo 9. Planificación de trayectorias con sensores 213
9.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.1.1. Definición del problema . . . . . . . . . . . . . . . . . . . . . . 214
9.2. Algoritmos de seguimiento de orillas . . . . . . . . . . . . . . . . . . . 215
9.2.1. Algoritmo de seguimiento de orillas básico . . . . . . . . . . . . 216
9.2.2. Algoritmo de seguimiento de orillas modificado . . . . . . . . . 218
9.3. Algoritmos de navegación sin choque . . . . . . . . . . . . . . . . . . . 220
9.4. Algoritmos de seguimiento de línea . . . . . . . . . . . . . . . . . . . . 221
9.5. Algoritmos para sensores de visión . . . . . . . . . . . . . . . . . . . . 224
Capítulo 10. Ejemplos de planificación LEGO 227
10.1. Ejemplos del capítulo 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.2. Ejemplos del capitulo 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 234
10.3. Ejemplos del capitulo 9 . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Bibliografía 243