Sistemas avanzados de asistencia al conductor
3 cosas que es necesario saber
Los sistemas avanzados de asistencia al conductor (SAAC) son componentes de hardware y software que automatizan las tareas de un conductor. Algunos ejemplos actuales de SAAC en los vehículos son el control de crucero adaptativo, la detección de cambio de carril, el seguimiento de carril automático, la detección de punto ciego y el frenado de emergencia automático.
Los sistemas SAAC ayudan a reducir errores humanos y hacer que las carreteras sean más seguras. Algunos sistemas SAAC promueven la conducción segura, ya que alertan a los conductores sobre posibles situaciones peligrosas; por ejemplo, cuando la presencia de un vehículo en el punto ciego implica un cambio de carril peligroso. Otros sistemas SAAC automatizan acciones de conducción; por ejemplo, el frenado de emergencia autónomo para evitar colisiones.
De hecho, los sistemas SAAC previenen el 28% de los accidentes y 9.900 muertes por año en los Estados Unidos, según un estudio de Boston Consulting Group.
Niveles de SAAC
Hay cinco niveles de automatización de la conducción, según la definición de la Sociedad de Ingenieros de Automoción (SAE). Actualmente, la mayoría de los automóviles en circulación cuentan con funcionalidades de SAAC de nivel 0 a nivel 3. Las empresas a la vanguardia de la conducción autónoma pretenden llegar a los niveles 4 y 5.
Los vehículos completamente autónomos se convertirán en realidad cuando se resuelvan los problemas de seguridad, ciberseguridad y reglamentarios.
Para comprender cómo se diseñan las funcionalidades de SAAC, utilizaremos el control de crucero adaptativo como ejemplo. Cuando se utiliza esta funcionalidad de SAAC, el automóvil reduce la velocidad a medida que se acerca al vehículo situado delante, y acelera hasta la velocidad de crucero cuando el vehículo situado delante se aleja hasta una distancia segura.
El primer paso en el diseño del control de crucero adaptativo (CCA) es recopilar datos de los sensores instalados en el automóvil. El control de crucero adaptativo utiliza una cámara y un sensor de radar. La cámara detecta los objetos presentes en la imagen (vehículo, peatón, árbol, etc.), y el radar calcula la distancia entre el vehículo y cada objeto.
Después de recopilar datos de los sensores, el siguiente paso consiste en desarrollar algoritmos de SAAC. El control de crucero adaptativo se puede dividir en tres pasos:
Los pasos 1, 2 y 3 corresponden a:
- Un algoritmo de percepción para detectar si hay un vehículo situado delante
- Un algoritmo de radar para calcular la distancia entre los dos vehículos
- Un algoritmo de control para ajustar la velocidad del vehículo en función de la distancia medida
Hemos utilizado el CCA como ejemplo de SAAC, pero la metodología general de elegir los sensores correctos y diseñar algoritmos basados en los datos de los sensores se aplica a todas las funcionalidades de SAAC.
La importancia de los sensores
Los tres tipos de sensores más utilizados para las funcionalidades de SAAC son cámaras, radar y LiDAR.
Cámaras
Las cámaras se utilizan para tareas de SAAC relacionadas con la detección. Las cámaras laterales de un vehículo detectan los puntos ciegos. Las cámaras frontales detectan carriles, vehículos, señales, peatones y ciclistas. Los algoritmos de detección de SAAC correspondientes se suelen crear con algoritmos convencionales de visión artificial y Deep Learning. Las cámaras tienen varias ventajas:
- Proporcionan datos excelentes para la detección de objetos
- Son relativamente económicas: su reducido precio permite a los fabricantes probar muchos tipos de cámaras
- Hay muchas variedades: se pueden probar y elegir muchos tipos de cámaras, tales como ojo de pez, monoculares y estenopeicas
- Son las más investigadas: la cámara es el tipo de sensor más antiguo y el más estudiado
La desventaja de trabajar con datos de cámaras es que son menos adecuados para detectar la distancia a un objeto, en comparación con los datos de otros tipos de sensores. Por esta razón, los desarrolladores de SAAC suelen usar cámaras junto con radares.
Radar
Los sensores de radar emiten ondas de alta frecuencia y registran cuándo estas ondas regresan a ellos desde los objetos del entorno. Estos datos se pueden emplear para calcular la distancia a un objeto. En los sistemas SAAC, los sensores de radar normalmente se encuentran en la parte delantera del vehículo.
El radar funciona en diferentes condiciones climáticas, lo que lo convierte en una opción de sensor práctica para funcionalidades de SAAC tales como el frenado de emergencia automático y el control de crucero adaptativo.
Aunque los datos de sensores de radar son adecuados para algoritmos de detección de distancia, resultan menos útiles en algoritmos para clasificar los objetos detectados. Por esta razón, los desarrolladores de SAAC suelen utilizar radares junto con cámaras.
LiDAR
Los sensores de LiDAR (detección y distancia por luz) emiten un láser al entorno y registran cuándo la señal regresa. Las señales devueltas se reconstruyen para crear una nube de puntos en 3D que muestra el entorno circundante del LiDAR. Los datos de LiDAR se pueden usar para calcular la distancia del sensor con respecto a los objetos de la nube de puntos en 3D.
En las aplicaciones de SAAC se usan dos tipos de sensores de LiDAR:
- LiDAR electromecánico (giratorio): el LiDAR electromecánico se monta en la parte superior de un automóvil y gira mientras recopila datos para producir un mapa de nube de puntos en 3D del entorno.
- LiDAR de estado sólido: se trata de un tipo de LiDAR más reciente sin piezas móviles. A largo plazo, el LiDAR de estado sólido promete ser más rápido, económico y preciso que el LiDAR electromecánico. No obstante, diseñar un sensor comercialmente viable plantea problemas de ingeniería relacionados con la seguridad y el alcance del sensor.
Los datos de LiDAR se pueden usar para funciones de detección de distancia e identificación de objetos en SAAC. Sin embargo, procesar datos de LiDAR requiere más capacidad de cálculo en comparación con datos de cámaras y radar, y plantea algunos problemas que suponen un desafío para los desarrolladores de algoritmos de SAAC.
Desarrollo de algoritmos de SAAC con simulación
Las pruebas en hardware son costosas, por lo que los ingenieros recurren en primer lugar a la simulación virtual para probar las soluciones de SAAC. Los entornos de simulación pueden ser en 2D o 3D.
Puede utilizar la simulación en 2D para desarrollar y probar algoritmos de SAAC para cámaras y radares. Primero se crean escenas virtuales con carreteras, peatones, ciclistas y otros vehículos. Luego, se coloca un vehículo de prueba en la escena al que se le instalan cámaras virtuales y sensores de radar. Después, se programa el movimiento del automóvil para generar datos de sensores sintéticos con los que desarrollar y probar el algoritmo de SAAC.
La simulación en 3D se basa en la simulación en 2D, y permite probar el LiDAR, además de las cámaras y los radares. Los entornos en 3D requieren más capacidad de cálculo debido a su relativa complejidad.
Después de desarrollar algoritmos de SAAC en entornos de simulación, la siguiente etapa de desarrollo son las pruebas de hardware-in-the-loop (HIL). Los algoritmos de SAAC se prueban en hardware real de automóviles, como un sistema de frenado real, conectándolos a un entorno de simulación. Las pruebas de HIL proporcionan una idea bastante aproximada de cómo funcionará un componente de SAAC de un automóvil en el mundo real.
Existen otras pruebas de SAAC, como driver-in-the-loop, pero todas consisten en realizar pruebas en el vehículo para comprender cómo funcionará cuando se encajen todas las piezas. Estas son las pruebas de SAAC más costosas, pero también las más precisas, y son obligatorias antes de que un vehículo pueda pasar a producción.
MATLAB® y Simulink® soportan el desarrollo de SAAC en todas las etapas del flujo de trabajo:
- Análisis de datos
- Síntesis de escenarios de conducción
- Diseño de algoritmos de planificación y control de SAAC
- Diseño de algoritmos de percepción
- Despliegue de algoritmos
- Integración y pruebas
Análisis de datos
MATLAB permite acceder, visualizar y etiquetar datos de conducción grabados y en tiempo real para desarrollar sistemas SAAC. MATLAB también admite datos de mapas geográficos a través de HERE HD Live Maps, OpenStreetMap y Zenrin Japan Maps. Estos datos se utilizan con frecuencia para desarrollar y verificar algoritmos de SAAC.
Síntesis de escenarios de conducción
MATLAB permite desarrollar y probar algoritmos de SAAC en escenarios virtuales utilizando el entorno de simulación de cuboides para sistemas de control, fusión de sensores y planificación de trayectorias, así como el entorno Unreal Engine para percepción. También se pueden diseñar escenas en 3D realistas con RoadRunner.
Diseño de algoritmos de planificación y control de SAAC
MATLAB cuenta con muchas aplicaciones de referencia de conducción autónoma que puede emplear como punto de partida para diseñar sus propios algoritmos de planificación y control de SAAC.
Diseño de algoritmos de percepción
MATLAB proporciona herramientas para desarrollar algoritmos de percepción a partir de datos de cámaras, radar y LiDAR. Puede desarrollar algoritmos utilizando visión artificial, Deep Learning, procesamiento de radar y LiDAR, y fusión de sensores.
Despliegue de algoritmos de SAAC
Toolboxes como MATLAB Coder™, Embedded Coder® y GPU Coder™ permiten generar código automáticamente para desplegar algoritmos de SAAC en dispositivos integrados y arquitecturas orientadas a servicios, tales como ROS y AUTOSAR.
Integración y pruebas
Puede integrar y probar sistemas de percepción, planificación y control con las herramientas que ofrece Simulink. Requirements Toolbox™ permite capturar y gestionar requisitos de SAAC. También puede utilizar Simulink Test™ para ejecutar y automatizar casos de prueba en paralelo.
Productos relacionados: Automated Driving Toolbox™, Computer Vision Toolbox™, Lidar Toolbox™, Radar Toolbox, RoadRunner, RoadRunner Asset Library, RoadRunner Scene Builder