Vous êtes sur la page 1sur 41

Remerciements

Au terme de ce travail, on
tient à exprimer notre
profonde gratitude à notre
cher professeur et
encadrant M. TARIF HAJJI pour son suivi et pour son soutien, qu’il n’a
cessé de nous prodiguer tout au long de la période du projet.

On tient à remercier également nos chers professeurs de filière pour le temps


qu’ils ont consacré et pour les précieuses informations qu’ils nous ont
prodigué avec intérêt et compréhension.

LA CAPACITE DE DETECTER DES OBJETS ET DES EVENEMENTS QUI


AFFECTENT IMMEDIATEMENT LA TA CHE DE CONDUITE ET D’Y
REAGIR DE MANIERE APPROPRIEE
RAPPORT DE PROJET
Réalisé par :
Encadréé par :
GUEKOU VRAZYLAND
Résumé MR TARIk HAJJI
KEVIN MOLUBA
Ce projet s’inscrit dans le développement et la conception de fonctions d’aide à la conduite
1
pour les véhicules autonomes de niveau 3 et plus. L’objectif de ce projet et de mettre à
disposition des méthodes et des réalisations pour permettre au véhicule autonome de
percevoir son environnement et d’y réagir de manière appropriée. Ce projet se focalise sur la
proposition de solutions à la conduite autonome en appliquant l’apprentissage par
renforcement pour développer des agents adaptifs efficacement et qui peuvent prendre des
décisions de conduite adéquates selon des images reçues par caméra et qui représentent l’état
du véhicule. Le but de cet agent est de maximiser un signal de récompense : il apprend par
renforcement, au premier lieu cet agent n’a pas connaissance du modèle de
l’environnement, ainsi il n’a pas connaissance des conséquences de ses actions ni des états
qu’il doit atteindre : il doit apprendre à travers ses interactions avec cet environnement qui lui
est totalement inconnu.

ii
1 Introduction..........................................................................................................................1
2 Problématique.......................................................................................................................1
3 Vision globale sur les systèmes ADAS.................................................................................2
3.1 Les véhicules autonomes............................................................................................................2
3.2 Les systèmes avancés d’aide à la conduite (ADAS).....................................................................3
3.3 Les capteurs................................................................................................................................4
3.3.1 Caméra.........................................................................................................................................4
3.3.2 Lidar..............................................................................................................................................5
3.3.3 Radar............................................................................................................................................7
3.3.4 Capteur Ultrason...........................................................................................................................8
3.3.5 Avantages et inconvénients de chaque technologie.....................................................................9
4 La perception de l’environnement.......................................................................................9
5 Architecture logicielle modulaire représentative pour les voitures autonomes............12
5.1 Module perception de l’environnement...................................................................................12
5.2 Module de mappage d’environnement....................................................................................14
5.3 Module de planification de mouvement..................................................................................15
5.4 Le module de contrôleur..........................................................................................................16
5.5 Le module du superviseur.........................................................................................................16
6 La hiérarchie du planificateur de mouvement................................................................18
1 Introduction........................................................................................................................23
2 Idée générale de l’apprentissage par renforcement........................................................23
3 L’apprentissage par renforcement appliqué à la conduite autonome...........................24
3.1 Principes généraux du RL dans le cas de la conduite autonome...............................................24
3.2 Le Q-Learning............................................................................................................................25
3.3 Le Deep Q-Learning (DQL)........................................................................................................27
3.4 Expérience replay.....................................................................................................................31
3.5 Le double Deep Q-learning ou DDQL........................................................................................33
3.6 Conclusion................................................................................................................................34
4 Partie Algorithme...............................................................................................................35

iii
CHAPITRE 1 - PRESENTATION DE L’OEDR ET
REVUE DE LITTERATURE

iv
1 Introduction
Ce chapitre abordera une introduction générale sur les systèmes ADAS, où on va définir la
taxonomie pour classer le niveau d’automatisation dans une voiture autonome , ensuite nous
couvrirons les différents capteurs qui peuvent être utilisés pour la perception à savoir les
technologies de chaque type de capteurs et leurs apports par rapport à l'autonomisation du
véhicule, par suite nous allons passer en avant les nombreux processus de perception où on va
définir la tâche de perception énumérant les exigences pour la perception telles que quel objet
statique ou dynamique nous devons identifier, et quel besoin nous avons pour suivre le
mouvement des véhicules ego à travers l’environnement. Enfin, nous allons conclure par
l’architecture logicielle modulaire représentative pour les voitures autonomes où on va
détailler les différents modules que comporte cette architecture.

2 Problématique
Pour un conducteur la tâche de conduite comporte essentiellement 4 tâches :

Premièrement, nous avons un contrôle latéral qui fait référence à la tâche de diriger et de
naviguer latéralement sur la route, tourner à gauche, à droite, aller droit ou suivre une courbe.

Ensuite nous avons un contrôle longitudinal c'est la tâche où nous contrôlons la position ou la
vitesse de la voiture le long de la chaussée par des actions comme la rupture ou l'accélération

Ensuite, nous avons l'OEDR qui est essentiellement la capacité de détecter les objets et les
événements qui affecte immédiatement la tâche de conduite et de réagir à eux de manière
appropriée.

Ensuite on a la planification, c'est un autre aspect important de la conduite et comme la


réponse immédiate fait déjà partie de l’OEDR, la planification porte principalement sur les
plans à long et à court terme nécessaire pour se rendre à une destination ou exécuter des
manœuvres telles que des changements d’allégement et des passages à niveau.

Enfin il y a quelques tâches diverses que les gens font en conduisant aussi ceux-ci
comprennent des actions comme la signalisation avec des indicateurs, agitons la main
interagissant avec d'autres conducteurs et ainsi de suite.

Tout cela est une description claire des tâches que nous attendons d'une voiture autonome
d'effectuer et l'OEDR englobe vraiment une grande partie de cette conduite autonome, d'où
notre objectif principal dans ce sujet c'est de se pencher sur la compréhension de l’OEDR et
de concevoir un modèle nous permettant de bien le réaliser.
1

3 Vision globale sur les systèmes ADAS


3.1 Les véhicules autonomes
Un véhicule autonome ou véhicule automatisé, est un véhicule qui se sert de capteurs et
d’analyses informatiques pour reconnaitre son environnement et naviguer sans intervention
humaine. La norme SAE J3016 classifie les véhicules autonomes en six niveaux en fonction
de leur comportement vis-à-vis du conducteur.

