GPS-сенсор#
Вступ#
Клас gps використовується для керування та доступу до даних із датчика V5 GPS (Game Positioning System™). Цей датчик забезпечує точне відстеження положення та орієнтації робота на полі VEX. Він використовує код поля GPS по периметру поля для обчислення координат X та Y робота та його напрямку в режимі реального часу.
GPS-датчик повертає положення робота, використовуючи опорну точку, автоматично розраховану на основі зміщень, введених під час налаштування GPS-датчика у вікні «Пристрої».
Щоб отримати додаткові відомості про GPS-датчик, прочитайте статтю Використання GPS-датчика з VEX V5 у бібліотеці VEX.
Опорна точка діє як власна позиція (0, 0) GPS-датчика, де всі координати, напрямки та рухи, що повертаються методами GPS, відносяться до цієї налаштованої точки.

Конструктори класів#
1 — Створює об’єкт
gpsна вказаному смарт-порті, використовуючи початкову точку відліку за замовчуванням (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Створює об’єкт
gpsна вказаному смарт-порті та визначає власну початкову позицію.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Деструктор класів#
Знищує об’єкт gps та звільняє пов’язані з ним ресурси.
~gps();
Параметри#
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Розумний порт, до якого підключено GPS-датчик, записується як |
|
|
X-координата початкової позиції. |
|
|
Y-координата початкової позиції. |
|
|
Одиниця вимірювання, що використовується для
|
|
|
Зміщення обертання GPS-датчика в градусах, від 0,00 до 359,99. Значення за замовчуванням — 0. |
|
|
Напрямок, який повертатиме позитивні значення курсу:
|
Приклади#
// 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
Функції-члени#
Клас gps містить такі функції-члени:
calibrate— Калібрує GPS-датчик.setOrigin— Встановлює початкову позицію для системи координат GPS.setLocation— Встановлює поточне місцезнаходження та напрямок GPS-датчика.xPosition— Повертає поточну позицію X.yPosition— Повертає поточну позицію Y.heading— Повертає поточний заголовок.acceleration— Повертає лінійне прискорення вздовж заданої осі.gyroRate— Повертає кутову швидкість для зазначеної осі.orientation— Повертає орієнтацію для вказаної осі.quality— Повертає поточну якість сигналу GPS.changed— Реєструє функцію зворотного виклику, яка виконується при зміні даних GPS.
Перед викликом будь-яких функцій-членів gps необхідно створити екземпляр gps , як показано нижче:
/* 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);
Методи класу#
calibrate#
Калібрує GPS-датчик. Це встановить налаштований GPS-датчик (відповідно до його кутового зміщення) як поточний напрямок руху трансмісії.
GPS-датчик повинен залишатися нерухомим під час процесу калібрування.
Available Functionsvoid calibrate();
Ця функція не приймає жодних параметрів.
Return ValuesЦя функція не повертає значення.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Встановлює початок системи координат GPS.
Available Functions1 — Встановлює початок координат у вказане положення X та Y.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Встановлює початок координат у поточне положення датчика.
void setOrigin();
Параметр |
Тип |
Опис |
|---|---|---|
|
|
X-координата нового початкового положення. |
|
|
Координата Y нового початкового положення. |
|
|
Одиниця вимірювання, що використовується для
|
Ця функція не повертає значення.
NotessetLocation#
Встановлює поточне положення та напрямок руху за GPS.
Available Functions1 — Встановлює поточне місцезнаходження, використовуючи задані одиниці вимірювання відстані та обертання.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Встановлює поточне розташування в міліметрах та градусах.
void setLocation( double x, double y, double angle );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
X-координата поточного місцезнаходження. |
|
|
Y-координата поточного місцезнаходження. |
|
|
Одиниця вимірювання, що використовується для
|
|
|
Значення курсу для поточного місцезнаходження. |
|
|
Одиниця вимірювання, що використовується для кута
|
Ця функція не повертає значення.
NotesxPosition#
Повертає поточну позицію X GPS-датчика.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Одиниця вимірювання для повернутої позиції X:
|
Повертає значення типу double , що представляє зміщення позиції x відносно початку координат у вказаних одиницях вимірювання.
Положення X вимірюється відносно поточного початку координат.
Початок координат можна змінити за допомогою
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#
Повертає поточну позицію GPS-датчика по осі Y.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Одиниця вимірювання для повернутої позиції Y:
|
Повертає значення типу double , що представляє позиційне зміщення Y відносно початку координат у вказаних одиницях вимірювання.
Положення Y вимірюється відносно поточного початку координат.
Початок координат можна змінити за допомогою
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#
Повертає поточний напрямок (кут риски) GPS-датчика.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Одиниця вимірювання для повернутого значення курсу:
|
Повертає значення типу double , що представляє поточний заголовок у вказаних одиницях вимірювання.
Значення заголовка охоплюється в діапазоні від 0 до 360 градусів.
Позитивний напрямок обертання визначається параметром
dirзаданим під час побудови.
// 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#
Повертає лінійне прискорення, виміряне GPS-датчиком вздовж заданої осі.
Available Functionsdouble acceleration(
axisType axis );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вісь, для якої буде повернуто прискорення:
|
Повертає значення double , що представляє прискорення вздовж заданої осі в G (гравітаційних одиницях).
Значення прискорення повідомляються в одиницях G, де 1 G дорівнює прискоренню вільного падіння на поверхні Землі.
gyroRate#
Повертає кутову швидкість, виміряну GPS-датчиком вздовж заданої осі.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вісь, для якої буде повернуто кутову швидкість:
|
|
|
Одиниця вимірювання поверненої кутової швидкості:
|
Повертає значення типу double , що представляє кутову швидкість вздовж заданої осі у вибраних одиницях вимірювання.
orientation#
Повертає кут орієнтації GPS-датчика для вказаної осі.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вісь орієнтації для вилучення:
|
|
|
Одиниця вимірювання для повернутого значення орієнтації:
|
Повертає значення типу double що представляє орієнтацію зазначеної осі у вибраних одиницях вимірювання.
quality#
Повертає сприйняту якість сигналу GPS.
Available Functionsint32_t quality();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає значення int32_t , яке представляє якість сигналу GPS у відсотках:
Можливі значення |
Опис |
|---|---|
|
Усі дані про місцезнаходження та напрямок, що надходять від GPS-датчика, є дійсними. |
|
Дані про положення більше не обчислюються безпосередньо з польового коду GPS, а натомість оцінюються альтернативними способами. |
|
Дійсні лише значення курсу. З плином часу без достатнього сканування польового коду GPS якість сигналу продовжує знижуватися до |
changed#
Реєструє функцію зворотного виклику, яка виконується, коли змінюється значення курсу GPS.
Available Functionsvoid changed(
void (* callback)(void) );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вказівник на функцію, яка буде викликана при зміні значення GPS-курсу. Функція не повинна приймати параметрів та повертати |
Ця функція не повертає значення.