Projet Rob3 - Cléo, Léon, Adam, Anass, Valentin, Marianne
Objectif GénéGénéral
Durant ce projet, nous souhaitons réréaliser un robot muni d'une pince capable de se dédéplacer dans une arèarène en partant d'une position fixe pour aller chercher un totem dont la position est approximativement connue et venir le redéredéposer àà un autre endroit de l'arèarène.
Lien vers l’énoncél’énoncé détaillédétaillé: https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1660
Liens utiles (sujet, codes, pieces...):
https://drive.google.com/drive/folders/14LajcKTP-gMjvzBnxbDHBuGncc4ly4fF?usp=sharing
Planning
Afin d'avoir un planning structuréstructuré et facile àà suivre, nous avons mis en place un diagramme de Gantt oùoù vous pouvez voir les tâtâches préprécises qui composent chaque pôpôle, qui a participéparticipé àà ces tâtâches et sur combien de séséances elles sont étaléétalées.
Lien vers le Diagramme de Gantt
SéSéance 1 12/02/2026
Dans le cadre de notre premièpremière séséance, on s'est familiariséfamiliarisé avec le projet. On a réréparti les rôrôles pour une rérésolution ordonnéordonnée du problèproblème :
Chef de projet : CléCléo SAUVENAY,
Responsable du Wiki : Marianne RODRIGUEZ,
Responsable informatique : Valentin BOUR,
Responsable mémécanique : Adam ABDENNADHER,
Responsable éélectronique : LéLéon CHERPITEL,
PôPôle MéMécanique
Travail réaliséréalisé (ADAM, MARIANNE et VALENTIN): La modémodélisation du robot commence par un châchâssis triangulaire àà deux angles tronquétronqués, permettant de fixer les moteurs des roues sur des plaques perpendiculaires et la roue folle àà la pointe. Une tige assure l'alignement des roues, bien qu'elle puisse êêtre absente ou ajustéajustée dans le modèmodèle final pour permettre la rotation.
Dans ce premier modèmodèle la pince fonctionne via un systèsystème pignon-crémaillècrémaillère : une plaque dentédentée coulisse dans une encoche et s'engrèengrène avec une roue dentédentée entraînéentraînée par le moteur, assurant le mouvement vertical.
Enfin, deux capteurs de distance sont préprévus : un sur le côtécôté pour surveiller la trajectoire par rapport aux murs, et un au-dessus de la pince pour dédétecter la distance avec le totem.
SchéSchéma du châchâssis, du systèsystème pignon-crémaillècrémaillère et du montage des roues sous le châchâssis.
SchéSchéma dimensionnédimensionné avec placement des diffédifférents composants (carte Arduino, batterie, etc.)
Travail pour la prochaine séséance : Un premier prototype en papier reprenant les dimensions complècomplètes du robot.
PôPôle Informatique
Travail pour la prochaine séséance : Se familiariser avec la documentation et réfléréfléchir àà des structures de programmes.
PôPôle ÉÉlectronique
Travail réaliséréalisé (ANASS et CLÉCLÉO): On a vérifiévérifié, comme demandédemandé par les enseignants, le bon fonctionnement de tout l'ééquipement éélectrique durant les 2 premièpremières heures, en suivant les instructions du PDF fourni par les référéférents. Lors de la dernièdernière heure, nous avons discutédiscuté de la direction que le groupe allait prendre concernant le robot ainsi que de l'organisation du projet.
SéSéance 2 29/03/3026
PôPôle MéMécanique
Travail réaliséréalisé (ADAM et MARIANNE): Durant cette séséance, nous avons reconsidéréreconsidéré le modèmodèle dédéfini lors de la séséance précéprécédente. Nous nous sommes rendu compte que le systèsystème pignon-crémaillècrémaillère préprévu pour manipuler la pince éétait trop complexe àà mettre en œœuvre. Nous avons donc décidédécidé de changer de stratéstratégie et d'opter pour un bras de type levier avec la pince àà son extrémitéextrémité. Nous avons ensuite réfléréfléchi aux pièpièces nénécessaires pour ce nouveau systèsystème :
SchéSchéma du montage de la pince et de son encastrement dans le châchâssis
C'est ainsi que nous avons commencécommencé la modémodélisation du bras (fixéfixé au moteur et auquel la pince est attachéattachée) ainsi que du support permettant de fixer le moteur au châchâssis sur SolidWorks, afin de pouvoir ensuite l'imprimer en 3D.
(CLÉCLÉO): En mêmême temps, nous avons commencécommencé àà nous familiariser avec la dédécoupeuse laser dans le but de dédéterminer les bonnes cotes au cas oùoù nous devrions faire des encastrements. Pour avoir un trou de 3 mm, il faut mettre 2,8 sur SolidWorks, et pour avoir un bon encastrement, il faut faire 3,02, donc une diffédifférence de 0,22.
PôPôle Informatique
Objectif de la séséance : DéDéfinir l'architecture génégénérale du programme de navigation du robot.
Travail réaliséréalisé (Anas, LéLéon, Valentin): L'ééquipe informatique s'est réréunie pour éétablir les grandes lignes du programme, en se concentrant sur trois fonctions centrales : le suivi de mur (longer un obstacle de manièmanière stable), l'atteinte du totem (guider le robot jusqu'àà la cible) et le retour au point de dépôdépôt.
Les primitives de dédéplacement ont éégalement étéété dédéfinies : dédéplacement en ligne droite, rotation sur place ou en arc, correction de trajectoire, ainsi que la récupérécupération et le dépôdépôt du totem.
Pour chaque fonction, un organigramme a étéété réaliséréalisé afin de modémodéliser la logique de contrôcontrôle, permettant de :
- visualiser clairement les
séséquences d'opéopérations ; - identifier les conditions et branchements
nénécessaires ; prépréparer une base solide pour l'impléimplémentation.
Algorithme de dédéplacement du robot
1. Avancer de X cm puis tourner àà 90°90° droite
Fin : mouvement / rotation des roues = terminéterminé
2. Avancer en gardant une distance àà droite de 30 cm
Fin : distance avant = X cm
3. Tourner àà 90°90° gauche
Fin : mouvement / rotation des roues = terminéterminé
4. Avancer en gardant une distance àà droite de 30 cm
Fin : distance avant = X2 cm
5. →→ RépéRépéter l'éétape 2
6. →→ RépéRépéter l'éétape 3
7. →→ RépéRépéter l'éétape 2
8. →→ RépéRépéter l'éétape 3
9. Avancer en gardant une distance àà droite de 30 cm
Fin : nb de tours de roue atteint
10. LâLâcher le totem
ParamèParamètres : X = distance avec le mur en face, X2 = distance avec le totem.
PôPôle ÉÉlectronique
Travail réaliséréalisé (Anass et LéLéon): Concernant le pôpôle éélectronique, nous avons connectéconnecté deux câcâbles entre l’l’Arduino et le contrôcontrôleur moteur en les soudant, puis en les sésécurisant avec une gaine thermoréthermorétractable. Nous avons ensuite ajoutéajouté un bornier afin de simplifier et d’d’optimiser les branchements. Enfin, le câcâblage des moteurs vers l’l’Arduino a étéété réaliséréalisé.
SéSéance 3 2/04/2026
Pole MéMécanique:
Travail réaliséréalisé (CléCléo): ModéModélisation du châchâssis sur SolidWorks avec les trous préprévus pour le placement des composants, le passage et la gestion des câcâbles. DéDécoupe au laser dans une plaque de MDF 6 mm. AprèAprès test d'alignement, plusieurs ajustements ont étéété identifiéidentifiés : augmenter légèlégèrement le diamèdiamètre des trous pour les vis M3 fixant la carte Arduino, réréduire l'éécart entre les deux trous centraux, positionner les trous de fixation du moteur du bras en diagonale plutôplutôt qu'en ligne afin d'ééliminer le jeu, et ajouter des trous supplésupplémentaires pour le passage de serre-câcâbles.
Photo du premier châchâssis
(Adam): Durant cette séséance, on a retravailléretravaillé la pièpièce permettant d'actionner la pince, qu'il a fallu re-modémodéliser aprèaprès avoir constatéconstaté un problèproblème de dimensionnement sur le premier essai. La pièpièce finale est la suivante :
AprèAprès impression, nous avons pu monter la pince, le moteur ainsi que l'ensemble des fixations.
Pour finir nous avons réfléréfléchi au montage des roues et àà comment garantir leur paralléparallélisme cela dans le but de pouvoir les monter la séséance prochaine.
SchéSchéma du montage des roues et de leur fixation
PôPôle ÉÉlectronique et Informatique
Travail réaliséréalisé (Anass, LéLéon, Valentin): Lors de cette séséance, les pôpôles informatique et éélectronique se sont concentréconcentrés sur des tests de dédéplacement du robot, en s'appuyant sur un code d'exemple permettant de contrôcontrôler les roues selon trois modes : avancer, reculer et tourner. Ce code s'est avéréavéré fonctionnel et les trois actions ont étéété exécutéexécutées avec succèsuccès.
Cependant, deux problèproblèmes sont apparus : la pince effectuait des mouvements non préprévus, puis en tentant de changer de port, l'alimentation de la carte Arduino a étéété court-circuitécircuitée. Une grande partie de la séséance a donc étéété consacréconsacrée àà identifier les composants dédéfectueux et ceux encore fonctionnels (capteurs et moteurs KTECH).
Pour la prochaine séséance, l'objectif est de réimpléréimplémenter le code sur une nouvelle carte Arduino afin de retrouver les mouvements de base du robot, puis d'intéintégrer la dédétection des capteurs.
SéSéance 4 16/03/2026
Pole Mécanique:Mécanique
Travail réaliséréalisé : Durant cette séance, le pôle mécanique a poursuivi le développement du châssis et l'intégration des différents composants du robot.
Les pièces de fixation des roues ainsi que celles dédiées aux capteurs infrarouges ont été conçues, modélisées puis découpées dans des plaques de MDF 6 mm. Ce premier montage complet a permis d'identifier plusieurs conflits entre certaines pièces, dont le plus critique était le défaut de parallélisme des deux roues motrices. Le châssis a donc été retravaillé pour corriger ces problèmes, et une nouvelle version a pu être découpée.
Dans un second temps, les pièces relatives aux capteurs et au positionnement de la batterie ont été modélisées et découpées. Il a été décidé de placer les capteurs sous le châssis afin d'optimiser leur efficacité. La batterie, quant à elle, est posée directement sur le châssis et maintenue en position par quatre cales encastrées, assurant un maintien solide sans fixation supplémentaire.
PôPôle ÉÉlectronique et Informatique
Travail réaliséréalisé : Durant cette séséance, le pôpôle informatique a travaillétravaillé sur deux axes principaux : le contrôle des actionneurs et l'architectureexploitation généraledes données capteurs.
Un premier programme a été développé pour piloter les déplacements du programme ainsi que sur l'implémentation de plusieurs fonctionnalités clés.
Le robot est contrôlé parvia un Arduino qui communiquecommuniquant avec deux moteurs via unpar bus CAN. Le dédémarrage de la séquence est déclenchédéclenché par un bouton-poussoir sur la pin 2, gérégéré par interruption matématérielle, ce qui permet au programme d'attendre sans bloquer la boucle principale. Plusieurs primitives de mouvement ont été implémentées — avancer, tourner à droite et à gauche — et validées par une séquence de test en boucle infinie, sans anomalie observée.
ConcernantPour l'odométrie, le robot estimeestimer sa position et son orientationorientation, enle lisantrobot lit en continu l'angle de rotation de chaque roue depuis les moteurs. ÀÀ chaque cycle, la variation d'angle est convertie en distance parcourue grâgrâce au périmèpérimètre de roue (diamèdiamètre 50 mm, soit environ 157 mm). La: la moyenne des deux roues donne la distance avancéavancée, tandis que la diffédifférence donne la rotation. Ces valeurs mettent àà jour les variables de position odom_x_mm, odom_y_mm et odom_theta, et pilotent les fonctions moveForward_mm() et rotate_deg() jusqu'àà ce que l'objectif soit atteint.
Deux capteurs ultrasons HC-SR04 ont étéensuite utiliséété intégrés : un capteur avant (pins 22/23) pour dédétecter unles obstacle en face,obstacles, et un capteur droit (pins 42/43) pour mesurer la distance au mur latélatéral. En l'absence d'éécho dans un dédélai de 30 ms, la distance est fixéfixée àà 999 cm,cm. indiquantSur l'absencecette base, un programme d'obstacle.
Lea suiviété dedéveloppé murpour repose sur une correction bang-bang avec deux seuils : si la distance droite est inférieure à 10 cm,maintenir le robot està tropdistance prèsconstante du murmur, etselon ralentitune logique bang-bang : en dessous de 10 cm, la roue gauche pour se corrigerralentit ; siau-dessus elle est supérieure àde 15 cm, il ralentitc'est la roue droite.droite Entre; 10entre etles 15 cm,deux, les deux roues avancent àà vitesse normale. L'arrêt duLe longeage ses'arrête déclenchedès lorsqueque le capteur avant dédétecte un obstacle plus proche que le seuil mesurémesuré en dédébut de phase.
DeuxEnfin, deux tests ont étéété réalisés.conduits Le: le premier portait sur le déplacement pur, validantvalidait les fonctions de mouvement sans capteurseules afin de vévérifier le bon fonctionnement de l'odoméodométrie et dule bus CAN.CAN Le; le second ajoutait les capteurs ultrasons et la logique de longeagelongeage, :avec laun fonction printDistances() afficheaffichage en continutemps lesréel des distances lues dans le moniteur sésérie (AVANT: xx cm | DROITE: xx cm), ce qui a permis de valider les seuils de correction avant de lancer le robot.
SchéSchéma du fonctionnement du programme









