GPS-sensor#
Invoering#
De klasse gps wordt gebruikt om de gegevens van de V5 GPS-sensor (Game Positioning System™) te beheren en te raadplegen. Deze sensor zorgt voor nauwkeurige positie- en oriëntatiebepaling van een robot op het VEX-veld. De sensor gebruikt de GPS-veldcode rond de omtrek van het veld om de X- en Y-coördinaten en de richting van de robot in realtime te berekenen.
De GPS-sensor geeft de positie van de robot door met behulp van een referentiepunt dat automatisch wordt berekend op basis van de offsets die zijn ingevoerd bij het configureren van de GPS-sensor in het venster Apparaten.
Voor meer informatie over de GPS-sensor, lees Using the GPS Sensor with VEX V5 in de VEX-bibliotheek.
Het referentiepunt fungeert als de eigen (0, 0) positie van de GPS-sensor, waarbij alle coördinaten, richtingen en bewegingen die door GPS-methoden worden geretourneerd, relatief zijn ten opzichte van dit geconfigureerde punt.

Klasseconstructors#
1 — Maakt een
gpsobject aan op de opgegeven Smart Port met de standaard oorsprong (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Maakt een
gpsobject aan op de opgegeven Smart Port en definieert een aangepaste beginpositie.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Klasse-destructor#
Vernietigt het gps object en geeft de bijbehorende resources vrij.
~gps();
Parameters#
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De Smart Port waarop de GPS-sensor is aangesloten, wordt weergegeven als |
|
|
De X-coördinaat van de oorsprong. |
|
|
De Y-coördinaat van de oorsprong. |
|
|
De meeteenheid die gebruikt wordt voor
|
|
|
De rotatieafwijking van de GPS-sensor in graden, van 0,00 tot 359,99. De standaardwaarde is 0. |
|
|
De richting die positieve koerswaarden oplevert:
|
Voorbeelden#
// 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
Lidfuncties#
De klasse gps omvat de volgende lidfuncties:
calibrate— Kalibreert de GPS-sensor.setOrigin— Stelt de oorsprongspositie in voor het GPS-coördinatensysteem.setLocation— Stelt de huidige locatie en richting van de GPS-sensor in.xPosition— Geeft de huidige X-positie terug.yPosition— Geeft de huidige Y-positie terug.heading— Geeft de huidige kop weer.acceleration— Retourneert de lineaire versnelling langs de opgegeven as.gyroRate— Geeft de hoeksnelheid voor de opgegeven as terug.orientation— Geeft de oriëntatie voor de opgegeven as terug.quality— Geeft de huidige GPS-signaalkwaliteit terug.changed— Registreert een callbackfunctie die wordt uitgevoerd wanneer GPS-gegevens veranderen.
Voordat er functies van het type gps kunnen worden aangeroepen, moet er een instantie van gps worden aangemaakt, zoals hieronder weergegeven:
/* 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);
Klassemethoden#
calibrate#
Kalibreert de GPS-sensor. Hierdoor wordt de door de GPS geconfigureerde koers (op basis van de hoekafwijking) ingesteld als de huidige koers van de aandrijving.
De GPS-sensor moet tijdens het kalibratieproces stil blijven staan.
Available Functionsvoid calibrate();
Deze functie accepteert geen parameters.
Return ValuesDeze functie retourneert geen waarde.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Hiermee wordt de oorsprong van het GPS-coördinatensysteem ingesteld.
Available Functions1 — Stelt de oorsprong in op de opgegeven X- en Y-positie.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Stelt de oorsprong in op de huidige positie van de sensor.
void setOrigin();
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De X-coördinaat van de nieuwe oorsprongspositie. |
|
|
De Y-coördinaat van de nieuwe oorsprongspositie. |
|
|
De meeteenheid die gebruikt wordt voor
|
Deze functie retourneert geen waarde.
NotessetLocation#
Stelt de huidige GPS-positie en -richting in.
Available Functions1 — Stelt de huidige locatie in met behulp van de opgegeven afstands- en rotatie-eenheden.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Stelt de huidige locatie in met behulp van millimeters en graden.
void setLocation( double x, double y, double angle );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De X-coördinaat van de huidige locatie. |
|
|
De Y-coördinaat van de huidige locatie. |
|
|
De meeteenheid die gebruikt wordt voor
|
|
|
De koptekstwaarde voor de huidige locatie. |
|
|
De meeteenheid die wordt gebruikt voor een hoek
|
Deze functie retourneert geen waarde.
NotesxPosition#
Geeft de huidige X-positie van de GPS-sensor terug.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De meeteenheid voor de geretourneerde X-positie:
|
Retourneert een double die de x-positieverschuiving ten opzichte van de oorsprong in de opgegeven eenheden weergeeft.
De X-positie wordt gemeten ten opzichte van het huidige nulpunt.
De oorsprong kan worden gewijzigd met behulp van
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#
Geeft de huidige Y-positie van de GPS-sensor terug.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De meeteenheid voor de geretourneerde Y-positie:
|
Retourneert een double die de Y-positieverschuiving ten opzichte van de oorsprong in de opgegeven eenheden weergeeft.
De Y-positie wordt gemeten ten opzichte van het huidige nulpunt.
De oorsprong kan worden gewijzigd met behulp van
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#
Geeft de huidige koers (gierhoek) van de GPS-sensor weer.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De meeteenheid voor de geretourneerde koerswaarde:
|
Retourneert een double die de huidige koptekst in de opgegeven eenheden weergeeft.
De richtingswaarde ligt tussen 0 en 360 graden.
De positieve draairichting wordt bepaald door de parameter
dirdie tijdens de constructie is gespecificeerd.
// 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#
Geeft de lineaire versnelling terug die door de GPS-sensor langs de opgegeven as is gemeten.
Available Functionsdouble acceleration(
axisType axis );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De as waarvoor de versnelling wordt geretourneerd:
|
Retourneert een double die de versnelling langs de opgegeven as in G (gravitationele eenheden) weergeeft.
De versnellingswaarden worden weergegeven in G, waarbij 1 G gelijk is aan de zwaartekrachtversnelling aan het aardoppervlak.
gyroRate#
Geeft de hoeksnelheid terug die door de GPS-sensor langs de opgegeven as is gemeten.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De as waarvoor de hoeksnelheid wordt geretourneerd:
|
|
|
De meeteenheid voor de teruggewonnen hoeksnelheid:
|
Retourneert een double die de hoeksnelheid langs de opgegeven as in de geselecteerde eenheden weergeeft.
orientation#
Geeft de oriëntatiehoek van de GPS-sensor voor de opgegeven as terug.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De oriëntatie-as die moet worden opgehaald:
|
|
|
De meeteenheid voor de geretourneerde oriëntatiewaarde:
|
Retourneert een double die de oriëntatie van de opgegeven as in de geselecteerde eenheden weergeeft.
quality#
Geeft de waargenomen GPS-signaalkwaliteit weer.
Available Functionsint32_t quality();
Deze functie accepteert geen parameters.
Return ValuesRetourneert een int32_t die de GPS-signaalkwaliteit als percentage weergeeft:
Mogelijke waarden |
Beschrijving |
|---|---|
|
Alle door de GPS-sensor gerapporteerde positie- en richtingsgegevens zijn correct. |
|
Positiegegevens worden niet langer rechtstreeks berekend op basis van de GPS-veldcode, maar worden in plaats daarvan via alternatieve methoden geschat. |
|
Alleen koerswaarden zijn geldig. Naarmate de tijd verstrijkt zonder voldoende scanning van de GPS-veldcode, blijft de signaalkwaliteit afnemen tot |
changed#
Registreert een callbackfunctie die wordt uitgevoerd wanneer de GPS-richting verandert.
Available Functionsvoid changed(
void (* callback)(void) );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een pointer naar een functie die wordt aangeroepen wanneer de GPS-richting verandert. De functie mag geen parameters accepteren en moet |
Deze functie retourneert geen waarde.