Figure 1 - Taxonomie pour classer le niveau d’automatisation dans une voiture autonome

Niveau 0 : pas d’automatisation. La conduite est entièrement à la charge du conducteur qui


peut toutefois disposer de mécanismes d’avertissement, comme le signal sonore de
franchissement de ligne, de proximité d’un obstacle sur la route, etc.

Niveau 1 : le conducteur garde en permanence la responsabilité des manœuvres, mais délègue


une partie des tâches au système, typiquement pour le contrôle longitudinal du véhicule, par
exemple à travers un régulateur de vitesse adaptatif. Il doit être capables de reprendre
totalement la main sur la conduite si la situation l’exige.

2
Niveau 2 : niveau d’automatisation partielle, le système effectue à la fois des taches de
contrôle latéral et longitudinal dans des scénarios de conduite spécifiques, mais tout s’effectue
sous supervision constante du conducteur, qui peut décider de reprendre la main à tout
moment, par exemple l’assistance au stationnement (le Parking Assist), qui n’est activée que
lorsqu’une place de stationnement est détectée ou choisie par le conducteur.

Niveau 3 : niveau d’automatisation conditionnelle, le système peut effectuer la détection


d’objets et d’évènements en réponse à un certain degré en plus des taches de contrôle,
toutefois en cas de défaillance la commande doit être prise par le conducteur, la principale
différence entre le niveau 2 et 3, est que le conducteur n’a pas besoin de faire attention dans
certaines situations spécifiques car le véhicule peut alerter le conducteur à temps pour
intervenir et reprendre le contrôle.

Niveau 4 : c’est un niveau hautement automatisé dans lequel le conducteur n’intervient déjà
plus et peut en effet complètement détourner son attention pour faire autre chose. En
revanche, ce niveau ne concerne que certains modes de conduite, et sous certaines conditions.
C’est le conducteur qui active et désactive le mode automatisé

Niveau 5 : c’est l’automatisation ultime : l’être humain n’intervient plus, ni dans le contrôle,
ni dans la supervision de la tâche de conduite ou de navigation. Tout est sous la responsabilité
et le contrôle du système. La présence même d’un être humain aux commandes n’est plus
forcément nécessaire.

3.2 Les systèmes avancés d’aide à la conduite (ADAS)


Ces systèmes sont conçus pour être intégrés dans les véhicules afin de renforcer la quantité et
la qualité des informations transmises au conducteur. Les ADAS perçoivent l’environnement
grâce à des capteurs extéroceptifs et proprioceptifs installés dans le véhicule ou dans
l’environnement. Ces capteurs fournissent de l’information ou agissent sur le contrôle de
véhicule pour aider le conducteur dans la tâche de conduite.

Ils sont classés selon leurs fonctions en deux catégories, les fonctions passives alertant des
problèmes potentiels et les fonctions actives prenant le contrôle du véhicule pour éviter les
collisions.

3
Figure 2 - Fonctions passives et actives des différents systèmes ADAS

3.3 Les capteurs


La majorité des prototypes autonomes développés aujourd'hui présentent plusieurs
ceintures de capteurs de différentes technologies permettant de scanner l'environnement
autour du véhicule. La capacité du véhicule à percevoir son environnement et à se situer dans
celui-ci est fortement dépendante des technologies de capteurs qui le composent. Ces capteurs
peuvent être des caméras, des ultrasons, des radars ou des lidars.

3.3.1 Caméra
Une caméra est constituée d'un imageur, d'une optique et d'un ECU pour le traitement des
images permettant de détecter, reconnaitre et estimer les marquages au sol (position et
courbure des lignes), mais aussi de suivre et classifier des objets (voiture, camion, deux-roues,
piéton) sur des bases d'apprentissages de caractéristiques typiques [1].
4
Les techniques d'apprentissage profond, ou Deep-Learning, sont de plus en plus intégrées
pour la classification et la segmentation des objets.

La portée de détection des objets et marquages peut aller jusqu'à 120 m pour des conditions
météorologiques favorables (les caméras sont très impactées en performances de nuit, en
situation de brouillard ou fortes pluies).

Nous avons généralement tendance à parler de trois indicateurs de comparaison importants, en


effet la sélection peut être faite en termes de résolution (qualité de l’image), du champ de
vision ainsi que la plage dynamique.

C’est une des technologies les plus utilisées à ce jour dans les ADAS, on va retrouver des
caméras pour permettre de réaliser :

• Régulateur de vitesse adaptatif

• Reconnaissance des panneaux de signalisation

• Détection des piétons

• Assistance de parking

Figure3 - Exemples de caméras : mono caméra (a), stéréovision (b) et caméra de parking (c) [1]

3.3.2 Lidar

Un lidar utilise la lumière (généralement infrarouge autour de 905 nm) pour la télémétrie des
objets (temps entre l'émission et la réflexion d'une impulsion connaissant la vitesse de la
lumière). Il est capable de déterminer le contour des obstacles statiques et dynamiques et d'en

5
extraire les mêmes paramètres que ceux obtenus avec des radars ou caméras, mais avec des
précisions plus importantes.

Son fonctionnement est basé sur la mesure du temps de réflexion d'une impulsion lumineuse.
Pour cela, une diode laser émet une impulsion de lumière polarisé et cohérente dans le
domaine ultraviolet, visible ou infrarouge. Cette impulsion va alors être réfléchie sur
l'obstacle le plus proche dans la direction de l'émission. Le signal réfléchi est perçu grâce à un
photodétecteur.

On peut alors connaître le temps qu'a mis la lumière pour faire l'aller-retour, et en connaissant
la vitesse de la lumière on peut connaître la distance de l'obstacle. Le balayage du faisceau de
mesure est réalisé par un prisme rotatif et couvre un angle de vision jusqu'à 360 degrés. Les
données originales d'un lidar ressemblent beaucoup aux données d'image de vision. Par
conséquent, une procédure similaire au traitement d’image est appliquée. Tout d’abord, les
points de données en bloc sont regroupés en différents objets par segmentation. Ensuite, les
objets sont classés en différentes catégories en fonction de leurs caractéristiques. Par exemple,
les piétons peuvent être classés selon les caractéristiques de leurs jambes mobiles

Figure 4 - Illustration du capteur Scala de Valeo utilisé par Audi pour l'autonomie de niveau 3
(a), d'un capteur Velodyne utilisé pour les robots taxi (b) et d'un lidar Solid State (c) d'Innoviz
pour les futurs véhicules série [1]

