Guía de Configuración del Booster K1
Configuración completa paso a paso para el robot humanoide Booster K1 — desde el desempaquetado hasta los primeros pasos de caminata y la integración de teleoperación en la plataforma.
Preparación de seguridad y espacio de trabajo
Requisitos del espacio de trabajo
- Área mínima del suelo: Superficie clara, dura y nivelada de 3 m × 3 m
- Despeje del techo: Mínimo 2,2 m
- Sin obstáculos dentro del radio de operación durante el modo CAMINAR
- Parada de emergencia: Asegúrese de que el control remoto esté cargado y al alcance antes de encenderlo
- Dispositivo de elevación: Requerido para el desarrollo del modo PERSONALIZADO — el robot debe estar suspendido antes de entrar en el control a nivel de articulaciones
Lista de verificación de desembalaje
- Inspeccione todas las 22 articulaciones en busca de daños por envío — mueva cada una suavemente a mano en estado HUMEDO
- Verifique que el cable Ethernet esté incluido y que su estación de trabajo tenga un puerto cableado libre
- Cargue completamente el control remoto antes del primer uso
- Lea el Manual de Instrucciones del Booster Robotics K1 incluido en la caja
Encender y secuencia de arranque
Configura tu interfaz Ethernet
La IP por cable predeterminada del K1 es 192.168.10.102Configura la interfaz de red por cable de tu computadora a:
- Dirección IP:
192.168.10.10 - Máscara de subred:
255.255.255.0 - Puerta de enlace:
192.168.10.1
Verifica la conectividad
ping 192.168.10.102 # should respond with <5ms latency on wired
Inspecciona el estado de arranque a través de SSH
ssh booster@192.168.10.102 # password: 123456 booster-cli launch -c status # confirm service is running
Instalación del SDK y primera conexión
Instala el SDK de Booster
El SDK oficial de Python se distribuye en PyPI y requiere Python 3.8 o posterior.
pip install booster_robotics_sdk_python --user
Primera conexión del SDK y lectura de estado
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}")
Gestiona el servicio del robot (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
Prueba básica de locomoción
Secuencia de transición de modo: DAMP → PREP → WALK
Siempre sigue esta secuencia exacta. Nunca saltes PREP o vayas directamente de DAMP a WALK.
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)
Parámetros de velocidad de caminata
La client.walk(forward, lateral, angular) llamada acepta:
- adelante: −0.5 a +0.5 m/s (positivo = adelante)
- lateral: −0.5 a +0.5 m/s (positivo = derecha)
- angular: −1.0 a +1.0 rad/s (positivo = girar a la izquierda)
Atajos del control remoto
- LT + INICIO: Entrar en modo PREP
- RT + A: Entrar en modo CAMINAR (desde PREP)
- LT + VOLVER: Entrar en modo DAMP
- Palanca izquierda: Dirección de caminata · Palanca derecha: Girar
- D-Pad: Movimiento de cabeza
Acciones predefinidas (modo CAMINAR)
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
Manipulación de brazos
Control de la posición de la cabeza
Controlar la inclinación de la cabeza (±90°) y la elevación (−40° a +30°) usando set_head_pose(yaw_rad, pitch_rad). Convierte grados a radianes primero:
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)
Modo PERSONALIZADO — control directo de las articulaciones
# 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
Modos de agente integrados
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
Recolección de datos y teleoperación de la plataforma
La k1_agent.py El script conecta el Booster K1 a la plataforma RoboticsCenter a través de WebSocket, permitiendo operación remota, monitoreo de articulaciones y recolección de datos de demostración desde un navegador.
Instalar y lanzar el agente
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
Telemetría transmitida por el agente (8 Hz por defecto)
- Ángulos de las articulaciones para 6 articulaciones principales en grados (j1–j6)
- Estados del motor: posición, RPM, temperatura por motor
- Componentes de velocidad de caminata: vx, vy, wz
- Porcentaje de batería y cadena de modo actual
- Nombre del agente activo (Por defecto / Fútbol / Baile / HiChat)
- Marca de tiempo en milisegundos para alineación de fotogramas
booster-cli log -st YYYYMMDD-HHMMSS -et YYYYMMDD-HHMMSS -o /home/booster/Documents