Блоки, специфичные для робота#

Введение#

Робот-герой Flex включает в себя двигатель-коготь, двигатель-манипулятор, датчик визуального восприятия с искусственным интеллектом, датчик расстояния и датчик игровой системы позиционирования (GPS).

Все стандартные блоки VEXcode VR доступны для использования в игровой зоне V5 26-27 Override.

Ниже приведён список всех доступных блоков, разработанных специально для роботов:

Трансмиссия – перемещение и поворот робота.

Движение – Перемещение и отслеживание двигателей робота.

AI Vision – Захват и анализ объектов с помощью датчика AI Vision.

Использование датчиков – Задействуйте различные датчики робота.

В примерах на этой странице используется стартовая позиция C из контрольного списка перед матчем на игровой площадке.

Трансмиссия#

Силовая установка управляет движением и поворотами VR-робота. Она позволяет ему двигаться вперед или назад, поворачивать влево или вправо, менять направление движения и отслеживать вращение.

Действия#

водить машину#

Блок привода перемещает робота вперед или назад бесконечно. Робот будет продолжать движение, пока ему не будет дано другое действие, например, поворот или остановка.

движение [вперёд v]

Параметры

Описание

направление

Направление движения робота: вперед или назад.

Пример

при запуске :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v]
ждать (0.5) секунд
остановить движение
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

стремление к#

Блок drive for перемещает робота вперед или назад на определенное расстояние. Проект будет ждать, пока робот не завершит движение, прежде чем запустится следующий блок в стеке.

движение [вперёд v] на (200) [мм v] ▶

Параметры

Описание

направление

Направление движения робота: вперед или назад.

расстояние

Расстояние, которое проезжает робот. Это может быть целое число или десятичная дробь.

единица

Единица измерения расстояния: мм (миллиметры) или дюймы.

и не ждите

Выберите стрелку ( ▶ ), чтобы развернуть блок, например, и не ждите, чтобы следующий блок в стеке выполнился немедленно.

Пример

при запуске :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

повернуть#

Блок turn бесконечно поворачивает робота влево или вправо. Робот будет продолжать поворачиваться, пока ему не будет дано другое действие, например, движение или остановка.

поворот [вправо v]

Параметры

Описание

направление

Направление поворота робота: влево или вправо.

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
поворот [влево v]
ждать (0.78) секунд
остановить движение
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
движение [вперёд v] на (25) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

поворот для#

Блок turn for поворачивает робота влево или вправо на определенное количество градусов. Поворот осуществляется относительно текущего положения робота. Проект будет ждать, пока робот не завершит поворот, прежде чем запустится следующий блок в стеке.

поворот [вправо v] на (90) градусов ▶

Параметры

Описание

направление

Направление поворота робота: влево или вправо.

угол

Количество градусов, на которое поворачивается робот. Это может быть целое число или десятичная дробь.

и не ждите

Выберите стрелку ( ▶ ), чтобы развернуть блок, например, и не ждите, чтобы следующий блок в стеке выполнился немедленно.

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
поворот [влево v] на (110) градусов ▶
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
движение [вперёд v] на (25) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

перейти к заголовку#

Направление движения — это направление, в котором смотрит робот, измеряемое в градусах. Блок поворота по заданному направлению поворачивает робота в направлении от -359 до 359 градусов. Робот повернется по кратчайшему пути, чтобы достичь целевого направления.

Начальный курс — 0 градусов.

Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующий блок в стопке.

повернуть на курс (90) градусов ▶

Параметры

Описание

заголовок

Направление движения робота должно составлять от -359 до 359 градусов.

и не ждите

Выберите стрелку ( ▶ ), чтобы развернуть блок, например, и не ждите, чтобы следующий блок в стеке выполнился немедленно.

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
повернуть на курс (-110) градусов ▶
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
движение [вперёд v] на (25) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

поворот к вращению#

Блок turn to rotation поворачивает робота на определённое направление.

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. Вращение также можно установить с помощью блока set drive rotation.

