Catégories
MBOT Robotique

MBOT : Suivi ligne noire

Etape n°1 Affichage et démarrage du robot sur le bouton B

Nous utilisons l’affichage du robot pour obtenir des informations primordiales afin d’optimiser son utilisation lors de la compétition. Ces informations comprennent :

  1. Le nom du robot, qui permet de l’identifier correctement et d’éventuellement reconnaître ses particularités physiques ;
  2. Un numéro de version du programme, qui nous assure du niveau du logiciel téléchargé sur le robot ;
  3. Le niveau de batterie, qui pourrait influencer le comportement du robot ;
  4. Le sens du suivi de la ligne noire, qui peut être modifié par le joystick soit par la droite, soit par la gauche.

Gestion des boutons A et B

À chaque interaction avec les boutons A ou B, nous vérifierons que l’utilisateur a bien relâché le bouton avant de commencer une nouvelle action.

En appuyant sur le bouton B, le suivi de ligne noire du robot est lancé. Un nouvel appui sur ce même bouton B arrêtera le robot.

►Vérifie que lorsque tu appuies sur le bouton B, les LED s’affichent en vert, puis en rouge lors d’un nouvel appui.

Etape n°2 Menu pour calibrage du blanc du capteur RGB

Nous avons constaté que le calibrage du capteur RGB et de la balance des blancs doit être effectué en fonction des particularités du tapis ou de la lumière ambiante. Pour ce faire, le bouton A permet de lancer la demande de calibrage. L’appui sur le bouton A affiche un message pour confirmer l’opération. Ensuite, l’utilisateur doit effectuer un appui long sur le bouton B pour lancer l’opération de calibrage

► Opération en deux phases suite à l’appui sur le bouton A :

  • Calibrage du RGB par un double appui du bouton sur le capteur
  • Calibrage de la balance des blancs par un nouvel appui long du bouton A

Suite à nos différents tests, nous nous apercevons que le calibrage est primordial pour le bon fonctionnement du robot. D’ailleurs cette opération est bien prise en compte dans le règlement.

Place le dispositif RGB du robot sur une feuille blanche, puis utilise le bouton A pour calibrer le robot.

Grâce à l’utilisation du joystick, l’utilisateur peut modifier le sens du suivi de la ligne, soit à droite, soit à gauche. Un affichage confirme son choix.

►Par le joystick nous changeons l’affichage du suivi de ligne vers la droite ou vers la gauche.

Etape n°3 Suivi ligne noire

Pour le suivi de la ligne noire, les moteurs EM1 et EM2 sont utilisés. Deux variables, puissance_droite et puissance_gauche, permettent le paramétrage des deux moteurs. Le moteur droit EM2 est monté à l’envers sur le robot. Pour compenser cela, le paramétrage du moteur droit est multiplié par -1.

►Avec cette programmation, le robot doit avancer tout droit à la vitesse minimale mais il ne prend pas en compte la ligne noire. Nous devons utiliser les capteurs RGB pour que notre robot suive la ligne noire soit par la droite soit par la gauche.

L’unité pour faire tourner les moteurs du MBOT V2 est le tour par minute (RPM). La bibliothèque mblock utilise des valeurs comprises entre -100 et 100 pour contrôler la vitesse des moteurs, où -100 correspond à la vitesse maximale dans le sens inverse des aiguilles d’une montre, 0 correspond à l’arrêt et 100 correspond à la vitesse maximale dans le sens des aiguilles d’une montre.

Etape n°4 LEDs et suivi ligne noire par la droite

Les LED s’affichent en fonction de la détection de la ligne noire. Cette fonction affiche les LEDs sur des cas non traités par notre programme

La variable sens_ligne_noire détermine le sens du suivi de la ligne noire, soit par la droite (« D »), soit par la gauche (« G »).

En fonction de sens_ligne_noire, le robot suit la ligne noire en privilégiant les possibilités par la droite, soit les possibilités par la gauche. En fonction du sens de suivi de la ligne, le programme donne plus d’importance aux détecteurs RGB les plus extrêmes R2 ou L2.

Si le suivi de la ligne noire se fait par la droite, le programme donne plus d’importance au détecteur RGB R2 pour tourner à droite.

Si le suivi de la ligne noire se fait par la gauche, le programme donne plus d’importance au détecteur RGB L2 pour tourner à gauche.

Si les détecteurs R2 ou L2 ne détectent pas la ligne noire alors le robot doit suivre la ligne noire en avançant tout droit.

