Уроки технологии
Технология Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Интеллектуальные функции

  • Цель: Включение или отключение функций визуальной идентификации S1 для визуального маркера, человека и другого робота S1

  • Тип: Блок настроек

  • Пример: Имитация жеста руки V-сигнала Настраивает подвес на перемещение в форме буквы V когда робот идентифицирует жест руки V-sign.

Примечание. Функция интеллектуальной идентификации робота по умолчанию отключена. Необходимо включить функцию идентификации, чтобы робот мог реагировать на идентифицируемые объекты. Например,

или

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

API Python:

Function: vision_ctrl.enable_detection(function_enum) vision_ctrl.disable_detection(function_enum)

Parameters:

  • function_enum(enum):
    • rm_define.vision_detection_marker
    • rm_define.vision_detection_pose
    • rm_define.vision_detection_car
    • rm_define.vision_detection_people
  • Цель: включение/отключение идентификации линии

  • Тип: блок настроек

  • Пример: определение синих линий. Когда робот определяет синие линии, все синие светодиодные индикаторы шасси и подвеса будут мигать.

Примечание:

  • Функция идентификации линии по умолчанию отключена. Необходимо включить идентификацию линии, чтобы робот мог реагировать на команды проверки линии.
  • Цвет линии по умолчанию, который робот должен идентифицировать, — синий.
API Python:

Function: vision_ctrl.enable_detection(function_enum) vision_ctrl.disable_detection(function_enum)

Parameters:

  • function_enum(enum):
    • rm_define.vision_detection_line
  • Цель: включить/отключить идентификацию хлопков

  • Тип: блок настроек

  • Пример: разбудить робота хлопаньем Первоначально светодиодные индикаторы шасси и подвеса выключены. Когда робот распознает двойной хлопок, все красные светодиодные индикаторы шасси и подвеса начнут мигать, а красные светодиодные индикаторы подвеса начнут прокручиваться.

Примечание. Идентификация хлопков по умолчанию отключена, и ее необходимо включить, чтобы робот мог реагировать на любые хлопки.

API Python:

Function: media_ctrl.enable_sound_recognition(function_enum) media_ctrl.disable_sound_recognition(function_enum)

Parameters:

  • function_enum(enum):
    • rm_define.sound_detection_applause
  • Цель: установка максимального расстояния идентификации визуальных маркеров для подвеса; за пределами этого расстояния робот не сможет распознавать маркеры обзора.

  • Тип: блок настроек

  • Пример: установка идентификационного расстояния. Когда робот определяет стрелку вперед, он перемещается вперед на 1 метр.

Примечание:

  • Если Vision Marker расположен на расстоянии более 1 метра от робота (например, на расстоянии 1,5 или 2 метра от робота), робот не сможет его идентифицировать.
  • Идентификационное расстояние применяется только при использовании визуальных маркеров официального стандартного размера. Эффективное расстояние идентификации может измениться, если вы печатаете собственные маркеры Vision нестандартных размеров.
API Python:

Function: vision_ctrl.set_marker_detection_distance(distance)

Parameters:

  • distance(float): [0.5, 3] m
  • Цель: установка определенного цвета линии, который робот сможет идентифицировать

  • Тип: блок настроек

  • Пример: определение синих линий. Когда синяя лента проложена на земле, робот будет перемещаться вдоль синих линий.

Примечание. Цвет линии по умолчанию, который может определить робот, — синий.

API Python:

Function: vision_ctrl.line_follow_color_set(color_enum)

Parameters:

  • color_enum(enum):
    • rm_define.line_follow_color_blue
    • rm_define.line_follow_color_red
    • rm_define.line_follow_color_green
  • Цель: уменьшить экспозицию в режиме следования по линии, чтобы предотвратить размытость, вызванную быстрыми поворотами, обеспечивая эффективную и точную визуальную идентификацию

  • Тип: блок настроек

  • Пример: идентифицировать линии

API Python:

Function: media_ctrl.exposure_value_update(exposure_value_enum)

