GPS sensors#

Ievads#

gps klase tiek izmantota, lai kontrolētu un piekļūtu datiem no V5 GPS (Game Positioning System™) sensora. Šis sensors nodrošina precīzu robota atrašanās vietas un orientācijas izsekošanu VEX laukumā. Tas izmanto GPS lauka kodu ap lauka perimetru, lai reāllaikā aprēķinātu robota X un Y koordinātas un virzienu.

GPS sensors atgriež robota pozīciju, izmantojot atskaites punktu, kas tiek automātiski aprēķināts no nobīdēm, kas ievadītas, konfigurējot GPS sensoru ierīču logā.

Lai iegūtu papildinformāciju par GPS sensoru, izlasiet rakstu GPS sensora izmantošana ar VEX V5 VEX bibliotēkā.

Atsauces punkts darbojas kā GPS sensora paša (0, 0) pozīcija, kur visas GPS metožu atgrieztās koordinātas, virzieni un kustības ir relatīvas attiecībā pret šo konfigurēto punktu.

VEX V5 GPS sensors.

Klases konstruktori#

1 — Izveido gps objektu norādītajā viedajā portā, izmantojot noklusējuma sākumpunktu (0, 0).

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

2 — Izveido gps objektu norādītajā viedajā portā un definē pielāgotu sākuma pozīciju.

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

Klases iznīcinātājs#

Iznīcina objektu gps un atbrīvo ar to saistītos resursus.

~gps();

Parametri#

Parametrs

Tips

Apraksts

index

int32_t

Viedports, kuram ir pievienots GPS sensors, kas tiek rakstīts kā PORTx, kur x ir porta numurs (piemēram, PORT1).

ox

double

Sākumpunkta X koordināta.

oy

double

Sākumpunkta Y koordināta.

units

distanceUnits

Mērvienība, kas tiek izmantota ox un oy:

  • mm (pēc noklusējuma) — milimetri
  • distanceUnits::in inches — collas
  • distanceUnits::cm — centimetri

heading_offset

double

GPS sensora rotācijas nobīde grādos no 0,00 līdz 359,99. Noklusējuma vērtība ir 0.

dir

turnType

Virziens, kas atgriezīs pozitīvas virziena vērtības:

  • right (pēc noklusējuma)
  • left

Piemēri#

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

Dalībnieku funkcijas#

gps klasē ir iekļautas šādas dalībfunkcijas:

  • calibrate — Kalibrē GPS sensoru.

  • setOrigin — Iestata GPS koordinātu sistēmas sākuma pozīciju.

  • setLocation — Iestata GPS sensora pašreizējo atrašanās vietu un virzienu.

  • xPosition — Atgriež pašreizējo X pozīciju.

  • yPosition — Atgriež pašreizējo Y pozīciju.

  • heading — Atgriež pašreizējo virsrakstu.

  • acceleration — Atgriež lineāro paātrinājumu pa norādīto asi.

  • gyroRate — Atgriež norādītās ass leņķisko ātrumu.

  • orientation — Atgriež norādītās ass orientāciju.

  • quality — Atgriež pašreizējo GPS signāla kvalitāti.

  • changed — Reģistrē atzvanīšanas funkciju, kas darbojas, mainoties GPS datiem.

Pirms jebkuru gps dalībfunkciju izsaukšanas ir jāizveido gps instance, kā parādīts zemāk:

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

Klases metodes#

calibrate#

Kalibrē GPS sensoru. Tas iestatīs GPS konfigurēto virzienu (atbilstoši tā leņķa nobīdei) kā pašreizējo piedziņas virziena virzienu.

Kalibrēšanas procesa laikā GPS sensoram jāpaliek nekustīgam.

Available Functions
void calibrate();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Šī funkcija neatgriež vērtību.

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

setOrigin#

Iestata GPS koordinātu sistēmas sākumpunktu.

Available Functions

1 — Iestata sākumpunktu norādītajā X un Y pozīcijā.

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

2 — Iestata sākumpunktu sensora pašreizējā pozīcijā.

void setOrigin();

Parameters

Parametrs

Tips

Apraksts

x

double

Jaunās sākuma pozīcijas X koordināta.

y

double

Jaunās sākuma pozīcijas Y koordināta.

units

distanceUnits

Mērvienība, kas tiek izmantota x un y:

  • mm (pēc noklusējuma) — milimetri
  • distanceUnits::cm — centimetri
  • distanceUnits::in — collas

Return Values

Šī funkcija neatgriež vērtību.

Notes

setLocation#

Iestata pašreizējo GPS pozīciju un virzienu.

Available Functions

1 — Iestata pašreizējo atrašanās vietu, izmantojot norādītos attāluma un rotācijas mērvienības.

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

2 — Iestata pašreizējo atrašanās vietu, izmantojot milimetrus un grādus.

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

Parameters

Parametrs

Tips

Apraksts

x

double

Pašreizējās atrašanās vietas X koordināta.

y

double

Pašreizējās atrašanās vietas Y koordināta.

units

distanceUnits