Pour tourner fortement à droite, le moteur droit tourne dans le sens contraire des aiguilles d’une montre et le moteur gauche tourne dans le sens des aiguilles d’une montre. Ainsi, le robot tourne sur place vers la droite.

Pour tourner fortement à gauche, le moteur gauche tourne dans le sens contraire des aiguilles d’une montre et le moteur droit tourne dans le sens des aiguilles d’une montre. Ainsi, le robot tourne sur place vers la gauche.

Le robot roule tout droit quand les détecteurs RGB R2 et L2 ne sont pas sollicités

►Le robot suit la ligne noire, soit par la droite, soit par la gauche. Cependant, le robot manque de précision sur des parcours d’une ligne noire avec des courbes ou des angles droits. Nous devons l’améliorer en prendre en compte les capteurs RGB R1 et L1.

Etape n°5 Suivi ligne noire plus précisément

En analysant plus finement les capteurs RGB R1 et L1, le suivi de la ligne noire est possible en maintenant le robot au centre de la ligne noire.

► Le robot suit la ligne noire, mais rencontre parfois des difficultés sur les angles droits. Nous avons effectué des tests avec différentes vitesses, mais la vitesse minimale de 30RPM semble être la plus sûre, tandis que la vitesse maximale de 40RPM permet une petite accélération en ligne droite.

Cependant, en fonction du poids du robot, de l’installation de la pince et de l’équilibrage du robot avec un poids à l’arrière, la vitesse minimale peut être amenée à changer. Nous devons donc être vigilants et ajuster la vitesse en fonction des modifications apportées au robot.

Etape n°6 Passage des plans inclinés

En utilisant l’accéléromètre du mBot, on peut détecter l’inclinaison du robot et ainsi ajuster la puissance en fonction de la pente : accélérer dans une montée et ralentir dans une descente.

► La plus grande difficulté rencontrée est l’équilibrage du robot. En effet, lorsque le robot monte une pente, les moteurs ont tendance à le déséquilibrer vers l’arrière. De plus, avec l’installation de la pince, le robot est déséquilibré vers l’avant. Pour pallier ce problème, nous avons mis en place un dispositif pour équilibrer le robot équipé de la pince en ajoutant un poids sur l’arrière du robot. Cela permet de stabiliser le robot et d’améliorer la performance du capteur RGB pour suivre la ligne noire dans les franchissements et les passages de pentes. Nous avons effectué plusieurs tests pour ajuster le poids et trouver le bon équilibre en fonction des différentes configurations rencontrées.

Etape n°7 Contournement d’un obstacle

Le robot détecte et évite les obstacles sur la ligne noire. Pour cela, le capteur sonore du mBot v2 est utilisé pour la détection de l’obstacle. Lorsqu’un obstacle est détecté, le robot s’arrête et attend un petit moment pour confirmer la détection. Cette double vérification permet d’éviter les faux positifs, par exemple lorsqu’un objet passe brièvement devant le capteur sans constituer un obstacle réel.

► Nous avons vérifié que le déplacement à droite ou à gauche ne dépasse pas 25 cm, comme demandé dans le règlement de la RoboCup. Cependant, la plus grande difficulté a été de reprendre la ligne noire en fonction de la configuration de celle-ci après l’obstacle. En effet, selon l’angle de sortie de l’obstacle et la position de la ligne noire, le robot peut avoir du mal à retrouver le tracé et à poursuivre le suivi de la ligne noire. Nous avons donc dû travailler sur les algorithmes afin de détecter la ligne et se positionner sur la ligne pour améliorer la performance du robot dans ces situations.

Etape n°8 Détection des indicateurs verts

Les indicateurs verts permettent de déterminer le sens de suivi de la ligne noire en fonction de leur position. Nous avons choisi d’utiliser les algorithmes de suivi par la droite ou par la gauche de la ligne noire. Si un indicateur vert est détecté sur les capteurs R1 ou R2 du RGB, la variable sens_suivi_ligne_noire est réglée sur « D » pour un suivi à droite. Si un indicateur vert est détecté sur les capteurs L1 ou L2 du RGB, la variable sens_suivi_ligne_noire est réglée sur « G » pour un suivi à gauche

► Notre dispositif ne prend pas en compte le cas d’une croix sans indicateur vert. Or, le règlement de la RoboCup demande que le robot roule tout droit dans cette situation. Actuellement, notre algorithme fait tourner le robot à droite ou à gauche en fonction de sa position. Nous devons donc prendre en compte cette alternative et modifier notre algorithme en conséquence pour que le robot suive les règles de la compétition.

