Αισθητήρας GPS#

Εισαγωγή#

The gps class is used to control and access data from the V5 GPS (Game Positioning System™) Sensor. This sensor provides accurate position and orientation tracking for a robot on the VEX Field. It uses the GPS Field Code around the Field’s perimeter to calculate the robot’s X and Y coordinates and heading in real time.

Ο αισθητήρας GPS επιστρέφει τη θέση του ρομπότ χρησιμοποιώντας ένα σημείο αναφοράς που υπολογίζεται αυτόματα από τις μετατοπίσεις που εισάγονται κατά τη διαμόρφωση του αισθητήρα GPS στο παράθυρο Συσκευές.

Για περισσότερες πληροφορίες σχετικά με τον αισθητήρα GPS, διαβάστε την ενότητα Χρήση του αισθητήρα GPS με το VEX V5 στη βιβλιοθήκη VEX.

Το σημείο αναφοράς λειτουργεί ως η θέση (0, 0) του αισθητήρα GPS, όπου όλες οι συντεταγμένες, οι κατευθύνσεις και οι κινήσεις που επιστρέφονται από τις μεθόδους GPS είναι σχετικές με αυτό το διαμορφωμένο σημείο.

Ο αισθητήρας GPS VEX V5.

Κατασκευαστές κλάσεων#

1 Creates a gps object on the specified Smart Port using the default origin (0, 0).

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

2 Creates a gps object on the specified Smart Port and defines a custom origin position.

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

Καταστροφέας κλάσης#

Destroys the gps object and releases associated resources.

~gps();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

The Smart Port that the GPS Sensor is connected to, written as PORTx, where x is the port number (for example, PORT1).

ox

double

Η συντεταγμένη Χ της αρχικής θέσης.

oy

double

Η συντεταγμένη Y της αρχικής θέσης.

units

distanceUnits

The unit of measurement used for ox and oy:

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

heading_offset

double

Η περιστροφική μετατόπιση του αισθητήρα GPS σε μοίρες, από 0,00 έως 359,99. Η προεπιλογή είναι 0.

dir

turnType

The direction that will return positive heading values:

  • right (default)
  • left

Παραδείγματα#

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

Συναρτήσεις Μελών#

The gps class includes the following member functions:

  • calibrate — Calibrates the GPS Sensor.

  • setOrigin — Sets the origin position for the GPS coordinate system.

  • setLocation — Sets the current location and heading of the GPS Sensor.

  • xPosition — Returns the current X position.

  • yPosition — Returns the current Y position.

  • heading — Returns the current heading.

  • acceleration — Returns linear acceleration along the specified axis.

  • gyroRate — Returns the angular velocity for the specified axis.

  • orientation — Returns the orientation for the specified axis.

  • quality — Returns the current GPS signal quality.

  • changed — Registers a callback function that runs when GPS data changes.

Before calling any gps member functions, a gps instance must be created, as shown below:

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

Μέθοδοι Κλάσης#

calibrate#

Βαθμονομεί τον αισθητήρα GPS. Αυτό θα ορίσει την κατεύθυνση που έχει ρυθμιστεί από το GPS (σύμφωνα με τη γωνία μετατόπισής του) ως την τρέχουσα κατεύθυνση του συστήματος μετάδοσης κίνησης.

Ο αισθητήρας GPS πρέπει να παραμένει ακίνητος κατά τη διάρκεια της διαδικασίας βαθμονόμησης.

Available Functions
void calibrate();

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

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

setOrigin#

Ορίζει την αρχή του συστήματος συντεταγμένων GPS.

Available Functions

1 Ορίζει την αρχή των αξόνων στην καθορισμένη θέση X και Y.

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

2 Ορίζει την προέλευση στην τρέχουσα θέση του αισθητήρα.

void setOrigin();

Parameters

Παράμετρος

Τύπος

Περιγραφή

x

double

Η συντεταγμένη Χ της νέας αρχικής θέσης.

y

double

Η συντεταγμένη Y της νέας αρχικής θέσης.

units

distanceUnits

The unit of measurement used for x and y:

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

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Notes

setLocation#

Ορίζει την τρέχουσα θέση και κατεύθυνση GPS.

Available Functions

