Castro River Os Fabian Camilo 2020

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 167

Implementación y Simulación de un algoritmo de

posicionamiento articular para un Robot manipulador


Planar Continuo utilizando técnicas de Inteligencia
Artificial

Autor:
Fabian Camilo Castro Riveros

Trabajo de grado presentado como requisito para optar al título


Magister en mecatrónica

Director:
Ricardo Andres Castillo Estepa PhD

Universidad Militar Nueva Granada


Facultad de Ingeniería
Programa de Maestria en Mecatrónica
25 de abril de 2020
”Eso que llamamos destino, esta en una gran parte en manos de los hombres, cuando
estos tienen ideas claras y propósitos firmes.”
Enzo Ferrari

Este proyecto es dedicado a DIOS que me ha dado la pasión por la ingeniería, a mi


familia que con su apoyo incondicional me motivaron a finalizar este proyecto y sobretodo
esta etapa de mi vida, mis amigos que me han acompañado durante este proceso.
Agradecimientos

El autor expresa sus agradecimientos a:

Ricardo Andrés Castillo, Ph.D, docente del Programa de Ingeniería en Mecatrónica de


la Universidad Militar Nueva Granada, director del trabajo de grado, por su asesoría en
la elaboración de este proyecto.
Los docentes del programa de Ingeniería en Mecatrónica que soportaron mi trabajo, espe-
cialmente a los profesores Oscar Aviles, Ph.D y Andres Mauricio Cifuentes, Ph.D (c), por
su apoyo incondicional.
A mis amigos y compañeros de la Coorporación Tecnólogica Industrial Colombiana que
directa o indirectamente contribuyeron a este trabajo de grado.

ii
Índice general

1. DESCRIPCIÓN DEL PROYECTO 5


1.1. PLANTEAMIENTO DEL PROBLEMA . . . . . . . . . . . . . . . . . . . 5
1.2. JUSTIFICACIÓN DEL PROYECTO . . . . . . . . . . . . . . . . . . . . . 6
1.3. OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4. METODOLOGÍA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. MARCO TEÓRICO 10
2.1. Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1. Robot Manipuladores . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2. Robot Manipuladores Continuo . . . . . . . . . . . . . . . . . . . . 12
2.1.3. Clasificación de los Robot Manipuladores . . . . . . . . . . . . . . . 14
2.1.4. Robot Movíles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.5. Robot Humanoide . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.6. Robótica Social . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2. Inteligencia Artificial y Computacional . . . . . . . . . . . . . . . . . . . . 20
2.2.1. Redes Neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3. Ros (Sistema Operativo de Robot) . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1. La simulación en la robótica . . . . . . . . . . . . . . . . . . . . . . 24
2.4.2. Gazebo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5. Tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.1. keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

iii
ÍNDICE GENERAL iv

2.6. Antecedentes del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 26


2.6.1. Estado del Arte de los Robot Continuo . . . . . . . . . . . . . . . . 26
2.6.2. Actuación en robots Híper-Redundantes . . . . . . . . . . . . . . . 33
2.6.3. Antecedentes relacionados con algoritmos de locomoción y planea-
ción de trayectorias para los robot continuo . . . . . . . . . . . . . 35

3. MARCO CONCEPTUAL 39
3.1. Teoría Screw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.1. Twist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.2. Producto de Exponeciales (POE) . . . . . . . . . . . . . . . . . . . 42
3.2. Redes Neuronales Artificiales . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2.1. Tipos de Rede Neuronales Artificiales . . . . . . . . . . . . . . . . . 44
3.2.2. Entrenamiento de Redes Neuronales Artificiales . . . . . . . . . . . 45
3.2.3. Métodos de Gradiente Descendente . . . . . . . . . . . . . . . . . . 46
3.2.4. Algoritmo Backpropagation . . . . . . . . . . . . . . . . . . . . . . 47
3.3. Detección de Colisiones y planificación de caminos en robot Manipuladores 49
3.3.1. Algortimo de Diagramas de Voronoi . . . . . . . . . . . . . . . . . . 49
3.3.2. Algoritmo de A∗ o AStar . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.3. Algoritmo de Campos Potenciales . . . . . . . . . . . . . . . . . . . 51

4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 54


4.1. Diseño conceptual del Robot Continuo . . . . . . . . . . . . . . . . . . . . 54
4.1.1. Diseño preliminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.2. Análisis de Elementos Finitos . . . . . . . . . . . . . . . . . . . . . 57
4.1.3. Análisis de resultados en la evaluación de elementos finitos . . . . . 60
4.1.4. Diseño final y Construcción del prototipo . . . . . . . . . . . . . . . 64
4.2. Cinemática del Robot Continuo . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3. Coordenadas y Marco de Referencia . . . . . . . . . . . . . . . . . . . . . . 68
4.3.1. Cinemática Directa . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3.2. Cinemática Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4. Creación del mundo virtual . . . . . . . . . . . . . . . . . . . . . . . . . . 77
ÍNDICE GENERAL v

4.4.1. Interfaz de usuario para comandar el robot en el ambiente virtual . 79

5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMEN-


TADOS 86
5.1. Algoritmo de Inteligencia Artificial: Arquitectura de la Red Neuronal . . . 87
5.1.1. Obtención de los Datos de Entrenamiento . . . . . . . . . . . . . . 87
5.1.2. Método de Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . 92
5.1.3. Fase de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2. Algoritmo de Planificador local . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.1. Descripción del algoritmo . . . . . . . . . . . . . . . . . . . . . . . 98
5.3. Planificador local basado en técnicas de “Divide and Conquer” . . . . . . . 102
5.3.1. Construcción de un diagrama PND . . . . . . . . . . . . . . . . . . 105
5.3.2. Regiones o Huecos . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.3.3. Búsqueda y selección de la región navegable . . . . . . . . . . . . . 106
5.3.4. Selección de la situación . . . . . . . . . . . . . . . . . . . . . . . . 107
5.3.5. Aplicación de la cinemática directa . . . . . . . . . . . . . . . . . . 107

6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 111


6.1. Métricas elegidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2. Pruebas en simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2.1. Escenarios y pruebas elegidos . . . . . . . . . . . . . . . . . . . . . 112
6.2.2. Prueba 1 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2.3. Prueba 2 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.2.4. Prueba 3 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.2.5. Prueba 4 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.2.6. Prueba 5 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.2.7. Prueba 6 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.2.8. Prueba 7 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.2.9. Prueba 8 con un robot de ocho eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.2.10. Prueba 1 con un robot de cinco eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.2.11. Prueba 2 con un robot de cinco eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.2.12. Prueba 3 con un robot de cinco eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.2.13. Prueba 4 con un robot de cinco eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.2.14. Prueba 5 con un robot de cinco eslabones implementado algoritmo
MPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2.15. Algoritmo planificador de trayectoria local . . . . . . . . . . . . . . 122
6.2.16. Algoritmo planificador de trayectoria local Divide and Conquer . . 123
6.2.17. Prueba 1 con el algoritmo Divide and Conquer . . . . . . . . . . . . 124
6.2.18. Prueba 2 con el algoritmo Divide and Conquer . . . . . . . . . . . . 125
6.2.19. Prueba 3 con el algoritmo Divide and Conquer . . . . . . . . . . . . 125
6.2.20. Prueba 4 con el algoritmo Divide and Conquer . . . . . . . . . . . . 126
6.2.21. Tablas comparativas y análisis . . . . . . . . . . . . . . . . . . . . . 126

7. CONCLUSIONES 129
7.0.1. TRABAJOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . 130
7.1. Recursos y presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2. Curvas para el entrenamiento de la red neuronal . . . . . . . . . . . . . . . 149
7.3. DataSet de la cinematica del robot continuo . . . . . . . . . . . . . . . . . 150
7.4. DataSet de la planeación de trayectorias para el manipulador continuo . . 152

vi
ÍNDICE DE FIGURAS vii

Índice de figuras

2.1. Robot Manipulador serial . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


2.2. Robot Manipulador paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Robot Manipulador Continuo . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4. Clasificación de los Robot Manipuladores . . . . . . . . . . . . . . . . . . 14
2.5. Robot Móvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Robot Humanoide pepper . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7. Relación ROS y SO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.8. Prototipo ACM III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.9. prototipo de endoscopio ELASTOR . . . . . . . . . . . . . . . . . . . . . . 27
2.10. Manipulador actuado con SMAs . . . . . . . . . . . . . . . . . . . . . . . . 27
2.11. Prototipo Helicoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.12. Prototipo SPRING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.13. Prototipo Snake Robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.14. Prototipo Air-Octor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.15. Prototipo Tensor Arm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.16. Trompa de elefante de Hannan y Walker. . . . . . . . . . . . . . . . . . . . 32
2.17. Funcionamiento de actuación mecánica mediante tensores. (a) Estado de
reposo. (b) Se tensa el cable de la izquierda y el manipulador se dobla. . . 32
2.18. Funcionamiento de actuación mecánica mediante Motores (a) Robot tipo
discreto. (b) Robot tipo continuo. . . . . . . . . . . . . . . . . . . . . . . . 33
2.19. Sarcos Dextrous Arm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.20. Orm de Stanford. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1. Arquitectura de una Neurona Biológica . . . . . . . . . . . . . . . . . . . . 43


ÍNDICE DE FIGURAS viii

3.2. Red Multicapa Unidireccional . . . . . . . . . . . . . . . . . . . . . . . . . 45


3.3. Red Recurrente Monocapa . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4. Función en 3D Multimodal . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5. Diagrama de Voroni de ocho puntos . . . . . . . . . . . . . . . . . . . . . . 50
3.6. Diagrama de A∗ o A star . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.7. Diagrama de Campos Potenciales Locales . . . . . . . . . . . . . . . . . . . 53

4.1. Diseño conceptual del Robot Continuo (Autor : Propia) . . . . . . . . . . 55


