Tecnologías detrás del Automóvil Conectado

Publicado en

Está muy bien que platiquemos sobre las posibilidades del automóvil conectado, los escenarios de uso que abre y el impacto que tendrá en distintas industrias. Pero como desarrolladores de software, una de las preguntas que inevitablemente nos hacemos es: ¿cómo podemos desarrollar aplicaciones para este segmento?, ¿qué tecnologías se utilizan y dónde puedo aprender al respecto?, ¿qué oportunidades están abiertas para desarrolladores externos?

Para contestar dichas preguntas, echemos un vistazo a las principales áreas en las que se puede construir soluciones para el automóvil conectado, así como las empresas que están detrás.

Capas aplicativas

Los automóviles modernos utilizan software para resolver distintos aspectos. Aunque no hay un estándar de los distintos grupos aplicativos, en general podemos reconocer los de telemática, infotainment, instrumentación, ADAS y conducción autónoma. A continuación explico cada uno.

Infotainment

Como su nombre lo indica, esta capa ofrece servicios de información y entretenimiento, apoyándose en las capacidades de conectividad, audio y despliegue de información en pantallas. Esto se puede utilizar tanto para escenarios de productividad (ej. hacer llamadas telefónicas, escuchar mensajes de correo) como de entretenimiento (servicios de música, juegos o video para pasajeros).

Telemática

La capa de telemática brinda información sobre la actividad, historial y ubicación de un automóvil. El uso más básico de estos servicios es para construir aplicaciones de navegación por GPS, asistencia en el camino o localización de autos robados. Sin embargo, al contar con la información del estado de un automóvil, tanto histórico como en tiempo real, y combinarlas con servicios de analítica predictiva las posibilidades aplicativas son infinitas. Por ejemplo:

  • Ofrecer pólizas de seguro personalizadas a los hábitos de manejo de un conductor.

  • Alertar al conductor cuando se esté acercando a un cruce donde hay una alta incidencia de accidentes.

  • Alertar al conductor cuando se esté estacionando en un lugar prohibido, o de alto riesgo.

Si adicionalmente combinamos esta información con la capacidad de identificar al conductor (por medio de biométricos o con mecanismos más rudimentarios como contraseñas), podemos habilitar escenarios tales como restringir a que nuestros hijos solo puedan manejar dentro de cierta área geográfica o llegar a cierto límite de velocidad.

Cluster de instrumentos

El cluster de instrumentos es el espacio que despliega información crítica para el conductor, tal como velocidad, temperatura y alertas. En los automóviles modernos se está comenzando a utilizar pantallas digitales en lugar de los tradicionales medidores análogos. En principio podríamos pensar que esto se podría delegar al sistema de infotainment, sin embargo acostumbra manejarse como una capa distinta ya que se requiere desempeño en tiempo real con alta confiabilidad. En otras palabras, no hay mucho problema si el sistema de entretenimiento no despliega correctamente los metadatos de una canción, pero sí hay problema si no sabemos que el auto está sobrecalentado. Es por ello que el cluster de instrumentos requiere operar a bajo nivel sobre un OS para tiempo real conectado al bus interno del automóvil, mientras que el sistema de infotainment opera más arriba sobre frameworks orientados a la información y conectividad externa.

Asistencia de manejo

Esta capa, conocida en inglés como ADAS (advanced driver assistance systems) contiene servicios y aplicaciones para ayudar al conductor a manejar el automóvil, por ejemplo alertar al conductor cuando se detectan objetos cercanos o se está saliendo del carril. Los servicios no solo son de alerta, sino que incluso también pueden controlar cierto aspecto del automóvil, como por ejemplo el frenado de emergencia o el control de velocidad adaptativo (adaptive cruise control). La figura 1 muestra los principales componentes involucrados en estos sistemas y las principales empresas proveedoras para cada uno.

Conducción autónoma

Se refiere a la plataforma que habilita que un automóvil pueda conducirse de manera autónoma. Involucra la operación de los sensores, motor de analítica/decisión, y control del automóvil.

