IMA3/IMA4 2021/2023 P16 : Différence entre versions
(→Faisabilité Eletronique) |
m (→Faisabilité Eletronique) |
||
Ligne 92 : | Ligne 92 : | ||
* Les différentes versions du PCB | * Les différentes versions du PCB | ||
− | [[File:amouton_correction_pcb.jpg|400px | + | [[File:amouton_correction_pcb.jpg|400px|Une correction de PCB, couper la mauvaise ligne de Reset au cutter et relier la bonne ligne]] [[File:amouton_correction2_pcb.jpg|400px|frame|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. <br/> | 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. <br/> |
Version du 4 janvier 2023 à 23:23
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 |
---|---|
![]() |
![]() |
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.
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.
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](/mediawiki/thumb.php?f=Amouton_correction_pcb.jpg&width=400)
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.
Résultat final :
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.
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 :
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.
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.
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