IMA3/IMA4 2021/2023 P16 : Différence entre versions

De Wiki de Projets IMA
m (Faisabilité Eletronique)
(Logiciel haut niveau)
Ligne 144 : Ligne 144 :
 
De plus nous avons pour certains Ubuntu 22 sur nos ordinateurs. Ainsi, nous choisissons ROS2.
 
De plus nous avons pour certains Ubuntu 22 sur nos ordinateurs. Ainsi, nous choisissons ROS2.
  
Nous devons donc configurer le robot pour ROS2.L'équipe mécanique ayant travailler sur Fusion 360 pour la modélisation 3D, nous devons exporter les fichiers au format URDF/Xacro.
+
Nous devons donc configurer le robot pour ROS2.L'équipe mécanique ayant travaillé sur Fusion 360 pour la modélisation 3D, nous devons exporter les fichiers au format URDF/Xacro.
  
 
[[Fichier:FusionRviz2.png]]
 
[[Fichier:FusionRviz2.png]]
 +
 +
Pour le modèle cinématique, nous avons utilisé le document suivant : https://research.ijcaonline.org/volume113/number3/pxc3901586.pdf
  
 
= Compte rendus =
 
= Compte rendus =

Version du 5 janvier 2023 à 00:31

Présentation générale

Description

Dans le cadre de l'association Robotech, qui souhaite participer à la coupe de France de robotique, nous allons construire un robot mobile. Ce dernier devra accomplir plusieurs tâches qui sont définis par le règlement annuel de la Coupe. Cette année le thème est centré autour de la confection de gateaux. Les robots participants devront ainsi déplacer des couches de gâteaux en carton et manipuler des cerises (balles en mousse).


Les règles sont disponibles ici: https://www.coupederobotique.fr/edition-2023/le-concours/reglement-2023/

Ce projet est porté par 4 membres: - MARIE Romain

- MOUTON Albin

- SIMON Elias

- DELAHAIES Servan

Afin de mener à bien ce projet, différentes parties complémentaires devront être réalisées :

- La partie mécanique (réalisée par Charlie FASSENET et Louka CANONE en MECA3)

- La partie électrique

- La partie soft et hard

Une vidéo de présentation du projet a été réalisé le semestre dernier dans le cadre du "Projet en 180s" https://www.youtube.com/watch?v=ixoq2OCdTB0&t=1s


Objectifs

Le club de Robotique de polytech Lille réunis autour de mêmes valeurs des personnes passionnées ou présentant une appétence pour la robotique. Les valeurs de ses membres et du club sont l'échange et le transfert de connaissances et plus spécifiquement autour de tout ce qui touche à la robotique et aux nouvelles technologies.

La coupe de France de robotique est un défi ludique, scientifique et technique de robotique amateur, organisé par Planète Sciences. Cette association propose aux jeunes des activités scientifiques et techniques expérimentales dans plusieurs grands domaines tels que la robotique. Cet évènement permet à plusieurs équipes de jeunes passionnés de robotique issues de toute la France d’entrer en compétition en faisant concourir leur(s) robot(s). Chaque équipe doit concevoir puis réaliser un robot autonome, conforme au règlement, apte à participer à plusieurs matchs. Chaque match oppose deux équipes qui chercheront à réaliser le plus de tâches possibles afin de remporter un maximum de points. À l’issue de plusieurs matchs, un classement est réalisé et les trois meilleures équipes françaises sont qualifiées pour la Coupe d’Europe de Robotique : Eurobot.

Nous souhaitons donc créer un robot totalement autonome, capable de se déplacer et d'interagir avec son environnement. Cela nous permet également de mettre en œuvre nos compétences en terme de management & gestion de projet, ainsi qu'en robotique et développement informatique.

Analyse du projet

Positionnement par rapport à l'existant

Il existe des robots autonomes très complexes de toute sortes, mais ici, nous devons répondre à un besoin très précis. Les règles sont fixées par le règlement de la coupe de France de robotique. Nous ne pouvons donc pas vraiment nous positionner par rapport a d'autres robots existant puisque les règles de la coupe changent chaque année.

Néanmoins, nous pouvons regarder ce qui se fait habituellement pour ce genre de compétition.




