RÉALISATIONS

Projet Highway Chauffeur

Pour PSA : de 2015 à 2019

Prototypage de véhicules autonomes de niveau 3 sur voies à chaussées séparées. Parmi les premières expérimentations sur route ouverte en France.

Notre équipe a pris en charge l’ensemble du développement software hors asservissement : captation et fusion de données, décision, affichage. Des lignes directrices très ambitieuses ont guidé notre conception, avec pour objectif de réaliser un système :

  • Abordable : avec une multitude de capteurs abordables (LiDARs 4 couches, caméras, radar, capteurs à ultrasons) plutôt que quelques capteurs onéreux (comme le Velodyne),
  • Sobre : traitement et décision 100% embarqués et peu énergivores (CPU/GPU grand public, pas de 4G/5G),
  • Expert : utilisant des technologies explicables et s'affranchissant du besoin de constituer/annoter une base de données de roulages (pas de machine learning),
  • Transposable sur plusieurs prototypes aux architectures de capteurs différentes,
  • Capable d'exploiter une Cartographie HD Sémantique.
  • Humain dans son comportement (dépassements fréquents, politesse, négociation d'insertion) tout en assurant confort et respect du code de la route (Distance Inter-Véhiculaire, panneaux, non dépassement par la droite).

Projet SAM

Pour PSA / STELLANTIS - 2019 - 2023

Dans la continuité du projet Highway Chauffeur.

Le projet SAM (Sécurité et Acceptabilité de la conduite et de la Mobilité autonome) réunit un consortium d'acteurs en réponse à l'appel à projets Expérimentation du Véhicule Routier Autonome (EVRA) lancé par l'ADEME.

Le travail consiste à prototyper des navettes autonomes de niveau 3 et 4 entre zones d'activités (autoroute principalement et quelques zones semi-urbaines aux abords des zones d'arrivées) sur les trajets La Défense / Roissy-Charles-de-Gaule et Massy / Dourdan.

ACQUISITION ET REJEU

L'enregistrement des données lors des expérimentations sur route ouverte et la capacité à les analyser/rejouer sont un enjeu important dans la conception de tout prototype autonome. Nous développons un outil qui répond à cette problématique de manière suffisamment générique pour être utilisé sur tous les prototypes, trains comme voitures. Il diagnostique les capteurs présents/absents, enregistre de manière robuste les données reçues, et les met à disposition en mémoire partagée pour leur exploitation en temps réel par un logiciel tiers, qui peut à son tour produire des données à inclure dans l'enregistrement. Une librairie logicielle permet en outre de rejouer les enregistrements ainsi effectués.

Acquisition

Une application robuste et indépendante pour diagnostiquer, collecter et mettre à disposition les données de tous types de capteurs, en temps réel.

  • Multi-source (TCP/UDP, CAN, caméras et micro USB),
  • Agnostique (conduite de voitures autonomes, trains autonomes, détection de colis abandonnés, ...),
  • Collecte et mise à disposition des flux en mémoire partagée,
  • Monitoring des capteurs (présence/absence) et des flux (reçus/consommés),
  • Sauvegarde des flux, avec possibilité d'incorporer ses propres paquets.

Rejeu

Enregistrer, c'est bien. Rejouer, c'est mieux !

  • Intégration dans l'application de traitement exécutée en roulage,
  • Rejeu déterministe, en temps réel ou accéléré,
  • Superposition des fusions/décisions du roulage avec celles calculées en temps réel,
  • Traitement semi-automatisé (floutage, annotations automatiques, statistiques),
  • Indexation et recherche dans tous les enregistrements,
  • Timeline avec notes et évènements importants,
  • Bugtracking (suivi, assignation et édition des annotations).

CARTOGRAPHIE HD

Une bonne compréhension de la route est nécessaire pour anticiper les intentions des autres usagers. Les capteurs ne permettent pas d'obtenir des informations suffisamment précises ni à une suffisamment grande distance, contrairement à une Cartographie HD. L'exploitation d'une Cartographie HD de précision centimétrique en temps réel a nécessité de développer un format de cartographie léger, des fonctions d'exploitation efficaces, des shaders d'affichage, ainsi que des outils de conversion/génération/saisie manuelle/correction. Nos outils de cartographie sont suffisamment génériques pour être utilisés à la fois pour les voitures et trains autonomes et dans nos simulations urbaines.