1 Ορίζει την τρέχουσα τοποθεσία χρησιμοποιώντας καθορισμένες μονάδες απόστασης και περιστροφής.

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

2 Ορίζει την τρέχουσα τοποθεσία χρησιμοποιώντας χιλιοστά και μοίρες.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

x

double

Η συντεταγμένη Χ της τρέχουσας τοποθεσίας.

y

double

Η συντεταγμένη Y της τρέχουσας τοποθεσίας.

units

distanceUnits

The unit of measurement used for x and y:

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

angle

double

Η τιμή κατεύθυνσης για την τρέχουσα τοποθεσία.

units_r

rotationUnits

The unit of measurement used for angle:

  • deg (default) — degrees
  • rev — revolutions

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Notes

xPosition#

Επιστρέφει την τρέχουσα θέση X του αισθητήρα GPS.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

distanceUnits

The unit of measurement for the returned X position:

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

Return Values

Returns a double representing the x positional offset from the origin in the specified units.

Notes
  • Η θέση X μετριέται σε σχέση με την τρέχουσα αρχή.

  • The origin may be changed using 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#

Επιστρέφει την τρέχουσα θέση Y του αισθητήρα GPS.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

distanceUnits

The unit of measurement for the returned Y position:

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

Return Values

Returns a double representing the Y positional offset from the origin in the specified units.

Notes
  • Η θέση Y μετριέται σε σχέση με την τρέχουσα αρχή.

  • The origin may be changed using 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#

Επιστρέφει την τρέχουσα κατεύθυνση (γωνία εκτροπής) του αισθητήρα GPS.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

units

rotationUnits

The unit of measurement for the returned heading value:

  • deg (default) — degrees
  • rev — revolutions

Return Values

Returns a double representing the current heading in the specified units.

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#

Επιστρέφει τη γραμμική επιτάχυνση που μετράται από τον αισθητήρα GPS κατά μήκος του καθορισμένου άξονα.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Παράμετρος

Τύπος

Περιγραφή

axis

axisType

The axis for which acceleration will be returned:

  • xaxis
  • yaxis
  • zaxis

Return Values

Returns a double representing the acceleration along the specified axis in G (gravitational units).

Notes
  • Οι τιμές επιτάχυνσης αναφέρονται σε μονάδες G, όπου 1 G ισούται με την επιτάχυνση λόγω της βαρύτητας στην επιφάνεια της Γης.

gyroRate#

Επιστρέφει τη γωνιακή ταχύτητα που μετράται από τον αισθητήρα GPS κατά μήκος του καθορισμένου άξονα.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

axis

axisType

The axis for which angular velocity will be returned:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

The unit of measurement for the returned angular velocity:

  • dps — degrees per second
  • rpm — revolutions per minute

Return Values

Returns a double representing the angular velocity along the specified axis in the selected units.

orientation#

Επιστρέφει τη γωνία προσανατολισμού του αισθητήρα GPS για τον καθορισμένο άξονα.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

axis

orientationType

The orientation axis to retrieve:

  • roll
  • pitch
  • yaw

units

rotationUnits

The unit of measurement for the returned orientation value:

  • deg — degrees
  • rev — revolutions

Return Values

Returns a double representing the orientation of the specified axis in the selected units.

quality#

Επιστρέφει την αντιληπτή ποιότητα σήματος GPS.

Available Functions
int32_t quality();

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values

Returns an int32_t representing the GPS signal quality as a percentage:

Πιθανές τιμές

Περιγραφή

100

Όλα τα αναφερόμενα δεδομένα θέσης και κατεύθυνσης από τον αισθητήρα GPS είναι έγκυρα.

~90

Τα δεδομένα θέσης δεν υπολογίζονται πλέον απευθείας από τον Κώδικα Πεδίου GPS και αντ’ αυτού εκτιμώνται μέσω εναλλακτικών μέσων.

0 – 80

Only heading values are valid. As time passes without sufficient scanning of the GPS Field Code, signal quality continues to decrease until 0, at which point GPS data is effectively frozen and no longer valid.

changed#

Καταγράφει μια συνάρτηση επανάκλησης που εκτελείται όταν αλλάζει η τιμή κατεύθυνσης GPS.

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

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

A pointer to a function that will be called when the GPS heading value changes. The function must take no parameters and return void.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.