GPS-Sensor#
Einführung#
Die Klasse gps dient zur Steuerung und zum Zugriff auf Daten des V5-GPS-Sensors (Game Positioning System™). Dieser Sensor 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.

Klassenkonstruktoren#
1 — Erstellt ein
gpsObjekt am angegebenen Smart Port unter Verwendung des Standardursprungs (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Erstellt ein
gpsObjekt am angegebenen Smart Port und definiert eine benutzerdefinierte Ursprungsposition.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Klassendestruktor#
Zerstört das Objekt gps und gibt die zugehörigen Ressourcen frei.
~gps();
Parameter#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Smart Port, an den der GPS-Sensor angeschlossen ist, wird als |
|
|
Die X-Koordinate der Ursprungsposition. |
|
|
Die Y-Koordinate der Ursprungsposition. |
|
|
Die Maßeinheit für
|
|
|
Der Rotationsversatz des GPS-Sensors in Grad, von 0,00 bis 359,99. Standardwert ist 0. |
|
|
Die Richtung, die positive Kurswerte liefert:
|
Beispiele#
// Create the gps instance
gps GPS1 = gps(
PORT1, // Smart Port 1
180); // heading_offset
// Create the gps instance
gps GPS1 = gps(
PORT1, // Smart Port 1
50.00, // ox
100.00, // oy
mm, // units
180 ); // heading_offset
Mitgliedsfunktionen#
Die Klasse gps umfasst die folgenden Memberfunktionen:
calibrate— Kalibriert den GPS-Sensor.setOrigin— Legt die Ursprungsposition für das GPS-Koordinatensystem fest.setLocation— Legt den aktuellen Standort und die Richtung des GPS-Sensors fest.xPosition— Gibt die aktuelle X-Position zurück.yPosition— Gibt die aktuelle Y-Position zurück.heading— Gibt die aktuelle Überschrift zurück.acceleration— Gibt die lineare Beschleunigung entlang der angegebenen Achse zurück.gyroRate— Gibt die Winkelgeschwindigkeit für die angegebene Achse zurück.orientation— Gibt die Orientierung für die angegebene Achse zurück.quality— Gibt die aktuelle GPS-Signalqualität zurück.changed— Registriert eine Rückruffunktion, die ausgeführt wird, wenn sich die GPS-Daten ändern.
Bevor gps Memberfunktionen aufgerufen werden können, muss eine gps -Instanz erstellt werden, wie unten gezeigt:
/* This constructor is required when using VS Code.
GPS Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the gps instance in Smart Port 1
gps GPS1 = gps(PORT1);
Klassenmethoden#
calibrate#
Kalibriert den GPS-Sensor. Dadurch wird die vom GPS konfigurierte Richtung (entsprechend seinem Winkelversatz) als aktuelle Richtung des Antriebsstrangs festgelegt.
Der GPS-Sensor muss während des Kalibrierungsvorgangs stillgehalten werden.
Available Functionsvoid calibrate();
Diese Funktion benötigt keine Parameter.
Return ValuesDiese Funktion gibt keinen Wert zurück.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Legt den Ursprung des GPS-Koordinatensystems fest.
Available Functions1 — Legt den Ursprung auf die angegebene X- und Y-Position fest.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Legt den Ursprung auf die aktuelle Position des Sensors fest.
void setOrigin();
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die X-Koordinate der neuen Ursprungsposition. |
|
|
Die Y-Koordinate der neuen Ursprungsposition. |
|
|
Die Maßeinheit für
|
Diese Funktion gibt keinen Wert zurück.
NotessetLocation#
Legt die aktuelle GPS-Position und -Richtung fest.
Available Functions1 — Legt den aktuellen Standort unter Verwendung der angegebenen Entfernungs- und Rotationseinheiten fest.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Legt die aktuelle Position in Millimetern und Grad fest.
void setLocation( double x, double y, double angle );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die X-Koordinate des aktuellen Standorts. |
|
|
Die Y-Koordinate des aktuellen Standorts. |
|
|
Die Maßeinheit für
|
|
|
Der Überschriftenwert für den aktuellen Standort. |
|
|
Die Maßeinheit für
|
Diese Funktion gibt keinen Wert zurück.
NotesxPosition#
Gibt die aktuelle X-Position des GPS-Sensors zurück.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Maßeinheit für die zurückgegebene X-Position:
|
Gibt einen Wert vom Typ double zurück, der den x-Positionsversatz vom Ursprung in den angegebenen Einheiten darstellt.
Die X-Position wird relativ zum Stromursprung gemessen.
Der Ursprung kann mit
setOrigingeändert werden.
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS returns an x position
// near the center of the Field
waitUntil((GPS1.xPosition(mm) < 0.0));
Drivetrain.stop();
yPosition#
Gibt die aktuelle Y-Position des GPS-Sensors zurück.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Maßeinheit für die zurückgegebene Y-Position:
|
Gibt einen Wert vom Typ double zurück, der den Y-Positionsversatz vom Ursprung in den angegebenen Einheiten darstellt.
Die Y-Position wird relativ zum Stromursprung gemessen.
Der Ursprung kann mit
setOrigin()
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS reports an y position
// near the center of the Field
waitUntil((GPS1.yPosition(mm) < 0.0));
Drivetrain.stop();
heading#
Gibt den aktuellen Kurs (Gierwinkel) des GPS-Sensors zurück.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Maßeinheit für den zurückgegebenen Kurswert:
|
Gibt einen Wert vom double zurück, der die aktuelle Überschrift in den angegebenen Einheiten darstellt.
Der Wert der Kursrichtung wird zwischen 0 und 360 Grad umgebrochen.
Die positive Drehrichtung wird durch den während der Konstruktion angegebenen Parameter
dirbestimmt.
// Turn slowly to face the right wall
Drivetrain.setTurnVelocity(20.0, percent);
Drivetrain.turn(right);
// Stop turning when the GPS reports a heading
// greater than 90 degrees
waitUntil((GPS1.heading() > 90.0));
Drivetrain.stop();
acceleration#
Gibt die vom GPS-Sensor entlang der angegebenen Achse gemessene lineare Beschleunigung zurück.
Available Functionsdouble acceleration(
axisType axis );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Achse, für die die Beschleunigung zurückgegeben wird:
|
Gibt einen Wert vom Typ double zurück, der die Beschleunigung entlang der angegebenen Achse in G (Gravitationseinheiten) darstellt.
Die Beschleunigungswerte werden in Einheiten von G angegeben, wobei 1 G der Fallbeschleunigung an der Erdoberfläche entspricht.
gyroRate#
Gibt die vom GPS-Sensor entlang der angegebenen Achse gemessene Winkelgeschwindigkeit zurück.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Achse, für die die Winkelgeschwindigkeit zurückgegeben wird:
|
|
|
Die Maßeinheit für die zurückgegebene Winkelgeschwindigkeit:
|
Gibt einen Wert vom Typ double zurück, der die Winkelgeschwindigkeit entlang der angegebenen Achse in den ausgewählten Einheiten darstellt.
orientation#
Gibt den Orientierungswinkel des GPS-Sensors für die angegebene Achse zurück.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die abzurufende Orientierungsachse:
|
|
|
Die Maßeinheit für den zurückgegebenen Orientierungswert:
|
Gibt einen Wert vom Typ double zurück, der die Orientierung der angegebenen Achse in den ausgewählten Einheiten darstellt.
quality#
Gibt die wahrgenommene GPS-Signalqualität zurück.
Available Functionsint32_t quality();
Diese Funktion benötigt keine Parameter.
Return ValuesGibt einen int32_t zurück, der die GPS-Signalqualität in Prozent darstellt:
Mögliche Werte |
Beschreibung |
|---|---|
|
Alle vom GPS-Sensor gemeldeten Positions- und Kursdaten sind gültig. |
|
Die Positionsdaten werden nicht mehr direkt aus dem GPS-Feldcode berechnet, sondern stattdessen auf anderem Wege geschätzt. |
|
Nur die Kurswerte sind gültig. Verstreicht Zeit ohne ausreichendes Scannen des GPS-Feldcodes, verschlechtert sich die Signalqualität kontinuierlich bis zum Wert |
changed#
Registriert eine Callback-Funktion, die ausgeführt wird, wenn sich der GPS-Kurs ändert.
Available Functionsvoid changed(
void (* callback)(void) );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
A pointer to a function that will be called when the GPS heading value changes. The function must take no parameters and return |
Diese Funktion gibt keinen Wert zurück.