6
Figure 5 - Exemple de ce que peut percevoir un lidar 360◦ sur le toit d'un robot taxi [1]

3.3.3 Radar

Un radar exploite des ondes électromagnétiques pour mesurer la distance et la position d’un
objet. Il est constitué d’une antenne émettrice et de deux antennes réceptrices, un courant
alternatif est appliqué à l’antenne émettrice celle-ci génère et envoie une onde
électromagnétique. Sur la base de l'analyse des signaux arrière rebondis, les objets peuvent
être détectés avec leur distance et leur vitesse. En plus de l’émission d’une onde, un radar
utilise le principe de l’effet Doppler, ce qui lui permet de connaitre les différentes vitesses des
obstacles.

Des limites de détection peuvent apparaitre en fonction de certaines conditions extérieures :

• Les conditions météorologiques (neige, pluie, brouillard)

• Une cible hors zone de détection (virage serré)

• Le radar ne doit pas être derrière une pièce métallique (plus fréquemment derrière un
parechoc)

Figure 6 - Exemples de radars Bosch dits Middle Range (a) et Long Range (b) [1]
7
Figure 7 - Exemple de ce que peut percevoir les différents types de radar (courte, moyenne et
longue portée)

3.3.4 Capteur Ultrason

Les détecteurs ou capteurs à ultrasons transmettent des ondes ultrasonores (haute fréquence
généralement entre 43 et 60 kHz). Lorsqu’un obstacle ou un objet passe, une partie de l'onde
sonore transmise est réfléchie vers le récepteur. Sur la base de l'analyse du signal réfléchi, les
objets peuvent être détectés avec leur distance et leur vitesse. Ces capteurs sont capables de
mesurer des distances pour un coût très faible. Du fait de leur portée assez réduite (jusqu'à 2,5
m), ils sont essentiellement et très largement déployés sur les véhicules pour les applications
d'aide au stationnement. Une extension à la surveillance d'angle mort est aussi disponible pour
certains véhicules pour limiter les coûts de cette fonction en remplacement de radars, mais
avec des performances moindres.

Figure 8 - Exemple d'un capteur ultrasons utilisé pour les fonctions de parking et de surveillance
d'angle mort [1]

8
3.3.5 Avantages et inconvénients de chaque technologie

La combinaison de différentes technologies de capteurs est la clé pour réussir à percevoir le


maximum d'informations de l'environnement en tirant profit des avantages de chacune de ces
différentes technologies tout en amenant des possibilités de redondance en cas de défaillances.
Le tableau en Figure 9 illustre les différents avantages et inconvénients des technologies
utilisées pour les ADAS et fonctions autonomes.

Figure 9 -Tableau récapitulatif des avantages et inconvénients de chaque capteur, notés de 1 à 5 [1]

Les capteurs qu’on vient de présenter ci-dessus sont des capteurs extéroceptifs, ils permettent
de percevoir l’environnement autour du véhicule égo, il existe aussi d’autres capteurs
proprioceptifs qui permettent au véhicule égo de se localiser dans le milieu où il évolue et
déterminent aussi sa vitesse et son cap, les plus courants sont les systèmes mondiaux de
navigation par satellite GNSS tel que GPS, IMU ainsi que des capteurs d’odométrie de roue.

4 La perception de l’environnement
Très grossièrement, toutes les tâches de conduite peuvent être divisées en deux composantes.
Tout d’abord nous devons comprendre ce qui se passe autour de nous et où nous sommes,
donc nous devons percevoir notre environnement. Deuxièmement, nous devons prendre une
décision de conduite, par exemple devrions nous accélérer ou s’arrêter avant qu’un piéton ne
pénètre dans la chaussée.

9
La notion de perception de l’environnement est fondamentale pour les véhicules autonomes.
Le véhicule autonome ne doit pas seulement être capable de se localiser dans le milieu où il
évolue, mais il doit pouvoir percevoir les obstacles qui l’entourent et les éviter tout en gardant
en mémoire que ces objets peuvent être statiques ou dynamiques et donc non cartographiés à
l’avance. Il faut donc savoir ce qui se passe dans l’environnement direct du véhicule et savoir
ce qui peut être ou devenir dangereux pour lui lors de ses déplacements.

La perception de l’environnement peut être décomposée en plusieurs tâches essentielles : la


localisation, la cartographie, la détection et le pistage d’objets mobiles. La localisation est un
procédé qui permet d’établir la relation spatiale entre le véhicule autonome et les objets
statiques de son environnement. La cartographie consiste à établir la relation spatiale entre les
objets fixes perçus. Finalement la détection et le suivi d’objets mobiles consistent à établir une
relation spatiale et temporelle entre les objets mobiles de l’environnement, le véhicule
autonome et les différents objets stationnaires observés [2] .

Les différents éléments dont nous avons besoin pour être en mesure d’identifier pour la tâche
de perception

Identification des objets statiques

- la route et les lignes

- les bordures de route

- feux de signalisation

-les panneaux de signalisation

- panneau de construction, obstructions

10
Identification des objets dynamiques

- véhicules

- 4 roues (voiture, camion)

- 2 roues (moteur, vélo)

- piétons

Localisation de l’égo

- Position

- vitesse, accélération

- orientation, mouvement angulaire

Événements liés aux objets statiques

- une information reçue d'un panneau de signalisation (sujet 9)

- le feu de signalisation

- tester ou sortir du ligne droite

- franchissement de ligne (sujet 6)

Événements liés aux objets dynamiques

- piétons et objets affectant le roulement de la voiture (sujet 1,2,15)

- non-respect de la distance de sécurité par d'autres voitures (sujet 8)

-un cas de collision, accident … - un véhicule dans la zone morte (sujet 7)

Événements liés au conducteur

-Fatigue, inattentions et vigilance (sujet 5,6)

11
5 Architecture logicielle modulaire représentative pour les voitures
autonomes
L’architecture utilise les informations fournies par les composants matériels et nous permettra
d’atteindre notre objectif de conduite autonome.

La voiture observe l’environnement qui l’entoure en utilisant une variété de capteurs, les
mesures des capteurs bruts sont passées à deux ensemble de modules dédiées à la
compréhension de l’environnement autour de la voiture .

5.1 Module perception de l’environnement

12
Il y’a deux parties importantes de la pile de perception, premièrement la localisation du
véhicule dans l’espace, ainsi que la classification et la localisation des objets importants dans
l’environnement.

