Guía de configuración VLAI L1
Configuración completa paso a paso para el VLAI L1: desde el desempaquetado hasta la calibración de doble brazo, navegación de base móvil y recolección de datos.
Montaje e Inspección
Lista de verificación de desembalaje
- Inspeccione ambos brazos de 7-DOF en busca de daños por envío — verifique que todas las articulaciones se muevan libremente a mano
- Verifique que ambos grippers autodesarrollados de 8Nm estén montados de forma segura
- Inspeccione las ruedas de la base móvil — ambas ruedas motrices deben girar libremente sin atascos
- Verifique que la columna de elevación se deslice suavemente a través de todo el rango (106–162 cm)
- Confirme que el cable Ethernet y el adaptador de corriente están en la caja
- Lea la guía de seguridad VLAI L1 incluida en el paquete de documentación
Requisitos del espacio de trabajo
- Área mínima del suelo: Superficie clara y nivelada de 2 m × 2 m
- Huella del robot: 46 cm de ancho × 60 cm de largo — permita espacio libre en todos los lados
- Alcance del brazo: 63 cm por brazo — asegúrese de que no haya obstáculos al alcance cuando los brazos estén extendidos
- Potencia: Toma de corriente estándar de 110V/220V dentro de 2 m
Instalación del SDK y configuración de la red
Requisitos
- Python 3.10+ (se recomienda 3.11)
- Nivel de desarrollador o superior (el nivel juvenil no incluye acceso al SDK)
- L1 encendido y conectado a la misma red local (Ethernet o Wi-Fi de 5GHz)
Instala el SDK
pip install roboticscenter
Conéctese y abra el panel de teleoperación del navegador
rc connect --device l1 # Terminal prints: Session ready → https://platform.roboticscenter.ai/session/RC-XXXX-XXXX # Open the URL in any browser to access the full teleop panel
Transmita datos de articulaciones a través de Python
from roboticscenter import L1Robot
robot = L1Robot.connect()
print(robot.session_url)
for frame in robot.stream():
joints = frame.data['joints']
print(f"Left: {joints['left_arm']}")
print(f"Right: {joints['right_arm']}")
print(f"Base: {frame.data['base']}")
rc connect --device l1 --mock para iniciar una sesión L1 completamente simulada. Todos los métodos del SDK, el panel de teleoperación del navegador y la grabación de datos funcionan de manera idéntica en modo simulado — útil para pipelines de CI y prototipos de flujo de trabajo antes de que su unidad sea enviada.
Calibración de brazos duales
Los brazos L1 utilizan el protocolo de motor MIT con retroalimentación de doble codificador y control FOC. La calibración establece las posiciones de inicio y verifica la especificación de precisión total de ±0.02 mm.
Verifica los estados de las juntas de ROS2
ros2 topic list
ros2 topic echo /joint_states # verify all 16 DOF are publishing
Inicia MoveIt2 para la planificación de movimientos
ros2 launch l1_moveit l1_moveit.launch.py
# Opens RViz with full dual-arm URDF, collision checking, and Cartesian planning
Calibración de la posición de inicio
- En el panel RViz de MoveIt2, navega a la Planificación pestaña
- Selecciona el inicio objetivo nombrado para ambos brazos
- Haz clic Planificar y Ejecutar — los brazos deben moverse a la posición neutral extendida
- Verifica que los estados de las juntas coincidan con la configuración de inicio esperada en la terminal
Calibración del agarre
# Open grippers fully ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.0}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.0}" # Close to 50% — verify 8Nm grippers engage smoothly ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.5}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.5}"
Navegación de la base móvil
Prueba de conducción con teclado WASD
Abre el panel de teleoperación del navegador y usa las teclas WASD para conducir la base diferencial. La escala de velocidad se puede ajustar a través del control deslizante del panel (10%, 50%, 100%).
# Or command directly via ROS2 Twist ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}" # Stop ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
Prueba de rango de elevación
Usa el control deslizante vertical en el panel de teleoperación del navegador para probar el rango completo de elevación (106–162 cm) a 30 mm/s. Verifica un movimiento suave a lo largo del rango sin atascos ni chirridos.
# Monitor lift height ros2 topic echo /lift/state # current height in meters
Primera tarea de manipulación
Controles del panel de teleoperación del navegador
- Vista de doble brazo: Visualización 3D en tiempo real de ambos brazos de 7 DOF — ángulos de las articulaciones, pose del efector final (6D) y estado del agarre a una tasa de actualización de <10 ms
- Selector de modo del efector final: Cambiar por brazo de forma independiente: Agarre (8Nm por defecto), mano hábil o ventosa
- Transmisiones de cámara: Cámara del pecho (Desarrollador+), cámaras de muñeca izquierda/derecha (Desarrollador Max)
Recogida y colocación simple a través de MoveIt2
from roboticscenter import L1Robot robot = L1Robot.connect() # Move left arm to approach pose robot.left_arm.move_to(x=0.45, y=0.15, z=0.30, roll=0, pitch=90, yaw=0) # Open left gripper robot.left_arm.gripper.open() # Move down to grasp robot.left_arm.move_to(x=0.45, y=0.15, z=0.05, roll=0, pitch=90, yaw=0) # Close gripper to grasp robot.left_arm.gripper.close(force=0.6) # Lift robot.left_arm.move_to(x=0.45, y=0.15, z=0.35, roll=0, pitch=90, yaw=0)
Teleoperación en VR (Desarrollador Pro y Max)
Conectar un auricular compatible con OpenXR y ejecutar rc vr --session RC-XXXX-XXXX para mapear la pose del controlador de mano directamente al efector final de cada brazo en el espacio cartesiano, con retroalimentación háptica proporcional a la fuerza de contacto estimada.
Recolección de datos y pipeline de un clic
Cada rc connect la sesión es una unidad de recolección de datos nombrada. Las sesiones se suben automáticamente a tu espacio de trabajo de la plataforma Fearless al cerrarse — no se requiere paso de exportación manual.
Lo que se captura por cuadro
- Datos de articulaciones — Posición, velocidad y esfuerzo para los 16 DOF a ~500Hz con marcas de tiempo en microsegundos
- Flujos de cámara — RGB del pecho (Desarrollador+), RGB de muñeca (Desarrollador Max) — con marcas de tiempo y sincronizados con los datos de las articulaciones dentro de ±1ms
- Fuerza / contacto — Estimación de la fuerza de la mandíbula del agarre a partir de la corriente del motor
- Estado base — Odometría de ruedas, velocidad lineal/angular, altura de elevación
- Acciones del operador — Flujo de comandos de teleoperación en bruto para aprendizaje por imitación
Etiquetado de episodios durante la recolección
- Presionar Espacio en el panel del navegador para marcar los límites de los episodios
- Presionar L para anotar el marco actual con una cadena de etiqueta personalizada
Agente ROS2 para puente en la nube
# Run on the L1's onboard computer to bridge topics to the platform
python l1_robot_agent.py \
--backend wss://platform.roboticscenter.ai \
--session RC-XXXX-XXXX \
--ros2
Formatos de exportación de conjuntos de datos
Sesiones limpiadas y anotadas exportadas en formato LeRobot (HDF5 + manifiesto JSON), RLDS, o JSONL en bruto + MP4. Utilice el Datos pestaña en la plataforma para configurar la exportación y descarga.