Logo Studenta

CaravanasLuisFdo-Tesis-Final

¡Este material tiene más páginas!

Vista previa del material en texto

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY 
CAMPUS TOLUCA 
 
 
 
 
Simulación para la navegación en caravana de vehículos autónomos 
en ROS 
 
 
TESIS PRESENTADA COMO REQUISITO PARA OBTENER EL GRADO ACADÉMICO DE 
MAESTRO EN INGENIERÍA AUTOMOTRIZ 
 
 
 
LUIS FERNANDO ORTIZ VALDEZ 
 
 
 
Asesor: Dr. ALFREDO SANTANA DIAZ 
Co-asesor: Dr. VÍCTOR MANUEL CEDEÑO CAMPOS 
 
 
 
Comité de tesis: Dr. HUGO G. GONZÁLEZ HERNÁNDEZ 
 Dr. JORGE ANTONIO REYES AVENDAÑO 
 Dr. CARLOS ALBERTO BALBUENA CAMPUZANO 
 
 
 
 
Toluca de Lerdo, Edo. Méx., diciembre de 2021. 
 
 
 
2 
 
 
 
DEDICATORIA 
 
Esta tesis va dedicada a todas las personas, que me han otorgado su 
apoyo y soporte, sobre todo a nivel emocional para la culminación de este 
trabajo, y de este ciclo de mi vida dentro la maestría. 
 
A mis padres María Luisa y Fernando, por todo su amor, apoyo y cariño, 
que me han sido de suma importancia a lo largo, no solo de este proceso, 
sino durante toda mi vida, aconsejando y, haciéndome sentir siempre 
acompañado. 
 
A mis hermanas Ana Claudia y Brenda, por estar siempre presentes 
brindándome su apoyo y su cariño. 
 
 
 
3 
 
 
AGRADECIMIENTOS 
 
Agradezco a todas y cada una de las personas que ayudaron a hacer realidad este 
proyecto, brindándome todo tipo de apoyo, consejos, sugerencias y comentarios 
que fueron enriqueciendo y mejorando el mismo. 
 
Al CONACYT, por el apoyo económico otorgado durante toda mi estancia como 
estudiante e investigador. 
 
Al Dr. Alfredo Santana Diaz y al Dr. Víctor Manuel Cedeño Campos, por su apoyo, 
paciencia, aportes e interés en el proyecto, los cuales hicieron que este trabajo fuera 
culminado con mucho éxito. 
 
A todos mis compañeros de la Maestría y del CIMA, que con su apoyo y aporte 
ayudaron a hacer posible completar este proyecto. 
 
 
4 
 
 
 
 
 
 
RESUMEN 
 
La creciente demanda de bienes y servicios ha impulsado la necesidad de automatizar y mejorar 
los procesos de transporte de materiales y mercancías dentro de almacenes, edificios, ciudades y 
fábricas, buscando la reducción de costos, tiempos de entrega, consumo de combustible y aumento 
de capacidad de carga. La automatización de procesos de transporte de materiales dentro de 
infraestructura como son almacenes y fabricas se ha hecho principalmente con vehículos de guiado 
automático o comúnmente conocidos por sus siglas en inglés AGV (Automated Guided Vehicle). 
 
Mediante la implementación de estrategias de manejo grupal para los vehículos, como las 
caravanas de vehículos (grupo de vehículos que viajan guiados por un vehículo guía o líder) o 
platooning, que permiten, además, incorporar o desincorporar vehículos a la caravana principal. Se 
han buscado optimizar los procesos de logística. Para ello los vehículos de guiado automático 
cuentan actualmente con una variedad de sensores LIDAR, ultrasónico y de visión artificial, junto 
con sofisticados sistemas de odometría y comunicación vehículo a vehículo (V2V). 
 
Estos tipos de sensores y sistemas requiere la instalación de nueva infraestructura en los sitios de 
implementación, que aunado al costo de los sensores mismos se convierte en una limitante para la 
implementación de los AGVs. 
 
En este trabajo se desarrolla una simulación mediante el meta sistema operativo ROS y el simulador 
3D Gazebo. En estos simuladores se simulan y prueban una caravana de tres vehículos con cámaras 
monoculares, odometría y marcadores fiduciarios para la navegación en caravana dentro de tres 
ambientes distintos: un pasillo de hospital, un almacén y un laboratorio. También, se implementan 
algoritmos para la detección y el control lateral y longitudinal de los vehículos AGV seguidores 
mediante la información obtenida de los marcadores fiduciarios montados en la parte posterior de 
los vehículos AGV. Por último, se verifica la capacidad del sistema para mantener la caravana 
5 
 
 
durante el trayecto, y se implementa un algoritmo adicional para permitir la unión y desunión de 
los últimos vehículos AGV en la caravana, así como la simulación del proceso de carga o descarga. 
 
6 
 
 
 
 
 
CONTENIDO 
 
 
1. INTRODUCCIÓN. ................................................................................................................. 14 
1.1. MOTIVACIÓN. .............................................................................................................. 14 
1.2. OBJETIVOS. .................................................................................................................. 16 
2. ESTADO DEL ARTE. ............................................................................................................ 17 
2.1. DEFINICIÓN DE LA NAVEGACIÓN EN CARAVANA. ........................................... 19 
2.2. BENEFICIOS DE LA NAVEGACIÓN EN CARAVANA. ........................................... 20 
2.3. PROYECTOS E INVESTIGACIÓN DE LA NAVEGACIÓN EN CARAVANA. ........ 21 
2.4. NAVEGACIÓN EN CARAVANA EN AGVS. .............................................................. 27 
3. MARCO TEÓRICO. ............................................................................................................... 29 
3.1. ROBOT OPERATING SYSTEM (ROS). ....................................................................... 29 
3.1.1. VENTAJAS DE ROS. ............................................................................................. 30 
3.1.2. ESTRUCTURA Y CONCEPTOS BÁSICOS DE ROS. ......................................... 30 
3.1.2.1. Maestro (Master). ................................................................................................. 32 
3.1.2.2. Nodos. .................................................................................................................. 32 
3.1.2.3. Mensajes. ............................................................................................................. 32 
3.1.2.4. Tópicos. ................................................................................................................ 33 
3.1.2.5. Servicios. .............................................................................................................. 33 
3.1.2.6. Servidor de parámetros. ....................................................................................... 33 
3.2. GAZEBO. ....................................................................................................................... 33 
3.3. MARCADORES FIDUCIARIOS. .................................................................................. 35 
3.3.1. MARCADORES FIDUCIARIOS COMUNES. ..................................................... 35 
3.3.2. VENTAJAS Y DESVENTAJAS DE DISTINTOS MARCADORES 
FIDUCIARIOS....................................................................................................................... 36 
3.3.2.1. Funcionamiento básico. ....................................................................................... 38 
7 
 
 
4. METODOLOGÍA. .................................................................................................................. 39 
4.1. MODELOS 3D. .............................................................................................................. 40 
4.1.1. MODELADO DE VEHÍCULOS AGV. .................................................................. 40 
4.1.2. MODELADO DE MARCADORES FIDUCIARIOS. ............................................ 42 
4.1.3. MODELADO DE ESCENARIOS. ......................................................................... 45 
4.1.4. MODELADO DE SENSORES. .............................................................................. 48 
4.2. SIMULACIÓN MULTI VEHÍCULO. ............................................................................ 49 
4.3. CALIBRACIÓN DE LA CÁMARA. .............................................................................. 52 
4.3.1. PROCESO DE CALIBRACIÓN............................................................................ 54 
4.4. ESTIMACIÓN DE POSICIÓN Y ORIENTACIÓN. ...................................................... 56 
4.4.1. ÁNGULOS DE EULER. ......................................................................................... 58 
4.4.2. ALGORITMO PARA DETECCIÓN Y ESTIMACIÓN DE POSICIÓN Y 
ORIENTACIÓN..................................................................................................................... 60 
4.5. CONTROLADOR LONGITUDINAL Y LATERAL. .................................................... 64 
4.6. NAVEGACIÓN AUTÓNOMA. ..................................................................................... 67 
4.6.1. MAPEO DE LOS ESCENARIOS. .......................................................................... 68 
4.6.2. CONFIGURACIÓN Y AJUSTE DEL PAQUETE NAVIGATION STACK. ....... 70 
4.6.2.1. Localización mediante el paquete AMCL. .......................................................... 70 
4.6.2.2. Global y Local Costmaps. .................................................................................... 72 
4.6.2.3. Global y Local Path Planner. ............................................................................... 74 
4.7. CONTROLADOR DEL AGV LÍDER. ........................................................................... 77 
4.7.1. UNIÓN Y DESUNIÓN DE AGVs. ........................................................................ 87 
4.7.1.1. Unión de AGVs. .................................................................................................. 87 
4.7.1.2. Desunión de AGVs. ............................................................................................. 90 
5. PRUEBAS. .............................................................................................................................. 92 
5.1. ERROR EN LA ESTIMACIÓN DE POSICIÓN Y ORIENTACIÓN. ........................... 92 
5.2. SELECCIÓN DEL MODELO DE AGV PARA LA CARAVANA. .............................. 95 
5.3. CIRCUITO DE PRUEBA. .............................................................................................. 99 
5.4. PRUEBAS EN LAS ESCENARIOS. ............................................................................ 101 
6. CONCLUSIONES. ............................................................................................................... 108 
6.1.1. TRABAJO A FUTURO. ....................................................................................... 110 
8 
 
 
7. REFERENCIAS. ................................................................................................................... 112 
ANEXOS. ..................................................................................................................................... 121 
ANEXO A. INSTALACIÓN DE DEPENDENCIA ADICIONALES PARA ROS. ................... 122 
ANEXO B. INSTALACIÓN Y CONFIGURACIÓN DE PROYECTO. .................................... 123 
ANEXO C. ESTRUCTURA DE CARPETAS Y ARCHIVOS DEL PROYECTO. ................... 124 
ANEXO D. DISEÑO DE LOS MARCADORES FIDUCIARIOS EN BLENDER. ................... 129 
ANEXO E. GENERACIÓN DE MODELOS EN FORMATO SDF PARA LOS MARCADORES 
FIDUCIARIOS. ............................................................................................................................ 139 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9 
 
 
LISTA DE FIGURAS 
 