Etape n°9 Gérer l’économie du robot

Comment économiser l’énergie du robot ? Deux voies possibles : éteindre les LED du dispositif RGB lorsque le robot n’utilise pas les capteurs pour le suivi de la ligne noire, et éteindre l’écran après un certain temps d’inactivité.

Les LED et l’écran sont des composants qui consomment de l’énergie. En les éteignant lorsqu’ils ne sont pas nécessaires, on peut réduire la consommation d’énergie du robot et prolonger son autonomie. Il est donc recommandé d’éteindre les LED du dispositif RGB lorsque le robot n’utilise pas les capteurs pour le suivi de la ligne noire, et d’éteindre l’écran après un certain temps d’inactivité, par exemple après 30 secondes sans interaction de l’utilisateur.

► L’économie de la batterie repose principalement sur l’extinction de l’écran lorsque le robot roule et sur l’extinction des LEDs du capteur RGB lorsque le robot est au repos. En effet, ces deux éléments sont des consommateurs importants d’énergie. En les éteignant lorsqu’ils ne sont pas nécessaires, nous pouvons prolonger l’autonomie de la batterie et ainsi améliorer les performances du robot pendant la compétition.

Catégories
MBOT Robotique

MBOT : Suivi ligne noire

Etape n°1 Affichage et démarrage du robot sur le bouton B

Nous utilisons l’affichage du robot pour obtenir des informations primordiales afin d’optimiser son utilisation lors de la compétition. Ces informations comprennent :

  1. Le nom du robot, qui permet de l’identifier correctement et d’éventuellement reconnaître ses particularités physiques ;
  2. Un numéro de version du programme, qui nous assure du niveau du logiciel téléchargé sur le robot ;
  3. Le niveau de batterie, qui pourrait influencer le comportement du robot ;
  4. Le sens du suivi de la ligne noire, qui peut être modifié par le joystick soit par la droite, soit par la gauche.

Gestion des boutons A et B

À chaque interaction avec les boutons A ou B, nous vérifierons que l’utilisateur a bien relâché le bouton avant de commencer une nouvelle action.

En appuyant sur le bouton B, le suivi de ligne noire du robot est lancé. Un nouvel appui sur ce même bouton B arrêtera le robot.

►Vérifie que lorsque tu appuies sur le bouton B, les LED s’affichent en vert, puis en rouge lors d’un nouvel appui.

Etape n°2 Menu pour calibrage du blanc du capteur RGB

Nous avons constaté que le calibrage du capteur RGB et de la balance des blancs doit être effectué en fonction des particularités du tapis ou de la lumière ambiante. Pour ce faire, le bouton A permet de lancer la demande de calibrage. L’appui sur le bouton A affiche un message pour confirmer l’opération. Ensuite, l’utilisateur doit effectuer un appui long sur le bouton B pour lancer l’opération de calibrage

► Opération en deux phases suite à l’appui sur le bouton A :

  • Calibrage du RGB par un double appui du bouton sur le capteur
  • Calibrage de la balance des blancs par un nouvel appui long du bouton A

Suite à nos différents tests, nous nous apercevons que le calibrage est primordial pour le bon fonctionnement du robot. D’ailleurs cette opération est bien prise en compte dans le règlement.

Place le dispositif RGB du robot sur une feuille blanche, puis utilise le bouton A pour calibrer le robot.

Grâce à l’utilisation du joystick, l’utilisateur peut modifier le sens du suivi de la ligne, soit à droite, soit à gauche. Un affichage confirme son choix.

►Par le joystick nous changeons l’affichage du suivi de ligne vers la droite ou vers la gauche.

Etape n°3 Suivi ligne noire

Pour le suivi de la ligne noire, les moteurs EM1 et EM2 sont utilisés. Deux variables, puissance_droite et puissance_gauche, permettent le paramétrage des deux moteurs. Le moteur droit EM2 est monté à l’envers sur le robot. Pour compenser cela, le paramétrage du moteur droit est multiplié par -1.

►Avec cette programmation, le robot doit avancer tout droit à la vitesse minimale mais il ne prend pas en compte la ligne noire. Nous devons utiliser les capteurs RGB pour que notre robot suive la ligne noire soit par la droite soit par la gauche.

L’unité pour faire tourner les moteurs du MBOT V2 est le tour par minute (RPM). La bibliothèque mblock utilise des valeurs comprises entre -100 et 100 pour contrôler la vitesse des moteurs, où -100 correspond à la vitesse maximale dans le sens inverse des aiguilles d’une montre, 0 correspond à l’arrêt et 100 correspond à la vitesse maximale dans le sens des aiguilles d’une montre.