-le module de localisation prend en charge plusieurs flux d’informations, tels que
l’emplacement GPS actuel, les mesures IMU et l’odométrie des roues, il les combine pour
obtenir un emplacement précis du véhicule. Pour plus de précision, certains modules de
localisation intègrent également des données LIDAR et caméra [4].

- Typiquement, le problème de la classification et de la localisation des éléments


environnementaux est divisé en deux segments, d’abord, la détection des objets dynamiques
dans l’environnement et ensuite la détection des objets statiques.

-le module de détection d’objet dynamique utilise un ensemble d’entrées de caméra ainsi
que des nuages de points LIDAR pour créer des boites de délimitation 3D (3D bounding
boxes) autour d’objets dynamiques dans la scène [4].

« The 3D bounding boxes encodent également la classe ou le type d’objet, la position exacte,
ainsi que l’orientation et la taille de l’objet »

Une fois détectés, les objets dynamiques sont suivis au fil du temps par un module de suivi
(tracking module) celui-ci fourni la position actuelle des objets dynamiques ainsi que
l’historique de son chemin à travers l’environnement.

« L’historique du chemin est utilisé avec road map dans l’ordre pour prédire le chemin futur
de tous les objets dynamiques, ceci est généralement géré par un module de prédiction, qui
combine toutes les informations concernent l’objet dynamique et l’environnement actuel pour
prédire le chemin de tous les objets dynamiques »

-le module de détection d’objets statiques s’appuie également sur une combinaison d’entrée
de la caméra et de LIDAR pour identifier les objets statiques significatifs dans la scène,
comprennent la voie actuelle dans laquelle le véhicule autonome se trouve et l’emplacement
des éléments réglementaires tels que les panneaux de signalisation et les feux de circulation
[4].

13
5.2 Module de mappage d’environnement

Il y’a trois types de cartes ; la carte de la grille d’occupation (occupancy grid map), la carte de
localisation (localisation map), et la carte routière détaillée [4].

- la carte de la grille d’occupation est une carte de tous les objets statiques dans
l’environnement entourant le véhicule , le LIDAR est principalement utilisé pour construire
cette carte , un ensemble de filtres sont d’abord appliqués au données LIDAR pour les rendre
utilisables par la grille d’occupation : par exemple , les points de surface de navigation et les
points d’objet dynamique sont supprimés , cette carte représente l’environnement sous forme
d’un ensemble de cellules de grilles et associe une probabilité que chaque cellule soit occupée
.Cela permet de gérer l’incertitude dans les données de mesure et d’améliorer la carte au fil
de temps [4].

-la carte de localisation, qui est construite à partir de LIDAR, ou de donnée caméra est utilisé
par le module de localisation afin d’améliorer l’estimation de l’état actuel du véhicule.

Les données des capteurs sont comparées à cette carte en conduisant pour déterminer le
mouvement de la voiture par rapport à la carte de localisation, ce mouvement est ensuite
combiné avec d’autres informations des capteurs propriocepteurs pour localiser avec précision
le véhicule égo [4].

-la feuille de route détaillée fournit une carte des segments routiers qui représentent
l’environnement de conduite que traverse actuellement le véhicule autonome, il capture les
panneaux et les marques de voie d’une manière qui peuvent être utilisé pour la planification
de mouvement, cette carte est traditionnellement une combinaison de données préenregistrées
ainsi que l’informations entrantes provenant de l’environnement statique actuel rassemblées
par la pile de perception [4].

« Les modules de perception et de cartographie de l’environnement interagissent de manière


significative pour améliorer leurs performances, par exemple le module de perception fournit
les informations à propos de l’environnement statique nécessaire à la mise à jour de la feuille
de route détaillé, qui est ensuite utilisée par le module de prédiction pour créer des prédictions
d’objets dynamiques plus précis »

14
5.3 Module de planification de mouvement

La sortie des cartes d’environnement et les modules de perception sont combinés et utilisés
par le module de planification de mouvement pour créer un chemin à travers l’environnement.

La planification de mouvement pour les voitures autonomes est une tâche difficile et c’est
difficile à résoudre en un seul processus intégré au lieu de cela, la plupart des voitures
autonome utilisent aujourd’hui une décomposition qui divise le problème en plusieurs
couches d’abstraction comme suit :

-Au niveau supérieur, le planificateur de mission gère la planification à long terme et défini
la mission sur tout l’horizon de la tâche de conduite, à partir de l’emplacement actuel, en
passant par le réseau routier jusqu’à sa destination finale [4].

Pour trouver la mission complète, le planificateur de mission détermine la séquence optimale


des segments de route qui relient notre origine et notre destination, et passe ensuite cette
séquence à la couche suivante.

Le planificateur de comportement, est le prochain niveau d’abstraction, résolvant des


problèmes de planification à court terme, il est chargé d’établir un ensemble d’actions
sécurisé ou des manœuvres à exécuter tout en voyageant sur le chemin de la mission.

Un exemple, c’est de savoir si le véhicule doit fusionner dans une voie adjacente compte tenu
de la vitesse souhaitée et les comportements prévus des véhicules à proximité.

En plus des manœuvres des décisions, le planificateur de comportement fournit un ensemble


de contraintes exécutées avec chaque action, comme le temps de rester dans la voie en cours
avant de passer (before switching).

15
Enfin, le planificateur local effectue une planification immédiate ou réactive, et responsable
de la définition d’un chemin et d’un profil de vitesse spécifiques à piloter.

Le plan local doit être smoot, sure et efficace compte tenu de toutes les contraintes actuelles
imposées par l’environnement et la manœuvre.

Afin de créer un tel plan, le planificateur local combine les informations fournies par le
planificateur de comportement, la grille d’occupation, les limites de fonctionnement du
véhicule et d’autres objets dynamiques dans l’environnement.

« La sortie du planificateur local est une trajectoire planifiée et un profil de vitesse pour une
courte période dans le futur. »

5.4 Le module de contrôleur

Un contrôleur typique prend la trajectoire donnée et la transforme en un ensemble de


commandes d’actionnement précises que le véhicule doit appliquer, il sépare le problème de
commande en une commande longitudinale et une commande latérale.

-le contrôleur latéral émet l’angle de braquage requis pour maintenir la trajectoire prévue,
tandis que le contrôleur longitudinal règle la manette des gaz, les vitesses et le système de
freinage pour atteindre la vitesse correcte.

Les contrôleurs calculent les erreurs actuelles et les performances de suivi du plan local, et
ajustent les commandes d’actionnement en cours pour minimiser les erreurs à l’avenir [4].