Parameters:

  • exposure_value_enum(enum):
    • rm_define.exposure_value_large
    • rm_define.exposure_value_medium
    • rm_define.exposure_value_small
  • Цель: настроить робота на определение и прицеливание в центральное положение соответствующих маркеров обзора

  • Тип: блок выполнения

  • Пример: настроить робота на прицеливание в красное сердце

Примечание:

  • Необходимо включить маркер обзора. идентификация, позволяющая роботу идентифицировать визуальные маркеры.
  • В этом блоке, когда робот определяет красное сердце, он автоматически нацеливается на него; если роботу не удастся идентифицировать красное сердце в течение пяти секунд, он выйдет из программы и запустит следующую программу.
API Python:

Function: vision_ctrl.detect_marker_and_aim(marker_enum)

Parameters:

  • marker_enum(enum)
    • rm_define.marker_trans_red_heart
    • rm_define.marker_trans_target
    • rm_define.marker_trans_dice
    • rm_define.marker_number_[zero, …, nine]
    • rm_define.marker_letter_[A, …, Z]
  • Цель: устанавливает соответствующий блок для запуска его внутренней программы при обнаружении указанной информации.

  • Тип: Блок событий

  • Примеры: указание поворота, контроль положения. ① Указать поворот Когда робот обнаружит стрелку влево, светодиодные индикаторы поворота влево на подвесе начнут мигать, и робот переместится влево на 1 секунду; Когда робот определит стрелку вправо, светодиодные индикаторы поворота вправо на подвесе начнут мигать, а шасси сместится вправо на 1 секунду.

② Контрольное отношение Человек может стоять на расстоянии 1 метра от робота и управлять его движениями с помощью жестов. Когда человек делает знак V, робот перемещается вперед; когда человек показывает перевернутый знак V, робот будет двигаться назад.

Note:

Примечание:

  • Событие имеет высокий приоритет. Это означает, что независимо от того, где выполняется основной поток, основной поток будет приостановлен, и программа в событии начнет выполняться после выполнения условий запуска.
  • Чтобы робот идентифицировал человека, слегка поверните подвес вверх, поставьте человека на расстояние 1 метр и убедитесь, что человек стоит прямо в поле зрения робота.
  1. Человек, подающий сигнал роботу, должен сделать знак V и перевернутый знак V руками (а не пальцами).
