Projet Rob3 : Fatah,Oualid,Dounia (FOD : Fonctional Omnidirectional Drawing Robot )
I ) Préaumbule :
1) Membres de l'équipe :
Identité | Contacte | Formation |
Mohamed El Oualid BOUDEMAGH | mohamed_el_oualid.boudemagh@etu.sorbonne-universite.fr | Polytech-Sorbonne ( ROB3 ) |
Fatah MSAID | fatah.msaid@etu.sorbonne-universite.fr | Polytech-Sorbonne ( ROB3 ) |
Dounia BAKALEM | dounia.bakalem@etu.sorbonne-universite.fr | Polytech-Sorbonne ( ROB3 ) |
Période du projet : 14/02/2024 au 23/05/2024
2) Indroduction, cadre et objectifs de la réalisation :
Etant actuellement des étudiants en vue de devenir des ingénieurs roboticiens, nous sommes amenés à concevoir un robot en passant par toutes les étapes de modélisation et réalisation. Dans le cadre de ce projet, il s'agit d'un robot qui dessine sur une face 2D de dimension 25*25 mm.
De ce fait, vous trouverez dans la suite de ce rapport notre cheminement pour mener à bien ce projet, cela comportera la conception de la partie mécanique, le système de commande, la motorisation, l'interface de pilotage et les différents codes informatiques pilotants.
Ainsi, nous mettrons en pratique les connaissance acquises en programmation (langage C), en modélisation (SolidWorks), en calculs cinématiques (Modèles géométriques direct/indirecte). Par ailleurs, nous aspirons à consolider notre inventaire de Roboticien en apprenant le codage en Arduino, les impressions 3D et le découpage laser.
Enfin, nous nous engageons à prendre soin du matériel mis à notre disposition au sein du FablabSU, nous tenons également à remercier nos enseignants et le personnel qui nous encadront tout au long de notre projet.
3 ) Diagramme de Gantt (au 21/02/2024) et distribustion des rôles :
II ) Cahier des charges :
Le but général est de faire un robot capable de dessiner avec un crayon sur un support plan horizontal.
2.1 Fonctions à réaliser
Le robot doit être fixé ou posé sur une plaque horizontale carrée de 250mm par 250mm. Il doit être capable de réaliser deux exercices :
1) Tracer, avec l’aide d’un crayon fixé sur l’organe terminal du robot, dans le plan de la plaque support différentes figures imposées de difficulté croissante :
a. Une ligne de 5cm de long,
b. Une ligne pointillée de 5cm de long,
c. Un cercle de 2.5cm de rayon,
d. Un cercle pointillé de 2.5cm de rayon.
Le tracé de chacune des figures doit être réalisé en 10 secondes +/- 0.2 secondes.
2) Tracer, avec l’aide d’un crayon fixé sur l’organe terminal du robot, dans le plan de la plaque support, un dessin imposé dans un carré de 5cm par 5cm. Le déplacement de l’organe terminal du robot devra être piloté par un joystick. Il est possible que la figure soit discontinue, et donc il faut prévoir de pouvoir relever le crayon du support horizontal sur lequel on écrit.
Une fonction supplémentaire, optionnelle , peut être réalisée :
Être capable de modifier la vitesse de déplacement du robot via l’interface.
2.2 Fonctions contraintes
Les contraintes imposées sont :
- Respect des règles d’utilisation du FABLAB de Sorbonne Université au sein duquel vous travaillerez, en particulier la charte des FabLab du MIT. Cela implique que vous travaillerez sur le WIKI du FABLAB pour documenter votre projet. Il y a une bonne documentation ici pour savoir comment utiliser le WIKI.
- Utilisation de composants (moteurs, contrôleurs, boutons, éléments de guidage, alimentation stabilisée, boutons, etc.) parmi un ensemble imposé. Une liste de composants utilisables est disponible au paragraphe 4.
- Fabrication des pièces grâce à :
- Machine à découpe LASER.
- Imprimantes RAISE 3D PRO2.
Ces machines du FABLAB de sont pas toutes accessibles tout le temps ni en même temps. C’est une contrainte qu’il vous faut intégrer dans la gestion de votre projet (par exemple, privilégier la découpe LASER qui est très rapide, lorsque c’est possible).
Un objectif est de minimiser la quantité de matière utilisée pour réaliser le projet.
- Programmation en C utilisant la chaîne de développement Arduino IDE
CE NE SONT PAS LES FONCTIONS CONTRAINTE DE L'OBJET, MAIS VOS CONTRAINTES DE REALISATION DU PROJET
4. Liste des composants et matériels disponibles
- Un crayon
- Interface de commande :
- Une carte arduino UNO avec câble USB-B;
- Un joystick:
- Une platine de protoypage;
- Alimentation régulée 5V ;
- Câbles, LEDs, boutons poussoirs, résistances.
- Motorisation :
- Deux servomoteurs HS422 180°;
- Un servomoteur Emax ES08A 180°.
- Mécanique :
- Matière PLA pour impression 3D;
- Feuilles medium : 3mm et 6mm d'épaisseur;
- Vis et écrous : M2, M2.5, M3, M4.
- Roulements et axes de diamètre 4mm.
III ) Solutions Proposées :
1 ) Solution 1 : La voiture qui dessine
-
L'une des idées explorées était de concevoir un robot sous forme de voiture capable d'écrire avec un stylo. Cependant, après avoir examiné les servomoteurs disponibles et les contraintes du projet, nous avons constaté que ces servomoteurs ne conviendraient pas pour tourner les roues de manière efficace en raison de leur limitation de rotation maximale à 180 degrés. De plus, les restrictions imposées, comme l'interdiction d'utiliser des outils externes tels qu'un hacheur pour la motorisation, et l'incapacité d'incorporer un système Bluetooth pour contrôler la voiture avec un joystick, ont été des obstacles significatifs.
En raison de ces contraintes techniques et de conception, nous avons été contraints d'abandonner l'idée de la voiture robotique. Nous nous sommes plutôt concentrés sur des alternatives qui seraient réalisables dans le cadre des ressources et des contraintes du projet, tout en restant conformes au cahier des charges initial.
2 ) Solution 2 : Robot à deux rails :
|
Schéma non-contractuel du robot à deux rails Source de la photo : (19) Technical Tushar - YouTube
- Fonctionnement : Le servomoteur 1 est collé sur le pignon 1 qui est lui même fixé sur la plateforme fixe. Ce premir système entraine la translation de la crémallière 1 selon x. Au bout de cette dernière, la plateforme mobile est fixé, cette plateforme se deplace donc selon x suivant la crémallière 1. Par ailleurs, le même mécanisme (servomoteur 2, pignon 2, crémallière 2) fixé sur la plateforme mobile entraine la traslation du stylo selon y. Enfin, le servomoteur 3 actionne la manivel permettant au stylo d'être ou non au contacte avec la feuille.
- Noter que les servomoteurs ne pouvant effectuer une rotation de 90° dans un sens et 90° dans l'autre, les pignons sont dimensionnés en conséquence (ici r = 2.5cm) permettant au stylo d'agir sur une surface de 7cm * 7cm.
- Avantages : - Simplicité de conception, de réalisation et de calcul. - Rigidité et solidité du système. - Précision permettant au stylo de dessiner toute forme. - Absence de singularité dans le cadre des 7 * 7 cm. - Consommation assez raisonnable de ressources
- Limites :
- Une lubrification peut être envisageable.
- Frottements.
- La plateforme tenant le stylo peut se pencher vers le sol à cause de son poids.
3 ) Solution 3: Robot à 3 rails :
Nous avons pris cette photo afin d'illustrer nos explications dans "Fonctionnement". Cela dit, elle ne relète pas notre solution, puisque ici on voit des translations réaisées à l'aide de courroie alors que notre idée repose sur un mécanisme Servomoteur, pignon et crémallière comme décrit ci-contre. |
Source de la photo : Laser Engraver TT-5.5S Laser Wood Engraver - Two Trees (twotrees3d.com)
- Fonctionnement :Le fonctionnement demeure fondamentalement inchangé par rapport à la solution précédente. Simplement, ici le mécanisme servomoteur-pignon-crémalliere (sur le rail 1) entraine la translation du stylo selon y, et en face (sur le rail 2) on retrouve un roulement qui réalise le guidage permettant au rail 3 de toujours être perpendiculaire aux rails 1 et 2. De plus, un autre mecanisme servomoteur-pignon-crémalliere permet au style de se deplacer selon x ( sur le rail 3). Enfin, le dernier servomoteur actionne la manivel permettant au stylo d'être ou non au contacte avec la feuille.
- Avantages : - Absence de singularité dans le cadre des 7 * 7 cm. - Calculs théoriques assez simples.
- Limites :
- Le guidage n'est pas optimal ce qui peut engendrer la diagonalisation du rail 3.
- Trop de ressources utilisées.
- Conception, réalisation et montage assez fastidieux .
- Nécéssité absolue de lubrification (notamment le roulement).
4 ) Solution 4 : (Solution retenue ) : Robot a articulations :
Pour la 3ème idée nous avons opté pour un robot qui utilise le principe du FANUC pour fonctionner ,
Le principe : le but de cette solution est d'atteindre le maximum de points dans un carrée , pour cela on va relier 2 bras sous forme de "L" avec 3 servos-moteurs , un pour le bras droit, un pour le bras gauche , un pour remonter les bras selon z , donc on aura au totale 3 mouvements selon les 3 axes , chaque bout de bras sera relier a l'aide d'une articulation pivot et donc pour chaque mouvement du bras relier au moteur , l'autre bras suivra .
Pour réaliser cela , nous reliant un repaire pour chaque bout de bras et à l'aide des matrices de DH on pourra donner directement les coordonnées articulaires pour la taches voulue et le microcontroleur calculera les angles nécessaire a faire pour le réaliser , cette solution est plus précise par rapport au 2 autres car on pourra atteindre n'importe quel point à l'aide de calcules
Problèmes :
Malgré l'efficacité de cette solution , elle pose un problème extrêmement contraignant qui est : les points de singularités, effectivement , contrairement, aux 2 autres solutions , les singularités sont atteintes très facilement ce qui donc nous limitera dans le nombre de mouvement possibles , ces points de singularités sont atteint pour : les angles des 2 bras est de 180° et quand l'un des deux bras est totalement tendu , quand l'angles des bras atteins au meme temps 90° AH BON ? VOUS l'AVEZ CALCULE ?
Croquis à main levée de la solution
Exemple de la solution
source de la photo : https://youtu.be/s5AP7tbfueg
Pourquoi avons-nous gardé cette idée ?
Cette idée est restée pour nous la plus réaliste et la plus efficace , effectivement , la réalisation de ce type de robot n'est pas très compliquée vue que pour le guidage on aura besoin que 2articulations pivot , et donc facile a réaliser , de plus , cette solution nous permet d'avoir plus de liberté car on pour pratiquement atteindre n'importe quelle point dans un carré si on envoie les bonne coordonnées articulaires , bien-sur tout en évitant les cas de singularités , donc au final, le vrai gros problème de cette solution serait la singularité qui est un problème qui théoriquement ne devrait pas être très dur a résoudre si on le compare avec les solutions abandonnées .
IV.Schéma électrique et modèle géométrique :
1 .1.modèle géométrique (1er modèle) :
Les coordonnées articulaires sont nécéssaire pour qu'on puissent attendre les positions voulue par notre robot , et pour les trouver on a du calculer le modèle géométrique inverse de notre robot et nous avons ainsi trouver les équations qui relie les coordonnées articulaires aux paramètres de notre robot et aux paramètres de la position voulue . Cela a pu étre effectuer selon les étapes suivantes :
- Relier chaque corps du robot a un repaire
- Trouver les équations de contraintes qui relient les repaires
- Trouver les coordonnées voulue en fonction des angles articulaires
- Regrouper tout en équations
- Enfin après avoir dérivés les équations et les avoir résolue nous obtenons les relations suivantes pour chaque coordonnées articulaire :
Ensuite nous avons implémenter le résultat sur MATLAB pour effectuer le calcule des coordonnées articulaires
Code de la fonction utilisée pour le calcule du modèle géométrique inverse
2.Modèle géométrique final :
Après avoir réalisé le premier modèle géométrique, nous avons constaté rapidement qu'il comportait quelques erreurs, notamment parce qu'il était établi à partir d'un seul bras, ne prenant pas en considération le fait que les deux bras fonctionnent ensemble. Par conséquent, nous avons opté pour un nouveau modèle, plus complet. Ce nouveau modèle prend en compte les mouvements des deux bras en parallèle. La fonction MATLAB ci-dessous illustre ce nouveau modèle géométrique amélioré, qui calcule les angles nécessaires pour les deux bras en fonction des coordonnées (x, y) et des longueurs des bras (l1, l2, l3, l4).
2 . Schéma électrique :
Schéma électrique du FOD
3. Code :
Dans cette étape, nous avons exploré deux méthodes distinctes. Pour la première méthode, nous avons utilisé MATLAB pour calculer les angles à donner aux servomoteurs, puis nous les avons intégrés directement dans notre code Arduino. Cependant, lorsque nous avons introduit le joystick dans notre système, nous avons réalisé que cette méthode limitait notre flexibilité et rendait impossible l'utilisation du joystick.
C'est pourquoi nous avons opté pour la deuxième méthode, où nous effectuons les calculs directement dans le code Arduino. Cette approche nous permet d'obtenir les angles directement à partir du programme, ce qui simplifie l'intégration du joystick et offre une plus grande flexibilité dans le contrôle du système.
Ci-joint le code :