5.5 Le module du superviseur

16
Le superviseur système est le module qui surveille en permanence tous les aspects de la
voiture autonome et donne l’avertissement approprié en cas de défaillance du sous-système.

Il y’a deux partie, le superviseur matériel et le superviseur logiciel.

-Le superviseur du matériel surveille en permanence tous les composants matériels pour
vérifier tout défaut, comme un capteur cassé, une mesure manquante ou des informations
dégradées. Une autre responsabilité du superviseur matériel est d’analyser continuellement les
sorties matérielles pour toutes les sorties qui ne correspondent pas au domaine dans lequel la
voiture autonome a été programmée pour travailler dedans, par exemple si un sac en papier ou
si la neige tombe et corrompt les données du nuage de points LIDAR [4].

-Le superviseur du logiciel a la responsabilité de valider cette pile logicielle pour s’assurer
que tous les éléments fonctionnent comme prévu aux bonnes fréquences et fournissent des
sorties complètes, il est également responsable de l’analyse des incohérences entre les sorties
de tous les modules [4].

17
6 La hiérarchie du planificateur de mouvement
Le planificateur de mission est le problème d’optimisation le plus élevé ou nous concentrons
sur la navigation au niveau de la carte depuis la position actuelle du véhicule jusqu’à une
destination donnée.

-Nous planifions entre deux points prenant en considération les différentes intersections et

liaison routières sur la carte, ainsi que la direction de chaque route, nous calculons ensuite le
chemin le plus court de notre réseau routier jusqu’à notre destination, pour cela on peut
construire un graph et ensuite utiliser l’algorithme de Dijkstra ou la recherche A* pour trouver
le plus court chemin

Le planificateur comportemental se concentrera sur le scénario de conduite actuel et


décidera de la Manoeuvre à exécuter en fonction d’autres agents dans l’espace et des règles de
la route

Enfin, on a le planificateur local qui se concentrera sur la génération de chemin cinématique


réalisable, sans collision, ainsi que des profils de vélocité confortables et surs pour le véhicule
égo.

Cela sera ensuite transmis à notre contrôleur de véhicule.

Nous décomposons le problème de plan locale en deux sous-problèmes :la planification du


chemin et la génération du profil de vitesse. L’ingéniosité clé derrière le développement d’un
bon algorithme de planification de chemin est de réduire l’espace de recherche pour
l’optimisation.

18
Il existe trois grandes catégories de planificateurs de parcours : les planificateurs basés sur
l’échantillonnage (RRT algorithme,), les planificateurs vibrationnels et les planificateurs en
réseau.

Détaillons encore le planificateur comportemental car c’est le sous-module qui nous assure la
réalisation de la réponse immédiate :

-le planificateur comportemental est une partie du planificateur de mouvement qui se


concentre sur la prise de décision de haut niveau nécessaire pour suivre les règles de la route,
et reconnaitre quelles manœuvres sont sures à effectuer dans un scénario de conduite donné

Par exemple :

Effectuer un virage à une intersection

Le véhicule est entré dans une intersection pour effectuer un virage à gauche et que le feu
tourne au vert, le planificateur de comportement doit indiquer clairement au planificateur de
trajectoire et au générateur de vitesse, qu’il n’est sûr de procéder que lorsqu’il y a
suffisamment de temps entre la position du véhicule et les circulations et les piétons venant en
sens inverse dans l’intersection, le planificateur de comportement est censé prendre toutes les
informations sur les véhicules autonomes environnants et calculer quelle manœuvre il devrait
exécuter de manière efficace. Il s’agit d’un domaine de recherche active et il n’existe pas de
meilleure méthode établie pour y parvenir.

En général il existe trois architectures dominante différentes pour résoudre ce problème.

-les méthodes qui utilise des machines à état fini (finite state Machines) :

Le concept clé derrière les machines à état fini est qu'elles sont composées de : états qui
représentent les manœuvres requises par les ego-véhicules, et transitions qui dictent comment
l'état doit évoluer en fonction des entrées. Il peut s'agir de choses comme : l'emplacement des
véhicules, les transitions des feux de circulation, ou tout autre élément intéressant notre
scénario de conduite actuel. À titre d'exemple, on pourrait imaginer une machine d'état qui
gère les panneaux d'arrêt pour avoir un état tel que décélération pour arrêter, arrêter et suivre
la vitesse. Lorsqu' une voiture rencontre un panneau d'arrêt, elle entre d'abord dans l'état de

19
décélération pour arrêter, où le planificateur comportemental signale alors qu'il est temps de
décélérer. Une fois qu'il s'est arrêté à l'emplacement d'arrêt, le planificateur de comportement
reste à l'état d'arrêt pendant une période définie.

Une fois que le temps a été dépassé et que l'intersection est dégagée, le planificateur de
comportement entrera alors dans l'état des vitesses de la piste, ce qui signifie qu'il est sûr de
continuer à conduire

- Il est important de noter que lors de la décision de la transition à prendre à chaque étape de
la machine à état fini, nous nous concentrons entièrement sur l'état actuel et les entrées de la
machine à état fini. !

Essentiellement, cela signifie que la machine à état fini est sans mémoire. Ses états passés
n'ont pas d’incidence sur la transition ou la production actuelle. Il s'agit d'une propriété utile
qui rend les machines à état fini simples à implémenter, mais peut conduire à de nombreux
états similaires pour les systèmes où les séquences d'actions ont de l'importance.

-les systèmes fondés sur des règles (Rule-base System) :


Essentiellement, ces types de systèmes consistent en une hiérarchie de règles, où la hiérarchie
représente l'importance relative de chaque règle. Chaque règle peut correspondre à une règle
de la route telle que l'arrêt à un feu rouge, ou peut correspondre à une meilleure pratique de
conduite telle que le maintien d'un écart de deux secondes entre l'ego-véhicule et un véhicule
de tête.
20
L’état de l'ego-véhicule et de ses environs seraient ensuite introduits dans le système fondé sur
des règles sous la forme de prédicats logiques. Ces prédicats seraient ensuite évalués par
rapport à chaque règle et en fonction de la priorité de la règle, la manœuvre correspondant à la
règle de priorité la plus élevée serait envoyée au reste du planificateur de mouvement. Par
exemple, supposons que nous ayons les deux règles suivantes. La première règle vérifie s'il y
a un feu vert à l'avance et prend une décision pour que la voiture continue à conduire. Alors
que la deuxième règle vérifie s'il y a des piétons dans les voies des voitures et émet une
décision d'effectuer la manœuvre d'arrêt d'urgence. Dans notre système, s'arrêter pour un
piéton devant nous est plus prioritaire que de conduire à travers le feu vert. Supposons
maintenant que nous roulions le long et observions un feu vert à la prochaine intersection
ainsi qu’un passage pour piétons illégalement devant l'intersection. Les deux règles se
déclencheraient dans ce cas, mais puisque l'arrêt d'urgence est plus prioritaire, c'est la
manœuvre que le système basé sur des règles produira. Il est à la fois important et difficile de
s’assurer que les systèmes basés sur des règles sont cohérents sur le plan logique. Sinon, ils
peuvent présenter un comportement erratique.

