Instrument2012-1

De Wiki de bureau d'études PeiP
Révision datée du 28 février 2013 à 15:33 par Aboe (discussion | contributions) (Avancée du 04/02/2013)

Robot navigant aux instruments - 2012/2013

Version 2.25.5, mise à jour le 25/02/2013 à 09:49


Enjeux et objectifs

Nous devons doter notre robot d'une boussole ou d'un gyroscope pour lui permettre de connaitre précisément sa direction. /* attention le gyroscope renvoie la valeur de vitesse angulaire et la boussole un cap, pas une position */

  • Nous commencerons par faire en sorte que notre robot sache avancer en ligne droite, pour cela nous utiliserons le contrôle PID. Nous allons pour cela effectuer des corrections sur la trajectoire en utilisant des rotations. L'angle de ces rotations va être calculé en fonction de l'erreur de trajectoire indiqué par l'instrument. Plus exactement par la somme d'une constante multipliée par l'erreur instantanée, d'une autre constante multipliée par l'intégrale de l'erreur et enfin d'une dernière constante multipliée par la dérivée de l'erreur. A vous de trouver les valeurs adaptées des trois constantes. /* Non merci, ce n'est pas à nous de trouver ... */
  • Nous ferons ensuite en sorte que notre robot sache contourner les obstacles au plus juste. Au plus juste signifiant qu'il tournera vers la droite ou vers la gauche en jugeant où se trouve le chemin le plus libre. L'algorithme à appliquer consiste à tourner le robot d'un angle faible dans un sens puis dans l'autre et de lire les résultats du sonar. Si les deux mesures indiquent un obstacle trop proche, l'angle est augmenté et le procédé répété. Dès qu'une trajectoire indique un chemin libre ou du moins un obstacle à distance suffisante, le robot avance en ligne droite suivant cette trajectoire. L'instrument doit être utilisée ici pour vérifier que le robot effectue précisément des rotations des angles souhaités et qu'il sache revenir en position initiale pour éventuellement recommencer avec un angle plus grand.
  • Pour permettre de suivre le comportement du robot, nous afficherons sur la brique de contrôle MindStorm l'angle de rotation pour le dernier contournement et la distance parcourue le long de la dernière ligne droite.

Nous intégrerons ces comportements pour obtenir un robot capable de contourner les obstacles avec un minimum d'intelligence.

Voici un exemple de contournement d'obstacle avec l'algorithme décrit.

Problèmes rencontrés et solutions apportées

Nous avons rencontré plusieurs problèmes tout au long de notre projet. Nous nous sommes efforcé soit de les résoudre, soit de les contourner en utilisant d'autres moyens pour arriver à nos fin, notamment sur l'aspect le plus ardu : la programmation.

  • Problème #1 : Absence d'espace libre sur le robot dans le montage initial pour insérer la foxboard.
    • Solution apportée : Création d'un espace de stockage à l'arrière du robot.
  • Problème #2 : Le logiciel de programmation par blocs, bien qu'intuitif, ne nous permet pas d'arriver au degré de complexité auquel nous voudrions mener le robot.
    • Solution apportée : Passage à la programmation par lignes de code en langage NXC.
  • Problème #3 : La difficulté d'intégration du gyroscope et ses valeurs variant trop rapidement le rendent trop compliqué à utiliser.
    • Solution apportée : Malgré le passage en "lowspeed" du capteur, il demeure compliqué, pour le moment. Nous préférerons d'abord travailler avec le compas, pour travailler avec les angles, plutôt que les vitesses de rotations.
  • Problème #4 : Le robot semble avoir du mal à gérer le calcul des angles ET la rotation de ses moteurs.
    • Solution apportée : Allègement du programme. Le robot semble désormais mieux se comporter et fait ce qu'on lui demande sans négliger de commandes.

Avancées du projet

Avancée du 28/01/2013

  • Création de la page wiki du projet.
  • Montage du robot.

Avancée du 31/01/2013

  • Fin du montage du robot.
  • Câblage.
  • Découverte et utilisation du logiciel de programmation par blocs (Lego Mindstorms NXT).

{VIDEOS}

  • Découverte du logiciel de programmation par ligne de code en NXC (Bricx).

Avancée du 04/02/2013

  • Test de plusieurs lignes de codes NXC sur le logiciel (Bricx)
    • Ligne droite
    • Rotation sur lui-même
    • Détection d'obstacle : réponse en tournant vers la gauche pour éviter
    • Rotation de la "tête" (capteur US) sur 120° et adaptation (changement de hauteur du capteur pour éviter la collision avec les puces ultérieurement... /* en introduction vous parlez de la rotation du robot entier ... */
  • Implémentation du contrôle PID (Rotation de la tête) '/* partie à développer */
  • Réalisation d'un programme permettant au robot de capter les obstacles dans un champ de 120 degré par la rotation de la tête, et contournement de ces derniers. /* idem */

Avancée du 25/02/2013

  • Avancées majeures de la page du projet
  • Création d'un tâche sensor qui affiche le cap sur l'écran
  • La tâche sensor assure aussi une rotation de la tête du robot pour intégrer, au futur, la possibilité de choisir le chemin le plus dégagé.