Contenido
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
ix
x Contenido
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
Alfaomega Robótica • Pedro Ponce • Vı́ctor de la Cueva • Hiram Ponce
Contenido xi
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
Robótica • Pedro Ponce • Vı́ctor de la Cueva • Hiram Ponce Alfaomega
xii Contenido
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
Índice analítico 245
Alfaomega Robótica • Pedro Ponce • Vı́ctor de la Cueva • Hiram Ponce