Passer au contenu principal

Navigation GPS

Créez un algorithme pour guider le Hero Bot vers une position spécifique sur le terrain. Utilisez les blocs [Conduire pour] et [Tourner vers le cap], le capteur GPS, le moteur du bras et le moteur d'admission pour conduire le Hero Bot jusqu'à la position située à (1380,-1380) pour ramasser le Triball mis en évidence en rouge. Conduisez ensuite le robot jusqu'à la position située à (600,-300) et marquez le Triball dans le but de l'Alliance Rouge.

  • Sélectionnez le terrain de jeu virtuel VRC - Over Under.
  • Utilisez la liste de contrôle d'avant-match pour sélectionner Emplacement de départ « H », SDirection de départ « Nord », et Préchargement du robot « Non » pour le robot.
  • Créez un algorithme pour guider le robot vers une position spécifique.
  • Programmez le robot pour qu'il fasse tourner le moteur du bras afin d'abaisser complètement ce dernier et de ramasser une balle Triball sur le terrain.
  • Utilisez l'algorithme pour faire naviguer le robot jusqu'aux coordonnées (1380, -1380) et orienter le robot vers un cap de 135 degrés.
  • Programmez le robot pour qu'il fasse tourner le moteur d'admission afin de ramasser la Triball verte surlignée en rouge.
  • Utilisez l'algorithme pour faire naviguer le robot jusqu'aux coordonnées (600, -300) et tournez le robot vers un cap de 90 degrés.
  • Programmez le robot pour qu'il fasse tourner le moteur d'admission afin de propulser le Triball vers l'objectif de l'Alliance Rouge. 

Conseils utiles

  • Utilisez le capteur GPS pour identifier les coordonnées X et Y du robot héros sur le terrain. Pour plus d'informations sur l'utilisation du capteur GPS dans le terrain de jeu VRC Over Under, veuillez cliquer ici
  • Utilisez les blocs Reporter de la catégorie Détection pour obtenir les valeurs de position du capteur GPS.

    Bloc de position GPS VEXcode qui lit la position GPS 'X en mm'.

    Bloc de position GPS VEXcode qui lit 'Position GPS Y en mm'.

    • Commande Python correspondante :

      gps.x_position(MM)
      gps.y_position(MM)
  • Utilisez les blocs et de la catégorie Variables pour déclarer deux variables afin de stocker les coordonnées X et Y d'origine du Hero Bot.

    Pile de blocs de variables VEXcode. Le premier bloc indique 'définir X1 sur la position GPS X en mm'. Le deuxième bloc indique 'définir Y1 sur la position GPS Y en mm'.

    • Commande Python correspondante :

      X1 = gps.x_position(MM)
      Y1 = gps.y_position(MM)
  • Pour obtenir de l'aide sur la déclaration d'une variable et le stockage de données dans le projet, veuillez sélectionner le bouton « TUTORIELS » dans VEXcode VR et choisir le Stockage de données Tutoriel.

    Icône Tutoriels de la barre d'outils VR de VEXcode.

    Icône du tutoriel VEXcode VR sur le stockage des données.

  • Pour plus d'informations sur les règles de nommage des variables dans VEXcode VR, consulter cet article.
  • Utilisez les coordonnées du robot (x1,y1), les coordonnées de la position cible (x2,y2) et une fonction atan pour trouver le cap d'entraînement.
    • Calculez l'angle theta θ de la droite reliant ces deux points.

      Diagramme de deux expressions mathématiques. La première expression se lit 'theta est égal à atan((y2 - y1) / (x2 - x1))'. La deuxième expression se lit comme suit : 'moins pi / 2 est inférieur à theta, qui est inférieur à pi / 2'.

      Le diagramme mathématique vu de dessus montre le robot aux coordonnées (X1, Y1) et une ligne pointe vers les coordonnées (X2, Y2). La distance est désignée par la variable d, l'angle par la variable theta. La distance horizontale entre les points est représentée par 'x2 - x1', et la distance verticale est représentée par 'y2 - y1'.

    • Convertissez l'angle theta θ en cap.

      Exemple de pseudocode pour l'expression mathématique (Direction de départ : Nord) :

      Si X1 = X2 :
      	si Y2 > Y1 :
      		titre = 0
      	sinon :
      		titre = 180
      sinon :
      	si X2 > X1 :
      		titre = 90 - atan((Y2 - Y1) / (X2 - X1))
      	sinon :
      		titre = 270 - atan((Y2 - Y1) / (X2 - X1))
    • Le schéma vu de dessus montre le robot à l'intérieur d'un cercle comportant des étiquettes marquant le cercle'à 360 degrés.
  • Utilisez le bloc de fonction de la catégorie Opérateurs et sélectionnez la fonction atan pour calculer l'angle theta θ

    Bloc de fonction VEXcode vide qui lit 'à partir de' vide.

    • Commande Python correspondante :

      math.atan() / math.pi * 180
  • Utilisez les coordonnées du robot (x1,y1), les coordonnées de la position cible (x2,y2) et le théorème de Pythagore pour trouver la distance de déplacement.

    L'expression mathématique se lit 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    Le même schéma vu de dessus qu'auparavant montre la différence entre deux coordonnées. Le robot se trouve aux coordonnées (X1, Y1) et une ligne pointe vers les coordonnées (X2, Y2). La distance est désignée par la variable d, l'angle par la variable theta. La distance horizontale entre les points est représentée par 'x2 - x1', et la distance verticale est représentée par 'y2 - y1'.

  • Utilisez le bloc de fonction de la catégorie Opérateurs et sélectionnez la fonction sqrt pour calculer la distance parcourue.

    Bloc de fonction VEXcode vide qui lit 'racine carrée de' vide.

    • Commande Python correspondante :

      math.sqrt()