Skip to main content

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 :

image.png

II ) Cahier des charges :

( https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2023-2024/page/le-sujet-du-projet )

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 :

schema_sol_2.jpg

 

 

photo_sol_2.jpg

         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 :

image.png

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

IMG_0332.JPG

                                                                                       Exemple de la solution

Capture d’écran 2024-02-21 à 10.51.33 PM.png

                                                             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. conception détaillée :

1)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 :

Capture d’écran 2024-02-29 à 11.56.30 PM.png

Capture d’écran 2024-03-10 à 12.33.40 PM.pngCapture d’écran 2024-03-10 à 12.32.02 PM.png

Source : Cours de Mr.Morel de mécanique général 

Remarque : ici l3=0

Capture d’écran 2024-03-10 à 1.08.25 PM.png
Schéma cinématique du robot 

Remarque : 

S1 : Biele 1

S2 : Biele 2

S3 : Biele 3

S4 : Biele 4

O1 : Centre du 1er servo-moteur 

O2 : Centre du 2ème servo-moteur 

Ensuite nous avons implémenter le résultat sur MATLAB pour effectuer le calcule des coordonnées articulaires 


Capture d’écran 2024-02-29 à 11.37.18 PM.png
Code de la fonction utilisée pour le calcule du modèle géométrique inverse 

1.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).

Capture d’écran 2024-03-10 à 12.37.00 PM.png


Schéma du modèle utilisée 

Détails du calcule 

on travaille sur le triangle O1BP : 


On a : 


avec :  

 

 

et

 

 

 

Sur le triangle O2AC :


 



Capture d’écran 2024-03-09 à 11.14.11 PM.png

Code MATLAB utilisée 

2 . Schéma électrique :


Capture d’écran 2024-03-01 à 12.06.29 AM.png
Grand Krunk_page-0001.jpgSchéma électrique du FOD 

Composant  Pin
Bouton gris 2
Bouton bleu 3
Bouton noir 4
Bouton rouge  5
Joystick  X: A0 , Y : A1 , SW : 10
Servo droit  7
Servo gauche  8
Servo haut  9

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. 

Descriptif du code : 

Nous avons utilisé l'état de nos quatre boutons-poussoirs comme entrée pour pouvoir utiliser leurs états comme conditions pour nos différents modes de fonctionnement. En attribuant des actions spécifiques à chaque combinaison d'états des boutons, nous avons pu créer un système polyvalent capable de basculer entre différents modes de fonctionnement en fonction des préférences de l'utilisateur. Par exemple, un appui sur un seul bouton pourrait activer ou désactiver un mode spécifique. Cette approche nous a permis d'ajouter une dimension interactive à notre projet, offrant ainsi une expérience utilisateur plus riche et plus adaptée à divers scénarios d'utilisation.

Capture d’écran 2024-03-09 à 11.46.17 PM.png


Bouton mode 
Gris  Tracer une ligne continue 
Bleu Tracer une ligne en discontinue 
Noir  Tracer un cercle en continue 
Vert  Tracer un cercle discontinue 
Rien  contrôle avec joystick

 

Tableau récapitulatif des modes disponible 

 

Pour les différents modes, nous avons calculé à chaque fois les angles nécessaires à donner à nos servomoteurs pour que les bras puissent atteindre un certain point. Pour ce faire, nous avons itérer notre calcul dans la fonction MATLAB et directement implémenté les angles dans notre code.

En utilisant cette approche, nous avons pu déterminer les positions optimales des bras en fonction des différents modes de fonctionnement, en prenant en compte des variables telles que les coordonnées de destination et les longueurs des bras. Ces angles calculés ont ensuite été incorporés dans notre code Arduino, ce qui a permis au système de positionner les bras de manière précise et efficace en fonction du mode sélectionné par l'utilisateur. Cette méthode nous a offert une grande flexibilité pour adapter le comportement du système en fonction des besoins spécifiques de chaque mode.

 Capture d’écran 2024-03-10 à 10.30.03 AM.png

Code pour le tracé de la ligne continue 

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.