Como es de esperarse, las capas que están más cercanas al control del automóvil (instrumentos, ADAS, conducción autónoma) típicamente son cerradas y como desarrolladores externos no hay mucha posibilidad de interactuar con ellas. En contraste, la capa de infotainment es donde hay mayor apertura y dinamismo. En la siguiente sección revisamos a los principales jugadores y plataformas.

Figura 1. Componentes y proveedores ADAS

Plataformas y proveedores

A continuación describo las que considero las plataformas de software más relevantes para automóvil conectado.

QNX

QNX Software Systems es parte de BlackBerry (fue comprada en 2010), y es líder de mercado en el segmento automotriz. El corazón de su tecnología es el Neutrino RTOS, un sistema operativo de tiempo real basado en Unix que destaca por su arquitectura de microkernel.

QNX tiene una alta penetración en las áreas de telemática e infotainment. Automóviles de marcas como Audi, BMW, Ford, Honda y General Motors, entre otros, utilizan esta plataforma. Típicamente, QNX opera como plataforma de bajo nivel, y las marcas construyen sus propias aplicaciones sobre esta.

El desarrollo de aplicaciones para QNX se hace en C++ utilizando el framework Qt. Específicamente en la capa de infotainment (QNX Car Platform for Infotainment) también se puede utilizar tecnologías web como HTML5 y Javascript. [1]

Linux

Linux ha sido una opción común para las marcas que construyen su propio OS para automóviles. De hecho, el software que opera los automóviles Tesla está basado en Linux, sin embargo es cerrado.

En 2009 se creó la GENIVI Alliance con el objetivo de impulsar la adopción de software open source en sistemas de infotainment. Entre los miembros de alto nivel están empresas como BMW, Honda, Nissan, Daimler y Volvo. El principal resultado de esta alianza es la Genivi Development Platform (GDP), una plataforma abierta basada en Linux para construir aplicaciones de infotainment. GDP puede funcionar sobre distintas arquitecturas de hardware tales como Intel, NVidia, Qualcomm e incluso tabletas de bajo costo como Raspberry Pi. [2]

Otra iniciativa que vale la pena notar es Automotive Grade Linux (AGL), que es operada por la Linux Foundation. Actualmente, la plataforma de AGL solo cubre infotainment, lo cual la hace parecer redundante con GENIVI, pero a diferencia de esta última AGL busca cubrir todo el espectro de software para un automóvil incluyendo telemática, clúster de instrumentos, ADAS y conducción autónoma. Aunque ambas organizaciones son abiertas, y hay muchas empresas que forman parte de ambas, hay empresas con mayor peso detrás de cada una. Por ejemplo, en el caso de GENIVI BMW es uno de los miembros con mayor protagonismo mientras que en el caso de AGL es Toyota. De hecho, el primer despliegue de AGL en un automóvil comercial será el sistema de infotainment del Camry 2018. [3]

Apple CarPlay

CarPlay es básicamente un mecanismo que permite ver y controlar las apps de un iPhone desde la consola de infotainment de un automóvil. Varios automóviles ya lo soportan y funciona con dispositivos iPhone 5 o superior.

Android Automotive

A lo largo de los años Android ha tenido distintos acercamientos en el área de infotainment en automóviles. Posiblemente lo más conocido es Android Auto, que es prácticamente lo mismo que CarPlay (mostrar y controlar las apps de tu smartphone desde el sistema de infotainment), pero para Android.

Otra posibilidad es instalar una capa de Android directamente como sistema de infotainment (sin necesidad de un smartphone). Algunas marcas ya han intentado esto, tomando el código fuente de Android y modificándolo ellos mismos. Al no ser un esfuerzo oficialmente soportado por Google, los resultados no han sido óptimos ya que modificar el sistema operativo no es trivial y requiere bastante esfuerzo por lo que los automóviles terminan usando versiones de Android anticuadas; por ejemplo, el Honda Accord 2017 usa Android 4.2, un sistema operativo del 2012. La buena noticia en este sentido es que Google anunció en mayo del 2017 la iniciativa Android Automotive, que básicamente será una versión de Android optimizada para el automóvil y oficialmente soportada por Google. Volvo y Audi están contemplando incluirlo en algunos modelos de 2019. [4]

