IMA3/IMA4 2018/2020 P9 : Différence entre versions
(→Cahier des charges du groupe) |
(→Cahier des charges du groupe) |
||
Ligne 105 : | Ligne 105 : | ||
Optimisation de la voiture (code, commandes, ...) afin qu'elle soit plus performante. | Optimisation de la voiture (code, commandes, ...) afin qu'elle soit plus performante. | ||
+ | La voiture fera 3 tours de pistes sans sortie lors de la compétition. | ||
+ | La voiture sera autonome sur au moins un circuit | ||
+ | |||
+ | Ramenez la coupe à la maison | ||
− | |||
Détecter une sortie de piste sans avoir recours à des capteurs autres que la caméra. | Détecter une sortie de piste sans avoir recours à des capteurs autres que la caméra. | ||
La voiture finit la course le plus rapidement possible | La voiture finit la course le plus rapidement possible | ||
− | |||
− | |||
− | |||
− | |||
Reconnaître des virages et des lignes droites plus ou moins grandes et adapter sa trajectoire et sa vitesse en conséquence. | Reconnaître des virages et des lignes droites plus ou moins grandes et adapter sa trajectoire et sa vitesse en conséquence. |
Version du 5 mars 2019 à 11:00
Sommaire
Présentation générale
Description
Le projet consiste à réaliser une voiture autonome dans le but de participer au concours Ironcar dès 2019.
Ce dernier est une course de voitures (modèle réduit) intelligentes.
Afin d'y prendre part il nous faudra concevoir un véhicule pouvant suivre un circuit sans être télécommandé et pouvant s'adapter au tracé ainsi qu'à ses obstacles grâce à la Deep Learning Technologie.
Pour arriver à cette fin nous nous appuierons sur les fiches de conceptions des anciens concurrents disponibles ici.
Objectifs
Pour participer à ce concours, on devra notamment :
- mettre en place un réseau de capteurs et concevoir un algorithme qui les exploite pour pouvoir suivre la ligne discontinue du tracé;
- mettre en oeuvre un Linux temps réel pour contrôler la voiture avec une phase de comparaison par rapport à un Linux classique ;
- mettre en oeuvre d'autres algorithmes pour l'apprentissage automatique, déjà disponibles pour contrôler la voiture ;
- gérer les servo-moteurs contrôlant la direction et la vitesse de la voiture (on utilisera un shield et un Arduino), et implémenter des algorithme de contrôle de l'accélération et du freinage.
Analyse du projet
Positionnement par rapport à l'existant
Analyse des concurrents
Patate42
Le grand gagnant de la compétition édition 2018, réalisé par des élèves de l’école 42 paris, leur prototype a réussi à boucler les 3 tours en un temps record dont le meilleur tour a duré 1'17mn, ces résultats ont leurs permis de gagner le premier titre dans ce championnat national.
Ils ont choisi la Raspberry au lieu d'autres cartes électroniques parce qu’elle présente les avantages d’être facilement programmé, sa puissance et son prix très bon marché [1][2][3]
AxioNaut
AxioNaut sont des étudiants qui viennent du groupe Axionable,qui est une principale entreprise de conseil de la Science de données basée à Paris, France, ils ont remportés la seconde manche de l’Iron Car France. Il ont utilisés le modèle de Raspberrry pi 3 B+ équipé d'une camera qui assure l'autonomie dans le positionnement de la voiture et contrôle la vitesse durant le parcourt. [4][5]
C'est un véhicule autonome qui est équipé de capteurs numériques (caméras, radars, sonars, lidars,etc) et concernant le stockage des informations, ça s'enregistre sous des microprocesseur et via des logiciels spécifique. Pour les avantages , les statistiques relèvent que 90% des accidents de la route sont liés à une erreur humaine. La génération des voitures autonomes comme la navette qui permettre de réduire les accidents a travers le meilleur temps de réaction det d'une plus grande fiabilité des systèmes informatisés. [6][7]
Scénario d'usage du produit ou du concept envisagé
le protocole d'utilisation typique de notre voiture sera le suivant :
- On commande la voiture sur la piste pendant l'entrainement pour qu'elle puisse collecter les données relatives au circuit.
- On injecte ces données dans notre réseau neuronal pour déterminer les commandes à effectuer dans chaque scénario possible.
- La voiture est posée sur la piste, et les images qu'elle capte sont comparées à celles qu'elle a capturé et qui ont été analysées au préalable, ce qui lui permet de se diriger.
La question difficile
Comment entrainer notre IA ?
Réponse à la question difficile
- Nous pouvons organiser des courses participatives à Polytech pour récupérer des données de trajectoire qui permettront à notre voiture de connaitre davantage de situations pour lui permettre de réagir dans des conditions plus variées. Il faudrait tracer un circuit sur le parking par exemple, puis organiser une compétitions entre étudiants et personnels pour récupérer le plus de données possibles. On peut pondérer les résultats en "récompensant" les temps plus courts dans le programmation de l'IA.
- Nous pouvons aussi mettre en place un environnement virtuel pour simuler un tracé et laisser le réseau de neurones s'entrainer d'elle même au sein de cette simulation.
Bibliographie et webographie
[1]: https://www.42.fr/iron-car-2018-etudiants-champions/
[3]: https://github.com/EParisot/Patate
[4]: https://github.com/Axionable/Axionaut
[5]: https://www.axionable.com/axionaut-termine-1er-de-la-deuxieme-course-iron-car/
[7]: https://www.univ-lille.fr/nc/actualites/detail-actualite/?tx_news_pi1%5Bnews%5D=1423
[*]: https://github.com/vinzeebreak/road_simulator
[*]: https://github.com/vinzeebreak/ironcar
Préparation du projet
Cahier des charges du groupe
Cahier des charges pour la première année :
Reprendre le code source d'un ancien concurrent et l'implémenter dans notre châssis.
Avoir un modèle fonctionnel pour participer au concours de Septembre avec cette voiture.
Cahier des charges pour le seconde année :
Optimisation de la voiture (code, commandes, ...) afin qu'elle soit plus performante.
La voiture fera 3 tours de pistes sans sortie lors de la compétition.
La voiture sera autonome sur au moins un circuit
Ramenez la coupe à la maison
Détecter une sortie de piste sans avoir recours à des capteurs autres que la caméra.
La voiture finit la course le plus rapidement possible
Reconnaître des virages et des lignes droites plus ou moins grandes et adapter sa trajectoire et sa vitesse en conséquence.
Pouvoir faire exécuter le code de réseau de neurones par l'ordinateur suffisamment rapidement pour pouvoir réagir le plus rapidement possible (proche du temps réel).
Cahier des charges des équipes
Equipe 1
Equipe 2
Equipe 3
Choix techniques : matériel et logiciel
Equipe 1
Equipe 2
Equipe 3
Liste des tâches à effectuer
Agencement de la voiture
Commande de la voiture (moteur, vitesse, virages) Commande manuelle Commande automatique
Réseau neuronal
mise en place entrainement
Mise en place du Linux temps réel
Communication entre le réseau de neurones et la voiture
Stocker dans une base de données les images capturées et leur assigner un label (un titre faisant référence à une action à effectuer)
Concevoir l'algorithme de traitement d'image dans le réseau neuronal
Implémenter les algo de commande des moteurs sur l’Arduino
Créer le réseau de neurone, créer chaque nœud
Equipe 1
Equipe 2
Equipe 3
Calendrier prévisionnel
Le calendrier prévisionnel peut se concrétiser sous la forme d'un diagramme de GANTT.
Equipe 1
Equipe 2
Equipe 3
Réalisation du Projet
Projet S6
Eventuellement créer des sous-pages par équipe avec le compte-rendu des réunions de groupe sur cette page principale.