Étude des travaux de Geohot sur les véhicules autonomes

Il y a quelques temps je vous avais présenté le véhicule autonome de Geohot, cet hacker américain qui s’est fait connaître pour ses travaux sur le déverrouillage de l’iPhone ainsi que pour avoir été le premier à pirater la PlayStation 3. Quand j’ai écrit cet article (et tourné cette vidéo), je ne connaissais pas les détails de l’implémentation de l’IA du véhicule de COMMA.AI (c’est le nom de sa boite). Depuis, plusieurs codes source ont été releasés sur Github. Je n’avais pas abandonné l’idée de fouiner un peu plus en détail… et je n’ai pas été déçu…

39651_george-geohot-hotz-le-pied-piper-de-la-voiture-autonome

OpenPilot

OpenPilot est le nom pour Open Source Driving Agent. Il implémente principalement 2 fonctionnalités: l’Adaptative Cruise Control (AAC) et le Lane Keeping Assist System (LKAS). Il ne fonctionne pour l’instant que sur une Acura ILX 2016 avec AcuraWatch Plus, et sur une Honda Civic 2016 avec Honda Sensing.

L’ACC est un régulateur de vitesse adaptatif. Il maintient automatiquement une distance de sécurité présélectionnée par rapport au véhicule qui précède. Par le biais d’un radar, le dispositif détecte la voiture qui précède et maintient automatiquement la distance de sécurité choisie au préalable par le conducteur. La différence de fréquence entre les ondes émises et réfléchies permet de calculer la distance exacte et la différence de vitesse entre les deux véhicules. Lorsque la distance diminue sous une valeur prédéterminée, le système décélère instantanément le véhicule en commandant l’accélérateur et, si nécessaire, les freins.

Le LKAS ou système d’assistance au maintien dans la voie de circulation reconnaît les marquages au sol au centre desquels votre véhicule se déplace et permet à la voiture de demeurer dans sa trajectoire en corrigeant finement le couple appliqué dans le volant. De même, le système vous informe au travers de signaux visuels et sonores lorsque les roues se rapprochent de trop près ou franchissent les marquages au sol. Enfin, c’est le fonctionnement habituel.

Ces systèmes existent plus ou moins déjà chez les fabricants. D’après Geohot, le sien est aussi bon que l’Autopilot de Tesla à son lancement, et meilleur que celui des autres fabriquants.

Plateforme NEO / NEOS

Pour fonctionner, le système se base sur la plateforme neo développée par Geohot également.

neo

A l’origine, cette plateforme open source est dédiée à la recherche en robotique. Elle est construite autour d’un smartphone OnePlus 3 (CPU Snapdragon 820, 6 Go RAM, GPU Adreno 530)  et d’un CAN (Convertisseur Analogique Numérique) utilisant un STM32F205. Le tout, enrobé d’un boitier imprimé en 3D, doté d’un ventilateur. Toujours d’après Geohot, il n’y a pas de meilleur processeur pour l’embarqué que ceux qui équipent les smartphones actuels.  Et ils sont aussi très peu cher.

Le système d’exploitation utilisé n’est autre qu’un fork de l’Android designed for easy robotics development, que Geohot a appelé NEOS v2.

La plateforme au total coûte environ 700$. Des instructions détaillées permettent de la construire.

Learning a Driving Simulator

Pour l’instant, nous savons comment la véhicule collecte des données, par quel type de matériel, et quelle fonctionnalités sont implémentées au travers d’Open Pilot. Mais cela ne fait toujours pas un véhicule autonome. Pouvons nous en savoir plus  ?

Eder Santana et George Hotz (GeoHot) ont écrit un papier sur la question. Pour vous éviter de le lire, je vais vous le résumer. L’idée à la base, c’est que pour apprendre à conduire, l’IA doit apprendre à reproduire les comportements humains et les manœuvres en les étudiants et en simulant différents évènements sur la route.  Et pour cela, on va utiliser divers algorithmes et réseaux de neurones (dont des récurrents).

Pour entraîner le système, on va utiliser un jeu de données d’entrée (dataset) d’environ 7H15 de conduite sur autoroute (45 GB, téléchargeable ici).

Il repose sur TensorFlow (avec Keras) et OpenCV (toujours les mêmes, hein) et la distribution python Anaconda.

Le code source du système d’entraînement est disponible à cette adresse.

Tout cela est indépendant des modules vus précédemment, mais fait partie du système global utilisé par Geohot.

Je ne peux pas vous en dire plus dans cet article, ce n’est pas le but d’un article sur le web. Toutefois, je vous prépare quelque chose de plus gros dans lequel je reviendrai en détail sur ce projet. Donc, si cela vous intéresse, continuez à suivre ce blog et soyez vigilent !

Si le sujet vous intéresse, retrouvez d’autres infos sur les véhicules électriques et les véhicules autonomes. Et bien entendu, sur le Deep Learning.

 

Ces articles pourraient aussi vous intéresser …