Étape 7: Robot de programme
Dans notre première implémentation, nous allons essayer de réaliser suivant :
- éviter les obstacles
- éviter les bords de la table
Vous êtes limité à n'utiliser qu’un seul capteur.
Dans la première photo vous pouvez voir que dans l’état normal lorsque le robot se déplace le long de la surface, la distance de l’obstacle le plus proche est égale à la distance de la surface elle-même.
Si notre robot atteindra quelque objet se trouvant sur la surface, la distance est bien en deçà de la distance par défaut à la surface (Lmax).
Donc la meilleure façon d’atteindre notre objectif premier est de garder notre robot se déplaçant dans cette gamme de distance.
De même, vous pouvez rejoindre le deuxième but - éviter les bords de la table. Si la distance est supérieure à Lmax, il est plus probable que le robot est mise en scène au bord de la table.
Commençons par définir deux règles fondamentales :
- Quand la distance de l’obstacle (D) au sein de la gamme Lmin et Lmax robot se déplace vers l’avant
- Lorsque D est supérieur à Lmax ou inférieur Lmin robot tournera jusqu'à ce qu’il trouve la direction avec D se trouvant dans la gamme sûre
Le robot a 2 roues. Il conduira au titre de l’algorithme de base pour un robot - commande différentielle :
- pour continuer tout droit, les deux roues avancer à vitesse égale
- pour faire marche arrière, les deux roues reculer à vitesse égale
- pour tourner à gauche, la roue de gauche se déplace en marche arrière et la roue droite se déplace vers l’avant
- pour tourner à droite, la roue droite se déplace en marche arrière et la roue de gauche se déplace vers l’avant
Dans votre cas servos sont placés dans des directions opposées alors que pour l’un d'entre eux robot avant déplacement signifie rotation vers la droite, pour un autre - dans le sens anti-horaire. Essayez de garder cela à l’esprit.
Jetez un oeil à l' exemple de croquis, essayez-le et commencer à appliquer le comportement personnalisé !