Etape n°4 LEDs et suivi ligne noire par la droite

Les LED s’affichent en fonction de la détection de la ligne noire. Cette fonction affiche les LEDs sur des cas non traités par notre programme

La variable sens_ligne_noire détermine le sens du suivi de la ligne noire, soit par la droite (« D »), soit par la gauche (« G »).

En fonction de sens_ligne_noire, le robot suit la ligne noire en privilégiant les possibilités par la droite, soit les possibilités par la gauche. En fonction du sens de suivi de la ligne, le programme donne plus d’importance aux détecteurs RGB les plus extrêmes R2 ou L2.

Si le suivi de la ligne noire se fait par la droite, le programme donne plus d’importance au détecteur RGB R2 pour tourner à droite.

Si le suivi de la ligne noire se fait par la gauche, le programme donne plus d’importance au détecteur RGB L2 pour tourner à gauche.

Si les détecteurs R2 ou L2 ne détectent pas la ligne noire alors le robot doit suivre la ligne noire en avançant tout droit.

Pour tourner fortement à droite, le moteur droit tourne dans le sens contraire des aiguilles d’une montre et le moteur gauche tourne dans le sens des aiguilles d’une montre. Ainsi, le robot tourne sur place vers la droite.

Pour tourner fortement à gauche, le moteur gauche tourne dans le sens contraire des aiguilles d’une montre et le moteur droit tourne dans le sens des aiguilles d’une montre. Ainsi, le robot tourne sur place vers la gauche.

Le robot roule tout droit quand les détecteurs RGB R2 et L2 ne sont pas sollicités

►Le robot suit la ligne noire, soit par la droite, soit par la gauche. Cependant, le robot manque de précision sur des parcours d’une ligne noire avec des courbes ou des angles droits. Nous devons l’améliorer en prendre en compte les capteurs RGB R1 et L1.

Etape n°5 Suivi ligne noire plus précisément

En analysant plus finement les capteurs RGB R1 et L1, le suivi de la ligne noire est possible en maintenant le robot au centre de la ligne noire.

► Le robot suit la ligne noire, mais rencontre parfois des difficultés sur les angles droits. Nous avons effectué des tests avec différentes vitesses, mais la vitesse minimale de 30RPM semble être la plus sûre, tandis que la vitesse maximale de 40RPM permet une petite accélération en ligne droite.

Cependant, en fonction du poids du robot, de l’installation de la pince et de l’équilibrage du robot avec un poids à l’arrière, la vitesse minimale peut être amenée à changer. Nous devons donc être vigilants et ajuster la vitesse en fonction des modifications apportées au robot.

Etape n°6 Passage des plans inclinés

En utilisant l’accéléromètre du mBot, on peut détecter l’inclinaison du robot et ainsi ajuster la puissance en fonction de la pente : accélérer dans une montée et ralentir dans une descente.

► La plus grande difficulté rencontrée est l’équilibrage du robot. En effet, lorsque le robot monte une pente, les moteurs ont tendance à le déséquilibrer vers l’arrière. De plus, avec l’installation de la pince, le robot est déséquilibré vers l’avant. Pour pallier ce problème, nous avons mis en place un dispositif pour équilibrer le robot équipé de la pince en ajoutant un poids sur l’arrière du robot. Cela permet de stabiliser le robot et d’améliorer la performance du capteur RGB pour suivre la ligne noire dans les franchissements et les passages de pentes. Nous avons effectué plusieurs tests pour ajuster le poids et trouver le bon équilibre en fonction des différentes configurations rencontrées.

Etape n°7 Contournement d’un obstacle

Le robot détecte et évite les obstacles sur la ligne noire. Pour cela, le capteur sonore du mBot v2 est utilisé pour la détection de l’obstacle. Lorsqu’un obstacle est détecté, le robot s’arrête et attend un petit moment pour confirmer la détection. Cette double vérification permet d’éviter les faux positifs, par exemple lorsqu’un objet passe brièvement devant le capteur sans constituer un obstacle réel.

