Czujnik GPS#
Wstęp#
Klasa gps służy do sterowania i dostępu do danych z czujnika V5 GPS (Game Positioning System™). Czujnik ten zapewnia dokładne śledzenie położenia i orientacji robota na polu VEX. Wykorzystuje on kod GPS wokół obwodu pola do obliczania współrzędnych X i Y oraz kierunku robota w czasie rzeczywistym.
Czujnik GPS zwraca położenie robota, korzystając z punktu odniesienia automatycznie obliczonego na podstawie przesunięć wprowadzonych podczas konfiguracji czujnika GPS w oknie Urządzenia.
Aby uzyskać więcej informacji na temat czujnika GPS, przeczytaj Korzystanie z czujnika GPS z VEX V5 w bibliotece VEX.
Punkt odniesienia działa jak własna pozycja czujnika GPS (0, 0), w której wszystkie współrzędne, kierunki i ruchy zwracane przez metody GPS są względne względem tego skonfigurowanego punktu.

Konstruktory klas#
1 — Tworzy obiekt
gpsna określonym porcie inteligentnym, używając domyślnego początku (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Tworzy obiekt
gpsna określonym porcie inteligentnym i definiuje niestandardową pozycję początkową.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Destruktor klasy#
Niszczy obiekt gps i uwalnia powiązane zasoby.
~gps();
Parametry#
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Inteligentny port, do którego podłączony jest czujnik GPS, zapisany jako |
|
|
Współrzędna X położenia początkowego. |
|
|
Współrzędna Y położenia początkowego. |
|
|
Jednostka miary używana dla
|
|
|
Przesunięcie obrotowe czujnika GPS w stopniach, od 0,00 do 359,99. Wartość domyślna to 0. |
|
|
Kierunek, który zwróci dodatnie wartości nagłówka:
|
Przykłady#
// 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
Funkcje członkowskie#
Klasa gps zawiera następujące funkcje członkowskie:
calibrate— Kalibruje czujnik GPS.setOrigin— Ustawia położenie początkowe układu współrzędnych GPS.setLocation— Ustawia bieżącą lokalizację i kierunek czujnika GPS.xPosition— Zwraca aktualną pozycję X.yPosition— Zwraca aktualną pozycję Y.heading— Zwraca bieżący nagłówek.acceleration— Zwraca przyspieszenie liniowe wzdłuż określonej osi.gyroRate— Zwraca prędkość kątową dla określonej osi.orientation— Zwraca orientację dla określonej osi.quality— Zwraca aktualną jakość sygnału GPS.changed— Rejestruje funkcję wywołania zwrotnego, która jest uruchamiana po zmianie danych GPS.
Przed wywołaniem jakiejkolwiek funkcji członkowskiej gps należy utworzyć instancję gps , jak pokazano poniżej:
/* 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);
Metody klasowe#
calibrate#
Kalibruje czujnik GPS. Spowoduje to ustawienie skonfigurowanego kierunku GPS (zgodnie z jego przesunięciem kątowym) jako aktualnego kierunku układu napędowego.
Podczas procesu kalibracji czujnik GPS musi pozostać nieruchomy.
Available Functionsvoid calibrate();
Funkcja ta nie przyjmuje żadnych parametrów.
Return ValuesTa funkcja nie zwraca wartości.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Ustawia początek układu współrzędnych GPS.
Available Functions1 — Ustawia początek na określoną pozycję X i Y.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Ustawia początek na bieżącą pozycję czujnika.
void setOrigin();
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Współrzędna X nowego położenia początkowego. |
|
|
Współrzędna Y nowego położenia początkowego. |
|
|
Jednostka miary używana dla
|
Ta funkcja nie zwraca wartości.
NotessetLocation#
Ustawia aktualną pozycję GPS i kierunek.
Available Functions1 — Ustawia bieżącą lokalizację, używając określonych jednostek odległości i obrotu.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Ustawia bieżącą lokalizację przy użyciu milimetrów i stopni.
void setLocation( double x, double y, double angle );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Współrzędna X bieżącej lokalizacji. |
|
|
Współrzędna Y bieżącej lokalizacji. |
|
|
Jednostka miary używana dla
|
|
|
Wartość nagłówka dla bieżącej lokalizacji. |
|
|
Jednostka miary używana dla kąta
|
Ta funkcja nie zwraca wartości.
NotesxPosition#
Zwraca aktualną pozycję X czujnika GPS.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka miary dla zwróconej pozycji X:
|
Zwraca wartość double co oznacza przesunięcie pozycji x od początku układu współrzędnych w określonych jednostkach.
Pozycję X mierzy się względem bieżącego punktu początkowego.
Pochodzenie można zmienić za pomocą
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#
Zwraca aktualną pozycję Y czujnika GPS.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka miary dla zwróconej pozycji Y:
|
Zwraca wartość double co oznacza przesunięcie pozycyjne Y od początku układu współrzędnych w określonych jednostkach.
Pozycję Y mierzy się względem bieżącego punktu początkowego.
Pochodzenie można zmienić za pomocą
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#
Zwraca aktualny kurs (kąt odchylenia) czujnika GPS.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka miary dla zwracanej wartości kursu:
|
Zwraca wartość double reprezentującą bieżący nagłówek w określonych jednostkach.
Wartość nagłówka mieści się w przedziale od 0 do 360 stopni.
Dodatni kierunek obrotu jest określany przez parametr
dirokreślony podczas konstrukcji.
// 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#
Zwraca przyspieszenie liniowe zmierzone przez czujnik GPS wzdłuż określonej osi.
Available Functionsdouble acceleration(
axisType axis );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Oś, dla której zostanie zwrócone przyspieszenie:
|
Zwraca wartość double oznaczające przyspieszenie wzdłuż określonej osi w G (jednostkach grawitacji).
Wartości przyspieszenia podawane są w jednostkach G, gdzie 1 G odpowiada przyspieszeniu grawitacyjnemu na powierzchni Ziemi.
gyroRate#
Zwraca prędkość kątową zmierzoną przez czujnik GPS wzdłuż określonej osi.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Oś, dla której zostanie zwrócona prędkość kątowa:
|
|
|
Jednostka miary dla zwracanej prędkości kątowej:
|
Zwraca wartość double co oznacza prędkość kątową wzdłuż określonej osi w wybranych jednostkach.
orientation#
Zwraca kąt orientacji czujnika GPS dla określonej osi.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Oś orientacji do pobrania:
|
|
|
Jednostka miary dla zwracanej wartości orientacji:
|
Zwraca wartość double reprezentującą orientację określonej osi w wybranych jednostkach.
quality#
Zwraca odczuwalną jakość sygnału GPS.
Available Functionsint32_t quality();
Funkcja ta nie przyjmuje żadnych parametrów.
Return ValuesZwraca wartość int32_t reprezentującą jakość sygnału GPS w procentach:
Możliwe wartości |
Opis |
|---|---|
|
Wszystkie podane przez czujnik GPS dane dotyczące położenia i kierunku są prawidłowe. |
|
Dane dotyczące położenia nie są już obliczane bezpośrednio na podstawie kodu GPS, lecz szacowane za pomocą alternatywnych metod. |
|
Ważne są tylko wartości nagłówka. W miarę upływu czasu i braku wystarczającego skanowania kodu pola GPS, jakość sygnału nadal spada, aż do |
changed#
Rejestruje funkcję wywołania zwrotnego, która jest uruchamiana, gdy zmienia się wartość kierunku GPS.
Available Functionsvoid changed(
void (* callback)(void) );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wskaźnik do funkcji, która zostanie wywołana po zmianie wartości kierunku GPS. Funkcja nie może przyjmować żadnych parametrów i zwracać |
Ta funkcja nie zwraca wartości.