Sensor GPS#
Introducción#
La clase gps se utiliza para controlar y acceder a los datos del sensor V5 GPS (Game Positioning System™). Este sensor proporciona un seguimiento preciso de la posición y la orientación de un robot en el campo VEX. Utiliza el código de campo GPS alrededor del perímetro del campo para calcular las coordenadas X e Y del robot y el rumbo en tiempo real.
El sensor GPS devuelve la posición del robot utilizando un punto de referencia calculado automáticamente a partir de los desplazamientos introducidos al configurar el sensor GPS en la ventana Dispositivos.
Para obtener más información sobre el sensor GPS, lea Uso del sensor GPS con VEX V5 en la biblioteca de VEX.
El punto de referencia actúa como la posición propia (0, 0) del sensor GPS donde todas las coordenadas, encabezamientos y movimientos devueltos por los métodos GPS son relativos a este punto configurado.

Constructores de clase#
1 — Crea un objeto
gpsen el puerto inteligente especificado utilizando el origen predeterminado (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Crea un objeto
gpsen el puerto inteligente especificado y define una posición de origen personalizada.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Destructor de clase#
Destruye el objeto gps y libera los recursos asociados.
~gps();
Parámetros#
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El puerto inteligente al que está conectado el sensor GPS, escrito como |
|
|
La coordenada X de la posición de origen. |
|
|
La coordenada Y de la posición de origen. |
|
|
La unidad de medida utilizada para
|
|
|
Desplazamiento rotacional del sensor GPS en grados, de 0,00 a 359,99. El valor predeterminado es 0. |
|
|
La dirección que devolverá valores de encabezado positivos:
|
Ejemplos#
// 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
Funciones de los miembros#
La clase gps incluye las siguientes funciones de miembro:
calibrate— Calibra el sensor GPS.setOrigin— Establece la posición de origen para el sistema de coordenadas GPS.setLocation— Establece la ubicación actual y el rumbo del sensor GPS.xPosition— Devuelve la posición X actual.yPosition— Devuelve la posición Y actual.heading— Devuelve el encabezado actual.acceleration— Devuelve la aceleración lineal a lo largo del eje especificado.gyroRate— Devuelve la velocidad angular para el eje especificado.orientation— Devuelve la orientación para el eje especificado.quality— Devuelve la calidad de la señal GPS actual.changed: registra una función de devolución de llamada que se ejecuta cuando cambian los datos del GPS.
Antes de llamar a cualquier función de miembro gps, se debe crear una instancia gps, como se muestra a continuación:
/* 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étodos de clase#
calibrate#
Calibra el sensor GPS. Esto establecerá el rumbo configurado del GPS (de acuerdo con su desplazamiento angular) como el rumbo actual del tren de transmisión.
El sensor GPS debe permanecer quieto durante el proceso de calibración.
Available Functionsvoid calibrate();
Esta función no toma ningún parámetro.
Return ValuesEsta función no devuelve un valor.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Establece el origen del sistema de coordenadas GPS.
Available Functions1 — Establece el origen en las posiciones X e Y especificadas.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Establece el origen en la posición actual del sensor.
void setOrigin();
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La coordenada X de la nueva posición de origen. |
|
|
La coordenada Y de la nueva posición de origen. |
|
|
La unidad de medida utilizada para
|
Esta función no devuelve un valor.
NotessetLocation#
Establece la posición actual del GPS y el rumbo.
Available Functions1 — Establece la ubicación actual utilizando las unidades de distancia y rotación especificadas.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Establece la ubicación actual usando milímetros y grados.
void setLocation( double x, double y, double angle );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La coordenada X de la ubicación actual. |
|
|
La coordenada Y de la ubicación actual. |
|
|
La unidad de medida utilizada para
|
|
|
El valor del encabezado para la ubicación actual. |
|
|
La unidad de medida utilizada para el
|
Esta función no devuelve un valor.
NotesxPosition#
Devuelve la posición X actual del sensor GPS.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La unidad de medida para la posición X devuelta:
|
Devuelve un double que representa el desplazamiento posicional x desde el origen en las unidades especificadas.
La posición X se mide en relación con el origen actual.
El origen se puede cambiar usando
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#
Devuelve la posición Y actual del sensor GPS.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La unidad de medida para la posición Y devuelta:
|
Devuelve un double que representa el desplazamiento posicional Y desde el origen en las unidades especificadas.
La posición Y se mide en relación con el origen actual.
El origen se puede cambiar utilizando
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#
Devuelve el rumbo actual (ángulo de guiñada) del sensor GPS.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La unidad de medida para el valor de rumbo devuelto:
|
Devuelve un double que representa el encabezado actual en las unidades especificadas.
El valor del encabezado se ajusta entre 0 y 360 grados.
La dirección de rotación positiva está determinada por el parámetro
direspecificado durante la construcción.
// 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#
Devuelve la aceleración lineal medida por el sensor GPS a lo largo del eje especificado.
Available Functionsdouble acceleration(
axisType axis );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El eje para el que se devolverá la aceleración:
|
Devuelve un double que representa la aceleración a lo largo del eje especificado en G (unidades gravitacionales).
Los valores de aceleración se informan en unidades de G, donde 1 G es igual a la aceleración debida a la gravedad en la superficie de la Tierra.
gyroRate#
Devuelve la velocidad angular medida por el sensor GPS a lo largo del eje especificado.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El eje para el que se devolverá la velocidad angular:
|
|
|
La unidad de medida para la velocidad angular devuelta:
|
Devuelve un double que representa la velocidad angular a lo largo del eje especificado en las unidades seleccionadas.
orientation#
Devuelve el ángulo de orientación del sensor GPS para el eje especificado.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Eje de orientación a recuperar:
|
|
|
La unidad de medida para el valor de orientación devuelto:
|
Devuelve un double que representa la orientación del eje especificado en las unidades seleccionadas.
quality#
Devuelve la calidad de la señal GPS percibida.
Available Functionsint32_t quality();
Esta función no toma ningún parámetro.
Return ValuesDevuelve un int32_t que representa la calidad de la señal GPS como porcentaje:
Valores posibles |
Descripción |
|---|---|
|
Todos los datos de posición y rumbo informados desde el sensor GPS son válidos. |
|
Los datos posicionales ya no se calculan directamente a partir del código de campo GPS, sino que se estiman a través de medios alternativos. |
|
Solo los valores de encabezado son válidos. A medida que pasa el tiempo sin un escaneo suficiente del código de campo GPS, la calidad de la señal continúa disminuyendo hasta |
changed#
Registra una función de devolución de llamada que se ejecuta cuando cambia el valor del encabezado GPS.
Available Functionsvoid changed(
void (* callback)(void) );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Un puntero a una función que se llamará cuando cambie el valor del encabezado GPS. La función no debe tomar parámetros y devolver |
Esta función no devuelve un valor.