IMA3/IMA4 2018/2020 P9 : Différence entre versions

De Wiki de Projets IMA
(Cahier des charges du groupe)
(Liste des tâches à effectuer)
Ligne 134 : Ligne 134 :
  
 
Agencement de la voiture
 
Agencement de la voiture
 
 
       Commande de la voiture (moteur, vitesse, virages)
 
       Commande de la voiture (moteur, vitesse, virages)
 
       Commande manuelle
 
       Commande manuelle
 
       Commande automatique
 
       Commande automatique
 +
  
 
Réseau neuronal
 
Réseau neuronal
       mise en place
+
       Mise en place
       entrainement
+
       Entraînement
 +
      Implémentation de l'IA sur le Linux temps réel de la voiture.
 +
 
 +
 
 +
Mise en place matérielle
 +
      Implémenter les algo de commande des moteurs sur l’Arduino.
 +
      Concevoir l'algorithme de traitement d'image dans le réseau neuronal.
 +
      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).
 +
     
 +
 
 +
Liaisons entre les différents organes de la voiture
  
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
 
  
  

Version du 5 mars 2019 à 11:02


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

IMG 20181124 202851.jpg

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]


Ironcar 3-225x300.jpg

Navette autonome

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]

midium

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/

[2]: http://www.leparisien.fr/high-tech/qui-deviendra-le-champion-de-france-de-mini-voitures-autonomes-19-11-2018-7946379.php

[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/

[6]: https://www.ilevia.fr/cms/actualite/actus-des-reseaux/voyagez-navette-autonome-a-lille-mois-de-decembre.html

[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
     Entraînement
     Implémentation de l'IA sur le Linux temps réel de la voiture.


Mise en place matérielle

     Implémenter les algo de commande des moteurs sur l’Arduino.
     Concevoir l'algorithme de traitement d'image dans le réseau neuronal.
     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).
     

Liaisons entre les différents organes de la voiture






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.

Semaine 4

Semaine 5

Semaine 6

Semaine 7

Semaine 8

Semaine 9

Semaine 10

Semaine 11

Semaine 12

Documents Rendus

Projet S7

Documents Rendus

Projet S8

Documents Rendus