GPS-érzékelő#

Bevezetés#

A gps osztály a V5 GPS (Game Positioning System™) érzékelő adatainak vezérlésére és elérésére szolgál. Ez az érzékelő pontos pozíció- és tájoláskövetést biztosít a VEX pályán lévő robot számára. A pálya kerülete mentén mért GPS terepi kódot használja a robot X és Y koordinátáinak és irányának valós idejű kiszámításához.

A GPS-érzékelő a robot pozícióját egy referenciapont segítségével adja vissza, amelyet a rendszer automatikusan kiszámít a GPS-érzékelő Eszközök ablakban történő konfigurálásakor megadott eltolások alapján.

A GPS-érzékelővel kapcsolatos további információkért olvassa el a GPS-érzékelő használata VEX V5-tel című részt a VEX könyvtárban.

A referenciapont a GPS-érzékelő saját (0, 0) pozíciójaként működik, ahol a GPS-metódusok által visszaadott összes koordináta, irány és mozgás ehhez a konfigurált ponthoz viszonyított.

A VEX V5 GPS-érzékelő.

Osztálykonstruktorok#

1 — Létrehoz egy gps objektumot a megadott intelligens porton az alapértelmezett origó (0, 0) használatával.

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

2 — Létrehoz egy gps objektumot a megadott intelligens porton, és meghatároz egy egyéni kezdőpozíciót.

gps(
  int32_t       index,
  double        ox,
  double        oy,
  distanceUnits units = mm,
  double        heading_offset = 0,
  turnType      dir = right );

Osztálydestruktor#

Megsemmisíti a gps objektumot és felszabadítja a hozzá tartozó erőforrásokat.

~gps();

Paraméterek#

Paraméter

Típus

Leírás

index

int32_t

Az az intelligens port, amelyhez a GPS-érzékelő csatlakozik, PORTxformátumban írva, ahol x a port száma (például PORT1).

ox

double

Az origó pozíció X koordinátája.

oy

double

Az origó Y koordinátája.

units

distanceUnits

The unit of measurement used for ox and oy:

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

heading_offset

double

A GPS-érzékelő elfordulási eltolása fokban, 0,00 és 359,99 között. Az alapértelmezett érték 0.

dir

turnType

Az irány, amely pozitív irányértékeket ad vissza:

  • right (alapértelmezett)
  • left

Példák#

// 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

Tagfüggvények#

A gps osztály a következő tagfüggvényeket tartalmazza:

  • calibrate — Kalibrálja a GPS-érzékelőt.

  • setOrigin — Beállítja a GPS koordinátarendszer kiindulási pozícióját.

  • setLocation — Beállítja a GPS-érzékelő aktuális helyét és irányát.

  • xPosition — Visszaadja az aktuális X pozíciót.

  • yPosition — Visszaadja az aktuális Y pozíciót.

  • heading — Visszaadja az aktuális címsort.

  • acceleration — Visszaadja a megadott tengely mentén mért lineáris gyorsulást.

  • gyroRate — Visszaadja a megadott tengely szögsebességét.

  • orientation — Visszaadja a megadott tengely orientációját.

  • quality — Visszaadja az aktuális GPS-jel minőségét.

  • changed — Visszahívó függvényt regisztrál, amely a GPS-adatok megváltozásakor fut.

Bármely gps tagfüggvény meghívása előtt létre kell hozni egy gps példányt, az alábbiak szerint:

