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.

De VEX V5 GPS-sensor.

Klasseconstructors#

1 — Maakt een gps object 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 gps object 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

index

int32_t

De Smart Port waarop de GPS-sensor is aangesloten, wordt weergegeven als PORTx, waarbij x het poortnummer is (bijvoorbeeld PORT1).

ox

double

De X-coördinaat van de oorsprong.

oy

double

De Y-coördinaat van de oorsprong.

units

distanceUnits

De meeteenheid die gebruikt wordt voor ox en oy:

  • mm (standaard) — millimeters
  • distanceUnits::in / inches — inches
  • distanceUnits::cm — centimeters

heading_offset

double

De rotatieafwijking van de GPS-sensor in graden, van 0,00 tot 359,99. De standaardwaarde is 0.

dir

turnType

De richting die positieve koerswaarden oplevert:

  • right (standaard)
  • left

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 Functions
void calibrate();

Parameters

Deze functie accepteert geen parameters.

Return Values

Deze 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 Functions

1 — Stelt de oorsprong in op de opgegeven X- en Y-positie.

void setOrigin( 
  double        x, 
  double        y, 
  distanceUnits units = mm );

2 — Stelt de oorsprong in op de huidige positie van de sensor.

void setOrigin();

Parameters

Parameter

Type

Beschrijving

x

double

De X-coördinaat van de nieuwe oorsprongspositie.

y

double

De Y-coördinaat van de nieuwe oorsprongspositie.

units

distanceUnits

De meeteenheid die gebruikt wordt voor x en y:

  • mm (standaard) — millimeters
  • distanceUnits::cm — centimeters
  • distanceUnits::in — inches

Return Values

Deze functie retourneert geen waarde.

Notes
  • Het veranderen van de oorsprong heeft gevolgen voor de waarden die worden geretourneerd door xPosition en yPosition.

setLocation#

Stelt de huidige GPS-positie en -richting in.

Available Functions

1 — 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 );

2 — Stelt de huidige locatie in met behulp van millimeters en graden.

void setLocation( double x, double y, double angle );

Parameters

Parameter

Type

Beschrijving

x

double

De X-coördinaat van de huidige locatie.

y

double

De Y-coördinaat van de huidige locatie.

units

distanceUnits

De meeteenheid die gebruikt wordt voor x en y:

  • mm (standaard) — millimeters
  • distanceUnits::in / inches — inches
  • distanceUnits::cm — centimeters

angle

double

De koptekstwaarde voor de huidige locatie.

units_r

rotationUnits

De meeteenheid die wordt gebruikt voor een hoek angle:

  • deg (standaard) — graden
  • rev — omwentelingen

Return Values

Deze functie retourneert geen waarde.

Notes
  • Door deze functie aan te roepen worden de interne positie- en koerswaarden bijgewerkt die worden gerapporteerd door xPosition, yPosition, en heading.

xPosition#

Geeft de huidige X-positie van de GPS-sensor terug.

Available Functions
double xPosition( distanceUnits units = distanceUnits::mm );

Parameters

Parameter

Type

Beschrijving

units

distanceUnits

De meeteenheid voor de geretourneerde X-positie:

  • mm (standaard) — millimeter
  • distanceUnits::cm — centimeter
  • distanceUnits::in — inch

Return Values

Retourneert een double die de x-positieverschuiving ten opzichte van de oorsprong in de opgegeven eenheden weergeeft.

Notes
  • De X-positie wordt gemeten ten opzichte van het huidige nulpunt.

  • De oorsprong kan worden gewijzigd met behulp van setOrigin.

Examples
// 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 Functions
double yPosition( distanceUnits units = distanceUnits::mm );

Parameters

Parameter

Type

Beschrijving

units

distanceUnits

De meeteenheid voor de geretourneerde Y-positie:

  • mm (standaard) — millimeter
  • distanceUnits::cm — centimeter
  • distanceUnits::in — inch

Return Values

Retourneert een double die de Y-positieverschuiving ten opzichte van de oorsprong in de opgegeven eenheden weergeeft.

Notes
  • De Y-positie wordt gemeten ten opzichte van het huidige nulpunt.

  • De oorsprong kan worden gewijzigd met behulp van setOrigin().

Examples
// 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 Functions
double heading( rotationUnits units = rotationUnits::deg );

Parameters

Parameter

Type

Beschrijving

units

rotationUnits

De meeteenheid voor de geretourneerde koerswaarde:

  • deg (standaard) — graden
  • rev — omwentelingen

Return Values

Retourneert een double die de huidige koptekst in de opgegeven eenheden weergeeft.

Notes Examples
// 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 Functions
double acceleration( 
  axisType axis );

Parameters

Parameter

Type

Beschrijving

axis

axisType

De as waarvoor de versnelling wordt geretourneerd:

  • xaxis
  • yaxis
  • zaxis

Return Values

Retourneert een double die de versnelling langs de opgegeven as in G (gravitationele eenheden) weergeeft.

Notes
  • 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 Functions
double gyroRate( 
  axisType      axis, 
  velocityUnits units );

Parameters

Parameter

Type

Beschrijving

axis

axisType

De as waarvoor de hoeksnelheid wordt geretourneerd:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

De meeteenheid voor de teruggewonnen hoeksnelheid:

  • dps — graden per seconde
  • rpm — omwentelingen per minuut

Return Values

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 Functions
double orientation( 
  orientationType axis, 
  rotationUnits   units );

Parameters

Parameter

Type

Beschrijving

axis

orientationType

De oriëntatie-as die moet worden opgehaald:

  • roll
  • pitch
  • yaw

units

rotationUnits

De meeteenheid voor de geretourneerde oriëntatiewaarde:

  • deg — graden
  • rev — omwentelingen

Return Values

Retourneert een double die de oriëntatie van de opgegeven as in de geselecteerde eenheden weergeeft.

quality#

Geeft de waargenomen GPS-signaalkwaliteit weer.

Available Functions
int32_t quality();

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een int32_t die de GPS-signaalkwaliteit als percentage weergeeft:

Mogelijke waarden

Beschrijving

100

Alle door de GPS-sensor gerapporteerde positie- en richtingsgegevens zijn correct.

~90

Positiegegevens worden niet langer rechtstreeks berekend op basis van de GPS-veldcode, maar worden in plaats daarvan via alternatieve methoden geschat.

0 – 80

Alleen koerswaarden zijn geldig. Naarmate de tijd verstrijkt zonder voldoende scanning van de GPS-veldcode, blijft de signaalkwaliteit afnemen tot 0, waarna de GPS-gegevens feitelijk bevroren en niet langer geldig zijn.

changed#

Registreert een callbackfunctie die wordt uitgevoerd wanneer de GPS-richting verandert.

Available Functions
void changed( 
  void (* callback)(void) );

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een pointer naar een functie die wordt aangeroepen wanneer de GPS-richting verandert. De functie mag geen parameters accepteren en moet void.

Return Values

Deze functie retourneert geen waarde.