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

Il y a quelques temps je vous avais présen­té le véhicule autonome de Geo­hot, cet hack­er améri­cain qui s’est fait con­naître pour ses travaux sur le déver­rouil­lage de l’iPhone ain­si que pour avoir été le pre­mier à pirater la PlaySta­tion 3. Quand j’ai écrit cet arti­cle (et tourné cette vidéo), je ne con­nais­sais 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 aban­don­né l’idée de fouin­er 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

Open­Pilot est le nom pour Open Source Dri­ving Agent. Il implé­mente prin­ci­pale­ment 2 fonc­tion­nal­ités: l’Adap­ta­tive Cruise Con­trol (AAC) et le Lane Keep­ing Assist Sys­tem (LKAS). Il ne fonc­tionne pour l’instant que sur une Acu­ra ILX 2016 avec Acu­raWatch Plus, et sur une Hon­da Civic 2016 avec Hon­da Sens­ing.

L’ACC est un régu­la­teur de vitesse adap­tatif. Il main­tient automa­tique­ment une dis­tance de sécu­rité présélec­tion­née par rap­port au véhicule qui précède. Par le biais d’un radar, le dis­posi­tif détecte la voiture qui précède et main­tient automa­tique­ment la dis­tance de sécu­rité choisie au préal­able par le con­duc­teur. La dif­férence de fréquence entre les ondes émis­es et réfléchies per­met de cal­culer la dis­tance exacte et la dif­férence de vitesse entre les deux véhicules. Lorsque la dis­tance dimin­ue sous une valeur prédéter­minée, le sys­tème décélère instan­ta­né­ment le véhicule en com­man­dant l’accélérateur et, si néces­saire, les freins.

Le LKAS ou sys­tème d’assistance au main­tien dans la voie de cir­cu­la­tion recon­naît les mar­quages au sol au cen­tre desquels votre véhicule se déplace et per­met à la voiture de demeur­er dans sa tra­jec­toire en cor­rigeant fine­ment le cou­ple appliqué dans le volant. De même, le sys­tème vous informe au tra­vers de sig­naux visuels et sonores lorsque les roues se rap­prochent de trop près ou fran­chissent les mar­quages au sol. Enfin, c’est le fonc­tion­nement habituel.

Ces sys­tèmes exis­tent plus ou moins déjà chez les fab­ri­cants. D’après Geo­hot, le sien est aus­si bon que l’Autopi­lot de Tes­la à son lance­ment, et meilleur que celui des autres fab­ri­quants.

Plateforme NEO / NEOS

Pour fonc­tion­ner, le sys­tème se base sur la plate­forme neo dévelop­pée par Geo­hot égale­ment.

neo

A l’origine, cette plate­forme open source est dédiée à la recherche en robo­t­ique. Elle est con­stru­ite autour d’un smart­phone One­Plus 3 (CPU Snap­drag­on 820, 6 Go RAM, GPU Adreno 530)  et d’un CAN (Con­ver­tis­seur Analogique Numérique) util­isant un STM32F205. Le tout, enrobé d’un boiti­er imprimé en 3D, doté d’un ven­ti­la­teur. Tou­jours d’après Geo­hot, il n’y a pas de meilleur processeur pour l’embarqué que ceux qui équipent les smart­phones actuels.  Et ils sont aus­si très peu cher.

Le sys­tème d’exploitation util­isé n’est autre qu’un fork de l’Android designed for easy robot­ics devel­op­ment, que Geo­hot a appelé NEOS v2.

La plate­forme au total coûte env­i­ron 700$. Des instruc­tions détail­lées per­me­t­tent de la con­stru­ire.

Learning a Driving Simulator

Pour l’instant, nous savons com­ment la véhicule col­lecte des don­nées, par quel type de matériel, et quelle fonc­tion­nal­ités sont implé­men­tées au tra­vers d’Open Pilot. Mais cela ne fait tou­jours pas un véhicule autonome. Pou­vons nous en savoir plus  ?

Eder San­tana et George Hotz (Geo­Hot) ont écrit un papi­er sur la ques­tion. Pour vous éviter de le lire, je vais vous le résumer. L’idée à la base, c’est que pour appren­dre à con­duire, l’IA doit appren­dre à repro­duire les com­porte­ments humains et les manœu­vres en les étu­di­ants et en sim­u­lant dif­férents évène­ments sur la route.  Et pour cela, on va utilis­er divers algo­rithmes et réseaux de neu­rones (dont des récur­rents).

Pour entraîn­er le sys­tème, on va utilis­er un jeu de don­nées d’entrée (dataset) d’environ 7H15 de con­duite sur autoroute (45 GB, télécharge­able ici).

Il repose sur Ten­sor­Flow (avec Keras) et OpenCV (tou­jours les mêmes, hein) et la dis­tri­b­u­tion python Ana­con­da.

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

Tout cela est indépen­dant des mod­ules vus précédem­ment, mais fait par­tie du sys­tème glob­al util­isé par Geo­hot.

Je ne peux pas vous en dire plus dans cet arti­cle, ce n’est pas le but d’un arti­cle sur le web. Toute­fois, je vous pré­pare quelque chose de plus gros dans lequel je reviendrai en détail sur ce pro­jet. Donc, si cela vous intéresse, con­tin­uez à suiv­re ce blog et soyez vig­i­lent !

Si le sujet vous intéresse, retrou­vez d’autres infos sur les véhicules élec­triques et les véhicules autonomes. Et bien enten­du, sur le Deep Learn­ing.

 

Laisser un commentaire

Fièrement propulsé par WordPress | Thème : Baskerville 2 par Anders Noren.

Retour en haut ↑

%d blogueurs aiment cette page :