Значения вращения являются абсолютными. Это означает, что направление поворота зависит от текущего вращения робота. Поворот вправо увеличивает вращение, а поворот влево уменьшает его.

Например, если робот начинает движение с 0 градусов, а затем вы поворачиваетесь на 720 градусов, он дважды повернется вправо. Если же вы повернетесь на 360 градусов, он один раз повернется влево, потому что 360 меньше 720.

Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующий блок в стопке.

повернуть к вращению на (90) градусов ▶

Параметры

Описание

вращение

Величина поворота в градусах, на которую повернется робот. Это может быть целое число или десятичная дробь.

и не ждите

Выберите стрелку ( ▶ ), чтобы развернуть блок, например, и не ждите, чтобы следующий блок в стеке выполнился немедленно.

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
повернуть к вращению на (-110) градусов ▶
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
движение [вперёд v] на (25) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

прекратите водить#

Блок остановки движения останавливает движение робота.

остановить движение

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v]
ждать (0.5) секунд
остановить движение
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

Настройки#

установить скорость вращения привода#

Блок установки скорости вращения определяет скорость движения робота. Более высокое значение в процентах увеличивает скорость движения, а более низкое — уменьшает.

Каждый проект начинается с того, что робот по умолчанию движется со скоростью, составляющей 50% от максимальной.

Примечание: Более высокая скорость приводит к более быстрому движению робота, но может снизить точность. Более низкая скорость приводит к более медленному движению робота, но может повысить точность.

установить скорость движения (50) [% v]

Параметры

Описание

скорость

Скорость движения от 0% до 100%.

единица

Единица измерения скорости: %

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
поворот [влево v] на (110) градусов ▶
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
установить скорость движения (100) [% v]
движение [вперёд v] на (25) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

установить скорость поворота#

Блок установка скорости поворота определяет скорость поворота робота. Более высокое значение в процентах ускоряет поворот, а более низкое — замедляет.

Каждый проект начинается с того, что робот по умолчанию вращается со скоростью, составляющей 50% от его обычной скорости.

Примечание: Более высокая скорость приводит к более быстрому повороту робота, но может быть менее точной. Более низкая скорость приводит к более медленному повороту робота, но может быть более точной.

установить скорость поворота (50) [% v]

Параметры

Описание

скорость

Скорость поворота от 0% до 100%.

единица

Единица измерения скорости: %

Пример

при запуске :: hat events
[Turn to face the Neutral Goal faster.]
установить скорость поворота (100) [% v]
поворот [влево v] на (110) градусов ▶

установить направление привода#

Направление движения — это угол, в котором смотрит робот, измеряемый в градусах. Блок set drive heading изменяет текущее направление движения робота на новое значение.

Например, если робот повернулся вправо, установка направления на 0 градусов делает это положение, в котором робот повернулся вправо, новым значением 0 градусов. Затем робот может поворачиваться в другие положения, основываясь на этом новом направлении.

установить курс движения (0) градусов

Параметры

Описание

заголовок

Значение направления в градусах, которое необходимо задать для робота.

Пример

при запуске :: hat events
[Make facing the Neutral Goal the new heading.]
установить курс движения (110) градусов
повернуть на курс (0) градусов ▶

установить вращение привода#

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается на 0 градусов. Блок set drive rotation изменяет текущее значение вращения робота на новое значение.

Например, если робот совершил два полных оборота вправо, значение его вращения составит 720 градусов. Установка значения вращения на 0 градусов сбросит это значение с 720 до 0 градусов. Затем робот сможет совершать повороты, исходя из этого нового значения.

установить вращение движения (0) градусов

Параметры

Описание

вращение

Значение угла поворота в градусах, которое необходимо задать для робота. Это может быть целое число или десятичная дробь.

Пример

при запуске :: hat events
[Make facing the Neutral Goal the new rotation.]
установить вращение движения (110) градусов
повернуть к вращению на (0) градусов ▶

установить тайм-аут диска#