4.2. Diseño de preliminar (Autor : Propia) . . . . . . . . . . . . . . . . . . . . . 56
4.3. Diseño del eslabón de robot continuo (Autor : Propia) . . . . . . . . . . . . 57
4.4. Prueba de elementos finitos a tensión con una carga de 2N (Autor : Propia) 58
4.5. Prueba de elementos finitos a tensión con una carga de 8N (Autor : Propia) 59
4.6. Prueba de elementos finitos a compresión con una carga de −8N (Autor :
Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7. Prueba de elementos finitos a compresión con una carga de 2N aplicada
sobre un cable (Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . 60
4.8. Sección única del robot aplicada a una fuerza de flexión sin ruptura (Autor
: Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.9. Elongación maxima de la deformación del robot 5N . (Autor : Propia) . . . 61
4.10. Sección única de la tensión mecánica del robot 10N . (Autor : Propia) . . . 62
4.11. Sección única de la tensión mecánica del robot. (Autor : Propia) . . . . . . 62
4.12. Sección única de la tensión mecánica del robot. (Autor : Propia) . . . . . . 63
4.13. Diseño final del robot continuo en SolidWorks (Autor : Propia) . . . . . . . 64
4.14. Prototipo Final de un robot continuo. (Autor : Propia) . . . . . . . . . . . 66
4.15. Prototipo Final de un robot continuo. (Autor : Propia) . . . . . . . . . . . 66
4.16. Prototipo Final de un robot continuo. (Autor : Propia) . . . . . . . . . . . 67
4.17. Prototipo Final de un robot continuo. . . . . . . . . . . . . . . . . . . . . . 67
4.18. Modelo del robot continuo tipo discreto de tres eslabones (Autor : Propia) 68
4.19. Sistema de coordenadas usado en la simulación (Autor : Propia) . . . . . . 68
4.20. Modelo del robot continuo de tres eslabones . . . . . . . . . . . . . . . . . 70
ÍNDICE DE FIGURAS ix

4.21. Modelo del robot continuo de cinco eslabones (Autor : Propia) . . . . . . . 71


4.22. Resultados de la simulación. Curvas de un robot continuo a diferentes an-
gulos de cada eslabón (Autor : Propia) . . . . . . . . . . . . . . . . . . . . 75
4.23. Resultados de la simulación. Curvas de un robot continuo a diferentes an-
gulos de cada eslabón con sus respectivos marcos de referencia (Autor :
Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.24. Momento de inercia en cada Eslabón (Autor : Propia) . . . . . . . . . . . . 78
4.25. Centro de graveda de cada eslabón y la base donde se mueve el robot (Autor
: Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.26. Arquitectura del sistema de simulación (Autor : Propia) . . . . . . . . . . . 80
4.27. Primera ventana de comando de la interfaz gráfica (Autor : Propia) . . . . 81
4.28. ventana de adquision de datos del sensor Lidar (Autor : Propia) . . . . . . 82
4.29. ventana de adquision de datos de la posición de los eslabones del robot
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.30. Resultados del mundo virtual con un robot continuo tipo discreto con dife-
rente numero de eslabones (Autor : Propia) . . . . . . . . . . . . . . . . . 84
4.31. Simulación de un robot continuo de tres eslabones controlado desde una
GUI (Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.32. Simulación de un robot continuo de ocho eslabones controlado desde una
GUI (Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.33. Simulación de un robot continuo de 15 eslabones controlado desde una GUI
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.1. Simulación del robot continuo con un sensor Lidar (Autor : Propia) . . . . 87
5.2. Distribución pondera del sensor Lidar (Autor : Propia) . . . . . . . . . . . 88
5.3. Modelo del Perceptron (Autor : Propia) . . . . . . . . . . . . . . . . . . . . 89
5.4. Curvas de Bézier generadas con ocho puntos de control (Autor : Propia) . . 90
5.5. Robot Diferencial en la posición inicial (Autor : Propia) . . . . . . . . . . . 91
5.6. Curvas de Bézier generadas con ocho puntos de control (Autor : Propia) . . 91
ÍNDICE DE FIGURAS x

5.7. Resultados de una red neuronal con 4 capas de 20 neuronas cada capa
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.8. Resultados de una red neuronal con 8 capas de 20 neuronas cada capa
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.9. Resultados de una red neuronal con 16 capas de 20 neuronas cada capa
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.10. Flujograma del algoritmo propuesto con inteligencia artificial (Autor : Propia) 97
5.11. Flujograma del algoritmo propuesto con inteligencia artificial (Autor : Propia) 99
5.12. Implementación del algorimo A∗ (Autor : Propia) . . . . . . . . . . . . . . 100
5.13. Implementación del algorimo A∗ (Autor : Propia) . . . . . . . . . . . . . . 101
5.14. Representación del diagrama PND (Autor : Propia) . . . . . . . . . . . . . 103
5.15. Representación de las 6 posibles situaciones . . . . . . . . . . . . . . . . . 104
5.16. Flujograma del algoritmo Divide and Conquer (Autor : Propia) . . . . . . 105
5.17. Generación de puntos hacia la zona segura basada en curvatura (Autor :
Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.18. Calcular el radio y el vector tangente en el punto P2 (Autor : Propia) . . . 109
5.19. Curvatura constaten en la simulación del algoritmo Divide and Conquer
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

6.1. Prueba 1 con un robot de ocho eslabones implementado algoritmo MPL


(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.2. Prueba 2 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.3. Prueba 3 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.4. Prueba 4 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.5. Prueba 5 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.6. Prueba 6 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.7. Prueba 7 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.8. Prueba 8 con un robot de ocho eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.9. Prueba 1 con un robot de cinco eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.10. Prueba 2 con un robot de cinco eslabones implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.11. Prueba 3 con un robot de cinco eslabónes implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.12. Prueba 4 con un robot de cinco eslabónes implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.13. Prueba 5 con un robot de cinco eslabónes implementado algoritmo MPL
(Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.14. Algoritmo planificador de trayectoria local suavisado con Bézier (Autor :
Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.15. Algoritmo planificador de trayectoria local suavisado con Bézier simulado
en mundo virtual (Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . 122
6.16. Algoritmo planificador de trayectoria local suavisado con Bézier (Autor :
Propia) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.17. Algoritmo planificador de trayectoria local suavisado con Bézier simulado
en mundo virtual (Autor : Propia) . . . . . . . . . . . . . . . . . . . . . . . 123
6.18. Zonas del algoritmo Divide and Conquer (Autor : Propia) . . . . . . . . . . 124
6.19. Prueba 1 con el algoritmo Divide and Conquer (Autor : Propia) . . . . . . 124
6.20. Prueba 2 con el algoritmo Divide and Conquer (Autor : Propia) . . . . . . 125
6.21. Prueba 3 con el algoritmo Divide and Conquer (Autor : Propia) . . . . . . 126
6.22. Prueba 4 con el algoritmo Divide and Conquer (Autor : Propia) . . . . . . 126

xi
ÍNDICE DE ECUACIONES xii

Índice de ecuaciones

3.1. Rotación de un punto en el espacio . . . . . . . . . . . . . . . . . . . . . . . . . 39


3.2. Formula de Rodrigues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3. Variación de un ángulo θ respecto a un eje ŵ . . . . . . . . . . . . . . . . . . . 40
3.4. Velocidad de un punto en espacio con respecto a un eje de rotación . . . . . . 41
3.5. Producto de exponenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6. Función de activación de una neurona artificial . . . . . . . . . . . . . . . . . . 44
3.7. Función de activación de una neurona artificial de forma matricial . . . . . . . 44
3.8. Actualización de los pesos de una neurona artificial en una red neuronal artificial 46
3.9. Error de propagación de cada neurona en una red neuronal artificial . . . . . . 48
3.10. Error de propagación total de una red neuronal artificial . . . . . . . . . . . . 48
3.11. Variación de los pesos entre capas de una red neuronal artificial . . . . . . . . 48
3.12. Variación de los pesos entre capas con el operador β . . . . . . . . . . . . . . . 48
3.13. Ecuacion de busqueda con A∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.14. Ecuacion de busqueda con Campos Potenciales . . . . . . . . . . . . . . . . . 52
3.15. Fuerza repulsiva de obstaculos con Campos Potenciales . . . . . . . . . . . . 52
4.1.Producto de Exponeciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.Despeje de la variable gsh (θ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3.Despeje de la variable gsh (θ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4.Despeje de la variable θn−i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.5.Despeje de la variable θn−i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.6.Despeje de la variable θn−i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.7.Momento de Inercia de un eslabón . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.8.Momento de Inercia Total del robot continuo . . . . . . . . . . . . . . . . . . . . 78
5.1.Cálculo de rebote de sensor Lidar . . . . . . . . . . . . . . . . . . . . . . . . . . 88
ÍNDICE DE ECUACIONES xiii

5.2.Ecuacion de diagrama PND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105


5.3.Ángulos de cada eslabón en un robot continuo . . . . . . . . . . . . . . . . . . . 109
5.3.Producto de Exponeciales aplicados al robot continuo . . . . . . . . . . . . . . . 110
ÍNDICE DE ECUACIONES 1
Resumen

Este trabajo pretende implementar una estrategia para el posicionamiento articular de


un robot planar continuo utilizando un algoritmo de inteligencia artificial, con el fin de
generar un posicionamiento a lo largo del espacio cartesiano bidimensional teniendo en
cuenta los perfiles de velocidad y aceleración del manipulador robótico. Los robot conti-
nuos de geometría variable (GVT), Variable Geometry Truss, están formado por diferentes
módulos y poseen múltiples grados de libertad (GDL); por lo tanto, diseñar un método de
control para la locomoción de todo el cuerpo es más difícil que para los robots convencio-
nales. El algoritmo desarrollado se implementará sobre una plataforma virtual simulada
en un entorno para robótica. (GAZEBO Y ROS).

2
Introducción

Los robots continuos son una nueva clase de robots que pueden definirse como siste-
mas adaptables a diferentes entornos, a diferencia de los robots construidos con materiales
rígidos, los robots continuos permiten una mayor flexibilidad y adaptabilidad para llevar
a cabo tareas con condiciones de restricción de espacio [1]. Estos robot poseen múltiples
grados de libertad con una estructura elástica y soportados con una columna vertebral
permitiendo que en su locomoción tengan un alto grado de manipulación y destreza en
ambientes de difícil acceso y espacios muy cerrados donde la maniobrabilidad debe ser alta,
estas características son muy similares a las exhibidas por la locomoción de las serpientes,
trompas de elefantes y tentáculos de pulpo, capacidades más allá del alcance de manipu-
ladores tradicionales de enlace rígido, los manipuladores continuos son capaces de adaptar
su forma para navegar a través de entornos complejos y levantar una amplia variedad de
cargas utilizando su columna vertebral como principal soporte [2]. En los últimos años
ha surgido un creciente intereses de robótica bioinspirada, actualmente se han marcado
grandes avances en numerosas aplicaciones a nivel industrial y en el campo de la medicina
[3], los robot continuos inspirados en trompas biológicas, tentáculos y serpientes, pueden
variar su curvatura, una característica llamada VGT (Variable Geometry Truss), [4], re-
cientemente, se ha visto un aumento de los esfuerzos dirigidos a aprovechar estas cualidades
para mejorar las fronteras en el campo de la medicina principalmente en intervenciones
quirúrgicas mínimamente invasivas [5]. Varios diseños se han comercializado ahora, que
son inspiradores y permiten un cambio tradicional del robot de enlace rígidos que son los
que tiene mayor demanda en mercado actual, sin embargo los enfoques quirúrgicos hacia
rutas de acceso flexibles, por ejemplo, a través de orificios naturales como la nariz, donde
los robot continuos puede acceder fácilmente a diferencia robot rígido [6].

3
ÍNDICE DE ECUACIONES 4

Un tema de investigación importante para estudiar los robots continuos es el cálculo


de modelos cinemáticos, los enfoques tradicionales de modelado, en donde los marcos de
referencia están asociados con cada articulación, son inapropiados para este caso, debido a
la ausencia de enlaces discretos y rígidos en su arquitectura, la complejidad del problema
que reside en el acoplamiento de variables operacionales, la hiper-rebundancia en los siste-
mas robóticos, los enlaces discretos o la forma continua no pueden controlarse fácilmente
al considerar un número finito de grados de libertad, esto genera que la planeación de
trayectorias sea difícil de realizar y no sea óptima admitiendo así un conjunto reducido de
soluciones físicas [7] . Entre las contribuciones en el modelo cinemático inverso de estas
estructuras, podemos citar el modelo para una flexión de una sección con una configuración
especial propuesta donde a través de una geométrica de curvatura constante, se generan
las diferentes soluciones que esta puede tener y a sí usarse para calcular el desplazamiento
de los actuadores que hace que el manipulador asuma la posición aproximada a esta curva,
el moldeamiento se fundamenta en las técnicas tradicionales de la cinemática de los robot
convencionales pero con un error considerable entre punto final teórico y el valor real de la
posición del robot [8]. La inspiración y motivación de este trabajo surge a la necesidad de
generar una estrategia para la planeación de trayectorias para este tipo de robot, capaz de
llegar a la coordenada y con curvatura deseada a través de redes neuronales que pueden
ser una herramienta poderosa para superar esas no linealidades que a menudo son difíciles
de encontrar y capturar en un proceso de modelamiento matemático.
Capítulo 1

DESCRIPCIÓN DEL PROYECTO

En este capítulo se hace una breve descripción de los elementos que soportaron el
planteamiento de este proyecto, resolviendo preguntas tales cómo ¿Cuál es el problema
que se desea resolver?, ¿Cuáles son los objetivos?, ¿Cómo se va a desarrollar el trabajo?,
¿Cuál será el alcance? y ¿Cuál es la justificación?

1.1. PLANTEAMIENTO DEL PROBLEMA


Un campo de gran importancia en la robótica es la generación de trayectorias para
movimientos dentro de un espacio de trabajo que en un entorno puede contener obstáculos
estáticos o dinámicos que deben ser planificados con el fin de moverse evitando cualquier
posible colisión. Las técnicas tradicionales habitualmente hacen uso de herramientas como
el espacio-C, también conocido como espacio articular o de configuración [9]. Sin embargo,
en el caso de los robots continuos también llamados hiper-redundantes, el espacio articular
es de dimensión muy grande, por lo que el coste computacional de esos métodos es inviable.
Por este motivo, en el caso de los robots hiper-redundantes, este problema se ha intentado
resolver mediante otras técnicas como diagramas de Voronoi [10], mediante métodos geo-
métricos [11], y algoritmos metaheuristico para los robots continuos que sufren de grandes
limitaciones que dificultan su uso práctico en la actualidad [12]. Existen varios ejemplos
de trabajos en esta área, con un énfasis especial en el ámbito médico, de entre los cuales
destacan un elevado coste computacional que, en muchas ocasiones, impide su realización

5
CAPÍTULO 1. DESCRIPCIÓN DEL PROYECTO 6

en aplicaciones de tiempo real [13]. Los métodos probabilísticos habitualmente tienen un


alto coste computacional porque requieren de la generación de puntos en el espacio de la
configuración, que crece exponencialmente con el número de grados de libertad. Además,
los métodos experimentados hasta la fecha no tienen en cuenta las restricciones de las
propiedades físicas de los robots. Así, la mayoría de los planificadores solo funcionan en
casos muy específicos y no para robots flexibles en general.
¿Como se puede implementar un algoritmo de inteligencia artificial en un robot continuo
tipo planar, con el fin de generar un posicionamiento articular que pueda tener variaciones
en los perfiles de velocidad y aceleración deseando un movimiento predecible?

1.2. JUSTIFICACIÓN DEL PROYECTO


Los robots continuo se consideran una de las fronteras más prometedoras para la robó-
tica actual, investigación e innovación tecnológica, el enorme crecimiento de publicaciones
con temas especializados en revistas científicas, concursos financiados por UE, así como
nuevos laboratorios [14], demuestran el alto impacto de trabajos sobre estos robot, los
investigadores han empleado materiales rígidos para fabricar sistemas robóticos precisos y
predecibles, que se modelan fácilmente como miembros rígidos conectados en juntas dis-
cretas. Sin embargo, los sistemas naturales a menudo igualan o superan el rendimiento de
los sistemas robóticos con cuerpos deformables [15], Las características de que los sistemas
robóticos sean flexibles y suaves a la vez, más aún cuando se ven interactuando con los
seres humanos o en ambientes particulares, si observamos muchos seres vivos poseen en su
estructura rasgos de flexibilidad combinada con la inteligencia corporal, sistemas homó-
logos a la mayoría de los organismo naturales de estructuras blandas, pero esto tambíen
genera un gran reto en comprender su dinámica a través de los modelos matemáticos y su
control para generar movimiento predecibles. Las posibles aplicaciones de este tipo de ro-
bots incluyen la navegación a través de entornos congestionados e impredecibles en los que
un robot continuo puede usarse para la exploración subterránea o subacuática, los robots
continuos con sus habilidades únicas puede llegar a lugares que generalmente son inacce-
sibles para robots de enlaces rígidos y hostiles para seres humanos. Es por tal motivo que
CAPÍTULO 1. DESCRIPCIÓN DEL PROYECTO 7

se debe realizar este tipo de desarrollos a nivel nacional generando nuevos conocimientos
en el área de robótica e inteligencia artificial

1.3. OBJETIVOS

1.3.1. Objetivo General

Implementar un algoritmo de posicionamiento articula para un Robot Manipulador


Planar Continuo utilizando técnicas de Inteligencia Artificial y validarlo utilizando un
entorno de simulación 3D.

1.3.2. Objetivos Específicos

Diseñar y simular un prototipo básico de un robot continuo, dentro un ambiente


virtual (GAZEBO), teniendo en cuenta variables físicas como peso, inercia y restric-
ciones de giro.

Implementar un algoritmo de Inteligencia Artificial que permita posicionamiento


articular de un robot planar manipulador continuo en el espacio de trabajo Bidimen-
sional.

Simular el algoritmo de Inteligencia Artificial para el robot planar continúo dentro


del ambiente virtual.

Realizar una comparación entre una estrategia convencional desarrollada con un


base en un modelo cinemático, en contraste con el algoritmo de inteligencia artificial
propuesto para el posicionamiento articular.

1.4. METODOLOGÍA
Para la consecución de los objetivos propuestos se pretenden realizar las actividades
descritas a continuación
CAPÍTULO 1. DESCRIPCIÓN DEL PROYECTO 8

Diseñar y Simular un prototipo basico de un Robot Continuo dentro de


un ambiente virtual
En esta etapa se pretende modelar un robot utilizando herramientas CAD, predecir
un posible comportamientoy características físicas de los elementos del robot y tener
una mayor precisión cuando se exporte en el simulador donde se va a realizar pruebas.
Subtareas:

• Modelar el robot utilizando herramientas de software CAD.

Revisíon bibliográfica y fundametación teórica: Recopilación de los mo-


delos matemáticos para los Robot Continuo
En esta etapa se pretende encontar el modelo matemático de la cinemática y diná-
mica que se ha dessarrollado en diferentes investigaciónes para los robot continuos.
Subtareas:

• Recopilación de datos de los modelos matemáticos de un Robot Continuo.

• Planterar posible configuración del Robot.

Dessarrollar un modelo matemático para la planeación de trayectorias en


un Robot Continuo
En esta etapa se pretende simular y observar el comportamiento de un modelos ma-
temático analítico que permita la palenación de trayectoria para el Robot Contnuo.
Subtareas:

• Simular un modelo matemático analítico para la planeación de trayectorias.

• Observar el comportamiento en el entrono de dessarrollo virtual.

Dessarrollar e implementar un algoritmo de Inteligencia Artificial el cual


permite generar planeación de trayectorias de un Robot Continuo
Una vez obtenidos la morfologia de la red neuronal se procederá a implementarla en
el entorno de simulación para validar su comportamiento.
Subtareas:

• Implementar un algoritmo con la red neuronal y evaluar su comportamiento.


CAPÍTULO 1. DESCRIPCIÓN DEL PROYECTO 9

• Observar el comportamiento en el entrono de dessarrollo virtual.

Realizar una comparación entre la estrategia convencioanl dessarrollada


con una base en un modelo cinemático en contraste con el algoritmo de
inteligencia artificial propuesto para la planificación de trayectorias
Una vez obtenidos los resultados de los diferentes métodos para la planeación de
trayectorias en un robot continuo se procederá a realizar una comparación de estos
algoritmos.
Subtareas:

• Comparar el método analitico de gerenacion de trayectorias con el algoritmo de


inteligencia artificial propuestos en el trabajode investigación.

• Generar una discusión y conclusiones de los resultados obtenidos.


Capítulo 2

MARCO TEÓRICO

Este capítulo muestra los conceptos claves para el dessarrollo del proyecto de investi-
gación

2.1. Robótica
La robótica es la rama de la ingeniería mecatrónica que se ocupa el diseño, cons-
trucción, operación, disposición estructural, manufactura y aplicación de los robots. La
robótica combina diversos disciplinas como son: la mecánica, la electrónica, la informática,
la inteligencia artificial, la ingeniería de control y la física [16]. El termino robot proviene
de la palabra checa ”Robota” y siginifica trabajo; fue introducido por el dramaturgo Karel
Capek en 1921 en su novela satríca Rossum’s Universal Robots [17], donde describe
al robot como una máquina que sustituye a los seres humanos para ejecutar tareas sin
descanso; a pesar de esto, los robots se vuelven en contra de sus creadores aniquilando
toda la raza humana. Desde aquel entonces a cualquier sistema mecánico con movimiento
se le denomina Robot.
Existen varias definiciones para describir a un robot, entre ellas la que proporciona una
mejor descripción es la adoptada por el Robot Institute of America [18], el cual es-
tablece: Un robot es un manipulador multifuncional reprogramable diseñado para mover
materiales, partes, herramientas o dispositivos espacializados a través de movimientos pro-
gramados para la ejecución de una varierdad de tareas.

10
CAPÍTULO 2. MARCO TEÓRICO 11

Se pueden encontrar muchas clasificaciones de los robots dependiendo de su grado de


control, inteligencia, arquitectura, grados de libertad, forma, fin para el que son desarro-
llados, etc,[19]. Algunas clasificaciones son las siguientes:

Manipuladores

Móviles

Humanoides

2.1.1. Robot Manipuladores

Los robots manipuladores han sido proyectados con el objeto de eliminar los esfuerzos
provocados por el levantamiento de la mercancía y están destinados a varios campos y
diversificados. Se distinguen por la sencillez de uso y por su estructura resistente y sólida.
En robótica, el concepto de Grado de Libertad (GdL) tiene una relevancia destacable. Se
define como el número de movimientos o parámetros independientes que definen la configu-
ración de un robot [20]. Para que un robot manipulador posicione y oriente correctamente
su extremo en un espacio tridimensional, es necesario que disponga de, al menos, 6 GdL: 3
para determinar la posición y 3 para determinar la orientación. Por lo tanto, aquellos ro-
bots que tengan más grados de libertad controlables que los mínimamente necesarios para
posicionarse y orientarse en su espacio de trabajo presentarán cierto nivel de redundancia.
Los robots hiper-redundantes son aquellos que poseen un número de grados de libertad
muy superior al mínimo requerido para realizar una determinada tarea [21].
En la Figura 2.1 se puede observar un manipulador de seis grados de libertad de la em-
presa kuka robotics [22].
Existen otro clase de robot manipuladores de estructura rígida pero su cadena cinemática
es cerrada, la cual su plataforma móvil está unida a la base que es fija a través de extremi-
dades, estos robot a diferencias de los manipuladores seriales poseen un mayor velocidad,
soporte de carga y precisión, pero su espacio de trabajo es reducido [23]. En Figura 2.2
se puede observar un manipulador paralelo Adept Quattro
CAPÍTULO 2. MARCO TEÓRICO 12

Figura 2.1: Robot Manipulador serial


[20]

Figura 2.2: Robot Manipulador paralelo


[21]

2.1.2. Robot Manipuladores Continuo

Los manipuladores continuo están formados por múltiples secciones y no poseen una
estructura rígida, posee un alto grado de flexibilidad los cuales generan múltiples grado de
libertad [22], a diferencia de manipuladores tradicionales el controlador es más complejo,
los robots continuos a menudo son biológicamente inspirados en los tentáculos de los pulpos
los cuales poseen una gran estructura flexible que se puede usar para agarrar objetos,
alargar, contraer y doblar, los robot cuyo diseño está inspirado por esta anatomía del pulpo
son particularmente útil para buscar en lugares inseguros y estrechos donde los robots
CAPÍTULO 2. MARCO TEÓRICO 13

rígidos no pueden llegar y además puede usarse en aplicaciones quirúrgicas, confinadas y


peligrosas [23], ya que los motores, la electrónica y los sistemas de control se encuentran
fuera del entorno, y solo el brazo se despliega en el espacio de trabajo, este tipo de robots
están diseñados con un núcleo hueco, lo que permite que el cableado, las mangueras y otros
equipos asociados con la efector final se dirijan a través del centro del brazo, a menudo se
montan en ejes de introducción lineales o soporte de columna vertebral desde los cuales
se despliegan para entornos peligrosos, este brazo puede estar protegido y presurizado,
evitando que el polvo y la suciedad afecten el funcionamiento del brazo, los cables y
mangueras también están protegidas con material no contaminante pueden utilizarse para
entornos radiactivos para evitar la entrada de contaminación al sistema [24]. En la Figura
2.3 se puede observar un robot continuo desarrollado por la empresa OC Robotics tipo
snake arm, que pertenece a la clase de robot de múltiples secciones.

Figura 2.3: Robot Manipulador Continuo


[24]

Dentro de la robótica como ciencia aplicada, la robótica bioinspirada ha despertado


un incremento durante los últimos años , numerosas aplicaciones inspiradas en partes bio-
lógicas como los tentáculos pulpos y trompas de elefantes ha generado que los sistemas
continuum aplicados tengan características importantes por su gran flexibilidad y locomo-
ción permitiéndoles atravesar lugares confinados, manipular objetos en entornos complejos
y adaptarse a trayectorias curvilíneas, otra característica de los diferentes diseños ofrecen
compatibilidad estructural inherente y facilidad de miniaturización [25]. Las propiedades
de detección de fuerza aumentan la autonomía del robot en la manipulación de objetos
y seguimiento de trayectorias. Una estrategia general para hacer que el robot sienta su
CAPÍTULO 2. MARCO TEÓRICO 14

entorno y poder controlarlo es integrando sensores de fuerza externos en el esquema del


robot. Muchos tipos de sensores han sido diseñados para adaptarse a la deformidad de
estructuras, . Sin embargo, la integración de sensores de fuerza externos podrá aumentar
la complejidad y el volumen de las estructuras mecánicas. [26]

2.1.3. Clasificación de los Robot Manipuladores

La clasificación que se propone a continuación es considera como las características


más relevantes dentro de los manipuladores robóticos [27]; Su funcionalidad, el número de
grados de libertad y de articulaciones, la forma y la localización de sus actuadores y los
materiales con los que se han construido. Dicha clasificación puede verse resumida en la
Figura 2.4.

Figura 2.4: Clasificación de los Robot Manipuladores


[28]

Una primera clasificación en el ámbito de la robótica que se puede realizar es según el


número de grados de libertad, esto se pueden diferenciar de la siguiente forma.

No redundantes: Son aquellos que tienen el número justo de GdL (o menor) para
poder alcanzar cualquier punto dentro de su espacio de trabajo [29]. En un espacio
CAPÍTULO 2. MARCO TEÓRICO 15

plano (dos dimensiones) esto serían 3 GdL (dos para la posición y uno para la
orientación), y en un espacio tridimensional son 6 GdL (tres para posición y tres
para orientación)[30].La cinemática de este tipo de robot cumple:

dim(q̄) = n = dim(X¯ee ) = m

Donde q̄ es el vector de los valores de las articulaciones (por lo que n toma el valor
del número de articulaciones) y X¯ee es el vector posición y orientación del extremo
del robot (por lo que en caso de movimiento en tres dimensiones, m será 6 (tres
correspondientes a la posición y tres a la orientación)[31]

Redundantes: Son aquellos que disponen de más GdL de los necesarios para realizar
una tarea determinada [32]. En un espacio bidimensional, 4 o más GdL implicaría
redundancia, y en un espacio tridimensional habría redundancia a partir de los 7
GdL. Para este tipo de robot por tanto se cumple:

dim(q̄) = n > dim(X¯ee ) = m

La caracteristica para que un robot sea redundante es que el número de articulaciones


sea mayor que el número de elementos del vector de posición y orientación X¯ee

Híper-Redundantes: Se denomina robot híper-redundante a aquel robot que sien-


do redundante, su número de GdL es muy elevado [33]. Estos robots presentan venta-
jas cinemáticas y mecánicas, como poder adoptar la configuración más apropiada en
cuanto a transmisión de fuerza al efector final (configuración que permita transmitir
la máxima fuerza posible), destreza y rigidez (se pueden evitar configuraciones en las
que haya singularidades, y en las que la desviación del extremo del robot sea míni-
ma), disponibilidad de rango de articulación (de tal forma que las posiciones de las
articulaciones sean lo más cercanas a su posición central) y energía (minimizando la
inercia y la velocidad). También existen ventajas cuando el entorno en el que el robot
tiene que trabajar es desestructurado, pudiendo los robots híper-redundantes sortear
CAPÍTULO 2. MARCO TEÓRICO 16

los obstáculos que puedan existir en su campo de trabajo. De no ser redundante, el


efector no podría en algunos casos alcanzar su posición final. [34] La redundancia
permite al robot envolver al obstáculo para poder alcanzar el punto deseado. Ade-
más, este tipo de robot es más robusto frente a fallos en las articulaciones que un
robot no redundante. En robots tradicionales (no redundantes) cuando un GdL falla
deja de ser capaz de poder alcanzar todos los puntos de trabajo. A pesar de que el
estudio de robots híper-redundantes tiene un recorrido de más de dos décadas, su
uso se limita al campo experimental debido a que tanto el diseño mecánico como
la implementación muchas veces es demasiado complejo [35]. Además los modelos
cinemáticos clásicos no son eficientes o adecuados cuando se trata de este tipo de
robots.

Se puede realizar una sub clasificación de los manipuladores Hiper-Redundantes de


acuerdo a su diseño mecánico:

• Discretos: Son aquellos compuestos por módulos, unidos entre ellos mediante
las articulaciones, donde están situados los grados de libertad [36]. El número
de articulaciones (y por tanto de GdL) es finito, y será posible denominar al
robot “híper-redundante” cuando este número sea muy elevado. La localización
(posición y orientación) del extremo del robot (o el TCP) puede ser deducida a
partir del valor de las coordenadas articulares del mismo, es decir, a través de la
resolución de la Cinemática Directa [37]. El accionamiento de este tipo de robots
se suele realizar con transmisión mediante tensores, mediante accionamiento
directo o con transmisión mediante engranajes, este tipo de robots puede ser
no redundante, redundante o híper-redundante.

• Continuos: Son aquellos que disponen de infinitos grados de libertad virtua-


les, que se consiguen mediante una deformación distribuida. La cinemática y el
control de este tipo de robots son más complicados que los de robots discretos
[38]. El modo de actuación de los robots de este tipo suele ser mediante alea-
ciones con memoria de forma (SMAs en adelante), accionamiento magnético o
accionamiento neumático. Este tipo de robot es siempre híper-redundante, pero
CAPÍTULO 2. MARCO TEÓRICO 17

tiene el inconveniente de ser difícilmente controlable, ya que su control se basa


en modelos no lineales.

Una última sub clasificación se puede realizar teniendo en cuenta los materiales
de los que el robot está compuesto [39]:

◦ Robots duros (hard): Este tipo de robot está formado por elementos
rígidos unidos por articulaciones donde se encuentran los GdL. La mayoría
de este tipo de robots no son redundantes (aunque también los hay re-
dundantes e híper-redundantes) y están diseñados para realizar tareas con
precisión en entornos bien definidos. Generalmente son robots discretos,
aunque también se pueden diseñar como robots continuos con elementos
“hard” como por ejemplo SMA [40].

◦ Robots blandos (soft): Este tipo de robot es siempre continuo e híper-


redundante. Se adapta fácilmente a obstáculos, sin ofrecer mucha resis-
tencia, por lo que es capaz de trabajar con cargas frágiles, adaptándose
fácilmente a su contorno. Se usa en aplicaciones en las que interactúa con
personas (sin causar daños), en pintura, en cirugía y en defensa (se maneja
en entornos desestructurados). Este tipo de robot no suele ser preciso debi-
do a la dificultad de controlarlos para realizar planificación de trayectorias
[41].

2.1.4. Robot Movíles

Un robot móvil es una máquina automática capaz de trasladarse en cualquier am-


biente dado. Los robots móviles tienen la capacidad de moverse en su entorno y no se
fijan a una ubicación física en contraste con los robots industriales fijos, que consisten en
un brazo articulado (manipulador de multi-ligado) y una pinza de montaje (o efector de
extremo) que está unida a una superficie fija [42].
Los robots móviles son un foco importante de la investigación actual y casi de cada
universidad importante que tenga uno o más laboratorios que se centran en la investigación
de robots móviles. Los robots móviles se encuentran también en la industria y los servicios.
CAPÍTULO 2. MARCO TEÓRICO 18

Los robots domésticos son productos de consumo, incluyendo robots de entretenimiento


y los que realizan ciertas tareas del hogar, como pasar la aspiradora o hacer trabajos de
jardinería [43]. En la figura 2.5 se puede ver un robot móvil para exploracón diseñado por
la Nasa

Figura 2.5: Robot Móvil


[44]

2.1.5. Robot Humanoide

Un Robot Humanoide esta diseñado para simular la forma y los movimientos de un


ser humano. Un diseño humanoide puede tener fines funcionales, tales como la interacción
con herramientas y entornos humanos, con fines experimentales, como el estudio de la
locomoción bípeda, o para otros fines. En general, los robots humanoides tienen un torso,
una cabeza, dos brazos y dos piernas, aunque algunas formas de robots humanoides pueden
modelar sólo una parte del cuerpo, por ejemplo, de la cintura para arriba [45]. Algunos
robots humanoides pueden tener cabezas diseñadas para replicar los rasgos faciales huma-
nos, tales como los ojos y la boca. Los androides son robots humanoides construidos para
parecerse estéticamente a los humanos. Los robots humanoides actualmente son usados
como herramienta en investigaciones científicas.

2.1.6. Robótica Social

La robótica social es el estudio de los robots que son capaces de interactuar y comuni-
carse entre ellos, con los seres humanos y con el medio ambiente, dentro de las estructuras
CAPÍTULO 2. MARCO TEÓRICO 19

social y cultural en las cuales se desenvuelven [46]. Los temas que generalmente se inclu-
yen en esta área de investigación son vastos, de los cuales podemos mencionar interacción
robot-humano e interacción robot-robot, roboética en la sociedad humana, aceptación so-
cial e impacto de los robots en la sociedad, arte robótico interactivo y robótica de asistencia
social. En este último tema, y dados los avances tecnológicos, hoy en día es común encon-
trar sistemas que automatizan muchas de las tareas que anteriormente eran realizadas
por personas. Por ejemplo, podemos pensar en la industria automotriz y en la industria
de manufactura de tarjetas de circuitos impresos. Por esta razón, el pensar que un robot
humanoide realice tareas de asistencia social ya no es ciencia ficción [47].
Por ejemplo, los adultos mayores necesitan ayuda para las actividades cotidianas, que
varían según la persona e incluyen tanto las necesidades funcionales como médicas2. En este
caso podemos encontrar robots que ayudan a personas mayores que sufren de enfermedad
pulmonar obstructiva crónica [48]. Tal es el caso del estudio de Johnson et al.3, en donde
el comportamiento del robot está determinado en parte por la información recopilada a
través de sensores de una casa inteligente. Para garantizar la aceptación de los usuarios,
se utilizó un diseño centrado en el usuario para implementar el comportamiento del robot
[49].
En la figura 2.6 se puede ver un robot humanoide utilizado como sistema información
interactivo en aereopuertos de Japon.

Figura 2.6: Robot Humanoide pepper


[49]
CAPÍTULO 2. MARCO TEÓRICO 20

2.2. Inteligencia Artificial y Computacional


La inteligencia artificial (IA) se considera la simulación de procesos de inteligencia hu-
mana por parte de máquinas, especialmente sistemas informáticos. Estos procesos incluyen
el aprendizaje (la adquisición de información y reglas para el uso de la información), el
razonamiento (usando las reglas para llegar a conclusiones aproximadas o definitivas) y
la autocorrección. La terminología fue acuñada por John McCarthy, un informático es-
tadounidense, en 1956, donde nació la disciplina. Hoy en día, es un término general que
abarca todo, desde la automatización de procesos robóticos hasta la robótica actual. Ha
ganado prominencia recientemente debido, en parte, a los grandes volúmenes de datos, o
al aumento de velocidad, tamaño y variedad de información [50].
La inteligencia artificial puede ser categorizada de dos maneras:

El primero clasifica los sistemas de inteligencia artificial débil, también conocida


como estrecha, es un sistema en que está diseñado y entrenado para una tarea en
particular, los asistentes personales virtuales, como Siri de Apple, son una forma de
débil de inteligencia artificial. [51]

La segunda categoría es la inteligencia artificial fuerte, también conocida como in-


teligencia general artificial, es un sistema de inteligencia artificial con habilidades
cognitivas humanas generalizadas, de modo que cuando se le presenta una tarea
desconocida, tiene suficiente inteligencia para encontrar una solución. La prueba de
Turing, desarrollada por el matemático Alan Turing en 1950, es un método utiliza-
do para determinar si una computadora puede realmente pensar como un humano,
aunque el método es polémico. [51]

La Inteligencia Computacional (IC) es un término que engloba numerosas disciplinas


de la Inteligencia Artificial, mayoritariamente de inspiración biológica, y presentadas en
contraposición a aquellas basadas en el razonamiento simbólico clásico, que se emplean con
el fin de resolver problemas complejos difíciles de solucionar con técnicas computacionales
más tradicionales. Habitualmente se incluyen en la inteligencia computacional a las redes
CAPÍTULO 2. MARCO TEÓRICO 21

de neuronas artificiales (RNAs), la computación evolutiva, la lógica difusa, la inteligencia


de enjambre y los sistemas inmunes artificiales [52].
Partiendo de una definición de “inteligencia” que se apoya fundamentalmente en la
capacidad de adaptación a cambios en el entorno, las metodologías y aproximaciones de la
Inteligencia computacional permiten el desarrollo de sistemas adaptativos que combinan
técnicas de aprendizaje, generalización, abstracción y asociación de información a la hora
de resolver los problemas para los que son desarrollados, en los últimos años dentro del
campo de la inteligencia computacional, se ha centrado en la investigación y el desarrollo
de sistemas basados en RNA’s y Computación Evolutiva, ya sea desde un punto de vista
puramente teórico, o para resolver problemas en ámbitos tan diversos como pueden ser la
robótica, la dinámica de fluidos o la inteligencia ambiental. [53]

2.2.1. Redes Neuronales

Las Redes Neuronales son un campo muy importante dentro de la Inteligencia Artificial,
estas están inspiradas en el comportamiento conocido del cerebro humano, principalmente
el referido a las neuronas y sus conexiones, trata de crear modelos artificiales que solu-
cionen problemas difíciles de resolver mediante técnicas algorítmicas convencionales. [54]
El modelo de Rumelhart y McClelland de 1986 define un elemento de proceso (EP), o
neurona artificial, como un dispositivo que a partir de un conjunto de entradas que genera
una única salida [23], una de las características más significativas de las redes neuronales
es su capacidad para aprender a partir de alguna fuente de información interactuando
con su entorno. En 1958 el psicólogo Frank Ronsenblant desarrolló un modelo simple de
neurona basado en el modelo de McCulloch y Pitts y en una regla de aprendizaje basada
en la corrección del error. A este modelo le llamó Perceptrón. Una de las características
que más interés de este modelo fue su capacidad de aprender a reconocer patrones. El Per-
ceptrón está constituido por un conjunto de sensores de entrada que reciben los patrones
de entrada a reconocer o clasificar y una neurona de salida que se ocupa de clasificar a
los patrones de entrada en dos clases, según que la salida de la misma sea 1 (activada) o
0 (desactivada). Sin embargo, dicho modelo tenía muchas limitaciones, como por ejemplo,
no es capaz de aprender la función lógica XOR. [55]
CAPÍTULO 2. MARCO TEÓRICO 22

El Perceptron multicapa es una generalización del Perceptron simple y surgió como


consecuencia de las limitaciones de dicha arquitectura en lo referente al problema de la
separabilidad no lineal. Minsky y Papert mostraron en 1969 que la combinación de varios
Perceptrones simples de neuronas ocultas podría resultar una solución adecuada para tratar
ciertos problemas no lineales [56].

2.3. Ros (Sistema Operativo de Robot)


Sistema Operativo de Robot ROS, es un Framework de código de abierto para la pro-
gramación de diferentes tipos de robots, ROS está destinado a servir como una plataforma
de software común para las personas que están construyendo y utilizando robots. Esta
plataforma común permite a las personas compartir código e ideas con mayor facilidad
[57]. La Universidad de Stanford a mediados de la década de 2000 desarrollo proyectos
que involucraron inteligencia artificial integrada e integradora, como el robot STanford AI
(STAIR) y el programa Personal Robots (PR), crearon prototipos internos de sistemas de
software flexibles y dinámicos destinados al uso de la robótica. En 2007, Willow Garage,
una incubadora de robótica visionaria cercana, proporcionó recursos significativos para
extender estos conceptos mucho más lejos y crear implementaciones bien probadas. El
esfuerzo fue impulsado por innumerables investigadores que contribuyeron con su tiempo
y experiencia tanto a las ideas centrales de ROS como a sus paquetes de software funda-
mentales. En todo momento, el software se desarrolló al aire libre utilizando la licencia
permisiva de código abierto BSD, y gradualmente se ha convertido en una plataforma
ampliamente utilizada en la comunidad de investigación en robótica. [58]
ROS se compone de un conjunto de librerías de programación, aplicaciones, drivers
y herramientas de visualización, monitorización, simulación y análisis, todas reutilizables
para el desarrollo de nuevas aplicaciones para robots tanto simulados como reales. Por otro
lado, ROS nos proporciona también servicios estándares propios de un sistema operativo
pero sin serlo, ya que se instala sobre otro, en general Linux y de manera recomendada
Ubuntu, y por ello también recibe la denominación de Meta-Sistema Operativo. Posee su
propio manejador de paquetes mediante comandos desde terminal para la gestión, compi-
CAPÍTULO 2. MARCO TEÓRICO 23

lación y ejecución de archivos, así como abstracción de hardware. [59]


Ros trabaja de forma modular con cada programa o aplicación, lo que en ROS se
denomina como nodo, se ejecuta dentro otro ejecutable (Master) que funciona de núcleo
del sistema y hace las veces de plataforma por la que se comunican los diferentes nodos
mediante topics y/o servicios, de los que se hablará más adelante. En la figura 2.7 se
puede ver el diagrama de la relación ros y sistema operativo

Figura 2.7: Relación ROS y SO


[59]

2.4. Simulación
La simulación es la imitación de la operación de un proceso o sistema del mundo real
en el tiempo[7]. Para simular algo se requiere que se desarrolle un modelo; este modelo re-
presenta las características, comportamientos y funciones clave del sistema o proceso físico
seleccionado. El modelo representa el sistema en sí, mientras que la simulación representa
el funcionamiento del sistema a lo largo del tiempo. [60] A menudo, los experimentos en
computadora se usan para estudiar modelos de simulación. La simulación también se usa
CAPÍTULO 2. MARCO TEÓRICO 24

con modelos científicos de sistemas naturales o sistemas humanos para obtener información
sobre su funcionamiento, [8]como en economía. La simulación se puede usar para mostrar
los efectos reales eventuales de condiciones y cursos de acción alternativos. La simulación
también se usa cuando el sistema real no puede ser activado, porque puede no ser accesi-
ble, o puede ser peligroso o inaceptable, o está siendo diseñado, pero aún no construido, o
simplemente puede no existir.[61] Los temas clave en la simulación incluyen la adquisición
de información de origen válida sobre la selección relevante de características y compor-
tamientos clave, el uso de aproximaciones y suposiciones que simplifican la simulación, y
la fidelidad y validez de los resultados de la simulación. Los procedimientos y protocolos
para la verificación y validación de modelos son un campo continuo de estudio académico,
refinamiento, investigación y desarrollo en tecnología o práctica de simulaciones, particu-
larmente en el campo de la simulación por computadora

2.4.1. La simulación en la robótica

La simulación en la robótica se utiliza para crear aplicaciones para un robot específico


sin depender del robot real En algunos casos, estas aplicaciones pueden transferirse al
robot real sin modificaciones. Los simuladores de robótica permiten reproducir situaciones
que no pueden crearse en el mundo real debido al costo, el tiempo o la singularidad de un
recurso. Un simulador también permite la creación rápida de prototipos de robots. Muchos
simuladores de robot cuentan con motores de física para simular la dinámica de un robot.
[62]

2.4.2. Gazebo

Gazebo, que nace con el nombre de Gazebo Project, es un simulador 3D, cinemático,
dinámico y multi-robot que permite realizar simulaciones de robots articulados en entornos
complejos, interiores o exteriores, realistas y tridimensionales, permite probar rápidamente
algoritmos, diseñar robots, realizar pruebas de regresión y entrenar el sistema de inteli-
gencia artificial utilizando escenarios realistas. Gazebo ofrece la capacidad de simular con
precisión y eficiencia poblaciones de robots en entornos complejos interiores y exteriores.
CAPÍTULO 2. MARCO TEÓRICO 25

El motor de física es robusto con gráficos de alta calidad e interfaces programáticas y


gráficas convenientes. [63]

2.5. Tensorflow
Tensorflow es una biblioteca de código abierto para el desarrollo de aplicaciónes en
el campo de la inteligencia artifical principalmente en Machine Learning y Deep Lear-
ning. Tensorflow desarrollada por la empresa Google, una empresa americana, con sede en
Mountain View, California, que se especializa en servicios de Internet, sobre todo como
motor de búsqueda, sistemas de optimización e inteligencia artificial. [64]

2.5.1. keras

Es una biblioteca de Redes Neuronales de Código Abierto escrita en Python. Es capaz


de ejecutarse sobre TensorFlow, Microsoft Cognitive Toolkit o Theano. Está especialmente
diseñada para posibilitar la experimentación en más o menos poco tiempo con redes de
Aprendizaje Profundo. Sus fuertes se centran en ser amigable para el usuario, modular y
extensible. [65]
CAPÍTULO 2. MARCO TEÓRICO 26

2.6. Antecedentes del Proyecto


En esta sección se muestra el estado del arte de los robot continuos y antecedentes rela-
cionados los algoritmos de locomoción y planeación de trayectorias para un robot continuo.

2.6.1. Estado del Arte de los Robot Continuo

ACM III

En 1975 se creó el ACM III (Active Cord Mechanism), el primer robot híper-
redundante con movimientos similares a los de las serpientes reales. Dicho robot
disponía de 20 GdL y estaba actuado mediante servomotores. Este robot fue creado
por Hirose, medía dos metros y era capaz de desplazarse a una velocidad de 40 cm/s
describiendo con la parte delantera un movimiento sinusoidal. El contacto con el
suelo se realizó a partir de ruedas, lo que oponía resistencia al movimiento lateral
y por tanto facilitaba la traslación hacia adelante [66]. En la figura 4.25 se puede
observar el prototipo ACM III.

Figura 2.8: Prototipo ACM III


[66]
CAPÍTULO 2. MARCO TEÓRICO 27

Elastor

En 1986 fue desarrollado en los laboratorios de robótica de Hirose y Yoneda un


manipulador híper-redundante en el campo de la medicina, como endoscopio para
exploración de la cavidad abdominal, con técnicas mínimamente invasivas, que usaba
SMAs como actuadores. En 1980 se empezó a crear el prototipo (ELASTOR) 2.9
y a partir de 1983 se empezó a investigar la forma de miniaturizarlo, usando SMAs.
En 1986, finalmente, se consiguió hacer este manipulador con un diámetro de 13mm
y longitud de 250mm 2.10 [67].

Figura 2.9: prototipo de endoscopio ELASTOR


[67]

Figura 2.10: Manipulador actuado con SMAs


[67]
CAPÍTULO 2. MARCO TEÓRICO 28

Helical / Screw Type

El robot fue desarrollado por M. Kurata [68], prototipo que fue inspirado por el
movimiento de las espiroquetas (Spirochaetes o Spirochaetae), son un Tipo de acte-
rias Gram-negativas que tienen células alargadas y enrolladas helicoidalmente. Las
espiroquetas se distingue de las demás bacterias por la presencia de unos flagelos
especializados denominados filamentos axiales situados entre la envoltura celular ex-
terna y el cilindro protoplasmático (en el espacio periplasmático) que producen un
movimiento giratorio que permite a la bacteria entera desplazarse hacia adelante, co-
mo si fuese un sacacorchos. En la figura 2.11 se puede observar el prototipo helicoidal
de un robót continuo inspirados en las bacterias espiroquetas.

Figura 2.11: Prototipo Helicoidal


[68]

Las principales ventajas de la rotación helicoidal son:

• El robot puede ser muy pequeño ya que su mecanismo es simple

• El robot se sella fácilmente porque no tiene ningún mecanismo giratorio ilimi-


tado como una rueda.

• Es poco probable que el movimiento de rotación helicoidal dañe el interior pared


de una tubería porque el robot no arrastra su cuerpo.

• El robot puede moverse en un tubo flexible porque su cuerpo es flexible.

• El robot no bloquea el flujo en una tubería porque tiene espacio dentro de su


cuerpo helicoidal a través del cual fluyen los fluidos.
CAPÍTULO 2. MARCO TEÓRICO 29

• El robot puede adaptarse a los cambios en el diámetro de la tubería porque el


diámetro de su cuerpo helicoidal se puede cambiar.

Spring

Es un robot inspector de tuberías desarrollado por K. Osuka [69], donde su desplaza-


miento lineal a través de su forma helicoidal pero los resultados obtenidos revelan dos
problemas principales. Una es que SPRING se detiene después de rápido desacelera-
ción cuando se acerca a una válvula en el segmento de tubería. Esto se debió a que
las aletas delanteras estaban bloqueadas por la pared de la válvula porque el resorte
no estaba lo suficientemente deformado. A fin de querer resolver este problema, tuvo
que ser necesario rediseñar la rigidez el cuerpo, la tasa de estrechamiento del cuerpo,
así como la forma y disposición de las aletas. Otro problema es que los neumáticos
resbalan haciendo que SPRING se atasque al ingresar un codo en la tubería. Esto se
debe a que los neumáticos no están en contacto con la pared porque el ángulo entre
la superficie del cuerpo y la pared es mayor cuando se ejecuta en el codo. Además de
la capacidad de recuperación. En la figura 2.12 se puede observar el prototipo del
robot.

Figura 2.12: Prototipo SPRING.


[69]
CAPÍTULO 2. MARCO TEÓRICO 30

Snake Robot

El robot fue dessarrollado por Hirose, Gavin Miller que construyó entre 1994 y 1995
prototipos de robots de estilo serpiente (llamados “snake robot”), como se observa
en la figura 2.13 (a) primera versión, (b) segunda versión. la segunda versión dispo-
nían de 14 servomotores. Al igual que el ACM III, el contacto con el suelo se hacía
mediante ruedas, que a su vez impedían el movimiento horizontal [70].

Figura 2.13: Prototipo Snake Robot.


[70]

Air-Octor

Bryan A. Jones y Ian D Walker [71], introdujeron un método de relación cinemática


para una clase robot continuo con soporte de Columna vertebral, este robot posee
actuadores neumáticos, que simula la fuerza de un tendón muscular muy parecido
a la trompa de los elefantes, este robot en contraste con robot tradicionales de es-
tructura rígida no tiene limitaciones a la adaptabilidad de los movimientos, para el
desarrollo de la cinemática implica dos técnicas, la primer aplicando los parámetros
D-H pero con la condición de que le robot se dobla con curvatura constante y di-
videndo las secciones como eslabones individuales no parte de un todo, la segunda
técnica es aplicando la técnica de Jacobiano utilizando técnicas estándar y algoritmo
de optimización. En la figura 2.14 se puede observar el prototipo Air-Octor.
CAPÍTULO 2. MARCO TEÓRICO 31

Figura 2.14: Prototipo Air-Octor.


[71]

Tensor Arm

Los investigadores Anand Kumar Mishra, Alessio Mondini, Emanuela Del Dottore,
Francesca Tramacere y Barbara Mazzolai, [72], trabajaron en un robot de estructura
hibrida, usaron tendones, en rutados a través de elementos espaciadores para efec-
tuar la flexión del elemento principal central en varios "Secciones". Los puntos de
terminación de conjuntos de tendones a lo largo de las secciones, su diseño realizado,
teniendo en cuenta que la locomoción del robot se basa en las fuerzas de fricción
entre el robot y su entorno, se introducen los modelos básicos de fricción. Para el
estudio se usa el robot. Al principio, según las leyes mecánicas, se determinan las
fuerzas propulsoras que afectan al segmento del robot serpiente. Por medio del aná-
lisis matemático se deriva la velocidad promedio del robot. Dado que el número de
segmentos de robot tiene influencia en la velocidad promedio del robot, se obtiene
el número óptimo de secciones. En figura 2.15 se puede observar un prototipo de
robot-tendon desarrollado por la universidad de Tenesse Laboratorio de Robótica
aplicada a mecanismos continuos.
CAPÍTULO 2. MARCO TEÓRICO 32

Figura 2.15: Prototipo Tensor Arm.


[72]

Prototipo Troma de Elefante

En 2001 se construyó un manipulador híper-redundante que imitaba el aspecto de


una trompa de elefante (Ilustración 1.14). [73] Dicho manipulador fue construido por
Hannan y Walker, y estaba actuado mecánicamente mediante tensores. Los motores
se situaron en la base y transmitían el movimiento al extremo mediante cables que
tiraban de los módulos que componían al manipulador. Este principio de funciona-
miento se muestra en la 2.16

Figura 2.16: Trompa de elefante de Hannan y Walker.


[73]

Figura 2.17: Funcionamiento de actuación mecánica mediante tensores. (a) Estado de


reposo. (b) Se tensa el cable de la izquierda y el manipulador se dobla.
[73]
CAPÍTULO 2. MARCO TEÓRICO 33

2.6.2. Actuación en robots Híper-Redundantes

En esta sub-secion se indica las posibles formas de los sistemas de control y movimiento
para un robot continuo.

Actuación Mecánica: Se lleva a cabo mediante motores electricos que transmiten


el movimiento a las articulaciones [74]. En aplicaciones de robótica los más usados
son motores de corriente continua con sistemas de transmisión como puede ser un
sistema de engranajes o mediante tensores, aunque también se construyen robots de
accionamiento directo, en los que el movimiento se transmite directamente desde el
eje del motor a la articulación (sin sistema de transmisión del movimiento, y con
otro tipo de motores). Este tipo de actuación es la más comúnmente utilizada, y con
ella se han construido robots híper-redundantes como por ejemplo 2.18

Figura 2.18: Funcionamiento de actuación mecánica mediante Motores (a) Robot tipo
discreto. (b) Robot tipo continuo.
[74]

Actuadores Hidráulicos: La fuerza generada por este tipo de actuadores proviene


de un fluido hidráulico controlado por bombas o servo válvulas. Este tipo de actua-
dores proporciona movimientos Lentos y fuerzas elevadas [75]. Para aplicaciones en
las que no se requieran este tipo de características se tiende a reemplazar los sis-
temas hidráulicos por sistemas eléctricos, que además son más fáciles de controlar.
Usando este tipo de actuación se construyó el Sarcos Dextrous Arm, En la figura
2.19, se puede observar el prototipo Sarcos Dextrous, el cual disponía de 7 GdL [11]
CAPÍTULO 2. MARCO TEÓRICO 34

(considerado redundante (no híper-redundante), pero se puede extrapolar que este


tipo de actuación podría ser usada en híper-redundantes).

Figura 2.19: Sarcos Dextrous Arm.


[75]

Actuadores Neumáticos: El principio de funcionamiento que siguen es el mismo


que en el caso de actuadores hidráulicos, pero sustituyendo el líquido por un gas,
del que se aprovecha su menor viscosidad y mayor compresibilidad que del líquido,
pero con el inconveniente de que este último no tiene tanto poder lubricante como
el líquido. En este caso, el gas (generalmente aire) comprimido genera movimiento
empujando un pistón. Con este tipo de actuación se han construido más robots que
con la actuación hidráulica, aprovechando las ventajas anteriormente mencionadas
[76]. Ejemplos de ello es la Orm de Stanford [11] 2.20, con 16 GdL.

Figura 2.20: Orm de Stanford.


[76]
CAPÍTULO 2. MARCO TEÓRICO 35

Actuadores de tipo SMAs: Consisten en una aleación que tras una deformación
mecánica, es capaz de volver a su estado inicial mediante la aplicación de calor. Este
tipo de actuadores se han probado con formas de muelle, con la desventaja de que ni
la fuerza ni el momento resultante son constantes, por lo que no es de gran utilidad. Se
está investigando la posibilidad de obtener fuerzas y momentos constantes mediante
el uso de estas aleaciones con otra forma distinta de la de muelle. La aleación más
usada es NiTi por sus buenas propiedades y su precio. Con este tipo de actuación
se han construido menos manipuladores, aunque se puede destacar el desarrollo de
endoscopios con forma de gusano desarrollados, entre otros, por Ikuta. [77]

Actuadores de tipo poliméricos: este tipo de actuador transforma energía quí-


mica en mecánica (por ejemplo, ciertos geles sufren cambios antes variaciones en su
entorno). Este tipo de actuador es lo más parecido a un músculo que se ha logrado
obtener, con el inconveniente de que son actuadores lentos y con problemas de fatiga
(estos problemas se pueden disminuir haciendo el actuador más pequeño). [78]

Actuadores de tipo piezoeléctricos: existen ciertos materiales que frente a una


deformación mecánica generan una pequeña carga. Los actuadores piezoeléctricos
utilizan esta propiedad como base de su funcionamiento. Con los dos últimos tipos
de actuación (usando polímeros o con materiales piezoeléctricos) no se ha construi-
do ningún robot híper-redundante destacable. Sin embargo, se incluyen entre los
actuadores por su posible aplicación en los robots objeto de estudio. [79]

2.6.3. Antecedentes relacionados con algoritmos de locomoción y


planeación de trayectorias para los robot continuo

Los investigadores Limei Zhao, Qing Xiao, Zhengcai Cao, Ran Huang and Yili Fu,
propusieron un nuevo método de control del aprendizaje para robots similares a
serpientes para lograr el seguimiento de la trayectoria [80]. Lo cual consistía en el
aprendizaje determinista, un control adaptativo de redes neuronales se usa para ras-
trear la trayectoria deseada y aproximar la dinámica desconocida del sistema del
robot parecido a una serpiente. Después de esto el conocimiento aprendido de las
CAPÍTULO 2. MARCO TEÓRICO 36

redes neuronales directas se almacena como pesos de red constantes. Estos pesos
mejoran la respuesta de velocidad y la precisión del sistema en repetir lo mismo o
similar tareas de control al usar el enfoque Lyapunov, el seguimiento demostró que
el error está uniformemente acotado y converge a un conjunto residual. Finalmente,
los resultados de la simulación se presentan a ilustrar la efectividad del esquema
de control propuesto. Del trabajo podemos concluir que un aprendizaje determinis-
ta usando algoritmos adaptativos de control ha sido propuesto para tratar con un
sistema de dinámica desconocida para robots similares a serpientes. El esquema de
control tiene como objetivo compensar las incertidumbres de la dinámica del robot.
Usando lo aprendido conocimiento mejorar la inteligencia y la eficiencia de la sis-
tema sin volver a adaptarse a la dinámica conocida de la robot. El conocimiento
aprendido se puede reutilizar repitiendo lo mismo, El algoritmo demuestra que tiene
la capacidad de seguir la trayectoria deseada sin embargo no hace énfasis en el costo
computacional y la velocidad de respuesta sobre el aprendizaje de la red neuronal

El investigador Jose Alberto Fernández León realizo un trabajo para obtener el título
de maestría sobre estudio de neurocontroladores evolutivos para la navegación de
robots autónomos [81] , donde la forma de aprender de las redes neuronales no son
supervisadas, entre los algoritmos que se destacaron son un controlador Feed-Forward
Neuronal Network (FFNN), es una arquitectura basada en multi-layer perceptron
(MLP), donde es no recurrente y corresponde a una red simple, la cual produce
una señal de salida a una respuesta directa al rango de la lectura de los sensores, en
términos de evolución los pesos de la red neuronal son evolucionados y adaptados
de acuerdo a la navegación del robot, esto se refiere a que los pesos sinápticos no se
modifican el la vida del controlador, los pesos de las conexiones sinápticas quedan
fijos después que se creó la red.

Un segundo controlador es Recurrent Feed-Forward Neuronal Network (RFFNN),


esta arquitectura describe una red del tipo multi-layer perceptron con una capa ocul-
ta con conexiones entre neuronas recurrentes del tipo FFNN, esta red presenta la
posibilidad de un procesamiento temporal en otras palabra las red tiene memoria a
CAPÍTULO 2. MARCO TEÓRICO 37

una acción previa, De acuerdo, los controladores que hacen uso de acciones tempora-
les poseen el potencial de desarrollar un control completamente reactivo considerando
simples sensores del robot, esta arquitectura recurrente muestra una dinámica de-
pendiente del tiempo más compleja que aquellas asociadas a la redes del tipo FFNN.

La FFNN y RFFNN presentaron un comportamiento aceptable en pruebas de evasión


de obstáculo del robot no solo cuando se requería en una acción reactiva sino también
de acuerdo al entrenamiento de la experiencia, los tiempos de evaluación de cada
neurocontrolador obteniendo como mejor desempeño computacional el controlador
FFNN, pero a nivel desempeño el control RFFNN tiene mejor seguimiento y evasión
de obstáculos.

Los investigadores Xiaodong Wu y Shugen Ma propusieron un algoritmo CPG-based


para el control de locomoción de un robot tipo serpiente. Este método se basa en el
generador de patrones central. (CPG), que es un generador de movimiento rítmico
que existe en la mayoría de los animales, son redes neuronales que sin entradas
sensoriales periféricas o centrales producen salidas con patrones rítmicos, en este
trabajo se presenta una nueva red con conexión de retroalimentación, que puede
generar resultados uniformes sin ningún ajuste [82].

Se pueden extraer varias conclusiones importantes de este trabajo, la primera se


debe a que la red de CPG con una conexión de realimentación no necesita tomar
ajustes adicionales de la salida de CPG debido a sus salidas uniformes con la misma
amplitud y diferencia de fase específica, una segunda apreciación es la investigación
sobre las influencias de los parámetros de CPG en la salida rítmica y también se
obtuvieron las curvas de relación. Al implementar los osciladores neurales de CPG en
la plataforma de simulación, se ha analizado el control de locomoción basado en CPG
de un robot con forma de serpiente. Se muestra que la curvatura de la locomoción
del robot y la velocidad de movimiento se pueden cambiar ajustando los parámetros
CPG: la entrada de conducción y la constante de tiempo. Además, también se puede
lograr un número deseado de forma de curvatura de movimiento mediante el uso
de una conexión de realimentación diferente en la red CPG. También se realizaron
CAPÍTULO 2. MARCO TEÓRICO 38

experimentos para verificar el método de control basado en CPG propuesto.

Los investigadores Khuram Shahzad, Sohail Iqbal y Peter Bloodsworth, de la uni-


versidad de Pakistán implementaron un algoritmo (PoPP) Planificación de ruta
basada en puntos de control para los Robots continuos que calcula la ruta imponien-
do restricciones de seguridad y mejora las limitaciones de enfoques existentes. En el
algoritmo, se aprovecha la propiedad de curvatura constante de los robots continuos
en su proceso de planificación de ruta. El algoritmo es computacionalmente eficiente
y proporciona una buena compensación entre precisión y eficiencia que se pueden im-
plementar para permitir el trazado de curva de los robots continuos, este algoritmo
también proporciona información sobre la ruta y flexibilidad de movimiento. [83]

Los investigadores Amirhossein Haji, Mehdi Keshmiri, Keivan Torabi, de la uni-


versidad de Kashan implementaron un algoritmo para un robot de multisegmentos
continuo, concentradote en el problema de la redundancia de los grados de libertad,
para esto implementaron la cinemática con el jacobiano del robot y a través de la
pseudo inversa encontrar los ángulos de cada segmento aprovechando la teoría de
curvatura constante. [84]
Capítulo 3

MARCO CONCEPTUAL

Este capítulo muestra los conceptos matemáticos para el dessarrollo del proyecto de
investigación

3.1. Teoría Screw


Un método para representar rotaciones y traslaciones de cuerpos rígidos es por medio
de la teoría de screw, el método de screw es el cálculo algebraico de pares de vectores, como
fuerzas y momentos o velocidad angular y lineal, que surgen en la cinemática y dinámica
de cuerpos rígidos. La teoría screw se ha convertido en una herramienta importante en la
mecánica de robots, diseño mecánico, geometría computacional y dinámica multicuerpo
[85].
El teorema de chasles dice que todo cuerpo rígido en el espacio S0(3) se puede representar
como una rotación alrededor de un eje y una translación al eje desde un marco referencial
inercial [84]. Si p es un punto arbitrario de un cuerpo rígido, O es un marco referencia
inercial, y p es rotado a través de una matriz RIO , la nueva coordenada pI respecto al
punto p(0) se puede representar por la ecuacion 3.1

pI = RIO p(0) (3.1)

39
CAPÍTULO 3. MARCO CONCEPTUAL 40

Ahora si so(3) mediante álgebra de Lie de SO(3) con una matriz antisimétrica de
caracteristicas isomorficas en R3 . Un identificación isoformica entre álgebra de Lie R3 y
so(3) esta dado por

  
w1 0 −w3 w2
   
w := w2 7→ ŵ :=  w3 −w1
   
0
   
w3 −w2 w1 0

h iT h iT
Para cada par w = w1 w2 w3 y v = v1 v2 v3 , donde w × v = ŵv, en todos los
casos w  so(3), indicando la dirección de rotación y la medida del ángulo. La magnitud
|w| indica la variación de la posición angular. La formula de Rodigues genera la relación
descrita en la ecuacion 3.2

eŵθ = I + sin(θ)ŵ + (1 − cos(θ))ŵ2 (3.2)

dado la rotación sobre el eje descrito por ŵ con un ángulo θ, dado un punto p = P (0)
en un cuerpo rigido O y un parametrización para determinar la rotación en t radianes,
esto genera la siguiente ecuacion diferencial

ṗ(t) = ŵp(t) (3.3)

Donde la solución de la ecuacion 3.3 esta dada por p(t) = eŵt p(0), se representa w ×
p(t) = ŵp(t)

3.1.1. Twist
h i
Un twist es la representación de un vector 6×1 de la forma v t wt , donde v representa
la velocidad lineal y w la velocidad angular de un cuerpo rigido, w  R3 que describe la
dirección del eje de rotación con |w| = 1 y q  R3 es cualquier punto en el eje de rotación,
asumiendo que el cuerpo solo puedo rotar con una velocida unitaria, la velocidad del punto
CAPÍTULO 3. MARCO CONCEPTUAL 41

p(t) esta definida por

ṗ(t) = w × (p(t) − q) (3.4)

La ecuación 3.4 representa cada elemento ξ  R3 en coordenadas homogeneas definidas


en una matriz 4 × 4
 
ŵ v
ξˆ :=  
0 0

Donde v = −w×q. La forma exponencial se(3) → SE(3) puede trabajar de forma matricial
dado eξ̂θ  SE(3) esto produce rotación seguida de una translación mediante la magnitud
θ en radianes (translación en paralelo al eje de rotación scalado por w).
Desde una vista geometrica un Screw se representa por tres variables (l, h, θ) donde l es
denota el eje, h la inclinación del eje o pith y θ la magnitud del ángulo sobre l. Si h = ∞, el
movimiento es de translación pura a lo largor del eje rotación. Otros factores importantes
sobre Screws son:

El movimiento de cuerpo rígido asociado con screw son biyectiva correspondientes


con los movimientos generalizados por los twist.

La forma exponencial so(3) → SO(3) es biyectiva.

Se puede cambiar la coordenada a través de un Twist mediante la representación adjun-


ta denotada por Ad. En general G es un grupo de lie Cg : G → G, esto dado por el
automorfismo g  G. La representación adjunta esta definida como:

Ad : G → GL(g)

g → dCg
CAPÍTULO 3. MARCO CONCEPTUAL 42

En un caso particular se realiza la identificación para cada g  SE(3) con un twist ξ,


obteniendo Adg = gξg −1 , el factor de cambio de coordenada twist ξ

3.1.2. Producto de Exponeciales (POE)

Un manipulador serial se puede considerar como una cadena cinemática de eslabones y


articulaciones [20], las articulaciones puede ser de tipo prismático o rotacional que permiten
al robot moverser de forma definida en el espacio. El teorema de screw es una herramienta
matemática que permite obtener la relación desde el primer eslabon hasta el efector final
mediante la multiplicación de exponenciales que contiene información de las articulaciones
por medio de twist para cada eslabón [85], en otras palabras dado un marco de referencia
inercial y un secuencia de n + 1 articulaciones, por lo tanto para la i-enésima articulacion
(1 ≤ i ≤ n) esta dada por:

gi,n (θn ) = gi,1 (θ1 ) · g1,2 (θ2 ) · g1,3 (θ3 ).... · gn,n+1 (θn+1 )

Donde θ1 , θ2 , θ3 ..., θn son la secuencia de articulaciones de rotación. Se puede construir


recursivamente para sistemas prismáticos y rotacionales a través de twist de la siguiente
forma:

gi,n+1 (θn ) = eξ̂I,1 θ1 · eξ̂1,2 θ2 · eξ̂1,3 θ3 .... · eξ̂n,n θn+1 · gn,n+1 (0) (3.5)

Eligiendo una marco de referencia adecuado, el primer eslabón gn,n+1 (0) = Id, donde
Id es la matriz indentidad. Usando la representación adjunta se considera que ξˆi son los
twist correspondientes a i-enésima articulación (1 ≤ i ≤ n)

3.2. Redes Neuronales Artificiales


“Las redes neuronales son redes interconectadas masivamente en paralelo de elementos
simples (usualmente adaptativas) y con organización jerárquica, las cuales intentan inter-
actuar con los objetos del mundo real del mismo modo que lo hace el sistema nervioso
CAPÍTULO 3. MARCO CONCEPTUAL 43

biológico.” [86].
Una Red Neuronal Artificial esta basada en el principo de la neurona biologica, Ramón
y Cajal en 1888 [87], defendió la teoría de que las neuronas se interconectaban entre sí
de forma paralela, y no formando un circuito cerrado como el sistema sanguíneo, esta co-
municación se realiza por la exitación de señales electroquímicas por medio las dendritas,
proceso el cual se conoce como sinapsis. En Figura 3.1 se puede observar la arquitectura
de una Neurona Biológica

Figura 3.1: Arquitectura de una Neurona Biológica


[88]

De alguna forma, una neurona es un procesador de información muy simple:

Canal de entrada: dendritas.

Procesador: soma.

Canal de salida: axón.

Una neurona cerebral puede recibir unas 10.000 entradas y enviar a su vez su salida a
varios cientos de neuronas [88].
Una red neuronal artificial (RNA) se define como una funcion 3-upla

N = (D, {fi } , A)

donde D es un digrafo contable, localmente finito, con arcos etiquetados, cuyos vertices
corresponden a las neuronas, los arcos a las conexiones sinápticas y las etiquetas de los arcos
CAPÍTULO 3. MARCO CONCEPTUAL 44

llamadas pesos, corresponden a las intensidades de las conexiones sinápticasen los sistemas
neuronales biológicos. A es un conjunto llamado activación que contiene los elementos de
“entrada” de las unidades. Posee una estructura de módulo sobre el anillo de pesos, W.
{f i : A → Ai  V } es una colección de funciones llamadas deactivación o salida.
Para un estado de activación de la neurona j-ésima de la capa l se puede escribir de la
siguiente manera representada en la ecuacion 3.6

X
alj = f ( Wjil al−1
i + blj ) (3.6)
i

En su forma martricial vectorial

~ a(l−1) + b~l )
~a = f (w~ (3.7)

3.2.1. Tipos de Rede Neuronales Artificiales

Según la arquitectura y conexion de las neuronas en la red se puede clasificar en:

Deep Feedforward Networks (DFN).


Son llamadas perceptrones multicapa, tienen como objetivo aproximar una determi-
nada función. Se caracterísan por que las conexiones son siempre hacia delante. Las
redes neuronales convolucionales son ejemplo de este tipo, se utiliza para la clasi-
ficación de imagenes. En Figura 3.2 se puede observar la arquitectura de una red
propagacion hacia adelante [89].

Recurrent Neural Networks (RNN). Este tipo de redes permiten conexiones hacia
atrás donde las conexiones entre nodos forman un gráfico dirigido a lo largo de una
secuencia temporal, esto le permite exhibir un comportamiento dinámico temporal a
diferencia de las redes neuronales de avance, los RNN pueden usar su estado interno
(memoria) para procesar secuencias de entradas. Esto los hace aplicables a tareas
CAPÍTULO 3. MARCO CONCEPTUAL 45

como el reconocimiento de escritura a mano y el reconocimiento de voz. En Figura


3.3 se puede observar la arquitectura de una red recurrentem [89].

Figura 3.2: Red Multicapa Unidireccional


[89]

Figura 3.3: Red Recurrente Monocapa


[89]

3.2.2. Entrenamiento de Redes Neuronales Artificiales

En el contexto de las redes neuronales el aprendizaje puede ser visto como el proceso
de ajuste de los parámetros libres de la red [90]. Partiendo de un conjunto de pesos si-
nápticos aleatorio, el proceso de aprendizaje busca un conjunto de pesos que permitan a
CAPÍTULO 3. MARCO CONCEPTUAL 46

la red desarrollar correctamente una determinada tarea. El proceso de aprendizaje es un


proceso iterativo, en el cual se va refinando la solución hasta alcanzar un nivel de operación
suficientemente bueno. La mayoría de los métodos de entrenamiento utilizados en las re-
des neuronales con conexión hacia delante consisten en proponer una función de error que
mida el rendimiento actual de la red en función de los pesos sinápticos [91]. El objetivo del
método de entrenamiento es encontrar el conjunto de pesos sinápticos que minimizan (o
maximizan) la función. El método de optimización proporciona una regla de actualización
de los pesos que en función de los patrones de entrada modifica iterativamente los pesos
hasta alcanzar el punto óptimo de la red neuronal.

3.2.3. Métodos de Gradiente Descendente

El método de entrenamiento más utilizado es el método del gradiente descendente.


Este método define una función E(W) que proporciona el error que comete la red en
función del conjunto de pesos sinápticos W . El objetivo del aprendizaje será encontrar la
configuración de pesos que corresponda al mínimo global de la función de error, aunque
en muchos casos es suficiente encontrar un mínimo local lo suficientemente bueno [92].
El principio general del método es el siguiente: dado un conjunto de pesos W (0) para el
instante de tiempo t = 0, se calcula la dirección de máxima variación del error. La dirección
de máximo crecimiento de la función E(W) en W (0) viene dado por el gradiente ∆E(W ).
Luego, se actualizan los pesos siguiendo el sentido contrario al indicado por el gradiente
∆E(W ), dirección que indica el sentido de máximo decrecimiento [93]. De este modo se
va produciendo un descenso por la superficie de error hasta alcanzar un mínimo local.

W (t + 1) = W (t) − α∆E(W ) (3.8)

donde α indica el tamaño del paso tomado en cada iteración, pudiendo ser diferente
para cada peso e idealmente debería ser infinitesimal [94]. El tamaño del paso es un factor
importante a la hora de diseñar un método de estas características. Si se toma un paso
muy chico el proceso de entrenamiento resulta muy lento, mientras que si el tamaño del
CAPÍTULO 3. MARCO CONCEPTUAL 47

paso es muy grande se producen oscilaciones en torno al punto mínimo. En la figura 3.4 se
puede observar una función multimodal con los diferentes óptimos donde puede converger
el algoritmo gradiente descendente.

Figura 3.4: Función en 3D Multimodal


[94]

3.2.4. Algoritmo Backpropagation

El algoritmo backpropagation es el método de entrenamiento más utilizado en redes


con conexión hacia delante [94]. Es un método de aprendizaje supervisado de gradiente
descendente, en el que se distinguen claramente dos fases:

Aplicar un patrón de entrada, el cual se propaga por las distintas capas que componen
la red hasta producir la salida de la misma. Esta salida se compara con la salida
deseada y se calcula el error cometido por cada neurona de salida. Estos errores se
transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de
las capas intermedias.

Las neurona recibe un error que es proporcional a su contribución sobre el error total
de la red. Basándose en el error recibido, se ajustan los errores de los pesos sinápticos
de cada neurona. El error de propagación de cada neurona esta dado por la ecuacion
3.9
CAPÍTULO 3. MARCO CONCEPTUAL 48

M
1X
ep = (dpk − ypk )2 (3.9)
2 K=1

donde k es el índice de neurona para las neuronas de la última capa, y M el total de


neuronas de la misma. El error total de la red esta dado por la ecuacion 3.10

PP
P =1 ep
e= (3.10)
P

La variación de los pesos de una conexión que va desde una capa hacia otra capa de la
red que no sea la externa se calcula como:

X
∆Wji = α (δpk Wkj )fj 0 (hj )ypi (3.11)
K

En la implementación del algoritmo, se toma una amplitud de paso que viene dado por
la tasa de aprendizaje (α). A mayor tasa de aprendizaje elvproceso será más rápido. Sin
embargo, si la tasa de aprendizaje es muy alta puede dar lugar a oscilaciones en torno a un
mínimo local. Es posible disminuir el impacto de dichas oscilaciones mediante la adición
de un momento (β), quedando la expresión

∆Wji (t + 1) = αδpj ypj + β∆wij (t) (3.12)

De esta manera el momento β determina el efecto en el instante t+1 del cambio de los
pesos realizado en el instante t. Con este momento se consigue la convergencia de la red
en menor numero de iteraciones, ya que si la modificación de los pesos en los instantes t
y t + 1 es en la misma dirección, entonces el descenso por la superficie de error en t + 1
es mayor. En cambio, si la modificación en los pesos en los instantes t y t + 1 se produce
CAPÍTULO 3. MARCO CONCEPTUAL 49

en direcciones opuestas, el paso que se da en t + 1 es más pequeño, lo que es adecuado, ya


que esto significa que se a pasado por un mínimo.

3.3. Detección de Colisiones y planificación de caminos


en robot Manipuladores
Actualmente se han desarrollado varios métodos para planeación de trayectorias me-
diante la detección de colisiones, tratando de prever la posibilidad de una colisión basándose
en la información sobre la posición del robot y su carga, a si como la de los objetos en su
entorno. Principalmente se clasifican los métodos en dinámicos o estáticos, estos son según
la información que se tenga del espacio donde se va a mover el robot, en el caso dinámico,
los obstáculos se consideran móviles y no se tiene conocimiento total del área de trabajo
[95]. En el caso estático, se conoce a totalidad el espacio de trabajo y los obstáculos es-
tán fijos siempre en el mismo lugar. La evitación de colisiones es típicamente una función
que se implanta en tiempo real durante la ejecución del movimiento. Una vez que se ha
detectado una posible colisión, se trata de generar acciones que permitanb evitarla. En el
caso más simple, consiste en disminuir la velocidad y realizar una parada, o generar un
movimiento seguro. En el caso más complejo, se involucra una planificación local de mo-
vimientos: se trata de prever los efectos de realizar un determinado movimiento y realizar
una planificación de camino más apropiado disponiendo de un modelo obtenido a partir
de la información previa del robot y su entorno, adquirida mediante el sistema sensorial
y/o por el conocimiento previo del entorno, supuesto éste invariante [96].
De los métodos específicos para planear trayectorias encontramos en primer lugar los mé-
todos basados en grafos, de los cuales se desprenden métodos como Diagramas de Voronoi,
grafos de visibilidad, descomposición de celdas, entre otros.

3.3.1. Algortimo de Diagramas de Voronoi

Los diagramas de Voronoi son usados para poder dividir un plano en tantas regiones
como objetos tengamos, esto aplicado a la planeación de trayectorias nos permite crear
CAPÍTULO 3. MARCO CONCEPTUAL 50

rectas o caminos seguros y distantes de por ejemplo los obstáculos que serían los objetos
en el diagrama. Sin embargo, este algoritmo no es completo y requiere complementarse
de otros algoritmos e planificación como lo son A∗ y D∗ , entre otros, los cuales permiten
calcular el camino más rápido para unir el punto inicial con el punto final. En la figura
3.5 se puede observar un diagrama de Voroni que encierra ocho puntos [97]

Figura 3.5: Diagrama de Voroni de ocho puntos


[97]

3.3.2. Algoritmo de A∗ o AStar

El algoritmo de búsqueda A∗ se encuentra dentro de los algoritmos de búsqueda en


grafos y fue desarrollado en los años 60. Es un algoritmo actualmente sencillo diseñado
para encontrar la ruta más fácil de un punto A hacia un punto B, evitando algoritmos
heurísticos que hasta ese momento era lo más implementado [98].
El algoritmo usa una función de evaluación que permite desarrollar su búsqueda y está
determinada por:

f (n) = g(n) + h0 (n) (3.13)

Donde h0 (n) representa la distancia estimada o heurística de la posición inicial al punto


final y g(n) es la distancia real del camino recorrido del punto inicial al punto final. Esto
se ha convertido en un gran aporte ya que permite intuir que un algoritmo eficiente es
aquel que combina algoritmos heurísticos con deterministas [99]. De esta manera se puede
CAPÍTULO 3. MARCO CONCEPTUAL 51

implementar el algoritmo solo si se cumplen ciertos requerimientos como lo son el tener un


punto inicial y final, tener un método de identificación de nodos traspasables y sólidos, el
método de calcular el valor de desplazamiento entre un nodo a otro g y el valor estimado
h, una lista de nodos abiertos que son aquellos lugares donde se puede mover el robot sin
haber sido evaluados aún y una lista de nodos cerrados donde se coloquen todos aquellos
nodos que ya han sido evaluados y descartados.
Entonces dando un ejemplo sencillo de movimientos entre nodos se encuentra la siguiente
imagen donde existen cuatro nodos: las líneas azules representan ir del nodo inicial (azul
claro) al nodo final (verde) sin hacer algún movimiento diagonal. Si el valor de desplazarse
de un nodo a otro es de 5, el valor de la trayectoria azul sería de 10 y el valor de la
trayectoria verde sería de 7 por Pitágoras, la trayectoria roja sería imposible ya que se
encuentra con un nodo sólido es decir no traspasable.
Entonces dando un ejemplo sencillo de movimientos entre nodos se encuentra la figura 3.6
donde existen cuatro nodos: las líneas azules representan ir del nodo inicial (azul claro) al
nodo final (verde) sin hacer algún movimiento diagonal. Si el valor de desplazarse de un
nodo a otro es de 5, el valor de la trayectoria azul sería de 10 y el valor de la trayectoria
verde sería de 7 por Pitágoras, la trayectoria roja sería imposible ya que se encuentra con
un nodo sólido es decir no traspasable.

Figura 3.6: Diagrama de A∗ o A star

3.3.3. Algoritmo de Campos Potenciales

Este método está desarrollado como su nombre lo indica en función de potenciales para
generar rutas y evasión de obstáculos, es decir por ejemplo asignando valores magnéticos
a los obstáculos de carga igual para que se repela y a la meta un valor de carga contraria
CAPÍTULO 3. MARCO CONCEPTUAL 52

para que se sienta atraído [100].


Este método genera un espacio de trabajo sumando los potenciales atractivos y repulsivos
en él y generar una trayectoria con estos potenciales, por medio del cálculo de los gradientes.
En un ejemplo más específico el campo de trabajo de la plataforma se puede discretizar
entre celdas, estas celdas o posiciones pueden ser de fuerzas atractivas o fuerzas repulsivas,
así cada celda tendrá un valor en nuestro campo de fuerzas, este valor de potencial se
dará según la suma de fuerzas atractivas o repulsivas a las que esté sometida. Si la celda es
atractiva, se calcula la distancia entre los puntos del mapa y el punto objetivo multiplicando
esta distancia vectorial por una constante K que tendrá siempre un valor menor a 1 de
manera que:

p
Pi = (T arget − i)2 + (T arget − k)2 ∗ k (3.14)

Si la celda es repulsiva, quiere decir que ha sido un obstáculo quien la ha generado, y


el valor de mi celda aumentara a medida que nos acerquemos al obstáculo, esto es dado
por un parámetro denominado Rsoi (Ratio Sensor of influence) que es el radio de
influencia de nuestro sensor. Una vez detectado el obstáculo no solo marcamos la celda
como repulsiva sino que también a sus celdas adyacentes influenciando su alrededor. Esta
fuerza repulsiva producida por el obstáculo en celdas contiguas está dada por la ecuación:

Rsoi − Dist
Obs = (3.15)
Dist

Se denominaron campos potenciales locales, debido a su característica de adición de


campos asociados a los obstáculos. En contraste con esta orientación, existen los campos
potenciales globales donde se considera la totalidad de los obstáculos, como también el
objetivo para construir el campo potencial como un todo y no como la adición de partes;
con esta orientación, se busca eliminar el problema de los mínimos locales. Bajo este
nuevo enfoque aparecen las funciones de navegación (Navigation Function), propuestas
por Rimon y Koditschek [101], que son explícitamente diseñadas para presentar un único
CAPÍTULO 3. MARCO CONCEPTUAL 53

mínimo local en el objetivo, y si existe otro tipo de puntos de equilibrio, se enmascara


(rellena). Para construir las funciones de navegación, es necesario conocer completamente
el espacio de trabajo, con la desventaja de perder la simplicidad que presentan los otros
métodos antes expuestos [102]. En la figura 3.7 se puede ver un diagrama de campos
potenciales locales.

Figura 3.7: Diagrama de Campos Potenciales Locales


Capítulo 4

DISEÑO DE UN PROTOTIPO DE UN
ROBOT CONTINUO

Este capítulo muestra el desarrollo del diseño de un prototipo de un robot continuo que
es un objetivo de este proyecto de investigación. En el diseño del robot continuo se tuvie-
ron en cuenta aspectos como materiales, tipos de sensores, corrección de accionamientos,
inspección visual de las características de elementos críticos (color, tamaño y morfología),
interacción de elementos estructurales simples. Se conceptualizan inicialmente todas las
variables que se toman en cuenta y de esta base se podrán identificar en el robot mani-
pulador continuo, determinarlas y aplicarlas según el caso. Inicialmente se hará un diseño
conceptual, donde se parte del significado del robot continuo tipo discreto y blando úni-
camente para el diseño (ver sección 2.1.3). En esta primera fase se realizan bocetos que
ayuden a identificar parámetros que deban ser tomados en cuenta, como tipo de elementos
a usar y su localización. (Figura 4.1)

4.1. Diseño conceptual del Robot Continuo


En este trabajo de investigación se implementó una arquitectura mecánica general
de un robot continuo basado en las investigaciones antes mencionadas (ver sección 2.1.2
y sección 2.6.1). El robot consta de dos partes; una fija donde se encuentra el sistema
de control (Tarjetas de procesamiento y sensores), actuadores (MOTORES) y otra parte

54
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 55

móvil que determinara el espacio de trabajo del robot, en base a esto se diseñaron tanto los
eslabones como las articulaciones, los cuales tienen como primer boceto un robot continuo
tipo discreto. En la Figura 4.1 se puede observar el esquema general propuesto donde
selecciona articulaciones tipo universal de rodamiento de bola para obtener los dos grados
de libertad que robot necesita para su desplazamiento.

Figura 4.1: Diseño conceptual del Robot Continuo (Autor : Propia)

Se seleccionan como requerimientos para desarrollar el primer objetivo específico del


proyecto (ver sección 1.3.2) aspectos físicos del robot como:

Peso del Robot.

Inercia de cada eslabón.

Coeficiente de Fricción de cada eslabón.

Esfuerzo Tensión y Compresión en cada eslabón.


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 56

Fuerza del actuador en cada eslabón.

Selección del actuador.

4.1.1. Diseño preliminar

En un principio se comenzó diseñando un robot de tipo discreto y duro, llegando a


obtener un diseño como el de la figura 4.2. Este robot está compuesto por módulos
consistentes en cavidades rígidas unidos entre ellos por una junta universal de tipo bola
de dos GdL, que aportan la estabilidad suficiente para sostener al robot en la posición
deseada, la actuación se realizaba mediante motores que iban de la base de cada cavidad
del robot. Este diseño presenta desventajas como la dificultad de obtener las piezas, ya
que el mecanizado necesario era muy complicado, además las cavidades del sistema de
transmisión era difícil de encontrar y por tanto el precio también se veía afectado.

Figura 4.2: Diseño de preliminar (Autor : Propia)

Esto permitió tras el análisis de los problemas mencionados, diseñar y construir un


robot híper-redundante de tipo continuo y blando (soft) y cuya forma de actuación estaría
compuesto por módulos rígidos consistentes en discos rígidos unidos entre ellos por un
conjunto de muelles (diez por cada módulo) aportando la rigidez suficiente para sostener
al robot en la posición deseada (ver figura 4.3), la fuerza se realiza mediante tensores que
iban de la base del robot al punto de actuación.
En primer lugar, se ha escogido un robot híper-redundante por su capacidad de sortear
obstáculos, además, la híper-redundancia hace al robot más robusto frente a posibles fallos
en algunas de sus articulaciones, evitando de este modo que la posición requerida no pueda
alcanzarse en caso de fallo, ya que otros GdL compensarán el movimiento que de otro modo
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 57

se habría perdido, al ser además un robot continuo, se consigue que el movimiento del robot
se distribuya uniformemente por toda la estructura en lugar de producirse únicamente en
las articulaciones, consiguiendo de este modo formas más suaves. Se considera que el robot
a construir es continuo por repartir el movimiento en toda su estructura en lugar de sólo en
las articulaciones, a pesar de que presenta zonas en las que el movimiento no es el mismo
que en el resto de la estructura, esto ocurre en las zonas de unión de módulos y en las
zonas donde se sitúan las articulaciones.

Figura 4.3: Diseño del eslabón de robot continuo (Autor : Propia)

4.1.2. Análisis de Elementos Finitos

Para la realizar el análisis de elementos finitos, se realizó sobre una única sección del
brazo robótico, las secciones unidas en una cadena cinemática forman la totalidad del
robot con la locomoción respectiva, se analizaron esfuerzos tensión, compresión y flexión,
en la figura 4.3 se puede observar una única sección del robot donde se ha anclado un lado
del disco ha una parte fija representada por flechas de color verde, mientras el otro lado
del disco se somete a una carga para comprobar los esfuerzos representadas por las flechas
de color morado, para este caso es una prueba de tensión. En la figura 4.4 se indica la
prueba de elementos finitos a tensión con una carga de 2N , el valor de la fuerza se escogió
deduciendo que el robot en el último eslabón debe soportar un sensor de infrarrojo tipo
Lidar con un peso aproximado que puede variar de 200 gramos a 800 gramos dependiendo
de las cualidades del sensor. Las pruebas de tensión y compresión de realizaron pensando
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 58

que el robot podía estar posición vertical con dirección hacia arriba y en posición vertical
apuntando hacia abajo donde el sensor haría la carga En la figura 4.5 se puede observar
una prueba de tensión de un eslabón con una carga 8N , se puede ver como la sección
está sufriendo y está pronto a llegar a la ruptura en extremo libre donde se ha aplicado
la fuerza. El muelle se ve sometido a tensiones superiores a su límite de elasticidad y
un tienen un comportamiento plástico. Si las tensiones ejercidas continúan aumentando
el material alcanza su punto de fractura. El límite elástico marca, por tanto, el paso del
campo elástico a la zona de fluencia. más formalmente, esto comporta que en una situación
de tensión uniaxial, el límite elástico es la tensión admisible a partir de la cual se entra en
la superficie de fluencia. En la figura 4.6 se puede observar una prueba de compresión de
un eslabón con una carga −8N como la sección está sufriendo y está pronto a llegar a la
deformación de los muelles. Los materiales a los cuales se aplicó la prueba de elementos
finitos se encuentran descritos en las tablas 4.1 y 4.2. Estos materiales se seleccionaron
por su facilidad de mecanizado, costos y facilidad de adquisición en el mercado.

Figura 4.4: Prueba de elementos finitos a tensión con una carga de 2N (Autor : Propia)
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 59

Figura 4.5: Prueba de elementos finitos a tensión con una carga de 8N (Autor : Propia)

Figura 4.6: Prueba de elementos finitos a compresión con una carga de −8N (Autor :
Propia)

Para simular el comportamiento de los tendones o cables se diseñaron tres pasadores


rígidos, haciendo contacto en el disco libre donde se aplica la fuerza, en la Figura 19 se
puede observar la simulación de los tendones y el comportamiento de la sección cuando se
somete a un esfuerzo de compresión. En la Figura 4.7 se observa el comportamiento del
eslabón cuando se somete carga de 2N en compresión aplicando la fuerza sobre uno de los
cable.
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 60

Figura 4.7: Prueba de elementos finitos a compresión con una carga de 2N aplicada sobre
un cable (Autor : Propia)

4.1.3. Análisis de resultados en la evaluación de elementos finitos

En los siguientes resultados se mostrarán las gráficas de fuerza, deformación y esfuerzos


para tensión, compresión sobre la toda la sección del robot, esto nos permite analizar el
comportamiento del robot cuando todos los motores generar una tensión sobre los cables
conductores.
Se realizaron las pruebas de estrés para medir la resistencia de un material a una fuer-
za estática o aplicada lentamente. Esta prueba consiste en alargar la sección del robot
por fuerza de tensión, ejercida gradualmente, con el fin de conocer ciertas propiedades
mecánicas de materiales en general: su resistencia, rigidez y ductilidad. Sabiendo que los
resultados del ensayo para un material dado son aplicables a todo tamaño y formas de
muestra. En la figuras siguientes se observan la aplicación de una fuerza que va 0N a 10N ,
la fuerza aplicada intenta estirar y/o comprimir la sección del robot a lo largo de su línea
de acción durante 2 segundos,en Figura 4.8 se puede ver la gráfica de la fuerza aplicada
a compresión, se observa una fuerza lineal creciente hasta −10N , la gráfica se multiplicó
por 10 para observar de una mejor manera el comportamiento que se está simulando al
estirar la sección del robot.
En la Figura 4.9 se observa que la deformación máxima para la elongación de la sección
donde su valor será de 1.57cm, para una carga de 5N antes de llegar a la deformación
permanente esta simulación da información sobre fuerza de tensión. En la figura 4.10 se
puede se observa que la deformación para la elongación de la sección donde su valor será de
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 61

Figura 4.8: Sección única del robot aplicada a una fuerza de flexión sin ruptura (Autor :
Propia)

83.23cm, para una carga de 10N , este valor es imposible ya que la simulación de elementos
finitos mostro el robot solo soporta 8N

Figura 4.9: Elongación maxima de la deformación del robot 5N . (Autor : Propia)

En la Figura 4.11 se observa que el esfuerzo de tensión y compresion máximo para


una carga de 10N , se observa el esfuerzo que la sección debe realizar para contrarrestar la
fuerza aplicada.
En la figura 4.12 se puede observar los resultados de carga dinámica donde la pieza se
contrae y estira en un solo punto de interés, simulando la fuerza que necesitaría un solo
motor para poder curvar el robot, este análisis se puede replicar para los diferentes motores
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 62

Figura 4.10: Sección única de la tensión mecánica del robot 10N . (Autor : Propia)

que controlan el robot.

Figura 4.11: Sección única de la tensión mecánica del robot. (Autor : Propia)
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 63

Figura 4.12: Sección única de la tensión mecánica del robot. (Autor : Propia)

De las graficas anteriores se pueden obtener las siguentes conclusiónes:

La flexión máxima del robot es de 0.75m sin generar la ruptura del material y la
tensión máxima soportada es de 3.2 × 1010 pa.

Para tensión y compresión, el robot soporta 4.25×108 pa, y −5.4×108 pa, respectiva-
mente. Esto para una fuerza aplicada de 8N y tiene un desplazamiento de 1.5×10−25
m en cada segmento.

Se puede observar el desplazamiento máximo en compresión y alargamiento por el


diseño mecánico del robot 1.57 cm, esto genera que el espacio de trabajo del robot no
sea muy amplio en compresión y alargamiento. Para las cargas dinámicas, cuando
estas se generan en un solo motor, es donde la sección sufre más, generando un
esfuerzo muy grande lo que implica que estos cambios no sean rápidos por que puede
llegar afectar el robot, la máxima curvatura para una sola sección se puede estimar
de 0.8 cm.
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 64

4.1.4. Diseño final y Construcción del prototipo

Para el diseño final y basándose en los resultados anteriores se eligió un diseño que
consta de tres secciones, una fija y dos móviles, cada sección móvil está controlada por 3
motores de 12v, cada motor con un encoder incremental para el control de posición del
robot esto con el fin de por medio de un tornillo sin fin se tensiona la cuerda para generar el
desplazamiento del efector final, se usaron sensores de ultrasonido por cada cable conductor
descrita en la cinemática del capítulo 4 . En la figura 4.13 se puede observar el diseño del
robot continuo final.

Figura 4.13: Diseño final del robot continuo en SolidWorks (Autor : Propia)

En la tabla 4.1 se describe los elementos de la parte movil de robot


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 65

Tabla 4.1: Elementos de la parte movil de robot continuo

En la tabla 4.2 se describe los elementos de la parte movil de robot

Tabla 4.2: Elementos de la parte Fija de robot continuo

Aunque no era un objetivo de esta tesis se construyó un prototipo de un robot continuo


basado en el diseño y resultados anteriormente explicados. Para el procesamiento de las
señales se utilizó una Raspberry Pi 3B y por medio de ROS se genero el tratamiento de
las señales hacia los actuadores. En la figuras 4.14, 4.15, 4.16, 4.17 se puede observar el
prototipo del robot continuo construido.
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 66

Figura 4.14: Prototipo Final de un robot continuo. (Autor : Propia)

Figura 4.15: Prototipo Final de un robot continuo. (Autor : Propia)


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 67

Figura 4.16: Prototipo Final de un robot continuo. (Autor : Propia)

Figura 4.17: Prototipo Final de un robot continuo.

4.2. Cinemática del Robot Continuo


Esta sección presenta la cinemática del robot continuo utilizado para el desarrollo del
proyecto de investigación, se da una visión general de las coordenadas utilizadas para des-
cribir la posición y la orientación del robot y el uso de la teoría de screw tratado en la
sección 3.1 para la cinemática directa e inversa del robot.
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 68

4.3. Coordenadas y Marco de Referencia


Para el análisis de la cinemática se asumió el robot continuo de tipo discreto que consiste
en n eslabones cilíndricos de igual tamaño que están conectados por n − 1 articulaciones
esféricas. En la figura 4.18 se puede observar el robot continuo tipo discreto fijado en un
extremo del mundo virtual y su primer eslabón representado de color rojo.

Figura 4.18: Modelo del robot continuo tipo discreto de tres eslabones (Autor : Propia)

Cada articulación posee dos grados de libertad que se mueven de acuerdo a un sistema
de coordenadas cartesianas, en la figura 4.19 se puede observar el marco de referencia y
el sistema de coordenadas usado; la flecha de color azul y su dirección, en este caso hacia
arriba representa el eje Z positivo, la flecha de color rojo representa el eje X positivo y
por último la flecha verde representa el eje Y positivo.

Figura 4.19: Sistema de coordenadas usado en la simulación (Autor : Propia)


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 69

La longitud de cada cilindro que forma un eslabón es Li siendo i el número del eslabón,
esta distancia es igual a el tamaño de la distancia que hay entre centros de cada articulación
cuando estos están de forma tangente, el radio de cada articulación es LSCi y cada eslabón
es modelado como un cilindro de diámetro 2LSCi , las dos esferas de radio LSCi son fijas en
los extremos de cada eslabón. (ver figura 4.20)
Para el modelo cinemático el marco de referencia es fijo al mundo del robot con coorde-
nadas I = (O, eIx , eIy , eIz ) como una aproximación al marco de referencia inercial donde su
centro es O y el eje eIz apunta en dirección opuesta al vector de la aceleración gravitacional
h iT
G = q0 0 −g , que coincide con la dirección negativa en Z, el marco de referencia
solidario al robot es Bi = (Gi , eIx , eIy , eIz ) donde Gi es el centro de graveda de cada eslabón
que coincide con el centro geométrico del cilindro LGSi y eIz en dirección a linea que apunta
del eslabón i a i + 1,
La posición y orientación de cada eslabón se describen mediante:
 
I rGi
qi =  
Pi

donde I rGi =]T[  R7 , posición de el centro de graveda del eslabón i relativo al marco i y el
h iT h i
vector Pi = ei0 eTi donde eTi = ei1 ei2 ei3 que contiene los cuatro parametros de
euler usados para describir rotaciónes. Las coordenadas son no-nominales [101], porque la
posición y la orientación de cada eslabón se describe por seix coordenadas y una absoluta
por que la posición y la orientación son directamente relativas al marco referencia solidario
al mundo O.
La velocidad del eslabón i esta dado por:
 
I VGi
ui =  
Bi WIBi

donde I VGi es la velocidad de translación con respecto al centro de graveda del eslabón
i dado por I VGi = I r˙Gi y Bi WIBi es la velocidad angular del marco Bi relativa al marco
O dado por Bi WIBi = θ̇. La posición, orientación y velocidad del robot son vectores de la
 T  T
forma q = q1T , ... , qnT y u = uT1 , ... , uTn
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 70

La selección de coordenadas y marco de referencia se basaron en [102] donde se desa-


rrollo un robot continuo tipo serpiente parecido al desarrollado en este proyecto de inves-
tigación. En la figura 4.20 se puede observar el robot de tres eslabones en los planos x − y
y x − z respectivamente A y B

Figura 4.20: Modelo del robot continuo de tres eslabones


[102]

4.3.1. Cinemática Directa

Para el desarrollo de la cinemática directa se uitlizo el algoritmo de Screw, que es un


metodo sencillo para resolver tanto cinemática directa como inversa, conociendo el esquema
de cinemática del robot, esto es, los ejes de actuación de los grados de libertad (GDL) en
cada eslabón i, la posición inicial del efector final H y el sistema de referencia inercial O.
Para el dessarrollo del proyecto se considero las siguientes restricciones:

Robot solo se mueve en el plano x − y

Todas las articulaciónes son de tipo de rotaciónal

El eje de rotación es paralelo al eje z


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 71

El espacio de trabajo del robot tiene un aréa de 5m × 5m

En la figura 4.21 se puede observar el modelo de robot continuo de cinco eslabones en


el plano x − y

Figura 4.21: Modelo del robot continuo de cinco eslabones (Autor : Propia)

Los ejes de aplicación de 1 GDL viene dado por:


   
0 0
   
w1 = 0 ; ... wi = 0
   
   
1 1

Entonces, los valores de los twists ξ para cada una de las articulaciones quedan formulados
de una forma sencilla por
       
v1 −w1 ∗ L1 vi −w ∗ Li
ξ1 =   =   ; .....; ξi =   =  i 
w1 w1 wi wi

donde L es el tamaño de eslabón i. El problema cinemático directo se soluciona con la


aplicación de POE que nos da el valor de gsh (θ).
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 72

gsh (θ) = eξ1 θ1 · eξ2 θ2 · eξ3 θ3 ... eξi θi · gsh (0) (4.1)

siendo gsh (0) la configuración de referencia del manipulador para el eslabón i dada por:
 
[Ii×i ] [H]
gsh (0) =  
[0..0i ] 1

donde H es una matriz de la forma [Li 2L2 3L3 .... nLi ]T y I es la matriz identidad

4.3.2. Cinemática Inversa

Para resolver el problema cinemático inverso mediante álgebra de Lie, aplicamos los
problemas canónicos de una forma sistemática, operando sobre la ecuación anterior gsh (θ)
y con dos pasos sencillos.

Obtención de la variable θn :

Para ello, consideramos n como el total de número de eslabones del robot. Pasamos
gsh (0) al otro lado de la ecuación y aplicamos ambos lados de esta ecuación a la
primera articulación, para posteriormente hallar el módulo de la diferencia de esos
términos con el punto Li , con lo que obtendremos la ecuación siguiente:

gsh (θ) · gsh (0)−1 · (L − nLi ) = eξ1 θ1 · eξ2 θ2 · eξ3 θ3 ... eξi θi · (L − nLi )

(4.2)

Hemos operado de este modo para obtener la ecuación anterior en la que las ex-
ponenciales de las variables θ1 , θ1 , ..... θn−1 , no tienen ningún efecto y se pueden
eliminar. Por todo ello, la ecuación tiene el término izquierdo conocido (valor δ) y
un término derecho que solo se ve afectado por el ultimo GDL, por lo que queda
transformada en la ecuación siguiente, que no es sino la formulación del problema
canónico Paden-Kahan. [103]
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 73

pardos−uno
δ = eξn θn · (L − nLi ) → eξn θn (4.3)

Obtención de la variables θn−i :

Para ello pasamos θn−i al lado izquierdo de la ecuación

gsh (θ) · gsh (0)−1 = eξ1 θ1 · eξ2 θ2 · eξ3 θ3 ... eξi θi (4.4)

aplicamos ambos lados de esta ecuación (L − nLi ) , para obtener la ecuación

gsh (θ) · gsh (0)−1 · (L − nLi ) = eξ1 θ1 · eξ2 θ2 · eξ3 θ3 ... eξi θi · (L − nLi ) (4.5)

que tiene el término izquierdo conocido (igual a un punto cualquiera que llamaremos
k’) y un término derecho con el producto de la exponencial de θn por el punto
(L − nLi ), que será también un valor conocido (igual a un punto que llamaremos p0 ),
al haber obtenido θn en el primer paso. De esta forma, la ecuación anterior queda
nueva representación:

padenkahan
k 0 = eξ1 θ1 · eξ2 θ2 · eξ3 θ3 ... eξn−i θn−i · p0 → θ1 , θ2 , θ3 , ...., θn−i , (4.6)

que no es sino la formulación del problema canónico PadenKahan [103], por lo que
por aplicación geométrica de este obtenemos los dos valores posibles para la pareja
de variables θn−i . De esta forma queda resuelto de forma geométrica, determinista,
cerrada y completa el problema cinemático inverso.

Para la comprobación de la cinemática se realizo una simulación en ROS de un robot


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 74

tipo continuo con 56 secciónes, los parametros de entrada son los ángulos θ de cada articu-
lacion que se selecionaro de forma aleatoria entre (−π, π) con el fin de observar diferentes
curvas. En la figura 4.22 se puede observar el manipulador robotico con cuatro curvas:
(a) el robot manipulador tiene todos los ángulos de sus eslabones negativos, (b) el robot
manipulador tiene ángulos negativos en los eslabones de 1 al 40 y negativos del 41 al 56,
(c) el robot manipulador tiene todos los ángulos de sus eslabones positivos y (d) el robot
manipulador tiene ángulos positvos en los eslabones de 1 al 30 y negativos del 31 al 56. En
la figura 4.23 se puede observar los marcos de referencia de cada eslabón y la variación del
ángulo cuando se va generando la curva:(a) el robot manipulador tiene ángulos negativos
en los eslabones de 1 al 51 y positivos del 51 al 56 (b) el robot manipulador tiene ángulos
negativos en los eslabones de 1 al 51 y positivos del 51 al 56 y (c) el robot manipulador
tiene ángulos negativos en los todos los eslabones y se puede apreciar la variacion del
ángulo con respecto a la base.
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 75

(a) ángulos negativo (b) ángulos negativo y positivos

(c) ángulos positivos (d) ángulos positivos y negativos

Figura 4.22: Resultados de la simulación. Curvas de un robot continuo a diferentes angulos


de cada eslabón (Autor : Propia)
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 76

(a) ángulos negativo y positivos

(b) ángulos negativo y positivos

(c) ángulos negativo

Figura 4.23: Resultados de la simulación. Curvas de un robot continuo a diferentes angulos


de cada eslabón con sus respectivos marcos de referencia (Autor : Propia)
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 77

4.4. Creación del mundo virtual


Los mundos virtuales son ambientes multiusuario que simulan un mundo o entorno
artificial inspirado o no en la realidad, dentro de él los usuarios pueden interactuar, estos
mundos virtuales pueden ser implementados con fines educativos debido a que poseen
características tales como, alto impacto inmersión, interactividad, gráficos interactivos,
simulación etc., permitiendo diseñar y desarrollar actividades educativas e investigativas
[104]. En este trabajo de investigación se desarrollo el mundo virtual en el software libre
GAZEBO, el cual se puede conectar de manera fácil con ROS y de esta forma poder
manipular señales de sensores y actuadores en tiempo real.
En el mundo virtual se exporta un robot continuo tipo discreto, por costo computacional
se decidió implementar cilindros de igual tamaño que simulan el diseño de cada eslabón,
para simular los actuadores se generaron esferas que conectan a cada eslabón, estas esferas
simulan el comportamiento de un servo motor, que tiene un controlador PID, el cual se
cálculo manualmente observando el comportamiento del robot cuando se ingresaba un
ángulo de giro, cuando se ingresaban mayor número de eslabones en la simulación el error
del PID se incrementó, este fue otro motivo de los valores seleccionados en el PID, ya que
tenía un comportamiento deseable para un máximo de 15 eslabones. El robot generado
tiene los siguientes parámetros.

Li = 0.2m

LSCi = 0.05m

Inercia
   
Ixx Ixy Ixz 0.00025 0.0 0.0
   
I = Iyx Iyy Iyz  =  0.0 0.0  .
   
0.00025
   
Izx Izy Izz 0.0 0.0 0.00125

Masa en kilogramos de cada eslabón: 2kg

Fuerza de cada Actuador: 20N

PID de cada Actuador: P : 12, I : 12 : D : 20


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 78

KP coeficiente de rozamiento de cada eslabón 100N

KD coeficiente de amortiguamiento cada eslabón 10N

En el proceso de creación del mundo virtual es importante que el centro de masa e


inercia estén bien calculados, de lo contrario el robot no se movería de forma coherente a
la realidad. El momento de inercia de cada eslabón se calcula como:

IE = IC + IS (4.7)

Donde IC es el momento de inercia de un cilindro dado por 41 M R2 + 12


1
M L2 y IS es el
momento de inercia de una esfera dado por 25 M R2 . Para el calcular el momento de inercia
total del robot

IET = IE1 + IE2 + IE3 + ..... + IEin (4.8)

Para comprobar el momento de inercia dentro del simulador, este proporciona un cuadro
de color rosado, si los calculos están correctos debe sobreponerse sobre la figura o cuerpo
rígido del cual se calculo el momento de inercia. En la figura 4.24 se puede observar como
el momento de inercia a través del cuadro rosado coincide en cada eslabón.

Figura 4.24: Momento de inercia en cada Eslabón (Autor : Propia)


CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 79

El centro de gravedad de cada eslabón se ubico en el centro del cilindro y en el centro


de cada esfera de acuerdo la cinemática (ver seccíon 4.3). En figura 4.25 se puede observar
el centro gravedad representado por esferas de color blanco y negro en cada eslabón y en
cada esfera respetivamente. En el mundo virtual generado también se tuvieron en cuenta
parametros como la gravedad y campo magnético de la tierra.

Figura 4.25: Centro de graveda de cada eslabón y la base donde se mueve el robot (Autor
: Propia)

4.4.1. Interfaz de usuario para comandar el robot en el ambiente


virtual

Para una interacción dinámica con la simulación se creó una interfaz gráfica de usuario
en Python, este por ser un software libre, multiplataforma y su fácil implementación con
ROS. La interfaz gráfica de usuario se creó con el fin de poder generar de forma dinámica
el número de eslabones en el ambiente virtual y a sí mismo tener control sobre cada
actuador, la interfaz gráfica de usuario también está diseñada para ingresar los valores
de los sensores de forma manual y generar el dataset de entrenamiento para una red
neuronal tipo perceptron multicapa, (ver sección 5.1) . En la figura 4.26 se observa el
diagrama que relaciona la interactividad de ROS, PYTHON Y GAZEBO para este trabajo
de investigación [105].
En la primera capa o capa primaria de control, se genera los programas que modelan el
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 80

comportamiento de sensores, actuadores y algoritmos de control. En la segunda capa o capa


maestra, se genera el nodo principal de ROS llamada ROSCORE, el cual se encargar de
ejecutar todos los archivos necesarios para que el sistema operativo del hardware intérprete
y trabaje bajo ROS. En la tercera capa se genera todos los archivos URDF que GAZEBO
interpreta para generar el mundo virtual.

Figura 4.26: Arquitectura del sistema de simulación (Autor : Propia)

Para generar robot dentro del ambiente virtual se utilizó el formato URDF que es
un formato universal usado para describir un robot. La descripción de un robot conlleva
indicar cuáles son los eslabones de los que está compuesto, por qué medios se conectan
unos a otros, qué tipo de articulaciones (prismáticas, cilíndricas...) y las limitaciones de
giro de sus articulaciones además de otras muchas caracteríısticas. Dicho formato incluye
la posibilidad de añadir mallas de puntos que describen la tipología y apariencia 3D de
los eslabones que componen el robot, es decir, su apariencia visual o en su defecto usar
elementos geométricos básicos y poder representarlo por cualquier visualizador.
La interfaz gráfica se desarrolló en tres ventanas; En la figura 4.27 se puede observar la
ventana de inicio de la interfaz, esta ventana se abre cada vez que se inicia el programa
por parte del usuario, en esta ventana se debe colocar el número de eslabones del robot
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 81

con una limitación hasta 100 eslabones, esta limitación se colocó por qué al superar esta el
costo computacional se incrementa y la simulación trabaja de un forma muy lenta lo cual
no permite realizar un análisis correcto del movimiento del robot. La ventana de inicio
también tiene un botón de cerrar que obliga a hilo principal del programa a finalizar todos
los proceso tanto de simulación como los que se ejecutan en segundo plano que son los
programas de Ros y Pyhton, TensorFlow y su librería de keras

Figura 4.27: Primera ventana de comando de la interfaz gráfica (Autor : Propia)

En la figura 4.28 se puede observar la segunda ventana que aparece después de presionar
el botón de Numero Eslabones de la ventana de inicio, esta ventana genera cinco espacios
donde se debe colocar manualmente el valor del sensor Lidar en los cinco puntos adquiridos
(ver sección 5.1.1), estos valores serán la información de entrada, esta ventana tiene dos
botones, un botón que permite ingresar más valores y poder aumentar el dataset adquirido
y otro bóton que permite guardar el dataset en formato .xml en un tabla de excel donde
se pueda ver de forma ordenada.
En la figura 4.29 se puede observar la tercera ventana que se crea en paralelo con la segunda
ventana, esta ventana genera automáticamente sliders o barras deslizantes de adquisición
de información de acuerdo al número de eslabones ingresados en la ventana inicial, este
paso también se debe realizar manualmente para llevar al robot a una posición deseada,
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 82

estos valores son tomados como dataset de salida que deberá entregar la red neuronal una
vez entrada. En la parte superior de la tercera ventana hay cuatro botones que actúan
como comandos para posicionar el robot móvil en la posición deseada, cada giro que hace
el robot móvil es de 10 grados con una velocidad de adelanto y retroceso de 2 m/s. En el
anexo 7.4 se puede detallar como se genera el DataSet para entrenar la red neuronal.

Figura 4.28: ventana de adquision de datos del sensor Lidar (Autor : Propia)
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 83

Figura 4.29: ventana de adquision de datos de la posición de los eslabones del robot (Autor
: Propia)

En la figura 4.30 se puede observar la simulación con tres robots de diferente numero
de eslabones: A) 3 eslabones, B) 8 eslabones, C) 20 eslabones y D) 26 eslabones.
En la figura 4.31 se puede observar la simulación de un robot tres eslabones controlando
sus actuadores desde la interfaz gráfica, en la figura 4.32 un robot con ocho eslabones
controlando sus actuadores desde la interfaz gráfica y en la figura 4.33 un robot con quince
eslabones controlando sus actuadores desde la interfaz gráfica.
En la simulación se observo que despues de 10 eslabones, los actuadores que controlan los
primeros eslabones no tiene la suficiente fuerza para llegar a la referencia, esto hace que
el robot no se posicione de forma deseada en el valor enviado desde la interfaz gráfica.
esto es debido al peso que tiene que mover los actuadores de los primeros eslabones.
Para el desarrolló de los siguientes objetivos se hicieron las pruebas con un robot de
ocho eslabones para generar una correcta simulación posicionando de forma deseada los
eslabones, el numero máximo donde el robot llegaba de forma correcta a la referencia es
de diez eslabones y por este motivo los ocho eslabones que se eligieron para las pruebas
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 84

(a) Robot Continuo de 3 eslabones

(b) Robot Continuo de 8 eslabones

(c) Robot Continuo de 20 eslabones

(d) Robot Continuo de 26 seis eslabones

Figura 4.30: Resultados del mundo virtual con un robot continuo tipo discreto con diferente
numero de eslabones (Autor : Propia)
CAPÍTULO 4. DISEÑO DE UN PROTOTIPO DE UN ROBOT CONTINUO 85

estaban en el margen de tolerancia.

Figura 4.31: Simulación de un robot continuo de tres eslabones controlado desde una GUI
(Autor : Propia)

Figura 4.32: Simulación de un robot continuo de ocho eslabones controlado desde una GUI
(Autor : Propia)

Figura 4.33: Simulación de un robot continuo de 15 eslabones controlado desde una GUI
(Autor : Propia)
Capítulo 5

DESCRIPCIÓN Y ANÁLISIS DE LOS


ALGORITMOS IMPLEMENTADOS

Un paso importante para el desarrollo del proyecto de investigación es la planeación


de trayectoria usando un algoritmo de inteligencia artificial y un algoritmo de planeación
de trayectorias para esquivar obstáculos teniendo en cuenta la cinemática descrita en la
sección 4.2. En este trabajo de investigación se implementó el algoritmo de inteligencia
artificial Perceptron Multicapa (MLP), ya que se un algoritmo que permite clasificar
y predecir escenarios desconocidos, ajustándose a una función multimodal vectorial, este
algoritmo es adecuado por que el robot continuo posee múltiples entradas y múltiples
salidas las cuales se explicaran a lo largo de este capítulo. El algoritmo MLP puede tomar
y ajustar trayectorias cuando el robot se enfrenta a un obstáculo en diferentes posiciones.
En este capítulo se describe el modelo MLP usado para la planeación de trayectorias del
Robot Continuo, este fue diseñado para aprender cómo se debe mover el robot frente a un
obstáculo y como debe generar la ruta de evasión en diferentes escenarios posibles también
se describe un algoritmo puramente reactivo en base a la cinemática que consigue que el
robot continuo evade obstáculos conduciendo al robot a una zona de menor densidad.

86
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS87

5.1. Algoritmo de Inteligencia Artificial: Arquitectura


de la Red Neuronal
Se diseña una arquitectura neuronal capaz de aprender dado un vector o dataset de
entrada. El aprendizaje es tipo off-line, esta requiere de una fase previa de entrenamiento
por existir un conjunto de datos de entrenamiento y un conjunto de datos de test o prueba;
igualmente los pesos de las conexiones no se modifican después de terminar la etapa de
entrenamiento de la red. esto permite un fácil reconocimiento de situaciones presentadas
por el vector de entrada y la evaluación de la proximidad a situaciones límite dados por el
vector de prueba.

5.1.1. Obtención de los Datos de Entrenamiento

Para los datos de entrada en la red neuronal MPL, el robot continuo en el último
eslabón tiene un sensor de tipo láser Lidar que captura 480 puntos en una área de trabajo
de 180 grados del mundo virtual como se puede observar en la figura 5.1; a) Simulación
del mundo virtual sin obstáculos y b) Simulación del mundo virtual con obstáculos.

(a) Ángulo de trabajo del sensor láser (b) Obstáculo captado por el sensor láser

Figura 5.1: Simulación del robot continuo con un sensor Lidar (Autor : Propia)

Los obstáculos detectados mediante la frontera de protección alrededor del robot se


denomina burbuja, cuyas dimensiones dependen de la velocidad del robot y del intervalo
de tiempo entre lecturas de láser. Cuando un obstáculo penetra en la frontera de la burbuja,
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS88

el robot calcula el llamado “rebound angle”, o ángulo de rebote, en la dirección en la que


haya menor densidad de obstáculos, el método de cálculo del ángulo de rebote es mediante
una media ponderada, en la que el ángulo es el dato y la distancia leída por el láser. En la
ecuación 5.1.1 se muestra como calcular el ángulo de rebote

P180
αi Di
αr = P0 180 (5.1)
0 Di

donde Di es la lectura del láser correspondiente al ángulo αi .


Uno de los mayores inconvenientes es el cálculo del ángulo de rebote. Si resulta que hay
un obstáculo bloqueando el camino y éste se encuentra a un lado del robot, el ángulo de
rebote resultará ser un ángulo hacia el lado de menor densidad de obstáculos, que es el
resultado esperado, el problema de este de este método surge cuando la distribución de
obstáculos está bastante centrada. En este caso la media ponderada dará como resultado
un ángulo que conducirá al robot directo hacia el obstáculo

Figura 5.2: Distribución pondera del sensor Lidar (Autor : Propia)

Para la implementación de los valores de los ángulos a la red neuronal, se genera un


vector con la la información de cinco ángulos ponderados, ya que estos son los puntos que
detecta el robot cuando esta de frente un obstaculo sin importar su forma, los datos de
salida serán los ángulos de cada eslabón dados en un rango de π2 , − π2 . En la figura 5.3 se

CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS89

puede observar el modelo del perceptron, donde Sn es numero de los ángulos ponderados,
para este caso se lee la información de cinco ángulos distanciados a 45◦ y In es el ángulo
de cada eslabón para la generación de la curva.
En este proyecto de investigación cada neurona tiene una función de activación de (Tanh)
la cual permite tener valores a la salida de la red positvos y negativos.

Figura 5.3: Modelo del Perceptron (Autor : Propia)

El MPL es un algoritmo supervisado que requiere aprender objetivos deseados para la


salida de la red neuronal a diferentes entradas, para obtener el dataset que se utilizó para
entrenar la red, se generó previamente trayectorias de curvas con el algoritmo de bézier
[107], y el número de puntos de control igual al número de eslabones, una vez generada
la curva, se discretiza para obtener el dataset. Se utilizó el algoritmo de bézier por que
permite suavizar curvas en trayectorias donde hay una planeación con puntos de control
(ver sección 3.3), y para la discretizacion de la curva se utilizó una subdivisión adaptativa
[126]. Este método consiste en la construcción de una tabla T B(λi , si ), donde λi es el
parámetro y si es la longitud de arco recorrida, esta es una solución propuesta para la
discretiza de la curva, a un coste computacional mínimo, se obtiene de la utilización de un
método de bipartición dicotómica. El algoritmo se describe como:
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS90

En la obtención del dataset de entrenamiento se generaron 50 curvas en el software de


Matlab. En la figura 5.4 se puede ver cuatro curvas de bézier generadas con ocho puntos
de control de acuerdo al numero de eslabones propuesto para la realización de la pruebas.
En el anexo 7.2 se pueden observar 12 graficas de curvas generadas y en el anexo 7.4 se
puede observar numéricamente 25 curvas.

Figura 5.4: Curvas de Bézier generadas con ocho puntos de control (Autor : Propia)
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS91

Para obtener los datos de los sensores se realizó un obstáculo dinámico en forma de un
robot móvil diferencial controlado a través de una interfaz gráfica. Los robots móviles son
capaces de realizar movimientos en espacios de trabajo ilimitados en comparación a los
robots manipuladores y uno de sus principales objetivos es efectuar de forma autónoma
movimientos planificados con gran exactitud. El robot móvil tiene como función entrenar
el manipulador robótico posicionándose en diferentes lugares y con diferentes orientación.
En la figura 5.5 se puede observar el robot diferencial en una posición inicial y en la figura
5.6 se puede observar al robot girado 20 grados a la izquierda, también se puede observar
la interfaz gráfica usada para mover el robot con los botones Adelante, Girar Derecha,
Girar Izquierda y Retroceder

Figura 5.5: Robot Diferencial en la posición inicial (Autor : Propia)

Figura 5.6: Curvas de Bézier generadas con ocho puntos de control (Autor : Propia)
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS92

5.1.2. Método de Entrenamiento

El procedimiento utilizado para llevar a cabo el proceso de aprendizaje en una red neu-
ronal se denomina entrenamiento. Aunque hay uno, el de Descenso del Gradiente (versión
diferencial del Ascenso de la Colina) [108], que popularmente se impone sobre los demás
por su facilidad y extensión de uso, hay muchos otros que pueden resultar interesantes,
presentando diferentes características y rendimiento que los pueden hacer más, o menos,
adecuados dependiendo de las características del problema.
El problema de aprendizaje en las redes neuronales se formula en términos de la minimi-
zación de la función de error (o pérdida) asociada [109], normalmente esta función está
compuesta por dos términos, uno que evalúa cómo se ajusta la salida de la red neuronal al
conjunto de datos de que disponemos, y que se denomina término de error, y otro que se
denomina término de regularización, y que se utiliza para evitar el sobreaprendizaje por
medio del control de la complejidad efectiva de la red neuronal. En aprendizaje automá-
tico, el sobreajuste (también es frecuente emplear el término en inglés overfitting) [110],
el efecto de sobreentrenar un algoritmo de aprendizaje con unos ciertos datos para los
que se conoce el resultado deseado. El algoritmo de aprendizaje debe alcanzar un estado
en el que será capaz de predecir el resultado en otros casos a partir de lo aprendido con
los datos de entrenamiento, generalizando para poder resolver situaciones distintas a las
acaecidas durante el entrenamiento. Sin embargo, cuando un sistema se entrena demasia-
do (se sobreentrena) o se entrena con datos extraños, el algoritmo de aprendizaje puede
quedar ajustado a unas características muy específicas de los datos de entrenamiento que
no tienen relación causal con la función objetivo. Durante la fase de sobreajuste el éxito al
responder las muestras de entrenamiento sigue incrementándose mientras que su actuación
con muestras nuevas va empeorando.

5.1.3. Fase de entrenamiento

En la fase de entrenamiento se implementó el modelo de MPL de la librería Keras de


TensorFlow (ver sección 2.5), en el aprendizaje se utilizó en método del gradiente descen-
diente y algoritmo Gauss Newton [111], este método también es conocido como Gradiente
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS93

Conjugado que puede considerarse como un método intermedio entre el Descenso del Gra-
diente y el método de Newton. la ventaja de utilizar este algoritmo es poder acelerar la
convergencia del entrenamiento, habitualmente lenta, obtenida con el Descenso del Gra-
diente, y a la vez evitar los requisitos de computación asociados a la evaluación, almace-
namiento e inversión del Hessiano, como requiere el método de Newton. Este método ha
demostrado ser más eficaz que el de Descenso del Gradiente, y como no requiere el cálculo
del Hessiano también se recomienda cuando tenemos redes neuronales muy grandes [112]
El modelo fue entrenado para tener un pequeño sobreajuste, esto con el fin de que el ro-
bot pudiera predecir de forma correcta la evasión de obstáculos a situaciones que nunca
ha visto y no quede limitado solo a soluciones que se generaron en el entrenamiento .
En el entrenamiento se probó 1000 iteraciones con un hardware de tarjeta gráfica geforce
GTX960m para generar procesos en paralelo y reducir el tiempo de cómputo.
En la fase de entrenamiento se probaron diferentes tipos de arquitectura esto con el fin de
poder evaluar qué comportamiento de la red, los parámetros observados fueron: Error de
Convergencia y Tiempo de Entrenamiento. De esta manera se logró seleccionar la arqui-
tectura que mejora se ajustará al desarrollo de este objetivo de investigación.

Primera Arquitectura

En la figura 5.7 se puede observar el comportamiento de la red entrenada, el resultado


de los datos de entrenamiento Vr datos de validación que la red no ha visto. Este primer
entrenamiento se realiza con una red neuronal de 20 neuronas con 4 capas; dos ocultas,
una capa de entrada y una de salida, se seleccionó 20 neuronas por que es el mínimo de
neuronas que la red tiene un comportamiento donde el error va convergiendo a cero. Se
puede observar que la red tiene un comportamiento en la validación del entrenamiento del
50 % y el error tiene un porcentaje del 1 %.
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS94

(a) Entrenamiento Vs Validación

(b) Error de Entraniemto Vs Error de Validación

Figura 5.7: Resultados de una red neuronal con 4 capas de 20 neuronas cada capa (Autor
: Propia)
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS95

Segunda Arquitectura

En la figura 5.8 se puede observar el segundo entrenamiento que se realiza con una
red neuronal de 20 neuronas con 8 capas; 6 ocultas, una capa de entrada y una de capa de
salida, se puede observar con respecto a la red anterior un comportamiento mejor en cuanto
a entrenamiento y el error, tiene un comportamiento en la validación del entrenamiento
en promedio con 90 % ya que oscila entre el 82 % y 100 % el error tiene un porcentaje del
0.02 %.

(a) Entrenamiento Vs Validación

(b) Error de Entraniemto Vs Error de Validación

Figura 5.8: Resultados de una red neuronal con 8 capas de 20 neuronas cada capa (Autor
: Propia)
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS96

Tercera Arquitectura

En la figura 5.9 se puede observar el tercer entrenamiento que se realiza con una red
neuronal de 20 neuronas con 16 capas; 8 ocultas, una capa de entrada y una de capa
de salida, se puede observar con respecto a la red anterior un comportamiento similar
en cuanto a entrenamiento, pero esta arquitectura converge más lento a la arquitectura
anterior y tiene una oscilación mayor, con respecto al error se puede decir que tiene error
mayor al 0.02 %.

(a) Entrenamiento Vs Validación

(b) Error de Entraniemto Vs Error de Validación

Figura 5.9: Resultados de una red neuronal con 16 capas de 20 neuronas cada capa (Autor
: Propia)
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS97

La arquitectura final seleccionada para la red neuronal artificial se puede ver en la tabla
5.1

Tabla 5.1: Arquitectura selecionada de la red neuronal

En la figura 5.10 se puede observar el flujograma del algoritmo propuesto basado en


inteligencia artificial

Figura 5.10: Flujograma del algoritmo propuesto con inteligencia artificial (Autor : Propia)
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS98

5.2. Algoritmo de Planificador local


Para la selección de un algoritmo tipo reactivo que pudiera preparar al robot para
esquivar obstáculos entornos densos o complejos y también ser adaptado al robot conti-
nuo. Se implementó el algoritmo A∗ (ver sección 3.5.2), el cual permite trazar una ruta
evadiendo obstáculos y optimizando el camino para posteriormente suavizar y discretizar,
un proceso similar para obtener el dataset en el algoritmo MPL. Se eligió implementar el
algoritmo A∗ basado en la comparación de algoritmos que se realiza en la tesis doctoral
"Nuevas aportaciones en algoritmos de planificación para la ejecución de maniobras en
robots autónomos no holónomos" [113].

5.2.1. Descripción del algoritmo

Este algoritmo parte de un mapa de entorno y de las especificaciones de la tarea de


navegación, de estos datos se realiza la planificación de un conjunto de objetivos represen-
tados como una secuencia de puntos cartesianos que definen la ruta, este debe cumplir los
requisitos para que esta trayectoria esté libre de obstáculos. Al usar el generador de tra-
yectorias A∗ se construye la referencia que utilizará posteriormente el algoritmo de Bézier
para suavizar la curva y poder discretizar para generar los comandos de ángulos que serán
las referencias a los actuadores del robot. Para desarrollar esta tarea depende mucho del
conocimiento que se posee del entorno de trabajo.
Una comprensión más detallada de este algoritmo de evasión, se puede dividir su explica-
ción en cinco partes principales.

Conocer el espacio de trabajo del Robot Continuo ya que es importante el cual servirá
de gran ayuda para optimizar las dimensiones de nuestro robot y también para la
planificación de trayectorias

Conocer las coordenadas de los obstáculos de acuerdo a una marco referencia inercial

Implementar el algoritmo A∗ .

Suavizar con Bézier la trayectoria generada con el algoritmo de A∗ con el número de


eslabones del robot continuo como puntos de control.
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS99

Dicretizar la curva con subdivisión adaptativa despues de suaviar con Bézier

Implementación del robot continuo en el entorno virtual.

En la figura 5.11 se puede observar el flujograma del algoritmo implementado de A∗


suavizado con Bézier.

Figura 5.11: Flujograma del algoritmo propuesto con inteligencia artificial (Autor : Propia)

Para la implementación del algoritmo se realizó un programa en el software de matlab.


CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS100

En la figura 5.8 se puede observar simulación del algoritmo A∗ , donde el punto inicial
y final es representado con anillo de color azul y los obstáculos de color rojo diferentes
posiciones.

(a) Generación de ruta A∗

(b) Generación de ruta A∗

Figura 5.12: Implementación del algorimo A∗ (Autor : Propia)

despúes de generar el trazado A∗ se debe suavizar la curva Bézier. En la figura 5.13 se


puede observar en a) Generación de la ruta con A∗ , b) Suavizado la ruta con bézier.
Una desventaja en comparación con el algoritmo de MPL es que el algoritmo A∗ necesita
conocer a priori donde se localizan los obstáculos para la planeación de trayectoria lo que
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS101

quiere decir que el algoritmo no trabaja en tiempo real y solo funciona para obstáculos
estáticos.

(a) Generación de ruta A∗

(b) Suavizar la ruta con Bézier

Figura 5.13: Implementación del algorimo A∗ (Autor : Propia)


CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS102

5.3. Planificador local basado en técnicas de “Divide


and Conquer”
Este planificador está basado en el algoritmo de “Divide and Conquer”, basado a su
vez en el “Nearness Diagram Navigation”, Es un algoritmo de tipo reactivo para la evasión
de obstáculos, posee tres partes principales: herramientas, situaciones y acciones. La idea
base es la de usar unas herramientas para analizar la configuración de los obstáculos, el
robot y su destino, clasificándose en uno de seis casos que describen la situación de manera
completa y exclusiva. Una vez clasificada la situación, el robot deberá realizar la acción
asociada.

Herramientas Para analizar la relación entre el robot, los obstáculos y el objetivo


intermedio, existe una herramienta llamada Nearness Diagram, o ND. En concreto, se
utiliza el diagrama PND, que establece la cercanía de los obstáculos al punto central
del robot. En la figura 5.14 se puede observar un diagrama PND del sensor Lidar
usado en este proyecto. El PND funcionará como una representación del entorno,
permitiendo su posterior análisis. Las zonas vacías del diagrama representan las
llamadas regiones, delimitadas cada una por dos discontinuidades, o huecos. Una
de las regiones será elegida como la de libre circulación, y por ella navegará el robot
hacia el objetivo. La región elegida será aquella más cercana al objetivo, que cumpla
la trayectoria generada.
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS103

Figura 5.14: Representación del diagrama PND (Autor : Propia)

Situaciones Una vez representado el entorno mediante un PND, se pasa a la etapa


de identificación de la situación. Los 6 casos posibles se definen según una serie de
criterios. El primer criterio de clasificación es la seguridad, separando las situaciones
en seguras y no seguras. Una situación se considera segura cuando no hay obstáculos
dentro de la zona de seguridad y, del mismo modo, una situación no es segura si
algún obstáculo penetra en la zona de seguridad. Dentro de una situación segura,
existen dos criterios de clasificación, la primera siendo la anchura de la región. Si la
anchura es superior a una predeterminada, la situación se llama High Safety Wide
Región (HSWR). En el caso de ser inferior, recibe el nombre de High Safety Narrow
Región (HSNR). Tras esta análisis, si de detecta que el objetivo se encuentra dentro
del área de libre circulación, la situación recibe el nombre de High Safety Goal in
Región (HSGR). Figura 5.15
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS104

Figura 5.15: Representación de las 6 posibles situaciones


[111]

Acciones Asociada a cada una de las situaciones hay una acción, que determina
la manera en que se debe calcular la dirección de avance del robot. En el caso de
que el robot se encuentre a una distancia prudente de los obstáculos que lo rodean,
se intentará mantener dicha distancia. En caso de que algún obstáculo se encuentre
demasiado cerca, se querrá alejar al robot de éste, manteniendo el movimiento de
avance por la región de navegación. Puesto que el algoritmo original ha resultado
funcionar correctamente, las diferencias entre éste y el desarrollado son reducidas,
siendo el método de cálculo de la dirección de avance el principal punto donde difieren.
Si bien las ecuaciones originales no presentaban ningún problema de funcionamiento,
para simplificar algunos cálculos ha resultado interesante el uso de nuevas ecuaciones
para las situaciones de tipo Low Safety

En la figura 5.16 se puede observar el flujograma del algoritmo Divide and Conquer
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS105

Figura 5.16: Flujograma del algoritmo Divide and Conquer (Autor : Propia)

5.3.1. Construcción de un diagrama PND

Un diagrama PND se puede implementar de la siguiente manera. Si el láser no detecta


ningún obstáculo para un ángulo determinado, el valor del PND para dicho ángulo será
nulo, indicando una cercanía nula. Si por lo contrario la lectura del láser es menor que la
distancia máxima que puede leer, el valor del PND para dicho ángulo será:

P N Dk+1 = dm − (Lt + LaserDataRangek ) (5.2)

donde k es el numero de punto del sensor laser, Lt es la longitud total del robot y
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS106

LaserDataRangek es la distancia medida en metros del los puntos del sensor.

5.3.2. Regiones o Huecos

Para la búsqueda de huecos se hace uso del diagrama PND, que contiene toda la infor-
mación necesaria del entorno. Los huecos se definen como discontinuidades en el diagrama
PND. Cuando, para dos ángulos consecutivos, la diferencia P N Dk+1 − P N Dk es igual o
superior a la dimensión máxima del robot, se considera que constituyen un hueco. Se dis-
tinguen dos tipos de huecos: ascendente y descendente. Un hueco ascendente es aquel que,
navegando por el diagrama de derecha a izquierda, produce una discontinuidad positiva,
es decir, el valor del PND en el ángulo Θk+1 es mayor que en el ángulo Θk . Del mismo
modo, un hueco es descendente cuando se produce una discontinuidad negativa, es decir,
el valor del PND en el ángulo Θk+1 es menor que en el ángulo Θk .
Cada región está formada por dos huecos. Si encontramos un hueco descendente, sabe-
mos que en algún momento encontraremos otro ascendente o descendente. En el caso de
un robot con láser de menos de 360 grados de amplitud, los ángulos extremos de visión
serán considerados como huecos. En el ángulo mínimo, alpha V+W , siempre habrá un
hueco de tipo opuesto al hueco siguiente. En el ángulo máximo, alpha VXY , siempre
habrá un hueco de tipo opuesto al hueco anterior. Esto permite la formación de regiones
en los extremos.

5.3.3. Búsqueda y selección de la región navegable

Para encontrar la región navegable más cercana al objetivo que cumpla la definición
de navegabilidad, el algoritmo hará un barrido de todas las regiones encontradas, compro-
bando su navegabilidad en orden de cercanía. Una región se define como navegable si la
distancia entre los dos puntos extremos de los obstáculos que forman la región es mayor
que la dimensión máxima del robot. En este caso, se considera que el robot podrá navegar
por la región.
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS107

5.3.4. Selección de la situación

Para poder clasificar la distribución del robot, obstáculos y objetivo intermedio en


una de las 6 situaciones preestablecidas, es necesario comenzar analizando si existe algún
obstáculo que penetre en la zona de seguridad, definida por una circunferencia de radio d.
comprueba si la lectura de láser para algún ángulo es menor que d . En el caso de que esto
ocurra, se coloca una etica positiva, indicando que la situación es de tipo Low Safety. En
caso contrario, devolverá etiqueta negativa, y la situación será de tipo High Safety.
Si estamos en el caso de High Safety, el entorno se clasifica en High Safety Goal in Region,
High Safety Wide Region o High Safety Narrow Region, tal y como se hace en el algoritmo
original. Para el análisis dentro de la situación de tipo Low Safety es necesario conocer el
ángulo de la región de navegación más cercano al obstáculo, que llamaremos alpha Para
ello, es necesario diferenciar dos casos: si la región está a la izquierda del objetivo, se elige
como ángulo alpha + el correspondiente al hueco que comienza la región. Si la región se
encuentra a la derecha del objetivo, se elige como ángulo el del hueco que finaliza la región.
El ángulo ángulo alpha + se usará posteriormente en el cálculo de la dirección de avance,
independientemente de si nos encontramos en una situación de tipo High Safety o Low
Safety.
Una vez conocida alpha + , podemos pasar a la siguiente etapa de la clasificación dentro
de Low Safety. Si sólo penetran obstáculos a un lado de alpha + , se trata de la situación
Low Safety 1 Side. Si penetran obstáculos a los dos lados, se dirá que es tipo Low Safety
2 Sides.

5.3.5. Aplicación de la cinemática directa

Una vez detectado el vector alguna de la situaciónes anteriores y definiendo el ángulo


alpha procedemos a continuación definimos los aspectos teóricos del algoritmo de plani-
ficación de trayectoria continua basado en curvas de curvatura constante explotándolo
geométricamente, para la entrada tomamos que deben seguir hacia la zona segura en la
direccion de alpha. ver figura 5.17.
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS108

Figura 5.17: Generación de puntos hacia la zona segura basada en curvatura (Autor :
Propia)

Para ajustar la curva de curvatura constante entre los puntos de ruta P1 y P2 , nece-
sitamos la dirección inicial para mantener la continuidad de la ruta, esta dirección inicial
se puede mantener utilizando el punto vectorial tangente P1 , El nuevo punto Pt que va
P1 (Pt~P1 ) es también tangente en la curva ajustada previamente, tangente en la curva entre
P1 y P2 en el punto P1 . Con esta metodología, también proporcionamos la inicial direc-
ción o tangente de la primera sección del robot continuo, con esta información podemos
encontrar el ángulo de flexión o ángulo central (θ) a través de un triángulo isósceles como
se muestra en figura 5.19. Para encontrar la curvatura se necesita conocer el radio (R) de
curvatura que se puede encontar por medio las propiedades del triangulo isósceles.
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS109

Figura 5.18: Calcular el radio y el vector tangente en el punto P2 (Autor : Propia)

Conociendo la información del ángulo de curvatura y el radio de curvatura se puede


encontrar los ángulos correspondientes a cada eslabón dados pos la ecuación 5.3.5:

Li
θi = (5.3)
R

Donde θi corresponde al ángulo de cada eslabón, Li es la longitud de cada eslabón y


R es el radio de curvatura. Despues de tener cada ángulo correspondiente a cada eslabón
se puede calcular la cinemática directa vista en el apartado 4.3.1 donde
CAPÍTULO 5. DESCRIPCIÓN Y ANÁLISIS DE LOS ALGORITMOS IMPLEMENTADOS110

 
x
 
gsh (θ) = eξ1 θ1 · eξ2 θ2 · eξ3 θ3 ... eξi θi · gsh (0) = y 
 
 
z

.
Donde los valores X, Y, Z corresponde a las coordenadas donde el robot continuo pasara
para entrar en la zona segura y poder esquivar los obstaculos.
En la figura 5.19 se realizó la simulación en el software de matlab del algoritmo Divide
and Conquer, en este simulación se ingresa a priori los valores de los obstáculos, el punto
final e inicial. La simulación tiene el objetivo de comprobar como el robot se alejaba del
obstaculos y se obtiene los valores correspondientes a XY Z del espacio de trabajo a través
de la cinemática directa

Figura 5.19: Curvatura constaten en la simulación del algoritmo Divide and Conquer (Au-
tor : Propia)
Capítulo 6

PRUEBAS Y COMPARACIÓN DE
ALGORITMOS

En el capítulo que sigue se realizará la comparación de los algoritmos implementado: el


planificador de trayectoria local y el algoritmo basado en inteligencia artificial calculando
la trayectoria global. Para ello se pretende medir una serie de métricas predefinidas para
analizar las ventajas y desventajas que pueden presentar cada uno de los métodos de
evasión en diferentes tipos de escenarios.

6.1. Métricas elegidas


A continuación se presentan las diferentes métricas empleadas en este trabajo:

Duración de la trayectoria: mide en segundos la duración de la trayectoria total.

Longitud de la trayectoria: mide en metros la longitud de la trayectoria total.

Tiempo computacional: mide en segundos el tiempo medio que tarda el ordenador


en ejecutar un ciclo del algoritmo.

Si en algún caso el robot es incapaz de alcanzar el destino, ya sea debido a una colisión
grave o debido a un fallo del algoritmo, la trayectoria se considerará como fracasada, siendo
las métricas de longitud y duración de la trayectoria inválidas.

111
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 112

6.2. Pruebas en simulación


Las pruebas en simulación se han realizado en Gazebo, un software que ofrece modelos
de robots y entornos virtuales para la simulación de algoritmos de movimiento de robots.
El objetivo de esta prueba es demostrar mediante simulación, la confiabilidad del algorit-
mo MPL para la posicionamineto articular de un robot continuo tipo discreto evadiendo
obstáculos una vez entrenado para este tipo de escenarios, la idea central es el que el robot
sea capaz de auto configurarse evadiendo los obstáculos, en este caso el obstaculo es un
robot móvil tipo diferencial en cual puede desplazar por todo el espacio de trabajo del
manipulador continuo.

6.2.1. Escenarios y pruebas elegidos

En las pruebas 1 hasta la 8 se utilizó un robot de ocho eslabones y como indicadores se


observó la salida de la red que para este caso son los ángulos de cada eslabón y la entrada
a la red que son los sensores captados, después se repite las pruebas con un robot de cinco
eslabones.

6.2.2. Prueba 1 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 1 el robot móvil se coloca enfrente de sensor del manipulador continuo en


este caso solo el sensor 3 puede detectar el obstáculo como se puede apreciar en la figura
6.1, en este caso la salida se puede observar los ángulos de cada eslabón, en este caso como
se explico en la sección 5.1, el método de burbuja donde el obstáculo entra en el espacio
del sensor, el robot debe irse de frente hacia el obstáculo, en este caso el robot como es un
manipulador se queda en su posición inicial. Los datos de entrenamiento se puede observar
en el anexo 8.4.
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 113

Figura 6.1: Prueba 1 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.3. Prueba 2 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 2 el robot móvil se inclina hacia la derecha 20 grados donde solo los puntos
1 y 2 del sensor del manipulador pueden detectar. los valores obtenidos en la figura 6.2
son los valores que el sensor lidar registra en la posición donde se encuentra el robot. En
esta prueba el obstáculo entra en el espacio de trabajo del robot y está siendo detectado
por el método de burbuja en la zona 1 que es la parte izquierda del ángulo de trabajo
del sensor, lo que hace que el robot intenta contraerse para esquivarlo esto simulando una
compresión de un robot tipo continuo blando.
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 114

Figura 6.2: Prueba 2 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.4. Prueba 3 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 3 el robot móvil se inclina hacia la derecha -20 grados donde solo los
puntos 4 y 5 del sensor del manipulador pueden detectar. En esta prueba el obstáculo
entra en el espacio de trabajo del robot y esta siendo detectado por el método de burbuja
en la zona 2 que es la parte derecha del ángulo de trabajo del sensor lo que hace que el
robot intenta contraerse para esquivarlo esto simulando una compresión de un robot tipo
continuo blando pero en contraste generó una curva de mayor grado con respecto a la
prueba anterior
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 115

Figura 6.3: Prueba 3 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.5. Prueba 4 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 4 el robot móvil se aleja manteniendo la inclinación hacia la derecha


de -20 grados donde solo los puntos 2 y 3 del sensor del manipulador pueden detectar.
En la figura 6.4 se puede observar de mientras se aleja el robot móvil el manipulador va
regresando a su posición inicial.

Figura 6.4: Prueba 4 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 116

6.2.6. Prueba 5 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 5 el robot móvil se acerca manteniendo la inclinación hacia la derecha


de -20 grados donde solo los puntos 2 y 3 del sensor del manipulador pueden detectar.
En la figura 6.5 se puede observar de mientras se acerca el robot móvil el manipulador va
generando una torsión para no tocar el obstáculo.

Figura 6.5: Prueba 5 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.7. Prueba 6 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 6 el robot móvil se aleja quedando totalmente perpendicular al robot


continuo y este intenta colocarse en su posición original, pero por efecto de fricción y
torque de los actuadores el robot no logra posicionarse totalmente recto. En la figura 6.6
se puede observar la curvatura del robot continuo.
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 117

Figura 6.6: Prueba 6 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.8. Prueba 7 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 7 el robot móvil se acerca por el lado derecho del manipulador robotico,
el manipulador continuo esquiva de manera precisa el obstáculo. En la figura 6.7 se puede
observar la curvatura del robot continuo.

Figura 6.7: Prueba 7 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 118

6.2.9. Prueba 8 con un robot de ocho eslabones implementado


algoritmo MPL

En la prueba 8 el robot móvil se aleja por el lado izquierdo del manipulador robotico,
el manipulador continuo esquiva de manera precisa el obstáculo. En la figura 6.7 se puede
observar la curvatura del robot continuo.

Figura 6.8: Prueba 8 con un robot de ocho eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.10. Prueba 1 con un robot de cinco eslabones implementado


algoritmo MPL

Como se indico el capítulo 5, más de 10 eslabones el robot no se mueve de manera


apropiada, por esta razon se decidio generar prubas con menos de 8 eslabones, en este
caso son cinco eslabones. En la prueba 1 el robot móvil se coloca enfrente de sensor del
manipulador continuo en este caso solo el sensor 3 puede dectar el obstáculo como se
puede apreciar en la figura 6.9, en este caso la salida se puede observar los ángulos de
cada eslabon, los datos de entramiento se puede observar el anexo 8.4.
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 119

Figura 6.9: Prueba 1 con un robot de cinco eslabones implementado algoritmo MPL (Autor
: Propia)

6.2.11. Prueba 2 con un robot de cinco eslabones implementado


algoritmo MPL

En la prueba 2 el robot móvil se dirige de frente al manipulador con pequeña inclinación


de grados 3 grados en la figura 6.10 se puede apreciar que la curvatura del robot es grande,
para una evación rapida.

Figura 6.10: Prueba 2 con un robot de cinco eslabones implementado algoritmo MPL
(Autor : Propia)
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 120

6.2.12. Prueba 3 con un robot de cinco eslabones implementado


algoritmo MPL

En la prueba 3 el robot móvil se dirige de frente al manipulador con pequeña inclinación


de grados -3 grados en la figura 6.11 se puede apreciar que la curvatura del robot es grande,
para una evación rapida.

Figura 6.11: Prueba 3 con un robot de cinco eslabónes implementado algoritmo MPL
(Autor : Propia)

6.2.13. Prueba 4 con un robot de cinco eslabones implementado


algoritmo MPL

En la prueba 4 el robot móvil se dirige al manipulador con una inclinación de grados -12
grados en la figura 6.12 se puede apreciar la curvatura del robot como tratar de esquivar
el robot contrayéndose.
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 121

Figura 6.12: Prueba 4 con un robot de cinco eslabónes implementado algoritmo MPL
(Autor : Propia)

6.2.14. Prueba 5 con un robot de cinco eslabones implementado


algoritmo MPL

En la prueba 3 el robot móvil se dirige de frente al manipulador con pequeña inclina-


ciñon de grados -3 grados en la figura 6.11 se puede apreciar la curvatura del robot es
pequeña por que solo el punto del sensor 5 obtuvo información del obstáculo.

Figura 6.13: Prueba 5 con un robot de cinco eslabónes implementado algoritmo MPL
(Autor : Propia)
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 122

6.2.15. Algoritmo planificador de trayectoria local

Para la prueba de A∗ Se han generado una serie de escenarios con diferente distribución
de obstáculos. Estas pruebas se realizan con el fin de ver que curvatura podría realizar el
robot, cómo es un algoritmo off-line nos permite tener una mayor precisión de donde
colocar los osbtáculos.

Primera Prueba A*

En la primera prueba se genera con el fin de que el robot realizará una curvatura en
forma de "S" , el robot tiene 15 eslabones de acorde a los puntos de control generados por
el algoritmo de bézier. Figura 6.14 y Figura 6.15

Figura 6.14: Algoritmo planificador de trayectoria local suavisado con Bézier (Autor :
Propia)

Figura 6.15: Algoritmo planificador de trayectoria local suavisado con Bézier simulado en
mundo virtual (Autor : Propia)
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 123

Segunda Prueba A*

En la segunda prueba se genera con el fin de que el robot realizará una curvatura en
forma de espiral, el robot tiene 19 eslabones de acorde a los puntos de control generados
por el algoritmo de bézier. Figura 6.14 y Figura 6.15

Figura 6.16: Algoritmo planificador de trayectoria local suavisado con Bézier (Autor :
Propia)

Figura 6.17: Algoritmo planificador de trayectoria local suavisado con Bézier simulado en
mundo virtual (Autor : Propia)

6.2.16. Algoritmo planificador de trayectoria local Divide and Con-


quer

Para la detección de obstáculos con el algoritmo Divide and Conquer se divide por el
método de la burbuja en tres zonas (ver Figura 6.18) las cuales de acuerdo a la región de
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 124

penetración generar los ángulos del robot.

Figura 6.18: Zonas del algoritmo Divide and Conquer (Autor : Propia)

En este prueba se generaron cuatro escenarios posibles donde le obstáculo que es un


robot tipo diferencial se ubica en diferentes posiciones.

6.2.17. Prueba 1 con el algoritmo Divide and Conquer

En la prueba 1 se pretende que el robot entre en la zona 2 y en la zona de detección


de obstáculo para este caso el robot realiza una curvatura hacia la derecha.

Figura 6.19: Prueba 1 con el algoritmo Divide and Conquer (Autor : Propia)
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 125

6.2.18. Prueba 2 con el algoritmo Divide and Conquer

En la prueba 2 se pretende que el robot entre en la zona 1 y en la zona de detección


de obstáculo para este caso.

Figura 6.20: Prueba 2 con el algoritmo Divide and Conquer (Autor : Propia)

6.2.19. Prueba 3 con el algoritmo Divide and Conquer

En la prueba 3 se pretende que el robot entre en la zona 2 y en la zona de detección


de obstáculo para este caso realiza una curvatura mayor en comparación con la prueba 1,
esto debido al ángulo de detección del obstáculo en la zona de detección.
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 126

Figura 6.21: Prueba 3 con el algoritmo Divide and Conquer (Autor : Propia)

6.2.20. Prueba 4 con el algoritmo Divide and Conquer

En la prueba 4 se pretende que el robot entre en la zona 2 para este caso realiza una
curvatura más suave en comparación con la prueba 3, esto debido al ángulo de detección
del obstáculo en la zona de 3 se encuentra muy cercana al robot.

Figura 6.22: Prueba 4 con el algoritmo Divide and Conquer (Autor : Propia)

6.2.21. Tablas comparativas y análisis

Para la realización del análisis y la comparación de los algoritmos, se han recopilado


en los cuadros a continuación con las medias y desviaciones típicas de los datos recogi-
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 127

dos durante la realización de las pruebas. Las pruebas son estandár para los dos tipos
de algoritmos donde el robot continuo tipo discreto esta formado por ocho eslabones y
el obstaculo es el robot diferencial el cual me permite moverme por espacio de trabajo
del manipulador. Ambos algoritmos trabajan con el sensor laser tipo lidar y detectan los
obstáculos mediante la burbuja. Se realizaron cinco pruebas donde el robot diferencial se
ubica en espacio de trabajo del sensor a diferentes grados: 0 grados, 20 grados, -20 grados,
40 grados y -45 grados. Bajo estas condiciones se observó la curvatura generada por todos
los eslabones donde el promedio de los ángulos que generaba la curvatura del robot y el
tiempo computacional en el que generaba la curva. El tiempo computacional se obtuvo del
reloj del software de gazebo.
Se puedo evidencia que el planificador de trayectoria global tiene un menor coste compu-
tacional y el algoritmo de inteligencia artificial tiene una mayor coste computacional cuyo
valor aumentará cuanto mayor y más complejo sea la red neuronal que depende el número
de eslabones del robot continuo.

Tabla 6.1: Pruebas Comparativas de dos algoritmos implementados para el posicionamiento


articular en un robot continuo

Para el desarrollo de este proyecto se observo tñambien las ventajas y desventajas


frente a los dos algoritmos implementados: el de inteligencia artifical y el A∗ suavizado con
Bézier, ya que no hay una manera precisa de comparar númericamente estos algoritmos
CAPÍTULO 6. PRUEBAS Y COMPARACIÓN DE ALGORITMOS 128

Tabla 6.2: Ventajas y desventajas de dos algoritmos implementados para el posicionamiento


articular en un robot continuo (Autor : Propia)
Capítulo 7

CONCLUSIONES

Principalmente se ha realizado una clasificación de los robots, así como un estudio del
estado del arte de robots manipuladores e híper-redundantes, analizando las ventajas e in-
convenientes de los mismos. También se han investigado sus diferentes tipos de actuación
y algoritmos de posicionamineto articular usando inteligencia artificial.
En el diseño mecánico se logró evidenciar que los datos obtenidos mediante la simulación de
elementos finitos fueron apropiados, ya que permitieron construir el prototipo en función
de costos de manufactura y resistencia de materiales. A través de la simulación realizada
y datos obtenidos se decidió fabricar un prototipo de dos transmisores por articulación,
de manera que se obtengan dos GdL por sección, con capacidades rotacionales; Entre sus
características se destacan una longitud en reposo de 1050 mm, para lo cual se han usado
10 muelles por disco, logrando un ángulo máximo de curvatura de 120, en el prototipo im-
plementado el coeficiente de rigidez de los muelles afectó la maniobrabilidad del prototipo
con un error del 2 % en movimiento de compresión y al generar la curvatura máxima de
robot.
Al observar el comportamiento de la red neuronal en un robot de ocho eslabones se puedo
generar curvas brusca y no siempre generaba un posicionamiento correcto ya que aunque
se aumenta el número de neuronas los datos de los sensores son muy parecidos en los
diferentes posicionamientos lo cual no hace posible una correcta separación y clasificación
por parte de la red neuronal.

129
CAPÍTULO 7. CONCLUSIONES 130

El posicionamiento de robot ante la respuesta de la red neuronal también se ve afecta


por la reducción de su espacio de trabajo de un espacio de 480 puntos a cinco puntos
de ponderación lo cual son pocos datos para entrenar una red neuronal, sim embargo
el objetivo de evadir el obstáculo y no tocarlo se cumplió pero con movimientos brucos
generando curvaturas muy abiertas, encontraste con el algoritmo A star suavizado con
curvas Bézier, pero este último tiene el problema que no trabaja en tiempo real y debe
conocer el espacio de trabajo a priori.
En la comparación de los algoritmos se pudo observar que el de inteligencia artificial
responde más lento que el planificador de trayectoria local esto puede ser al tiempo de
procesamiento entre el simulador y ROS (PYTHON) ya que es mayor procesamiento que
debía ser con respecto al trayectoria local. El ambiente virtual presentado, permitió validar
la funcionalidad de los algoritmos diseñados y emular el ambiente integral de un robot
manipulador continuo.

7.0.1. TRABAJOS FUTUROS

El robot híper-redundante diseñado se podrá mejorar en un futuro, en diversos campos,


tanto mecánicamente como en la parte de control, además, en cuanto al control, se podrá
estudiar la posibilidad de estudiar un control en lazo cerrado diseñando un robot que tenga
la posibilidad de medir la fuerza de tensión en cada cable conductor. Se podrá también
estudiar más en profundidad tanto la cinemática como la dinámica del robot de forma que
su control en lazo cerrado sea más preciso.
En los algoritmo de inteligencia artificial se deja abierta la posibilidad de implementar
otros tipos como son algoritmos por reforzamiento y compara con el MPL obtenido en este
trabajo.
REFERENCIAS

[1] M.Cecilia. DESARROLLO DE UN ROBOT MANIPULADOR BLANDO E HÍPER-


REDUNDANTE. PhD thesis, Escuela Técnica Superior de Ingenieros Industriales. Uni-
versidad Polit/ècnica de Ma- drid, Junio 2017.

[2] Kapadia, A. D., Walker, I. D., Dawson, D. M., and Tatlicioglu, E. A model-
based sliding mode controller for extensible continuum robots. In Proceedings of the 9th
WSEAS International Conference on Signal Processing, Robotics and Automation (Ste-
vens Point,Wisconsin, USA, 2010), ISPRA’10, World Scientific and Engineering Academy
and Society (WSEAS), pp. 113–120.

[3] Kim, S., Laschi, C., and Trimmer, B. Soft robotics: a bioinspired evolution in robo-
tics. Trends in biotechnology 31, 5 (2013), 287–294.

[4] Hughes, P. C., Sincarsin, W. G., and Carroll, K. A. Trus sarma variable-geometry-
truss manipulator. Journal of Intelligent Material Systems and Structures 2, 2 (1991),
148–160

[5] Polygerinos, P., Wang, Z., Galloway, K. C., Wood, R. J., and Walsh, C. J. Soft ro-
botic glove for combined assistance and at-home rehabilitation. Robotics and Autonomous
Systems 73 (2015), 135–143

[6] Jones, B. A., and Walker, I. D. Practical kinematics for real-time implementation
of continuum robots. IEEE Transactions on Robotics 22, 6 (2006), 1087–1099.

131
CAPÍTULO 7. CONCLUSIONES 132

[7] Hannan, M. W., and Walker, I. D. Analysis and experiments with an elephant’s
trunk robot. Advanced Robotics 15, 8 (2001), 847–858.

[8] Gokhale, D. P. Kinematic analysis and animation of a variable geometry truss robot.
PhD thesis, Virginia Tech, 1987.

[9] Barrio, A. M., Terrile, S., Barrientos, A., and del Cerro, J. Robots hiper-redundantes:
Clasificación, estado del arte y problemática. Revista Iberoamericana de Automática e In-
formática industrial 15, 4 (2018), 351–362.

[10] Lozano-Perez, T. A simple motion-planning algorithm for general robot manipu-


lators. IEEE Journal on Robotics and Automation 3, 3 (1987), 224–238.
[11] Van Den Berg, J., Abbeel, P., and Goldberg, K. Lqg-mp: Optimized path planning
for robots with motion uncertainty and imperfect state information. The International
Journal of Robotics Research 30, 7 (2011), 895–913

[12] Yahya, S., Moghavvemi, M., Yang, S., and Mohamed, H. A. Motion planning of
hyper redundant manipulators based on a new geometrical method. In 2009 IEEE Inter-
national Conference on Industrial Technology (2009), IEEE, pp. 1–5.

[13] Alancay, N., Villagra, S., and Villagra, A. Trajectory metaheuristic algorithms to
optimize problems combinatorics. INFORMES CIENTIFICOS Y TECNICOS 8, 3 (2016),
56–75.

[14] Lyons, L. A., Webster, R. J., and Alterovitz, R. Motion planning for active can-
nulas. In 2009 IEEE / RSJ International Conference on Intelligent Robots and Systems
(2009), IEEE, pp. 801–806.

[15] Míreles, E.N.A., Vela, P. C. C., Bocanegra, C. A. H., Hernández, J. L., Peña, E.
CAPÍTULO 7. CONCLUSIONES 133

M., Rangel, E. R.,and García,J.A.R. Ingeniería bioinspirada. OmniaScience, 2014.

[16] Barrientos, A., P. L. F. B. C. . A. R. Fundamentos de Robótica. McGraw-Hill, 2017.

[17] Moran, M. E. Rossum’s universal robots: not the machines. Journal of endourology
21, 12 (2007), 1399–1402.

[18] Delgado, A. Robótica inteligente. Revista de la Facultad de Medicina 47, 1 (1999),


32–34.

[19] Usategui, J. M. A. Robótica práctica: tecnología y aplicaciones. Paraninfo, 1986.

[20] Baturone, A. O. Robótica: manipuladores y robots móviles. Marcombo, 2005.

[21] Pareja Muñoz, J. Rediseño, sensorización y teleoperación mediante realidad au-


mentada de kyma, un robot manipulador blando.

[22] Chirikjian, G. S. Theory and applications of hyper-redundant robotic manipula-


tors. PhD thesis, California Institute of Technology, 1992.

[23] Barrio, A. M., Terrile, S., Barrientos, A., and del Cerro, J. Robots hiper-redundantes:
Clasificación, estado del arte y problemática. Revista Iberoamericana de Automática e In-
formática industrial 15, 4 (2018), 351–362.

[24] Londoño, T. J. C., Zapata, T. S. C., and CTMA, S. Solar mobile robot robot móvil
solar.

[25] Gómez, J. G. Robótica modular y locomoción: Aplicación a robots ápodos. Uni-


versidad Autónoma de Madrid, Thesis (2008).
CAPÍTULO 7. CONCLUSIONES 134

[26] Pareja Muñoz, J. Rediseño, sensorización y teleoperación mediante realidad au-


mentada de kyma, un robot manipulador blando.

[27] Raush, G., Todt, E., and Suárez, R. Clasificación y análisis de los métodos de
coordinación de múltiples robots

[28] Giraldo, L. F., Delgado, E., and Castellanos, G. Cinemática inversa de un bra-
zo robot utilizando algoritmos genéticos. Revista Avances en Sistemas e Informática 3, 1
(2006), 29–34

[29] Molina, J. K., Dominguez, M. J., Onate, C. U., and Salamea, H. T. Development of
a neural controller applied in a 5 dof robot redundant. IEEE Latin America Transactions
12, 2 (2014), 98–106.

[30] Baturone, A. O. Robótica: manipuladores y robots móviles. Marcombo, 2005

[31] Giraldo, L. F., Delgado, E., and Castellanos, G. Cinemática inversa de un bra-
zo robot utilizando algoritmos genéticos. Revista Avances en Sistemas e Informática 3, 1
(2006), 29–34

[32] Roldán, J., Garzon, M., De León Rivas, J., Garzón Ramos, D., Martín-Barrio,
A., Terrile, S., Garía Auñón, P., Ce-rro, J., Rossi, C., and Barrientos, A. Proyecto pric:
Protección robotizada de infraestructuras críticas. pp. 1–6.

[33] Poi, G., Scarabeo, C., and Allotta, B. Traveling wave locomotion hyper-redundant
mobile robot. In Proceedings. 1998 IEEE International Conference on Robotics and Au-
tomation (Cat. No. 98CH36146) (1998), vol. 1, IEEE, pp. 418–423.

[34] Shammas, E., Wolf, A., and Choset, H. Three degrees-of- freedom joint for spatial
hypern redundant robots. Mechanism and machine theory 41, 2 (2006), 170–190.
CAPÍTULO 7. CONCLUSIONES 135

[35] Chirikjian, G. S., and Burdick, J. W. A hyper-redundant manipulator. IEEE Ro-


botics and Automation Magazine 1, 4 (1994), 22–29.

[36] Buss, M., Hashimoto, H., and Moore, J. B. Grasping force optimization for multi-
fingered robot hands. In Proceedings of 1995 IEEE International Conference on Robotics
and Automation (1995), vol. 1, IEEE, pp. 1034–1039

[37] Delgado, A. Robótica inteligente. Revista de la Facultad de Medicina 47, 1 (1999),


32–34.

[38] Vergara Pulgar, A. A. Diseño y fabricación de robots modulares blandos

[39] Medina, J., and Vélez, P. “soft robotic”: Una nueva generación de robots. Maskana
5 (2014), 109–118.

[40] Valenzuela Coloma, H. R. M. Diseño y fabricación de robots modulares blandos


heterogéneos.

[41] Martínez, V. F. M. Planificacion de trayectorias en robots moviles.PhD thesis,


Universidad de Málaga, 1995.

[42] Queiruga, C. A., Tzancoff, B., Claudia, M., and López, F. Remotebot: una apli-
cación que combina robots y dispositivos móviles. In XV Workshop de Investigadores en
Ciencias de la Computación (2013).

[43] Krehbiel, J., Brace, L., Theis, R., Pinkus, W., and Kaplan, R. The dynamics ex-
plorer langmuir probe instrument. Space Science Instrumentation 5 (1981), 493–502.

[44] Pfeiffer, S. Guiado gestual de un robot humanoide mediante un sensor”kinect”


CAPÍTULO 7. CONCLUSIONES 136

[45] Sabanovic, S., Michalowski, M. P., and Simmons, R. Robots in the wild: Observing
human-robot social interaction outside the lab. In 9th IEEE International Workshop on
Advanced Motion Control, 2006. (2006), IEEE, pp. 596–601.

[46] Gockley, R., Bruce, A., Forlizzi, J., Michalowski, M., Mun- dell, A., Rosenthal, S.,
Sellner, B., Simmons, R., Snipes, K., Schultz, A. C., et al. Designing robots for long-term
social interaction. In 2005 IEEE/RSJ International Conference on Intelligent Robots and
Systems (2005), IEEE, pp. 1338–1343.

[47] Balch, T., and Hybinette, M. Social potentials for scalable multirobot formations.
In Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on
Robotics and Automation. Symposia Proceedings (Cat. No. 00CH37065) (2000), vol. 1,
IEEE, pp. 73–80.

[48] Kohonen, T., and Honkela, T. Kohonen network. Scholarpedia 2, 1 (2007), 1568

[49] Hardy, T. Ia (inteligencia artificial). Polis: Revista Latinoamericana, 2 (2001), 18.

[50] Rogers, A. Precision mechatronics lab robot development. PhD thesis, MS thesis,
Texas A and M University, 2007

[51] Meschino, G. J. Modelos Híbridos de Inteligencia Computacional aplicados en la


Segmentación de Imágenes de Resonancia Magnética. PhD thesis, PhD thesis, Tesis (Doc-
torado en Ingenierıa, orientación Electrónica). Mar . . . , 2008.

[52] Computacional, I. Inteligência computacional, 2013.

[53] Matich, D. J. Redes neuronales: Conceptos básicos y aplicaciones. Universidad


Tecnológica Nacional, México (2001).
CAPÍTULO 7. CONCLUSIONES 137

[54] Tanco, F. Introducción a las redes neuronales artificiales. Grupo de Inteligencia


Artificial (2003).

[55] Cuevas, F. Reconocimiento de caracteres con redes neuronales. Revista Investiga-


ción y Tecnología (2012), 30

[56] Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., Wheeler, R.,
and Ng, A. Y. Ros: an open-source robot operating system. In ICRA workshop on open
source software (2009), vol. 3, Kobe, Japan, p. 5.

[57] Mittler, R., Vanderauwera, S., Suzuki, N., Miller, G., Tog- netti, V. B., Vande-
poele, K., Gollery, M., Shulaev, V., and Van Breusegem, F. Ros signaling: the new wave?
Trends in plant science 16, 6 (2011), 300–309.

[58] D’Autréaux, B., and Toledano, M. B. Ros as signalling mole- cules: mechanisms
that generate specificity in ros homeostasis. Nature reviews Molecular cell biology 8, 10
(2007), 813

[59] Corvetto, M., Bravo, M. P., Montaña, R., Utili, F., Escu- dero, E., Boza, C., Varas,
J., and Dagnino, J. Simulación en educación médica: una sinopsis. Revista médica de Chile
141, 1 (2013),
70–79.

[60] Salinas, S. A., and Vivas Albán, O. A. Modelado, simulación y control del robot
para cirugía laparoscópica’lapbot’. Ingeniare. Revista chilena de ingeniería 17, 3 (2009),
317–328

[61] Ramírez, P. A. L., and Sosa, H. A. Aprendizaje de y con robótica, algunas expe-
riencias. Revista Educación 37, 1 (2013), 43–63.
CAPÍTULO 7. CONCLUSIONES 138

[62] Koenig, N., and Howard, A. Design and use paradigms for gazebo, an open-source
multi-robot simulator. In 2004 IEEE/RSJ Internatio- nal Conference on Intelligent Robots
and Systems (IROS)(IEEE Cat. No. 04CH37566) (2004), vol. 3, IEEE, pp. 2149–2154.

[63] Abadi, M., Barham, P., Chen, J., Chen, Z., Davis, A., Dean, J., Devin, M., Ghema-
wat, S., Irving, G., Isard, M., et al. Tensorflow: A system for large-scale machine learning.
In 12th USENIX Symposium on Operating Systems Design and Implemen- tation (OSDI
16) (2016), pp. 265–283.

[64] Chollet, F. Deep Learning mit Python und Keras: Das Praxis- Handbuch vom
Entwickler der Keras-Bibliothek. MITP-Verlags GmbH and Co. KG, 2018.

[65] Banik, M. S., and Couvillon Jr, L. A. Robotic endoscope with wireless interface,
Aug. 3 2004. US Patent 6,770,027.

[66] Ismail, I. N., Anuar, A., Sahari, K. S. M., Baharuddin, M. Z., Fairuz, M., Jalal,
A., and Saad, J. M. Development of in-pipe inspection robot: A review. In 2012 IEEE
Conference on Sustaina- ble Utilization and Development in Engineering and Technology
(STU- DENT) (2012), IEEE, pp. 310–315.

[67] Nishihara, T., Osuka, K., and Tamura, I. Development of a simulation model for
inner-gas-pipe inspection robot: Spring. In Pro- ceedings of SICE Annual Conference 2010
(2010), IEEE, pp. 902–904.

[68] Crespi, A., Badertscher, A., Guignard, A., and Ijspeert, A. J. Amphibot i: an amp-
hibious snake-like robot. Robotics and Autonomous Systems 50, 4 (2005), 163–175.

[69] Martínez, V. F. M. Planificacion de trayectorias en robots moviles. PhD thesis,


Universidad de Málaga, 1995.
CAPÍTULO 7. CONCLUSIONES 139

[70] Mishra, A., Mondini, A., Del Dottore, E., Sadeghi, A., Tra- macere, F., and Mazzo-
lai, B. Modular continuum manipulator: analysis and characterization of its basic module.
Biomimetics 3, 1 (2018), 3.

[71] Singer, P. W. Military robots and the laws of war. The New Atlantis, 23 (2009),
25–45.

[72] Sáenz, A., Bugarin, E., and Santibáñez, V. Modelado cinemáti- co y dinámico de
un robot móvil omnidireccional de 4 ruedas conside- rando dinámica de actuadores. Re-
positorio Tecnológico Nacional de México Instituto Tecnológico de la Laguna (2015).

[73] Izaguirre, E., Hernández, L., Rubio, E., Prieto, P. J., and Hernández, A. Control
desacoplado de plataforma neumática de 3- gdl utilizada como simulador de movimiento.
Revista Iberoamericana de Automática e Informática Industrial RIAI 8, 4 (2011), 345–356.

[74] Kitamura, S., and Oka, K. Recognition and cutting system of sweet pepper for
picking robot in greenhouse horticulture. In IEEE International Conference Mechatronics
and Automation, 2005 (2005), vol. 4, IEEE, pp. 1807–1812.

[75] Asua, E., Etxebarria, V., and Garcıa-Arribas, A. Diseño y control de actuadores
basados en materiales con memoria de for- ma. Departamento de Electricidad y Electró-
nica, Facultad de Ciencia y Tecnología, Universidad del Pais Vasco (UPV/EHU) (2007)

[76] Franco, M., Carlos, J., et al. Programación y control de procesos mediante robots
lego mindstorms nxt.

[78] Cúpich Rodríguez, M., and Elizondo Garza, F. J. Actuadores piezoeléctricos. In-
genierías 3, 6 (2000), 22–28
CAPÍTULO 7. CONCLUSIONES 140

[79] Zhao, L., Xiao, Q., Cao, Z., Huang, R., and Fu, Y. Adaptive neural network trac-
king control of snake-like robots via a deterministic learning approach. In 2017 IEEE In-
ternational Conference on Robotics and Biomimetics (ROBIO) (Dec 2017), pp. 2710–2715.

[80] León, J. F. Estudio de neuro-controladores evolutivos para navega- ción de robots


autónomos. Master of Systems Engineering, UNCPBA, Argentina (2005).

[81] Wu, X., and Ma, S. Cpg-based control of serpentine locomotion of a snake-like
robot. Mechatronics 20, 2 (2010), 326–334.

[82] Fernandez-Leon, J. A., Acosta, G. G., and Mayosky, M. A. Behavioral control th-
rough evolutionary neurocontrollers for autono- mous mobile robot navigation. Robotics
and Autonomous Systems 57, 4 (2009), 411–419

[83] Walker, I. D. Continuous backbone “continuum” robot manipula- tors. Isrn robo-
tics 2013 (2013).

[84] Lehmann, C. H. Geometría analítica. Traducido: Ruy Pinto da Silva Sieczkowski


9 (1980).

[84] Matich, D. J. Redes neuronales: Conceptos básicos y aplicaciones. Universidad


Tecnológica Nacional, México (2001).

[85] Brockett, R. W. Robotic manipulators and the product of exponen- tials formula.
In Mathematical theory of networks and systems (1984), Springer, pp. 120–129.

[86] Abreu Ugarte, J. E. Camagüey: estancia de santiago f. ramón y cajal. Revista


Archivo Médico de Camagüey 13, 6 (2009), 0–0

[87] Dhillon, B., and Yang, N. Reliability analysis of a repairable robot system. Journal
CAPÍTULO 7. CONCLUSIONES 141

of Quality in Maintenance Engineering 2, 2 (1996), 30–37

[88] Kohonen, T., and Honkela, T. Kohonen network. Scholarpedia 2, 1 (2007), 1568.

[89] Juan, R. Q., and Mario, C. M. Redes neuronales artificiales para el procesamiento
de imágenes, una revisión de la última década. RIEEandC, Revista de Ingenierıá Eléctrica,
Electrónica y Computación 9, 1 (2011), 7–16.

[90] Yao, X. Evolving artificial neural networks. Proceedings of the IEEE 87, 9 (1999),
1423–1447

[91] Porter, J. R., Takayama, T. K., and Defalco, A. J. Traumatic posterior urethral
injury and early realignment using magnetic urethral catheters. The Journal of urology
158, 2 (1997), 425–430.

[92] Castoldi, M. F. Algoritmo híbrido para projeto de controladores de amortecimento


de sistemas elétricos de potência utilizando algoritmos genéticos e gradiente descendente.
PhD thesis, Universidade de São Paulo, 2011.

[93] Garcia, A., Gonzalez, I., Colomo-Palacios, R., Lopez, J. L., and Ruiz, B. Metho-
dology for software development estimation optimization based on neural networks. IEEE
Latin America Transactions 9, 3 (2011), 384–398.

[94] Riedmiller, M., and Braun, H. A direct adaptive method for faster backpropaga-
tion learning: The rprop algorithm. In Proceedings of the IEEE international conference
on neural networks (1993), vol. 1993, San Francisco, pp. 586–591.

[95] Bentlin, M. R., de Barros Almeida, R. A. M., Coelho, K. I. R., Ribeiro, A. F.,
Siciliano, M. M., Suzuki, A., and Fortaleza, C. M. C. B. Perinatal transmission of yellow
fever, brazil, 2009. Emerging infectious diseases 17, 9 (2011), 1779.
CAPÍTULO 7. CONCLUSIONES 142

[96] Niku, S. B. Introduction to robotics: analysis, control, applications. John Wiley


and Sons, 2010.

[97] Reyes, F. Robótica-Control de robots manipuladores. Alfaomega grupo editor,


2011.

[98] Biagiotti, L., and Melchiorri, C. Trajectory planning for auto- matic machines and
robots. Springer Science and Business Media, 2008.

[99] Santibanez, V., Kelly, R., Zavala-Rio, A., and Parada, P. A new saturated nonli-
near pid global regulator for robot manipulators. IFAC Proceedings Volumes 41, 2 (2008),
11690–11695

[100] Biagiotti, L., and Melchiorri, C. Trajectory planning for auto- matic machines
and robots. Springer Science and Business Media, 2008.

[101] Wronka, C. M., and Dunnigan, M. W. Internet remote con- trol interface for a
multipurpose robotic arm. International Journal of Advanced Robotic Systems 3, 2 (2006),
27

[102] Nof, S. Y. Handbook of industrial robotics. John Wiley and Sons, 1999.

[103] Bentlin, M. R., de Barros Almeida, R. A. M., Coelho, K. I. R., Ribeiro, A. F.,
Siciliano, M. M., Suzuki, A., and For- taleza, C. M. C. B. Perinatal transmission of yellow
fever, brazil, 2009. Emerging infectious diseases 17, 9 (2011), 1779

[104] Florez Vergara, D. E., Castro Riveros, F. C., and Casti- llo Estepa, R. A. Planea-
cion y ejecucion de trayectorias en un robot Delta. Scientia et technica 22, 2 (June 2017),
186.
CAPÍTULO 7. CONCLUSIONES 143

[105] Transeth, A., Leine, R., Glocker, C., and Pettersen, K. 3-D Snake Robot Motion:
Nonsmooth Modeling, Simulations, and Experi- ments. IEEE Transactions on Robotics
24, 2 (Apr. 2008), 361–376.

[106] Transeth, A., Leine, R., Glocker, C., Pettersen, K., and Liljeback, P. Snake Robot
Obstacle-Aided Locomotion: Modeling, Simulations, and Experiments. IEEE Transactions
on Robotics 24, 1 (Feb. 2008), 88–104.

[107] Garcìa Haro, J. M., et al. Algoritmo de captura de movimien- to basado en vi-
sión por computador para la teleoperación de robots humanoides. Actas de las XXXVIII
Jornadas de Automática (2017).

[108] Brú, M. V. M., Fleites, G. L., and Barroso, E. M. Una com- paración de dos
métodos de gradiente en el escalamiento multidimen- sional. Ciencias Matemáticas 22, 1
(2004), 44–53.

[109] Gómez-Bravo, F., Cuesta, F., and Ollero, A. Planificación de trayectorias en ro-
bots móviles basada en técnicas de control de sistemas no holónomos. In Proceedings XXIV
Jornadas de Automática (2003).

[110] Batlle, V. F. Robots flexibles: Hacia una generación de robots con nuevas presta-
ciones. Revista Iberoamericana de Automática e In- formática Industrial 3, 3 (2009), 24–41.

[111] Abellanas, B., Abellanas, M., and Vilas, C. Vorest: Modeliza- ción de bosques me-
diante diagramas de voronoi. Actas XII Encuentro de Geometría Computacional (2007),
2249–256.

[112] Hwang, Y. K., and Ahuja, N. A potential field approach to path planning. IEEE
Transactions on Robotics and Automation 8, 1 (1992), 23–32.
CAPÍTULO 7. CONCLUSIONES 144

[113] Koren, Y., and Borenstein, J. Potential field methods and their inherent limita-
tions for mobile robot navigation. In Proceedings. 1991 IEEE International Conference on
Robotics and Automation (1991), IEEE, pp. 1398–1404.

[114] Yao, J., Lin, C., Xie, X., Wang, A. J., and Hung, C.-C. Path planning for virtual
human motion using improved a* star algorithm. In 2010 Seventh international conference
on information technology: new generations (2010), IEEE, pp. 1154–1158.

[115] Zavlanos, M. M., and Pappas, G. J. Potential fields for maintai- ning connectivity
of mobile networks. IEEE Transactions on robotics 23, 4 (2007), 812–816.

[116] Walker, I. D. Robot strings: long, thin continuum robots. In 2013 IEEE Aerospace
Conference (2013), Ieee, pp. 1–12.

[117] Guo, Y., Kang, R., Chen, L., and Dai, J. Dynamic modeling for a continuum ro-
bot with compliant structure. In ASME 2015 In- ternational Design Engineering Technical
Conferences and Computers and Information in Engineering Conference (2015), American
Society of Mechanical Engineers Digital Collection.

[114] Kang, R., Branson, D. T., Guglielmino, E., and Caldwell, D. G. Dynamic mo-
deling and control of an octopus inspired multiple continuum arm robot. Computers and
Mathematics with Applications 64, 5 (2012), 1004–1016

[115] Poi, G., Scarabeo, C., and Allotta, B. Traveling wave loco- motion hyper-redundant
mobile robot. In Proceedings. 1998 IEEE International Conference on Robotics and Au-
tomation (Cat. No. 98CH36146) (1998), vol. 1, IEEE, pp. 418–423

[116] Qi, P., Liu, H., Seneviratne, L., and Althoefer, K. Towards kinematic modeling of
a multi-dof tendon driven robotic catheter. In 2014 36th Annual International Conference
of the IEEE Engineering in Medicine and Biology Society (2014), IEEE, pp. 3009–3012.
CAPÍTULO 7. CONCLUSIONES 145

[117] Hirzinger, G., Brunner, B., Lampariello, R., Landzettel, K., Schott, J., and Stein-
metz, B.-M. Advances in orbital robotics. In Proceedings 2000 ICRA. Millennium Confe-
rence. IEEE International Conference on Robotics and Automation. Symposia Proceedings
(Cat. No. 00CH37065) (2000), vol. 1, IEEE, pp. 898–907.

[118] Transeth, A., Leine, R., Glocker, C., and Pettersen, K. 3-D Snake Robot Motion:
Nonsmooth Modeling, Simulations, and Experi- ments. IEEE Transactions on Robotics
24, 2 (Apr. 2008), 361–376.

[119] Transeth, A., Leine, R., Glocker, C., and Pettersen, K. 3-D Snake Robot Motion:
Nonsmooth Modeling, Simulations, and Experi- ments. IEEE Transactions on Robotics
24, 2 (Apr. 2008), 361–376.

[120] T. Salimans and D. P. Kingma, “Weight normalization: A simple reparameteriza-


tion to accelerate training of deep neural networks,” arXiv preprint arXiv:1602.07868, 2016.

[121] . Bengio, J. Louradour, R. Collobert, and J. Weston, “Curriculum learning,” in


Proceedings of the 26th annual international conference on machine learning, pp. 41–48,
ACM, 2009.

[122] B. C. Stadie, S. Levine, and P. Abbeel, “Incentivizing exploration in reinforcement


learning with deep predictive models,” arXiv preprint arXiv:1507.00814, 2015.

[123] Salinas, J. Modelos emergentes en entornos virtuales de aprendizaje. In Congresso


Internacional Edutec (2009), p. 18.

[124] Castro, C. Differential Kinematics of a Multisection–Robot. 5.

[125] Prautzsch, H., Boehm, W., and Paluszny, M. Métodos de Bézier y B-splines. KIT
CAPÍTULO 7. CONCLUSIONES 146

Scientific Publishing, 2005.

[126] Vasilescu, M., and Terzopoulos, D. Adaptive meshes and shells: Irregular trian-
gulation, discontinuities, and hierarchical subdivision. In Proceedings 1992 IEEE Compu-
ter Society Conference on Computer Vision and Pattern Recognition (1992), IEEE, pp.
829–832

[127] Amari, S.-i. Backpropagation and stochastic gradient descent method. Neurocom-
puting 5, 4-5 (1993), 185–196.

[128] Schmidhuber, J. Deep learning in neural networks: An overview. Neural networks


61 (2015), 85 117.

[129] Hawkins, D. M. The problem of overfitting. Journal of chemical information and


computer sciences 44, 1 (2004), 1–12.

[130] López Garcıá, D. A., et al. Nuevas aportaciones en algoritmos de planificación


para la ejecución de maniobras en robots autónomos no holónomos. 2011.

[131] J. Minguez, J. Osuna y L. Montano, «A "divide and conquer"strategy based


on situations to achieve reactive collision avoidance in troublesome scenarios» de IEEE
International Conference on Robotics and Automation, New Orleans, 2004.
ANEXOS

7.1. Recursos y presupuesto

147
CAPÍTULO 7. CONCLUSIONES 148
CAPÍTULO 7. CONCLUSIONES 149

7.2. Curvas para el entrenamiento de la red neuronal


CAPÍTULO 7. CONCLUSIONES 150

7.3. DataSet de la cinematica del robot continuo


Estos son los datos obtenidos por medio del algoritmo de screw para la cinemática del
manipulador continuo de ocho eslabones
CAPÍTULO 7. CONCLUSIONES 151
CAPÍTULO 7. CONCLUSIONES 152

7.4. DataSet de la planeación de trayectorias para el


manipulador continuo
CAPÍTULO 7. CONCLUSIONES 153

También podría gustarte