API Python:
Function: def vision_recognized_people(msg) def vision_recognized_car(msg) def vision_recognized_pose_all(msg) def vision_recognized_pose_victory(msg) def vision_recognized_pose_give_in(msg) def vision_recognized_pose_capture(msg) def vision_recognized_marker_trans_all(msg) def vision_recognized_marker_trans_left(msg) def vision_recognized_marker_trans_right(msg) def vision_recognized_marker_trans_stop(msg) def vision_recognized_marker_trans_forward(msg) def vision_recognized_marker_trans_red_heart(msg) def vision_recognized_marker_trans_target(msg def vision_recognized_marker_trans_dice(msg) def vision_recognized_marker_number_all(msg) def vision_recognized_marker_number_one, …, nine def vision_recognized_marker_letter_all(msg) def vision_recognized_marker_letter_A, …, Z Type: Event callback
  • Цель: настроить блок на запуск своей внутренней программы при обнаружении определенного шаблона хлопков

  • Тип: блок событий

  • Пример: перемещение по спирали Первоначально все светодиодные индикаторы шасси и подвеса выключены. Когда робот определит 2 хлопка, все красные светодиодные индикаторы начнут мигать, и робот начнет перемещаться по спиральной линии.

API Python:
Function: def sound_recognized_applause_twice(msg) def sound_recognized_applause_thrice(msg) Type: Event callback
  • Цель: заставляет робота возвращать условие «Истина» при идентификации указанной информации (например, объекта, маркера обзора, жеста и т. д.); в противном случае возвращается условие «False».

  • Тип: логический блок

  • Пример: идентификация людей. Когда робот идентифицирует человека, все красные светодиодные индикаторы шасси будут мигать, а все красные светодиодные индикаторы подвеса будут прокручиваться; в противном случае все светодиодные индикаторы шасси и подвеса останутся в цвете по умолчанию.

Примечание. По возможности старайтесь использовать этот блок с условными операторами.

API Python:

Function: vision_ctrl.check_condition(condition_enum)

Parameters:

  • condition_enum(enum):
    • rm_define.cond_recognized_people
    • rm_define.cond_recognized_car ■rm_define.cond_recognized_marker_trans_all ■rm_define.cond_recognized_marker_trans_left ■rm_define.cond_recognized_marker_trans_right ■rm_define.cond_recognized_marker_trans_forward ■rm_define.cond_recognized_marker_trans_stop ■rm_define.cond_recognized_marker_trans_red_heart ■rm_define.cond_recognized_marker_trans_target ■rm_define.cond_recognized_marker_trans_dice
    • rm_define.cond_recognized_marker_number_all
    • rm_define.cond_recognized_marker_number_[zero, …, nine]
    • rm_define.cond_recognized_marker_letter_all
    • rm_define.cond_recognized_marker_letter_[A, …, Z]
    • rm_define.cond_recognized_pose_all
    • rm_define.cond_recognized_pose_victory
    • rm_define.cond_recognized_pose_give_in
    • rm_define.cond_recognized_pose_capture
  • Цель: настроить робота на возврат состояния «Истина» при обнаружении определенного шаблона хлопков; в противном случае возвращается условие «False».

  • Логический блок

  • Пример: остановка движения с аплодисментами. Это заставляет робота поворачиваться направо и останавливать все движения, когда он определяет 3 хлопка.

API Python:

Function: vision_ctrl.check_condition(condition_enum)

Parameters:

  • condition_enum(enum):
    • rm_define.cond_sound_recognized_applause_twice
    • rm_define.cond_sound_recognized_applause_thrice
  • Цель: когда конкретная информация (например, объект, маркер обзора, жест и т. д.) определена, система продолжит выполнение команд; в противном случае он будет продолжать ждать.

  • Тип: Блок выполнения, Блок блокировки

  • Пример: Тренировочная стрельба

Примечание. Если целевой маркер не идентифицирован, программа в этом блоке продолжит ожидание, и блок будет выделен:

API Python:

Function: vision_ctrl.cond_wait(condition_enum)

Parameters:

  • condition_enum(enum):
    • rm_define.cond_recognized_people
    • rm_define.cond_recognized_car
    • rm_define.cond_recognized_marker_trans_all
    • rm_define.cond_recognized_marker_trans_left
    • rm_define.cond_recognized_marker_trans_right
    • rm_define.cond_recognized_marker_trans_forward
    • rm_define.cond_recognized_marker_trans_stop
    • rm_define.cond_recognized_marker_trans_red_heart
    • rm_define.cond_recognized_marker_trans_target
    • rm_define.cond_recognized_marker_trans_dice
    • rm_define.cond_recognized_marker_number_all
    • rm_define.cond_recognized_marker_number_[zero, …, nine] ■rm_define.cond_recognized_marker_letter_all ■rm_define.cond_recognized_marker_letter_[A, …, Z] ■rm_define.cond_recognized_pose_all ■rm_define.cond_recognized_pose_victory ■rm_define.cond_recognized_pose_give_in ■rm_define.cond_recognized_pose_capture .
  • Цель: настроить систему на продолжение выполнения команд при обнаружении определенного шаблона хлопков; в противном случае он будет продолжать ждать.

  • Тип: Блок выполнения, Блок блокировки

  • Пример: Захват видео с контролем хлопков. Это позволяет роботу начинать запись видео при обнаружении 2 хлопков и останавливать запись при обнаружении 3 хлопков.

API Python:

Function: vision_ctrl.cond_wait(condition_enum)

Parameters:

  • condition_enum(enum):
    • rm_define.cond_sound_recognized_applause_twice
    • rm_define.cond_sound_recognized_applause_thrice
  • Цель: получить информацию для идентифицированного маркера зрения, возвращаемую в виде параметров N, ID, X, Y, W и H.

  • Тип: информационный блок (данные типа списка)

  • Пример: распознавание маркеров обзора. Когда маркер обзора появляется в поле зрения робота, вы сможете наблюдать параметры маркера обзора на странице FPV. Вы можете перемещать маркер обзора, чтобы наблюдать за изменениями любого из 6 параметров.

Примечание:

  • Формат маркеров обзора следующий: Первый элемент — это количество маркеров, обнаруженных роботом. Второй элемент представляет собой группу из 5 значений: идентификатор визуального маркера, ось X центральной точки, ось Y центральной точки, ширина W и высота H. Один и тот же формат используется для всех следующих элементов, как показано ниже:

  • Описания возвращаемых значений идентификаторов, идентифицированных роботом:

ID=0: издавать звуки ID=1: стоп ID=2: игральная кость ID=3: цель ID=4: стрелка влево ID=5: стрелка вправо ID=6: стрелка вперед ID=8: красное сердце ID=10-19: 0-9 ID=20-45: А-Я

API Python:

Function: vision_ctrl.get_marker_detection_info() Return value:

  • detection_info(list)
  • Цель: получить идентифицированную информацию о человеке или роботе с точки зрения параметров N, X, Y, W и H

  • Тип: блок сбора информации (данные в виде списка)

  • Пример: идентификация другого робота S1 Когда в поле зрения робота появится другой робот S1, информация о роботе отобразится в окне FPV. Вы можете переместить другого робота в поле зрения вашего робота и наблюдать, как изменяются эти 5 значений.

Вы можете наблюдать за изменениями данных с помощью окна FPV:

Примечание. Формат информации об объекте следующий: Первый элемент — это количество объектов, идентифицированных роботом. Второй элемент представляет собой группу из 4 чисел: ось X центральной точки, ось Y центральной точки, ширина W и высота H. Один и тот же формат используется для всех следующих элементов, как показано ниже:

API Python:

Function: vision_ctrl.get_people_detection_info() vision_ctrl.get_car_detection_info() Return value:

  • detection_info(list)
  • Цель: получить идентифицированную информацию о жестах с точки зрения параметров N, ID, X, Y, W и H

  • Тип: информационный блок (список)

  • Пример: определить позу. Вы можете наблюдать изменения в жест- соответствующие данные с помощью окна FPV.

Примечание:

  • Формат информации о жестах следующий: Первый элемент — это количество жестов, идентифицированных роботом. Второй элемент представляет собой группу из 5 чисел: идентификатор жеста, ось X центральной точки, ось Y центральной точки, ширина W и высота H. Один и тот же формат используется для всех следующих элементов, как показано ниже:

  • Описания значений идентификаторов: ID=4: V ID=5: инвертированный V ID=6: сделать фотографию

API Python:

Function: vision_ctrl.get_pose_detection_info() Return value:

  • detection_info(list)
  • Цель: Получить информацию для идентифицированных линий с точки зрения параметров N, Info, X, Y, θ и C

  • Тип: Информационный блок (список)

  • Пример: Определить синие линии Когда робот идентифицирует линии, все светодиоды на шасси и подвесе будут мигать синим цветом.

Примечание. Формат информации о линии следующий: Первый элемент — это фиксированное число 10, которое представляет точки линии, обнаруженные роботом. Второй элемент, Информация, представляет собой информацию о линии, возвращаемую роботом (где 0 = нет линии, 1 = одна линия, 2 = Т-образное пересечение, 3 = четырехстороннее пересечение). Третий элемент представляет собой группу из 4 чисел: ось X (для точек от ближней до дальней), ось Y, θ (фактическая касательная линия) и C (или кривизна в диапазоне значений 0–10, где 0 представляет собой прямая линия). Всего будет 42 значения.

API Python:

Function: vision_ctrl.get_line_detection_info() Return value:

  • detection_info(list)
  • Цель: Получает информацию о яркости текущей среды и возвращает значение от 0 до 10; чем больше значение, тем ярче окружающая среда.

  • Тип: Информационный блок (переменная)

  • Пример: Перемещение в сторону света

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

API Python:

Function: vision_ctrl.get_env_brightness() Return value:

  • brightness_value(int)
  • Цель: Получить информацию о положении прицела с точки зрения параметров X и Y.

  • Тип: информационный блок (список)

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

Примечание. Формат положения знака: X представляет координату X, а Y представляет координату Y.

API Python:

Function: media_ctrl.get_sight_bead_position() Return value:

  • sight_bead_position(list)