Часть 06: развёртывание OpenClaw, подключение и запуск
После этой главы читатель должен уметь три вещи. Во-первых, понимать, как фронтенд и бэкенд запускаются после перезагрузки. Во-вторых, знать, какую команду ввести вручную, если служба не поднялась сама. В-третьих, знать, какой адрес открывать в браузере для фронтенда, а какие адреса относятся к бэкенду и не предназначены для просмотра страниц.
1. Что проверить сразу после перезагрузки
После перезагрузки не спешите открывать браузер. Сначала выполните в терминале платы три команды и убедитесь, что бэкенд и служба кнопок запустились.
sudo systemctl status magicclaw.service --no-pager
sudo systemctl status magicclaw-buttons.service --no-pager
curl http://127.0.0.1:18789/health
Систему можно считать готовой к работе, если выполнено следующее:
magicclaw.serviceпоказываетactive (running);magicclaw-buttons.serviceпоказываетactive (running);- проверка состояния возвращает что-то вроде
{"ok":true,"status":"live"}.
Если на этом шаге что-то не проходит, сначала исправьте службы, и только потом смотрите веб-страницу. Веб-страница — всего лишь пункт управления: если бэкенд не запущен, она работать не будет.
2. Как вручную запустить фронтенд и бэкенд после перезагрузки
Обычно эти две службы уже настроены systemd на автозапуск, то есть после перезагрузки поднимаются сами, и вводить команды каждый раз не нужно.
Если после загрузки служб не оказалось, их можно запустить вручную:
sudo systemctl start magicclaw.service
sudo systemctl start magicclaw-buttons.service
Чтобы они стартовали при каждой загрузке, достаточно один раз выполнить:
sudo systemctl enable magicclaw.service
sudo systemctl enable magicclaw-buttons.service
Если нужно перечитать конфигурацию и перезапустить службы, используйте:
sudo systemctl daemon-reload
sudo systemctl restart magicclaw.service
sudo systemctl restart magicclaw-buttons.service
3. Как открыть веб-фронтенд
Стабильно работающий адрес веб-интерфейса:
http://192.168.127.10:18789/
Этот адрес теперь занят легковесным фронтендом (Lite), который подготовлен для учебника. Он подходит для демонстрации курса, веб-управления и отладки в локальной сети.
Если браузер автоматически переходит на старую страницу чата или на старой странице появляется device identity required, не продолжайте обновлять её как основной вход. Старая страница — это историческая совместимая точка входа; учебник не рекомендует использовать её для повседневной работы.
Важно различать два адреса:
http://192.168.127.10:18789/— страница фронтенда, основной вход;http://127.0.0.1:18791/— интерфейс аутентификации бэкенда, это не страница для открытия в браузере.
Ответ Unauthorized при открытии 18791 — нормальное поведение: интерфейс требует токен Bearer и сам по себе не является пользовательским интерфейсом.
4. Как связаны три кнопки и веб-управление
В этой главе по умолчанию используется режим, в котором кнопками управляет MagicClaw, а не заводской режим.
left— левая кнопка, если смотреть на устройство с лицевой стороны.middle— средняя кнопка.right— правая кнопка, если смотреть на устройство с лицевой стороны.
Каждой кнопке можно назначить одно из действий: stereo, gesture, voice_chat, voice_asr, yolo, stop_all, off.
Посмотреть текущие назначения:
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons show
Записать набор назначений по умолчанию:
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons set left stereo
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons set middle gesture
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons set right voice_chat
Имитировать нажатие:
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons invoke right
5. Какие команды требуют сначала запустить голосовую цепочку
Команды voice say и voice prompt не являются самостоятельными командами локального озвучивания. Для их работы сначала должна быть запущена голосовая цепочка.
Сначала запустите базу распознавания:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice asr start
Затем проверьте состояние:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice status
Для полного разговорного режима запустите:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice chat start
Осмысленно выполнять следующие две команды можно только после того, как voice_asr: running и voice_chat: running:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice say "你好,这是板端朗读测试。" # «Здравствуйте, это тест озвучивания на плате»
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice prompt "请只回答:测试通过。" # «Ответьте только: тест пройден»
Первая фраза в примере — китайская: это тестовая реплика для синтеза речи, которую понимает голосовой движок; её перевод: «Здравствуйте, это тест озвучивания на плате». Вторая — «Отвечайте только: тест пройден».
Если команда застряла на сообщении Waiting for at least 1 matching subscription(s)..., значит, никто не подписан на нужный топик. Это не ошибка синтаксиса команды.
6. Как пользоваться командами сервоприводов
Команды сервоприводов не зависят от ROS и выполняются напрямую:
sudo /userdata/magicclaw/runtime/bin/magicboxctl servo set left 15
sudo /userdata/magicclaw/runtime/bin/magicboxctl servo set right 45
sudo /userdata/magicclaw/runtime/bin/magicboxctl servo greet 1
Здесь left и right означают левую и правую опорные стойки, если смотреть на устройство с лицевой стороны. В текущем скрипте левая стойка управляется выводом PWM 32, правая — выводом PWM 33. Безопасный диапазон углов — 0–90, рекомендуемое среднее положение — 30.
Если после выполнения команды движения не происходит, сначала проверьте права доступа и занятость GPIO, затем — физическое подключение. ROS в этом случае проверять не нужно.
7. Частые неисправности
1. Страница показывает device identity required
Обычно это происходит на старой странице чата; сам шлюз при этом может работать нормально. Сначала выполните:
curl http://127.0.0.1:18789/health
Если проверка состояния проходит, открывайте основную страницу http://192.168.127.10:18789/ и не обновляйте старую страницу чата снова и снова.
2. Страница показывает Unauthorized
Это нормальный ответ интерфейса бэкенда 18791. Этот адрес не является веб-фронтендом, не открывайте его как страницу.
3. voice say или voice prompt ждёт бесконечно
Сначала выполните:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice status
Затем убедитесь, что voice_asr или voice_chat запущены. Если нет — сначала запустите нужную голосовую цепочку.
8. Итоговая последовательность запуска
Если нужно запомнить самый короткий путь, достаточно четырёх шагов.
- После перезагрузки проверьте службы:
sudo systemctl status magicclaw.service --no-pager
sudo systemctl status magicclaw-buttons.service --no-pager
- Если службы не запущены, запустите их вручную:
sudo systemctl start magicclaw.service
sudo systemctl start magicclaw-buttons.service
- Откройте веб-фронтенд:
http://192.168.127.10:18789/
- Если нужен голос, запустите голосовую цепочку:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice chat start
9. Если вы хотите сделать Feishu основным входом
Если вы решите не использовать веб-фронтенд как основной вход, а управлять настольным питомцем сразу из Feishu, порядок запуска меняется: сначала поднимите шлюз Feishu, и только потом сообщения Feishu будут управлять возможностями платы.
Сначала на Windows-компьютере, где установлен OpenClaw, выполните:
openclaw gateway install
openclaw gateway
openclaw gateway status
Если в системе уже зарегистрирована задача планировщика, можно использовать её:
schtasks /Run /TN "OpenClaw Gateway"
Если в журнале установки появилось Gateway service missing, это обычно означает, что плагин уже установлен, но сам шлюз ещё не запущен. В этом случае не повторяйте сканирование QR-кода — сначала запустите процесс шлюза, и только потом возвращайтесь к тестам в Feishu.
Самые частые текстовые команды в Feishu:
/status
/reset
/model
/status показывает текущую сессию и состояние работы, /reset сбрасывает текущую сессию, /model показывает или переключает модель.
Если нужно узнать состояние самого питомца, просто пишите в Feishu на естественном языке, например:
请返回当前板端状态。(«Верни текущее состояние платы»)请告诉我当前时间。(«Скажи текущее время»)请列出当前技能。(«Перечисли текущие навыки»)请总结语音、按键、灯光、舵机和 Demo 的状态。(«Подведи итог по голосу, кнопкам, подсветке, сервоприводам и демо»)
Китайские формулировки выше — входные команды для ассистента, поэтому их лучше вводить именно в таком виде; русский перевод приведён в скобках.
Можно ли увидеть загрузку процессора в Feishu, зависит от того, добавили ли вы на плату дополнительный инструмент. Текущая команда magicboxctl status гарантирует только каталог установки, время, занятость диска, состояние служб, режимы и сводку громкости, но не выводит загрузку процессора по умолчанию. Если понадобятся данные по CPU, памяти или нагрузке, добавьте отдельный навык или инструмент, а не считайте такую возможность уже существующей.
Если вы используете Feishu как основной вход, веб-фронтенд Lite можно оставить как резервный вариант. Тогда на занятиях достаточно будет потока сообщений в Feishu, без зависимости от браузера.