FastBot autodrive resume

Je vais essayer de regrouper tous les points les plus importants sur le passé du projet AutoDrive.

Introduction info globale

Le dépôt de tout le projet est disponible sur le gitlab de l’école. Il est en partie basé sur NvidiaJetracer, qui est une librairie de conduite autonome de modèle réduit.

Travail effectué l’an dernier

Je vais rapidement revenir sur le travail qui a été fait.

Premièrement, une base de données d’images de plots est disponible et permet l’entraînement de YOLO.
Ensuite, un simulateur de bonne qualité a été développé, permettant de simuler la prise de position des plots et de faire fonctionner le filtre à particules.
Enfin, il a été tenté de faire fonctionner la voiture sur le circuit. Cela n’a cependant pas réussi et a soulevé plusieurs problèmes.

Problèmes relevés l’an dernier

Il y a plusieurs points non terminés, problèmes émergents de la dernière année du projet. Je vais essayer d’en faire une courte liste avec un point de vue personnel dessus.

Transport du modèle YoloV5

Il y a eu beaucoup de problèmes pour transporter le modèle depuis l’entraînement sur le PC jusqu’à la Jetson à distance. Cela viendrait du fait que le PC a entraîné sous Python >3.10, tandis que la Jetson est bloquée à la version Python 3.6.

Avis personnel

Je ne vois pas pourquoi un CNN serait bloqué par la version de Python. Il ne devrait pas y avoir de problème si on passe par un fichier de modèle d’IA standard.

Contrôle du moteur

La vitesse du moteur et son contrôle posaient visiblement problème pour faire tourner correctement le robot dans la vraie vie. Apparemment, cela viendrait de la manière dont le contrôle est fait (il peut être bon de se renseigner directement sur le dépôt JetRacer pour voir comment la commande est effectuée). En tout cas, le moteur ne peut pas avancer à vitesse lente sans donner des à-coups visibles.

Avis personnel

Je pense que le problème peut être résolu de deux manières :

  • Un patch hardware
  • Un patch software

D’un point de vue software, il serait bon de vérifier s’il y a réellement une commande en couple et une chaîne de commande pour contrôler le moteur. Je n’avais aucun mal à faire avancer la voiture à basse vitesse quand je la contrôlais à la main, donc ?

Pour le patch hardware, plusieurs choses sont envisageables :

  • Changement du moteur pour un moteur CC (contrôle en vitesse)
  • Changement des rapports de réduction
  • Changement de la carte de contrôle

Le troisième point va être étoffé ci-dessous. Le moteur de la voiture est un moteur brushless, et il est donc possible, au lieu de le contrôler en pur couple, de le contrôler en position ou en vitesse en utilisant un contrôleur de moteur dédié (style Odrive, avec un encodeur magnétique). Une carte électronique peut être développée en ce sens si un membre du projet a une appétence pour ce genre de partie très électronique. Le moteur de la voiture deviendra alors un moteur très précis, capable de tourner de manière continue.

Filtre à particules et correction de la position

Ce problème n’avait pas spécialement été soulevé, mais le filtre à particules de localisation fonctionne sous l’assomption que l’on connaît une estimation du changement de position de la voiture entre chaque acquisition de point. Cependant, sachant que la vitesse de la voiture est très mal estimée pour l’instant, cela diminue fortement les performances du filtre à particules.


FastBot autodrive resume
https://eymeric65.github.io/p/2263b8bf70714f60beb9ad90bff8102f/
Author
Eymeric Chauchat
Posted on
December 12, 2024
Licensed under