Figura 1.1. AGVs para transporte horizontal en puertos marítimos. ............................................. 16 
Figura 2.1. Caravana de camiones Actros en la pista de pruebas. ................................................. 24 
Figura 2.2. Caravana de camiones del proyecto ENSEMBLE. ..................................................... 25 
Figura 3.1. Últimas versiones de ROS. ......................................................................................... 31 
Figura 3.2. Interfaz gráfica de Gazebo Simulator. ........................................................................ 34 
Figura 3.3. Ejemplos de marcadores fiduciarios. .......................................................................... 36 
Figura 3.4. Marcador con celdas. ................................................................................................. 38 
Figura 4.1. Modelo modificado. .................................................................................................... 41 
Figura 4.2. Marcadores ArUco en el AGV .................................................................................... 41 
Figura 4.3. Dimensiones de los AGVs. ......................................................................................... 42 
Figura 4.4. Marcador en estación de carga/descarga. .................................................................... 43 
Figura 4.5. Marcador ArUco con ID 0. ......................................................................................... 44 
Figura 4.6. Asignando imagen como textura. ................................................................................ 44 
Figura 4.7. Inserción del marcador en el modelo del AGV. .......................................................... 45 
Figura 4.8. Mundos en Gazebo, a) Laboratorio, b) Pasillo de Hospital, c) Almacén.................... 46 
Figura 4.9. Dimensiones del Pasillo de Hospital. .......................................................................... 46 
Figura 4.10. Dimensiones del Almacén......................................................................................... 47 
Figura 4.11. Dimensiones del Laboratorio. ................................................................................... 47 
Figura 4.12. Cámara Raspberry Pi V1 ........................................................................................... 48 
Figura 4.13. Sensor Hokuyo UTM-30LX ..................................................................................... 48 
Figura 4.14. Interconexión entre tópicos e independencia de los nodos de los AGVs ................. 50 
Figura 4.15. Configuración para simulación multi vehículo. ........................................................ 51 
Figura 4.16. Ejemplos de distorsión. ............................................................................................. 53 
Figura 4.17. Patrón tablero de ajedrez. .......................................................................................... 54 
Figura 4.18. Progreso de la toma de muestras. .............................................................................. 55 
Figura 4.19. Calibración mediante tablero de ajedrez terminada. ................................................. 55 
Figura 4.20. Problema de ambigüedad al estimar la estimación de posición. .............................. 57 
Figura 4.21. Problema de Perspectiva-n-Punto, y los marcos de coordenadas de la cámara y el 
marcador fiduciario ArUco. ........................................................................................................... 58 
file:///E:/Fer/Downloads/Borrador_TesisV5_2%20revisado%2016%20de%20noviembre%202021.docx%23_Toc88037663
file:///E:/Fer/Downloads/Borrador_TesisV5_2%20revisado%2016%20de%20noviembre%202021.docx%23_Toc88037664
10 
 
 
Figura 4.22. Los ejes y los ángulos de Euler en el marcador ArUco. ........................................... 59 
Figura 4.23. Proceso de intercambio de imágenes entre ROS y OpenCV. ................................... 60 
Figura 4.24. Lista de parámetros obtenidos del marcador fiduciario. ........................................... 62 
Figura 4.25. Diagrama de bloques del controlador longitudinal y lateral. .................................... 64 
Figura 4.26. Función rampa para simular la aceleración. .............................................................. 66 
Figura 4.27. Componentes para la configuración del Navigation Stack. ..................................... 67Figura 4.28. Mapeo de los escenarios mediante Hector-SLAM. .................................................. 69 
Figura 4.29. Mapas de los escenarios creados mediante Hector-SLAM, a) Almacén, b) Pasillo de 
Hospital, c) Laboratorio. ................................................................................................................ 69 
Figura 4.30. Parámetros iniciales para el paquete AMCL. ............................................................ 71 
Figura 4.31. Parámetros del modelo de medición (LIDAR). ........................................................ 71 
Figura 4.32. Parámetros del modelo de movimiento (odometría). ................................................ 72 
Figura 4.33. Parámetros comunes de la capa de inflación............................................................. 73 
Figura 4.34. Parámetros de configuración para el GlobalPlanner. ................................................ 75 
Figura 4.35. Configuración de la optimización paralela de trayectorias. ...................................... 76 
Figura 4.36. Tolerancias para indicar la llegada al objetivo. ......................................................... 76 
Figura 4.37. Parámetros de velocidades y aceleraciones para el AGV líder. ................................ 76 
Figura 4.38. Navegando hacia una nueva estación. ....................................................................... 77 
Figura 4.39. Centralización de la comunicación entre AGVs ....................................................... 79 
Figura 4.40. Comunicación entre el publicador de objetivos y el AGV líder. .............................. 80 
Figura 4.41. Ubicación de las estaciones en el almacén. ............................................................... 82 
Figura 4.42. Ubicación de las estaciones en el laboratorio. .......................................................... 83 
Figura 4.43. Ubicación de las estaciones en el hospital. ............................................................... 84 
Figura 4.44. Máquina de estados para el controlador del AGV líder. ........................................... 86 
Figura 4.45. Cámara color azul del AGV. ..................................................................................... 88 
Figura 4.46. Detección de la cámara azul en el AGV en el proceso de unión. ............................. 90 
Figura 4.47. Desunión del AGV de la caravana al viajar a las coordenadas de salida. ................. 91 
Figura 5.1. Prueba de estimación de distancia y orientación......................................................... 93 
Figura 5.2.Variación de la distancia estimada por la cámara. ....................................................... 94 
Figura 5.3. Prueba en escenario sin obstáculo para el caso dinámico. .......................................... 97 
Figura 5.4. Circuito de pruebas para el caso dinámico. ................................................................. 98 
file:///E:/Fer/Downloads/Borrador_TesisV5_2%20revisado%2016%20de%20noviembre%202021.docx%23_Toc88037695
11 
 
 
Figura 5.5. Circuito de pruebas con los principales ángulos. ........................................................ 99 
Figura 5.6. Vueltas exitosas versus variaciones de la distancia entre vehículos y velocidad máxima 
del AGV líder. ............................................................................................................................. 100 
Figura 5.7. Ruta de la caravana en el hospital. comienza en el uno y termina en el once........... 102 
Figura 5.8. Ruta de la caravana en el laboratorio. comienza en el uno y termina en el seis. ...... 103 
Figura 5.9. Ruta de la caravana en el almacén. comienza en el uno y termina en el seis. .......... 103 
Figura 5.10. Resultados de las pruebas en el almacén................................................................. 104 
Figura 5.11. Resultados de las pruebas en el Laboratorio. .......................................................... 105 
Figura 5.12. Resultados de las pruebas en el Hospital ................................................................ 105 
Figura 5.13. Caravana de AGVs atascada en la vuelta en U. ...................................................... 106 
Figura 5.14. Cuarto AGV colisionando con caja de madera. ...................................................... 107 
Figura 5.15. Caravana de tres AGVs dando una vuelta en U en el laboratorio. .......................... 108 
Figura C.0.1. Estructura de carpetas del proyecto. ...................................................................... 124 
Figura C.0.2. Archivos en la carpeta config. ............................................................................... 124 
Figura C.0.3. Archivos en la carpeta info. ................................................................................... 125 
Figura C.0.4. Archivos en la carpeta launch................................................................................ 125 
Figura C.0.5. Archivos obtenidos de los mapeados de escenarios. ............................................. 126 
Figura C.0.6. Archivos de texturas de los marcadores fiduciarios. ............................................. 126 
Figura C.0.7. Archivos URDF de los modelos 3D. ..................................................................... 127 
Figura C.0.8. Mensajes generados para la simulación. ............................................................... 127 
Figura C.0.9. Archivos de configuración para RViz. .................................................................. 127 
Figura C.0.10. Scripts en lenguaje Python para la simulación. ................................................... 128 
Figura C.0.11. Archivos de los escenarios. ................................................................................. 128 
Figura D.0.1. Cubo Pantalla inicial de Blender. .......................................................................... 129 
Figura D.0.2. Cambio de unidades a Metros en la pestaña Scene. .............................................. 130 
Figura D.0.3. Cubo con dimensiones de 1x1x1m........................................................................ 130 
Figura D.0.4. Dimensiones finales para el marcador fiduciario. ................................................. 131 
Figura D.0.5. Botón para eliminar el material seleccionado. ...................................................... 131 
Figura D.0.6. Genere un nuevo material. .................................................................................... 132 
Figura D.0.7. Genere una nueva textura. ..................................................................................... 132 
Figura D.0.8. Carga de la imagen del marcador fiduciario. ........................................................ 133 
12 
 
 
Figura D.0.9. Cambio de perspectiva. ......................................................................................... 133 
Figura D.0.10. Selección de la imagen. ....................................................................................... 134 
Figura D.0.11. Imagen carga y cubo seleccionado. ..................................................................... 134 
Figura D.0.12. Operación de Unwrap para ubicar la imagen en cada cara del cubo. ................. 135 
Figura D.0.13. Retorno a la perspectiva inicial. .......................................................................... 135 
Figura D.0.14. Visualización en Texture. .................................................................................... 136 
Figura D.0.15. Marcador con la textura en todas las caras. ......................................................... 136 
Figura D.0.16. Eliminar la cámara y la lámpara. ......................................................................... 137 
Figura D.0.17. Exportar en formato Collada. .............................................................................. 137 
Figura D.0.18. Configuraciónpara la exportación y archivos finales obtenidos. ....................... 138 
Figura D.0.19. Archivos finales obtenidos. ................................................................................. 138 
Figura E.0.1. Dimensiones de los marcadores a generar. ............................................................ 139 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
 
 
 