SmartDeviceLink

SmartDeviceLink (SDL) es, al igual que CarPlay y Android Auto, un framework para que los smartphones puedan interactuar con los sistemas de infotainment de los automóviles. La diferencia es que SDL es abierto e independiente de Apple y Google. SDL fue originalmente creado por Ford, pero fue donado como open source y actualmente está siendo adoptado por varias automotoras, entre ellas Toyota (parece ser que el Camry 2018 que usará Automotive Grade Linux también soportará SDL para interactuar con smartphones).

De las distintas tecnologías para interactuar desde el smartphone con el automóvil, SDL es la que me parece más amigable para desarrolladores terceros. En su sitio web [5] puedes encontrar guías de arranque, y los SDK están disponibles en GitHub.

Otra capacidad atractiva para desarrolladores de SDL es Manticore. Esta es una instancia del core de SDL disponible en línea para que puedas probar cómo se comporta tu app en un automóvil con SDL. Lo único que haces es entrar desde un navegador web a Manticore [6], apuntar tu aplicación hacia el URL y puerto que te indique, y se cargará en el navegador tu app corriendo para que puedas probar las interacciones y depurarla (ver figura 2). Su uso es gratuito, simplemente regístrate como desarrollador SDL.

Figura 2. Manticore permite probar apps en SDL desde tu navegador

Microsoft Connected Vehicle

Microsoft fue uno de los pioneros en el área de sistemas operativos para infotainment, lanzando Microsoft Auto en 1998 que después de varios cambios de nombre terminó como Windows Embedded Automotive. Las primeras dos generaciones del sistema Sync de Ford estaban basadas en este sistema operativo, sin embargo en 2014 Ford movió Sync hacia QNX. En 2016 Microsoft hizo un cambio drástico de estrategia, abandonando la intención de ser el sistema operativo del automóvil y enfocándose en ofrecer servicios basados en la nube que habiliten aplicaciones en el automóvil. Esta iniciativa actualmente lleva el nombre de Microsoft Connected Vehicle y entre otras cosas abarca servicios de infotainment (llamadas por Skype, servicios de Cortana), analítica predictiva basada en telemática, e información en tiempo real sobre las condiciones del camino. [7]

Sistemas de cómputo

Una batalla no menos interesante es la que se está dando en el lado del hardware sobre el que se ejecuta el sistema operativo del automóvil. Hasta hace poco, los automóviles usaban sistemas en chip (SoC) de gama relativamente baja. Sin embargo, conforme los automóviles se hacen más inteligentes demandan soluciones expresamente diseñadas para este segmento y con mayor poder. Estos son los jugadores y lo que están haciendo …

Renesas Electronics, una empresa de origen japonés especializada en semiconductores y microcontroladores para el sector automotriz es uno de los jugadores originales de este segmento. Aunque tradicionalmente ha estado enfocada en el área de instrumentación  y ADAS, recientemente mostró un prototipo de vehículo autónomo.

NVIDIA se ha posicionado rápidamente como líder en cómputo para inteligencia artificial para conducción autónoma, siendo la elección de marcas como Tesla y Toyota. Su oferta para automóviles considera: Drive PX, una tarjeta de cómputo basada en GPUs optimizada para procesar la información captada por las cámaras y sensores del automóvil; Driveworks, un SDK con herramientas y bibliotecas para construir capacidades de conducción autónoma y NVIDIA DGX que son sistemas para el centro de datos optimizados para aprendizaje profundo (deep learning), estos sistemas analizan los datos obtenidos por los automóviles, los analizan y en base a ello entrenan a la computadora del automóvil. Es por ello que Tesla indicó que el Modelo S ya incluye todo el hardware necesario para conducción autónoma pero esta capacidad será activada hasta que se hayan analizado suficientes horas de conducción, lo que está sucediendo es que estos automóviles vienen equipados con una computadora Drive PX que estará enviando información al centro de datos para ser analizada y en base a ello entrenar a la computadora a bordo para tomar decisiones instantáneas. [8]

