Groupe 5 - Lawny, Clovis, Pauline, Ludovic, Marin et Valentine
Informations
- CHEF DE PROJET: Lawny ICHANE lawny.ichane@etu.sorbonne-universite.fr
- RESPONSABLE INFORMATIQUE: Ludovic MAILLERE ludovic.maillere@etu.sorbonne-universite.fr
- RESPONSABLE MECANIQUE : Clovis FRESCURA clovis.frescura@etu.sorbonne-universite.fr
- RESPONSABLE ELECTRONIQUE : Marin GUENON--MONIER marin.guenon--monier@etu.sorbonne-universite.fr
- Pauline ROUGEAU, pauline.rougeau@etu.sorbonne-universite.fr
- RESPONSABLE WIKI Valentine MIGUEL, valentine.miguel@etu.sorbonne-universite.fr
Du 19/02 au 29/05/2026
Contexte
Cette documentation présente notre solution pour concevoir et fabriquer un robot capable de réaliser un exercice défini dans le cahier des charges disponible dans ce document : Projet de robotique ROB3 - 2026.pdf
En résumé, la tâche consiste à déplacer un objet depuis sa configuration initiale vers une configuration finale, à l’intérieur d’une arène.
Rendu final
Ci dessous une idée du rendu du projet
Matériel
Un kit composé principalement de :
- Une pince 3551 fournie en kit, avec un servo moteur intégré.
- Deux moteurs KTECH MS4015-V3 contrôlables en vitesse et intégrant une mesure
de position (prévus pour les roues)
- Un moteur Dynamixel commandable en position (prévu pour le bras)
- Deux roues Pleine Guitel Hervieu Ø 50mm destinées à être motorisée et une
roue pivotante Guitel Hervieu, Ø 50mm.
- Un carte Arduino MEGA + un shield SEED pour la communication via un bus
CAN avec les moteurs + un shield DYNAMIXEL
- Deux capteurs de distance à ultrasons HC-SR04
- Une batterie RS PRO 12V 1.2Ah. Un kit de connexion permettant d’alimenter
l’Arduino avec la batterie.
Dans le FABLAB Sorbonne Université, sont également disponibles :
- Des planches de médium, 300mmx600mm ép. 6mm ou 3mm, découpables au
LASER dans le FABLAB.
- Des petits composants électroniques et mécaniques standard.
- Du filament pour les imprimantes 3D du FABLAB.
Machines utilisées
- Découpeuse laser Trotec Speedy 100
- Imprimante 3D Prusa
Codes du Projet :
Journal de bord
Séance du 19/02/2026
Reflexion générale
Au cours de cette première séance nous avons découvert le projet et son cahier des charges. Nous avons notamment réfléchi à une solution mécanique pour attraper le totem qui soit la plus simple possible. Nous nous sommes arrêtés sur une solution reposant sur une pince dont le rôle sera de se fermer autour de l'objet puis de le soulever par une simple inclinaison vers le haut, permise par le moteur Dynamixel commandable en position auquel la pince sera liée.
Partie mécanique ( Lawny et Clovis )
Une réflexion a été faite sur le chassis et l'emplacement des composants du robot dans ce chassis. Plusieurs solutions sont présentées ci dessous. Ces chassis sont sujets à être de nouveau modifiés par la suite car ils ne prennent pas encore en considération les dimensions des composants ni les méthodes de fixation. Ils nous permettent toutefois d'avoir une vision générale de l'apparence du robot ainsi que des composants à intégrer au chassis.
Partie électronique (Marin)
Nous nous sommes assurés que le matériel fourni était fonctionnel en suivant les instructions données dans les consignes du projet.
test composants video.mp4
Partie organisation ( Pauline, Ludovic et Valentine )
En parallèle, le reste des membres du groupe se sont chargés de l'organisation. Ludovic et Pauline ont crée un diagramme de Gantt et Valentine s'est chargée de remplir cette page de documentation.
Voici le diagramme de Gantt initial:
Bilan et objectifs lors la prochaine séance:
Comme prévu, nous avons lors de cette première séance testé les composants électroniques et nous nous sommes mis d'accord sur une solution mécanique générale (idée de bras de levier). Des premiers croquis ont été faits mais pas finalisés, nous comptons revenir sur cette partie lors de la prochaine séance. Concernant la partie informatique, nous nous y sommes pas penchés assez longtemps pour s'arrêter sur une idée. Au cours de la prochaine séance, nous avons pour objectifs d'accomplir les missions suivantes:
Mécanique ( Lawny, Clovis et Valentine ): Commencer le dimensionnement du châssis, la modélisation Solidworks et faire des croquis de la solution.
Informatique ( Pauline et Ludovic ): Faire un organigramme
Electronique ( Marin ): Regarder comment se pilotent les composants à notre disposition. Par exemple, trouver comment ouvrir la pince, comment récupérer les données du capteur à ultrasons...
Tâches diverses ( Valentine ): Apprendre à utiliser la découpeuse laser et trouver les réglages permettant un ajustement serré entre deux pièces.
Séance du 05/03/2026
Le diagramme de Gantt n'a pas évolué depuis la dernière séance
Partie mécanique ( Lawny, Clovis et Valentine ):
Pour concevoir le châssis, du robot, nous nous sommes appuyés sur un travail en duo entre Lawny et Clovis. Le duo se mettait d'accord sur une solution ( par exemple le choix de faire des assemblages par tenons et mortaises ) et ensuite Lawny modélise sur Solidworks, appuyé des mesures de dimensionnement de Clovis ( par exemple, longueur du tenon) Au cours de cette séance, le duo a réussi à concevoir un début de châssis pouvant accueillir les roues du robot.
Un travail a été fait concernant l'assemblage des planches par tenons et mortaises en utilisant la fonction de SolidWorks. L'équipe a rencontré quelques problèmes en utilisant cette fonction. Aussi, il a fallu faire attention à que le châssis ne touche pas le sol.
Concernant le croquis, on a finalement décidé de ne pas perdre de temps à faire un croquis détaillé à la main avec les dimensions de chaque composant car on avait à disposition les pièces en taille réelle dans SolidWorks ce qui nous a particulièrement été utile. On a donc conçu nos pièces autour de ces composants existants.
Tâches diverses: Découpeuse Laser et premiers assembages ( Valentine )
Nous nous sommes intéressés en parallèle à la découpeuse laser. L’objectif était notamment de déterminer les réglages nécessaires pour que l’assemblage par tenons et mortaises soit suffisamment précis et serré, afin que les pièces restent solidaires par la suite. A l'issu de la séance, un premier test a pu être réalisé.
Pour ce premier test, nous avions choisi un jeu de 0.0 mm entre les tenons et mortaises. L'ajustement est glissant alors que nous souhaitions davantage un ajustement serré afin que les pièces tiennent entre elles. Il faudra donc tester avec d'autres dimensions pour trouver le réglage parfait. C'est un travail qui pourra être continué sur la prochaine séance.
On a également commencé à assembler ce qui pouvait déjà être assemblé. Nous avons ainsi lié chacun des 2 moteurs aux roues arrières, essentiellement à l’aide de vis, et par l’intermédiaire de 2 pièces imprimées en 3D qui ont pour rôle d’assurer le bon guidage.
Code (Ludovic et Pauline) :
L'objectif était de trouver comment on allait contrôler les moteurs avec les contraintes imposées. Pour ce faire, on a commencé par dessiner des schémas et écrire étape par étape les mouvements qu'on voulait faire. Ensuite, on a réalisé un organigramme pour organiser nos idées et faciliter le codage ultérieur, qu'on a presque terminé.
Partie électronique (Marin):
En première partie, j'ai soudé le fil du moteur dynamixel. Puis je me suis attelé à comprendre le fonctionnement de l'Arduino pour piloter les différents composants (pinces, capteurs us, moteurs, etc..).
Bilan et objectifs lors la prochaine séance:
Les parties informatique et électronique avancent globalement comme prévu. Concernant la partie mécanique, nous nous sommes finalement toujours pas attardé au croquis, on envisage de s'en occuper à la prochaine séance maintenant que plusieurs idées ont été modélisées sur Solidworks. Nous avons été ralenti à cause de la conception des assemblages tenons et mortaises sur Solidworks mais restons dans les temps. Une bonne base pour le robot a été modélisée. De premiers tests à la découpeuse laser ont été réalisés mais ils devront être finalisés à la prochaine séance.
Ci dessous nos objectifs pour la prochaine séance
Mécanique ( Lawny, Clovis et Valentine ): Continuer la modélisation du châssis en y assemblant la roue folle, les capteurs ultrasons et la carte Arduino. Faire un croquis de notre solution mécanique finale.
Informatique ( Pauline et Ludovic ): Finir l'organigramme et coder les fonctions principales.
Electronique ( Marin ): Etudier le fonctionnement des composants en utilisant le convertisseur UART-USB.
Tâches diverses ( Valentine ) : Trouver les réglages parfaits pour un assemblage serré à la découpeuse laser.
Séance du 26/03/2026
Ci dessous le diagramme de Gantt mis à jour ( report d'une semaine de la mission "Croquis" )
Partie code (Ludovic et Pauline) :
L'organigramme étant fini, on a fait tout l'algorithme avec une logique d'état différent du robot grâce a un switch case, ensuite séparer en un maximum de sous fonctions différente pour épurer la loop.
voici un extrait :
Partie électronique (Marin):
J'ai fini d'étudier le fonctionnement des différents composants du robot en utilisant le convertisseur UART-USB.
Partie mécanique (Clovis, Lawny et Valentine):
La conception Solidworks avance dans les temps. La modélisation du châssis a été terminée. Il ne reste plus qu'à modéliser le bras de levier entre le moteur Dynamixel et la pince. ( Clovis et Lawny )
En parallèle, nous nous sommes occupés de construire un croquis de notre solution à l'état actuel pour poser toutes les idées qui ont été conçues sur Solidworks. (Valentine) Ce croquis nous a aussi servi pour réfléchir à la façon dont nous souhaitions lier la pince au moteur Dynamixel, lui même fixé au chassis. Nous avons conçu une première version de ce bras. Il ne s'agit pas d'une version finale.
Tests découpeuses laser (Valentine):
Nous avons finalisé les tests à la découpeuse laser débutés à la dernière séance.
Nous avons cette fois ci décidé de faire des tests avec 0.1mm et 0.2mm de serrage. La solution 0.1mm permet un léger serrage alors que la solution 0.2mm permet un meilleur serrage. Le désassemblage des pièces reste en revanche possible en les tournant un peu ce qui signifie qu'il y a peut-être encore un meilleure réglage pour permettre aux pièces de se solidariser de manière plus forte. Pour notre cas, la solution à 0.2mm nous suffit.
Bilan et objectifs lors la prochaine séance:
Nous avançons globalement dans les temps par rapport à notre diagramme de Gantt. La conception mécanique devrait toucher le bout d'ici la prochaine séance tout comme le code.
Mécanique ( Lawny, Clovis et Valentine ): Concevoir le bras de liaison entre le moteur Dynamixel et la pince. Finir la conception mécanique et la valider en vue de l'étape de fabrication. Vérifier que les câblages et fixation entre chaque pièce soient réalisables. Découper les premières pièces.
Informatique et électronique ( Pauline, Ludovic et Marin ): Compiler et tester le code avec les différents moteurs et les capteurs.
Séance du 9/04/2026
Le diagramme de Gantt n'a pas évolué depuis la dernière séance
Partie mécanique (Clovis, Lawny et Valentine):
Le bras entre la pince et le moteur Dynamixel a pu être modélisé.
Nous nous sommes arrêtés sur une solution plus simple que présentée dans le croquis de la dernière séance. La solution finale est fabricable en une pièce par découpeuse laser. Nous avons directement pu fabriquer cette pièce et faire l'assemblage avec le moteur Dynamixel d'un côté et la pince de l'autre en s'aidant de boulons. Cela nous a permis de commencer à faire des tests côté électronique.
Remarque : Cette pièce était légèrement trop longue pour être assemblée correctement. Par soucis d'économie de matériau, nous avons décidé de couper la partie qui dérangeait à l'aide d'une pince coupante.
En parallèle, nous avons vérifié toute notre solution 3D pour s'assurer que les câblages et fixations entre chaque pièce soient réalisables. Nous avons décidé de rajouter des ouvertures pour faire passer les fils et des équerres pour solidifier le châssis. Aussi, avec concertation avec l'équipe informatique, nous avons réalisé que placer les deux capteurs ultrasons à l'avant du robot n'était pas optimal. Nous en avons donc déplacer un sur le côté droit du robot.
Nous étions bien rendus pour passer à l'étape de découpe mais avons été bloqués par la partie serrage de 0.2mm avec Solidworks. En effet, nous avions eu du mal à comprendre comment rentrer cette donnée avec la fonction tenons et mortaises et n'avons pas réussi à résoudre le problème à temps pour découper nos pièces. Puisque nous souhaitions rester dans les temps, nous avons décidé de nous retrouver au Fablab une après-midi en semaine dans le but de découper les pièces.
La base a pu être construite. Il reste quelques pièces à découper puis on pourra assembler toutes les composants.
Partie code (Ludovic et Pauline) :
Nous avons pris en compte des difficultés en raison des incertitudes des capteurs et des moteurs. De ce fait, nous avons décider de mettre un des capteurs sur l'un des côtés du robot. Afin de vérifier que le robot avance bien droit, nous avons utilisé ce capteur pour faire une fonction permettant de corriger la direction du robot en fonction de sa distance avec le mur latéral. De plus, on a commencer la prise en compte des valeurs d'incertitude des capteurs, en mesurant à une distance connue, pour adapter notre code à celles-ci.
Nous nous sommes réparties les différentes sous fonctions à faire :
Ludovic : mes_us (prendre la distance des capteurs des ultrasons), leve_totem, baisse_totem et gérer pince,
Pauline : tourn_90hor() et tourn_90antihor() (tourner le robot de 90 degrés vers la droite ou vers la gauche)
Partie électronique (Marin) :
Une fois le moteur Dynamixel, le bras et la pince assemblés, nous avons pu faire les premiers tests vérifiant que la pince arrivait à attraper le totem correctement et à le soulever et le reposer sans le faire tomber. Les tests ont été réalisés avec succès.
Bilan et objectifs lors la prochaine séance:
L'équipe mécanique avance dans les temps par rapport au diagramme de Gantt. En revanche, l'équipe informatique a pris du retard suite au déplacement d'un capteur ultrasons ce qui a pour effet de changer une partie de la logique du code. Les tests sur les capteurs n'ont pas pu être faits à cette séance et devront être faits à la prochaine. Le robot devrait être finit d'être assemblé dans les premières heures de la séance pour permettre à l'équipe informatique de tester le code en condition réelle.
Mécanique ( Lawny, Clovis et Valentine ): Finir l'assemblage du robot en découpant les dernières pièces puis en assemblant tous les composants.
Informatique et électronique ( Pauline et Ludovic et Marin ): Tester le code sur le robot.
Séance du 07/05/2026
Ci dessous le diagramme de Gantt mis à jour depuis la dernière séance ( décalage d'une semaine de la mission "Code complet" et "Tests sur les capteurs" )
Partie mécanique (Clovis, Lawny et Valentine):
Du côté mécanique, nous avons finit l'assemblage du robot en ajoutant au châssis la carte Arduino, la batterie, les roues, la pince et le support de l'interrupteur.
Partie électronique (Marin):
Nous avons câbler tous les composants. Nous avons décidé de rajouter un interrupteur sur la batterie pour éviter qu'elle ne se décharge trop vite.
On a également réfléchi à une solution qui ferait respecter la consigne du cahier des charges qui impose de démarrer le robot en cliquant sur un bouton poussoir. La solution retenue est d'utiliser le bouton reset de la carte Arduino.
Partie codage (Ludovic et Pauline):
Asservissement : Développement de la fonction mot_avance intégrant un correcteur proportionnel Kp=2.5. Le robot lit la distance latérale via le capteurs à ultrason mit sur le coté et ajuste dynamiquement la vitesse des roues pour rester parallèle au mur. Nous avons fait des tests sur cette fonction et le correcteur semble avoir été bien choisi.
Avec des tests nous avons constater qu'en s'arrêtant à 30 cm du mur frontal, le robot se retrouvait beaucoup trop loin du mur latéral après son virage à 90°. L'axe de rotation (les roues) n'est pas au centre du robot. Lors du pivot sur place, l'avant décrit un grand arc de cercle, ce qui fausse la distance finale par rapport au mur. Pour remédier à cela, nous levons la pince avant la manœuvre pour raccourcir l'avant du robot et éviter la collision, et faisons une modification de la consigne d'arrêt frontal à 10 cm (au lieu de 30 cm). Ainsi, après avoir pivoté de 90° sur son axe décalé, le flanc du robot se retrouve environ à la distance de 30 cm pour continuer à longer le mur.
Partie mécanique rendu finale (Lawny, Clovis et Valentine ) :
Pour finir voici notre robot finale :
Bilan et objectifs lors des prochaines séances :
Nous arrivons ici à la dernière séance officielle au fablab. En revanche, alors que nous souhaitions valider le code, cette séance a particulièrement été ralentie par divers problèmes électroniques qui ont empêché l'équipe informatique de correctement tester son programme. Nous programmons donc à ce point d'autres séances jusqu'à que le code soit fonctionnel.
Séances supplémentaires du 20, 22, 26 et 27/05/2026
Bien que notre avancée semblait très correcte par rapport à notre diagramme de Gantt, 4 séances supplémentaires ont du être prises pour finaliser notre robot. En effet, la partie électronique et informatique nous ont causé plusieurs problèmes longs à résoudre. D'abord, nous avons eu beaucoup de mal à faire réagir le robot comme nous le souhaitions. Pour un même code, son déplacement était parfois radicalement différent. Plus tard, nous sommes restés bloqués à une étape où les moteurs ne voulaient plus répondre. Nous avons également réaliser que notre pince ne pouvait plus être contrôlée.
Quelques modifications et optimisations du code ont été faites : Calibration de la rotation : L'angle mathématique théorique ne fonctionnait pas parfaitement. Nous avons donc ajouter un coefficient (ratio passé de 90 à 86) pour obtenir des virages à 90° parfaits. Ajout de pauses stratégiques (delay(2000) avant et après les manipulations du totem pour permettre au châssis de se stabiliser. Au démarrage (Case 1), le robot s'arrêtait quasi instantanément ou tournait sans raison, croyant avoir déjà atteint sa cible, alors que le mur frontal était pourtant à plus d'un mètre de distance. Ne pouvant pas nous fier au capteur dans cette zone précise, nous avons appliqué le principe de la commande en "boucle ouverte". Nous avons désactivé la fonction mot_avance(qui dépend des ultrasons) pour la remplacer par un dégagement temporel aveugle. L'utilisation d'un timer non-bloquant avec millis() force le robot à avancer pendant 6,5 secondes, lui garantissant de s'extraire de cette zone instable en toute sécurité avant de redonner la parole aux capteurs pour le reste du parcours.
Face à ces divers problèmes, nous avons pris du temps pour vérifier le câblage et pour valider chaque étape du parcours une par une. Concernant la pince qui ne pouvait plus être contrôlée, nous avons constaté que le totem pouvait toujours être attrapé en gardant la pince à une certaine ouverture. En revanche, cela nous a demandé d'adapter le code afin qui soit encore plus précis pour être sur que le robot arrive en face du totem.
Nous avons également profité de ces séances supplémentaires pour avoir un câblage plus propre en regroupant les câbles ensemble par du scotch d'électricien et des serre-câbles. Aussi, à force de déplacer le robot, certaines pièces du robot se sont désemboîtées, ce qui nous à amené à les fixer avec de la colle à bois.
Après plusieurs heures passées à corriger ces divers problèmes inattendus, nous sommes arrivés à notre but. Voici une vidéo du robot en fonctionnement en vitesse x10. En effet, le robot est en réalité temps et cela est imposé par notre correcteur de suivi de mur : si le robot est trop rapide, la correction ne se fait pas correctement.
Améliorations possibles
Si nous devions refaire ce projet, il y a des choses que l'on ferait différemment. D'abord, nous avons réalisé que les tenons et mortaises ont une bien meilleure rigidité si les mortaises trouaient complétement la planche et non présentes sur le côté de la planche comme nous l'avons fait. En conséquence, nous avons choisi de mettre de la colle à bois pour rigidifier la liaison sous la contrainte de l'économie de matériau. Aussi, nous avons choisi de mettre la batterie perpendiculairement à la carte Arduino ce qui nous fait un robot inutilement long. Cela a eu pour conséquence de nous empêcher de faire tourner le robot à exactement 30cm du mur et nous a forcé à poser une vitesse de déplacement lente au robot pour permettre au correcteur de corriger correctement la distance latérale au mur du robot.
Cela reste des petits ajustements qui n'empêchent pas notre robot de fonctionner.
Séance du 29/05/2026
Dernier cours, démonstrations du projet et démontage du robot.



























No Comments