LISTA DE TABLAS 
 
Tabla 1. Ventajas y desventajas de distintos marcadores fiduciarios. ........................................... 37 
 Tabla 2. Características de la cámara ........................................................................................... 48 
Tabla 3. Características del sensor LIDAR. .................................................................................. 48 
Tabla 4. Vector de distorsión de la cámara simulada. ................................................................... 56 
Tabla 5. Matriz intrínseca de la cámara simulada. ........................................................................ 56 
Tabla 6. División de IDs en rango y su función asociada. ............................................................ 81 
Tabla 7. Coordenadas de las estaciones en el Almacén. ............................................................... 81 
Tabla 8. Coordenadas de las estaciones en el Laboratorio. ........................................................... 82 
Tabla 9. Coordenadas de las estaciones en el Hospital. ................................................................ 83 
Tabla 10. Distancia real y distancia promedio medida mediante la cámara y el marcador fiduciario 
ArUco. ........................................................................................................................................... 92 
Tabla 11. Error en la estimación de la orientación de los marcadores fiduciarios ArUco. ........... 94 
Tabla 12. Pruebas del modelo de AGV con un solo marcador...................................................... 96 
Tabla 13. Pruebas del modelo de AGV con la configuración trapezoidal de marcadores. ........... 97 
 
 
14 
 
 
 
 
 
1. INTRODUCCIÓN. 
 
 
 
En el presente capítulo, se hará la motivación por la cual se ha desarrollado el presente trabajo, a 
su vez se definirán los objetivos que se han buscado alcanzar con la metodología desarrollada para 
el trabajo. 
 
 
 
1.1. MOTIVACIÓN. 
 
 
Con el surgimiento y auge actual de la industria 4.0, en conjunto con los vehículos autónomos y el 
continuo crecimiento de la demanda de bienes y servicios a nivel mundial. La automatización de 
los sistemas de producción y transporte ha tomado una importancia cada vez mayor dentro diversas 
áreas como por ejemplo de alimentos, logística, manufactura, farmacéutica y salud. En estas áreas 
los vehículos de guiado automático o comúnmente conocidos por sus siglas en inglés AGV 
(Automated Guided Vehicle), han tomado un rol importante en el transporte de materiales y 
mercancías dentro de almacenes, edificios, ciudades y fábricas, proporcionando una mayor 
flexibilidad y eficiencia y una reducción de costos tanto para el fabricante como para el 
consumidor. 
 
La adopción de AGV por parte de las industrias y los diferentes sectores de bienes y servicios 
alrededor del mundo se ha incrementado de forma sustancial en la última década; una muestra de 
ello es el crecimiento del mercado en países como China, donde el valor de mercado de los AGV 
en el año 2016, ascendía a 75.8 billones de yuanes (11.778 billones de dólares), para alcanzar un 
valor esperado de 260 billones de yuanes (40.4 billones de dólares) en el año 2022, con un 
crecimiento promedio del 40% cada año en ventas AGV desde el año 2016 [1]. 
15 
 
 
 
Con una mayor presencia de vehículos autónomos y los AGV, ha surgido el interés y la necesidad 
de maximizar la eficiencia energética de los vehículos, disminuir el congestionamiento de las 
vialidades y aumentar la capacidad de los transportes de carga para el traslado de mercancías o 
materiales. La navegación en caravana, si bien no es un método nuevo ha ganado importancia 
gracias a los beneficios que otorga para optimizar la capacidad de tránsito en las de la 
infraestructura de transporte, ayudar a reducir el consumo de combustible, y mejorar el coeficiente 
aerodinámico. En el último aspecto, se ha llegado a obtener una reducción de hasta el 15% en el 
consumo de combustible en caravanas con distancias entre vehículos de 8 metros, donde el 
vehículo líder fue un vehículo pesado, como un camión de carga [2]. Sin embargo, los beneficios 
de la navegación en caravana no se limitan a vehículos pesados y de largo trayecto, ya que de igual 
forma los AGVs pueden verse en gran medida beneficiados al viajar en caravanas, aún en distancias 
cortas. 
 
Si bien, la navegación en caravana mediante vehículos AGV no ha sido tan extendida como en los 
vehículos pesados de carga. Cada vez existe un mayor interés en los beneficios que pueden otorgar 
las caravanas de AGVs. Dentro de las áreas donde las caravanas de AGVs han ido ganando 
importancia son en el transporte y entrega de mercancías dentro de las ciudades, mediante 
vehículos eléctricos autónomos compactos, que utilicen la infraestructura de transporte público ya 
existente y que forman caravanas con los vehículos del transporte público hasta su lugar de destino 
[3]. Otra área es en puertos marítimos de carga y descarga de contenedores [4], dónde disminuir 
los tiempos de carga, descarga y de transporte son esenciales. 
16 
 
 
 
 
Figura 1.1. AGVs para transporte horizontal en puertos marítimos. [4] 
 
 
1.2. OBJETIVOS. 
 
 
1.2.1. OBJETIVO GENERAL. 
 
Diseñar y simular una caravana de vehículos AGV, mediante el sistema operativo ROS y el 
simulador Gazebo. Los vehículos seguidores implementarán sensores de bajo costo para visión 
artificial, odometría simulada y marcadores fiduciarios, permitiendo el seguimiento de la caravana 
en los entornos simulados, y la unión y desunión de vehículos de la caravana en las estaciones 
designadas. 
 
 
1.2.2. OBJETIVOS ESPECÍFICOS. 
 
• Desarrollar los modelos 3D de los vehículos y los escenarios para la simulación en Gazebo. 
• Integrar a los escenarios y a los modelos de los vehículos, marcadores fiduciarios ArUco. 
17 
 
 
• Configurar ROS para permitir una simulación multi vehículo. 
• Implementar algoritmo de detección y estimación de posición para los marcadores ArUco, 
mediante el uso de una cámara monocular. 
• Desarrollar controlador longitudinal y lateral mediante un control PID, para los vehículos 
seguidores. 
• Implementar algoritmos de Local y Global Path Planning para el vehículo líder. 
• Implementar algoritmo para unión y desunión de los vehículos seguidores. 
• Verificar la capacidad de la caravana para mantener la formación en los escenarios 
construidos y en un entorno vacío. 
 
Con los objetivos y la motivación planteados para el presente trabajo se ha realizado una revisión 
del estado del arte de la navegación en caravana, tanto para vehículos de carga, como para los 
vehículos AGV. El objetivo de esta revisión es poner en contexto las contribuciones que el presente 
trabajo brinda en el control de caravanas de AGVs mediante visión artificial y marcadores 
fiduciarios para vehículos con sensores de bajo costo. 
 
 
 
2. ESTADO DEL ARTE. 
 
 
En el presente capitulo se realiza una revisión del estado del arte de la navegación en caravana. Se 
proporciona una definición más detallada de la navegación en carava, así como los beneficios que 
puede brindar y los principales proyectos desarrollados para el estudio de la navegación en 
caravana. De igual forma se hace una revisión de algunas investigaciones enfocadas a los sistemas 
de control, uso de visión artificial y a plataforma de prueba a escala, así como la aplicación de la 
navegación en caravana en los AGVs. 
 
La navegación autónoma esla tecnología de vanguardia en las áreas de transporte tanto a nivel de 
mercancías como de personal. En la actualidad la Sociedad de Ingenieros de Automoción (SAE) 
18 
 
 
ha venido definido los seis niveles para la conducción autónoma a través de la norma SAE J3016 
[5]. Estos niveles de automatización son: 
 
• Nivel 0, donde el vehículo no posee automatización y todas las tareas son realizadas por el 
conductor. 
• Nivel 1, el vehículo es controlado principalmente por el conductor, aunque algunas 
características para la supervisión y apoyo al conductor pueden ser incluidas. 
• Nivel 2, el vehículo cuenta con funciones que permiten el control de la aceleración, frenado 
y dirección, sin embargo, el conductor debe seguir supervisando las tareas de conducción 
y en el entorno. 
• Nivel 3, cuenta con sistemas avanzados de asistencia al conductor o por sus siglas en ingles 
ADAS (Advanced Driver Assist Systems), que puede realizar las tareas de conducción en 
circunstancias específicas. El conductor aún es necesario para retomar el control del 
vehículo en caso de que el sistema ADAS lo indique. 
• Nivel 4, cuenta con un sistema ADAS con el cual el vehículo puede realizar todas las tareas 
de la conducción, además de supervisar su alrededor al conducir en ciertas circunstancias. 
El conductor puede tomar de forma opcional el control del vehículo. 
• Nivel 5, el vehículo cuenta con un sistema ADAS capaz de realizar todas las tareas de 
conducción en cualquier circunstancia. Los pasajeros ya no necesitan involucrarse en la 
conducción del vehículo. 
 
