Capteur GPS#

Introduction#

La classe gps permet de contrôler et d’accéder aux données du capteur GPS V5 (Game Positioning System™). Ce capteur assure un suivi précis de la position et de l’orientation d’un robot sur le terrain VEX. Il utilise le code de terrain GPS autour du périmètre du terrain pour calculer en temps réel les coordonnées X et Y ainsi que le cap du robot.

Le capteur GPS renvoie la position du robot à l’aide d’un point de référence calculé automatiquement à partir des décalages saisis lors de la configuration du capteur GPS dans la fenêtre Appareils.

Pour plus d’informations sur le capteur GPS, lisez Utilisation du capteur GPS avec VEX V5 dans la bibliothèque VEX.

Le point de référence sert de position (0, 0) propre au capteur GPS, où toutes les coordonnées, les caps et les mouvements renvoyés par les méthodes GPS sont relatifs à ce point configuré.

Le capteur GPS VEX V5.

Constructeurs de classes#

1 — Crée un objet gps sur le port intelligent spécifié en utilisant l’origine par défaut (0, 0).

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

2 — Crée un objet gps sur le port intelligent spécifié et définit une position d’origine personnalisée.

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

Destructeur de classe#

Détruit l’objet gps et libère les ressources associées.

~gps();

Paramètres#

Paramètre

Taper

Description

index

int32_t

Le port intelligent auquel le capteur GPS est connecté, écrit sous la forme PORTx, où x est le numéro de port (par exemple, PORT1).

ox

double

L’abscisse du point d’origine.

oy

double

La coordonnée Y de la position d’origine.

units

distanceUnits

L’unité de mesure utilisée pour ox et oy:

  • mm (par défaut) — millimètres
  • distanceUnits::in / inches — pouces
  • distanceUnits::cm — centimètres

heading_offset

double

Décalage rotationnel du capteur GPS en degrés, de 0,00 à 359,99. La valeur par défaut est 0.

dir

turnType

La direction qui renverra des valeurs de cap positives :

  • right (par défaut)
  • left

Exemples#

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

Fonctions des membres#

La classe gps comprend les fonctions membres suivantes :

  • calibrate — Calibre le capteur GPS.

  • setOrigin — Définit la position d’origine du système de coordonnées GPS.

  • setLocation — Définit l’emplacement et le cap actuels du capteur GPS.

  • xPosition — Renvoie la position X actuelle.

  • yPosition — Renvoie la position Y actuelle.

  • heading — Renvoie le titre actuel.

  • acceleration — Renvoie l’accélération linéaire le long de l’axe spécifié.

  • gyroRate — Renvoie la vitesse angulaire pour l’axe spécifié.

  • orientation — Renvoie l’orientation pour l’axe spécifié.

  • quality — Renvoie la qualité actuelle du signal GPS.

  • changed — Enregistre une fonction de rappel qui s’exécute lorsque les données GPS changent.

Avant d’appeler les fonctions membres gps , une instance gps doit être créée, comme indiqué ci-dessous :

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

Méthodes de classe#

calibrate#

Calibre le capteur GPS. Cela définira le cap configuré par le GPS (en fonction de son décalage angulaire) comme cap actuel de la transmission.

Le capteur GPS doit rester immobile pendant le processus d’étalonnage.

Available Functions
void calibrate();

Parameters

Cette fonction ne prend aucun paramètre.

Return Values

Cette fonction ne renvoie aucune valeur.

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

setOrigin#

Définit l’origine du système de coordonnées GPS.

Available Functions

1 — Définit l’origine à la position X et Y spécifiée.

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

2 — Définit l’origine sur la position actuelle du capteur.

void setOrigin();

Parameters

Paramètre

Taper

Description

x

double

L’abscisse du nouveau point d’origine.

y

double

La coordonnée Y de la nouvelle position d’origine.

units

distanceUnits

L’unité de mesure utilisée pour x et y:

  • mm (par défaut) — millimètres
  • distanceUnits::cm — centimètres
  • distanceUnits::in — pouces

Return Values

Cette fonction ne renvoie aucune valeur.

Notes

setLocation#

Définit la position et le cap GPS actuels.

Available Functions

1 — Définit l’emplacement actuel en utilisant les unités de distance et de rotation spécifiées.

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

2 — Définit la position actuelle en millimètres et en degrés.

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

Parameters

Paramètre

Taper

Description

x

double

La coordonnée X de la position actuelle.

y

double

La coordonnée Y de la position actuelle.

units

distanceUnits

