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.

VEX V5 GPS-sensorn.

Klasskonstruktörer#

1 — Skapar ett gps objekt på den angivna Smart Port med standardursprunget (0, 0).

gps(
  int32_t  index,
  double   heading_offset = 0,
  turnType dir = right );

2 — Skapar ett gps objekt 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

index

int32_t

Den smarta porten som GPS-sensorn är ansluten till, skriven som PORTx, där x är portnumret (till exempel PORT1).

ox

double

X-koordinaten för ursprungspositionen.

oy

double

Y-koordinaten för ursprungspositionen.

units

distanceUnits

Måttenheten som används för ox och oy:

  • mm (standard) — millimeter
  • distanceUnits::in / inches — tum
  • distanceUnits::cm — centimeter

heading_offset

double

GPS-sensorns rotationsförskjutning i grader, från 0,00 till 359,99. Standardvärdet är 0.

dir

turnType

Riktningen som returnerar positiva kursvärden:

  • right (standard)
  • left

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

Parameters

Den här funktionen tar inga parametrar.

Return Values

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

1 — Ställer in origo till den angivna X- och Y-positionen.

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

2 — Ställer in origo till sensorns aktuella position.

void setOrigin();

Parameters

Parameter

Typ

Beskrivning

x

double

X-koordinaten för den nya ursprungspositionen.

y

double

Y-koordinaten för den nya utgångspositionen.

units

distanceUnits

Måttenheten som används för x och y:

  • mm (standard) — millimeter
  • distanceUnits::cm — centimeter
  • distanceUnits::in — tum

Return Values

Den här funktionen returnerar inget värde.

Notes

setLocation#

Ställer in aktuell GPS-position och riktning.

Available Functions

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

2 — Ställer in aktuell plats med millimeter och grader.

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

Parameters

Parameter

Typ

Beskrivning

x

double

X-koordinaten för den aktuella platsen.

y

double

Y-koordinaten för den aktuella platsen.

units

distanceUnits

Måttenheten som används för x och y:

  • mm (standard) — millimeter
  • distanceUnits::in / inches — tum
  • distanceUnits::cm — centimeter

angle

double

Rubrikvärdet för den aktuella platsen.

units_r

rotationUnits

Måttenheten som används för angle:

  • deg (standard) — grader
  • rev — varv

Return Values

Den här funktionen returnerar inget värde.

Notes

xPosition#

Returnerar GPS-sensorns aktuella X-position.

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

Parameters

Parameter

Typ

Beskrivning

units

distanceUnits

Måttenheten för den returnerade X-positionen:

  • mm (standard) — millimeter
  • distanceUnits::cm — centimeter
  • distanceUnits::in — tum

Return Values

Returnerar double som representerar x-positionsförskjutningen från origo i de angivna enheterna.

Notes
  • X-positionen mäts i förhållande till den aktuella origo.

  • Ursprunget kan ändras med hjälp av 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#

Returnerar GPS-sensorns aktuella Y-position.

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

Parameters

Parameter

Typ

Beskrivning

units

distanceUnits

Måttenheten för den returnerade Y-positionen:

  • mm (standard) — millimeter
  • distanceUnits::cm — centimeter
  • distanceUnits::in — tum

Return Values

Returnerar double som representerar Y-positionens förskjutning från origo i de angivna enheterna.

Notes
  • Y-positionen mäts i förhållande till den aktuella origo.

  • Ursprunget kan ändras med hjälp av 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#

Returnerar GPS-sensorns aktuella kurs (girvinkel).

Available Functions
double heading( rotationUnits units = rotationUnits::deg );

Parameters

Parameter

Typ

Beskrivning

units

rotationUnits

Måttenheten för det returnerade kursvärdet:

  • deg (standard) — grader
  • rev — varv

Return Values

Returnerar double som representerar den aktuella rubriken i de angivna enheterna.

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#

Returnerar den linjära accelerationen som mäts av GPS-sensorn längs den angivna axeln.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Parameter

Typ

Beskrivning

axis

axisType

Axeln för vilken accelerationen ska returneras:

  • xaxis
  • yaxis
  • zaxis

Return Values

Returnerar double som representerar accelerationen längs den angivna axeln i G (gravitationsenheter).

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

Parameters

Parameter

Typ

Beskrivning

axis

axisType

Axeln för vilken vinkelhastigheten ska returneras:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Måttenheten för den återvändande vinkelhastigheten:

  • dps — grader per sekund
  • rpm — varv per minut

Return Values

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

Parameters

Parameter

Typ

Beskrivning

axis

orientationType

Orienteringsaxeln att hämta:

  • roll
  • pitch
  • yaw

units

rotationUnits

Måttenheten för det returnerade orienteringsvärdet:

  • deg — grader
  • rev — varv

Return Values

Returnerar double som representerar den angivna axelns orientering i de valda enheterna.

quality#

Returnerar den upplevda GPS-signalkvaliteten.

Available Functions
int32_t quality();

Parameters

Den här funktionen tar inga parametrar.

Return Values

Returnerar int32_t som representerar GPS-signalens kvalitet som en procentandel:

Möjliga värden

Beskrivning

100

All rapporterad positions- och kursdata från GPS-sensorn är giltig.

~90

Positionsdata beräknas inte längre direkt från GPS-fältkoden utan uppskattas istället med alternativa metoder.

0 – 80

Endast kursvärden är giltiga. Allt eftersom tiden går utan tillräcklig skanning av GPS-fältkoden fortsätter signalkvaliteten att minska tills 0, då GPS-data i praktiken fryses och inte längre är giltiga.

changed#

Registrerar en återuppringningsfunktion som körs när GPS-riktningsvärdet ändras.

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

Parameters

Parameter

Typ

Beskrivning

callback

void (*)(void)

En pekare till en funktion som anropas när GPS-kursvärdet ändras. Funktionen får inte ta emot några parametrar och returnerar void.

Return Values

Den här funktionen returnerar inget värde.