Configuración del software

Instalación del SDK, conexión de red, planificación de doble brazo ROS2 con MoveIt2, panel de teleoperación del navegador, integración del modelo VLA y el pipeline de datos de un clic. Todo, desde el descubrimiento de red hasta la manipulación autónoma.

Ir a una sección:

Paso 1 — Instalación del SDK

Instalación del SDK

El VLAI L1 se controla a través de la roboticscenter SDK de Python, que proporciona tanto APIs de tareas de alto nivel como control de articulaciones de bajo nivel. Instale en su PC host.

Crear un entorno virtual

python -m venv ~/.venvs/vlai
source ~/.venvs/vlai/bin/activate

Instala el SDK

pip install roboticscenter[l1]

Verificar instalación

python -c "from roboticscenter import L1; print('SDK OK')"
rc --version   # command-line tool
Paso 2 — Conexión de red

Conectando al L1

El L1 ejecuta su propia pila ROS2 a bordo y expone una API de control gRPC a través de su red local. Su PC host se comunica con él a través de WiFi o Ethernet.

Configuración inicial de la red

# Power on the L1 — it will connect to the configured WiFi automatically
# Then discover it on your network:
rc discover
# Output: L1-XXXX found at 192.168.1.45 (port 8888)

Conectar y verificar

rc connect --device l1 --host 192.168.1.45
# Output: Connected to VLAI L1 (firmware v2.1.4, battery: 87%)

# Or use the Python SDK:
from roboticscenter import L1

robot = L1(host="192.168.1.45")
robot.connect()
print(robot.get_status())
# {'battery': 87, 'arm_left': 'ready', 'arm_right': 'ready', 'base': 'ready'}
robot.disconnect()

Establecer una IP estática (recomendado para uso en laboratorio)

rc config set network.static_ip 192.168.1.100
rc config set network.gateway 192.168.1.1
rc config apply   # reboots the L1 network stack
Paso 3 — ROS2 + MoveIt2

Control de brazo dual de ROS2 con MoveIt2

El L1 se envía con ROS2 Humble ejecutándose a bordo. Su PC host se conecta como un nodo ROS2 a través de la misma red. Necesita ROS2 Humble en su host.

Instalar ROS2 Humble en el host (Ubuntu 22.04)

sudo apt update && sudo apt install ros-humble-desktop \
  ros-humble-moveit ros-humble-ros2-control \
  ros-humble-ros2-controllers -y

Lanzar el puente ROS2 del L1

# On the L1 (via SSH or the onboard terminal):
ros2 launch vlai_l1_ros2 l1_bringup.launch.py

# On your host PC:
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=42   # must match the L1's domain ID
ros2 topic list   # should show /l1/left_arm/joint_states, etc.

Planificación de MoveIt2 para brazo dual

source /opt/ros/humble/setup.bash
ros2 launch vlai_l1_moveit l1_moveit.launch.py

# In another terminal — plan and execute a bimanual task:
ros2 run vlai_l1_moveit bimanual_demo
# Executes: left arm picks object, right arm receives and places

Control de brazo individual a través de Python

from roboticscenter import L1
import numpy as np

robot = L1(host="192.168.1.45")
robot.connect()

# Move left arm to Cartesian pose (position + quaternion)
pose = {
    "position": [0.4, 0.1, 0.35],    # x, y, z in meters from base
    "orientation": [0, 0, 0, 1]      # quaternion xyzw
}
robot.left_arm.move_to_pose(pose, speed=0.3)

# Read current joint state
state = robot.left_arm.get_joint_state()
print("Left arm joints:", state.positions)  # 8 values in radians

robot.disconnect()

Control de base móvil

desde el centro de robótica importar L1
Paso 4 — Teleoperación del navegador

Panel de teleoperación del navegador

El L1 incluye un panel de teleop del navegador integrado — no se requiere instalación de software. Navega a la IP del L1 en el puerto 8888.

Acceder al panel

# Open in browser:
http://192.168.1.45:8888

# Or launch via CLI:
rc teleop --device l1

El panel proporciona:

  • Control del teclado WASD para la base móvil
  • Joystick cartesiano para el brazo izquierdo/derecho (clic y arrastrar en la vista 3D)
  • Botones de abrir/cerrar el gripper
  • Transmisión de cámara desde todas las cámaras montadas
  • Grabación de episodios con un clic para iniciar/detener
  • Panel de estado de batería y estado de las articulaciones

Teleop VR (Desarrollador Pro y Max)

rc teleop --device l1 --mode vr
# Opens a WebXR session — put on Meta Quest and visit the displayed URL
Paso 5 — Integración de VLA

Integración del modelo de Visión-Lenguaje-Acción

Los niveles L1 Developer Pro y Max incluyen computación a bordo capaz de ejecutar inferencia VLA localmente. Para todos los niveles, puedes ejecutar inferencia VLA en una PC host y transmitir acciones al robot.

Ejecutar OpenVLA en la PC host (cualquier nivel)

centro de robótica de instalación de pip[vla]

Inferencia VLA en el dispositivo (Desarrollador Pro/Max)

rc deploy vla \
  --model openvla/openvla-7b \
  --quantize int4   # fits in 6GB VRAM on V3 compute (70 TOPS)

# Now VLA runs on the L1's onboard compute — no host PC needed:
rc run policy \
  --task "Pick up the blue block and place it on the red plate" \
  --max_steps 50
Solución de problemas

Problemas Comunes

Error 1 rc discover no encuentra dispositivos

El L1 no está en la misma subred. Las redes WiFi empresariales a menudo tienen aislamiento de clientes — consulta con TI o usa un enrutador dedicado.

# Try direct connection by IP if you know it:
rc connect --device l1 --host 192.168.1.45

# Or connect the L1 via Ethernet directly to your laptop:
# Set your laptop to 192.168.2.1/24, L1 will appear at 192.168.2.100
Error 2 La planificación de MoveIt2 falla: no se encontró ruta

La pose objetivo está fuera del espacio de trabajo alcanzable del brazo o en colisión con el cuerpo del robot.

# Check reachability first:
from roboticscenter import L1
robot = L1(host="192.168.1.45")
robot.connect()
reachable = robot.left_arm.check_pose_reachable(
    position=[0.4, 0.1, 0.35])
print("Reachable:", reachable)  # if False, adjust target pose
robot.disconnect()

¿Software funcionando? Comienza a recopilar datos.

Una vez que los brazos están en movimiento, el siguiente paso es la teleoperación y la grabación de datos.