Cartographie sémantique HD

Notre cartographie est basée sur la cartographie HERE HD LiveMap, qui est convertie automatiquement dans notre format :

  • Léger, adapté à l'exploitation en temps réel
  • Lisse, grâce à la conversion de polylignes en polybéziers, et au lissage des courbures sans compromettre la précision
  • Sémantique, qui comprend les types de marquages et de voies, la connectivité entre voies, les limites de vitesses, panneaux, barrières, etc.
  • Exploitable en temps réel, pour le map-matching, le calcul d'itinéraires, la prédiction de trajectoires, etc.

Éditeur de cartographie

Les portions de carte non disponibles ou non mises à jour peuvent être créées ou corrigées en utilisant notre éditeur.

  • Précis, à partir de données satellites (Google, Mappy) ou de plusieurs relevés LiDAR,
  • A saisie assistée, par la génération de polybéziers à courbure continue passant par les points de passage saisis, et le clonage de polybéziers avec offset constant,
  • Sémantique, tous les attributs des voies peuvent être saisis ou hérités des jonctions avec la cartographie de base,
  • Avec validation automatique de la cohérence des jonctions entre les parties saisies et non saisies,
  • Eprouvé sur plusieurs dizaines de km, comprenant des péages, zones en travaux, terminaux d'aéroports, tunnels, etc...,
  • Automatisable pour créer de la cartographie à notre format à partir de données issues d'OpenStreetMap.

Streaming

  • Affichage d'une version simplifiée, non sémantique, de l'ensemble de la carte,
  • Chargement dynamique depuis le disque des tuiles sémantiques nécessaires à l'itinéraire immédiat.

POSITIONNEMENT

Le positionnement dans la cartographie HD s'appuie sur plusieurs sources (GPS, lignes caméras, centrales inertielles, ...). La difficulté est de produire un positionnement lisse (suivi de trajectoire confortable) tout en restant fidèle aux capteurs, et en étant robuste aux éventuels dysfonctionnements (par exemple : perte du signal GPS lors du passage sous un pont, lignes au sol effacées, ...).

Positionnement multi-capteurs

L'utilisation des lignes vues par la caméra permet de combler les imprécisions du GPS ou de la cartographie.

  • Tracking temporel de position, altitude, angle, courbure, vitesse, accélération et jerk,
  • Gestion multimodale pour tirer parti d'informations absolues (GPS), inertielles, ou de corrections locales à partir d'informations relatives (ex. lignes caméras),
  • Cohérence temporelle pour intégrer correctement des signaux reçus dans le désordre ou avec un grand retard,
  • Interpolation/Extrapolation des variables trackées pour obtenir des informations en tout temps, en se basant sur un modèle simplifié (accélération et courbure constantes sur un temps court).

Robustesse et cohérence

La confiance qu'il est raisonnable d'accorder à un capteur peut varier brusquement en fonction de l'environnement. SpirOps développe donc un système :

  • Adaptatif, à la présence/absence de tel ou tel capteur, et à leur précision relative et absolue,
  • Robuste, en ignorant temporairement les capteurs dont la dynamique des données fournies est manifestement incohérente,
  • Cohérent, en s'assurant que les différentes variables ne se contredisent pas (vitesse, accélération, courbure correspondant à ce qui pourrait être retrouvé à partir des positions).

FUSION

Une reconstruction fidèle de l'environnement est vitale pour qu'un véhicule autonome puisse prendre les bonnes décisions. Les capteurs ayant des propriétés différentes, aucun ne fournit une vérité absolue et notre travail est de tirer le meilleur de chaque capteur. Cela consiste à analyser les forces et faiblesses des différentes technologies, à filtrer leurs défauts, à mettre en place de la redondance inter-capteurs quand nécessaire, et également à veiller à la cohérence physique des véhicules reconstitués et à leur maintien lorsqu'ils sortent des zones de perception ou sont masqués par d'autres objets.