► Nous avons vérifié que le déplacement à droite ou à gauche ne dépasse pas 25 cm, comme demandé dans le règlement de la RoboCup. Cependant, la plus grande difficulté a été de reprendre la ligne noire en fonction de la configuration de celle-ci après l’obstacle. En effet, selon l’angle de sortie de l’obstacle et la position de la ligne noire, le robot peut avoir du mal à retrouver le tracé et à poursuivre le suivi de la ligne noire. Nous avons donc dû travailler sur les algorithmes afin de détecter la ligne et se positionner sur la ligne pour améliorer la performance du robot dans ces situations.

Etape n°8 Détection des indicateurs verts

Les indicateurs verts permettent de déterminer le sens de suivi de la ligne noire en fonction de leur position. Nous avons choisi d’utiliser les algorithmes de suivi par la droite ou par la gauche de la ligne noire. Si un indicateur vert est détecté sur les capteurs R1 ou R2 du RGB, la variable sens_suivi_ligne_noire est réglée sur « D » pour un suivi à droite. Si un indicateur vert est détecté sur les capteurs L1 ou L2 du RGB, la variable sens_suivi_ligne_noire est réglée sur « G » pour un suivi à gauche

► Notre dispositif ne prend pas en compte le cas d’une croix sans indicateur vert. Or, le règlement de la RoboCup demande que le robot roule tout droit dans cette situation. Actuellement, notre algorithme fait tourner le robot à droite ou à gauche en fonction de sa position. Nous devons donc prendre en compte cette alternative et modifier notre algorithme en conséquence pour que le robot suive les règles de la compétition.

Etape n°9 Gérer l’économie du robot

Comment économiser l’énergie du robot ? Deux voies possibles : éteindre les LED du dispositif RGB lorsque le robot n’utilise pas les capteurs pour le suivi de la ligne noire, et éteindre l’écran après un certain temps d’inactivité.

Les LED et l’écran sont des composants qui consomment de l’énergie. En les éteignant lorsqu’ils ne sont pas nécessaires, on peut réduire la consommation d’énergie du robot et prolonger son autonomie. Il est donc recommandé d’éteindre les LED du dispositif RGB lorsque le robot n’utilise pas les capteurs pour le suivi de la ligne noire, et d’éteindre l’écran après un certain temps d’inactivité, par exemple après 30 secondes sans interaction de l’utilisateur.

► L’économie de la batterie repose principalement sur l’extinction de l’écran lorsque le robot roule et sur l’extinction des LEDs du capteur RGB lorsque le robot est au repos. En effet, ces deux éléments sont des consommateurs importants d’énergie. En les éteignant lorsqu’ils ne sont pas nécessaires, nous pouvons prolonger l’autonomie de la batterie et ainsi améliorer les performances du robot pendant la compétition.

Catégories
MBOT Robotique

MBOT : Suivi ligne noire

Choix du bouton B pour démarrer le MBOT

Crée une nouvelle fonction « attente_bouton_relache » dans mes blocs :

Faire rouler tout droit le MBOT

Les deux moteurs EM1 et EM2 sont utilisés pour faire avancer le MBOT. Crée deux variables pour piloter les deux moteurs :

  • puissance_moteur_droit
  • puissance_moteur_gauche

Le moteur droit EM2 est monté à l’envers sur le robot. Pour compenser cela, le paramétrage du moteur droit est multiplié par -1. Crée une fonction pour le suivi de la ligne noire :

Teste ton robot : il doit avancer tout droit lorsque tu appuies sur le bouton B puis s’arrête lorsque tu réappuies sur le bouton B ou le bouton A.

►Avec cette programmation, le robot doit avancer tout droit mais il ne prend pas en compte la ligne noire. Nous devons utiliser les capteurs RGB pour que notre robot suive la ligne noire.

L’unité pour faire tourner les moteurs du MBOT V2 est le tour par minute (RPM). La bibliothèque mblock utilise des valeurs comprises entre -100 et 100 pour contrôler la vitesse des moteurs, où -100 correspond à la vitesse maximale dans le sens inverse des aiguilles d’une montre, 0 correspond à l’arrêt et 100 correspond à la vitesse maximale dans le sens des aiguilles d’une montre.

Suivre la ligne noire

Essaye le suivi de la ligne noire avec ces deux versions de MBOT.

Le MBOT de base avec son dispositif de rotule sur l’avant du robot. :

Et une autre version du MBOT avec 4 roues, deux dont toujours motrices avec l’ajout de cet axe fabriqué avec une imprimante 3D :

Tu vas constater des différences de comportement de ton robot notamment à cause du frottement sur le sol lors des virages des deux roues installées à l’avant du robot.

Etape n°1 Affichage et démarrage du robot sur le bouton B