Le dernier groupe d’approches de planification comportementale sont des méthodes basées


sur l'apprentissage automatique. En particulier, un exemple intéressant de cette méthode est
l'utilisation de l'apprentissage par renforcement. L’apprentissage par renforcement est le
processus de détermination d'une politique de prise de décision optimale qui maximise
certaines fonctions de récompense R. Cette fonction de récompense valorise la qualité d'une
chaîne d'actions donnée pour toutes les étapes temporelles, en excluant plus fortement les
états futurs que le présent. Le processus d'apprentissage par renforcement exige que l'agent
effectue des actions dans un environnement souvent donné par simulation.
Cet agent est ensuite récompensé en fonction de son interaction avec l'environnement. Ce qui
lui permet alors de converger vers une politique optimale grâce à des interactions successives.

21
CHAPITRE 2 – APPRENTISSAGE PAR
RENFORCEMENT

1 Introduction
Dans ce chapitre , nous mettons en évidence les solutions pratiques qui permettent au véhicule
autonome de prendre des décisions de conduite adéquates en utilisant l’apprentissage par
22
renforcement , l’idée est d’entrainer un agent à prédire les modifications à apporter sur
l’accélération et la direction à partir d’une image issue de la caméra frontale de la voiture ,
pour cela on va utiliser trois méthodes le Q-Learning , le Deep Q-Learning et le double Deep
QLearning avec expérience replay où on va expliciter leurs concepts généraux et expliquer en
détail le fonctionnement de l’algorithme de renforcement learning que nous avons choisi.

2 Idée générale de l’apprentissage par renforcement


Un agent dans un état actuel S apprend de son environnement en interagissant avec ce
dernier par le moyen d’actions. Suite à une action a, l’environnement retourne un nouvel
état S’et une récompense R associée, qui peut être positive ou négative.

Dans notre projet, nous allons étudier l’utilisation d’une solution d’apprentissage par
renforcement (RL – Renforcement Learning – pour les intimes) pour la conduite autonome
selon le contexte schématisé sur la figure ci-dessous.

Figure 10 - L’objectif est d’entraîner un agent à prédire les modifications à apporter sur
l’accélération et la direction à partir d’une image issue de la caméra frontale de la voiture.

23
3 L’apprentissage par renforcement appliqué à la conduite
autonome
3.1 Principes généraux du RL dans le cas de la conduite autonome
• L’agent est le pilote de la voiture autonome, ou plus exactement l’algorithme de
RL utilisé par la voiture pour gérer son pilotage. C’est lui que l’on cherche à
entraîner.
• Les actions que peut entreprendre l’agent dans l’environnement sont la
modification de la direction de la voiture et son accélération.
• Les états dans lesquels peut se retrouver notre agent à tout instant t (notés st) sont
décrits par une image issue de la caméra frontale de la voiture.
• L’environnement est la route sur laquelle évolue notre voiture.
• L’épisode est la suite d’étapes se finissant par une sortie de route de la voiture.

L’apprentissage de l’agent dans l’environnement est résumé sur la figure 11.

Figure 11 - Principe général de l’apprentissage par renforcement appliqué à notre cas d’usage.

24
3.2 Le Q-Learning
Définition :

Le Q-learning est un algorithme d'apprentissage par renforcement utilisé pour résoudre les
problèmes de décision. Il permet à un agent de découvrir la meilleure action à prendre dans
chaque état en utilisant une fonction de valeur appelée "fonction Q". La fonction Q est mise à
jour en fonction de la récompense obtenue pour chaque action et de la valeur attendue de la
prochaine action. Le Q-learning est souvent utilisé pour résoudre les problèmes de contrôle et de
navigation dans les environnements discrets.

Description

Cette méthode d'apprentissage permet d'apprendre une politique, qui indique quelle action
effectuer dans chaque état du système. Cela fonctionne par l'apprentissage d'une fonction de
valeur état-action notée Q qui permet de déterminer le gain potentiel, c'est-à-dire la
récompense sur le long terme, Q (s, a), apporté par le fait d'effectuer une certaine action a
dans un certain état s en suivant une politique optimale. Lorsque cette fonction de valeur
d'action-état est connue/apprise par l'agent, la politique optimale peut être construite en
sélectionnant l'action à valeur maximale pour chaque état, c'est-à-dire en sélectionnant l'action
a qui maximise la valeur Q (s, a) quand l'agent se trouve dans l'état s.

Un des points forts du Q-learning est qu'il permet de comparer les récompenses probables de
prendre les actions accessibles sans avoir de connaissance initiale de l’environnement. En
d'autres termes, bien que le système soit modélisé par un processus de décision markovien
(fini), l'agent qui apprend ne le connait pas et l'algorithme du Q-learning ne l'utilise pas [3].

Algorithme

La situation consiste en un agent, un ensemble d'états S et d'actions A. En réalisant une

action l'agent passe d'un état s à un nouvel état s’ et reçoit une récompense r (c'est une
valeur numérique). Le but de l'agent est de maximiser sa récompense totale. Cela est réalisé
par apprentissage de l'action optimale pour chaque état. L'action optimale pour chaque état
correspond à celle avec la plus grande récompense sur le long terme. Cette récompense est la
somme pondérée de l'espérance mathématique des récompenses de chaque étape future à

partir de l'état actuel. La pondération de chaque étape peut être est le délai entre
l’étape actuelle et future et 𝛾 un nombre compris entre 0 et 1 (autrement dit 0 ≤ 𝛾 ≤1)

