GPS#
To make gps commands appear in VEXcode V5, a GPS (Game Positioning System™) Sensor must be configured in the Devices window.
Para obtener más información, consulte estos artículos:
Inicializando la clase gps#
Este constructor gps
crea un objeto de la clase gps en el puerto especificado con el desplazamiento rotacional especificado.
Parámetro |
Descripción |
---|---|
|
Un Puerto inteligente válido al que está conectado el sensor GPS. |
|
Desplazamiento rotacional del sensor GPS en grados, de 0,00 a 359,99. |
// Construct a GPS Sensor "GPS1" with the gps class, using
// a 180 degree offset.
gps GPS1 = gps(PORT1, 180);
Este constructor gps
crea un objeto de la clase gps en el puerto especificado con una posición de origen y un desplazamiento rotacional especificados.
Parámetro |
Descripción |
---|---|
|
Un Puerto inteligente válido al que está conectado el sensor GPS. |
|
La ubicación X del sensor GPS con respecto al origen (también conocido como punto de referencia) del robot. |
|
La ubicación Y del sensor GPS con respecto al origen (también conocido como punto de referencia) del robot. |
|
Una unidad de distancia válida. |
|
Desplazamiento rotacional del sensor GPS en grados, de 0,00 a 359,99. |
// Construct a GPS Sensor "GPS1" with the gps class, with
// the origin at (10, 10) and using a 180 degree offset.
gps GPS1 = gps(PORT1, 10.00, 10.00, mm, 180);
Este objeto GPS1
se utilizará en todos los ejemplos posteriores a lo largo de esta documentación de API cuando se haga referencia a los métodos de la clase gps.
Métodos de clase#
calibrar()#
El método calibrate()
calibra el sensor GPS cuando este se ha configurado como parte de un tren motriz V5. Esto establecerá el rumbo configurado del GPS (según su desplazamiento angular) como el rumbo actual del tren motriz.
El sensor GPS y la transmisión deben permanecer quietos durante el proceso de calibración.
En este ejemplo, se calibrará el sensor GPS y luego se utilizará el rumbo del sensor para girar el robot hacia el rumbo de 180 grados del campo.
// Turn to face the lower Field wall using data from the GPS Sensor.
DrivetrainGPS.calibrate()
Drivetrain.turnToHeading(180, degrees)
Devoluciones: Ninguna.
está calibrando()#
El método isCalibrating()
devuelve verdadero mientras el sensor GPS está realizando una recalibración solicitada y cambia a falso
una vez que se ha completado la recalibración.
Devuelve: Devuelve “verdadero” si el sensor GPS aún se está calibrando.
restablecerEncabezado()#
El método resetHeading()
establece el rumbo del sensor GPS a 0.
Devoluciones: Ninguna.
restablecerRotación()#
El método resetRotation()
establece el ángulo de rotación del sensor GPS en 0.
Devoluciones: Ninguna.
establecerEncabezado()#
El método setHeading(value, units)
establece el rumbo del sensor GPS a un nuevo valor.
Parámetros |
Descripción |
---|---|
valor |
El valor de rotación a establecer. |
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Devoluciones: Ninguna.
setRotation()#
El método setRotation(value, units)
establece la rotación del sensor GPS a un nuevo valor.
Parámetros |
Descripción |
---|---|
valor |
El valor de rotación a establecer. |
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Devoluciones: Ninguna.
rollo()#
El método roll(units)
devuelve el balanceo del sensor GPS.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Devuelve: El resultado del sensor GPS en las unidades especificadas.
paso()#
El método pitch(units)
devuelve la inclinación del sensor GPS.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Devuelve: El paso del sensor GPS en las unidades especificadas.
guiñada()#
El método yaw(units)
devuelve la guiñada del sensor GPS.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Devuelve: La guiñada del sensor GPS en las unidades especificadas.
xPosición()#
El método xPosition(units)
devuelve la coordenada x actual de un sensor GPS en el campo.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una unidad de distancia válida. El valor predeterminado es |
De forma predeterminada, el método xPosition()
devuelve la ubicación de la coordenada X de un sensor GPS.
Si se agrega un desplazamiento al configurar el sensor GPS, la posición X informada será la del punto de referencia en el robot.
Devuelve: La coordenada x del sensor GPS en las unidades especificadas.
En este ejemplo, el robot (que comienza en el lado derecho del campo) avanza hacia el centro hasta que la posición X se indica inferior a 0 mm. Entonces, el robot deja de avanzar.
// Drive slowly towards the center of the Field.
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS reports an x position near the center of the Field.
waitUntil((GPS20.xPosition(mm) < 0.0));
Drivetrain.stop();
yPosition()#
El método yPosition(units)
devuelve la coordenada y actual de un sensor GPS en el campo.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una unidad de distancia válida. El valor predeterminado es |
De forma predeterminada, el método yPosition()
devuelve la ubicación de la coordenada Y de un sensor GPS.
Si se agrega un desplazamiento al configurar el sensor GPS, la posición Y informada será la del punto de referencia en el robot.
Devuelve: La coordenada y del sensor GPS en las unidades especificadas.
// Get the current y coordinate for the GPS Sensor.
yPos = GPS1.yPosition();
En este ejemplo, el robot (que comienza en la parte superior del campo) avanza hacia el centro hasta que la posición Y se indica inferior a 0 mm. A continuación, el robot detiene su avance.
// 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((GPS20.yPosition(mm) < 0.0));
Drivetrain.stop();
orientación()#
El método orientation(axis, units)
devuelve la orientación de un eje del GPS.
Parámetros |
Descripción |
---|---|
eje |
Un axisType válido. |
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
El eje x, o roll informa un valor entre -180 y +180 grados, que representa la orientación cuando el sensor GPS está inclinado hacia la izquierda o hacia la derecha.
El eje y, o de paso, informa un valor entre -90 y +90 grados, que representa la orientación cuando el sensor GPS está inclinado hacia adelante o hacia atrás.
El eje z, guiñada informa un valor entre -180 y +180 grados, que representa la orientación cuando el sensor GPS gira sobre el eje vertical.
Devuelve: Un valor para la orientación del eje en las unidades especificadas.
// Get the orientation of the x axis on the GPS Sensor.
pitch = GPS1.orientation(xaxis);
título()#
El método heading(units)
devuelve el rumbo de un sensor GPS en un campo basándose en las lecturas del sensor del código de campo GPS.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
El método heading
informa un rango de 0,00 a 359,99 grados.
El rumbo corresponde al rumbo de campo, que abarca un rango de 0° a 359,9° en sentido horario. El 0° se encuentra a las 12 en punto.
De forma predeterminada, el método heading
informa el rumbo de un sensor GPS.
Si se agrega un desplazamiento de ángulo al configurar el sensor GPS, el rumbo informado será el del punto de referencia en el robot.
Devuelve: El rumbo actual del sensor GPS en las unidades especificadas.
En este ejemplo, el robot (que comienza mirando hacia las 12 en punto del campo) gira hacia la pared derecha del campo hasta que se informa que su rumbo es mayor de 90 grados. Entonces, el robot deja de moverse.
// Turn slowly to face the right wall.
Drivetrain.setTurnVelocity(20.0, percent);
Drivetrain.turn(right);
// Stop turningwhen the GPS reports a heading greater than 90 degrees.
waitUntil((GPS20.heading() > 90.0));
Drivetrain.stop();
rotación()#
El método rotation(units)
devuelve la rotación actual del sensor GPS.
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Devuelve: La rotación actual del sensor GPS en las unidades especificadas.
// Get the current rotation for the GPS Sensor.
rotation = GPS1.rotation();
tasa de giro()#
El método gyroRate(axis, units)
devuelve la velocidad del giro de un eje del sensor GPS.
Parámetros |
Descripción |
---|---|
eje |
Un AxisType válido. |
unidades |
Opcional. Una velocityUnit válida. El valor predeterminado es |
Devuelve: Un valor para la velocidad del giro del eje en las unidades especificadas.
// Get the gyro rate for the z axis of the GPS Sensor.
gyroRate = GPS1.gyroRate(zaxis);
aceleración()#
El método acceleration(axis)
devuelve la aceleración de un eje del sensor GPS.
Parámetros |
Descripción |
---|---|
eje |
Un axisType válido. |
Devuelve: Un valor para la aceleración del eje en unidades de gravedad.
// Get the acceleration for the Zz axis of the GPS Sensor.
accel = GPS1.acceleration(zaxis);
calidad()#
El método quality()
informa un valor numérico de 0 a 100 que representa la calidad de la señal actual de un sensor GPS.
Valor reportado |
Descripción |
---|---|
100 |
Todos los datos de posición y rumbo informados por un sensor GPS son válidos. |
~90 |
Los datos de posición ya no se calculan capturando información del código de campo VEX, sino a través de medios alternativos. |
0 - 80 |
Solo los valores de rumbo del sensor GPS son válidos, pero a medida que pasa el tiempo en el que un sensor GPS no escanea lo suficiente del código de campo VEX para determinar con precisión la información de posición y rumbo, la calidad de la señal informada continuará cayendo hasta 0, donde todos los datos del sensor GPS quedan efectivamente congelados y ya no son válidos. |
Devoluciones: La calidad del sensor GPS en el rango 0 – 100.
En este fragmento de código, la calidad de la señal se verificará constantemente mediante el bucle while (true)
. La rama TRUE solo se ejecutará si la calidad de la señal del sensor GPS reporta valores superiores a 90, para garantizar la validez de los datos del sensor GPS utilizados en el proyecto.
while (true) {
if (GPS20.quality() > 90.0) {} else {}
wait(5, msec);
}
return 0;
establecerOrigen()#
El método setOrigin(x, y, units)
establece el origen del sensor GPS.
Parámetros |
Descripción |
---|---|
incógnita |
La ubicación X del GPS con respecto al origen del robot. |
y |
La ubicación Y del GPS con respecto al origen del robot. |
unidades |
Opcional. Una unidad de distancia válida. El valor predeterminado es |
Devoluciones: Ninguna.
// Set the origin of the GPS Sensor.
GPS1.setOrigin(6, -6, inches);
establecerUbicación()#
El método setLocation(x, y, units, angle, units_r)
establece las coordenadas X, Y y el rumbo de un sensor GPS a un valor conocido al inicio de un proyecto. Esto permite reducir las imprecisiones de los datos GPS debido a la proximidad del sensor a las paredes del campo al inicio del proyecto.
Parámetros |
Descripción |
---|---|
incógnita |
La coordenada x inicial. |
y |
La coordenada y inicial. |
unidades |
Opcional. Una unidad de distancia válida. El valor predeterminado es |
ángulo |
Opcional. El rumbo inicial del robot. |
unidades_r |
Opcional. Una rotationUnit válida. El valor predeterminado es |
Cuando un sensor GPS está demasiado cerca de las paredes del campo para leer el código de campo (por ejemplo, cuando un robot está en la posición de inicio de un juego en un campo), a menudo pueden ocurrir comportamientos inesperados si el código se basa en los datos de coordenadas y rumbo del GPS.
Los parámetros x
e y
son las coordenadas X e Y del punto de referencia de su robot en el campo, en esta ubicación conocida. El punto de referencia de su robot es la misma ubicación que se utilizó para calcular los desplazamientos al configurar el sensor GPS.
El parámetro heading
es el rumbo del punto de referencia del robot. En la imagen de ejemplo anterior, el sensor GPS está montado mirando hacia atrás del robot, mientras que el punto de referencia se encuentra en el extremo del brazo. Dado que el punto de referencia está orientado hacia la pared derecha (rumbo de 90°), el valor de rumbo que debe introducirse es 90°.
Devoluciones: Ninguna.
El ejemplo que se muestra aquí establece la posición del punto de referencia en el robot, el brazo, para que coincida con la ubicación del robot en el campo.
// Wait so the GPS has time to initialize.
wait(0.5, seconds)
// Set the starting position to the bottom left corner of the Field facing the right wall.
DrivetrainGPS.setLocation(-1200, -1200, mm, 90)
cambió()#
El método changed(callback)
registra una función de devolución de llamada cuando cambia el valor del rumbo del GPS.
Parámetros |
Descripción |
---|---|
llamar de vuelta |
La función de devolución de llamada que se llamará cuando cambie el rumbo del GPS. |
Devuelve: Una instancia de la clase Event.
// Define the headingChanged function with a void return
// type, showing it doesn't return a value.
void headingChanged() {
// The Brain will print that the GPS Sensor's heading
// changed on the Brain's screen.
Brain.Screen.print("GPS heading changed");
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Turn the robot right.
Drivetrain.turn(right);
// Run headingChanged when the value of the GPS Sensor's
// heading changes.
GPS1.changed(headingChanged);
}
marca de tiempo()#
El método timestamp()
solicita la marca de tiempo del último paquete de estado recibido del sensor GPS.
Devuelve: Marca de tiempo del último paquete de estado como un entero de 32 bits sin signo en milisegundos.
instalado()#
El método installed()
verifica si el sensor GPS está instalado.
Devuelve: true
si el sensor GPS está instalado. false
si no lo está.