Pour réaliser cela, nous avons implémenté dans notre code une fonction qui effectue le même calcul que celui que nous avions réalisé avec MATLAB. Cette fonction prend en compte les coordonnées de destination et les longueurs des bras, puis calcule les angles nécessaires pour positionner les bras de manière appropriée.

Capture d’écran 2024-03-09 à 11.41.19 PM.png

Code de la fonction de calcule du modèle géométrique 

En incorporant cette fonction dans notre code Arduino, nous avons pu obtenir les angles requis directement à partir du microcontrôleur, sans avoir besoin de faire des calculs préalables dans MATLAB. Cela simplifie le processus et permet une exécution plus efficace des opérations, ce qui est particulièrement important dans un environnement en temps réel comme celui des systèmes embarqués. De plus, cela nous permet d'avoir un contrôle total sur le fonctionnement du système directement à partir du code Arduino, offrant ainsi une solution plus intégrée et autonome.

Remarque : Pour la partie Joystick , elle est en cours de développement et doit être testée

diagramme_programme (1).jpeg

         Organigrame du programme 

2) Conception CAO :

Nous avons procédé à la modélisation de notre robot à l'aide du logiciel SolidWorks.

Cette conception peut être segmentée en deux principaux sous-ensembles :

Le bâti : Cet ensemble abrite les deux servo-moteurs qui dirigent les deux bras, chacun composé de deux bielles.
La table : Destinée à recevoir la feuille sur laquelle écrire, cette composante intègre un servo-moteur situé en dessous. Ce dernier est connecté à la table et permet de régler la hauteur du stylo pour l'écriture en basculant l'ensemble du bâti. Les détails de ce mécanisme sont explicités ci-dessous

image.png

image du robot final

Le bâti: du robot a été conçu en privilégiant la découpe laser comme méthode de fabrication principale. Il se compose de trois pièces qui s'emboîtent de manière adéquate, toutes adaptées à la découpe laser. La pièce centrale présente deux ouvertures destinées à recevoir les deux servomoteurs. Les bielles sont fixées aux servomoteurs au moyen d'une vis au centre, avec un trou additionnel permettant le vissage à l'hélice du moteur pour assurer le guidage.

image.png  image.pngqQaimage.png

le bâtis

Les liaisons entres les bielles :

Comme évoqué précédemment dans notre documentation, le robot est constitué de quatre bielles. Pour les articulations entre ces bielles, nous avons opté pour l'utilisation de roulements associés à des vis pour assurer la fixation. Comme illustré dans l'image ci-dessous, l'une des bielles présente un trou de diamètre correspondant à celui du roulement externe, tandis que l'autre bielle possède un diamètre légèrement inférieur (correspondant au diamètre interne du roulement). Ces éléments sont ensuite solidement fixés à l'aide d'une vis et d'un écrou, soigneusement serrés. Nous avons également intercalé une plaque métallique entre le roulement et la vis afin de garantir la fluidité du mouvement.

image.png                                              image.png

Images qui illustrent les liaisons entres les bielles

Emplacement et Réglage du Stylo dans le Mécanisme du Robot :
  • Comme visible, l'une des bielles est préalablement équipée d'une extension et d'un orifice destiné à recevoir le stylo. Étant donné que cette pièce sera fabriquée en bois, nous aurons la possibilité d'ajouter ultérieurement un trou sur le côté pour insérer une vis permettant de régler la hauteur du stylo.

image.png

bielle du stylo

  • Le mécanisme pour lever le stylo consiste à fixer la bielle au moyen d'une vis sur l'hélice du servomoteur. Cette bielle est ensuite fixée sur une pièce émergeant du bâti. Les bâtis et la table sont ainsi reliés par deux liaisons pivot sur les côtés, comme illustré dans l'image. Pour réduire les frottements et faciliter le mouvement, nous prévoyons d'utiliser un morceau de cylindre inséré dans le trou de la table, lequel sera fixé à l'aide d'une vis et d'un écrou traversant le trou du bâti.

     

    image.png

    image.png         image.png

     

    Mécanisme de Levage du Stylo : Illustration et Fonctionnement