GPS-датчик#
Введение#
Класс gps используется для управления и доступа к данным с датчика GPS V5 (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на указанном Smart Port и определяет пользовательскую исходную позицию.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-координат. Функция не должна принимать параметров и возвращать |
Эта функция не возвращает значения.