Блок set drive timeout задает количество секунд, в течение которых робот будет пытаться завершить движение. Если робот не сможет завершить движение за это время, он прекратит попытки и перейдет к следующему блоку в стеке. Это предотвращает застревание робота на определенном этапе движения.

установить тайм-аут движения на (1) сек

Параметры

Описание

время

Количество секунд, в течение которых робот может попытаться завершить движение. Это может быть целое число или десятичная дробь.

Пример

при запуске :: hat events
[Turn to face the Neutral Goal.]
установить тайм-аут движения на (0.8) сек
поворот [влево v] на (180) градусов ▶

Ценности#

Поездка завершена#

Логический блок движение завершено сообщает, закончил ли робот движение. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.

  • Верно — Робот завершил движение.

  • Неверно — Робот всё ещё движется.

Этот блок работает совместно с блоками трансмиссии, имеющими параметр и не ожидая.

<движение завершено?>

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске :: hat events
[Score a Pin in a Neutral Goal.]
поворот [влево v] на (110) градусов ▶
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
движение [вперёд v] на (25) [дюймы v] ◀ и не ждать
ждать пока <движение завершено?>
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

привод движется#

Логический блок привод движется сообщает, движется ли робот. Это можно использовать для управления синхронизацией других действий в зависимости от движения робота.

  • Верно — Робот движется.

  • Неверно — Робот не движется.

Этот блок работает совместно с блоками трансмиссии, имеющими параметр и не ожидая.

<движение активно?>

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске :: hat events
[Raise the Arm once stopped near the Goal.]
поворот [влево v] на (110) градусов ▶
движение [вперёд v] на (25) [дюймы v] ◀ и не ждать
пока <движение активно?>
ждать (0.005) секунд
конец
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶

направление привода#

Направление движения — это то, в каком направлении смотрит робот, измеряемое в градусах. Блок регистрации направления движения сообщает, что направление находится в диапазоне от 0 до 359,99 градусов.

Начальный курс робота составляет 0 градусов.

(Курс движения в градусах)

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске :: hat events
[Turn to the Goal, then show heading.]
поворот [вправо v] на (450) градусов ▶
вывести (Курс движения в градусах) на экран ◀ и перенести курсор на следующую строку

вращение привода#

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. Блок отчёта о вращении привода сообщает текущее вращение робота.

Поворот вправо увеличивает угол поворота, а поворот влево уменьшает его. Например, два полных поворота вправо покажут угол поворота в 720 градусов.

(вращение движения в градусах)

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске :: hat events
[Spin to find a Pin, then show rotation.]
поворот [вправо v] на (450) градусов ▶
вывести (вращение движения в градусах) на экран ◀ и перенести курсор на следующую строку

скорость вращения привода#

Блок регистрации скорости движения сообщает, с какой скоростью движется робот.

(скорость движения в [% v])

Параметры

Описание

единица

Единица измерения скорости: %

Пример

при запуске :: hat events
[Show speed while driving to the Goal.]
движение [вперёд v] на (150) [мм v] ▶
вывести (скорость движения в [% v]) на экран ◀ и перенести курсор на следующую строку

Движение#

В системе Flex используется двигатель ArmMotor для подъема и опускания манипулятора, а также двигатель ClawMotor для открытия и закрытия захвата.

Каждый двигатель имеет свои варианты направления движения. Названия направлений описывают, как данный двигатель перемещается по платформе Flex.

Действия#

вращающийся двигатель#

Блок вращающийся двигатель позволяет бесконечно вращать двигатель в одном из двух направлений. Двигатель будет продолжать вращаться до тех пор, пока ему не будет дано другое действие, например, изменение направления вращения или остановка.

вращать [ArmMotor v] [вверх v]

Параметры

Описание

мотор

Для вращения используется двигатель ArmMotor или ClawMotor.

направление

Направление вращения двигателя:

  • Двигатель манипулятора — вверх или вниз
  • Двигатель захвата — открыть или закрыть

Пример

при запуске
[Raise the Arm before driving toward a Pin.]
вращать [ArmMotor v] [вверх v]
ждать (1) секунд
остановить [ArmMotor v]