/* 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);

Osztálymetódusok#

calibrate#

Kalibrálja a GPS-érzékelőt. Ez a GPS konfigurált irányát (a szögeltérésnek megfelelően) a hajtáslánc aktuális irányaként állítja be.

A GPS-érzékelőnek mozdulatlanul kell maradnia a kalibrálási folyamat során.

Available Functions
void calibrate();

Parameters

Ez a függvény nem fogad el paramétereket.

Return Values

Ez a függvény nem ad vissza értéket.

Examples
// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)

setOrigin#

Beállítja a GPS koordinátarendszer origóját.

Available Functions

1 — A megadott X és Y pozícióba állítja be az origót.

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

2 — Az érzékelő aktuális pozícióját állítja be az origónak.

void setOrigin();

Parameters

Paraméter

Típus

Leírás

x

double

Az új kezdőpont X koordinátája.

y

double

Az új kezdőpont Y koordinátája.

units

distanceUnits

A x és yesetében használt mértékegység:

  • mm (alapértelmezett) — milliméter
  • distanceUnits::cm — centiméter
  • distanceUnits::in — hüvelyk

Return Values

Ez a függvény nem ad vissza értéket.

Notes
  • Az origó megváltoztatása a xPosition és yPosition által visszaadott értékekre is hatással van.

setLocation#

Beállítja az aktuális GPS-pozíciót és haladási irányt.

Available Functions

1 — Beállítja az aktuális helyet a megadott távolság és elforgatási mértékegységek használatával.

void setLocation(
  double        x,
  double        y,
  distanceUnits units = mm,
  double        angle = 0,
  rotationUnits units_r = degrees );

2 — Beállítja az aktuális helyet milliméterben és fokban.

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

Parameters

Paraméter

Típus

Leírás

x

double

Az aktuális hely X koordinátája.

y

double

Az aktuális hely Y koordinátája.

units

distanceUnits

A x és yesetében használt mértékegység:

  • mm (alapértelmezett) — milliméter
  • distanceUnits::in / inches — hüvelyk
  • distanceUnits::cm — centiméter

angle

double

Az aktuális helyhez tartozó fejlécérték.

units_r

rotationUnits

A anglemértékegysége:

  • deg (alapértelmezett) — fok
  • rev — fordulatszám

Return Values

Ez a függvény nem ad vissza értéket.

Notes
  • A függvény meghívása frissíti a xPosition, yPosition és heading által jelentett belső pozíció- és fejlécértékeket.

xPosition#

Visszaadja a GPS-érzékelő aktuális X pozícióját.

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

Parameters

Paraméter

Típus

Leírás

units

distanceUnits

A visszaadott X pozíció mértékegysége:

  • mm (alapértelmezett) — milliméter
  • distanceUnits::cm — centiméter
  • distanceUnits::in — hüvelyk

Return Values

Egy double értéket ad vissza, amely az origótól való x pozícióbeli eltolást jelenti a megadott egységekben.

Notes
  • Az X pozíciót az aktuális origóhoz képest mérjük.

  • Az eredet a setOrigin használatával módosítható.

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#

Visszaadja a GPS-érzékelő aktuális Y pozícióját.

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

Parameters

Paraméter

Típus

Leírás

units

distanceUnits

A visszaadott Y pozíció mértékegysége:

  • mm (alapértelmezett) — milliméter
  • distanceUnits::cm — centiméter
  • distanceUnits::in — hüvelyk

Return Values

Egy double értéket ad vissza, amely az origótól való Y pozícióbeli eltolást jelöli a megadott egységekben.

Notes
  • Az Y pozíciót az aktuális origóhoz képest mérjük.

  • Az eredet setOrigin() használatával módosítható.

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#

Visszaadja a GPS-érzékelő aktuális irányát (elfordulási szögét).

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

Parameters

Paraméter

Típus

Leírás

units

rotationUnits

A visszaadott irányérték mértékegysége:

  • deg (alapértelmezett) — fok
  • rev — fordulatszám

Return Values

Egy double értéket ad vissza, amely az aktuális címsort jelöli a megadott mértékegységben.

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#

Visszaadja a GPS-érzékelő által a megadott tengely mentén mért lineáris gyorsulást.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Paraméter

Típus

Leírás

axis

axisType

A tengely, amelyhez a gyorsulást visszaadjuk:

  • xaxis
  • yaxis
  • zaxis

Return Values

double értéket ad vissza, amely a megadott tengely mentén mért gyorsulást jelenti G-ben (gravitációs egység).

Notes
  • A gyorsulási értékeket G egységben adjuk meg, ahol 1 G egyenlő a Föld felszínén fellépő gravitációs gyorsulással.

gyroRate#

Visszaadja a GPS-érzékelő által a megadott tengely mentén mért szögsebességet.

Available Functions
double gyroRate( 
  axisType      axis, 
  velocityUnits units );

Parameters

Paraméter

Típus

Leírás

axis

axisType

A tengely, amelyhez a szögsebességet vissza kell adni:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

A visszaadott szögsebesség mértékegysége:

  • dps — fok másodpercenként
  • rpm — fordulat percenként

Return Values

Egy double értéket ad vissza, amely a megadott tengely mentén mért szögsebességet jelenti a kiválasztott egységekben.

orientation#

Visszaadja a GPS-érzékelő tájolási szögét a megadott tengelyhez.

Available Functions
double orientation( 
  orientationType axis, 
  rotationUnits   units );

Parameters

Paraméter

Típus

Leírás

axis

orientationType

A visszanyeréshez szükséges orientációs tengely:

  • roll
  • pitch
  • yaw

units

rotationUnits

A visszaadott tájolási érték mértékegysége:

  • deg — fok
  • rev — fordulatszám

Return Values

Egy double értéket ad vissza, amely a megadott tengely tájolását jelöli a kiválasztott egységekben.

quality#

Visszaadja az érzékelt GPS-jel minőségét.

Available Functions
int32_t quality();

Parameters

Ez a függvény nem fogad el paramétereket.

Return Values

Egy int32_t értéket ad vissza, amely a GPS-jel minőségét jelöli százalékban:

Lehetséges értékek

Leírás

100

A GPS-érzékelőtől származó összes jelentett pozíció- és irányadat érvényes.

~90

A pozícióadatokat már nem közvetlenül a GPS terepi kódból számítják ki, hanem alternatív módszerekkel becsülik meg.

0 – 80

Csak a haladási irány értékek érvényesek. Ahogy telik az idő a GPS mezőkód megfelelő beolvasása nélkül, a jel minősége folyamatosan romlik 0ig, amikor a GPS-adatok gyakorlatilag lefagynak és már nem érvényesek.

changed#

Regisztrál egy visszahívó függvényt, amely akkor fut le, amikor a GPS-irányérték megváltozik.

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

Parameters

Paraméter

Típus

Leírás

callback

void (*)(void)

Egy mutató egy függvényre, amely akkor hívódik meg, amikor a GPS irányérték megváltozik. A függvény nem vehet fel paramétereket, és void értéket adhat vissza.

Return Values

Ez a függvény nem ad vissza értéket.