Robot explorateur
L'objectif de ce projet est de programmer un robot pour qu'il parcoure la pièce dans laquelle il se trouve (éventuellement avec l'aide d'un autre robot) et qu'il en établisse une carte, qu'il affichera ensuite sur son écran (et éventuellement sur l'écran d'un ordinateur avec lequel il communique par bluetooth).
Le robot
Le robot est constitué des éléments suivants :
- deux roues motrices commandées par deux moteurs synchronisés au moyen de méthodes simples (forward, backward, travel(distance), rotate(angle), etc.)
- un capteur à ultrasons pour mesurer la distance entre le robot et le plus proche obstacle.
- un moteur pour orienter le capteur à ultrasons autour d'un axe vertical (de 0 à 360°)
- un capteur boussole pour déterminer l'orientation du capteur à ultrasons
- en option : un capteur de contact, pour déterminer si le robot touche un obstacle
La carte
La manière dont la carte sera représentée dans la mémoire de travail du robot et sur l'écran, est laissée libre.
Une possibilité est d'utiliser une grille, dont chaque case aura l'une des propriétés suivantes :
- inexplorée
- libre
- obstacle
Il faudra s'accorder sur une condition pour considérer que la pièce a été suffisamment explorée (une proportion de cases explorées, une proportion de cases libres, etc.)
Les ajustements
Les différents composants du robots se commandent au moyen de méthodes simples. La difficulté principale du travail avec un robot vient de des situations difficiles à anticiper du fait de l'environnement :
- Les erreurs s'accumulent (L'angle de rotation n'est jamais exact, la ligne droite ne l'est jamais tout à fait, les erreurs s'accumulent)
- Une partie du robot a touché un obstacle sans que les capteurs le détectent, ce qui l'a fortement dévié de la route qu'il a calculée, sans qu'il s'en rende compte
- etc.
Il faudra donc mettre au point des stratégies pour vérifier la fiabilité des mesures (repasser plusieurs fois par le même chemin, etc.) C'est là que l'utilisation d'un deuxième robot peut être très utile : par exemple un robot qui reste immobile et vers lequel le robot explorateur revient régulièrement pour s'assurer qu'il n'a pas trop dévié.