вращающийся двигатель для#

Блок spin motor for stack запускает двигатель на определенное расстояние. Скорость вращения зависит от текущего положения двигателя. Проект будет ждать, пока двигатель не закончит вращение, прежде чем запустится следующий блок в стеке.

вращение [ArmMotor v] [вверх v] на (90) [градусы v] ▶

Параметры

Описание

мотор

Для вращения используется двигатель ArmMotor или ClawMotor.

направление

Направление вращения двигателя:

  • Двигатель манипулятора — вверх или вниз
  • Двигатель захвата — открыть или закрыть

расстояние

Расстояние, на которое вращается двигатель. Градусы указываются целыми числами. Обороты могут указываться целыми числами или десятичными дробями.

единица

Единица измерения расстояния: градусы или обороты.

и не ждите

Выберите стрелку ( ▶ ), чтобы развернуть блок, например, и не ждите, чтобы следующий блок в стеке выполнился немедленно.

Пример

при запуске
[Raise the Arm to carry the Pin to the Goal.]
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶

поверните двигатель в нужное положение#

Блок spin motor to position вращает двигатель до заданного положения.

Положение двигателя — это угол его вращения, измеряемый в градусах или оборотах. Один оборот равен 360 градусам. В начале проекта положение двигателя ArmMotor устанавливается на 0 градусов. Исключением является двигатель ClawMotor — он начинает работу с 467 градусов (полностью замкнутый). Положение двигателя также можно установить с помощью блока установить положение двигателя.

Значения положения являются абсолютными. Это означает, что направление вращения зависит от текущего положения двигателя.

Например, если двигатель начинает вращаться с 0 градусов и достигает положения 720 градусов, он совершит два оборота вперед. Если же он затем достигнет положения 360 градусов, он совершит один оборот в обратном направлении, поскольку 360 меньше 720.

вращать [ArmMotor v] в положение (90) [градусы v] ▶

Параметры

Описание

мотор

Для вращения используется двигатель ArmMotor или ClawMotor.

позиция

Значение положения, до которого будет вращаться двигатель. Градусы указываются целыми числами. Обороты могут указываться целыми числами или десятичными дробями.

единица

Единица измерения положения: градусы или обороты.

и не ждите

Выберите стрелку ( ▶ ), чтобы развернуть блок, например, и не ждите, чтобы следующий блок в стеке выполнился немедленно.

Пример