25
L'algorithme calcule une fonction de valeur action-état :
Avant que l'apprentissage ne débute, la fonction est initialisée arbitrairement. Ensuite, à
chaque choix d'action, l'agent observe la récompense et le nouvel état (qui dépend de l'état
précédent et de l'action actuelle). Le cœur de l'algorithme est une mise à jour de la fonction de
valeur. La définition de la fonction de valeur est mise à jour à chaque étape de la façon
suivante :

Où s’ est le nouvel état, s est l'état précédent, a est l'action choisie, r est la récompense reçue
par l’agent, 𝜶 est un nombre entre 0 et 1, appelé facteur d'apprentissage, et 𝜸 est le facteur
d'actualisation.

Un épisode de l'algorithme finit lorsque 𝒔𝒕+1 est un état final. Toutefois, le Q-learning peut
aussi être appliqué à des tâches non épisodiques. Si le facteur d'actualisation est plus petit que
1, la valeur action-état est finie même pour ∆𝒕 infini.

N.B. : Pour chaque état final 𝑠𝑡 , la valeur de 𝑸(𝒔𝒇,𝒂) n'est jamais mise à jour et maintient sa
valeur initiale. Généralement, 𝑸(𝒔𝒇,𝒂) est initialisé à zéro.

Figure 12 - La fonction de valeur action-état dans une table est initialisée à 0 pour chaque

26
couple
action-état. Chaque cellule est mise à jour pendant l'exécution de l'algorithme Q-learning.

Figure 13 - La fonction de valeur est ce que l’on espère gagner sur le long terme si l’on
entreprend une certaine action dans un certain état en suivant une certaine politique.

3.3 Le Deep Q-Learning (DQL)


Nous avons choisi d’utiliser comme algorithme une “version améliorée” du Q-Learning

Le Deep Q-Learning (DQL) propose comme approximateur de la fonction Q un réseau de


neurones (généralement profond, d’où le terme Deep Q-Learning) plutôt qu’une Q-table.

Cela répond à la problématique de la taille de l’espace des états

Dans notre cas, on choisit de décrire chaque état par une image de la route et après un
prétraitement, cette image est en noir et blanc de taille 84 par 84. La taille de l’espace des
états
(noté S) dans ce cas est donc |S| = 256^ (84×84) ≈ 1O^ (16 992), ce qui est bien trop grand
pour autoriser une représentation de la fonction de valeur Q sous forme de tableau (qui aurait
donc 1O^ (16 992 lignes)).

27
Figure 14 - Exemple où on a 5 actions possibles correspondant à 5 angles de braquage
différents, l’accélération étant fixée constante.

On veut utiliser ici un réseau de neurones comme un “oracle” que l’on consulte. On lui
présente une image de la route et il nous indique pour chaque action possible la récompense
totale que l’on est censé obtenir avant de sortir de la route (i.e. avant la fin de l’épisode)
comme le montre la figure ci-dessus. Bien entendu cet oracle n’est pas pertinent au début de
l’entraînement car on choisit en général des poids aléatoires quand on initialise un réseau de
neurones mais on va l’entraîner et ce quasiment de la même façon que l’on mettait à jour
notre Q-table.

Si l’on change la représentation de notre fonction de valeur Q, on doit également changer


notre méthode de mise-à-jour lors de l’entraînement par l’équation de Bellman qui permet
de remplacer une valeur par une autre en fonction de la récompense obtenue pour affiner
l’estimation.

28
Figure 15 - L’équation de Bellman qui décrit la méthode de mise-à-jour de notre Q-table.

Or si l’on choisit de représenter notre fonction non plus par un tableau mais par un réseau de
neurones, cette mise-à-jour doit concerner les paramètres du réseau de neurones. La mise-
àjour de notre approximation va fonctionner selon le même principe : minimiser l’écart entre
une valeur actuelle Q-predict et une valeur cible Q-target. À chaque mise-à-jour des
paramètres de notre réseau de neurones, on effectue une descente de gradient ayant la fonction
de coût décrite sur la figure ci-dessous.

Figure 16 - La fonction de coût du réseau de neurones se base sur la différence Q-target / Q-


predict de façon analogue à l’équation de Bellman.

Un réseau de neurones possède des valeurs numériques qui lui sont propres (appelées poids)
et qui lui servent à prédire ses valeurs de sorties à partir de ses entrées. Ce sont ces valeurs qui
sont modifiées lors de l’apprentissage. Pour les modifier, on utilise une métrique : la fonction
de coût. Cette fonction de coût est un indicateur basé sur la différence entre les valeurs
actuellement prédites par notre réseau de neurones et celles que l’on voudrait qu’il prédise. En
Deep Q-Learning on utilise la fonction de récompense pour calculer les valeurs que l’on
souhaite que notre réseau de neurones prédise. Le gradient est un vecteur qui contient la
modification des poids à effectuer pour tendre vers cet objectif et affiner notre prédiction.

29
Effectuer une “descente de gradient” c’est donc répéter ce mode de fonctionnement autant de
fois que nécessaire afin que les paramètres du réseau de neurones s’affinent progressivement
pour prédire pertinemment les valeurs cibles.

Le principe reste donc le même que précédemment, à chaque mise-à-jour des paramètres de
notre réseau de neurones, le réseau “tend un peu plus vers” une estimation correcte de la
fonction de valeur Q. On peut donc supposer que si on s’entraîne suffisamment longtemps le
réseau de neurones va converger et l’estimateur va devenir bon.

En prenant en compte tout ce qui vient d’être dit l’algorithme du DQL est :

Limites du DQL

Cependant, le DQL ainsi implémenté est considéré comme instable lorsqu’il utilise des
approximateurs non-linéaires tels que les réseaux de neurones profonds. Cela est
principalement dû à deux choses :
30
1. La forte corrélation qui lie les séquences d’observation : les états sont observés
les uns à la suite des autres et présentés dans cet ordre au réseau de neurones pour
l’entraînement. En effet, un état st+1 ressemble fortement à un état St, puisqu’ils
correspondent à deux images successives de la route.
2. La forte influence de la fonction Q sur la politique menée et donc sur la
distribution des états rencontrés dans l’environnement. L’état St+1 est issu de
l’état St après avoir entrepris l’action at (qui peut être aléatoire ou issue de la
prédiction de notre réseau de neurones si on suit une politique epsilon-greedy) qui
elle-même dépend de notre politique.

Afin de traiter le premier problème, une méthode appelée expérience replay peut être
utilisée.

3.4 Expérience replay


Le principe de l’expérience replay est d’utiliser une mémoire de reprise (replay memory)
pour stocker les transitions observées lors de l’exploration de l’environnement de la part de
l’agent puis les sélectionner aléatoirement à chaque étape de l’apprentissage. Ces tuples de
transitions sont des quintuplés de la forme (st, at, rt, st+1, terminal) (terminal étant un booléen
indiquant si l’état est terminal ou non) correspondant à une seule étape de l’exploration de
l’environnement. . Ce principe est résumé en figure 8.

31
Figure 17 - Principe de l’expérience replay

Un deuxième avantage de cette technique est qu’elle donne la possibilité de s’entraîner par
“lots” (mini-batches) et de pouvoir faire une descente de gradient stochastique. Sans rentrer
dans le détail, plutôt que de mettre à jour les paramètres de notre réseau de neurones en
n’utilisant qu’une seule étape de transition à chaque fois, on calcule un gradient “agrégé” qui
moyenne plusieurs gradients issus de plusieurs étapes de transition différentes. Cette
technique permet d’augmenter les chances de trouver “une bonne direction” pour la descente
de gradient et d’augmenter la vitesse de convergence de l’algorithme.

Reste un deuxième problème à résoudre : la forte influence de la fonction Q sur la


politique menée et donc sur la distribution des états rencontrés dans l’environnement

3.5 Le double Deep Q-learning ou DDQL


Le Double Deep Q-Learning (DDQL) est une version améliorée du DQL permettant de palier à
l’une de ses faiblesses : la surestimation de l’importance de certaines actions dans certaines
conditions.
L’idée derrière le DDQL est de séparer la sélection de l’action qui maximise la valeur Q de
son évaluation. L’expression de mise-à-jour de la valeur Q donnée dans l’expression de la
fonction de coût utilisée pour la descente de gradient sur le réseau de neurones suppose
32
l’utilisation du même réseau de neurones pour sélectionner l’action at+1 et pour calculer la
valeur Q (st+1, at+1, theta(actuel)). Le DDQL propose donc l’utilisation de deux réseaux de
neurones distincts :
• L’un pour la sélection de l’action : le réseau « Q »
• L’autre pour l’évaluation de l’action : le réseau « Q-cible ».
Lors de l’entraînement, les paramètres du réseau de neurones « Q-cible » sont régulièrement
mis-à-jour en clonant les paramètres du réseau de neurones « Q » ce qui permet de profiter de
l’amélioration de l’estimation dû à l’apprentissage progressif de l’agent pendant
l’entraînement.

Figure 18 - Principe du dédoublement du réseau de neurones pour le DDQL

Le pseudo code de notre algorithme de DDQL avec expérience-replay s’écrit comme suit :

33
3.6 Conclusion
• On cherche à entraîner un oracle (le réseau de neurones) qui pour un état donné
nous dit : si j’entreprends telle action, je suis censé accumuler telle récompense
avant de sortir de la route.
• Pour entraîner cet oracle, on se promène dans l’environnement et on stocke toutes
nos observations dans une mémoire de reprise. L’oracle va ensuite piocher
aléatoirement dans cette mémoire pour s’entraîner.
• On utilise la récompense pour calculer une valeur cible. La différence entre la
valeur cible et la valeur prédite par l’oracle est la mesure que celui-ci utilise pour
affiner sa prédiction. La valeur cible étant calculée à partir de la récompense
l’oracle va affiner sa prédiction au fur et à mesure de l’entraînement.
• Comme le calcul de la valeur cible utilise la prédiction de l’oracle, on choisit de le
dédoubler en utilisant un oracle pour le calcul de cette valeur, et un autre oracle
qui s’entraîne. Régulièrement, on met-à-jour l’oracle du calcul qui sert à calculer
la valeur cible avec les informations de l’oracle qui s’entraîne.

34
4 Partie Algorithme
Carla est un environnement de conduite autonome open source, avec le python API qui
permet d’interagir avec, ici carla est notre environnement (serveur) et nous avons un agent
(c’est le client)
Cet environnement nous permet aussi d’utiliser plusieurs capteurs qu’on peut placer sur la
voiture et nous aide à simuler les capteurs réels Les types des objets en carla
➢ Le monde (environnement)
➢ Les acteurs avec ce monde ; voitures, capteurs, piétons.
➢ Les attributs de notre acteur (ici blueprints)

Nos paramètres de l’algorithme


L’algorithme utilisé est deep Q-Learning avec memory replay, notre neural network sera
constitué de 3 couches CNN avec 64 à 256 features
L’environnement est carla, on a créé la classe de l’environnement CarEnv, et il a une
méthode step qui nous permet de retourner l’observation, la récompense, déroulement
(done), et d’autre information et il s’agit d’un environnement épisodique (100 épisodes)
L’environnement nous retourne les données camera et la récompense
L’agent est créé en prenons en considération le modèle, on a fait une classe DQNAgent
On a créé notre modèle en utilisant Xception qui se trouve dans Keras.application.xception
Système de récompense
Récompense = -1 si nous avons collision ou la vitesse <50
Sinon Récompense =1
Les capteurs

➢ Un capteur de collision collision-hist qui nous permet d’avoir un historique d’incidents


➢ Camera RGB qu’on place sur le top de la voiture
Déroulement
On fait l’entrainement de notre modèle en sélectionnant des données aléatoires à partir de
notre replay memory, au début epsilon sera grand donc avait grande probabilité de choisir
une action aléatoire mais après il va choisir entre prendre une action aléatoire ou figurer
l’action à prendre en se basant sur le modèle

35
[1] MONOT, Nolwenn. Des systèmes d'aide à la conduite au véhicule autonome connecté.
2019. Thèse de doctorat. Bordeaux.

[2] Vivet, D. (2011). Perception de l'environnement par radar hyperfréquence. Application à


la localisation et la cartographie simultanées, à la détection et au suivi d'objets mobiles en
milieu extérieur (Doctoral dissertation, Université Blaise Pascal-Clermont-Ferrand II).

[3] Wikipédia

https://fr.wikipedia.org/wiki/Q-learning
[4] UPCROFT, Ben, MOSER, Michael, MAKARENKO, Alexei et al. Article technique du défi urbain
Darpa : équipe de conduite Sydney-Berkeley. Université de Sydney, 2007.
[5] https://pythonprogramming.net/reinforcement-learning-self-driving-autonomous-cars-carla-python/

[6] ZIMMER, Matthieu. Apprentissage par renforcement développemental. 2018. Thèse de doctorat.
Université de Lorraine.
1

Vous aimerez peut-être aussi