Вернуться в Курс

Уровень 2. Продвинутые автономные роботы.

0% завершено
0/0 Шагов
  1. ОСНОВЫ РОБОТОТЕХНИКИ
    Урок 1: Введение в робототехнику
    3 Темы
  2. Урок 2: Знакомимся с датчиками
    4 Темы
    |
    1 Тест
  3. Урок 3: Знакомимся с приводами
    6 Темы
    |
    1 Тест
  4. Урок 4: Распознавание лиц с помощью робота
    2 Темы
  5. АВТОНОМНЫЕ РОБОТЫ
    Урок 5: Робот, избегающий препятствий
    4 Темы
    |
    1 Тест
  6. Урок 6: Робот, распознающий край и границы
    5 Темы
    |
    1 Тест
  7. Урок 7: Управляемый робот
    5 Темы
    |
    1 Тест
  8. РЕАЛЬНОЕ ПРИМЕНЕНИЕ ИИ & РОБОТОТЕХНИКА
    Урок 8: Полноприводный робот
    3 Темы
  9. Урок 9: Робот, отслеживающий положение объекта
    5 Темы
    |
    1 Тест
  10. Урок 10: Подъёмно-транспортный робот - сборка
    2 Темы
  11. Урок 11: Подъёмно-транспортный робот
    3 Темы
  12. ИТОГОВЫЙ ПРОЕКТ
    Урок 12: Курсовой проект
Урок прогресс
0% завершено

Задача 2: Отслеживание лиц

Одна из наиболее увлекательных задач — отслеживание лиц. Кварки может находить лицо и «следовать» за ним, поворачивая голову в том же направлении, что и человек перед ним. Звучит интересно, не так ли? Давайте же начнём писать код для робота, отслеживающего положение лица.

Понимание логики

  1. Если лицо находится в центре экрана, угол сервопривода должен быть прямым.
  2. Если оно перемещается левее, сервопривод также должен повернуться налево.

  3. Если оно перемещается правее, сервопривод также должен повернуться направо.

Напишем код!

  1. Перетащим блок when green flag clicked из панели События (Events).
  2. После этого добавим блок turn () video on stage with ()% transparency из расширения Распознавание лиц (Face Detection) и выберем вкл (on) из выпадающего меню. Так мы включим камеру.
  3. Камера должна включиться при нажатии на зелёный флаг. Прежде, чем приступать к следующему этапу, нужно убедиться, что эта часть программы работает.
  4. Добавим блок forever из панели Управление (Control) сразу под блоком turn () video on stage with () % transparency.
  5. Затем добавим внутрь блока forever блок analyze image from (). Этот блок будет анализировать лицо, которое распознает камера. Выберем пункт камера (camera) из выпадающего меню.
  6. Для изменения положения сервопривода добавим блок set servo on () to () angle под блоком analyze image from ().
  7. Здесь важна логика, потому что положение лица на экране имеет огромное значение. С учётом этого, нам нужно добавить блок деления () / () из панели Оператор (Operator) в область программирования.
  8. Поместим блок get () of face () в левую часть блока () / () и 3 — в его правую часть. Выберем пункт положение Х (X position) из выпадающего меню.
  9. Затем перетащим блок () + () внутрь блока set servo on () to () angle. В левую его часть введём значение 90, а в правую поместим блок () / ().

Пояснение о блоке сервопривода

  1. Для центра экрана мы устанавливаем значение положения X, которое равно нулю.
  2. При перемещении влево значение положения X будет меняться на отрицательное, а вправо — на положительное.
  3. Значение положения X делится на 3, что позволяет точно определить положение лица.
  4. Для установки угла сервопривода на 90 градусов в том случае, если лицо находится в центре экрана, мы прибавляем 90 к значению положения X.
  5. При перемещении влево значение угла сервопривода будет снижаться, так как значение положения X станет отрицательным.
  6. При перемещении вправо значение угла сервопривода будет увеличиваться, так как значение положения X станет положительным.

Проверка

Следующий шаг — проверить, всё ли работает правильно. Если лицо попадает в поле зрения камеры, оно должно распознаваться, и при перемещении влево или вправо голова робота также должна поворачиваться в нужном направлении.