En la actualidad las empresas siguen trabajando para lograr desarrollar vehículos con un nivel cinco 
de autonomía. Los vehículos autónomos prometen traer importantes beneficios a la sociedad, desde 
mejorar la seguridad en los caminos y carreteras, mejorar la eficiencia y reducir el tráfico de las 
grandes ciudades, como también mejorar la movilidad, permitiendo que todo tipo de personas con 
o sin discapacidades, puedan desplazarse sin inconvenientes a sus destinos, además de otorgar 
también beneficios a nivel económico y ambiental [6]. 
 
El desarrollo y popularización de la navegación autónoma en los vehículos ha llevado a que nuevas 
tecnologías de colaboración y cooperación entre vehículos tengan mayor importancia en la última 
década. Consecuentemente, se ha potenciado y obtenido verdaderos beneficios de los vehículos 
19 
 
 
autónomos. Métodos como la concentración de carga [7] o el viaje compartido [8], son formas de 
optimizar el transporte de mercancías y de personas. Teniendo en común que ambos métodos 
buscan reducir costos tanto en la mano de obra, como en el combustible, y reducir a su vez la 
congestión de las vialidades. Sin embargo, estos métodos poseen limitantes ligadas a la propia 
capacidad de carga de los vehículos, siendo métodos fijos y con poca escalabilidad por sí solos [9]. 
Por otro lado, la navegación en caravana o Platooning, es una tecnología más flexible y económica, 
que a su vez puede ser vista como una extensión que permite incrementar las capacidades de la 
concentración de carga o del viaje compartido, al ya no estar limitados a un solo vehículo. 
 
 
 
2.1. DEFINICIÓN DE LA NAVEGACIÓN EN CARAVANA. 
 
 
El concepto y estudio de la navegación en caravana no es nuevo, ya que se puede rastrear su estudio 
hasta mediados de los años 80, con el proyecto ARAMIS, que se basaba en una caravana de 25 
vehículos compactos que circulaban a una velocidad de 80km/h con distancias entre vehículos de 
30 cm [10], y al proyecto desarrollado por Volkswagen en asociación con el programa 
PROMETHEUS, en 1986, donde se demostró una caravana de vehículos capaces de mantener un 
control lateral y longitudinal de forma autónoma [10]. 
 
Sin embargo, la literatura ofrece diferentes definiciones del término Platooning o navegación en 
caravana. Donde la mayoría de las definiciones son similares entre sí, coincidiendo por ejemplo 
con la dada por Hall y Chin [11], que lo definen como, “vehículos que circulan por las autopistas 
en grupos poco espaciados”. Sin embargo, las definiciones dejan al margen los aspectos básicos 
que definen de forma más clara a la navegación en caravana. Siendo la definición más acertada la 
dada por el proyecto SARTRE [12], que define a la caravana como, “un conjunto de vehículos 
liderados por un vehículo pesado conducido manualmente. Los vehículos que van detrás siguen al 
vehículo líder automáticamente; tanto lateral como longitudinalmente. Los vehículos pueden 
unirse o abandonar el pelotón de forma automática, por ejemplo, al llegar al destino deseado. “ 
 
20 
 
 
En la navegación en caravana se pueden abarcar cuatro aspectos básicos para su definición [11] 
[13]: 
• Es el concepto de vehículos que circulan a poca distancia unos de otros sin violar las 
restricciones de seguridad. 
• Los vehículos de la caravana se comportan de forma similar al vehículo líder, creando así 
una cadena de vehículos. 
• Todos los vehículos de la caravana requieren cierto grado de automatización, aunque no 
todos los enfoques de caravanas requieren el mismo estándar o nivel de automatización. 
• Existe una coordinación y comunicación tanto a nivel interno de la caravana y a nivel 
externo con las caravanas vecinas, donde los vehículos participan en el proceso de 
coordinación al entrar o salir de la caravana. 
 
Siendo una definición de caravana más general tanto para camiones de carga como para vehículos 
o robots en general la siguiente: “es una cadena de vehículos total o parcialmente automatizados, 
que circulan uno detrás de otro con un espacio reducido entre los vehículos, sin violar las 
restricciones de seguridad, manteniendo una comunicación y coordinación tanto interna como 
externa a la caravana.” [11] [12] [14] 
 
 
2.2. BENEFICIOS DE LA NAVEGACIÓN EN CARAVANA. 
 
 
La navegación en caravana ha demostrado diferentes beneficios entre los que destacan la mejora 
en el coeficiente aerodinámico de los vehículos y el ahorro de combustible. En el coeficiente 
aerodinámico se ha demostrado que se puede reducir hasta un 20% a un 60% la fuerza de arrastre 
en caravanas de camiones de carga, furgonetas, sedanes y autos compactos, siempre que el vehículo 
líder sea un vehículo con la mayor área frontal [15], de igual forma Tsugawa [16] muestra que la 
forma, la posición y el número de vehículos afectan el porcentaje que disminuirá el coeficiente de 
arrastre de los vehículos. Obteniendo un 20% de reducción en el coeficiente de arrastres para el 
primero y el último camión de carga y un 50% para el vehículo de en medio, para una caravana de 
tres camiones de carga de similares características. En la reducción del consumo de combustible, 
se han obtenido rangos que van desde un 3% hasta 21% en el ahorro, dependiendo de la posición 
21 
 
 
y velocidad de los vehículos en la caravana [17]. Un rango similar fue obtenido en el proyecto The 
Energy ITS, conformado por tres camiones de carga, donde se obtuvo entre un 8% y un 18% de 
ahorro de combustible, al viajar los camiones a una velocidad de 80 km/h, con distancias entre 
vehículos desde 4.7m a 10m [18], de igual forma se obtuvieron rangos similares en el ahorro de 
combustible, teniendo desde el 5.2% al 7.8% de ahorro, aunque con una mayor distancia entre 
vehículos, donde el mayor ahorro se obtuvo entre los 14m y los 22m [19]. 
 
La navegación en caravana tiene beneficios ambientales, ya que permite reducir la congestión del 
tráfico, la contaminación acústica y mejorar la seguridad en la carretera, con lo que se logra abarcar 
todos los objetivos propuestos por la logística verde [20]. Además, este tipo de navegación tiene 
beneficios como la reducción de costos del transporte al prescindir o reducir la necesidad de 
conductores para los vehículos seguidores, y al optimizar las capacidades de los caminos y 
carreteras. 
 
Al sumar todos los beneficioscon el ahorro de combustible que se pueden obtener de forma anual 
en los sistemas de transporte y logística, se puede obtener grandes beneficios tanto sociales como 
económicos. En un caso de estudio, que considera todos los costos que supondría la automatización 
y preparación de un negocio de transporte de carga y logística para la navegación en caravana y los 
ahorros que se obtendrían de su implementación, los resultados fueron que solo con el ahorro de 
consumo de combustible se recupera la inversión y por lo tanto todos los demás ahorros en puros 
beneficios y utilidades para la empresa. [21]. 
 
 
2.3. PROYECTOS E INVESTIGACIÓN DE LA NAVEGACIÓN EN 
CARAVANA. 
 
 
El estudio de la navegación en caravana ha provocado que surjan diversos proyectos con un 
enfoque a la navegación en caravana de vehículos pesados de carga desarrollados en conjunto entre 
gobiernos, empresas privadas del sector automotriz, universidades y centros de investigación. 
 
22 
 
 
Como se mencionó anteriormente el estudio de la navegación se puede rastrear hasta los proyectos 
“ARAMIS” y el desarrollado por Volkswagen a principios y mediados de los años 80. La 
navegación en caravanas continuó hasta años más recientes con el desarrollo de tecnologías de 
conducción semiautomatizada, como el Control de Crucero Adaptativo (ACC) y Control de 
Crucero Adaptativo Cooperativo (CACC), la inclusión de sistemas de inteligencia artificial y 
machine learning, el desarrollo de nuevas y consolidación de las tecnologías de comunicación 
inalámbrica entre vehículos, además del continuo desarrollo y miniaturización de los sensores para 
medir distancia, velocidad, aceleración, y de sistemas de visión artificial y geolocalización [18]. 
 
Otros proyectos importantes que marcaron el comienzo del estudio de la navegación en caravana. 
Son el proyecto Chauffeur, en la Unión Europea, donde camiones de carga; media y mantenía su 
distancia respecto al camión de carga delantero mediante un control longitudinal y lateral 
adaptativo [22], y también con el proyecto PATH (Partners for Advanced Transportation 
Technology) desarrollado en California cuyo objetivo es estudiar los beneficios de los parámetros 
de ahorro de combustible, la capacidad de la carretera, configuración de la caravana y la seguridad 
de la navegación en caravana [23]. 
 
