Программа, которая управляет роботом на плате Orange Pi 5 Plus + микроконтроллер STM32.
robot-orchestrator — это оркестратор и supervisor робота:
единственный процесс, который стартует первым при подаче питания,
приводит систему в рабочее состояние и дальше следит за жизненным
циклом всех остальных компонентов. Роли:
- Health-check оборудования — на каждом старте опрашивает камеру, микрофон, сетевое подключение и микроконтроллер, и знает, в каком они состоянии.
- Деплой и обновление зависимых репозиториев — атомарно подтягивает свежие версии остальных программ робота (веб-интерфейс, голосовой модуль), если в них что-то изменилось.
- Прошивка и верификация MCU — при необходимости пересобирает и прошивает микроконтроллер, затем проверяет, что прошивка встала корректно.
- Process supervisor — запускает сервисы робота в порядке зависимостей и перезапускает упавшие (с backoff), то есть выполняет ту же роль, что systemd/supervisord, но со знанием специфики этого проекта.
- Boot UI — отображает на экране робота состояние загрузки и текущий режим работы.
- Admin-панель — веб-интерфейс по сети для наблюдения и ручного управления: логи, перезапуск сервисов, обновление репозиториев и т.п.
- Self-update — умеет обновлять сам себя: новую версию оркестратора готовит автоматически, но переключение на неё требует ручного подтверждения.
Если какого-то ресурса не хватает (нет камеры, нет интернета, не подключён микроконтроллер и т.д.) — робот не падает, а переходит в деградированный (non-prod) режим с понятным указанием причины.
- Включили питание — оркестратор запускается первым.
- Он проверяет всё оборудование: камеру, микрофон, интернет, микроконтроллер.
- Если каких-то настроек/секретов ещё нет — включает камеру и ждёт, когда оператор покажет ей заранее подготовленный QR-код, и считывает из него всё нужное.
- Скачивает и подготавливает актуальные версии программ робота.
- Если нужно — обновляет прошивку микроконтроллера и проверяет, что она встала правильно.
- Запускает все программы робота в нужном порядке.
- Если всё хорошо — робот полностью готов к работе. Если чего-то не хватает — робот всё равно работает, но в урезанном режиме, и это видно на экране.
- Дальше оркестратор просто следит: если какая-то программа упала — перезапускает её; если вышла новая версия самого оркестратора — готовит её и ждёт, когда человек подтвердит переход на неё.
- В любой момент можно зайти на веб-страницу оркестратора по сети и посмотреть, что происходит, или что-то перезапустить/обновить вручную.