VT2020-Plateforme Apollo-Fiche

Contrairement à ce que son nom laisse supposer, la plateforme Apollo n'a rien à voir avec la NASA, mais est ici une plateforme de conduite autonome open source qui a été publiée par la société Baidu Research en 2017. L'objectif étant de développer des voitures totalement autonomes d'ici 2020. Ce délais semble assez court, mais Baidu estime que l'open source permettra d’accélérer les tests et le déploiement. (Son nom fait tout de même référence aux missions Apollo de la NASA entre les années 1960 et 1970).

Une voiture autonome ? comment ça marche ?
La conduite autonome s'appuie sur 5 piliers :

- Computer Vision : Cet aspect sert à comprendre le monde qui entour le véhicule, à l'aide d'images captées par les différentes caméras. Ces images sont alors analysées/traitées grâce à une IA afin de détecter les obstacles, autres véhicules, les lignes de la route, les panneaux, etc.

- Sensor Vision : Permet de compléter la compréhension de l'environnement à l'aide de capteurs laser (ex : LIDAR) afin d'avoir des informations difficiles à calculer seulement avec des images (notamment la distance ou la vitesse des autres éléments présents dans l'environnement).

- Localization : Une fois que l'on est capable d'analyser correctement le monde qui nous entoure, il faut savoir où l'on se trouve précisemment dans ce dernier. On utilise alors des outils de localisation GPS devant être très précis (marge d'erreur d'1 cm).

- Path Planning : C'est la composante qui détermine le chemin à suivre (notre trajet) en se basant sur les informations données en temps réel par les 3 autres. Elle doit alors prendre en continue des décisions portant sur ces deux aspects : la trajectoire (ex : éviter un obstacle) et la vitesse (ex : ralentir sur le véhicule devant nous le fait aussi).

- Control :  Les décisions prise par le Path Planning sont exécutées par cette composante (tourner le volant, appuyer sur la pédale de frein, changer de vitesse, etc.).

L'ensemble des sociétés travaillant dans la conduite autonome se basent sur ces piliers, et chacune essaye d'améliorer au mieux les capacités de ces derniers. C'est aussi le cas de la Plateforme Apollo !

Évolution d'Apollo au fil du temps


Comme nous pouvons le voir ci-dessus, Apollo a beaucoup évolué en peu de temps. Chaque version a apporté de nouvelle caractéristiques au projet. En effet, à chaque nouvelle release, des composants hardware sont rajoutés afin d'affiner encore plus la capacité d'analyse de l'environnement. Les contributeurs doivent alors ajouter au projet des modules de code afin de prendre en compte ces nouveaux composants.

Apollo 1.0

Apollo 1.0 fonctionne dans un lieu clos, comme une piste d'essai ou un parking.

Apollo 1.5

Avec Apollo 1.5, les véhicules ont une meilleure perception de leur environnement et peuvent mieux cartographier leur position actuelle. Cela leur permet de planifier leur trajectoire sur leur voie.

Apollo 2.0

Apollo 2.0 permet aux véhicules de rouler de manière autonome sur des routes urbaines simples. Les véhicules sont capables de rouler sur les routes en toute sécurité, d'éviter les collisions avec les obstacles fixes, de s'arrêter aux feux de circulation et de changer de voie.

Apollo 2.5

Apollo 2.5 permet au véhicule de rouler de manière autonome sur des autoroutes. Les véhicules sont en mesure de maintenir le contrôle de leur voie, de se mettre en vitesse de croisière et d'éviter les collisions avec les véhicules environnants.

Apollo 3.0

Le but d’Apollo 3.0 est de préparer un environnement pour permettre aux développeurs de travailler sur les espaces à faible vitesse.

Apollo 3.5

Apollo 3.5 est capable de naviguer dans des scénarios de conduite complexes tels que les zones résidentielles et les centres-villes.

Apollo 5.0

Avec Apollo 5.0, la voiture peut gérer les conditions changeantes de scénarios routiers complexes. Elle prend en charge des scénarios supplémentaires tels que les arrêts et le franchissement d'intersections dénudées.

Les avantages de l'Open Source
En 2017 Baidu a publié Apollo en open-source sous license Apache 2.0. En seulement trois ans, comme l'espérait Baidu, il y a eu beaucoup de contributeurs à la plateforme.

Quelques stats :

- 8500 pull requests

- 15000 commits

- 400000 lignes de code

- 235 contributeurs

- 8 versions

==> Le projet fonctionne entièrement sur ROS et est essentiellement codé en C++ et en python, notamment pour le module d’Intelligence Artificielle.

Des Modules rendant plus "intelligent"
Comme dit précédemment, des modules sont ajoutés à chaque version. Ces modules, destinés à permettre l’autonomie de la voiture, ont été partagés en 7 catégories.

Perception de précision

Le module de perception intègre la capacité de détecter et de reconnaître les obstacles et les feux de circulation.

Obstacle

