Autos autónomos en código abierto

(Artículo de Forbes 2019)

imagen
Brad Templeton con una versión temprana del Stanford Robocar.

Sobre el autor: Brad Templeton es ingeniero de software, evangelista de automóviles robóticos desde 2007, trabajó en Google en sus primeros años. Fundador de ClariNet , presidente honorario de la Electronic Frontier Foundation y director del Foresight Institute , fundador de la facultad de Singularity University .

Es difícil seguir las reglas del desarrollo abierto o los inventos de aficionados cuando creas un robot que pesa 1.3 toneladas y lo envías a pasear por las calles entre peatones. Sin embargo, los innovadores aficionados son muy importantes para cualquier tecnología en desarrollo. ¿Cómo resolver la contradicción?

Recientemente, ha habido varios anuncios interesantes en el campo del desarrollo de código abierto.

  • Cruise abrió el código fuente de Worldview, un visualizador de robots . Este es un conjunto de herramientas que facilita la creación de representaciones gráficas de sensores, áreas sensoriales y otros datos para comprender lo que su máquina ve y hace.
  • Uber también lanzó su kit de herramientas AVS para una visualización similar.
  • Baidu lanzó hace algún tiempo el proyecto Apollo , que incluye un conjunto completo de herramientas y un simulador.

También se han lanzado paquetes de código abierto de UDacity, EB Robinos, Autoware, Nvidia y comma.ai. Y aunque no estamos en el nivel en el que pueda descargar un conjunto de herramientas y crear un automóvil de aficionados, esta vez vendrá.

Tengo una larga historia de trabajo con herramientas de código abierto, y he lanzado varios paquetes de software de código abierto bajo licencias gratuitas. Como presidente de la Electronic Frontier Foundation, a menudo defendía los derechos de dicho software.

Estas herramientas ayudarán a los desarrolladores a trabajar más rápido y a unirse para crear los mejores autos autónomos. Esto es especialmente cierto para las herramientas utilizadas para crear software para máquinas robóticas, ya que existe un fuerte incentivo para la colaboración en esta área. Los equipos integrarán componentes útiles de código abierto en sus máquinas, si las licencias lo permiten. Algunos equipos incluso podrán crear vehículos completamente utilizando código abierto. Hay ejemplos de proyectos de código abierto que superan con creces las iniciativas comerciales mucho más costosas. Además de esto, hay buenas razones para argumentar que las herramientas de código abierto pueden ser más seguras, ya que cada parte está bajo el escrutinio de todo el mundo. Por supuesto, los atacantes ven la fuente y esto puede ayudarlos a encontrar vulnerabilidades, pero hay muchos más buenos que también ven este código y trabajan para protegerlo.

Se espera todo esto, pero también hay un problema para una persona que es una estrella de los métodos de desarrollo de código abierto: maestros únicos. Las personas que mejoran los sistemas hacen esto simplemente porque los usan ellos mismos y quieren mejorarlos y compartir sus éxitos. Dichas personas son las principales responsables de la mayoría de las herramientas abiertas que utilizamos, aunque algunos proyectos importantes y grandes, por supuesto, fueron creados por grandes equipos con financiación profesional.

¿Puede tomar un conjunto de software de código abierto, descargarlo a su máquina y hacer que funcione solo mientras mira televisión? ¿Puedes hacerla trabajar sin conductor para que pueda ir a recogerte? ¿Puedes hacer cambios a tu gusto o descargar otras modificaciones y seguir con ellos? Esta es una pregunta mucho más complicada.

La gente hace estas cosas todo el tiempo en otras áreas de programación. Sin embargo, el teléfono es muy diferente del automóvil. Un agujero de seguridad en su teléfono puede dar a los atacantes acceso a sus datos personales, incluso información de facturación, y esto es grave. Pero la vulnerabilidad en un automóvil puede costarle a usted u otras personas en el camino.

Auto certificación


Hoy en día, los reguladores tienen una política de no intervención. Y aunque están adelantados y crean reglas para tecnologías que aún no existen, se centran principalmente en las condiciones de autocertificación para las máquinas producidas por los principales actores del mercado.

