scieee AI-readable full text Open interactive document viewer

Vehículo autónomo a escala para el seguimiento de marcas viales de carretera

Castro Casares, Jorge de,Zalama Casanova, Eduardo,Fuente López, Eusebio de la,Gómez García-Bermejo, Jaime

Abstract

Producción Científica

Full text

Ilustración realizada por Javier Pajuelo Libro de Actas XXXIX JORNADAS DE AUTOMÁTICA Actas UNIVERSIDAD DE EXTREMADURA Badajoz, 5-7 de Septiembre de 2018 Actas de las XXXIX Jornadas de Automática Badajoz, 5-7 de Septiembre de 2018 Editores: Inés Tejado Balsera Emiliano Pérez Hernández Antonio José Calderón Godoy Isaías González Pérez Pilar Merchán García Jesús Lozano Rogado Santiago Salamanca Miño Blas M. Vinagre Jara © 2018 Universidad de Extremadura © Los autores Publicado por: Área de Ingeniería de Sistemas y Automática, Universidad de Extremadura Fecha de publicación: Septiembre de 2018 Páginas: 1109 ISBN 978-84-09-04460-3 2.8 Francisco Jesús Velasco González, Luis M. Vega, Elías Revestido Herrero, Francisco J. Lastra, Sergio García, Ernesto Madariaga Mesa Vibratoria Accionada por Músculos Neumáticos Teleoperada para Experimentación On-Line ............................. 165 2.9 Alejandro González García, Matías García Rivera, Miguel Díaz-Cacho Medina Desarrollo de un Efecto de Mosaico para Docencia en la Materia de Arquitecturas Paralelas .............................. 173 2.10 Antonio J. Muñoz-Ramírez, Jesús M. Gómez-De-Gabriel, Juan M. Gandarias, José Cárdenas, Jaime Molina, Anthony Mandow Uso de Google Classroom como Repositorio de Robótica Práctica: PieroAcademy ................................... 179 2.11 Vicente Arevalo, Jesús María Vicente del Rey, Isabel García Morales El Uso de Microvídeos como Refuerzo del Aprendizaje Presencial en la Enseñanza de las Bases del Control ....................... 186 3 Robótica 3.1 Marina Martínez, José Luis Guzmán, José Carlos Moreno Estudio y Aplicación de un Robot Social a Niños y Niñas con Necesidades de Atención Temprana ................................. 194 3.2 Jorge Villagra, Manuel Perarnau, Jorge Godoy, Antonio Artuñedo Validación de una Estrategia para la Estimación del Riesgo en Intersecciones con Vehículos Conectados ............................ 202 3.3 Víctor Pozo, Edwin Daniel Oña, Alberto Jardón, Carlos Balaguer Conteo Automático de Cubos en Evaluación de Destreza Manual Usando Sensores de Proximidad .............................. 210 3.4 David Rodríguez, Álvaro de la Llana, José Luis Lázaro, Alfredo Gardel, Felipe Espinosa, Ignacio Bravo Sistema de Posicionamiento de Interiores Basado en Señal Óptica. Calibración Rápida ................................. 218 3.5 Edison Velasco-Sánchez, Brayan Stiven Zapata-Impatá, Pablo Gil Reconocimiento de Objetos Agarrados con Sensorizado Híbrido PropioceptivoTáctil ......................................... 224 3.6 Manuel Castellano Quero, Juan Antonio Fernández Madrigal, Alfonso José García Cerezo Hacia la Diagnosis y Recuperación de Sensores Robóticos a Bajo Nivel Mediante Inferencia en Redes Bayesianas ................... 233 3.7 Alex D. Paredes, Andrés Úbeda, Gabriel J. García Teleoperación de un Brazo Robot Kinova MICO2 a Través de un Dispositivo Omni Bundle .................................... 241 3.8 Álvaro Belmonte, Jorge Pomares, Gabriel J. García Optimización en Control Visual de Robots Manipuladores ........... 249 iii 3.9 Carlos Santos, David Rodríguez, Álvaro de la Llana, Felipe Espinosa, José L. Lázaro Aproximación de Robot a un Punto Basada en Eventos con Posicionamiento Mediante PSD ................................... 256 3.10 Marina Aguilar, Ana Cruz-Martín, Juan Antonio Fernández-Madrigal Modelado Cinemático y Simulación Realista del Manipulador Móvil de Bajo Coste Turtlebot2 + Widow-X en ROS ....................... 262 3.11 Jorge de Castro Casares, Eduardo Zalama Casanova, Eusebio de la Fuente López, Jaime Gómez García-Bermejo Vehículo Autónomo a Escala para el Seguimiento de Marcas Carretera . . . 270 3.12 Andrés Montaño, Raúl Suárez Manipulación de Objetos Desconocidos Analizando Localmente su Forma para Optimizar las Fuerzas de Prensión ..................... 276 3.13 Nuria Ortega-Sánchez, Antonio R. Jiménez, Fernando Seco Información Aumentada con Móvil en Museos Mediante Localización con BLE ......................................... 283 3.14 Mercedes Garcia-Salguero, Javier Monroy, Javier Gonzalez-Jimenez ¿Jugamos? Mejora de la Interacción Humano-Robot Mediante Juegos de Mesa ........................................ 291 3.15 Ángel Artero Real, José Luis Blanco Claraco, Antonio Giménez Fernández, Javier López Martínez, José Luis Torres Moreno Simulador Sísmico de Bajo Coste para Uso en Prácticas de Docencia . . . . 299 3.16 Vicente Román, Luis Payá, Adrián Peidró, David Valiente, Luis Miguel Jiménez, Óscar Reinoso Evaluación de Descriptores de Apariencia Global en Tareas de Localización Bajo Cambios de Iluminación ........................... 306 3.17 Elena Aparicio-Esteve, Álvaro Hernández, Jesús Ureña Análisis Geométrico de un Sistema de Posicionamiento Basado en Focos LED y un Array de Fotodiodos ............................. 314 3.18 Alberto Portero, Jesús Lozano, Santiago Salamanca Control de Robot Cartesiano Mediante PLC S7-1200 de Siemens y Arduino para Impresión 3D ................................. 322 3.19 Santiago Murano, Mª Carmen Pérez, Chris J. Bleakley, Jesús Ureña, Carlos De Marziani Diseño de Esquemas de Modulación para un Sistema de Posicionamiento Local Ultrasónico Codificado con Secuencias Zadoff-Chu ........... 332 3.20 Lucía Mas Lillo, Santiago T. Puente, Fernando Torres, Francisco A. Candelas Control de la Mano Allegro Usando Smartphones ................ 340 3.21 Iván del Pino, Miguel Á. Muñoz-Bañón, Francisco A. Candelas, Fernando Torres Integración y Evaluación de un Sistema RTK de Bajo Coste en un Vehículo Terrestre no Tripulado ............................... 349 3.22 Daniel Feliu-Talegon, Juan Carlos Cambera, Andres San-Millan, Vicente FeliuBatlle A New Truck Prototype for Transporting Flexible Manipulators ......... 356 iv Vehículo autónomo a escala para el seguimiento de marcas viales de carretera Jorge de Castro Casares Asociación de Microbótica de la Universidad de Valladolid, Pº del Cauce 59, 47011 Valladolid, España. [email protected] Eduardo Zalama Casanova Instituto de Tecnologías Avanzadas de la Producción, Pº del Cauce 59, 47011 Valladolid, España. [email protected] Eusebio de la Fuente López Instituto de Tecnologías Avanzadas de la Producción, Pº del Cauce 59, 47011 Valladolid, España. [email protected] Jaime Gómez García-Bermejo Instituto de Tecnologías Avanzadas de la Producción, Pº del Cauce 59, 47011 Valladolid, España. [email protected] Resumen En este artículo se presenta el desarrollo de un vehículo a escala que permite su conducción autónoma mediante el auto guiado a través de la detección de las marcas viales de la carretera. El vehículo se basa en un modelo de radiocontrol modificado al que se le ha añadido una cámara para la detección de marcas viales y semáforos, y un láser lidar para la detección de obstáculos. Además, incluye un procesador Odroid con sistema base Linux Ubuntu y ROS (Robot Operation System) [8] para el control de alto nivel, y un microcontrolador Arduino para el control de los motores. El sistema de control está basado en el modelo de arquitectura Subsumption en el que se incluyen tres módulos con diferentes niveles de prioridad. El seguimiento de marcas viales utiliza un algoritmo RANSAC para la detección de rectas y un sistema de control PID. El sistema de control incluye la detección de obstáculos y maniobras de adelantamiento, y la detección de semáforos. La arquitectura propuesta ha sido verificada en la edición 2017 de la Seat Autonomous Driving Challenge alcanzando la primera posición. Palabras clave: Conducción Autónoma, Visión Artificial, Reconocimiento de Carretera. 1 INTRODUCCIÓN La conducción autónoma es uno de los retos de investigación al que más esfuerzos se está dedicado en los últimos años. Todos los fabricantes de vehículos se han lanzado a una carrera de desarrollo de vehículos autónomos que comportarán grandes beneficios en términos de ahorro de costes y seguridad. La conducción autónoma ha sido objeto de estudio desde hace varios años utilizando cámaras para la detección de marcas viales [4],[5] mientras que otros sistemas utilizan la detección mediante láser [13],[14],[15]. En este contexto general, las competiciones de conducción autónoma son una manera eficaz de comprobar los desarrollos y verificar su grado de madurez en un entorno de benchmarking. Así una de las primeras competiciones ha sido el Darpa Grand Challenge que inicialmente, en 2004, se planteó como una competición para ir de un lugar a otro en el desierto de Mojave, y en 2007 se introdujo en un circuito urbano. Sin embargo el desarrollo de una competición con coches reales supone un gran coste por lo que, en los últimos años, diferentes fabricantes y universidades han promovido el desarrollo de competiciones utilizando coches a escala. El aumento de la capacidad de procesamiento de los microcontroladores y la reducción de tamaños de los sensores ha permitido mantener las condiciones de operación en condiciones de escala. Así, cabe destacar por ejemplo las competiciones organizadas por Audi en el Audi driving Challenge [1], Seat en el Seat Autonomous Driving Challenge [12] o General Motors en el Sae Autodrive Challenge [11]. El resto del artículo se organiza de la siguiente forma. En la sección 2 se describe la estructura del vehículo y los elementos que lo integran. La sección 3 describe el sistema de control así como una de los módulos que lo integran. La sección 4 se dedica a la descripción del módulo de detección de líneas y Actas de las XXXIX Jornadas de Automática, Badajoz, 5-7 de Septiembre de 2018 270 seguimiento de la carretera. Finalmente, la sección 5 resume las conclusiones obtenidas. 2 ESTRUCTURA DEL VEHÍCULO Para la realización del vehículo se ha utilizado un prototipo previo a escala 1:10 de un coche con geometría Ackermann basada en dos ruedas traseras motrices paralelas y dos ruedas delanteras paralelas de direccionamiento (Figura 1). Como equipo de computación principal a bordo encargado del control del vehículo se ha utilizado un Odroid XU4. Figura 1.- Prototipo a escala de coche autónomo. El prototipo cuenta para la detección de entorno una cámara Intel Realsense ZR300 [9]. Esta cámara se utiliza principalmente como elemento para la detección de las marcas viales de la carretera. Para la detección de obstáculos el prototipo dispone de un sistema láser RPLIDAR A2 [10]. El uso del LIDAR se reserva exclusivamente a las tareas de aparcamiento, adelantamiento de vehículos y detección de obstáculos. También se puede utilizar para la construcción de mapas de entorno y localización del vehículo. Además, el prototipo cuenta con un microcontrolador para la señalización de maniobras, el control de iluminación, el control de las ruedas motrices y la dirección del vehículo. Para este fin se ha elegido un Arduino Nano por su facilidad de programación y bajo costo. En cuanto al sistema motriz, se ha utilizado un motor con escobillas y codificador incremental, lo que permite realizar un control de velocidad, así como realizar una estimación de posición del robot mediante odometría. 3 SISTEMA DE CONTROL El vehículo debe circular por carreteras de doble carril de 80 centímetros de ancho, en el que se pueden incluir cruces, semáforos, zonas de aparcamiento (su presencia se indica mediante códigos QR) u obstáculos en la carretera. En la Figura se muestra un una imagen de entorno de circulación correspondiente a la competición Seat Autonmpous Driving Challenge de 2017 [12]. Figura 2.- Imagen del entorno en el Seat Autonomous Driving Challenge 2017 en Barcelona. 3.1 ESTRUCTURA SOFTWARE La programación del sistema de control del vehículo se ha realizado mediante programación en Robot Operting System (ROS) [8]. Se trata de un sistema operativo de código abierto (Open source) que cuenta con una comunidad desarrolladora muy extensa y facilita la programación modular basada en componentes, y abstracción hardware. Figura 3.- Diagrama de bloques del sistema de control. Control tracción y dirección Sistema de gestión de movimiento Subsistema de seguimiento de carretera Subsistema de maniobras Subsistema de aparcamiento Sistema de detección de obstáculos Sistema de detección de códigos QR v,w odom 271 En la figura 3 se muestra un detalle de los módulos que componen el sistema. El sistema de tracción y dirección se ejecuta en la placa Arduino, a partir de las referencias de velocidad lineal y angular que debe desarrollar el vehículo en función de la actividad a realizar. A su vez, Arduino publica una estimación de la posición del vehículo en base a la odometría de este (integración de movimientos incrementales del vehículo). El sistema de gestión del vehículo utiliza un modelo de arquitectura tipo Subsumption [2] en el que se incluyen tres módulos que se pueden activar dependiendo del nivel de prioridad, en función de la información sensorial. El módulo de menor prioridad es el seguimiento de carretera. Este es el módulo activo en ausencia de obstáculos y otras marcas viales diferentes de la propia carretera. Cuando se detecta un código QR correspondiente a un semáforo o una bifurcación se activa el módulo de maniobras y se inhibe el de seguimiento de carretera, con lo cual se ejecuta la acción correspondiente. Por ejemplo si el código corresponde al de un semáforo, se analiza la luz y si esta es roja, el vehículo se detiene a una distancia adecuada. Si lo que se detecta es una bifurcación a la izquierda se activa la maniobra preprogramada de giro a la izquierda, etc. Si el láser detecta un obstáculo en medio de la carretera se activa la maniobra de adelantamiento. Una vez se ha realizado la maniobra correspondiente, ante la ausencia de otros estímulos externos se activa nuevamente el módulo de seguimiento de carretera. El subsistema de aparcamiento se activa de igual forma cuando se detecta el símbolo QR pertinente. 4 SEGUIMIENTO DE CARRETERA El sistema de seguimiento de carretera se compone de dos módulos Ros independientes. El módulo de detección de líneas de la carretera y módulo de control de movimiento que determina la velocidad lineal y angular que debe realizar el vehículo. 4.1 MÓDULO DE DETECCIÓN DE LÍNEAS Para el seguimiento de las marcas viales nuestro vehículo emplea un algoritmo de detección de rectas en imágenes. Existen numerosas técnicas para la detección de rectas en imágenes en la literatura de visión por computador. Una primera alternativa consiste en la detección directa de la recta mediante métodos de optimización basados en mínimos cuadrados. Sin embargo, esta técnica sólo proporciona resultados robustos cuando opera sobre los puntos de imagen correspondientes a una misma línea en las marcas viales de la calzada, los denominados inliers, ya que estos puntos son los únicos datos cuya distribución puede ser explicada por el modelo de una recta de parámetros desconocidos. El resto de los puntos de contorno serán denominados datos atípicos o outliers, debido a su inconsistencia con el modelo de recta buscado, y pueden provenir de otras marcas viales presentes en la escena o de otras características visuales como brillos e imperfecciones de la calzada, elementos en el horizonte, semáforos, etc . Una alternativa más robusta es el empleo de la conocida Transformada de Hough (TH)[6][3]. Se trata de una técnica propuesta hace ya más de 50 años y que desde entonces ha sido ampliamente aplicada para la detección de muchas primitivas geométricas en procesamiento de imagen. La idea básica de la TH es la construcción de una tabla en el espacio de parámetros. Se transforma cada punto de contorno al espacio de parámetros y se incrementa el acumulador de la celda correspondiente en la tabla. Los parámetros asociados a la celda más votada son los escogidos como modelo. La TH tiene básicamente un problema, que es la dificultad para encontrar los máximos locales en la tabla de acumulación lo que origina cierta imprecisión en la detección de las rectas. En el presente trabajo proponemos la utilización de una tercera alternativa, el algoritmo para estimación robusta RANSAC, abreviatura para "RANdom SAmple Consensus", introducido en el trabajo [7], y profusamente utilizado desde entonces por su robustez y eficiencia computacional. RANSAC selecciona de forma aleatoria muestras de n puntos para obtener los parámetros del modelo, pero en lugar de usar una tabla de acumulación, RANSAC calcula, de acuerdo a un umbral de proximidad prefijado, el número de puntos de contorno de la imagen que están en consenso con el modelo. La eficiencia del algoritmo RANSAC estándar se ve mejorada si la elección de las muestras se guía de alguna manera, como alternativa a hacer un muestreo puramente aleatorio entre todos los puntos de contorno. Esto se hace en el caso del sistema de visión del vehículo en dos etapas: • Dividiendo el área de la imagen en tres zonas que se procesarán por separado. En cada una de estas zonas aparecerá previsiblemente una marca vial correspondiente a cada una de las líneas que aparecen en la calzada: en el área izquierda la línea continua del arcén izquierdo de la vía, en el área central la línea discontinua de la calzada y en el área derecha la línea continua del arcén derecho. Esta división permitirá extraer por separado cada una de las líneas rectas presentes en la imagen, sin que se mezclen los puntos de cada una de ellas en el proceso de detección haciendo de esta forma más eficiente y precisa la detección. • Imposición de una restricción adicional de distancia entre las muestras aleatorias cada región con objeto de obtener modelos de recta significativos. Si el hipotético modelo de recta se genera a partir de una muestra con dos puntos muy próximos, este va a ser muy impreciso y va a tener pocas posibilidades de prosperar. 272 El principio del algoritmo consiste en buscar el mejor modelo de recta entre todos los puntos de contorno seleccionando aleatoriamente muestras de dos puntos. Se calculan entonces los parámetros de la recta que pasa por los puntos de la muestra y se establece el conjunto de consenso, es decir, los puntos en la imagen de contornos original que pertenecen a la recta, calculados de acuerdo a un umbral de proximidad dado. Este procedimiento se repite K veces, como se muestra en la descripción del algoritmo básico que aparece en la tabla 1. Después de K iteraciones, si el número de puntos del mejor conjunto de consenso encontrado es superior a un umbral preestablecido el modelo se asume como válido. Como los parámetros del modelo estimado por RANSAC no serán muy precisos, al ser obtenidos a partir de únicamente dos puntos, se suelen recalcular estos parámetros empleando técnicas de mínimos cuadrados sobre todo el conjunto de puntos que soportan ese modelo. El número de iteraciones K puede determinarse a partir de la probabilidad P de encontrar al menos un conjunto bueno libre de outliers. El RANSAC es un algoritmo no determinista que proporciona un buen modelo sólo con una cierta probabilidad y esta probabilidad se incrementa cuantas más iteraciones se lleven a cabo. En general, al algoritmo se le añade algún criterio de parada, típicamente asociado al momento en el que el número de puntos en consenso sobrepasa un umbral preestablecido. Si consideramos un número de puntos N con una fracción de inliers , la probabilidad de seleccionar una muestra con todos inliers es , siendo s el tamaño de la muestra y considerando que s<<N. La probabilidad de no seleccionar una muestra formada totalmente por inliers será y la probabilidad de no seleccionar una muestra buena en K iteraciones. Entonces, la probabilidad de seleccionar una muestra no contaminada en K intentos al menos una vez será . Por tanto, el número de iteraciones que son necesarios para obtener el modelo con una probabilidad predeterminada P es: (1) Para determinar el número K de iteraciones, se eligen normalmente valores de probabilidad P bastante conservadores, entorno al 95%. En la aplicación que nos ocupa, considerando el porcentaje típico de inliers que aparecen en las imágenes, hemos obtenido que con diez iteraciones bastan para encontrar la recta correcta, lo cual hace que el algoritmo proporcione el resultado realmente rápido como se muestra en la Figura 4. Otro parámetro que es preciso establecer en el algoritmo RANSAC es la tolerancia, que hace referencia a la distancia máxima que puede tener un punto al modelo para que sea considerado como inlier. El valor de la tolerancia no debe ser excesivamente bajo para poder asumir los errores del ruido y la digitalización en los puntos de contorno, pero tampoco muy elevado de forma que puntos espurios sean tomados como inliers. Figura 4.- Resultado de interacción del algoritmo para varias rectas para el cálculo de trayectoria. 4.2 MÓDULO DE CONTROL DE MOVIMIENTO El módulo de control de movimiento determina las referencias de velocidad lineal y angular que debe realizar el vehículo para seguir la carretera, para lo que utiliza un controlador PID en función de la distancia y ángulo a la línea referencia que debe seguir. Figura 5.- Detalle de línea de referencia que debe seguir el vehículo. Este se representa mediante circulo con vector de orientación. e s e )1( s e - Ks )1( e - Ks P)1(1 e --= )1log( )1log( s P K e - - = Tabla 1. Algoritmo RANSAC Hasta realizar K iteraciones I. Hipótesis (i) Obtener una muestra al azar de 2 puntos de contorno de entre todos los puntos de contorno. (ii) Calcular los parámetros de la recta que pasa por esos 2 puntos. II. Verificación (iii) Determinar el conjunto de consenso, es decir, los puntos en la imagen de contornos que se ajustan a la recta con una tolerancia. (iv) Si el número de inliers en el conjunto de consenso es el mayor encontrado, guardar los parámetros de este modelo. End distancia angulo 273