Posteriormente en 2005, en Alemania se lanzó el proyecto KONVOI [18], enfocado en estudiar el 
uso de camiones acoplados electrónicamente para la navegación en caravana con un enfoque de 
control y coordinación centralizados, siendo el conductor del camión líder el que toma las 
decisiones para las maniobras de la caravana. Los principales componentes de este sistema eran lo 
actuadores (dirección y tren de propulsión), los sensores (sensores Láser y de reconocimiento de 
objetos y de la carretera), la comunicación inalámbrica entre vehículos (V2V), la unidad de 
coordinación y la unidad de control lateral y longitudinal (ACC). El proyecto KONVOI demostró 
que, con los sistemas de control, el conjunto de sensores y la comunicación V2V implementados 
en los camiones se lograba obtener una estabilidad en la caravana aún en los frenados de 
emergencia; manteniendo la distancia entre vehículos de 5m, una distancia suficiente para evitar la 
colisión de los camiones. De forma similar en Japón se lanzó el proyecto The Energy ITS [18] en 
el 2008, para demostrar una caravana de camiones de carga automatizados circulando en una 
autopista. En este proyecto se implementó para el control longitudinal, un conjunto de sensores 
LIDAR bidimensionales y un radar a 76 GHz, para la detección de obstáculos y medir la distancia 
23 
 
 
entre los vehículos. Por otro lado, para el control lateral se incluyeron cámaras de video para la 
detección de las líneas de la carretera, y para la comunicación se utilizaron sistemas de 
comunicación infrarrojo y de microondas de corto alcance. Con el proyecto The Energy ITS se 
demostró de forma experimental que con una caravana con una distancia entre vehículos de 10 m 
de distancia a una velocidad de 80 km/h se puede reducir la energía en un 15 % y en un 2.1% el 
𝐶𝑂2, además de aumentar en hasta un 40% la capacidad de la carretera. 
 
En 2009, fue lanzado el proyecto SARTRE en la Unión Europea [24], con un enfoque de explorar 
y aplicar la navegación en caravana en las autopistas sin necesitar modificar la infraestructura 
existente. El proyecto SARTRE toma la comunicación entre vehículos (V2V) como eje 
fundamental para la coordinación de los vehículos y la unión y desunión de los vehículos de las 
caravanas; la comunicación V2V en combinación con los sensores de los vehículos y algoritmos 
de control. 
 
Para el 2011, se lanzó el desafío Grand Cooperative Driving Challenge (GCDC), donde varios 
vehículos, tanto de pasajeros como de carga viajaban en caravana a través de carretera. El objetivo 
del GCDC [24] era acelerar el desarrollo, la integración y despliegue de sistemas de conducción 
cooperativa, basados en la combinación de infraestructuras de comunicación entre vehículos (V2V) 
y de vehículos a infraestructura (V2I), como la fusión de sensores y controladores. 
 
En 2016, Daimler AG, una de las empresas líderes en el sector automotriz dio una demostración 
de las aplicaciones potenciales de la navegación en formación caravana al ser implementada en los 
sistemas de transporte y logística. Dicha demostración se llevó a cabo en el marco del Desafío 
Europeo de Camiones en Caravana (European Truck Platooning Challenge), realizado en Róterdam 
en el año 2016, donde se implementó en tres camiones Actros, sistemas semi autónomos, basados 
en comunicación V2X (Vehicle to Everything) mediante el estándar IEEE 802.11p, para permitir 
la comunicación e intercambio de información entre los vehículos pertenecientes a la caravana. 
Los camiones integraban la fusión de sensores como radares, cámaras y sistemas GPS, para 
mantener y controlar las velocidades y distancias de los tres vehículos, aumentando la estabilidad 
y seguridad de la caravana [25]. En esta caravana de vehículos Actros se han implementado varias 
de las funcionalidades que permiten obtener mayores beneficios de la navegación en caravana 
24 
 
 
como son la unión y desunión de vehículos a la caravana en movimiento, el mantener un manejo 
semi autónomo y el permitir la entrada de vehículos ajenos a la caravana para el cambio de carril. 
A su vez ha permitido doblar la capacidad de la carretera y mejorar las seguridades de la caravana 
al tener un sistema redundante que disuelve la caravana si los datos de los sensores y los datos 
compartidos por vehículos no concuerdan. 
 
 
Figura 2.1. Caravana de camiones Actros en la pista de pruebas. [25] 
 
Dentro de los proyectos más recientes encontramos el proyecto ENSEMBLE (Enabling Safe Multi-
Brand Platooning for Europe) lanzado en 2018 y actualmente en curso, financiado por la Unión 
Europea, con los objetivos de realizar una estandarización de interoperabilidad entre camiones de 
carga de diferentes marcas para acelerar la aceptación y despliegue de la navegación en caravana 
en el mercado real y como segundo objetivo de armonizar el marco legal en los estados miembros 
de la UE [20] [26]. El mayor logro del proyecto ENSEMBLE es el permitir caravanas multimarca, 
con la estandarización de las especificaciones a nivel de software y hardware de los camiones de 
los distintos fabricantes, así como los protocolos a implementar en la comunicación V2X y V2I. 
 
25 
 
 
 
Figura 2.2. Caravana de camiones del proyecto ENSEMBLE. [26] 
 
Además del desarrollo de las plataforma y proyectos anteriormente mencionados, las 
investigaciones respecto a la navegación se han enfocado en primer lugar al desarrollo de los 
sistemas de control lateral y longitudinal para caravanas centralizadas y descentralizadas, en 
segundo lugar, al desarrollo de plataformas de pruebaa escala, al uso de sistemas de visión artificial 
y en tercer lugar al estudio de las topologías de comunicación y coordinación de las caravanas. 
 
En los sistemas de control se puede encontrar la propuesta de un esquema de control longitudinal 
descentralizado para vehículos seguidores sin comunicación [27]. El control longitudinal de los 
vehículos se basa en un controlador MPC o Control Predictivo Basado en el Modelo, el cual 
únicamente tiene acceso a la información de la distancia entre vehículos. Su controlador demostró 
una mayor estabilidad y rendimiento en comparación a un controlador proporcional, logrando 
reducir los errores de estado estacionario casi a cero, a pesar de la limitada información del resto 
de los vehículos de la caravana. De igual forma se ha desarrollado una ley de control para caravanas 
descentralizadas de dos vehículos [28], que permite el control lateral y longitudinal del vehículo 
seguidor mediante el acoplo de este al líder por medio de una “barra virtual de remolque”. Mediante 
la estrategia de la barra virtual de remolque y el uso de un controlador difuso, lograron mantener 
el error entre la distancia objetivo entre vehículos y la medida real a menos del 10%, el error de la 
orientación entre ambos vehículos se mantuvo en un 40%, permitiendo al vehículo seguidor 
mantener una trayectoria similar al vehículo líder. 
 
26 
 
 
Otro trabajo enfocado al control longitudinal en caravanas descentralizadas, es la propuesta de un 
controlador longitudinal adaptativo para una caravana de robots móviles [29]. El robot seguidor 
únicamente cuenta con la distancia obtenida mediante un sensor LIDAR para estimar la velocidad 
del robot líder, y a su vez calcular su propia velocidad. Su controlador demostró permitir al robot 
seguidor mantener velocidades similares al robot líder, manteniendo la estabilidad de la caravana 
en variaciones de velocidad. 
 
El desarrollo de una plataforma a escala permite estudiar, desarrollar e implementar nuevos 
algoritmos de control y sistemas de comunicación sin la necesidad de contar con los vehículos de 
carga reales, ya que esta información posteriormente se puede trasladar a las aplicaciones reales. 
La plataforma RoboCoPlat es un ejemplo de ello, ya que permite la integración de diferentes 
sensores, tecnologías de comunicación y para la prueba de diferentes estrategias de control y 
colaboración entre vehículos, permitiendo el intercambio de información de manera global y local 
entre los vehículos de la caravana [30]. Otro ejemplo de plataforma de prueba a escala es la 
desarrollada en la Universidad Tecnológica de Graz, ya que, por medio de vehículos a escala de 
vehículos de pasajeros y camiones de carga con dispositivos de bajo costo, permite estudiar y 
probar diferentes estrategias de control y seguimiento para la navegación en caravana para su 
posterior extrapolación a vehículos reales [31]. 
 
Aunque a diferencia de la plataforma RoboCoPlat, ésta última plataforma no permite el intercambio 
de información entre los miembros de la caravana basándose en la información local para el control 
del vehículo. Siendo el único intercambio de información el que se realiza con el sistema de 
seguimiento y recolección de datos. 
 
La visión artificial también ha obtenido una mayor importancia en la conducción autónoma y la 
navegación en caravana, donde se ha visto como un sistema de respaldo o complementario a los 
sistemas basados en sensores LIDAR o de radar. Se han propuesto sistemas de seguimiento óptico 
para vehículos de carga en entornos al aire libre y en caminos irregulares, utilizando cámaras y 
marcadores fiduciarios [32]. El sistema es capaz mantener el seguimiento y estimar de forma 
robusta la posición y orientación del vehículo delantero, aún en caminos de tierra o no 
pavimentados, a velocidades de hasta 60 km/h y distancias entre ambos vehículos de 25 m. Otro 
27 
 
 
ejemplo de uso de visión artificial para el seguimiento de vehículos es el uso de una cámara 
monocular para calcular la distancia entre el vehículo líder y el vehículo seguidor [33]. En este 
método se utiliza como referencia para la detección y estimación de la distancia una placa de 
vehículo, llegando a la conclusión de que el sistema puede mantener la ruta del líder y podría 
implementarse como un complemento para el sensor LIDAR o radar en el caso de que estos fallen. 
 
 
2.4. NAVEGACIÓN EN CARAVANA EN AGVs. 
 
 
La navegación en caravana no es algo que exclusivamente se pueda aplicar en vehículos de carga 
y para largos recorridos, sino que también vehículos más pequeños como los AGV, que, aunque 
circulan a menor velocidad y dentro de un área definida, pueden verse beneficiados de la 
navegación en caravana, al permitir una mayor capacidad de transporte de carga, agilizar los 
tiempos de carga y descarga, así como los de transporte. 
 
