Руководство по установке Booster K1
Полная пошаговая настройка робота-гуманоида Booster K1 — от распаковки до первых шагов и интеграции платформы с телеоператором.
Безопасность и подготовка рабочего пространства
Требования к рабочему пространству
- Минимальная площадь помещения: 3 м × 3 м чистая, твердая, ровная поверхность
- Высота потолка: Минимум 2,2 м
- Никаких препятствий в радиусе действия в режиме ПРОГУЛКА
- Аварийная остановка: Перед включением питания убедитесь, что пульт дистанционного управления заряжен и находится в пределах досягаемости.
- Подъемное приспособление: Требуется для разработки режима CUSTOM — робот должен быть приостановлен перед входом в управление на уровне суставов.
Контрольный список распаковки
- Осмотрите все 22 соединения на предмет повреждений при транспортировке — осторожно перемещайте каждое вручную во влажном состоянии.
- Убедитесь, что кабель Ethernet включен в комплект поставки и на вашей рабочей станции есть свободный проводной порт.
- Полностью зарядите пульт дистанционного управления перед первым использованием.
- Прочтите руководство по эксплуатации Booster Robotics K1, входящее в комплект поставки.
Последовательность включения и загрузки
Настройте интерфейс Ethernet
Проводной IP-адрес K1 по умолчанию: 192.168.10.102. Настройте проводной сетевой интерфейс вашего компьютера на:
- IP-адрес:
192.168.10.10 - Маска подсети:
255.255.255.0 - Шлюз:
192.168.10.1
Проверьте подключение
ping 192.168.10.102 # should respond with <5ms latency on wired
Проверьте статус загрузки через SSH
ssh booster@192.168.10.102 # password: 123456 booster-cli launch -c status # confirm service is running
Установка SDK и первое подключение
Установите Booster SDK
Официальный Python SDK распространяется на PyPI и требует Python 3.8 или более поздней версии.
pip install booster_robotics_sdk_python --user
Первое подключение SDK и чтение статуса
import booster
client = booster.BoosterClient("192.168.10.102")
status = client.get_robot_status()
print(f"Mode: {status.mode}")
print(f"Battery: {status.battery_percentage:.1f}%")
print(f"IMU: {status.imu_status}")
Управление службой роботов (SSH)
booster-cli launch -c start # start service booster-cli launch -c stop # stop service booster-cli launch -c restart # restart service cat /opt/booster/version.txt # check firmware version
Базовый тест на локомоцию
Последовательность смены режимов: ВЛАЖНОСТЬ → ПОДГОТОВКА → ПРОГУЛКА.
Всегда соблюдайте именно эту последовательность. Никогда не пропускайте ПОДГОТОВКУ и не переходите сразу от ВЛАЖНОСТИ к ПРОГУЛКЕ.
import booster
import time
client = booster.BoosterClient("192.168.10.102")
# Step 1: Enter PREP — robot stands and holds position
client.change_mode(booster.Mode.PREP)
time.sleep(3) # IMPORTANT: wait full 3s for balance stabilization
print("Robot standing in PREP mode.")
# Step 2: Enter WALK mode
client.change_mode(booster.Mode.WALK)
time.sleep(2)
# Step 3: Walk forward slowly
client.walk(0.2, 0.0, 0.0) # forward 0.2 m/s
time.sleep(3)
client.walk(0.0, 0.0, 0.0) # stop
# Return to standing
client.change_mode(booster.Mode.PREP)
Параметры скорости ходьбы
The client.walk(forward, lateral, angular) звонок принимает:
- вперед: от −0,5 до +0,5 м/с (положительный = вперед)
- боковой: от −0,5 до +0,5 м/с (положительный = вправо)
- угловой: от −1,0 до +1,0 рад/с (положительный = поворот налево)
Ярлыки пульта дистанционного управления
- ЛТ + СТАРТ: Войдите в режим подготовки
- РТ+А: Войдите в режим ПРОГУЛКИ (из PREP)
- ЛТ + НАЗАД: Войдите в режим DAMP
- Левый джойстик: Направление ходьбы · Правый джойстик: Повернуть
- D-Pad: Движение головы
Предопределенные действия (режим ПРОГУЛКА)
client.play_action("wave") # wave hand
client.play_action("handshake") # handshake
client.play_action("bow") # bow
client.play_action("fortune_cat") # fortune cat pose
client.play_action("new_year_dance") # new year dance
client.play_action("rock_dance") # rock dance
Манипуляции с руками
Контроль позы головы
Управляйте поворотом головки (±90°) и наклоном (от −40° до +30°) с помощью set_head_pose(yaw_rad, pitch_rad). Сначала преобразуем градусы в радианы:
import math def deg2rad(d): return d * math.pi / 180.0 # Look 30° left and 10° down client.set_head_pose(deg2rad(30), deg2rad(-10)) # Return to center client.set_head_pose(0.0, 0.0)
Режим CUSTOM — прямое совместное управление
# Enter CUSTOM mode from PREP only, with robot on lifting device client.change_mode(booster.Mode.CUSTOM) # Joint indexing: j1=head_yaw, j2=head_pitch, j3–j22=body joints # Refer to K1 Instruction Manual for full joint map
Встроенные режимы агента
client.enter_agent("default") # Booster default agent
client.enter_agent("soccer") # soccer agent
client.enter_agent("hi_chat") # conversational AI agent
client.enter_agent("dance") # dance agent
Сбор данных и платформа Teleop
The k1_agent.py Скрипт соединяет Booster K1 с платформой RoboticsCenter через WebSocket, обеспечивая удаленное управление, совместный мониторинг и сбор демонстрационных данных из браузера.
Установите и запустите агент
pip install websockets # Real hardware python k1_agent.py \ --backend wss://your-backend.run.app \ --session YOUR_SESSION_ID \ --node-id k1-lab-01 \ --telemetry-hz 8 # Mock mode — no K1 hardware required python k1_agent.py \ --backend ws://localhost:8000 \ --session test-session \ --mock
Телеметрия, передаваемая агентом (по умолчанию 8 Гц)
- Углы суставов для 6 первичных суставов в градусах (j1–j6)
- Состояние двигателя: положение, частота вращения, температура каждого двигателя.
- Компоненты скорости ходьбы: vx, vy, wz
- Процент заряда батареи и строка текущего режима
- Имя активного агента (по умолчанию / Soccer / Dance / HiChat)
- Метка времени в миллисекундах для выравнивания кадра
booster-cli log -st YYYYMMDD-HHMMSS -et YYYYMMDD-HHMMSS -o /home/booster/Documents