GPS-Sensor#

Einführung#

Der V5 GPS-Sensor (Game Positioning System™) ermöglicht die präzise Positions- und Orientierungsbestimmung eines Roboters auf dem VEX-Spielfeld. Er nutzt den GPS-Feldcode entlang des Spielfeldrandes, um die X- und Y-Koordinaten sowie die Fahrtrichtung des Roboters in Echtzeit zu berechnen.

Der GPS-Sensor gibt die Position des Roboters anhand eines Referenzpunkts zurück, der automatisch aus den bei der Konfiguration des GPS-Sensors im Gerätefenster eingegebenen Offsets berechnet wird.

Weitere Informationen zum GPS-Sensor finden Sie unter Using the GPS Sensor with VEX V5 in der VEX-Bibliothek.

Der Referenzpunkt dient als die (0, 0)-Position des GPS-Sensors, auf die sich alle von GPS-Methoden zurückgegebenen Koordinaten, Kurse und Bewegungen beziehen.

Der VEX V5 GPS-Sensor.

Diese Seite verwendet gps_sensor als Beispielnamen für den GPS-Sensor. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen Namen.

Nachfolgend finden Sie eine Liste der verfügbaren Methoden:

  • calibrate – Kalibriert den GPS-Sensor, um seine Richtung auf die aktuelle Antriebsrichtung einzustellen.

  • set_origin – Legt die Position des Referenzpunkts am Roboter fest.

  • set_location – Legt sowohl die Position als auch die Richtung des Referenzpunktes auf dem Feld fest.

  • x_position – Gibt die x-Koordinate des Referenzpunkts auf dem Feld zurück.

  • y_position – Gibt die y-Koordinate des Referenzpunkts auf dem Feld zurück.

  • heading – Gibt die Richtung des Referenzpunkts basierend auf der Feldausrichtung zurück.

  • acceleration – Gibt die Beschleunigung des Roboters auf einer ausgewählten Achse zurück.

  • gyro_rate – Gibt die Rotationsgeschwindigkeit des Roboters um eine ausgewählte Achse zurück.

  • orientation – Gibt die Roll-, Nick- oder Gierorientierung des Roboters in Grad zurück.

  • quality – Gibt die Signalstärke des GPS-Sensors zurück.

  • changed – Registriert eine Funktion, die aufgerufen wird, sobald der GPS-Sensor eine Kursänderung erkennt.

Konstruktor – Manuelle Initialisierung eines GPS-Sensors.

  • Gps – Erzeugt einen GPS-Sensor.

kalibrieren#

calibrate kalibriert den Referenzpunkt und legt dessen konfigurierte Richtung als aktuelle Antriebsrichtung fest. Währenddessen muss der Roboter absolut stillstehen, da Bewegungen während der Kalibrierung zu ungenauen Ergebnissen führen.

Usage:
gps_sensor.calibrate()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

set_origin#

Mit dem Befehl set_origin wird die Position des Referenzpunkts am Roboter manuell festgelegt. Dies ermöglicht die manuelle Einstellung der GPS-Sensorposition am Roboter, anstatt dies in den Konfigurationseinstellungen vorzunehmen.

Usage:
gps_sensor.set_origin(x, y, distance_units)

Parameter

Beschreibung

X

Die x-Koordinate des Referenzpunktes am Roboter.

y

Die y-Koordinate des Referenzpunktes am Roboter.

Distanzeinheiten

Die Maßeinheit für die x- und y-Koordinaten:

  • MM – Millimeter
  • INCHES

# GPS Sensor is mounted 25mm forward
# from the reference point on a robot

gps.set_origin(0, 25, MM)

Standort festlegen#

Mit dem Befehl set_location werden Position und Richtung des Referenzpunkts auf dem Spielfeld manuell festgelegt. Dies kann dazu beitragen, Ungenauigkeiten zu reduzieren, falls sich der GPS-Sensor beim Start zu nah an den Spielfeldwänden befindet und daher nicht genügend Daten vom GPS-Spielfeldcode erfassen kann.

Eine Draufsicht auf das VEX V5-Feld, die den Sensor zeigt, der auf den Feldcode an den Seiten des Feldes gerichtet ist.

Usage:
gps_sensor.set_location(x, y, distance_units, heading, heading_units)

Parameter

Beschreibung

X

Die x-Koordinate des Referenzpunktes auf dem Feld.

y

Die y-Koordinate des Referenzpunktes auf dem Feld.

Distanzeinheiten

