Зір штучного інтелекту#
Вступ#
Датчик зору на базі штучного інтелекту робота-кодера VEX AIM виявляє та відстежує об’єкти, кольори та ідентифікатори AprilTag. Це дозволяє роботу аналізувати своє оточення, стежити за об’єктами та реагувати на основі виявлених візуальних даних.
Датчик зору зі штучним інтелектом має роздільну здатність 320×240 пікселів. Початок координат (0, 0) розташований у верхньому лівому куті, а центр датчика знаходиться в точці (160, 120), як показано на діаграмі нижче:

Нижче наведено список усіх блоків:
Дії — керування подачею даних AI Vision та захопленням даних об’єкта.
Засіб перегляду AI Vision на екрані — Вмикає або вимикає пряму трансляцію AI Vision на екрані робота.
get object data — Збирає дані для певного підпису, такого як налаштований колір, попередньо навчений об’єкт або ідентифікатор AprilTag.
Налаштування — налаштуйте, до яких виявлених об’єктів буде здійснюватися доступ.
встановити елемент об’єкта AI Vision — Вибирає певний об’єкт зі списку виявлених об’єктів.
Значення — Повертає наявність, класифікацію та властивості об’єкта.
має об’єкт — Перевіряє, чи робот утримує виявлений об’єкт.
Об’єкт AI Vision існує — Повідомляє, чи виявлено об’єкт.
Об’єкт AI Vision є — Перевіряє, чи відповідає виявлений об’єкт певній класифікації.
Об’єкт AI Vision – це AprilTag ID — Перевіряє, чи збігається виявлений AprilTag ID із певним ID.
Кількість об’єктів AI Vision — Повідомляє кількість виявлених об’єктів.
Властивість об’єкта AI Vision — Повідомляє про такі деталі, як:
centerX & centerY — Координати центрального положення в області зору датчика.
originX & originY — Координати положення верхнього лівого кута в області зору датчика.
обертання — Орієнтація об’єкта.
bearing — Горизонтальний кут відносно передньої частини робота.
tagID — Ідентифікаційний номер ідентифікатора AprilTag.
Дії#
Переглядач AI Vision на екрані#
Блок стеку AI Vision viewer on screen вмикає або вимикає пряму трансляцію AI Vision на екрані робота. Коли цю функцію ввімкнено, на екрані відображаються дані датчиків у режимі реального часу, що запобігає появі інших зображень або тексту. Щоб відобразити інший контент, використовуйте цей блок, щоб приховати трансляцію.
AI Vision [показати v] перегляд на екрані
Параметри |
Опис |
|---|---|
статус |
Керує відображенням потоку даних на екрані робота: показати відображає поток даних, тоді як приховати видаляє поток даних з екрана. |
Приклад
коли запущено
[View the AI Vision Sensor's feed for five seconds.]
AI Vision [показати v] перегляд на екрані
чекати [5] секунд
AI Vision [сховати v] перегляд на екрані
отримати дані об’єкта#
Блок стеку get object data фільтрує дані з кадру AI Vision Sensor до єдиного підпису — збереженого опису чогось, що може розпізнати датчик, наприклад, попередньо навченого об’єкта, ідентифікатора AprilTag або налаштованого кольору чи колірного коду.
Кольори та колірні коди необхідно спочатку налаштувати в утиліті AI Vision, перш ніж їх можна буде використовувати з цим блоком.
Набір даних зберігає об’єкти, відсортовані від найбільшого до найменшого за шириною, починаючи з індексу 0. Доступ до властивостей кожного об’єкта можна отримати за допомогою блоку AI Vision object property. Якщо не виявлено відповідних об’єктів, повідомляється про порожній набір даних.
отримати дані [спортивний м'яч v] з AI Vision
Параметр |
Опис |
|---|---|
підпис |
Фільтрує набір даних, щоб включити лише дані заданого підпису. Доступні підписи:
|
Приклад
коли запущено
[Move forward if a sports ball is detected.]
назавжди
отримати дані [спортивний м'яч v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
рухатися [вперед v] на [10] [мм v] ▶
Кольорові підписи#
Колірна сигнатура – це унікальний колір, який може розпізнати датчик AI Vision. Ці сигнатури дозволяють датчику виявляти та відстежувати об’єкти на основі їхнього кольору. Після налаштування кольорової сигнатури в утиліті AI Vision датчик може ідентифікувати об’єкти з цим певним кольором у своєму полі зору.
Колірні сигнатури використовуються в блоці get object data для обробки та виявлення кольорових об’єктів у режимі реального часу.

Приклад
коли запущено
[Display if any objects matching the Red_Box signature is detected.]
назавжди
встановити курсор на рядок [1] стовпець [1] на екрані
очистити рядок [1] на екрані
[Change the signature to any configured Color Signature.]
отримати дані [Red_Box v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
вивести [Color signature detected!] на екран ▶
Колірні коди#
Колірний код — це структурований візерунок, що складається з 2–4 колірних сигнатур, розташованих у певному порядку. Після налаштування колірного коду в утиліті AI Vision Utility датчик може розпізнавати попередньо визначені кольорові візерунки.
Кольорові коди особливо корисні для ідентифікації складних об’єктів, вирівнювання з ігровими елементами або створення унікальних маркерів для автономної навігації.

Приклад
коли запущено
[Display if any objects matching the BlueRed code is detected.]
назавжди
встановити курсор на рядок [1] стовпець [1] на екрані
очистити рядок [1] на екрані
[Change the signature to any configured Color Code.]
отримати дані [BlueRed v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
вивести [Color code detected!] на екран ▶
Налаштування#
встановити елемент об’єкта AI Vision#
Блок стека set AI Vision object item встановлює, який елемент у наборі даних використовувати.
встановити елемент об'єкта AI Vision на (1)
Параметри |
Опис |
|---|---|
елемент |
Номер елемента в наборі даних, який потрібно використовувати. |
Приклад
коли запущено
[Display the width of the smallest detected object.]
назавжди
отримати дані [весь вантаж v] з AI Vision
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
якщо <об'єкт AI Vision існує?> тоді
встановити елемент об'єкта AI Vision на (кількість об'єктів AI Vision)
вивести (об'єкт AI Vision [ширина v]) на екран ▶
Цінності#
має об’єкт#
Логічний блок has object повідомляє, чи робот наразі виявив об’єкт у своєму Kicker.
Правда — Робот має об’єкт.
Хибно — Робот не має об’єкта.
<має [спортивний м'яч v]? :: custom-ai-vision>
Параметр |
Опис |
|---|---|
об’єкт |
Об’єкт, який потрібно виявити, встановивши кікер робота:
|
Приклад
коли запущено
[Kick when the robot has a sports ball.]
назавжди
якщо <має [спортивний м'яч v]? :: custom-ai-vision> тоді
штовхнути об'єкт [середній v]
Об’єкт AI Vision існує#
Логічний блок Об’єкт AI Vision існує повідомляє, чи виявлено об’єкт у наборі даних.
True — Набір даних містить виявлений об’єкт.
Хибно — Об’єктів не виявлено.
<об'єкт AI Vision існує?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Move forward if a sports ball is detected.]
назавжди
отримати дані [спортивний м'яч v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
рухатися [вперед v] на [10] [мм v] ▶
Об’єкт ШІ Бачення є#
Булевий блок Об’єкт AI Vision is повідомляє, чи відповідає виявлений об’єкт певній класифікації.
True — Елемент у наборі даних є конкретним об’єктом.
Хибність — Елемент у наборі даних не є конкретним об’єктом.
<об'єкт AI Vision є [спортивний м'яч v]?>
Параметр |
Опис |
|---|---|
об’єкт |
З яким об’єктом порівняти предмет:
|
Приклад
коли запущено
[Display if a sports ball is detected.]
назавжди
отримати дані [весь вантаж v] з AI Vision
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
якщо <об'єкт AI Vision існує?> тоді
якщо <об'єкт AI Vision є [спортивний м'яч v]?> тоді
вивести [Sports ball detected!] на екран ▶
чекати [0.5] секунд
Об’єкт AI Vision має ідентифікатор AprilTag#
Булевий блок AI Vision – це AprilTag ID, що повідомляє, чи збігається виявлений AprilTag ID із певним ідентифікатором.
True — Ідентифікатор AprilTag є числом.
Хибність — Ідентифікатор AprilTag не є числом.
<AI Vision object is AprilTag ID [1] ?>
Параметри |
Опис |
|---|---|
Ідентифікатор тегу квітня |
Число для порівняння з виявленим ідентифікатором AprilTag. |
Кількість об’єктів AI Vision#
Блок репортера підрахунок об’єктів AI Vision повідомляє кількість виявлених об’єктів у наборі даних у вигляді цілого числа.
кількість об'єктів AI Vision
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Display the amount of sports balls and barrels.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [весь вантаж v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
вивести (кількість об'єктів AI Vision) на екран ▶
Кінець
чекати [0.5] секунд
Властивість об’єкта AI Vision#
Існує дев’ять властивостей, які додаються до кожного об’єкта (показано нижче), що зберігаються після використання блоку get object data.
об'єкт AI Vision [ширина v]
Усі значення властивості, окрім tagID, описують положення, розмір, орієнтацію або пеленг виявленого об’єкта в момент використання блоку get object data. Ці значення вимірюються в пікселях або градусах, на основі роздільної здатності датчика 320 на 240 пікселів.

Параметр |
Опис |
|---|---|
власність |
Яку властивість виявленого об’єкта використовувати: |
ширина#
Властивість width повідомляє ширину виявленого об’єкта в пікселях як ціле число від 1 до 320.
Примітка: Значення пікселів відносні до системи координат датчика. Див. діаграму у вступі для довідки.
об'єкт AI Vision [ширина v]

Приклад
коли запущено
[Move towards a blue barrel until its width is larger than 100 pixels.]
назавжди
отримати дані [синя бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <(об'єкт AI Vision [ширина v]) [math_less_than v] [100]> тоді
рухатися [вперед v]
Кінець
інакше
зупинити весь рух
висота#
Властивість height повідомляє висоту виявленого об’єкта в пікселях як ціле число від 1 до 240.
Примітка: Значення пікселів відносні до системи координат датчика. Див. діаграму у вступі для довідки.
об'єкт AI Vision [висота v]

Приклад
коли запущено
[Move towards a blue barrel until its height is larger than 100 pixels.]
назавжди
отримати дані [синя бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <(об'єкт AI Vision [висота v]) [math_less_than v] [100]> тоді
рухатися [вперед v]
Кінець
інакше
зупинити весь рух
центрX#
Властивість centerX повідомляє x-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 320.
Примітка: Значення пікселів відносні до системи координат датчика. Див. діаграму у вступі для довідки.
об'єкт AI Vision [centerX v]

Приклад
коли запущено
[Turn slowly until a blue barrel is centered in front of the robot.]
встановити швидкість повороту [30]%
повернути [праворуч v]
назавжди
отримати дані [синя бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <[140] [math_less_than v] (об'єкт AI Vision [centerX v]) [math_less_than v] [180]> тоді
зупинити весь рух
центрY#
Властивість centerY повідомляє y-координату центру виявленого об’єкта в пікселях як ціле число від 0 до 240.
Примітка: Значення пікселів відносні до системи координат датчика. Див. діаграму у вступі для довідки.
об'єкт AI Vision [centerY v]

Приклад
коли запущено
[Move towards a blue barrel until its center y-coordinate is more than 140 pixels.]
назавжди
отримати дані [синя бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <(об'єкт AI Vision [centerY v]) [math_less_than v] [140]> тоді
рухатися [вперед v]
Кінець
інакше
зупинити весь рух
походженняX#
Властивість originX повідомляє x-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 320.
Примітка: Значення пікселів відносні до системи координат датчика. Див. діаграму у вступі для довідки.
об'єкт AI Vision [originX v]

Приклад
коли запущено
[Display if an orange barrel is to the left or the right.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [помаранчева бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <(об'єкт AI Vision [originX v]) [math_less_than v] [160]> тоді
вивести [To the left!] на екран ▶
інакше
вивести [To the right!] на екран ▶
Кінець
чекати [0.5] секунд
походженняY#
Властивість originY повідомляє y-координату верхнього лівого кута рамки визначення виявленого об’єкта в пікселях як ціле число від 0 до 240.
Примітка: Значення пікселів відносні до системи координат датчика. Див. діаграму у вступі для довідки.
об'єкт AI Vision [originY v]

Приклад
коли запущено
[Display if an orange barrel is close or far from the robot.]
назавжди
очистити рядок [1] на екрані
встановити курсор на рядок [1] стовпець [1] на екрані
отримати дані [помаранчева бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <(об'єкт AI Vision [originY v]) [math_less_than v] [80]> тоді
вивести [Far!] на екран ▶
інакше
вивести [Close!] на екран ▶
Кінець
чекати [0.5] секунд
обертання#
Властивість rotation повідомляє орієнтацію виявленого ідентифікатора AprilTag або колірного коду як ціле число в градусах від 0 до 359.
об'єкт AI Vision [обертання v]

Приклад
коли запущено
[Slide left or right depending on how the Color Code is rotated.]
назавжди
отримати дані [Red_Blue v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <[50] [math_less_than v] (об'єкт AI Vision [обертання v]) [math_less_than v] [100]> тоді
рухатися [праворуч v]
інакше якщо <[270] [math_less_than v] (об'єкт AI Vision [обертання v]) [math_less_than v] [330]> тоді
рухатися [ліворуч v]
інакше
зупинити весь рух
Кінець
інакше
зупинити весь рух
підшипник#
Властивість bearing повідомляє, наскільки об’єкт знаходиться ліворуч або праворуч від центру поля зору датчика штучного інтелекту у градусах. Значення 0 означає, що об’єкт розташований по центру, додатні значення означають, що об’єкт знаходиться праворуч, а від’ємні значення означають, що об’єкт знаходиться ліворуч.
коли запущено
[Keep the blue barrel directly in front of the robot.]
встановити швидкість повороту [40]%
назавжди
отримати дані [синя бочка v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
якщо <(об'єкт AI Vision [азимут v]) [math_greater_than v] [5]> тоді
повернути [праворуч v]
інакше якщо <(об'єкт AI Vision [азимут v]) [math_less_than v] [-5]> тоді
повернути [ліворуч v]
інакше
зупинити весь рух
ідентифікатор тегу#
Властивість tagID повідомляє ідентифікаційний номер виявленого ID AprilTag як ціле число.
об'єкт AI Vision [tagID v]
Приклад
коли запущено
[Move forward when AprilTag ID 0 is detected.]
назавжди
отримати дані [AprilTag ID 0 v] з AI Vision
якщо <об'єкт AI Vision існує?> тоді
рухатися [вперед v]
Кінець
зупинити весь рух