Mērvienība, kas tiek izmantota x un y:

  • mm (pēc noklusējuma) — milimetri
  • distanceUnits::in inches — collas
  • distanceUnits::cm — centimetri

angle

double

Virsraksta vērtība pašreizējai atrašanās vietai.

units_r

rotationUnits

anglemērvienība:

  • deg (pēc noklusējuma) — grādi
  • rev — apgriezieni

Return Values

Šī funkcija neatgriež vērtību.

Notes
  • Izsaucot šo funkciju, tiek atjauninātas iekšējās pozīcijas un virsraksta vērtības, ko ziņo xPosition, yPosition un heading.

xPosition#

Atgriež GPS sensora pašreizējo X pozīciju.

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

Parameters

Parametrs

Tips

Apraksts

units

distanceUnits

Atgrieztās X pozīcijas mērvienība:

  • mm (pēc noklusējuma) — milimetri
  • distanceUnits::cm — centimetri
  • distanceUnits::in — collas

Return Values

Atgriež double kas apzīmē x pozīcijas nobīdi no sākuma punkta norādītajās vienībās.

Notes
  • X pozīcija tiek mērīta attiecībā pret pašreizējo sākumpunktu.

  • Izcelsmi var mainīt, izmantojot 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#

Atgriež GPS sensora pašreizējo Y pozīciju.

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

Parameters

Parametrs

Tips

Apraksts

units

distanceUnits

Atgrieztās Y pozīcijas mērvienība:

  • mm (pēc noklusējuma) — milimetri
  • distanceUnits::cm — centimetri
  • distanceUnits::in — collas

Return Values

Atgriež double kas apzīmē Y pozīcijas nobīdi no sākuma punkta norādītajās vienībās.

Notes
  • Y pozīcija tiek mērīta attiecībā pret pašreizējo sākumpunktu.

  • Izcelsmi var mainīt, izmantojot 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#

Atgriež GPS sensora pašreizējo virzienu (virziena leņķi).

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

Parameters

Parametrs

Tips

Apraksts

units

rotationUnits

Atgrieztās virziena vērtības mērvienība:

  • deg (pēc noklusējuma) — grādi
  • rev — apgriezieni

Return Values

Atgriež skaitli double kas apzīmē pašreizējo virsrakstu norādītajās vienībās.

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#

Atgriež GPS sensora izmērīto lineāro paātrinājumu pa norādīto asi.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Parametrs

Tips

Apraksts

axis

axisType

Ass, kurai tiks atgriezts paātrinājums:

  • xaxis
  • yaxis
  • zaxis

Return Values

Atgriež skaitli double un tas apzīmē paātrinājumu pa norādīto asi G (gravitācijas vienībās).

Notes
  • Paātrinājuma vērtības tiek norādītas G vienībās, kur 1 G ir vienāds ar gravitācijas paātrinājumu uz Zemes virsmas.

gyroRate#

Atgriež leņķisko ātrumu, ko GPS sensors izmērījis pa norādīto asi.

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

Parameters

Parametrs

Tips

Apraksts

axis

axisType

Ass, kurai tiks atgriezts leņķiskais ātrums:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Atgrieztā leņķiskā ātruma mērvienība:

  • dps — grādi sekundē
  • rpm — apgriezieni minūtē

Return Values

Atgriež skaitli double un tas apzīmē leņķisko ātrumu pa norādīto asi atlasītajās mērvienībās.

orientation#

Atgriež GPS sensora orientācijas leņķi norādītajai asij.

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

Parameters

Parametrs

Tips

Apraksts

axis

orientationType

Orientācijas ass atgūšanai:

  • roll
  • pitch
  • yaw

units

rotationUnits

Atgrieztās orientācijas vērtības mērvienība:

  • deg — grādi
  • rev — apgriezieni

Return Values

Atgriež skaitli double kas apzīmē norādītās ass orientāciju atlasītajās vienībās.

quality#

Atgriež uztverto GPS signāla kvalitāti.

Available Functions
int32_t quality();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Atgriež int32_t , kas attēlo GPS signāla kvalitāti procentos:

Iespējamās vērtības

Apraksts

100

Visi GPS sensora ziņotie pozīcijas un virziena dati ir derīgi.

~90

Pozicionēšanas dati vairs netiek aprēķināti tieši no GPS lauka koda, bet gan tiek novērtēti, izmantojot alternatīvus līdzekļus.

0 – 80

Derīgas ir tikai virziena vērtības. Laikam ejot un bez pietiekamas GPS lauka koda skenēšanas, signāla kvalitāte turpina pasliktināties līdz 0, kurā GPS dati faktiski tiek iesaldēti un vairs nav derīgi.

changed#

Reģistrē atzvanīšanas funkciju, kas darbojas, mainoties GPS virziena vērtībai.

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

Parameters

Parametrs

Tips

Apraksts

callback

void (*)(void)

Rādītājs uz funkciju, kas tiks izsaukta, mainoties GPS virziena vērtībai. Funkcijai nedrīkst būt parametri, un tai jāatgriež void.

Return Values

Šī funkcija neatgriež vērtību.