A medida que se mejoran los AGVs, estos toman una mayor importancia dentro de la 
automatización. El problema de la colaboración entre estos vehículos de transporte ha ido tomando 
cada vez una mayor importancia en su estudio. Las caravanas de vehículos y el control de la 
formación de las caravanas es una parte del problema de la colaboración. 
 
La coordinación de AGVs mediante la navegación en caravana es un tema no tan explorado aún, 
sin embargo, ya existen algunas implementaciones reales, principalmente en las áreas de logística 
dentro de almacenes y puertos marítimos de carga. Aunque el despliegue y uso de los vehículos 
AGV no se limitan a estas áreas, ya que su uso se ha extendido desde el manejo y reciclaje de 
desechos peligros en el área médica [34], el transporte de bienes dentro de ciudades como vehículos 
de última milla y transporte de mercancías y equipaje en aeropuertos, por nombrar algunas 
aplicaciones [35]. 
 
Uno de los ejemplos relevantes de AGVs en caravanas, es el estudio realizado para caravanas de 
AGV en los puertos marítimos de Róterdam, en los Países Bajos. Donde se han simulado los AGV 
para sustituir el proceso tradicional de carga, descarga y traslado de contenedores mediante 
28 
 
 
camiones de carga en los puertos interiores [36]. Este estudio ha demostrado que existe beneficios 
importantes aún al utilizar caravanas pequeñas, de entre dos a cuatro AGVs, ya que permite reducir 
los tiempos de espera de los contenedores hasta en 70% en comparación al proceso tradicional con 
camiones, agilizando y evitando el apilamiento de los contenedores en los espacios de descarga al 
utilizar únicamente AGV. El estudio también demostró una importante reducción de emisión de 
𝐶𝑂2, logrando bajar hasta un 18% en las emisiones. 
 
El uso de plataformas de simulación de igual forma se ha utilizado para probar algoritmos de 
control y cooperación de AGV en caravanas. El uso de software para simulación permite realizar 
experimentos sin la necesidad de contar con los vehículos reales los cuales pueden son costosos y 
más complejos de modificar. El uso de sistemas como ROS en conjunto son simuladores de físicas 
como Gazebo o Webot, permiten simular caravanas de AGV de diferente tamaño al solo estar 
limitados en cuanto a la potencia del equipo de cómputo. Un ejemplo de ello es el desarrollo de 
una simulación multi robot en ROS y Gazebo para la prueba de algoritmos de seguimiento de 
mediante sensores LIDAR para AGVs en caravana [37]. 
 
A partir de la revisión del estado del arte se puede concluir que en las investigación, desarrollos y 
proyectos enfocados a la navegación en caravana, se ha implementado sistemas de visión a los 
cuales no se les ha sacado todo el potencial que estos pueden ofrecer, usándolos principalmente 
para detectar o identificar objetos en los caminos o carreteras. Esto a pesar de demostrar que estos 
sistemas pueden servir como un sistema complementario o de respaldo para los sistemas 
principales de medición de distancia basados en señores laser o ultrasónicos,y al ofrecer una buena 
estimación de la posición de los vehículos a partir de elementos sencillos pero distintivos como los 
marcadores fiduciarios o las placas de los vehículos, los cuales se pueden añadir a los vehículos de 
forma sencilla, sobre todo los marcadores fiduciarios, elementos de pueden imprimirse en 
diferentes tamaños y de los cuales existen una diversidad de tipos basados en diferentes topologías 
de patrones de formas y colores. 
 
De igual forma se ha podido constatar el uso de ROS ya no solo se enfoca al área de la robótica, 
sino que también su uso puede expandirse a otras áreas como la conducción autónoma y la 
navegación. Esto a partir de que ROS cuenta con un gran conjunto de herramientas para desarrollar 
29 
 
 
no solo plataforma de prueba a nivel simulación, sino también para su implementación en hardware 
real, para probar algoritmos y nuevas tecnologías, y posteriormente extrapolar los resultados al 
mundo real. 
 
 
 
3. MARCO TEÓRICO. 
 
 
 
En el presente capítulo, se hará una breve introducción al meta sistema operativo ROS y al 
simulador de físicas 3D Gazebo; así mismo, se dará una descripción e introducción de los 
marcadores fiduciarios, su principio de funcionamiento básico, tipos y las principales ventajas y 
desventajas de los marcadores fiduciarios más utilizados o populares. 
 
 
 
3.1. ROBOT OPERATING SYSTEM (ROS). 
 
 
ROS [38] es un entorno de desarrollo enfocado para el diseño de software aplicado al área de la 
robótica. Otorgando una colección de herramientas y bibliotecas que tiene como objetivo principal 
otorgar un rendimiento completo y una plataforma robusta para una amplia variedad de 
plataformas. Comúnmente se le conoce como un sistema operativo, dado que tiene una capa de 
abstracción de hardware similar a los sistemas operativos. Sin embargo, una mejor definición de 
ROS es el de un meta sistema [39], dado que en primer lugar permite ser usado en una mayor 
variedad de combinaciones con hardware especializado para las aplicaciones de robótica, en 
segundo lugar, requiere de un sistema como Windows, Mac, o Linux para su ejecución y en tercer 
lugar porque permite manejar los procesos de carga, supervisión, programación o gestión de errores 
mediante un capa de virtualización entre las aplicaciones y los recursos de hardware. 
 
30 
 
 
 
3.1.1. VENTAJAS DE ROS. 
 
ROS es un proyecto con una larga trayectoria y con un gran número de contribuyentes, desde su 
comienzo ROS ha sido desarrollado por múltiples instituciones y para múltiples robots. En todo 
momento, el software se ha desarrollado como código abierto utilizando la permisiva licencia de 
código abierto BSD-3 y la licencia Apache 2.0, permitiendo que cualquiera pueda modificar, 
reutilizar y redistribuir el código tanto para aplicaciones comerciales, educativas o de investigación 
[39]. 
 
La principal ventaja de ROS se centra en maximizar la reutilización del código, para lograr esto, 
ROS tiene las siguientes características [6] [40]. 
• Procesos distribuidos: Está programado en forma de unidades mínimas de procesos 
(nodos), y cada proceso se ejecuta de forma independiente e intercambia datos 
sistemáticamente con los demás nodos que lo requieran. 
• Gestión de paquetes: Los procesos múltiples que tienen el mismo propósito se gestionan 
como un paquete, para que sea fácil de usar y desarrollar, así como conveniente para 
compartir, modificar y redistribuir. 
• Multi sistema: ROS para su ejecución requiere un sistema operativo base, por lo que puede 
funcionar en una gran variedad de sistemas operativos, como Windows, Mac, Linux, 
Android o FreeRTOS para sistema embebidos, 
• API: Cuando se desarrolla un programa que utiliza ROS, este está diseñado para llamar 
simplemente a una API e insertarla en el código que se utiliza. 
• Multi lenguaje: ROS proporciona una biblioteca cliente para soportar diversos lenguajes de 
programación. Se pueden utilizar lenguajes de programación tan populares como Python, 
C++, JAVA, C#, Lua o Ruby. 
 
 
3.1.2. ESTRUCTURA Y CONCEPTOS BÁSICOS DE ROS. 
 
31 
 
 
ROS al igual que las distribuciones basadas en el kernel Linux, las distribuciones se liberan con 
una versión de paquetes y librerías estables que se mantendrán y actualizarán hasta el fin del soporte 
de la distribución. 
 
La distribución más actual de ROS 1, es ROS Noetic, sin embargo, al ser una distribución de 
reciente lanzamiento, aún no se actualizan todos los paquetes y librerías para esta última versión, 
por lo que para este trabajo se utilizará la versión anterior, ROS Melodic Morenia. 
 
 
Figura 3.1. Últimas versiones de ROS. 
 
ROS provee los servicios básicos para la abstracción del hardware, drivers para periféricos y 
sensores, y paquetes con funcionalidades específicas (meta paquetes), como es para mapeo de 
entornos (Mapping), planeación de rutas (Path Planning), navegación, creación de máquinas de 
estado (Finite-state machine), manejo de paquetes y mensajes entre procesos, herramientas de 
depuración y visualizadores. 
 
El uso de ROS se basa en la existencia de procesos individuales que ejecutan una única tarea (nodos 
o nodes), los cuales se comunican entre sí mediante mensajes publicados en categorías y con un 
formato específico (tópicos o topics). A su vez, estos nodos pueden interactuar entre sí, mediante 
la llamada a servicios, en los cuales se realiza una petición por parte del proceso que demanda la 
ejecución de cierto programa y se recibe una respuesta por parte del nodo que la lleva a cabo. Por 
32 
 
 
último, el proceso maestro, que sirve como intermediario y permite que los nodos puedan establecer 
comunicación al inicio de su ejecución, al poseer toda la información de los nodos que estén 
ejecutándose en el entorno de ROS, y el servidor de parámetros registra una serie de variables que 
facilitan la ejecución y la configuración de los paquetes [40]. 
 
 
3.1.2.1. Maestro (Master). 
 
