Construir un RC car autónomo con Raspberry Pi, NAVIO2 y TensorFlow/KERAS
Fecha
2019Resumen
Hoy en día, la mayoría de sistemas automáticos o de gestión tienden a
implementar inteligencias artificiales que favorecen la experiencia con el
usuario y realizan un trabajo eficiente y ordenado. Los asistentes inteligentes
de los “smartphones” son un claro ejemplo de ello. Por este motivo no es
descabellado pensar que entre los sectores en auge, dentro de esta nueva
tecnología, todavía reciente y en desarrollo, nos encontremos con vehículos
inteligentes.
Actualmente, son muchas las empresas que están implementando este tipo
de tecnología en sus coches (Tesla entre las pioneras) y muchas otras que
ofrecen herramientas y entornos para que el sector del “machine learning”
progrese de forma eficaz gracias a la aportación de los usuarios.
Tras profundizar en el tema, hemos encontrado que compañías como
NVIDIA ofrecen tanto software como hardware aplicado en conducción
autónoma que nos van a ayudar a realizar nuestro objetivo: crear un prototipo
de estudio de un coche autónomo a partir de una red neuronal (inteligencia
artificial). Para ello, nos envolveremos dentro de las librerías desarrolladas
por Google en materia específica de redes neuronales: TensorFlow y KERAS.
Están serán cruciales para el desarrollo de nuestro cerebro automovilístico.
El software libre forma, junto con lo anterior, el pilar principal del
desarrollo de las tecnologías inteligentes. En nuestro caso, nos valdremos de
un sistema “BURRO” que conformará el firmware de nuestro vehículo y, a
partir de ahí, trabajar en su implementación y adaptación.
Por tanto, no solo trabajaremos con entornos de programación para
establecer una base sólida de funcionamiento del RC Car (coche radio
control), sino que tocaremos de primera mano el diseño y puesta en marcha
de una inteligencia artificial a partir de “Deep Learning”, con redes
convolucionales, basadas en las librerías ya mencionadas de TensorFlow y
Keras.
Logramos construir el prototipo físicamente sin dificultades e
implementamos el firmware de manera exitosa. El diseño neuronal y su
entrenamiento también resultaron según lo esperado, aunque un poco por
debajo de nuestras expectativas. Aun así, el vehículo es capaz tanto de andar
de forma manual como autónoma (aunque cierto porcentaje de error). Nowadays, the mayor of the automated systems is implementing artificial
intelligence which improves the user experience and gets a better tidy and
efficient work. Smartphones’ intelligent assistants are a great example of
this. Due to this, it is not crazy to think that between all this industry sectors
we found the autonomous vehicles.
There are a lot of companies which are implementing this kind of
technology to their cars (Tesla as one of them) and others which offers tools
and environments for getting the “machine learning” sector progress in a
faster and proper way thanks to the users’ contributions.
Once we have been immersed on the topic, we have found companies like
NVIDIA industries which offers software and hardware applied to the
autonomous conduction, helping us reaching our goal: make a studio
prototype of and autonomous car based on a neural network (AI). For this, we
are going to analyze in the newly developed libraries about neural science:
TensorFlow and KERAS.
The open source system is, besides the previous statements, the primal
fount of development of the intelligent technologies. In our case, we are
going to serve ourselves from the “BURRO” project, which will be the base for
the vehicle’s firmware. From this, we are going to work on its implementation
and its adaptation to our system.
Therefore, we are not only work on programing environments for setting a
solid base of the RC car functional system, but also designing from firsthand
and the startup of and artificial intelligent based on convolutional neural
networks (CNN), made by the libraries of TensorFlow and KERAS.
Finally, we reach our goal about making a physical prototype without no
difficulties and we implement the firmware successfully. The neural design
and its training are above the expected results, too, but not as good as we
thought. Even so, the vehicle can drive in manual and in autonomous way
(with a certain percent of error).