при запуске
[Raise the Arm, then release the Pin.]
вращать [ArmMotor v] в положение (800) [градусы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

остановить двигатель#

Блок остановки двигателя останавливает выбранный двигатель.

остановить [ArmMotor v]

Параметры

Описание

мотор

Остановить нужно следующим двигателем: двигатель манипулятора или двигатель захвата.

Пример

при запуске
[Raise the Arm partway to hold the Pin.]
вращать [ArmMotor v] [вверх v]
ждать (1) секунд
остановить [ArmMotor v]

Настройки#

установить скорость двигателя#

Блок установки скорости вращения двигателя определяет скорость вращения двигателя. Более высокое значение в процентах приводит к более быстрому вращению двигателя, а более низкое — к более медленному.

Каждый проект начинается с того, что по умолчанию каждый двигатель вращается со скоростью, составляющей 50% от обычной.

Примечание: Более высокая скорость вращения двигателя приводит к его более быстрому вращению, но может снизить точность. Более низкая скорость вращения двигателя приводит к его более медленному вращению, но может повысить точность.

установить скорость [ArmMotor v] на [50] [% v]

Параметры

Описание

мотор

Двигатель, определяющий скорость: Двигатель манипулятора или Двигатель захвата.

скорость

Скорость вращения двигателя. Проценты обозначаются целыми числами от 0% до 100%.

единица

Единица измерения скорости: %.

Пример

при запуске
[Raise the Arm fast to release the Pin.]
установить скорость [ArmMotor v] на [100] [% v]
вращение [ArmMotor v] [вверх v] на (800) [градусы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

установить тайм-аут двигателя#

Блок set motor timeout в стеке задает время, в течение которого двигатель будет пытаться завершить движение. Если двигатель не сможет завершить движение за это время, он прекратит попытки и перейдет к следующему блоку в стеке. Это предотвращает застревание двигателя на определенном этапе движения.

установить таймаут [ArmMotor v] [1] секунд

Параметры

Описание

мотор

Для установки тайм-аута используется двигатель: ArmMotor или ClawMotor.

время

Количество секунд, в течение которых двигатель может попытаться завершить движение. Это может быть целое число или десятичная дробь.

Пример

при запуске
[Score a Pin in a Neutral Goal.]
поворот [влево v] на (110) градусов ▶
установить таймаут [ArmMotor v] [1] секунд
вращение [ArmMotor v] [вверх v] на (1800) [градусы v] ▶
движение [вперёд v] на (25) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

Позиция#

положение двигателя#

Положение двигателя — это расстояние, на которое он повернулся, измеряемое в градусах или оборотах. Один оборот равен 360 градусам. Блок регистрации положения двигателя сообщает о текущем положении двигателя.

В начале проекта положение ArmMotor устанавливается на 0 градусов. Исключением является ClawMotor — он начинает работу с 467 градусов (полностью замкнутый). Если двигатель вращается на один полный оборот вперед, положение увеличивается. Если двигатель вращается в другом направлении, положение уменьшается.

(положение [ArmMotor v] в [градусы v])

Параметры

Описание

мотор

Двигатель, передающий информацию о положении: Двигатель манипулятора или Двигатель захвата.

единица

Единица измерения положения двигателя: градусы или обороты.

Пример

при запуске
[Raise the Arm, then release the Pin.]
пока <(положение [ArmMotor v] в [градусы v]) < (800)>
вращать [ArmMotor v] [вверх v]
ждать (0.002) секунд
конец
остановить [ArmMotor v]
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

установить положение двигателя#

Положение двигателя — это расстояние, на которое он повернулся, измеряемое в градусах или оборотах. Один оборот равен 360 градусам. Блок установка положения двигателя изменяет текущее положение двигателя на новое значение.

Например, если двигатель повернулся на 180 градусов, установка положения на 0 градусов сбросит это положение со 180 до 0 градусов. Затем двигатель сможет вращаться в положениях, соответствующих этому новому значению.

установить положение [ArmMotor v] (0) [градусы v]

Параметры

Описание

мотор

Для установки положения используется двигатель: двигатель манипулятора или двигатель захвата.

позиция

Значение положения, которое необходимо установить для двигателя. Градусы указываются целыми числами. Повороты могут указываться целыми числами или десятичными дробями.

единица

Единица измерения положения: градусы или обороты.

Пример

при запуске
[Reset encoder, raise Arm, place Pin.]
установить положение [ArmMotor v] (0) [градусы v]
вращать [ArmMotor v] в положение (800) [градусы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

Ценности#

двигатель готов#

Логический блок двигатель завершил работу сообщает, закончил ли двигатель движение. Это можно использовать для управления временем выполнения других действий в зависимости от движения двигателя.

  • Верно — Двигатель завершил движение.

  • Неверно — Двигатель всё ещё вращается.

Этот блок работает совместно со следующими блоками Motion, имеющими параметр и не ожидающими: вращение двигателя в течение и вращение двигателя в положение.

<[ArmMotor v] завершён?>

Параметры

Описание

мотор

Для определения завершения движения используется следующий двигатель: двигатель манипулятора или двигатель захвата.

Пример

при запуске
[Raise the Arm while driving to the Goal.]
вращать [ArmMotor v] в положение (800) [градусы v] ◀ и не ждать
ждать (0.1) секунд
пока <не <[ArmMotor v] завершён?>>
движение [вперёд v]
ждать (0.005) секунд
конец
остановить движение

Двигатель вращается#

Логический блок двигатель вращается сообщает, вращается ли двигатель. Это можно использовать для управления временем выполнения других действий в зависимости от движения двигателя.

  • Верно — Мотор вращается.

  • Неверно — Двигатель не вращается.

Этот блок работает совместно со следующими блоками Motion, имеющими параметр и не ожидающими: вращение двигателя в течение и вращение двигателя в положение.

<[ArmMotor v] вращается?>

Параметры

Описание

мотор

Для определения того, вращается ли устройство, используется двигатель ArmMotor или ClawMotor.

Пример

при запуске
[Raise the Arm while driving to the Goal, then release the Pin.]
вращать [ArmMotor v] в положение (800) [градусы v] ◀ и не ждать
ждать (0.1) секунд
пока <[ArmMotor v] вращается?>
движение [вперёд v] на (20) [мм v] ▶
конец
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

скорость двигателя#

Блок регистрации скорости вращения двигателя отображает скорость вращения двигателя в процентах от -100% до 100%.

(скорость [ArmMotor v] в [% v] :: custom-motion)

Параметры

Описание

мотор

Для передачи данных о скорости используется двигатель: двигатель манипулятора или двигатель захвата.

единица

Единица измерения скорости вращения двигателя: %.

Пример

при запуске
[Show Arm Motor velocity while raising.]
установить скорость [ArmMotor v] на [100] [% v]
вращать [ArmMotor v] в положение (800) [градусы v] ◀ и не ждать
ждать (0.2) секунд
вывести (скорость [ArmMotor v] в [% v] :: custom-motion) на экран ◀ и перенести курсор на следующую строку

ИИ-зрение#

Действия#

получить данные объекта#

Блок получить данные об объекте фильтрует данные из кадра датчика AI Vision, сводя их к единой сигнатуре — сохраненному описанию того, что датчик может распознать, например, игрового элемента на поле.

В наборе данных хранятся объекты, упорядоченные по ширине от наибольшего к наименьшему, начиная с индекса 0. Доступ к свойствам каждого объекта осуществляется с помощью блока Свойство объекта AI Vision. Если соответствующие объекты не обнаружены, возвращается пустой набор данных.

Блок стека «Получить данные объекта».#
получить данные [AI Classifications v] из [AIVision v]

Параметр

Описание

подпись

Фильтрует набор данных, чтобы включить только данные заданной подписи. Доступные подписи:

  • Классификация ИИ - Обнаруживает элементы игры RedBluePin, BlueYellowPin, RedYellowPin, YellowPin и Cup.
  • AprilTags - Обнаруживает идентификаторы AprilTag, найденные на поле.

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Turn to face the Pin.]
установить скорость поворота (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <(объект [AIVision v] [centerX v]) < (140)> then
поворот [влево v]
else if <([AIVision v] object [centerX v]) > (180)> then
поворот [вправо v]
иначе
остановить движение
прервать
конец
конец
конец

Настройки#

установить элемент объекта#

Блок set object item задает, какой элемент из набора данных следует использовать.

Блок стека элементов объекта Set AI Vision.#
установить элемент объекта [AIVision v] [1]

Параметры

Описание

элемент

Номер элемента в наборе данных, который следует использовать.

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
получить данные [AI Classifications v] из [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
если <объект [AIVision v] существует?> то
[If any AI Classification is detected, check if any of them are a specific game element.]
если <объект [AIVision v] — [RedBluePin v]?> то
вывести [RedBluePin detected.] ▶
иначе
вывести [No RedBluePin detected.] ▶
конец
конец

Ценности#

объект существует#

Блок object exists возвращает логическое значение, указывающее, обнаружен ли какой-либо объект в наборе данных.

  • Истина – Набор данных содержит обнаруженный объект.

  • Ложь – Набор данных не содержит обнаруженных объектов.

Логический блок “Объект AI Vision существует”.#
<объект [AIVision v] существует?>

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
получить данные [AI Classifications v] из [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
если <объект [AIVision v] существует?> то
вывести (количество объектов [AIVision v]) ◀ и перенести курсор на следующую строку
конец

объект#

Блок object is возвращает логическое значение, указывающее, соответствует ли обнаруженный объект определенной классификации.

  • Истина – Элемент в наборе данных представляет собой конкретный объект.

  • Ложь – Элемент в наборе данных не является конкретным объектом.

Объект AI Vision представляет собой логический блок.#
<объект [AIVision v] — [RedBluePin v]?>

Параметр

Описание

объект

С каким объектом сравнивать предмет:

  • Красно-синяя булавка
  • Сине-желтая булавка
  • Красно-желтая булавка
  • Желтая булавка
  • Чашка

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
если <объект [AIVision v] — [RedBluePin v]?> то
вывести [RedBluePin detected.] ▶
иначе
вывести [No RedBluePin detected.] ▶
конец
конец

объект называется AprilTag#

Блок object is AprilTag возвращает логическое значение, указывающее, является ли обнаруженный объект тегом AprilTag, соответствующим определенному идентификатору.

  • True – Обнаруженный объект является AprilTag с указанным ID.

  • Ложь – Обнаруженный объект не является AprilTag с указанным ID.

Объект представляет собой логический блок AprilTag.#
<объект [AIVision v] является AprilTag [0]?>

Параметр

Описание

Идентификатор AprilTag

Идентификационный номер для сравнения с обнаруженным AprilTag.

Пример

при запуске
[Report if AprilTag 3 is detected.]
получить данные [AprilTags v] из [AIVision v]
если <объект [AIVision v] существует?> то
если <объект [AIVision v] является AprilTag [3]?> то
вывести [That is 3!] ▶
иначе
вывести [That isn't 3!] ▶
конец
конец

количество объектов#

Блок подсчета объектов возвращает количество обнаруженных объектов в наборе данных в виде целого числа.

Блок стека элементов объекта Set AI Vision.#
(количество объектов [AIVision])

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
вывести (количество объектов [AIVision v]) ◀ и перенести курсор на следующую строку
конец

свойство объекта#

Каждый объект (показан ниже) содержит шесть свойств, которые сохраняются после использования блока получить данные объекта.

Блок «Отчет о свойствах объекта AI Vision».#
(объект [AIVision v] [ширина v])

Все значения свойств описывают положение и размер обнаруженного объекта в поле зрения датчика AI Vision в момент использования блока получить данные об объекте. Эти значения измеряются в пикселях, исходя из разрешения датчика 320 на 240 пикселей.

Параметр

Описание

свойство

Какое свойство обнаруженного объекта использовать:

ширина#

Свойство width отображает ширину обнаруженного объекта в пикселях в виде целого числа от 1 до 320.

Блок стека свойств объекта AI Vision с параметром, установленным на значение width.#
(объект [AIVision v] [ширина v])

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Approach the next Cup and Pin.]
установить скорость движения (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <([AIVision v] object [width v]) > (140)> then
остановить движение
прервать
иначе
движение [вперёд v]
конец
конец
конец
высота#

Свойство height отображает высоту обнаруженного объекта в пикселях в виде целого числа от 1 до 240.

Блок стека свойств объекта AI Vision с параметром, установленным на высоту.#
(объект [AIVision v] [высота v])

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Approach the next Cup and Pin.]
установить скорость движения (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <([AIVision v] object [height v]) > (200)> then
остановить движение
прервать
иначе
движение [вперёд v]
конец
конец
конец
центрX#

Свойство centerX отображает x-координату центра обнаруженного объекта в пикселях в виде целого числа от 0 до 320.

Блок стека свойств объекта AI Vision с параметром, установленным на centerX.#
(объект [AIVision v] [centerX v])

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Turn and approach the next Cup and Pin.]
установить скорость поворота (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <(объект [AIVision v] [centerX v]) < (140)> then
поворот [влево v] на (5) градусов ▶
иначе
движение [вперёд v] на (25) [дюймы v] ▶
прервать
конец
конец
конец
центрY#

Свойство centerY отображает y-координату центра обнаруженного объекта в пикселях в виде целого числа от 0 до 240.

Блок стека свойств объекта AI Vision с параметром, установленным в значение centerY.#
(объект [AIVision v] [centerY v])

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Approach the next Cup and Pin.]
установить скорость движения (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <([AIVision v] object [centerY v]) > (230)> then
остановить движение
прервать
иначе
движение [вперёд v]
конец
конец
конец
originX#

Свойство originX отображает координату x верхнего левого угла ограничивающего прямоугольника обнаруженного объекта в пикселях в виде целого числа от 0 до 320.

Блок стека свойств объекта AI Vision с параметром, установленным на originX.#
(объект [AIVision v] [originX v])

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Turn and approach the next Cup and Pin.]
установить скорость поворота (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <(объект [AIVision v] [originX v]) < (100)> then
поворот [влево v] на (5) градусов ▶
иначе
движение [вперёд v] на (25) [дюймы v] ▶
прервать
конец
конец
конец
происхождениеY#

Свойство originY отображает Y-координату верхнего левого угла ограничивающего прямоугольника обнаруженного объекта в пикселях в виде целого числа от 0 до 240.

Блок стека свойств объекта AI Vision с параметром, установленным в значение originY.#
(объект [AIVision v] [originY v])

Пример

при запуске
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
поворот [влево v] на (70) градусов ▶
[Approach the next Cup and Pin.]
установить скорость движения (30) [% v]
вечно
получить данные [AI Classifications v] из [AIVision v]
если <объект [AIVision v] существует?> то
if <([AIVision v] object [originY v]) > (140)> then
остановить движение
прервать
иначе
движение [вперёд v]
конец
конец
конец

Ощущение#

Расстояние#

Расстояние, на котором был найден объект#

Логический блок Расстояние до объекта сообщает, обнаруживает ли датчик расстояния в данный момент объект в пределах 2000 мм.

  • Верно — Датчик расстояния обнаруживает объект.

  • Ложь — Датчик расстояния не обнаруживает объект.

<[FrontDistance v] обнаружил объект?>

Параметры

Описание

датчик расстояния

Какой датчик расстояния использовать? Выберите один из доступных для Flex датчиков расстояния.

Пример

при запуске :: hat events
[Turn until something is detected, then release the Pin.]
поворот [вправо v]
ждать пока <[FrontDistance v] обнаружил объект?>
остановить движение
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

расстояние до объекта#

Блок отображения расстояния до объекта сообщает расстояние между датчиком расстояния и ближайшим обнаруженным объектом.

([FrontDistance v] расстояние в [мм v])

Параметры

Описание

датчик расстояния

Какой датчик расстояния использовать? Выберите один из доступных для Flex датчиков расстояния.

единица

Единица измерения расстояния: мм или дюймы.

Пример

при запуске :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
движение [вперёд v]
ждать пока <([FrontDistance v] расстояние в [мм v]) < (200)>
остановить движение
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

GPS#

GPS-координаты#

Блок GPS-позиционирования возвращает смещение положения точки отсчета поворота робота относительно центра поля, полученное с помощью GPS-датчика (Game Positioning System™).

([GPS v] позиция [X v] в [мм v])

Параметры

Описание

ось

Какую ось следует указать:

  • X
  • Y

единицы

Единица измерения положения: мм или дюймы.

Пример

при запуске :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
остановить движение
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶

Направление GPS#

Блок GPS-направление возвращает текущее направление движения робота, основанное на показаниях датчика GPS (Game Positioning System™) из полевого кода VEX GPS в диапазоне от 0,00 до 359,99 градусов.

([GPS v] курс в градусах)

Параметры

Описание

Этот блок не имеет параметров.

Пример

при запуске :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
вращение [ArmMotor v] [вверх v] на (300) [градусы v] ▶
движение [вперёд v] на (10) [дюймы v] ▶
вращение [ClawMotor v] [открыть v] на (180) [градусы v] ▶
[Turn left to face the Neutral Goal.]
установить скорость поворота (30) [% v]
поворот [влево v]
ждать пока <([GPS v] курс в градусах) < (18)>
остановить движение