# IronCrousty (Christopher, Elias Antoun, Louis, Maxence, Laïssa, Aya)

## **IronCrousty**



#### **Objectif**

Dans le cadre de l'UE Projet Robotique, nous devons fabriquer un robot capable de récupérer un objet et de le déposer ailleurs dans une arène. Afin de réaliser cela, nous devons nous répartir dans plusieurs pôles (informatique, électronique et mécanique) pour qu'aucun de aspect de la fabrication ne soit oublié. La communication entre les personnes des différents pôles est donc primordiale pour la bonne conduite du projet.

#### **Répartition des rôles :**

<div aria-label="Page Section Options" class="pointer-container" id="bkmrk-%C2%A0-2" refs="pointer@pointer" tabindex="-1"><div class="pointer flex-container-row items-center justify-space-between p-s anim is-page-editable"><div class="flex-container-row items-center gap-s" refs="pointer@mode-section"><button class="text-button icon px-xs" title="Permalink mode, Press to show include tag"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="input-group"> **<button class="button outline icon" title="Copy Link" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button>**</div></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>- Responsable informatique : Maxence
- Pôle informatique : Maxence, Elias, Christopher
- Responsable électronique: Elias
- Pôle électronique : Christopher, Aya, Laissa, Elias
- Responsable mécanique : Louis
- Pôle mécanique : Louis, Aya, Laissa
- Chef de projet : Elias

#### **Séance 1 (12/02/26)**

- Répartition des rôles et création du diagramme de Gantt (Christopher)