Traitements et fusion multi-capteurs

Les exigences du projet nous ont amenés à ne pas utiliser les données haut niveau fournies par chaque capteur mais plutôt à exploiter les données les plus bas niveau possible, afin de minimiser les filtrages trop aggressifs ou les trackings imparfaits, et effectuer les arbitrages le plus tard possible, en exploitant ainsi le maximum d'informations (compréhension plus fine de la situation routière, manœuvres de la voiture, concordances/divergences entre capteurs).

  • Aggrégation de données brutes issues de LiDARs, caméras, radars, capteurs à ultrasons,
  • Filtrage intelligent des points/impacts en dehors de la route,
  • Filtrage des artefacts liés à la pluie ou au soleil rasant,
  • Création et tracking de boîtes orientées à partir des points/impacts.

Redondance entre capteurs

Tirer le meilleur parti de chaque capteur afin de suivre :

  • Le typage des cibles grâce aux caméras,
  • La vitesse des cibles grâce aux radars,
  • Les contours des cibles grâce aux LiDARs,
  • L' historique de chaque cible pour affiner sa dynamique, prédire sa trajectoire, améliorer le tracking,
  • Les zones d'ombres pour augmenter la cohérence des apparitions/disparitions de cibles.

Prédiction de changement de voie des véhicules

L'anticipation des décisions de conduite permet de gagner de précieuses millisecondes :

  • pour réagir,
  • pour pallier les éventuelles absences de clignotants.

DÉCISION

L'autonomie provient de la capacité à prendre des décisions, c'est-à-dire à arbitrer entre plusieurs choix possibles, entre plusieurs objectifs contradictoires. Au volant, des arbitrages sont constamment nécessaires entre le confort, la vitesse, le respect de l'itinéraire, la politesse, tout en garantissant un socle solide de respect du code de la route. Dans le domaine des véhicules autonomes, il est particulièrement important de pouvoir expliquer ces arbitrages et d'offrir des garanties sur les domaines de fonctionnement des systèmes décisionnels.

La technologie "Drive Oriented" de SpirOps

Notre technologie brevetée de prise de décision se prête parfaitement à la création d'une IA de conducteur.

  • Découpage en désirs et inhibitions mutuellement indépendants, (on roule à droite lorsqu'on peut, on ne franchit pas de ligne continue, etc.),
  • Respect des règles importantes de sécurité, tout en prenant en compte des critères de confort,
  • Emergence de comportements complexes à partir d'une multitude de règles simples,
  • Explicabilité de chaque décision en temps réel,
  • Facilité de débogage grâce au déterminisme et aux outils d'affichage de chaînes de calcul,
  • Flexibilité pour créer plusieurs styles de conduite ou pour ajouter/désactiver/interchanger des comportements élémentaires sans compromettre l'ensemble (ex. rouler à gauche en Angleterre).

SIMULATION / TEST

S'assurer que l'ensemble des briques ci-dessus se maintient en qualité, y compris lorsque nous y apportons des modifications conséquentes est un enjeu très important pour s'assurer que le projet progresse dans la bonne direction. Nous développons des outils permettant, à chaque modification, de vérifier les performances sur chacun des thèmes ci-dessus et de reproduire facilement les éventuelles régressions découvertes.

Vérité terrain

Editeur de vérité terrain pour les tests de non-régression.

  • Saisie semi-automatisée de boîtes de vérité terrain et de leur suivi
  • Comparaison au résultat de la fusion pour suivre les surfaces manquées/inventées

Serveur de build

Afin de prévenir les régressions, nous avons pour chaque commit :

  • Un suivi des indicateurs de qualité,
  • Des avertissements en cas de régression,
  • Une intégration directe dans l'outil de source control,
  • Un affichage avancé des résultats des tests et des étapes pour les reproduire.

Editeur de simulation et Test de comportement

Aide au maintien des comportements existants et au prototypage de nouveaux.

  • A partir d'un rejeu (situation réelle) ou de données générées (situations imaginées),
  • Ajout ou modification de véhicules et de comportements,
  • Editeur de comportements attendu de la voiture pour tests automatisés de non regressions.