Skip to main content

Цикл Sense-Think-Act. Три шага любого робота

Представьте, что вы играете в футбол:

  1. Смотрите (Sense) — видите мяч, товарищей, ворота
  2. Думаете (Think) — решаете, куда бежать и кому пасовать
  3. Действуете (Act) — бежите, бьете, передаете

Робот работает по точно такой же схеме. Это три шага, которые повторяются снова и снова, пока робот включен.


1. Sense (Чувствовать / Воспринимать)

“Что происходит вокруг?”

Это этап, когда робот собирает информацию о мире через свои “органы чувств” — датчики.

Что использует робот:

  • Глаза: Камеры, лидары, ультразвуковые датчики
  • Осязание: Тактильные датчики, датчики давления
  • Слух: Микрофоны для голосовых команд
  • Чувство равновесия: Гироскопы и акселерометры (IMU)
  • Навигация: GPS, энкодеры на колесах

Примеры:

Робот-пылесос:
• Инфракрасный датчик: "Впереди стена на расстоянии 50 см"
• Два ИК-датчика под днищем: "Сейчас я на ковре, а не на паркете"

Манипулятор на заводе:
• Камера: "Деталь находится в точке X=10, Y=5"
• Датчик силы на захвате: "Сжимаю с силой 2 Ньютона"

Автономный дрон:
• GPS: "Мои координаты: 55.7558° с.ш., 37.6173° в.д."
• Барометр: "Высота: 100 метров"

Важно: На этом этапе получаются “сырые” данные — просто числа от датчиков.


2. Think (Думать / Обрабатывать)

“Что делать с этой информацией?”

Мозг робота (микроконтроллер или компьютер) анализирует данные и принимает решения.

Что происходит внутри:

  1. Очистка данных: Убрать помехи и шумы

    Сырые данные с сонара: [45, 47, 120, 46, 45, 300]
    После фильтрации: [45, 46, 45] (убрали выбросы 120 и 300)
    Вывод: Расстояние ≈ 45 см
    
  2. Понимание ситуации: Из чисел → в смысл

    Данные: УЗ-датчик = 15 см, датчик линии = черный
    Вывод: "Я близко к краю стола и скоро упаду!"
    
  3. Принятие решения: Что делать дальше?

    Ситуация: "Спереди стена на 30 см, слева свободно"
    Решение: "Повернуть налево на 90 градусов"
    

Уровни сложности:

  • Простой робот: “Если расстояние < 20 см → остановиться”
  • Сложный робот: ИИ строит карту помещения и планирует оптимальный маршрут

3. Act (Действовать / Исполнять)

“Сделать это!”

Робот выполняет решение через свои “руки и ноги” — исполнительные механизмы.

Что использует робот:

  • Ноги/Колеса: Моторы для движения
  • Руки: Сервоприводы для захвата и манипуляции
  • Голос: Динамики для общения
  • Индикация: Светодиоды, дисплеи

Примеры команд:

// Для мобильного робота
motor_left.setSpeed(150);  // Левое колесо: скорость 150
motor_right.setSpeed(150); // Правое колесо: скорость 150
delay(2000);               // Ехать 2 секунды

// Для манипулятора
servo_gripper.write(90);   // Открыть захват на 90 градусов
servo_elbow.write(45);     // Согнуть "локоть" на 45°

Практика: как это работает вместе

Проект 1: Робот, объезжающий препятствия

Цикл:
1. SENSE: УЗ-датчик измеряет расстояние до препятствия → 25 см
2. THINK: "25 см < безопасное расстояние 30 см → нужно повернуть"
          "Справа свободно (правый датчик = 80 см) → поворачиваем направо"
3. ACT:   Левый мотор вперед, правый мотор назад
          Ждем 0.5 секунды (поворот)
          Оба мотора вперед (поехали дальше)

Цикл повторяется 10 раз в секунду!

Проект 2: Робот, следующий по линии

Цикл:
1. SENSE: 5 ИК-датчиков под роботом:
          [Черный, Черный, Белый, Белый, Белый]
          Это значит: "Робот съехал вправо с линии"
   
2. THINK: ПИД-регулятор вычисляет:
          Ошибка = -2 (сильно справа)
          Команда = Повернуть налево с силой 150
   
3. ACT:   Левый мотор: скорость 100 (медленнее)
          Правый мотор: скорость 200 (быстрее)
          Робот поворачивает налево, возвращаясь на линию

Почему это важно понимать?

Распространенные ошибки:

Ошибка 1: “Пропускаем этап Think”

Неправильно: "Если датчик видит стену → сразу остановиться"
Проблема: Резкие рывки, робот "дергается"
Правильно: "Если датчик видит стену → плавно замедлиться и объехать"

Ошибка 2: “Медленный Think при быстром Sense”

Датчики обновляются 100 раз в секунду,
но программа думает только 10 раз в секунду.
Результат: Робот теряет 90% информации!

Ошибка 3: “Act без проверки”

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

Эксперимент для понимания

Игра “Робот-человек”:

  1. Один человек — “робот” (закрывает глаза)
  2. Второй — “оператор” (дает команды)
  3. Третий — “датчик” (говорит, что вокруг)

Как играть:

  1. Sense: “Датчик” говорит: “Впереди стул в 2 шагах”
  2. Think: “Оператор” думает: “Обойти слева”
  3. Act: “Робот” делает 2 шага влево, 3 вперед, 2 вправо

Вывод: Вы сами прошли весь цикл STA!


Проверь себя

Смогу ли я:

  1. Привести пример каждого этапа STA для микроволновки?
  2. Объяснить, что случится, если этап Think будет слишком медленным?
  3. Описать цикл STA для робота, несущего стакан с водой?
  4. Найти в своей программе, где заканчивается Sense и начинается Think?

Если на все вопросы можете ответить — вы понимаете, как “думают” роботы!


Что дальше?

Поняли STA? Теперь можно углубиться в каждый этап:

Совет: Начните с самого простого цикла STA — робот, который едет вперед, пока не увидит препятствие, и тогда поворачивает. Запрограммируйте это. Потом постепенно усложняйте: добавьте плавные повороты, объезд нескольких препятствий, движение по лабиринту.