Nous utilisons l’affichage du robot pour obtenir des informations primordiales afin d’optimiser son utilisation lors de la compétition. Ces informations comprennent :

  1. Le nom du robot, qui permet de l’identifier correctement et d’éventuellement reconnaître ses particularités physiques ;
  2. Un numéro de version du programme, qui nous assure du niveau du logiciel téléchargé sur le robot ;
  3. Le niveau de batterie, qui pourrait influencer le comportement du robot ;
  4. Le sens du suivi de la ligne noire, qui peut être modifié par le joystick soit par la droite, soit par la gauche.

Gestion des boutons A et B

À chaque interaction avec les boutons A ou B, nous vérifierons que l’utilisateur a bien relâché le bouton avant de commencer une nouvelle action.

En appuyant sur le bouton B, le suivi de ligne noire du robot est lancé. Un nouvel appui sur ce même bouton B arrêtera le robot.

►Vérifie que lorsque tu appuies sur le bouton B, les LED s’affichent en vert, puis en rouge lors d’un nouvel appui.

Etape n°2 Menu pour calibrage du blanc du capteur RGB

Nous avons constaté que le calibrage du capteur RGB et de la balance des blancs doit être effectué en fonction des particularités du tapis ou de la lumière ambiante. Pour ce faire, le bouton A permet de lancer la demande de calibrage. L’appui sur le bouton A affiche un message pour confirmer l’opération. Ensuite, l’utilisateur doit effectuer un appui long sur le bouton B pour lancer l’opération de calibrage

► Opération en deux phases suite à l’appui sur le bouton A :

  • Calibrage du RGB par un double appui du bouton sur le capteur
  • Calibrage de la balance des blancs par un nouvel appui long du bouton A

Suite à nos différents tests, nous nous apercevons que le calibrage est primordial pour le bon fonctionnement du robot. D’ailleurs cette opération est bien prise en compte dans le règlement.

Place le dispositif RGB du robot sur une feuille blanche, puis utilise le bouton A pour calibrer le robot.

Grâce à l’utilisation du joystick, l’utilisateur peut modifier le sens du suivi de la ligne, soit à droite, soit à gauche. Un affichage confirme son choix.

►Par le joystick nous changeons l’affichage du suivi de ligne vers la droite ou vers la gauche.

Etape n°3 Suivi ligne noire

Pour le suivi de la ligne noire, les moteurs EM1 et EM2 sont utilisés. Deux variables, puissance_droite et puissance_gauche, permettent le paramétrage des deux moteurs. Le moteur droit EM2 est monté à l’envers sur le robot. Pour compenser cela, le paramétrage du moteur droit est multiplié par -1.

►Avec cette programmation, le robot doit avancer tout droit à la vitesse minimale mais il ne prend pas en compte la ligne noire. Nous devons utiliser les capteurs RGB pour que notre robot suive la ligne noire soit par la droite soit par la gauche.

L’unité pour faire tourner les moteurs du MBOT V2 est le tour par minute (RPM). La bibliothèque mblock utilise des valeurs comprises entre -100 et 100 pour contrôler la vitesse des moteurs, où -100 correspond à la vitesse maximale dans le sens inverse des aiguilles d’une montre, 0 correspond à l’arrêt et 100 correspond à la vitesse maximale dans le sens des aiguilles d’une montre.

Etape n°4 LEDs et suivi ligne noire par la droite

Les LED s’affichent en fonction de la détection de la ligne noire. Cette fonction affiche les LEDs sur des cas non traités par notre programme

La variable sens_ligne_noire détermine le sens du suivi de la ligne noire, soit par la droite (« D »), soit par la gauche (« G »).

En fonction de sens_ligne_noire, le robot suit la ligne noire en privilégiant les possibilités par la droite, soit les possibilités par la gauche. En fonction du sens de suivi de la ligne, le programme donne plus d’importance aux détecteurs RGB les plus extrêmes R2 ou L2.

Si le suivi de la ligne noire se fait par la droite, le programme donne plus d’importance au détecteur RGB R2 pour tourner à droite.

Si le suivi de la ligne noire se fait par la gauche, le programme donne plus d’importance au détecteur RGB L2 pour tourner à gauche.

Si les détecteurs R2 ou L2 ne détectent pas la ligne noire alors le robot doit suivre la ligne noire en avançant tout droit.

Pour tourner fortement à droite, le moteur droit tourne dans le sens contraire des aiguilles d’une montre et le moteur gauche tourne dans le sens des aiguilles d’une montre. Ainsi, le robot tourne sur place vers la droite.

