GPS jutiklis#

Įvadas#

gps klasė naudojama valdyti ir gauti duomenis iš V5 GPS (žaidimo padėties nustatymo sistemos™) jutiklio. Šis jutiklis užtikrina tikslų roboto padėties ir orientacijos sekimą VEX lauke. Jis naudoja GPS lauko kodą aplink lauko perimetrą, kad realiuoju laiku apskaičiuotų roboto X ir Y koordinates bei kryptį.

GPS jutiklis grąžina roboto padėtį naudodamas atskaitos tašką, automatiškai apskaičiuojamą pagal poslinkius, įvestus konfigūruojant GPS jutiklį įrenginių lange.

Daugiau informacijos apie GPS jutiklį rasite VEX bibliotekos skyriuje GPS jutiklio naudojimas su VEX V5.

Atskaitos taškas veikia kaip paties GPS jutiklio (0, 0) padėtis, kurioje visos GPS metodų grąžintos koordinatės, kryptys ir judesiai yra susiję su šiuo konfigūruotu tašku.

VEX V5 GPS jutiklis.

Klasės konstruktoriai#

1 — Sukuria gps objektą nurodytame išmaniajame prievade, naudodamas numatytąją pradžios tašką (0, 0).

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

2 — Sukuria gps objektą nurodytame išmaniajame prievade ir apibrėžia pasirinktinę pradžios padėtį.

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

Klasės destruktorius#

Sunaikina gps objektą ir išlaisvina susijusius išteklius.

~gps();

Parametrai#

Parametras

Tipas

Aprašymas

index

int32_t

Išmanusis prievadas, prie kurio prijungtas GPS jutiklis, užrašomas kaip PORTx, kur x yra prievado numeris (pavyzdžiui, PORT1).

ox

double

Pradinės padėties X koordinatė.

oy

double

Pradinės padėties Y koordinatė.

units

distanceUnits

Matavimo vienetas, naudojamas ox ir oy:

  • mm (numatytasis) — milimetrai
  • distanceUnits::in / inches — coliai
  • distanceUnits::cm — centimetrai

heading_offset

double

GPS jutiklio sukimosi poslinkis laipsniais nuo 0,00 iki 359,99. Numatytoji reikšmė yra 0.

dir

turnType

Kryptis, kuri grąžins teigiamas antraštės reikšmes:

  • right (numatytasis)
  • left

Pavyzdžiai#

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

Narių funkcijos#

gps klasė apima šias narines funkcijas:

  • calibrate – Kalibruoja GPS jutiklį.

  • setOrigin — Nustato GPS koordinačių sistemos pradžios padėtį.

  • setLocation – nustato dabartinę GPS jutiklio vietą ir kryptį.

  • xPosition — Grąžina dabartinę X poziciją.

  • yPosition — Grąžina dabartinę Y poziciją.

  • heading — Grąžina dabartinę antraštę.

  • acceleration — Grąžina tiesinį pagreitį išilgai nurodytos ašies.

  • gyroRate — Grąžina nurodytos ašies kampinį greitį.

  • orientation — Grąžina nurodytos ašies orientaciją.

  • quality – Grąžina dabartinę GPS signalo kokybę.

  • changed — Registruoja atgalinio iškvietimo funkciją, kuri paleidžiama pasikeitus GPS duomenims.

Prieš iškviečiant bet kokias gps narių funkcijas, reikia sukurti gps egzempliorių, kaip parodyta žemiau:

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

Klasės metodai#

calibrate#

Kalibruoja GPS jutiklį. Tai nustatys GPS sukonfigūruotą kryptį (pagal jo kampo poslinkį) kaip dabartinę transmisijos kryptį.

Kalibravimo metu GPS jutiklis turi nejudėti.

Available Functions
void calibrate();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Ši funkcija negrąžina reikšmės.

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

setOrigin#

Nustato GPS koordinačių sistemos pradžios tašką.

Available Functions

1 — Nustato pradžios tašką nurodytoje X ir Y padėtyje.

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

2 — Nustato pradinį tašką pagal dabartinę jutiklio padėtį.

void setOrigin();

Parameters

Parametras

Tipas

Aprašymas

x

double

Naujos pradžios padėties X koordinatė.

y

double

Naujos pradžios padėties Y koordinatė.

units

distanceUnits

Matavimo vienetas, naudojamas x ir y:

  • mm (numatytasis) — milimetrai
  • distanceUnits::cm — centimetrai
  • distanceUnits::in — coliai

Return Values

Ši funkcija negrąžina reikšmės.

Notes

setLocation#

Nustato dabartinę GPS padėtį ir kryptį.

Available Functions

1 — Nustato dabartinę vietą naudodamas nurodytus atstumo ir pasukimo vienetus.

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

2 — Nustato dabartinę vietą milimetrais ir laipsniais.

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

Parameters

Parametras

Tipas

Aprašymas

x

double

Dabartinės vietos X koordinatė.

y

double

