Activité pratique

Objectif : programmer un robot pour que depuis un point A, il se rende à un point B, en évitant des obstacles !

Mouvement

Les robots AlphaBot et LEGO-NXshield sont des robots à mouvement différentiel : deux moteurs pour actionner indépendamment deux roues coaxiales.

On supposera que chaque roue R de centre O et de rayon r roule sans glisser , au point de contact A sur le sol S !

Lorsque la roue ne touche pas le sol, déterminer la relation entre la vitesse angulaire d’une roue \omega_R (en rad/s) et la vitesse d’un point A de sa circonférence, notée V_{A,R/S}.

 

En déduire l’expression de la vitesse du centre de la roue du robot V_{O,R/S} en fonction de la vitesse angulaire angulaire de cette roue \omega_R.

 

 

 

Le schéma ci-dessous représente le robot vu de dessus, ainsi que la trajectoire de son centre C et les vitesses des centres de ses roues, O_G et O_D :

La distance O_GO_D s’appelle la voie du robot, on la notera b.

Déterminer les lois portant sur les vitesses angulaires des roues, permettant d’obtenir chacun des mouvements suivants :

  • translation rectiligne
  • rotation autour du point C
  • rotation autour d’un point I (rayon IC=R)

en fonction de la voie b (), du rayon des roues r et de la vitesse souhaitée du centre C du robot.

 

A présent que l’on sait comment régler les vitesses pour obtenir les mouvement souhaités, il faut déterminer les angles à parcourir pour obtenir les déplacements attendus.

Déterminer les lois portant sur les déplacements angulaires des roues, permettant d’obtenir chacun des déplacement suivants :

  • translation rectiligne sur une distance d
  • rotation autour du point C d’un angle /alpha
  • rotation autour d’un point I (rayon IC=R) d’un angle /alpha

en fonction de la voie b (), du rayon des roues r et de la vitesse souhaitée du centre C du robot.

 

Il est temps d’expérimenter cela :

Programmer le robot pour réaliser tour à tour les mouvements suivants :

  • Faire avancer le robot en ligne droite pendant 1 seconde.
  • Faire avancer le robot selon une trajectoire circulaire de rayon 1m pendant 1 seconde.
  • Faire tourner le robot sur lui même pendant 1 seconde.

Est-ce que tout se passe comme prévu ? Les trajectoires sont-elles telles qu’attendu ? Les distances parcourues en 1 seconde sont-elles toujours identiques ?

Pour remédier aux problèmes constatés, il est nécessaire de piloter les moteurs : les commander en tenant compte de leur angle de rotation.

Pour connaitre l’angle parcouru par un motoréducteur (moteur+réducteur de vitesse), les robots sont équipés de codeurs incrémentaux.

Pour les utiliser, consulter les pages dédiées aux codeurs pour l’Alphabot ou le LEGO-NXshield.

Reprogrammer le robot pour réaliser tour à tour les mouvements suivants :

  • Faire avancer le robot en ligne droite sur 1 mètre.
  • Faire avancer le robot selon une trajectoire circulaire de rayon 1m, sur un tour complet.
  • Faire tourner le robot d’un tour complet sur lui même.

 

Parcours en aveugle

L’objectif à présent est de faire faire au robot un parcours prédéfini, tel que le robot retrouve sa position et son orientation initiales.

Programmer le robot pour qu’il réalise le parcours suivant :

  • Avancer d’un mètre en ligne droite,
  • Opérer un quart de tour vers la droite,
  • Réaliser une trajectoire circulaire de diamètre égal à un mètre pour revenir à la position initiale,
  • Opérer un dernier quart de tour vers la droite afin de retrouver l’orientation initiale.

Est-ce que le robot retrouve bien sa position et son orientation initiales ?

 

Pour remédier aux inévitables problèmes de positionnement, il faut doter le robot:

  • d’un moyen d’éviter les obstacles,
  • d’un moyen de se repérer de manière absolue.

 

 

Détection d’obstacle

Consulter les pages relatives aux capteurs de détection d’obstacle pour l’AlphaBot ou pour le LEGO-NXshield.

Programmer le robot de telle sorte que s’il rencontre un obstacle sur sa trajectoire, il réalise une procédure d’évitement, puis reprenne sa trajectoire initiale.

 

Suivi d’une ligne

Consulter les pages relatives aux capteurs de détection de ligne pour l’AlphaBot ou pour le LEGO-NXshield.

Programmer le robot de telle sorte qu’il soit capable de suivre une ligne dessinée sur le sol.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code