Pour tourner fortement à gauche, le moteur gauche tourne dans le sens contraire des aiguilles d’une montre et le moteur droit tourne dans le sens des aiguilles d’une montre. Ainsi, le robot tourne sur place vers la gauche.

Le robot roule tout droit quand les détecteurs RGB R2 et L2 ne sont pas sollicités

►Le robot suit la ligne noire, soit par la droite, soit par la gauche. Cependant, le robot manque de précision sur des parcours d’une ligne noire avec des courbes ou des angles droits. Nous devons l’améliorer en prendre en compte les capteurs RGB R1 et L1.

Etape n°5 Suivi ligne noire plus précisément

En analysant plus finement les capteurs RGB R1 et L1, le suivi de la ligne noire est possible en maintenant le robot au centre de la ligne noire.

► Le robot suit la ligne noire, mais rencontre parfois des difficultés sur les angles droits. Nous avons effectué des tests avec différentes vitesses, mais la vitesse minimale de 30RPM semble être la plus sûre, tandis que la vitesse maximale de 40RPM permet une petite accélération en ligne droite.

Cependant, en fonction du poids du robot, de l’installation de la pince et de l’équilibrage du robot avec un poids à l’arrière, la vitesse minimale peut être amenée à changer. Nous devons donc être vigilants et ajuster la vitesse en fonction des modifications apportées au robot.

Etape n°6 Passage des plans inclinés

En utilisant l’accéléromètre du mBot, on peut détecter l’inclinaison du robot et ainsi ajuster la puissance en fonction de la pente : accélérer dans une montée et ralentir dans une descente.

► La plus grande difficulté rencontrée est l’équilibrage du robot. En effet, lorsque le robot monte une pente, les moteurs ont tendance à le déséquilibrer vers l’arrière. De plus, avec l’installation de la pince, le robot est déséquilibré vers l’avant. Pour pallier ce problème, nous avons mis en place un dispositif pour équilibrer le robot équipé de la pince en ajoutant un poids sur l’arrière du robot. Cela permet de stabiliser le robot et d’améliorer la performance du capteur RGB pour suivre la ligne noire dans les franchissements et les passages de pentes. Nous avons effectué plusieurs tests pour ajuster le poids et trouver le bon équilibre en fonction des différentes configurations rencontrées.

Etape n°7 Contournement d’un obstacle

Le robot détecte et évite les obstacles sur la ligne noire. Pour cela, le capteur sonore du mBot v2 est utilisé pour la détection de l’obstacle. Lorsqu’un obstacle est détecté, le robot s’arrête et attend un petit moment pour confirmer la détection. Cette double vérification permet d’éviter les faux positifs, par exemple lorsqu’un objet passe brièvement devant le capteur sans constituer un obstacle réel.

► Nous avons vérifié que le déplacement à droite ou à gauche ne dépasse pas 25 cm, comme demandé dans le règlement de la RoboCup. Cependant, la plus grande difficulté a été de reprendre la ligne noire en fonction de la configuration de celle-ci après l’obstacle. En effet, selon l’angle de sortie de l’obstacle et la position de la ligne noire, le robot peut avoir du mal à retrouver le tracé et à poursuivre le suivi de la ligne noire. Nous avons donc dû travailler sur les algorithmes afin de détecter la ligne et se positionner sur la ligne pour améliorer la performance du robot dans ces situations.

Etape n°8 Détection des indicateurs verts

Les indicateurs verts permettent de déterminer le sens de suivi de la ligne noire en fonction de leur position. Nous avons choisi d’utiliser les algorithmes de suivi par la droite ou par la gauche de la ligne noire. Si un indicateur vert est détecté sur les capteurs R1 ou R2 du RGB, la variable sens_suivi_ligne_noire est réglée sur « D » pour un suivi à droite. Si un indicateur vert est détecté sur les capteurs L1 ou L2 du RGB, la variable sens_suivi_ligne_noire est réglée sur « G » pour un suivi à gauche

► Notre dispositif ne prend pas en compte le cas d’une croix sans indicateur vert. Or, le règlement de la RoboCup demande que le robot roule tout droit dans cette situation. Actuellement, notre algorithme fait tourner le robot à droite ou à gauche en fonction de sa position. Nous devons donc prendre en compte cette alternative et modifier notre algorithme en conséquence pour que le robot suive les règles de la compétition.

Etape n°9 Gérer l’économie du robot