Dabartinės vietos Y koordinatė.

units

distanceUnits

Matavimo vienetas, naudojamas x ir y:

  • mm (numatytasis) — milimetrai
  • distanceUnits::in / inches — coliai
  • distanceUnits::cm — centimetrai

angle

double

Dabartinės vietos antraštės reikšmė.

units_r

rotationUnits

anglematavimo vienetas:

  • deg (numatytasis) — laipsniai
  • rev — apsisukimai

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Iškviečiant šią funkciją, atnaujinamos vidinės pozicijos ir antraštės reikšmės, kurias pateikia xPosition, yPosition ir heading.

xPosition#

Grąžina dabartinę GPS jutiklio X padėtį.

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

Parameters

Parametras

Tipas

Aprašymas

units

distanceUnits

Grąžintos X pozicijos matavimo vienetas:

  • mm (numatytasis) — milimetrai
  • distanceUnits::cm — centimetrai
  • distanceUnits::in — coliai

Return Values

Grąžina double reiškiantį x padėties poslinkį nuo pradžios nurodytais vienetais.

Notes
  • X padėtis matuojama dabartinės pradžios taško atžvilgiu.

  • Pradinę vietą galima pakeisti naudojant 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#

Grąžina dabartinę GPS jutiklio Y padėtį.

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

Parameters

Parametras

Tipas

Aprašymas

units

distanceUnits

Grąžintos Y pozicijos matavimo vienetas:

  • mm (numatytasis) — milimetrai
  • distanceUnits::cm — centimetrai
  • distanceUnits::in — coliai

Return Values

Grąžina double reiškiantį Y padėties poslinkį nuo pradžios nurodytais vienetais.

Notes
  • Y padėtis matuojama dabartinės pradžios taško atžvilgiu.

  • Kilmę galima pakeisti naudojant 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#

Grąžina dabartinę GPS jutiklio kryptį (pokrypio kampą).

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

Parameters

Parametras

Tipas

Aprašymas

units

rotationUnits

Grąžintos antraštės reikšmės matavimo vienetas:

  • deg (numatytasis) — laipsniai
  • rev — apsisukimai

Return Values

Grąžina skaičių double reiškiantį dabartinę antraštę nurodytais vienetais.

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#

Grąžina tiesinį pagreitį, išmatuotą GPS jutiklio išilgai nurodytos ašies.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Parametras

Tipas

Aprašymas

axis

axisType

Ašis, kuriai bus grąžintas pagreitis:

  • xaxis
  • yaxis
  • zaxis

Return Values

Grąžina double reiškiantį pagreitį išilgai nurodytos ašies, išreikštą G (gravitaciniais vienetais).

Notes
  • Pagreičio vertės pateikiamos G vienetais, kur 1 G yra lygus gravitacijos pagreičiui Žemės paviršiuje.

gyroRate#

Grąžina GPS jutiklio išmatuotą kampinį greitį išilgai nurodytos ašies.

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

Parameters

Parametras

Tipas

Aprašymas

axis

axisType

Ašis, kuriai bus grąžintas kampinis greitis:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Grąžinto kampinio greičio matavimo vienetas:

  • dps — laipsniai per sekundę
  • rpm — apsisukimai per minutę

Return Values

Grąžina double reiškiantį kampinį greitį išilgai nurodytos ašies pasirinktais vienetais.

orientation#

Grąžina GPS jutiklio orientacijos kampą nurodytai ašiai.

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

Parameters

Parametras

Tipas

Aprašymas

axis

orientationType

Ištraukimo orientacijos ašis:

  • roll
  • pitch
  • yaw

units

rotationUnits

Grąžintos orientacijos vertės matavimo vienetas:

  • deg — laipsniai
  • rev — apsisukimai

Return Values

Grąžina skaičių double reiškiantį nurodytos ašies orientaciją pasirinktais vienetais.

quality#

Grąžina suvokiamą GPS signalo kokybę.

Available Functions
int32_t quality();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Grąžina int32_t , rodantį GPS signalo kokybę procentais:

Galimos vertės

Aprašymas

100

Visi GPS jutiklio pateikti padėties ir krypties duomenys yra galiojantys.

~90

Padėties duomenys nebeskaičiuojami tiesiogiai iš GPS lauko kodo, o apskaičiuojami alternatyviais būdais.

0 – 80

Galioja tik krypties vertės. Laikui bėgant, nepakankamai nuskaitant GPS lauko kodą, signalo kokybė toliau blogėja iki 0, kai GPS duomenys faktiškai užstringa ir nebegalioja.

changed#

Registruoja atgalinio iškvietimo funkciją, kuri paleidžiama, kai pasikeičia GPS krypties reikšmė.

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

Parameters

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Rodyklė į funkciją, kuri bus iškviečiama, kai pasikeis GPS krypties reikšmė. Funkcija negali priimti parametrų ir grąžinti void.

Return Values

Ši funkcija negrąžina reikšmės.