GPS-sensor#
Introduktion#
Klassen gps används för att styra och komma åt data från V5 GPS-sensorn (Game Positioning System™). Denna sensor ger noggrann positions- och orienteringsspårning för en robot på VEX-fältet. Den använder GPS-fältkoden runt fältets omkrets för att beräkna robotens X- och Y-koordinater och kurs i realtid.
GPS-sensorn returnerar robotens position med hjälp av en referenspunkt som automatiskt beräknas från de offsetvärden som angavs när GPS-sensorn konfigurerades i fönstret Enheter.
För mer information om GPS-sensorn, läs Använda GPS-sensorn med VEX V5 i VEX-biblioteket.
Referenspunkten fungerar som GPS-sensorns egen (0, 0) position där alla koordinater, kurser och rörelser som returneras av GPS-metoder är relativa till denna konfigurerade punkt.

Klasskonstruktörer#
1 — Skapar ett
gpsobjekt på den angivna Smart Port med standardursprunget (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Skapar ett
gpsobjekt på den angivna Smart Port och definierar en anpassad ursprungsposition.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Klassförstörare#
Förstör gps objektet och frigör tillhörande resurser.
~gps();
Parametrar#
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Den smarta porten som GPS-sensorn är ansluten till, skriven som |
|
|
X-koordinaten för ursprungspositionen. |
|
|
Y-koordinaten för ursprungspositionen. |
|
|
Måttenheten som används för
|
|
|
GPS-sensorns rotationsförskjutning i grader, från 0,00 till 359,99. Standardvärdet är 0. |
|
|
Riktningen som returnerar positiva kursvärden:
|
Exempel#
// 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
Medlemsfunktioner#
Klassen gps innehåller följande medlemsfunktioner:
calibrate— Kalibrerar GPS-sensorn.setOrigin— Ställer in utgångspositionen för GPS-koordinatsystemet.setLocation— Ställer in GPS-sensorns aktuella plats och riktning.xPosition— Returns the current X position.yPosition— Returnerar den aktuella Y-positionen.heading— Returnerar den aktuella rubriken.acceleration— Returnerar linjär acceleration längs den angivna axeln.gyroRate— Returnerar vinkelhastigheten för den angivna axeln.orientation— Returnerar orienteringen för den angivna axeln.quality— Returnerar den aktuella GPS-signalkvaliteten.changed— Registrerar en återuppringningsfunktion som körs när GPS-data ändras.
Innan några gps medlemsfunktioner anropas måste en gps instans skapas, som visas nedan:
/* 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);
Klassmetoder#
calibrate#
Kalibrerar GPS-sensorn. Detta ställer in GPS:ens konfigurerade kurs (enligt dess vinkelförskjutning) som drivlinans aktuella kurs.
GPS-sensorn måste förbli stilla under kalibreringsprocessen.
Available Functionsvoid calibrate();
Den här funktionen tar inga parametrar.
Return ValuesDen här funktionen returnerar inget värde.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Ställer in GPS-koordinatsystemets ursprung.
Available Functions1 — Ställer in origo till den angivna X- och Y-positionen.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Ställer in origo till sensorns aktuella position.
void setOrigin();
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
X-koordinaten för den nya ursprungspositionen. |
|
|
Y-koordinaten för den nya utgångspositionen. |
|
|
Måttenheten som används för
|
Den här funktionen returnerar inget värde.
NotessetLocation#
Ställer in aktuell GPS-position och riktning.
Available Functions1 — Ställer in aktuell plats med hjälp av angivna avstånds- och rotationsenheter.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Ställer in aktuell plats med millimeter och grader.
void setLocation( double x, double y, double angle );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
X-koordinaten för den aktuella platsen. |
|
|
Y-koordinaten för den aktuella platsen. |
|
|
Måttenheten som används för
|
|
|
Rubrikvärdet för den aktuella platsen. |
|
|
Måttenheten som används för
|
Den här funktionen returnerar inget värde.
NotesxPosition#
Returnerar GPS-sensorns aktuella X-position.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Måttenheten för den returnerade X-positionen:
|
Returnerar double som representerar x-positionsförskjutningen från origo i de angivna enheterna.
X-positionen mäts i förhållande till den aktuella origo.
Ursprunget kan ändras med hjälp av
setOrigin.
// 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#
Returnerar GPS-sensorns aktuella Y-position.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Måttenheten för den returnerade Y-positionen:
|
Returnerar double som representerar Y-positionens förskjutning från origo i de angivna enheterna.
Y-positionen mäts i förhållande till den aktuella origo.
Ursprunget kan ändras med hjälp av
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#
Returnerar GPS-sensorns aktuella kurs (girvinkel).
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Måttenheten för det returnerade kursvärdet:
|
Returnerar double som representerar den aktuella rubriken i de angivna enheterna.
Rubrikvärdet är radbrutet mellan 0 och 360 grader.
Den positiva rotationsriktningen bestäms av
dirparametern som anges under konstruktionen.
// 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#
Returnerar den linjära accelerationen som mäts av GPS-sensorn längs den angivna axeln.
Available Functionsdouble acceleration(
axisType axis );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Axeln för vilken accelerationen ska returneras:
|
Returnerar double som representerar accelerationen längs den angivna axeln i G (gravitationsenheter).
Accelerationsvärden rapporteras i enheter av G, där 1 G är lika med gravitationsaccelerationen vid jordens yta.
gyroRate#
Returnerar vinkelhastigheten som mätts av GPS-sensorn längs den angivna axeln.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Axeln för vilken vinkelhastigheten ska returneras:
|
|
|
Måttenheten för den återvändande vinkelhastigheten:
|
Returnerar double som representerar vinkelhastigheten längs den angivna axeln i de valda enheterna.
orientation#
Returnerar GPS-sensorns orienteringsvinkel för den angivna axeln.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Orienteringsaxeln att hämta:
|
|
|
Måttenheten för det returnerade orienteringsvärdet:
|
Returnerar double som representerar den angivna axelns orientering i de valda enheterna.
quality#
Returnerar den upplevda GPS-signalkvaliteten.
Available Functionsint32_t quality();
Den här funktionen tar inga parametrar.
Return ValuesReturnerar int32_t som representerar GPS-signalens kvalitet som en procentandel:
Möjliga värden |
Beskrivning |
|---|---|
|
All rapporterad positions- och kursdata från GPS-sensorn är giltig. |
|
Positionsdata beräknas inte längre direkt från GPS-fältkoden utan uppskattas istället med alternativa metoder. |
|
Endast kursvärden är giltiga. Allt eftersom tiden går utan tillräcklig skanning av GPS-fältkoden fortsätter signalkvaliteten att minska tills |
changed#
Registrerar en återuppringningsfunktion som körs när GPS-riktningsvärdet ändras.
Available Functionsvoid changed(
void (* callback)(void) );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
En pekare till en funktion som anropas när GPS-kursvärdet ändras. Funktionen får inte ta emot några parametrar och returnerar |
Den här funktionen returnerar inget värde.