Comment économiser l’énergie du robot ? Deux voies possibles : éteindre les LED du dispositif RGB lorsque le robot n’utilise pas les capteurs pour le suivi de la ligne noire, et éteindre l’écran après un certain temps d’inactivité.

Les LED et l’écran sont des composants qui consomment de l’énergie. En les éteignant lorsqu’ils ne sont pas nécessaires, on peut réduire la consommation d’énergie du robot et prolonger son autonomie. Il est donc recommandé d’éteindre les LED du dispositif RGB lorsque le robot n’utilise pas les capteurs pour le suivi de la ligne noire, et d’éteindre l’écran après un certain temps d’inactivité, par exemple après 30 secondes sans interaction de l’utilisateur.

► L’économie de la batterie repose principalement sur l’extinction de l’écran lorsque le robot roule et sur l’extinction des LEDs du capteur RGB lorsque le robot est au repos. En effet, ces deux éléments sont des consommateurs importants d’énergie. En les éteignant lorsqu’ils ne sont pas nécessaires, nous pouvons prolonger l’autonomie de la batterie et ainsi améliorer les performances du robot pendant la compétition.

Catégories
MBOT Robotique

MBOT Prise en main

MBOT DESCRIPTION

Sur l’interface de programmation MBLOCK installer les trois options :

  • mBot2 shield
  • Ultrasonic Sensor 2
  • Quad RGB Sensor

Le dispositif CyberPi

  • Écran couleur, offrant des interfaces utilisateur conviviales pour l’interaction homme-machine
  • Système CyberOS, vous permettant d’exécuter les programmes prédéfinis, de définir la langue du système et de mettre à jour le système via le joystick et les boutons intégrés
  • Un port Micro USB (Type-C) pour la connexion aux PC pour l’alimentation et la communication
  • Un port de module électronique pour connecter des modules électroniques
  • Un port de carte d’extension pour la connexion aux cartes d’extension
  • Plusieurs capteurs intégrés, tels qu’un capteur de lumière et un gyroscope, qui fournissent plusieurs types de sortie de données

Capteur RVB pour le suivi de la ligne noire

Plage de détection : 5 à 15 mm de l’objet à détecter

Apprentissage RVB

Double pression : lorsque vous appuyez deux fois sur le bouton, le capteur quad RVB commence à mémoriser les valeurs des couleurs de l’arrière-plan (le blanc) et de la ligne noire pour le suivi de ligne. Pour effectuer cette opération, placez les capteurs de lumière sur le parcours avec une ligne noire et appuyez deux fois sur le bouton. Lorsque vous voyez les LED clignoter rapidement, faites glisser les capteurs RVB d’un côté à l’autre au-dessus de la ligne noire sur le fond blanc du parcours pendant environ 2,5 secondes. Les valeurs des paramètres obtenues sont automatiquement stockées.

Si l’apprentissage échoue, les LED clignotent lentement et vous devez recommencer l’apprentissage.

Les instructions à connaitre

Pour détecter la ligne noire nous avons utilisé les instructions suivantes :

Pour mesurer les deux capteurs du centre :

Pour mesurer les quatre capteurs :

Pour mesurer un capteur :

En mesurant la ligne noire, ou le fond ou une couleur :

Les différents cas de détection de la ligne noire :

Capteur ultrasons

Le capteur à ultrasons 2 peut être utilisé pour détecter la distance entre un obstacle et celui-ci. L’émetteur de gauche transmet les ondes ultrasonores et le récepteur de droite reçoit les ondes ultrasonores réfléchies.

Les êtres humains peuvent entendre des sons de 20 à 20 000 Hz. Les ondes sonores dont les fréquences sont supérieures à 20 000 Hz sont appelées ondes ultrasonores. Les ondes sonores sont réfléchies par les obstacles rencontrés et sont reçues par le récepteur du capteur à ultrasons. En fonction du temps écoulé entre l’émission et la réception, les distances entre le capteur à ultrasons et les obstacles peuvent être calculées.

Présence d’un obstacle :

Distance avec un obstacle 

Gestion des deux moteurs encodeurs

Un moteur électrique encodeur est un moteur équipé d’un dispositif appelé encodeur. L’encodeur est un capteur qui mesure la position angulaire ou la vitesse de rotation du moteur. Il fournit des informations précises sur la position du moteur, ce qui est essentiel pour contrôler avec précision le mouvement du robot.

EM1 : correspond au moteur gauche

EM2 : correspond au moteur droit (attention il est monté à l’envers, pour le faire avancer mettre un nombre négatif)

Gestion des événements