L’unité de mesure utilisée pour x et y:

  • mm (par défaut) — millimètres
  • distanceUnits::in / inches — pouces
  • distanceUnits::cm — centimètres

angle

double

La valeur de l’en-tête pour l’emplacement actuel.

units_r

rotationUnits

The unit of measurement used for angle:

  • deg (default) — degrees
  • rev — revolutions

Return Values

Cette fonction ne renvoie aucune valeur.

Notes
  • L’appel de cette fonction met à jour les valeurs de position et de cap internes signalées par xPosition, yPosition, et heading.

xPosition#

Renvoie la position X actuelle du capteur GPS.

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

Parameters

Paramètre

Taper

Description

units

distanceUnits

Unité de mesure de la position X renvoyée :

  • mm (par défaut) — millimètres
  • distanceUnits::cm — centimètres
  • distanceUnits::in — pouces

Return Values

Renvoie un nombre décimal double représentant le décalage de position x par rapport à l’origine dans les unités spécifiées.

Notes
  • La position X est mesurée par rapport à l’origine actuelle.

  • L’origine peut être modifiée à l’aide de 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#

Renvoie la position Y actuelle du capteur GPS.

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

Parameters

Paramètre

Taper

Description

units

distanceUnits

Unité de mesure de la position Y renvoyée :

  • mm (par défaut) — millimètres
  • distanceUnits::cm — centimètres
  • distanceUnits::in — pouces

Return Values

Renvoie un nombre décimal double représentant le décalage de position Y par rapport à l’origine dans les unités spécifiées.

Notes
  • La position Y est mesurée par rapport à l’origine actuelle.

  • L’origine peut être modifiée en utilisant 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#

Renvoie le cap actuel (angle de lacet) du capteur GPS.

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

Parameters

Paramètre

Taper

Description

units

rotationUnits

Unité de mesure de la valeur de cap renvoyée :

  • deg (par défaut) — degrés
  • rev — tours

Return Values

Renvoie un double double représentant le cap actuel dans les unités spécifiées.

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#

Renvoie l’accélération linéaire mesurée par le capteur GPS le long de l’axe spécifié.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Paramètre

Taper

Description

axis

axisType

Axe pour lequel l’accélération sera renvoyée :

  • xaxis
  • yaxis
  • zaxis

Return Values

Renvoie un double double représentant l’accélération le long de l’axe spécifié en G (unités gravitationnelles).

Notes
  • Les valeurs d’accélération sont exprimées en unités de G, où 1 G correspond à l’accélération due à la gravité à la surface de la Terre.

gyroRate#

Renvoie la vitesse angulaire mesurée par le capteur GPS le long de l’axe spécifié.

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

Parameters

Paramètre

Taper

Description

axis

axisType

Axe pour lequel la vitesse angulaire sera renvoyée :

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Unité de mesure de la vitesse angulaire renvoyée :

  • dps — degrés par seconde
  • rpm — tours par minute

Return Values

Renvoie un double représentant la vitesse angulaire le long de l’axe spécifié dans les unités sélectionnées.

orientation#

Renvoie l’angle d’orientation du capteur GPS pour l’axe spécifié.

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

Parameters

Paramètre

Taper

Description

axis

orientationType

Axes d’orientation à récupérer :

  • roll
  • pitch
  • yaw

units

rotationUnits

Unité de mesure de la valeur d’orientation renvoyée :

  • deg — degrés
  • rev — tours

Return Values

Renvoie un double représentant l’orientation de l’axe spécifié dans les unités sélectionnées.

quality#

Renvoie la qualité perçue du signal GPS.

Available Functions
int32_t quality();

Parameters

Cette fonction ne prend aucun paramètre.

Return Values

Renvoie un entier int32_t représentant la qualité du signal GPS en pourcentage :

Valeurs possibles

Description

100

Toutes les données de position et de cap transmises par le capteur GPS sont valides.

~90

Les données de position ne sont plus calculées directement à partir du code de terrain GPS, mais estimées par d’autres moyens.

0 – 80

Seules les valeurs de cap sont valides. Si le temps passe sans un balayage suffisant du code de terrain GPS, la qualité du signal continue de diminuer jusqu’à 0, moment auquel les données GPS sont effectivement figées et ne sont plus valides.

changed#

Enregistre une fonction de rappel qui s’exécute lorsque la valeur du cap GPS change.

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

Parameters

Paramètre

Taper

Description

callback

void (*)(void)

Un pointeur vers une fonction qui sera appelée lorsque la valeur du cap GPS change. La fonction ne doit prendre aucun paramètre et renvoyer void

Return Values

Cette fonction ne renvoie aucune valeur.