GPS senzor#
Zavedení#
Třída gps se používá k ovládání a přístupu k datům ze senzoru V5 GPS (Game Positioning System™). Tento senzor poskytuje přesné sledování polohy a orientace robota na hřišti VEX. Využívá kód GPS pole po obvodu hřiště k výpočtu souřadnic X a Y a směru robota v reálném čase.
GPS senzor vrací polohu robota pomocí referenčního bodu automaticky vypočítaného z posunů zadaných při konfiguraci GPS senzoru v okně Zařízení.
Více informací o GPS senzoru naleznete v knihovně VEX v dokumentu Použití GPS senzoru s VEX V5.
Referenční bod funguje jako vlastní pozice (0, 0) GPS senzoru, kde všechny souřadnice, směry a pohyby vrácené metodami GPS jsou relativní vzhledem k tomuto nakonfigurovanému bodu.

Konstruktory tříd#
1 — Vytvoří objekt
gpsna zadaném inteligentním portu s použitím výchozího počátku (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Vytvoří objekt
gpsna zadaném inteligentním portu a definuje vlastní počáteční pozici.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Destruktor tříd#
Zničí objekt gps a uvolní související zdroje.
~gps();
Parametry#
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Inteligentní port, ke kterému je připojen GPS senzor, zapsaný jako |
|
|
Souřadnice X počáteční polohy. |
|
|
Souřadnice Y počáteční polohy. |
|
|
Jednotka měření použitá pro
|
|
|
Rotační offset GPS senzoru ve stupních, od 0,00 do 359,99. Výchozí hodnota je 0. |
|
|
Směr, který vrátí kladné hodnoty kurzu:
|
Příklady#
// 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
Členské funkce#
Třída gps obsahuje následující členské funkce:
calibrate— Kalibruje GPS senzor.setOrigin— Nastaví počáteční pozici pro souřadnicový systém GPS.setLocation— Nastaví aktuální polohu a směr GPS senzoru.xPosition— Vrátí aktuální pozici X.yPosition— Vrátí aktuální pozici Y.heading— Vrátí aktuální nadpis.acceleration— Vrátí lineární zrychlení podél zadané osy.gyroRate— Vrátí úhlovou rychlost pro zadanou osu.orientation— Vrátí orientaci pro zadanou osu.quality— Vrátí aktuální kvalitu signálu GPS.changed— Registruje funkci zpětného volání, která se spustí při změně dat GPS.
Před voláním jakékoli členské funkce gps musí být vytvořena instance gps , jak je znázorněno níže:
/* 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);
Metody třídy#
calibrate#
Kalibruje GPS senzor. Nastaví nakonfigurovaný směr GPS (podle jeho úhlového posunu) jako aktuální směr hnacího ústrojí.
GPS senzor musí během kalibrace zůstat v klidu.
Available Functionsvoid calibrate();
Tato funkce nepřijímá žádné parametry.
Return ValuesTato funkce nevrací hodnotu.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Nastaví počátek souřadnicového systému GPS.
Available Functions1 — Nastaví počátek na zadanou pozici X a Y.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Nastaví počátek na aktuální polohu senzoru.
void setOrigin();
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Souřadnice X nové polohy počátku. |
|
|
Souřadnice Y nové počáteční polohy. |
|
|
Jednotka měření použitá pro
|
Tato funkce nevrací hodnotu.
NotessetLocation#
Nastaví aktuální polohu a směr GPS.
Available Functions1 — Nastaví aktuální polohu pomocí zadaných jednotek vzdálenosti a rotace.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Nastaví aktuální polohu pomocí milimetrů a stupňů.
void setLocation( double x, double y, double angle );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Souřadnice X aktuální polohy. |
|
|
Souřadnice Y aktuální polohy. |
|
|
Jednotka měření použitá pro
|
|
|
Hodnota směru pro aktuální polohu. |
|
|
Jednotka měření použitá pro úhel
|
Tato funkce nevrací hodnotu.
NotesxPosition#
Vrátí aktuální pozici X GPS senzoru.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka měření pro vrácenou pozici X:
|
Vrací hodnotu double která představuje posun polohy x od počátku v zadaných jednotkách.
Pozice X se měří vzhledem k aktuálnímu počátku.
Počátek lze změnit pomocí
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#
Vrátí aktuální pozici Y GPS senzoru.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka měření pro vrácenou pozici Y:
|
Vrátí hodnotu double která představuje posun pozice Y od počátku v zadaných jednotkách.
Poloha Y se měří vzhledem k aktuálnímu počátku.
Původ lze změnit pomocí
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#
Vrátí aktuální směr (úhel stáčení) GPS senzoru.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka měření pro vrácenou hodnotu směru:
|
Vrací hodnotu double představující aktuální nadpis v zadaných jednotkách.
Hodnota nadpisu je zalomená v rozsahu od 0 do 360 stupňů.
Kladný směr otáčení je určen parametrem
dirzadaným během konstrukce.
// 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#
Vrátí lineární zrychlení měřené GPS senzorem podél zadané osy.
Available Functionsdouble acceleration(
axisType axis );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Osa, pro kterou bude vráceno zrychlení:
|
Vrací hodnotu double , která představuje zrychlení podél zadané osy v G (gravitační jednotky).
Hodnoty zrychlení se uvádějí v jednotkách G, kde 1 G se rovná gravitačnímu zrychlení na zemském povrchu.
gyroRate#
Vrátí úhlovou rychlost naměřenou GPS senzorem podél zadané osy.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Osa, pro kterou bude vrácena úhlová rychlost:
|
|
|
Jednotka měření pro vrácenou úhlovou rychlost:
|
Vrátí hodnotu double , která představuje úhlovou rychlost podél zadané osy ve vybraných jednotkách.
orientation#
Vrátí úhel orientace GPS senzoru pro zadanou osu.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Orientační osa pro vyvolání:
|
|
|
Jednotka měření pro vrácenou hodnotu orientace:
|
Vrátí hodnotu double , která představuje orientaci zadané osy ve vybraných jednotkách.
quality#
Vrátí vnímanou kvalitu signálu GPS.
Available Functionsint32_t quality();
Tato funkce nepřijímá žádné parametry.
Return ValuesVrací hodnotu int32_t která představuje kvalitu signálu GPS v procentech:
Možné hodnoty |
Popis |
|---|---|
|
Všechna hlášená data o poloze a směru ze senzoru GPS jsou platná. |
|
Polohová data se již nevypočítávají přímo z kódu GPS Field Code, ale místo toho se odhadují alternativními způsoby. |
|
Platné jsou pouze hodnoty směru. S postupem času bez dostatečného skenování kódu GPS pole se kvalita signálu dále snižuje až do bodu |
changed#
Registruje funkci zpětného volání, která se spustí při změně hodnoty směru GPS.
Available Functionsvoid changed(
void (* callback)(void) );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Ukazatel na funkci, která bude volána při změně hodnoty směru GPS. Funkce nesmí přijímat žádné parametry a vracet |
Tato funkce nevrací hodnotu.