Robot gagnant de l'édition 2021.
AREM - Association de Robotique et d'Eletronique des Mines
Robot de L'ARFIT à Polytech Tours
AREM.png Arfit.jpg

La compétition autorise deux robots par robots max par équipe. On peut ainsi attribuer une tache à chaque robot indépendamment ou alors les faire travailler en collaboratif sur une tache complexe!

Scénario d'usage du produit ou du concept envisagé

On place notre robot sur le plateau de jeu. Au top départ, il dispose de 100 secondes pour réaliser le maximum de gâteaux et gagner des points. Attention tout de même aux obstacles disséminés sur le terrain ainsi qu'au robot de l'autre équipe! En effet, deux équipes concourent par manche et il est interdit de toucher le robot adverse. Et puisque 2 robots sont autorisés par équipe, 4 robots peuvent évoluer sur un terrain de jeu de 2x2m.

Étude de faisabilité

Faisabilité budgétaire

Pour réaliser notre projet, nous devons créer un robot, mais aussi imprimer une copie du terrain, créer les couches de gâteux, acheter des balles afin de tester le robot. Nous avons donc besoin d'argent afin de mener à bien notre projet et gagner la coupe. Nous avons donc pu budgétiser le cout du projet et le mettre en forme dans le tableau ci dessous.

Subvention.png

Pour mener à bien notre projet nous nous sommes occupés de démarcher différents organismes. Ils ont été choisi selon leur appétence à participer à un projet de type robotique. De notre coté, nous avons axé notre projet comme étant un projet professionnalisant, nous permettant d'acquérir des compétences en accord avec notre formation. De plus, ces subventions serviront en partie à acheter du matériel qui sera réutilisable pour les années suivantes puisque le robot est modifiable.

Orga.png

Faisabilité Eletronique

Les résultats sont encourageants en terme de faisabilité. La carte de contrôle de moteur passe l'intégralité des tests, et la carte principale passe la majorité des tests (tous n'ont pas été effectués)
Il nous reste à nous assurer que les dernières fonctions (port écran, accéléromètre/Gyroscope/Magnétomètre, RTC) fonctionnent correctement.
Cela semble être une base solide pour permettre le développement logiciel.