Intel recientemente lanzó la línea de SoC Atom A3900 orientada específicamente al sector automotriz. Este sistema está diseñado para habilitar clusters de instrumentos y sistemas de infotainment. Sin embargo, la meta importante para Intel está en alcanzar a NVIDIA en el ámbito de cómputo para conducción autónoma. Su estrategia es similar, contemplando una computadora SoC a bordo del automóvil que se comunique con sistemas en un centro de datos donde se haga el aprendizaje profundo; sin embargo, la oferta de Intel también considera la plataforma para comunicación inalámbrica utilizando tecnología 5G. [9]

Qualcomm ha sido un poco lento en entrar al espacio automotriz, pero ya está corrigiendo el rumbo. Por el momento está empujando el Snapdragon 820a como SoC para habilitar capacidades de infotainment y telemática. Su propuesta hace fuerte énfasis en la conectividad, de hecho uno de los puntos a destacar del Qualcomm Connected Car Reference Platform que estará disponible en la segunda mitad del 2017 es que se basa en el modem X16 LTE que puede alcanzar velocidades de Gigabit. Más allá de esto, la reciente compra de NXP Semiconductors habilitará a Qualcomm para ofrecer sistemas automotrices más avanzados y de conducción autónoma. [10]

Bosch y su omnipresencia

Conforme me acerco al final de este artículo considero que me hace falta mencionar a Bosch, pero confieso que no encuentro donde acomodarlos, ya que están involucrados en distintos niveles. Bosch tiene una amplia tradición como proveedor de partes para el automóvil tradicional, pero se ha modernizado junto con el automóvil. Bosch también provee sensores y componentes para manejo asistido (ADAS), así como componentes clave para vehículos eléctricos.

Entre las tecnologías que ha creado Bosch para el automóvil moderno está CAN (Controller Area Network) [11] que es el bus de comunicación que conecta todos los sensores y componentes electrónicos. Es un protocolo de comunicación serial que soporta control en tiempo real con alta seguridad, y que prácticamente todos los automóviles modernos utilizan.

Pero más allá de los componentes individuales para automóviles, lo que destaca a Bosch es su visión y capacidad para soluciones integrales en el contexto de ciudades inteligentes. Un ejemplo de esto sería un sistema de estacionamiento inteligente donde un automóvil que está buscando lugar de estacionamiento pueda ser informado por la red de automóviles en la cercanía sobre dónde hay lugar disponible. Este tipo de soluciones involucra una gran cantidad de subsistemas tales como la inteligencia artificial para detectar lugares, comunicación entre vehículos y coordinación con infraestructura de la ciudad. Bosch es una de las pocas empresas que está pensando a ese nivel, y que tiene amplias capacidades tanto a nivel de ingeniería de bajo nivel como de integrar “sistemas de sistemas”. Por cierto, vale la pena mencionar que Bosch recientemente abrió un centro de desarrollo de software y servicios de ingeniería en Guadalajara, así que seremos testigos de cerca de lo que hagan en este espacio. [12]

Conclusión

El automóvil conectado involucra una gran variedad de tecnologías y empresas que lo habilitan. En este artículo echamos un vistazo a algunos de los jugadores clave y sus estrategias. Algunas de estas tecnologías son cerradas o fuera del alcance de los desarrolladores independientes, pero hay otras que son abiertas y con las que cualquiera puede comenzar a experimentar. Así que si te interesa, te invito que consultes los enlaces que comparto en la sección de referencias para conocer más.

Referencias

  1. http://www.qnx.com/content/qnx/en/products/qnxcar
  2. https://www.genivi.org
  3. https://www.automotivelinux.org
  4. https://source.android.com/devices/automotive
  5. https://www.smartdevicelink.com
  6. https://smartdevicelink.com/resources/manticore/
  7. https://www.microsoft.com/en-us/internet-of-things/connected-vehicles
  8. http://www.nvidia.com/object/drive-px.html
  9. https://www.intel.com/content/www/us/en/automotive/automotive-overview.html
  10. https://www.qualcomm.com/solutions/automotive
  11. https://www.canbus.us
  12. http://www.bosch-mobility-solutions.com
Bio

Pedro Galván es director editorial de Software Guru.