[https://docs.google.com/spreadsheets/d/1wC\_1XbupPaG7TZ1aQCpUpkzV-nBctYzU/edit?gid=83363326#gid=83363326](https://docs.google.com/spreadsheets/d/1wC_1XbupPaG7TZ1aQCpUpkzV-nBctYzU/edit?gid=83363326#gid=83363326)

##### **Pôle informatique**

Test et vérification du bon fonctionnement des composants du kit à l'aide de programmes Arduino (Maxence, Elias, Aya)

- Test des deux moteurs KTECH MS4015-V3
- Test du moteur Dynamixel
- Test de la pince 3551
- Test des deux capteurs à ultrasons HC-SR04

Création du Git : https://github.com/Maxence-Santos/Projet\_ROB3\_2\_S6


##### **Pôle mécanique**

- Réflexion et conception générale de l'architecture du robot. Réalisation d'un croquis au tableau permettant la définition de l'emplacement des différents composants : batterie, carte Arduino, capteurs à ultrasons et pince. Proposition de plusieurs solutions de conception, puis mise en accord sur une solution commune. (Lousi, Laïssa, Aya, Elias, Christopher, Maxence)

Fixation des objectifs mécaniques pour la suite du projet (Louis, Laïssa, Aya)

- Modélisation du châssis
- Conception des appuis moteurs et des pièces intermédiaires
- Étude des contraintes mécaniques
- Fabrication du châssis et des pièces  
      
    **[![la 1ere seance.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/la-1ere-seance.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/la-1ere-seance.jpeg)**

##### **Pôle électronique**

Réalisation du câblage des composants du kit et vérification des connexions (Aya, Maxence, Elias)

- Câblage des deux moteurs KTECH MS4015-V3 via le bus CAN
- Câblage du moteur Dynamixel
- Câblage de la pince 3551
- Câblage des deux capteurs à ultrasons HC-SR04
- Branchement de l'alimentation et vérification générale du circuit

#### **Séance 2 (19/03/26)**

- Remplissage et amlioration du Wiki (Aya)

##### **Pôle informatique**

- Finalisation des tests du kit et vérification du bon fonctionnement de l'ensemble des composants. (Maxence, Elias)
- Début de la réflexion et mise en place de l'organigramme général du programme de contrôle du robot. (Christopher)


##### **Pôle électronique**

- Soudage du câble d'alimentation du moteur Dynamixel en vue de son intégration dans le circuit électrique du robot. (Elias)

##### **Pôle mécanique**

Début de la modélisation des différentes pièces nécessaires à l'assemblage du robot, en fonction des matériaux et procédés de fabrication retenus :

- Modélisation du châssis principal en bois MDF 6mm, destiné à être découpé au laser (Aya)
- Modélisation de la pièce intermédiaire entre les moteurs de roues et le châssis en MDF 3mm, également prévue pour la découpe laser (Laïssa)

**![raccord moteur roue et chassis .jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/raccord-moteur-roue-et-chassis.jpeg) ![triangle de support fixe au raccord.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/triangle-de-support-fixe-au-raccord.jpeg)**

  Raccord moteur roue et chassis Triangle de support fixe au raccord

- Modélisation 3D d'une pièce intermédiaire pour l'intégration de la pince, conçue pour être fabriquée par impression 3D (Louis)

**[![piceint1.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/piceint1.jpeg)Pièce intermédiaire pince-chassis](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/piceint1.jpeg)**

**[![pinceinte2.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/pinceinte2.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/pinceinte2.jpeg)**

#### **Séance 3 (02/04/26)**

- Remplissage et amlioration du Wiki (Aya)

##### **Pôle informatique**

- Réalisation de l'organigramme principal (Christopher, Maxence, Elias) ainsi que des sous-programmes. ![IMG_20260402_103316.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-20260402-103316.jpg)
- Codage des fonctions pour tourner et avancer : elle prend en argument la distance à parcourir, l'angle à avoir et la vitesse à laquelle les roues doivent tourner. Elle fait d'abord tourner le robot de l'angle demandé, puis le fait avancer de la distance demandée. (Christopher)
- Codage de la fonction prendre objet (Elias)


##### **Pôle mécanique**

Modification et affinement du châssis principal (Laïssa)

- Ajout de trous et de détails techniques
- Forme générale inchangée

[![chassi vf.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/chassi-vf.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/chassi-vf.jpeg)

Modélisation des pièces de maintien de la batterie (Laïssa)

- Fixation stable sur le châssis
- Conception prenant en compte le poids de la batterie

Modélisation d'un support pour capteur à ultrasons (Elias)

- Destiné à la détection de mur latéral
- Positionnement précis et stable du capteur sur le châssis

![support poids batterie.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/support-poids-batterie.jpeg) Support poids de batterie

![maintien batterie.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/maintien-batterie.jpeg) Maintien de batterie

#### **Séance 4 (03/04/26)**

- Remplissage et amlioration du Wiki (Aya)

##### **Pôle mécanique**  


- Intégration de l'ensemble des pièces modélisées dans un assemblage global (Laïssa)
- Vérification et amélioration de la précision des trous et des détails sur les différentes pièces (Aya)
- Ajustements effectués afin d'assurer la compatibilité et le bon assemblage entre les composants (Louis)

##### **Pôle électronique**

- Soudage d'un bouton qui s'allume (Elias)

**[![1000543161.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/1000543161.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/1000543161.jpg)**


#### **Séance 5 (10/04/26)**

- Remplissage et amlioration du Wiki (Aya)

##### **Pôle mécanique**

- Découpe du toutes les pieces du robot MDF selon les plans modélisés sur SolidWorks (Laïssa, Louis)
- Vérification de la conformité des pièces obtenues avec les dimensions prévues (Laïssa, Louis)



#### **Séance 6 (16/04/26)**

- Remplissage et amlioration du Wiki (Aya)
- Le diagramme de Gantt a été complété maintenant que les étapes intermédiaires sont plus claires (Christopher)

##### **Pôle informatique**

- Codage de la fonction calibrage() . Cette fonction est faite pour que le robot se place à 30cm du mur DC car on sait que le totem l'est aussi. Pour ce faire, on le fait pivoter vers la droite, avancer jusqu'à être à distance souhaitée, puis pivoter vers la gauche. (Christopher)
- Codage de la fonction chercher\_objet() et de la librairie init\_moteurs afin de ne pas avoir à initialiser les moteurs et la connexion CAN dans chaque code qui utilise les moteurs. (Maxence)

##### **Pôle mécanique**

- Assemblage et ajustement entre la pince et la pièce intermédiare puis entre la pièce intermédaire et le moteur Dynamixel (Louis)
- Montage du robot sans la pince (Laïssa)

##### **Pôle électronique**

- Soudage de câbles plus robustes (Elias)

#### **Séance 7 (20/05/26)**

##### **Pôle informatique**

- Amélioration de la fonction chercher\_objet (Maxence)

#### **Séance 8 (21/05/26)**

- Remplissage et amlioration du Wiki (Aya)

##### **Pôle mécanique**

- Montage complet du robot incluant la pince (Laïssa, Louis)
- Modélisation et Montage de la pièce support pour le bouton démarrage. Rajout d'une bague qui va réduire le jeu entre le bouton et la pièce (Louis)

**[![piece bouton1.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/piece-bouton1.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/piece-bouton1.jpeg)[![bague piece bouton .jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/scaled-1680-/bague-piece-bouton.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-05/bague-piece-bouton.jpeg)**

##### **Pôle informatique**

- Test et amélioration de la fonction deplacer() (Christopher)
- Amélioration de la fonction deplacer(), elle se base maintenant sur deux fonctions : tourner et avancer. (Christopher)

#### **Séance 9 (21/05/26)**

##### **Pôle informatique**

- Création de la fonction corriger\_droite() qui corrige la trajectoire du robot en le faisant rester à une certaine distance du mur de droite à plus ou moins 10%. (Christopher)
- Création des fonctions pour détecter un objet a une certaine distance (devant ou à droite). (Christopher)
- Achèvement de la fonction calibrage\_initial() (anciennement calibrage()). (Christopher)

#### **Séance 10 (26/05/26)**

##### **Pôle informatique**

- Reconsidération totale du programme de déplacement du robot (Elias)

#### **Séance 11 (27/05/26)**

##### **Pôle informatique**

- Implémentation, dans `chercher\_objet.cpp`, d'une logique de déplacement et de détection d’objet à l’aide des capteurs ultrasoniques, tout en ajoutant un système de correction de trajectoire (“correcteur”) afin de maintenir un déplacement stable malgré les écarts mécaniques des moteurs (Maxence, Elias)
- Intégration de l’odométrie pour estimer la distance parcourue par le robot à partir de la rotation des roues, ce qui permet d’évaluer précisément la position de l’objet dans l’arène et d’améliorer la navigation (Maxence, Elias)
- Programmation du contrôle de la pince servo dans `pince.cpp` afin de saisir et relâcher les objets automatiquement (Maxence, Elias)
- Développement de la logique de retour vers la zone de départ en exploitant les données d’odométrie et les corrections de trajectoire pour garantir un déplacement plus précis et fiable dans `retour.cpp` (Maxence, Elias)

##### **Pôle électronique**

- Remaniement du câble management (Elias)

##### **Pôle mécanique**

- Ajout d'une tige essentielle entre les supports moteurs-chassis, ce qui a réduit les écarts de coaxialité des moteurs et a considérablement amélioré les mouvements du robot (Laïssa)

#### **Séance 12 (28/05/26) Évaluation**

- Remplissage et amlioration du Wiki (Louis, Laïssa)
- Création de la notice du robot 'IronCrousty' (Aya)

##### **Pôle informatique**

- Amélioration et finalisation des programmes de déplacement et de capture du totem

## **<span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0);"><span style="font-size: 16pt;">Notice d'utilisation du robot</span></span></span>**

##### **1. Présentation du robot**

IronCrousty est un robot autonome développé dans le cadre de l'UE Projet Robotique. Son objectif est de localiser un objet (totem) dans une arène, de le saisir, puis de le déposer dans une zone cible désignée, sans intervention humaine.

<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" id="bkmrk-%C3%89quipe-christopher%2C-" style="width: 468.0pt; border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm .5pt 0cm .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext;" width="624"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;"><td style="width: 150.0pt; border: solid #CCCCCC 1.0pt; mso-border-alt: solid #CCCCCC .25pt; background: #D6E4F0; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="200">**<span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Équipe</span>**

</td><td style="width: 318.0pt; border: solid #CCCCCC 1.0pt; border-left: none; mso-border-left-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: white; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="424"><span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Christopher, Elias , Louis, Maxence, Laïssa, Aya</span>

</td></tr><tr style="mso-yfti-irow: 1;"><td style="width: 150.0pt; border: solid #CCCCCC 1.0pt; border-top: none; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: #D6E4F0; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="200">**<span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Chef de projet</span>**

</td><td style="width: 318.0pt; border-top: none; border-left: none; border-bottom: solid #CCCCCC 1.0pt; border-right: solid #CCCCCC 1.0pt; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-left-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: white; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="424"><span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Elias </span>

</td></tr><tr style="mso-yfti-irow: 2;"><td style="width: 150.0pt; border: solid #CCCCCC 1.0pt; border-top: none; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: #D6E4F0; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="200">**<span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Responsable info</span>**

</td><td style="width: 318.0pt; border-top: none; border-left: none; border-bottom: solid #CCCCCC 1.0pt; border-right: solid #CCCCCC 1.0pt; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-left-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: white; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="424"><span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Maxence</span>

</td></tr><tr style="mso-yfti-irow: 3;"><td style="width: 150.0pt; border: solid #CCCCCC 1.0pt; border-top: none; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: #D6E4F0; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="200">**<span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Responsable élec</span>**

</td><td style="width: 318.0pt; border-top: none; border-left: none; border-bottom: solid #CCCCCC 1.0pt; border-right: solid #CCCCCC 1.0pt; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-left-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: white; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="424"><span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Elias </span>

</td></tr><tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"><td style="width: 150.0pt; border: solid #CCCCCC 1.0pt; border-top: none; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: #D6E4F0; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="200">**<span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Responsable méca</span>**

</td><td style="width: 318.0pt; border-top: none; border-left: none; border-bottom: solid #CCCCCC 1.0pt; border-right: solid #CCCCCC 1.0pt; mso-border-top-alt: solid #CCCCCC .25pt; mso-border-left-alt: solid #CCCCCC .25pt; mso-border-alt: solid #CCCCCC .25pt; background: white; padding: 4.0pt 7.5pt 4.0pt 7.5pt;" valign="top" width="424"><span style="font-size: 10.0pt; color: black; mso-color-alt: windowtext;">Louis</span>

</td></tr></tbody></table>

##### **2. Composants matériels**

Le robot est constitué des éléments suivants :

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>2 moteurs de roues KTECH MS4015-V3 (pilotés via bus CAN)

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>1 moteur Dynamixel (contrôle de la pince)

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>1 pince modèle 3551

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>2 capteurs à ultrasons HC-SR04 (détection avant et latérale)

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>1 carte Arduino (carte de contrôle principale)

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>1 batterie avec système de maintien imprimé en 3D

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>1 châssis principal en bois MDF 6 mm découpé au laser

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Pièces intermédiaires en MDF 3 mm et impression 3D

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>1 bouton lumineux vert (démarrage du programme)

##### **3. Mise en marche**

##### **3.1 Vérifications préalables**

Avant toute mise sous tension, vérifier les points suivants :

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>S'assurer que la pince est en position ouverte (position de repos).

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Vérifier que les câbles d'alimentation des moteurs KTECH et du Dynamixel sont correctement branchés.

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Contrôler que les deux capteurs à ultrasons HC-SR04 sont bien fixés sur leurs supports.

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>S'assurer que la batterie est chargée et correctement maintenue dans son support.

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Vérifier que la carte Arduino est connectée et que le câblage bus CAN est en place.

##### **3.2 Démarrage**

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Placer le robot dans l'arène, orienté face au mur DC (mur de droite).

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Connecter la batterie au circuit d'alimentation.

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Appuyer sur le bouton lumineux vert pour lancer le programme principal.

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Le robot exécute automatiquement la séquence d'initialisation (calibrage).

*<span style="font-size: 10.0pt; color: #c55a11;">⚠️ Ne pas déplacer le robot après avoir appuyé sur le bouton : le calibrage se lance immédiatement.</span>*

##### **4. Fonctionnement autonome**

Une fois démarré, le robot exécute de façon autonome la séquence suivante :

##### **4.1 Calibrage initial**

Fonction : <span style="mso-ascii-font-family: Arial; mso-ascii-theme-font: minor-bidi; mso-fareast-font-family: 'Courier New'; mso-hansi-font-family: Arial; mso-hansi-theme-font: minor-bidi; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi;">calibrage\_initial()</span>

Le robot se place à 30 cm du mur DC afin de se positionner au même niveau que le totem. La procédure est la suivante :

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Rotation vers la droite.

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Avancée jusqu'à atteindre 30 cm du mur (mesure par capteur ultrason).

<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Rotation vers la gauche pour retrouver son orientation initiale.

*<span style="font-size: 10.0pt; color: #c55a11;">Remarque: Cette étape est essentielle : si le robot démarre trop loin ou trop près du mur, le calibrage peut échouer.</span>*

##### **4.2 Recherche de l'objet**

Fonction : chercher\_objet()

Le robot se déplace dans l'arène et utilise ses capteurs à ultrasons pour détecter le totem. La détection peut se faire :

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Devant le robot (capteur frontal).

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Sur le côté droit (capteur latéral).

Pendant cette phase, un correcteur de trajectoire (corriger\_droite()) maintient le robot à distance constante du mur de droite (±10 %) pour compenser les écarts mécaniques des moteurs. Afin de trouver l'objet le capteur avant est utilise pour deteminer a quelle distance le robot se trouve de l'objet.

##### **4.3 Saisie de l'objet**

Fonction : pince.cpp — pince()

Lorsque le totem est détecté à la bonne distance, le robot leve le moteur Dynamixel pour prendre l'objet.

##### **4.4 Déplacement vers la zone de dépôt**

Fonction : retour() — sous-fonctions : degtorad2()

Le robot se dirige vers la zone de dépôt en utilisant la combinaison de deux fonctions :

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Tourner (angle, vitesse) : fait pivoter le robot de l'angle demandé.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Avancer (distance, vitesse) : fait avancer le robot de la distance demandée.

La correction de trajectoire reste active pendant tout le déplacement.

##### **4.5 Dépôt de l'objet**

Fonction : retour.cpp — retour()

Une fois en zone de dépôt, le robot ouvre la pince pour relâcher l'objet. La pose est automatique.

##### **6. Dépannage courant**

#### Le robot ne démarre pas

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Vérifier que la batterie est chargée et correctement branchée.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>S'assurer que le bouton lumineux vert est bien soudé et fonctionnel.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Contrôler les connexions des moteurs sur le bus CAN.

#### Le robot ne détecte pas l'objet

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Vérifier que les capteurs HC-SR04 sont bien orientés et fixés sur leurs supports.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>S'assurer que le totem se trouve bien dans la zone de détection (devant ou à droite).

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Relancer depuis la position de départ en respectant l'orientation initiale.

#### La trajectoire est déviée

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Vérifier que les roues sont bien montées et serrées (présence de la tige de maintien).

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>S'assurer que le capteur latéral n'est pas obstrué.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Vérifier l'alimentation des moteurs KTECH.

#### La pince ne se ferme pas / ne s'ouvre pas

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Vérifier le câblage du moteur Dynamixel.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Contrôler l'alimentation dédiée au Dynamixel (câble soudé séparément).

#### Code ou câblage défaillant

*<span style="font-size: 10.0pt; color: #c55a11;">Remarque : En cas de dysfonctionnement grave, procéder à une réinitialisation complète du code et du câblage.</span>*

##### **7. Entretien et précautions**

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Ne pas laisser la batterie branchée lorsque le robot est inutilisé.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Vérifier l'état des soudures des câbles avant chaque utilisation (câbles d'alimentation, bouton).

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Contrôler l'intégrité du châssis MDF : le bois peut se fissurer en cas de choc.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Les pièces imprimées en 3D (support pince, maintien batterie) peuvent se déformer sous chaleur : ne pas laisser le robot exposé au soleil.

<span style="mso-list: Ignore;">•<span style="font: 7.0pt 'Times New Roman';"> </span></span>Après chaque utilisation, remettre la pince en position ouverte pour éviter la fatigue du servomoteur.