Zum Hauptinhalt springen

GPS-Navigation

Entwickle einen Algorithmus, der den Hero Bot zu einer bestimmten Position auf dem Spielfeld navigiert. Benutze die Blöcke [Drive for] und [Turn to heading], den GPS-Sensor, den Armmotor und den Ansaugmotor, um den Hero Bot zur Position (1380,-1380) zu fahren und den rot markierten Triball aufzusammeln. Steuern Sie den Roboter anschließend zur Position (600, -300) und erzielen Sie einen Treffer mit dem Triball im Tor der Roten Allianz.

  • Wählen Sie den VRC Virtual Skills - Over Under Playground aus.
  • Verwenden Sie die Checkliste vor dem Spiel, um für den Roboter Startposition „H“, SStartrichtung „Nord“und Roboter-Vorladung „Nein“ auszuwählen.
  • Entwickeln Sie einen Algorithmus, der den Roboter zu einer bestimmten Position navigiert.
  • Programmiere den Roboter so, dass er den Armmotor dreht, um den Arm vollständig abzusenken und so einen Triball auf dem Spielfeld aufzuheben.
  • Verwenden Sie den Algorithmus, um den Roboter zu den Koordinaten (1380, -1380) zu navigieren und den Roboter auf einen Kurs von 135 Grad zu drehen.
  • Programmiere den Roboter so, dass er den Aufnahmemotor dreht, um den rot markierten grünen Triball aufzunehmen.
  • Verwenden Sie den Algorithmus, um den Roboter zu den Koordinaten (600, -300) zu navigieren und den Roboter um 90 Grad zu drehen.
  • Programmiere den Roboter so, dass er den Ansaugmotor dreht, um den Triball zum Ziel der Roten Allianz zu befördern. 

Hilfreiche Tipps

  • Verwenden Sie den GPS-Sensor, um die X- und Y-Koordinaten des Hero Bots auf dem Spielfeld zu ermitteln. Für weitere Informationen zur Verwendung des GPS-Sensors im VRC Over Under Playground klicken Sie bitte hier
  • Verwenden Sie die Reporterblöcke aus der Kategorie Sensorik, um Positionswerte vom GPS-Sensor zu erhalten.

    VEXcode GPS-Positionsblock, der 'GPS-Position X in mm' liest.

    VEXcode GPS-Positionsblock, der 'GPS-Position Y in mm' liest.

    • Passender Python-Befehl:

      gps.x_position(MM)
      gps.y_position(MM)
  • Verwenden Sie die Blöcke Set aus der Kategorie „Variablen“, um zwei Variablen zu deklarieren, in denen die ursprünglichen X- und Y-Koordinaten des Heldenbots gespeichert werden.

    Stapel von VEXcode Set-Variablenblöcken. Der erste Block lautet: 'setze X1 auf GPS-Position X in mm'. Der zweite Block liest 'set Y1 to GPS position Y in mm'.

    • Passender Python-Befehl:

      X1 = gps.x_position(MM)
      Y1 = gps.y_position(MM)
  • Hilfe zum Deklarieren einer Variablen und zum Speichern von Daten im Projekt erhalten Sie, indem Sie in VR auf die Schaltfläche „TUTORIALS“ klicken und das Tutorial „Daten speichern auswählen.

    Tutorial-Symbol aus der VEXcode VR-Toolbar.

    Symbol für das Tutorial zum Speichern von Daten in VEXcode VR.

  • Weitere Informationen zu den Namensregeln für Variablen in VEXcode VR finden in diesem Artikel.
  • Verwenden Sie die Koordinaten des Roboters (x1,y1), die Koordinaten der Zielposition (x2,y2) und die atan-Funktion, um die Fahrtrichtung zu bestimmen.
    • Berechnen Sie den Winkel theta θ der Geraden, die diese beiden Punkte verbindet.

      Diagramm zweier mathematischer Ausdrücke. Der erste Ausdruck lautet 'theta ist gleich atan((y2 - y1) / (x2 - x1))'. Der zweite Ausdruck lautet: 'negative pi / 2 ist kleiner als theta, welches kleiner als pi / 2' ist.

      Das mathematische Diagramm von oben zeigt den Roboter an der Koordinate (X1, Y1) und eine Linie zeigt auf die Koordinate (X2, Y2). Die Distanz wird mit der Variablen d bezeichnet, der Winkel mit der Variablen theta. Der horizontale Abstand zwischen den Punkten wird als 'x2 - x1'dargestellt, und der vertikale Abstand wird als 'y2 - y1' dargestellt.

    • Rechnen Sie den Winkel theta θ in Fahrtrichtung um.

      Pseudocode-Beispiel für mathematischen Ausdruck (Ausgangsrichtung: Norden):

      Wenn X1 gleich X2:
      	Wenn Y2 ≥ >
      		dann Richtung = 0.
      	:
      		Richtung = 180.
      :
      	Wenn X2 >
      		Richtung = 90 - atan((Y2 - Y1) / (X2 - X1)).
      	:
      		Richtung = 270 - atan((Y2 - Y1) / (X2 - X1)).
    • Das Diagramm von oben zeigt den Roboter innerhalb eines Kreises, der mit Beschriftungen von'bis 360 Grad versehen ist.
  • Verwenden Sie den Funktionsblock aus der Kategorie Operatoren und wählen Sie die Funktion atan aus, um den Winkel theta θ zu berechnen.

    Leerer VEXcode-Funktionsblock, der 'atan von blank' liest.

    • Passender Python-Befehl:

      math.atan() / math.pi * 180
  • Berechnen Sie mithilfe der Koordinaten des Roboters (x1,y1), der Koordinaten der Zielposition (x2,y2) und des Satzes des Pythagoras die Fahrstrecke.

    Der mathematische Ausdruck lautet: 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    Das gleiche Diagramm von oben wie zuvor, das den Unterschied zwischen zwei Koordinaten zeigt. Der Roboter befindet sich an der Koordinate (X1, Y1) und eine Linie zeigt auf die Koordinate (X2, Y2). Die Distanz wird mit der Variablen d bezeichnet, der Winkel mit der Variablen theta. Der horizontale Abstand zwischen den Punkten wird als 'x2 - x1'dargestellt, und der vertikale Abstand wird als 'y2 - y1' dargestellt.

  • Verwenden Sie den Funktionsblock aus der Kategorie Operatoren und wählen Sie die Funktion sqrt aus, um die Fahrstrecke zu berechnen.

    Leerer VEXcode-Funktionsblock, der 'sqrt von blank' liest.

    • Passender Python-Befehl:

      math.sqrt()