Vai al contenuto principale

Navigazione GPS

Crea un algoritmo per guidare l'Hero Bot verso una posizione specifica sul campo. Utilizza i blocchi [Guida per] e [Gira verso la direzione], il sensore GPS, il motore del braccio e il motore di aspirazione per guidare l'Hero Bot nella posizione situata a (1380,-1380) per raccogliere il Triballe evidenziato in rosso. Quindi guida il robot nella posizione situata in (600,-300) e segna il punto Triballe nell'obiettivo dell'Alleanza Rossa.

  • Seleziona VRC Virtual Skills - Over Under Playground.
  • Utilizzare la checklist pre-partita per selezionare Posizione di partenza "H", SDirezione di partenza "Nord"e Precarico robot "No" per il robot.
  • Crea un algoritmo per guidare il robot verso una posizione specifica.
  • Programma il robot in modo che faccia girare il motore del braccio per abbassarlo completamente e raccogliere un Triballe sul campo.
  • Utilizza l'algoritmo per guidare il robot alle coordinate (1380, -1380) e ruotarlo in direzione 135 gradi.
  • Programma il robot in modo che faccia girare il motore di aspirazione per raccogliere il Triballe Verde evidenziato in rosso.
  • Utilizza l'algoritmo per guidare il robot alle coordinate (600, -300) e ruotarlo di 90 gradi.
  • Programma il robot per far girare il motore di aspirazione per lanciare il Triball verso l'obiettivo dell'Alleanza Rossa. 

Suggerimenti utili

  • Utilizza il sensore GPS per identificare le coordinate X e Y dell'Hero Bot sul campo. Per ulteriori informazioni sull'utilizzo del sensore GPS nel parco giochi VRC Over Under, fare qui.
  • Utilizza i blocchi Reporter della categoria Rilevamento per ottenere i valori di posizione dal sensore GPS.

    Blocco posizione GPS VEXcode che legge 'posizione GPS X in mm'.

    Blocco posizione GPS VEXcode che legge 'posizione GPS Y in mm'.

    • Comando Python corrispondente:

      posizione_x_gps(MM)
      posizione_y_gps(MM)
  • Utilizza i blocchi set della categoria Variabili per dichiarare due variabili che memorizzeranno le coordinate X e Y originali dell'Hero Bot.

    Stack di blocchi di variabili VEXcode. Il primo blocco legge 'imposta X1 alla posizione GPS X in mm'. Il secondo blocco legge 'imposta Y1 alla posizione GPS Y in mm'.

    • Comando Python corrispondente:

      X1 = posizione_x_gps (MM)
      Y1 = posizione_y_gps (MM)
  • Per assistenza sulla dichiarazione di una variabile e sul salvataggio dei dati nel progetto, selezionare il pulsante "TUTORIAL" in VEXcode VR e scegliere il tutorial Salvataggio dati.

    Icona dei tutorial dalla barra degli strumenti VR di VEXcode.

    Icona del tutorial di VEXcode VR sull'archiviazione dei dati.

  • Per ulteriori informazioni sulle regole di denominazione delle variabili in VEXcode VR, questo.
  • Utilizzare le coordinate del robot (x1,y1), le coordinate della posizione di destinazione (x2,y2) e la funzione tangente per determinare la direzione di guida.
    • Calcola l'angolo theta θ della retta che congiunge questi due punti.

      Diagramma di due espressioni matematiche. La prima espressione recita 'theta è uguale a atan((y2 - y1) / (x2 - x1))'. La seconda espressione recita 'meno pi / 2 è minore di theta, che è minore di pi / 2'.

      Il diagramma matematico dall'alto verso il basso mostra il robot alle coordinate (X1, Y1) e una linea che punta verso le coordinate (X2, Y2). La distanza è indicata con la variabile d, l'angolo con la variabile theta. La distanza orizzontale tra i punti è rappresentata come 'x2 - x1', e la distanza verticale è rappresentata come 'y2 - y1'.

    • Convertire l'angolo theta θ in direzione di guida.

      Esempio di pseudocodice per l'espressione matematica (Direzione di partenza: Nord):

      se X1 è uguale a X2:
      	se Y2 > Y1:
      		direzione = 0
      	altrimenti:
      		direzione = 180
      altrimenti:
      	se X2 > X1:
      		direzione = 90 - atan((Y2 - Y1) / (X2 - X1))
      	altrimenti:
      		direzione = 270 - atan((Y2 - Y1) / (X2 - X1))
    • Il diagramma dall'alto mostra il robot all'interno di un cerchio con etichette che indicano i lati'a 360 gradi.
  • Utilizza il blocco funzione dalla categoria Operatori e seleziona la funzione atan per calcolare l'angolo theta θ

    Blocco funzione VEXcode vuoto che legge 'atan di uno spazio vuoto pari'.

    • Comando Python corrispondente:

      math.atan() / math.pi * 180
  • Utilizza le coordinate del robot (x1,y1), le coordinate della posizione di destinazione (x2,y2) e il teorema di Pitagora per calcolare la distanza percorsa.

    L'espressione matematica è 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    Lo stesso diagramma dall'alto di prima che mostra la differenza tra due coordinate. Il robot si trova alle coordinate (X1, Y1) e una linea punta verso le coordinate (X2, Y2). La distanza è indicata con la variabile d, l'angolo con la variabile theta. La distanza orizzontale tra i punti è rappresentata come 'x2 - x1', e la distanza verticale è rappresentata come 'y2 - y1'.

  • Utilizzare il blocco funzione dalla categoria Operatori e selezionare la funzione sqrt per calcolare la distanza percorsa.

    Blocco funzione VEXcode vuoto che legge 'sqrt di' vuoto.

    • Comando Python corrispondente:

      math.sqrt()