Цикл Sense-Think-Act. Три шага любого робота
Представьте, что вы играете в футбол:
- Смотрите (Sense) — видите мяч, товарищей, ворота
- Думаете (Think) — решаете, куда бежать и кому пасовать
- Действуете (Act) — бежите, бьете, передаете
Робот работает по точно такой же схеме. Это три шага, которые повторяются снова и снова, пока робот включен.
1. Sense (Чувствовать / Воспринимать)
“Что происходит вокруг?”
Это этап, когда робот собирает информацию о мире через свои “органы чувств” — датчики.
Что использует робот:
- Глаза: Камеры, лидары, ультразвуковые датчики
- Осязание: Тактильные датчики, датчики давления
- Слух: Микрофоны для голосовых команд
- Чувство равновесия: Гироскопы и акселерометры (IMU)
- Навигация: GPS, энкодеры на колесах
Примеры:
Робот-пылесос:
• Инфракрасный датчик: "Впереди стена на расстоянии 50 см"
• Два ИК-датчика под днищем: "Сейчас я на ковре, а не на паркете"
Манипулятор на заводе:
• Камера: "Деталь находится в точке X=10, Y=5"
• Датчик силы на захвате: "Сжимаю с силой 2 Ньютона"
Автономный дрон:
• GPS: "Мои координаты: 55.7558° с.ш., 37.6173° в.д."
• Барометр: "Высота: 100 метров"
Важно: На этом этапе получаются “сырые” данные — просто числа от датчиков.
2. Think (Думать / Обрабатывать)
“Что делать с этой информацией?”
Мозг робота (микроконтроллер или компьютер) анализирует данные и принимает решения.
Что происходит внутри:
Очистка данных: Убрать помехи и шумы
Сырые данные с сонара: [45, 47, 120, 46, 45, 300] После фильтрации: [45, 46, 45] (убрали выбросы 120 и 300) Вывод: Расстояние ≈ 45 смПонимание ситуации: Из чисел → в смысл
Данные: УЗ-датчик = 15 см, датчик линии = черный Вывод: "Я близко к краю стола и скоро упаду!"Принятие решения: Что делать дальше?
Ситуация: "Спереди стена на 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 без проверки”
Робот решил повернуть, но не проверил,
успел ли он это сделать.
Результат: Накручивает по кругу, не понимая,
что уже повернулся.
Эксперимент для понимания
Игра “Робот-человек”:
- Один человек — “робот” (закрывает глаза)
- Второй — “оператор” (дает команды)
- Третий — “датчик” (говорит, что вокруг)
Как играть:
- Sense: “Датчик” говорит: “Впереди стул в 2 шагах”
- Think: “Оператор” думает: “Обойти слева”
- Act: “Робот” делает 2 шага влево, 3 вперед, 2 вправо
Вывод: Вы сами прошли весь цикл STA!
Проверь себя
✅ Смогу ли я:
- Привести пример каждого этапа STA для микроволновки?
- Объяснить, что случится, если этап Think будет слишком медленным?
- Описать цикл STA для робота, несущего стакан с водой?
- Найти в своей программе, где заканчивается Sense и начинается Think?
Если на все вопросы можете ответить — вы понимаете, как “думают” роботы!
Что дальше?
Поняли STA? Теперь можно углубиться в каждый этап:
- Сенсоры — как улучшить этап Sense
- Алгоритмы — как улучшить этап Think
- Актуаторы — как улучшить этап Act
Совет: Начните с самого простого цикла STA — робот, который едет вперед, пока не увидит препятствие, и тогда поворачивает. Запрограммируйте это. Потом постепенно усложняйте: добавьте плавные повороты, объезд нескольких препятствий, движение по лабиринту.