Die Maßeinheit für die x- und y-Koordinaten:

  • MM – Millimeter
  • INCHES

Überschrift

Die Richtung, in die der Bezugspunkt relativ zur absoluten Feldrichtung zeigt, beträgt 0 bis 359,9 Grad.

Überschrifteneinheiten

Die Maßeinheit für die Überschrift:DEGREES

x-Position#

x_position gibt die x-Koordinate des Referenzpunkts auf dem Feld zurück.

Usage:
gps_sensor.x_position(units)

Parameter

Beschreibung

Einheit

Die Maßeinheit:

  • MM – Millimeter
  • INCHES

y-Position#

y_position gibt die y-Koordinate des Referenzpunkts auf dem Feld zurück.

Usage:
gps_sensor.y_position(units)

Parameter

Beschreibung

Einheit

Die Maßeinheit:

  • MM – Millimeter
  • INCHES

Überschrift#

heading gibt die Richtung des Referenzpunktes basierend auf der Ausrichtung des Feldes von 0 bis 359,9 Grad zurück.

Die Angabe entspricht der absoluten Feldkursangabe, die im Uhrzeigersinn einen Bereich von 0° bis 359,9° umfasst. Der Nullpunkt liegt bei 12 Uhr.

Eine Draufsicht auf das VEX V5-Feld, die die Gradzahlen um das Feld herum zeigt.

Usage:
gps_sensor.heading()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

Beschleunigung#

acceleration gibt die Beschleunigung des Roboters auf einer bestimmten Achse von -4,0 bis 4,0 Gs zurück.

Usage:
gps_sensor.acceleration(axis)

Parameter

Beschreibung

Achse

Welche Achse soll verwendet werden:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

Kreiselrate#

gyro_rate gibt die Rotationsgeschwindigkeit des Roboters um eine ausgewählte Achse zurück.

Usage:
gps_sensor.gyro_rate(axis, units)

Parameter

Beschreibung

Achse

Welche Achse soll verwendet werden:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

Einheiten

Die Maßeinheit:

  • VelocityUnits.DPS – Grad pro Sekunde, von -1000 bis 1000
  • VelocityUnits.RPM – Umdrehungen pro Minute, von -167 bis 167

Orientierung#

orientation gibt die Roll-, Nick- oder Gierorientierung des Roboters in Grad zurück.

Usage:
gps_sensor.orientation(axis, units)

Parameter

Beschreibung

Achse

Welche Ausrichtung verwenden:

  • OrientationType.ROLL
  • OrientationType.PITCH
  • OrientationType.YAW

Einheiten

Die Maßeinheit:DEGREES

Qualität#

quality gibt die Signalstärke des GPS-Sensors in Prozent zurück.

Mögliche Werte

Beschreibung

100

Alle vom GPS-Sensor gemeldeten Positions- und Kursdaten sind gültig.

~90

Die Positionsdaten werden nicht mehr durch Erfassung von Informationen aus dem GPS-Feldcode berechnet, sondern durch alternative Methoden.

0 - 80

Nur die vom GPS-Sensor angegebenen Kurswerte sind gültig. Da der GPS-Sensor jedoch mit der Zeit nicht mehr genügend GPS-Feldcode abtastet, um Positions- und Kursinformationen genau zu bestimmen, sinkt die gemeldete Signalqualität kontinuierlich bis auf 0, wodurch alle GPS-Sensordaten praktisch eingefroren und ungültig werden.

Usage:
gps_sensor.quality()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

geändert#

changed registriert eine Funktion, die aufgerufen wird, sobald der GPS-Sensor eine Kursänderung erkennt.

Usage:
gps_sensor.changed(callback, arg)

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die ausgeführt wird, wenn sich die Ausrichtung des GPS-Sensors ändert.

arg

Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwendung von Funktionen mit Parametern.

def my_function():
  brain.screen.print("GPS heading changed")

# Call my_function whenever gps_sensor's heading changes
gps_sensor.changed(my_function)

Konstruktor#

Konstruktoren werden verwendet, um manuell Gps Objekte zu erstellen, die für die Konfiguration eines GPS-Sensors außerhalb von VEXcode erforderlich sind.

Gps#

Gps erstellt einen GPS-Sensor.

Usage:
Gps(smartport)

Parameter

Beschreibung

smartport

Der Smart Port, an den der GPS-Sensor angeschlossen ist, wird als Ports.PORTx geschrieben, wobei x die Nummer des Ports ist.

# Create a GPS Sensor in Port 10
gps_sensor = Gps(Ports.PORT10)