La autocertificación significa que la compañía está probando la máquina y declara que realmente cumple con los objetivos y requisitos de seguridad establecidos en las reglas, y que terceros o el estado no verifican nada de esto. En cambio, si resulta que la compañía cometió un error o, peor aún, mintió sobre el cumplimiento de los requisitos, entonces serán torturados en los tribunales. Idealmente, este debería ser un tormento que motive a las empresas a realizar pruebas incluso mejor que cualquier tercero o estado.

No es tan dificil. La verdad es que nadie sabe cómo crear un centro de pruebas independiente, ya que no está claro qué comprobará o cómo funcionará. Ni siquiera el gobierno mismo tiene una pista. Para los autos comunes, hay pruebas que se entienden bien, por ejemplo, pruebas de choque. Además, el número de aspectos que son verificados por organizaciones externas es muy diferente de un país a otro. Pero en la mayoría de los casos, las personas que crean automóviles o componentes para ellos saben mucho más sobre las comprobaciones de seguridad y la confirmación que cualquier otra persona, y motivar a los fabricantes a ser honestos es una técnica efectiva.

En el caso de las máquinas robóticas, tales pruebas solo pueden llevarse a cabo a través de un estudio en profundidad del software y su funcionamiento. Debe comprender esto para poder hacer esto. Hay varias pruebas universales que pueden ser realizadas por laboratorios independientes, y que serán realmente útiles. Con el tiempo, aparecerán más pruebas y más laboratorios para ellos, pero los desarrolladores crearán nuevos enfoques que no encajarán en las pruebas anteriores. Los estándares y las reglas pueden definir técnicas relevantes generalmente aceptadas ya corto plazo, que no son muy útiles en un campo que cambia rápidamente en el que se inventan nuevos enfoques regularmente.

Valor


Si bien la autocertificación parece ser el único sistema que funciona para un solo maestro, desafortunadamente, los principios básicos de este sistema requieren que el certificador tenga suficiente peso para confirmar sus afirmaciones. Una persona, por regla general, no tiene los medios para evitar el tormento de la falta de una certificación adecuada. Grupos de personas pueden evitar tales situaciones, pero es difícil incluso para ellos. Las pruebas también serán costosas si están certificadas por un tercero. Todo esto significa que esta es una práctica poco frecuente que se puede llevar a cabo racionalmente solo para el software que ejecuta miles de automóviles.

Incluso si hay un paquete de software certificado como seguro, ¿qué sucede si realiza cambios relevantes para partes importantes del código que afectan la seguridad? ¿Puedes conducir un coche así en la carretera con muchos obstáculos? Esta sigue siendo una pregunta difícil.

Soluciones


Una posible solución sería comprar un seguro. Desafortunadamente, esto también tiene sus dificultades. Lo más probable es que el riesgo sea mayor que el que cubre el seguro moderno típico. Además, las compañías de seguros no tienen métodos para determinar qué tan buen programador es usted y qué tan seguras son sus modificaciones.

Debería poder hacer sus modificaciones y conducir en la carretera en modo de conducción segura con al menos una persona, y probablemente dos probadores, que estén monitoreando el nuevo software y estén listos para tomar el control en caso de cualquier problema. Esta es la forma en que los autos se prueban hoy; Así fue con el piloto automático Tesla. Esto funciona, pero solo para desarrolladores serios que están dispuestos a invertir mucho tiempo y recursos, y no funciona para aficionados que solo desean hacer cambios en el software de sus automóviles.

Puede haber una situación en la que el programador, después de una pequeña verificación de manejo seguro, pueda enviar sus ediciones a una organización más grande que pueda integrar estas ediciones en sus pruebas. Pueden probar cientos de modificaciones (disjuntas) de diferentes desarrolladores al mismo tiempo. Estos programadores podrán compartir el costo de esto y no solo probar juntos para llevar su código al nivel en el que es posible la certificación. Sin embargo, sigue siendo costoso.

"Mentor"


También es posible crear un tipo de software "mentor". Puede ser un programa certificado simple, que es un controlador seguro y automatizado. De hecho, este programa puede tomarse del núcleo de un sistema reconocido y altamente confiable que tiene todos los certificados de seguridad. Su máquina funcionará en su propio sistema modificado, pero al mismo tiempo, el "mentor" supervisará constantemente su trabajo. Si su sistema hace algo que al mentor no le gusta, entonces él tomará el control sobre sí mismo y conducirá el automóvil a un lugar seguro o a su hogar.