Des défauts ont cependant été détectés, mais peuvent être corrigés à partir de patchs.
Nous avons donc mis en place un process qualité basé sur 3 feuilles GSheets par PCB.
Chaque PCB a donc un suivi en terme :

  • D'erreurs décelées lors de la phase de conception, qui doivent être illustrer par des photos, avec des moyens de les corriger, ainsi qu'une case à cocher si l'erreur a bien été corrigée dans le fichier numérique.
  • La liste des cartes, avec leur localisation (pour éviter d'en perdre, savoir laquelle est dans le robot ou sur une paillasse), ainsi que les patchs qui ont été effectués.
  • Les différentes versions du PCB

Une correction de PCB, couper la mauvaise ligne de Reset au cutter et relier la bonne ligne isoler un VIA qui court-circuite 5V et GND

Il est à noter qu'une ébauche de feuille de test unitaires existe, mais n'est pas complète. Elle permet de tester individuellement chaque fonctionnalité de la carte. Cependant, certains tests requièrent une action commandée par logiciel (ex : envoi d'une trame via USB sur un port série sur la carte principale), cela requiert donc d'écrire toute une suite de scripts de tests qui s'avère trop chronophage dans le cadre du projet. Ces tests sont donc réalisés in-situ dans le robot, et devront, à terme être réalisé selon une procédure plus proche de celle effectuée dans l'industrie.

Les fichies de suivi qualité sont disponibles ici :
Contrôleur moteur
Carte mère

Il reste cependant à noter que la majorité de la conception a été faite lors des vacances d'été, permettant d'obtenir un résultat plus rapidement. C'est pourquoi cette conception n'est pas abordée ici.
Cependant, toutes les cartes ont été conçues sur KiCAD 6, et commandée chez JLCPCB (fabrication des PCB & assemblage de la majorité des composants). Certains composants ont été soudés manuellement pour gagner du budget (économiser la sous-traitance d'une intervention humaine pour souder les composants traversants). Ces composants ont été commandés sur AliExpress ou Amazon selon les cas. Tous les câbles ont été sertis manuellement avec une pince à sertir.
Cela nous permet de pouvoir re-sertir de nouveaux câbles adaptés selon la longueur requise dans le robot.

Un connecteur serti
Résultat final (carte de contrôle moteur, carte mère et carte addaptateur 5V=>3.3V pour les Lidar) :
Contrôleur Moteur Carte mère Carte d'adaptation

Faisabilité Logicielle

Micrologiciel

Afin de contrôler les moteurs nous devons implémenter une boucle de régulation qui permet d'asservir les moteurs en courant, position ou vitesse.

PID.png

Chaque moteur a sa propre boucle, elle doit donc pouvoir se répeter 6 fois et le plus rapidement possible.


La valeur associée à la lettre G indiquant un type de commande différent. Par exemple, envoyer une commande de 100 tr/min aux deux premières roues et -50tr/min aux deux secondes s’écrit : G0 X100 Y100 Z-50 U-50

De même, pour obtenir la vitesse lue sur chaque roue, on peut envoyer la commande : G10 X Y Z U

où le contrôleur répondra par : G10 X98.2 Y99.5 Z-51.3 U-46


Voici la liste des commandes implémentées :

TableauGCode.png


Logiciel haut niveau

Nous avons choisi d'utiliser ROS et ses bibliothèques telles que Nav2, TF2 et RpLidar pour gagner du temps.

Ainsi, il faut choisir entre ROS et ROS2.

ROS.png

De plus nous avons pour certains Ubuntu 22 sur nos ordinateurs. Ainsi, nous choisissons ROS2.

Nous devons donc configurer le robot pour ROS2.L'équipe mécanique ayant travaillé sur Fusion 360 pour la modélisation 3D, nous devons exporter les fichiers au format URDF/Xacro.

FusionRviz2.png

Pour le modèle cinématique, nous avons utilisé le document suivant : https://research.ijcaonline.org/volume113/number3/pxc3901586.pdf

Compte rendus

15/10

Première séance Exploration des taches pour le semestre Explication du projet à Servan, nouvel arrivant

Etude des robots des années précédentes

Albin travaille sur le PCB

Elias doivent explorer le module ROS et l'installer

Romain commence le code pour contrôler les moteurs

Etude des couts, discussion avec la responsable communication de l'école, Mme Pageau

21/10

Subventions: Explorations des différentes possibilités pour subventionner note projet. Recherche d'un axe pour créer un dossier de subvention

Prise en main de ROS2

28/10

Subventions: Création et mise en ligne d'un projet WWEEDDOO (page web destiné à demander des subventions à l'université) https://wweeddoo.com/projets/MxedvlFW@ Envoie d'un mail à une responsable d'un centre d'aide de la région Tourangelle dans l'objectif de voir s'il y a la même chose en région HDF Débu du micrologiciel du contrôleur moteur (disponible ici)

18/11

Subventions: Premier retour et amélioration du dossier de subventions FDIE Finition de la lettre à Mr Xavier Bertrand pour la subventions HDF Etude des Autres appels à Projets sur WWEEDDOO Rassemblement des Documents avec le BDE pour l'aide HDF

Etude filtre de Kalman dans l'optique de l'essayer sur le turtlebot fourni pas Othman

Commande du PCB de contrôleur moteur

01/12

Subventions: Rencontre avec le BVEH de Lille, le projet leur plait; rassemblement des documents Demande au CROUS également pour élargir notre recherche Retour de la région qui souhaite nous accompagner également

Création du modèle dynamique pour le robot.


08/12

Subventions: Modifications sur les dossiers de subventions pour coller aux éxigences

installation de nav2 sur le robot

15/12

Subventions: Retour de la Région: Il faut plus de 50 personnes pour bénéficier de l'aide Réalisation d'un tableau pour les organismes démarchés Appel avec le BVEH

Installation de TF2 Création du noeud de contrôle de moteur (code disponible ici ) Commande du PCB principal

vacances de décembre

Achat du plateau de jeu, finalisation de l'inscription, écriture du logiciel du micro-contrôleur principal (code disponible ici