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é.

Constructeurs de classes#
1 — Crée un objet
gpssur 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
gpssur 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 |
|---|---|---|
|
|
Le port intelligent auquel le capteur GPS est connecté, écrit sous la forme |
|
|
L’abscisse du point d’origine. |
|
|
La coordonnée Y de la position d’origine. |
|
|
L’unité de mesure utilisée pour
|
|
|
Décalage rotationnel du capteur GPS en degrés, de 0,00 à 359,99. La valeur par défaut est 0. |
|
|
La direction qui renverra des valeurs de cap positives :
|
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 Functionsvoid calibrate();
Cette fonction ne prend aucun paramètre.
Return ValuesCette 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 Functions1 — Définit l’origine à la position X et Y spécifiée.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Définit l’origine sur la position actuelle du capteur.
void setOrigin();
Paramètre |
Taper |
Description |
|---|---|---|
|
|
L’abscisse du nouveau point d’origine. |
|
|
La coordonnée Y de la nouvelle position d’origine. |
|
|
L’unité de mesure utilisée pour
|
Cette fonction ne renvoie aucune valeur.
NotessetLocation#
Définit la position et le cap GPS actuels.
Available Functions1 — 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 );
Parameters2 — Définit la position actuelle en millimètres et en degrés.
void setLocation( double x, double y, double angle );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
La coordonnée X de la position actuelle. |
|
|
La coordonnée Y de la position actuelle. |
|
|
L’unité de mesure utilisée pour
|
|
|
La valeur de l’en-tête pour l’emplacement actuel. |
|
|
The unit of measurement used for
|
Cette fonction ne renvoie aucune valeur.
NotesxPosition#
Renvoie la position X actuelle du capteur GPS.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Unité de mesure de la position X renvoyée :
|
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.
La position X est mesurée par rapport à l’origine actuelle.
L’origine peut être modifiée à l’aide de
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#
Renvoie la position Y actuelle du capteur GPS.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Unité de mesure de la position Y renvoyée :
|
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.
La position Y est mesurée par rapport à l’origine actuelle.
L’origine peut être modifiée en utilisant
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#
Renvoie le cap actuel (angle de lacet) du capteur GPS.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Unité de mesure de la valeur de cap renvoyée :
|
Renvoie un double double représentant le cap actuel dans les unités spécifiées.
La valeur de l’orientation est comprise entre 0 et 360 degrés.
La direction de rotation positive est déterminée par le paramètre
dirspécifié lors de la construction.
// 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 Functionsdouble acceleration(
axisType axis );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Axe pour lequel l’accélération sera renvoyée :
|
Renvoie un double double représentant l’accélération le long de l’axe spécifié en G (unités gravitationnelles).
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 Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Axe pour lequel la vitesse angulaire sera renvoyée :
|
|
|
Unité de mesure de la vitesse angulaire renvoyée :
|
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 Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Axes d’orientation à récupérer :
|
|
|
Unité de mesure de la valeur d’orientation renvoyée :
|
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 Functionsint32_t quality();
Cette fonction ne prend aucun paramètre.
Return ValuesRenvoie un entier int32_t représentant la qualité du signal GPS en pourcentage :
Valeurs possibles |
Description |
|---|---|
|
Toutes les données de position et de cap transmises par le capteur GPS sont valides. |
|
Les données de position ne sont plus calculées directement à partir du code de terrain GPS, mais estimées par d’autres moyens. |
|
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’à |
changed#
Enregistre une fonction de rappel qui s’exécute lorsque la valeur du cap GPS change.
Available Functionsvoid changed(
void (* callback)(void) );
Paramètre |
Taper |
Description |
|---|---|---|
|
|
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 |
Cette fonction ne renvoie aucune valeur.