Funciona como un nodo intermediario que facilita el establecer las conexiones entre los diferentes 
nodos de ROS en ejecución. El maestro posee todos los detalles sobre todos los nodos que se 
ejecutan en el entorno de ROS e intercambiará los detalles de un nodo con otro de desee establecer 
comunicación, para lograr establecer una conexión entre ellos [41]. 
 
 
3.1.2.2. Nodos. 
 
Son procesos independientes que utilizan la API de ROS para comunicarse con los otros nodos en 
ejecución, estos están registrados por el nodo maestro que los ayuda a establecer comunicación 
entre ellos al comienzo de la ejecución del nodo maestro. Son la unidad más pequeña de 
procesamiento que posee ROS, y un robot o vehículo podrá tener tantos nodos como se necesite 
para su funcionamiento [41]. 
 
 
3.1.2.3. Mensajes. 
 
Los mensajes son estructuras de datos utilizadas por los nodos para intercambiar información 
mediante los tópicos. Estos poseen una estructura estándar incluida por defecto en ROS, sin 
embargo, el usuario puede crear sus propios mensajes que se adapten a una aplicación en específico 
[41]. 
 
 
33 
 
 
3.1.2.4. Tópicos. 
 
Son uno de los métodos para comunicarse e intercambiar mensajes entre dos nodos. Los tópicos 
son bloques con nombre, por los cuales se intercambian datos utilizando mensajes. Cada tópico 
deberá poseer un nombre específico, y un nodo podrá publicar datos en el tópico para que otros 
puedan leer dicha información al suscribirse al tópico [41]. 
 
 
3.1.2.5. Servicios. 
 
Son otro tipo de método de comunicación al igual que los tópicos. Sin embargo, a diferencia de los 
tópicos la interacción se basa en un método de solicitud y respuesta, permitiendo una comunicación 
bidireccional. Un nodo actuará como proveedor de servicios, que posee una rutina de servicio en 
ejecución, y un nodo cliente solicita un servicio al servidor. El servidor ejecutará la rutina de 
servicio y enviará el resultado al cliente.El nodo cliente esperará hasta que el servidor responda a 
la solicitud [41]. 
 
 
3.1.2.6. Servidor de parámetros. 
 
Un nodo almacena una variable que son utilizados por los demás nodos de ROS, principalmente 
por aquellos que se ejecutan en tiempo real y necesitan modificar sus parámetros iniciales durante 
su funcionamiento. El servidor de parámetro de ROS se ejecuta junto con el maestro de ROS [41]. 
 
 
3.2. GAZEBO. 
 
 
Gazebo es un simulador 3D enfocado a la robótica, que permite el uso de diferentes motores físicos, 
como Open Dynamics Engine (ODE), Bullet, Simbody o Dynamic Animation and Robotics 
Toolkit (DART) [42], siendo el motor físico ODE el predeterminado. Permitiendo su integración 
con ROS mediante plugins. 
34 
 
 
 
Además, Gazebo cuenta con una extensa variedad de modelos 3D de objetos, robots y vehículos, 
además de soporte para diferentes tipos de sensores [43]. Gazebo es un simulador que permite 
probar algoritmos de control, diseños de robots y realizar comprobaciones de funcionamiento sin 
la necesidad de contar con el hardware real. 
 
 
Figura 3.2. Interfaz gráfica de Gazebo Simulator. 
 
Los modelos que se crean para Gazebo están en un formato XML, llamado Formato de Descripción 
de Simulación (SDF), que posee una descripción completa de todo lo incluido en la simulación, 
desde el escenario hasta el robot [44]. ROS posee un enfoque distinto para representar los modelos 
de robots, ya que utiliza un formato XML llamado Formato Universal de Descripción Robótica 
(URDF) y una extensión del mismo lenguaje llamado Xacro [45], que añade mayores capacidades 
al formato URDF mediante macros; esto permite un desarrollo modular y reusabilidad de código 
en modelos complejos. Aun así, los modelos en URDF pueden convertirse de forma automática en 
SDF añadiendo algunas etiquetas adicionales, como los son las etiquetas <inertia> y <link>. 
 
ROS se integra estrechamente con Gazebo a través del paquete gazebo_ros_pkgs, desde la versión 
ROS Kinetic hasta la versión más actual, ROS Noetic. Este paquete proporciona un conjunto de 
35 
 
 
complementos (plugins) de Gazebo que permite la comunicación bidireccional entre Gazebo y 
ROS, permitiendo que los datos simulados de los sensores y de la física pueden fluir desde Gazebo 
a ROS, y los comandos de los actuadores pueden fluir desde ROS hacia Gazebo [40]. Al elegir 
nombres y tipos de tópicos consistentes para estos flujos de datos, es posible que Gazebo coincida 
exactamente con la API de ROS, permitiendo una ejecución casi idéntica dentro de la simulación, 
como la que tendría de un robot con hardware real. 
 
 
3.3. MARCADORES FIDUCIARIOS. 
 
 
El seguimiento y localización de objetos mediante sistemas de visión artificial, es un problema que 
sigue representando un reto para la odometría visual, mapeo y localización simultáneos o por sus 
siglas en inglés de Self-Localization And Mapping (SLAM) y en general para toda el área de visión 
artificial enfocada a la robótica. Hasta el inicio del siglo XIX, el seguimiento de objetos se ha 
desarrollado mediante señales visuales sencillas, puntos y círculos, posteriormente surgieron 
nuevos tipos de marcadores basados en patrones de forma y color, enfocados a aumentar la robustez 
de la detección y seguimiento de un objeto a través de una secuencia de imágenes [46]. 
 
Los marcadores fiduciarios son objetos que poseen un patrón altamente distinguible, que 
comúnmente son utilizados para ofrecer un punto de referencia o de medición dentro de una 
imagen. Son comúnmente utilizados en aplicaciones médicas o de manufactura, donde poseen 
patrones simples como círculos, líneas o puntos a patrones más complejos, como los códigos de 
barras o códigos QR pueden servir como ejemplos más comunes. Sin embargo, para aplicaciones 
enfocadas a las áreas de la robótica, navegación autónoma, reconstrucción 3D o robots 
colaborativos, los marcadores fiduciarios anteriormente mencionados no brindan las capacidades 
necesarias para sortear los efectos producidos por los constantes cambios de luz, variación de 
tamaño, rotación del marcador u oclusión (obstrucción) del mismo [47]. 
 
 
3.3.1. MARCADORES FIDUCIARIOS COMUNES. 
 
36 
 
 
En los marcadores fiduciarios existen en una variedad de geometrías y patrones, pero estos, estos 
se pueden clasificar principalmente en cuatro categorías, marcadores circulares, cuadrados, 
patrones de colores y patrones topológicos, una muestra de las diferentes clases se puede observar 
en la Figura 3.3, donde se muestran diferentes ejemplos de marcadores fiduciarios. 
 
 
Figura 3.3. Ejemplos de marcadores fiduciarios. 
 
Los marcadores más comúnmente utilizados son los basados en formas geométricas, 
principalmente cuadrados, los cuales permiten una mayor tasa de éxito y rapidez en la detección al 
basarse en formas geométrica simples, además de permitir la estimación de la posición del 
marcador mediante la localización de los vértices del marcador en la imagen [48]. Los marcadores 
fiduciarios de este tipo principalmente fueron desarrollados para aplicaciones de realidad 
aumentada, sin embargo, han ido ganando popularidad en diversos ámbitos de la robótica. La 
mayoría de los marcadores fiduciarios basados en formas cuadradas, han sido desarrollados a partir 
del ARToolkit, un sistema de marcadores para seguimiento enfocado para videoconferencia con 
realidad aumentada. A partir del ARToolkit, han surgido nuevas familias de marcadores fiduciarios 
que han mejorado la robustez y capacidades del ARToolkit en la reducción de detección de falsos 
positivos y han mejorado la estimación de la posición del marcador. Entre los marcadores 
fiduciarios surgidos a partir de ARToolkit, se encuentran ARTag, AprilTag, binARyID y ArUco. 
 
 
3.3.2. VENTAJAS Y DESVENTAJAS DE DISTINTOS MARCADORES 
FIDUCIARIOS. 
 
37 
 
 
La integración de los marcadores fiduciarios al campo de la robótica y su popularización en el 
campo de la visión artificial ha sido gracias al desarrollo de paquetes y librerías para sistemas 
populares enfocados a la robótica como ROS, donde ARTag y AprilTag, cuentan con paquetes 
nativos, que permiten una fácil integración con ROS, mientras que, ArUco se encuentra integrado 
dentro de la librería de visión artificial OpenCV [49]. Estas tres principales familias de marcadores 
son las que mayor popularidad poseen, además de ser tomados como puntos de referencia en la 
mayoría de investigación enfocadas al desarrollo de nuevos marcadores fiduciarios y algoritmos 
de detección y seguimiento de objetos [47] [50] [51]. Además, han demostrado tener ventajas 
significativas en cuanto a necesitar un menor costo computación para su procesamiento, permitir 
la estimación de la posición y orientación, detección a largas distancias (mayores a 3 metros) y en 
movimiento, resistencia a los cambios de luz y oclusión [49]. 
 