Le sous-module de détection d'obstacles détecte, segmente, classe et suit les obstacles. Il prédit également le mouvement des obstacles et l'information sur leur position (la direction et la vitesse).

Feux de circulation

Le sous-module de feux de circulation détecte les feux de circulation et reconnaît leur état à partir d’images.

Simulation

La simulation permet de parcourir virtuellement des millions de kilomètres par jour en utilisant un ensemble de données sur le trafic du monde réel. Grâce au service de simulation, les contributeurs ont accès à un grand nombre de scènes de conduite autonome pour tester, valider et optimiser rapidement des modèles d'intelligence artificielle.

Carte Haute Définition et Localisation

Baidu est capables de produire des données cartographiques HD à grande échelle. Ces cartes sont utilisés par le système de localisation. Et ce dernier est une solution de positionnement complète avec une précision au centimètre près.

Planification

Les véhicules Apollo sont équipés d'un système de planification comprenant la prédiction, le comportement et la logique de mouvement. Le système de planification s'adapte aux conditions de circulation en temps réel, ce qui permet d'obtenir des trajectoires précises, à la fois sûres et confortables. Actuellement, le système de planification fonctionne sur une route fixe dans toutes les conditions de jour comme de nuit.

Contrôle Intelligent

Les modules Apollo de commande intelligente de véhicule sont précis, largement applicables et adaptables à différents environnements. Les modules gèrent différentes conditions de route, vitesses, et types de véhicules.

Un véhicule loin d'être standard


Les caméras, radar et lidar (radar laser) sont utilisés pour la perception de précision. La localisation s'effectue avec les GPS, les LIDARs et la représentation de la carte HD. Pour tout ce qui est des calculs de simulation, de contrôle, de planification ou d’interprétation des données extérieurs, il y a un IMU et un ordinateur industriel dans le coffre.

Et la Sécurité / CyberSécurité dans tout ça ?
Sécurité de l'IA du véhicule autonome

Un système de protection est construit pour protéger la sécurité des applications, des données, de l'IA, des communications et du cloud, et pour empêcher les intrusions externes, les fuites de propriété intellectuelle et le détournement de biens.

Communication sécurisée

L'IA du véhicule est isolée des autres réseaux. Cela fourni un contrôle pour assurer un accès sécurisé et identifier les comportements anormaux.

Boîte noire

Un boitier est intégré aux véhicules autonomes. Il enregistre et stocke en toute sécurité les données des capteurs, le mode de conduite, les instructions de planification et de contrôle envoyées à tout le système électronique. Il est utilisé pour les enquêtes sur les accidents et les incidents.

Une première application : Robotaxi
Baidu a lancé en septembre 2019 un service de taxis autonome en Chine. 45 véhicules électrique ont été équipé avec Apollo. Ces véhicules sont totalement autonome, même si un humain doit être au volant de chaque voiture pour être en conformité avec les réglementations chinoises.

Le système fonctionne par tous temps et peut analyser et voir à plus de 300m.

Une concurrence forte
Pony.ai 

La start-up fondée en décembre 2016 en Californie est focalisée sur le développement des softwares et infrastructures nécessaires pour qu'un véhicule autonome puisse percevoir son environnement, prédire ce que les autres vont faire et manœuvrer en fonction de ces données.

Google 

La voiture sans conducteur de Google, appelée Google Car, est une voiture autonome en cours de développement. Deux types de véhicule sont à l'essai : d'une part des véhicules de série modifiés, à l'instar de Toyota Prius, et d'autre part la « Google car », véhicule électrique conçu entièrement par Google sans volant ni commandes d'accélérateur et de frein. La voiture autonome est autorisée à circuler sur la voie publique dans plusieurs États américains, toujours avec un conducteur derrière le volant pour reprendre le contrôle si nécessaire.

Tesla 

En octobre 2016, Tesla annonce que ses voitures en production seront désormais équipées en matériel compatible à la conduite 100 % autonome. La partie « software » quant à elle viendra au fur et à mesure des années 2017-2018. Selon les dernières prévisions de la firme, le FSD (entièrement autonome) devrait être disponible officiellement mi-2020. C’est un grand pas en matière de conduite autonome qui précise les plans de Tesla de lancer une flotte de taxis autonomes dénommés « Robotaxi » en 2020 aux États-Unis avec cette fonction.

Mercedes 

Mercedes s’est aussi lancé dans le développement de la voiture autonome. Et à vrai dire, la marque à l'hélice n’a pas fait que se lancer, elle est aujourd'hui à fond sur le développement de véhicules sans conducteur. Parmi ses véhicules phares, Mercedes a tenu a présenté sa berline iconique Classe E. La Classe E est équipée du Drive Pilot qui est une grande innovation dans le domaine de la voiture sans chauffeur. Mercedes a affirmé que cette nouvelle technologie permet au véhicule de circuler en file indienne sur autoroute sans que le chauffeur ait à toucher le volant. Un test a même déjà été fait sur un axe autoroutier autour de Lisbonne.