El mentor conducirá con cuidado. Esto significa que con esta técnica, no puedes crear nada más agresivo que eso. Si el mentor dice que debe detenerse, y su programa dice que necesita ir, entonces su programa está apagado. La gestión humana puede tener mayor prioridad que un mentor. Las funciones que requieren más permisos de los que puede dar el mentor no son factibles para el desarrollo y las pruebas en las carreteras por parte de maestros únicos, aunque aún pueden trabajar en ellas en simuladores.

De hecho, los simuladores son la salvación de los ingenieros aficionados, especialmente teniendo en cuenta que los simuladores son cada vez mejores. Existen para encontrar rápidamente problemas y soluciones fallidas en nuevos parches, así como para garantizar que antes de conducir en la carretera, el automóvil entrena en un kilometraje virtual de muchas millas.

Lo más probable es que el mentor se base en una versión certificada del mismo conjunto de software de código abierto que es modificado por un ingeniero aficionado. Y, de hecho, si el programador descubre que la acción que el mentor se negó a realizar es realmente segura, entonces podrá enviar un mensaje de error (e incluso una corrección) y, en última instancia (aunque no de inmediato), el mentor puede ser entrenado mejor más comportamientos en los programas bajo prueba.

La seguridad es una preocupación particular. El software modificado puede tener agujeros de seguridad que permiten a un atacante tomar el control de un mentor. Necesitamos que el mentor trabaje eficientemente, pero otro nivel de calidad es la capacidad del mentor para reconocer un programa malicioso que está tratando de engañarlo. Cualquier vulnerabilidad de un mentor que pueda llevarlo a permitir alguna acción insegura podría ser un problema.

La necesidad de artesanos


Necesitamos a aquellos que se llaman artesanos en el mundo del automóvil o, como los llamamos en el mundo de la informática, piratas informáticos (el uso de la palabra "pirata informático" en el sentido de un delincuente informático se utiliza principalmente fuera de la comunidad de desarrolladores de software. Dentro de la comunidad, esta palabra tiene esta el mismo significado que el "maestro artesano", y el experto en delitos informáticos o piratería es otro tipo de pirata informático). Todas las grandes compañías automotrices comenzaron su viaje como artesanías. Muchos estados incluso tienen leyes que hacen excepciones especiales a las reglas habituales de seguridad del vehículo para vehículos únicos creados por artesanos, siempre que cumplan con las reglas básicas de seguridad del transporte. Y funciona, especialmente porque estos vehículos siempre tienen un conductor y, como regla, este es su creador. En el mundo del software, los hackers (en un sentido no criminal) contribuyeron con una gran parte de la innovación.

Incluso queremos apoyar la idea de una pequeña empresa automotriz que pueda distribuir o vender sistemas modificados para máquinas robóticas con un mentor integrado para los clientes interesados. A diferencia de los clientes en otras áreas, estos pondrán a otras personas en riesgo, y no solo a ellos mismos, sino que la innovación también requiere pequeñas empresas.

Un mentor como el que se ha descrito aún no existe. Pero debería estar en nuestros planes, ya que el mundo de los vehículos no tripulados sin innovaciones de artesanos y piratas informáticos estará menos desarrollado y seguro que un mundo en el que solo las grandes empresas pueden contribuir.



imagen

Sobre ITELMA
Somos una gran empresa de componentes automotrices . La compañía emplea a unos 2.500 empleados, incluidos 650 ingenieros.

Somos quizás el centro de competencia más poderoso de Rusia para el desarrollo de la electrónica automotriz en Rusia. Ahora estamos creciendo activamente y hemos abierto muchas vacantes (alrededor de 30, incluso en las regiones), como un ingeniero de software, ingeniero de diseño, ingeniero de desarrollo líder (programador DSP), etc.

Tenemos muchos desafíos interesantes de los fabricantes de automóviles y preocupaciones que impulsan la industria. Si desea crecer como especialista y aprender de los mejores, estaremos encantados de verlo en nuestro equipo. También estamos listos para compartir experiencia, lo más importante que sucede en la industria automotriz. Háganos cualquier pregunta, responderemos, discutiremos.

Leer más artículos útiles:

Source: https://habr.com/ru/post/478640/


All Articles