SIGMA IA Racing | Campus Rennes

Pour la deuxième saison de <IA/> RACING, projet pédagogique permettant à des étudiants de réaliser une voiture autonome, 3 des étudiants rennais se sont lancés dans ce défi : créer une IA capable de réaliser le meilleur chrono à bord d’une voiture autonome.

Objectifs du projet

Durant 7 mois, 3 étudiants de Bachelor 3 Développement et Mastère 1 Développement vont s’allier pour développer leurs compétences en intelligence artificielle et plus particulièrement sur le machine learning. Ce projet a pour ambition de permettre à nos étudiants d’acquérir les compétences de base de l’IA et du ML ainsi que les concepts nécessaires pour utiliser le framework Donkey Car. Parallèlement, ils pourront également mieux appréhender la différence entre un microcontrôleur et un ordinateur tout en envisageant les différentes possibilités fournies par un Raspberry.

4 sessions pour découvrir l'univers de l'Intelligence Artificielle et du Machine learning

Afin d’appréhender au mieux le concept d’intelligence artificielle, les étudiants ont eu l’occasion d’assister à 4 sessions découvertes de l’IA. Pour rappel, il s’agit de “l’ensemble des théories et des techniques mises en oeuvre en vue de réaliser des machines capables de simuler l’intelligence humaine”. Plus précisément, ici, il s’agit du concept de machine learning qui entre en jeu. Celui-ci est le “processus par lequel une unité apprend, fonctionne, et améliore ses performances en acquérant de nouvelles connaissances ou compétences”.

Le machine learning est basé sur la création de modèle, également appelé “apprentissage“. Il en existe 3 :

  • supervisé : un dataset est fourni avec des données, et un résultat attendu,
  • non supervisé : un dataset est fourni non labelisé, sans résultat attendu. Cet apprentissage est utile pour grouper ou organiser des données, 
  • par renforcement : fonctionne par récompenses et erreurs à partir de données inconnues.

Le framework Donkey Car

Un framework établit les fondations d’un logiciel ou son squelette applicatif, grâce à un ensemble d’outils et de composants logiciels. Il a un rôle de modèle pour les développeurs qui peuvent ensuite implémenter de nouveaux éléments pour en améliorer son utilisation.

L’une des sessions avait comme objectifs de détailler le fonctionnement de la conduite autonome dans le framework Donkey Car, et d’appréhender les outils de machine learning et de traitement d’image avec des exemples de code. 

Ce framework d’infrastructure système, basé sur Python, utilise le machine learning afin de déterminer la direction et la vitesse en fonction de l’image de la caméra. Donkey Car utilise un système de “parts” pour gérer le code supplémentaire et les modules. Chaque part s’exécute de manière séquentielle, en fonction de l’ordre d’instanciation (qui est primordial) dans le manage.py. L’optimisation de code est importante lors de l’exécution d’une boucle : Temps > 10Hz.

A noter également, que ce framework permet :

  • L’utilisation de threaded parts afin d’accélérer la vitesse de la boucle principale (l’ensemble de parts principales).
  • La gestion de la mémoire pouvant accueillir tout type d’objet et d’un système d’entrées/sorties pour chaque part, permettant l’échange.
  • L’utilisation de templates de fichiers, afin de simplifier la création de nouvelles voitures.
Le traitement d’image, via l’utilisation de plusieurs librairies Python telles que Numpy et OpenCV, a pour objectif d’améliorer la lisibilité pour le modèle suivant plusieurs traitements : contraste/luminosité, cadrage/masque, flou gaussien (filtrer les détails), échelle de gris, détection des bords (filtre laplacian)…

La cumulation de ces différents traitements, réaliser dans un ordre précis, peut permettre de réaliser un traitement d’image mettant en avant les informations de route, et rendant le modèle agnostique à l’environnement.

Appréhender la gestion d'un projet

Nos étudiants ont également pu appréhender au mieux la gestion d’un projet :

  1. Prévoir les objectifs du projet permet ainsi de construire la stratégie : gagner la course, faire fonctionner la voiture, faire en sorte que la voiture soit la plus rapide possible, etc.
  2. Connaître chaque acteur et leurs attentes sur le projet (temps libre attribué à celui-ci, objectif de chacun, etc.).
  3. Mettre en place des outils afin de communiquer (Teams, Slack, Discord…) et d’échanger des données (Drive, Teams, Github) ensemble.
  4. Mettre en place un document de suivi des tâches : hiérarchiser chaque tâche, indiquer son objectif, son état, sa deadline (délai), qui s’en occupe. De plus, chaque semaine, un point peut être réalisé afin de rendre compte du travail effectué par chacun.
  5. Gérer les risques durant le projet : partir du framework de base, et l’améliorer petit à petit, quitte à revenir sur la version antérieure si nécessaire.
/evenement/sigma-ia-racing-campus-rennes/2022-03-02Evénement

Par Léna Queguiner
Chargée de communication