Marcador Ventajas Desventajas 
ArtoolKit 
• Alta velocidad de detección. 
• Alta tasa de detección. 
• Baja tasa de detección con poca o 
excesiva iluminación. 
ArTag 
• Menor coste de procesamiento. • Baja tasa de detección de 
marcadores individuales. 
• Alta sensibilidad a las rotaciones 
en cualquier eje. 
• Valores atípicos extremos y alta 
desviación estándar en los 
conjuntos de marcadores. 
AprilTag 
• Excelentes resultados de estimación 
de orientación 
• Alta tasa de detección. 
• Buenos resultados en la estimación de 
la posición. 
• Buena velocidad de detección. 
• Detección en entorno con poca o casi 
nula iluminación. 
• Necesita mayor cantidad de 
recursos para su procesamiento. 
• Más sensibilidad al desenfoque 
por movimiento. 
ArUco 
• Buena estimación de posición y 
orientación. 
• Alta tasa de detección. 
• Buena velocidad de detección. 
• Bajo coste computacional para 
marcadores individuales. 
• Resistente a los cambios de 
iluminación. 
• Sensible a los marcadores de 
tamaño pequeño. 
• Elcoste de procesamiento 
aumenta con múltiples 
marcadores. 
Tabla 1. Ventajas y desventajas de distintos marcadores fiduciarios. [49] [50] [52] [53] 
38 
 
 
 
 
Entre estas familias, resalta la de marcadores fiduciarios ArUco, que es una de las familias que 
requiere menos recursos computacionales para su procesamiento y posee una alta tasa de detección, 
tanto en imágenes estáticas y en movimiento. Consecuentemente, esta familia es adecuada para su 
uso en dispositivos con hardware limitado como las microcomputadoras del estilo Raspberry Pi, 
Nvidia Jetson TX2 o de similares características de hardware. 
 
 
3.3.2.1. Funcionamiento básico. 
 
Los marcadores ArUco son marcador cuadrado compuesto por un borde negro y una matriz binaria 
interior, compuesta por cuadrados negros (1) y blancos (0) que determina su identificador. El borde 
negro facilita su rápida detección en la imagen y la codificación binaria permite su identificación 
y la aplicación de técnicas de detección y corrección de errores. El módulo perteneciente a la 
librería OpenCV está basada en la librería desarrollada por Rafael Muñoz y Sergio Garrido para 
aplicaciones de realidad aumentada [54]. Uno de los grandes diferenciadores de los marcadores 
ArUco respecto a otros marcadores fiduciarios es la existencia de diccionarios que agrupan un 
conjunto de marcadores en específico. Estos diccionarios se distinguen entre sí por el tamaño del 
diccionario (número de identificadores) y el tamaño del marcador que albergan (cantidad de bits 
de la matriz binaria del marcador). 
 
 
 
 
Figura 3.4. Marcador con celdas. [55] 
 
 Contorno 
Matriz binaria 
Esquina 0 Esquina 1 
Esquina 2 Esquina 3 
39 
 
 
El proceso de detección de marcadores de ArUco [56], se basa principalmente en el uso de un 
umbral adaptativo (Adaptive Thresholding) para la obtención de los bordes a partir de una imagen 
en escala de grises. Después de detectar los bordes en la imagen, se filtran los bordes no deseados 
y se reducen los bordes a puntos para aplicar una aproximación poligonal para obtener los 
contornos de 4 esquinas, se ordenan las esquinas en sentido contrario a las agujas del reloj, a la vez 
que se eliminan los rectángulos cercanos entre sí. Posteriormente, se elimina la perspectiva de 
proyección para obtener una vista frontal del área del rectángulo mediante homografía, y se aplica 
posteriormente el método de Otsu para obtener una distribución bimodal (blanco o negro) a partir 
de las escalas de grises de la imagen. 
 
Para la identificación del código interno del marcador se divide el marcador en una cuadrícula 
correspondiente al tamaño del marcador, donde las celdas internas contienen información del ID. 
Se comprueba la existencia del borde exterior negro y posteriormente leyendo las celdas internas, 
se comprueba si es un código válido. Para los marcadores válidos, se refinan las esquinas utilizando 
la interpolación de subpíxeles, y finalmente, al proporcionar los parámetros de la matriz intrínseca 
de la cámara, se computa la matriz extrínseca para obtener la posición y orientación de los 
marcadores en la cámara. 
 
Con los conceptos básicos de ROS y Gazebo, y con la elección del marcador fiduciario a usar en 
la simulación, se procede con el desarrollo de la metodología para la simulación multi vehículo de 
AGV y de los algoritmos de control de los AGVs y de visión artificial a utilizar. 
 
 
 
4. METODOLOGÍA. 
 
 
En este capítulo se tratan los diferentes componentes de la simulación multi vehículo en Gazebo y 
ROS, partiendo desde la preparación y modelado de los vehículos AGV; marcadores fiduciarios; 
escenarios de simulación y sensores. En este capítulo, también se desarrollan los algoritmos para 
la estimación de la posición y orientación de los marcadores fiduciarios, el controlador lateral y 
40 
 
 
longitudinal de los vehículos seguidores, la configuración y ajuste de los parámetros del sistema 
de navegación autónoma del vehículo líder y el desarrollo del algoritmo para el control de la 
caravana dentro de la simulación. 
 
 
4.1. MODELOS 3D. 
 
 
Gazebo cuenta con un conjunto de herramientas limitadas que permiten la construcción de 
escenarios y modelos a partir de geometría simples como cubos, cilindros y esferas, así como la 
modificación de los modelos 3D que estén dentro de sus librerías o los que previamente hayan sido 
creados por el usuario. Para el diseño de modelos más complejos se puede recurrir a herramientas 
de diseño CAD para el diseño y posterior exportación del modelo a Gazebo o mediante código 
utilizando los formatos soportados por el simulador. 
 
El simulador Gazebo hace uso del Sistema Internacional de Unidades, por lo que todos los modelos 
dentro de la simulación en Gazebo están definidos en metros, kilogramos y segundos. 
 
 
4.1.1. MODELADO DE VEHÍCULOS AGV. 
 
El desarrollo de los modelos 3D de los AGV para la simulación en Gazebo, se han desarrollado 
utilizando como base el modelo desarrollado por Haidyn McLeod para un vehículo no holonómico 
de tracción diferencial [57]. Al modelo del vehículo se le han modificado la estructura y disposición 
de los sensores, dimensiones y se reescribió parcialmente el código URDF, mediante el uso de 
macros en formato Xacro, permitiendo una mayor reutilización, modificación y facilidad de lectura 
del código para su modificación y uso en el resto de vehículos AGV de la simulación. 
 
41 
 
 
 
Figura 4.1. Modelo modificado. 
 
Una adición importante al modelo del AGV ha sido la integración de los marcadores ArUco en la 
parte posterior del vehículo con un identificador único para cada marcador, como se puede observar 
en la Figura 4.2. 
 
 
Figura 4.2. Marcadores ArUco en el AGV 
 
Se han creado dos modelos de AGV para este trabajo, un modelo como un único marcador en la 
parte posterior y un segundo modelo con tres marcadores en un arreglo trapezoidal. Ambos 
modelos comparten las mismas dimensiones, siendo el único cambio el número de marcadores en 
la parte posterior. Las dimensiones que posee el modelo 3D del AGV, se pueden observar en la 
Figura 4.3. 
 
42 
 
 
 
Figura 4.3. Dimensiones de los AGVs. 
 
Los AGV simulados utilizan el plugin de Gazebo libgazebo_ros_skid_steer_drive.so, que brinda 
la capacidad de simular la tracción diferencial en las cuatro ruedas, al implementar el modelo 
cinemático de un vehículo con dicha tracción. La tracción diferencial es una de las más adecuada 
para el uso de los algoritmos de Local y Global Path Planning. Para este plugin se requiere 
configurar el nombre de la articulación dada a cada una de las cuatro ruedas. 
 
• front_left_wheel_joint, para la rueda delantera izquierda, 
• front_right_wheel_joint, para la rueda delantera derecha, 
• back_left_wheel_joint, para la rueda trasera izquierda, 
• back_right_wheel_joint, para la rueda trasera derecha. 
 
Adicionalmente se debe configurar el tópico en el cual se publicará la información de la velocidad 
lineal y angular, el tópico para publicar la odometría, así como las distancia entre ejes y el diámetro 
de las ruedas. Esta configuración es común para todos los AGVs dentro de la simulación y se 
realizó en el archivo agv_plugins.gazebo. 
 
 
4.1.2. MODELADO DE MARCADORES FIDUCIARIOS. 
 
43 
 
 
Para introducir a la simulación los marcadores fiduciarios, se han tenido que crear las texturas para 
los objetos 3D para cada uno de los marcadores ArUco utilizados, dado a que Gazebo no cuenta 
con ellos dentro de su librería de modelos de forma predeterminada. Este proceso se ha llevado a 
cabo partiendo de las distintas imágenes de los marcadores fiduciarios en formato PNG, esta 
imagen se puede obtener utilizando el módulo ArUco de la librería OpenCV. Para facilitar el 
proceso de la generación de las imágenes se ha utilizado el script ArucoMesh.py, que permite 
obtener un número indicado de imágenes los marcadores con

Continuar navegando