Configuração do Software

Instalação do SDK, conexão de rede, planejamento de braço duplo ROS2 com MoveIt2, painel teleoperado do navegador, integração do modelo VLA e o pipeline de dados com um clique. Tudo, desde a descoberta de rede até a manipulação autônoma.

Ir para uma seção:

Etapa 1 — Instalação do SDK

Instalação do SDK

O VLAI L1 é controlado via roboticscenter SDK Python, que fornece tanto APIs de tarefas de alto nível quanto controle de juntas de baixo nível. Instale no seu PC host.

Crie um ambiente virtual

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

Instale o SDK

pip install roboticscenter[l1]

Verifique a instalação

python -c "from roboticscenter import L1; print('SDK OK')"
rc --version   # command-line tool
Passo 2 — Conexão de Rede

Conectando ao L1

O L1 executa sua própria pilha ROS2 embarcada e expõe uma API de controle gRPC pela sua rede local. Seu PC host se comunica com ele via WiFi ou Ethernet.

Configuração inicial da rede

# 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 e 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()

Defina um IP estático (recomendado para uso em laboratório)

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
Passo 3 — ROS2 + MoveIt2

Controle de Braço Duplo ROS2 com MoveIt2

O L1 vem com ROS2 Humble rodando a bordo. Seu PC host se conecta como um nó ROS2 pela mesma rede. Você precisa do ROS2 Humble no seu host.

Instale o ROS2 Humble no 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

Inicie a ponte ROS2 do 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.

Planejamento MoveIt2 de braço duplo

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

Controle individual do braço via 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()

Controle da base móvel

da importação do centro de robótica L1
Passo 4 — Teleop do Navegador

Painel de Teleoperação do Navegador

O L1 inclui um painel de teleoperação do navegador embutido — nenhuma instalação de software necessária. Navegue até o IP do L1 na porta 8888.

Acesse o painel

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

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

O painel fornece:

  • Controle do teclado WASD para a base móvel
  • Joystick cartesiano do braço esquerdo/direito (clique e arraste na visualização 3D)
  • Botões de abrir/fechar do gripper
  • Transmissão de câmera de todas as câmeras montadas
  • Início/parada de gravação de episódio com um clique
  • Painel de status da bateria e do estado das juntas

Teleoperação VR (Developer Pro e Max)

rc teleop --device l1 --mode vr
# Opens a WebXR session — put on Meta Quest and visit the displayed URL
Passo 5 — Integração VLA

Integração do Modelo Visão-Linguagem-Ação

Os níveis Developer Pro e Max do L1 incluem computação a bordo capaz de executar inferência VLA localmente. Para todos os níveis, você pode executar inferência VLA em um PC host e transmitir ações para o robô.

Execute OpenVLA no PC host (qualquer nível)

pip instalar centro de robótica[vla]

Inferência VLA no dispositivo (Developer 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
Solução de Problemas

Problemas Comuns

Erro 1 rc discover não encontra dispositivos

L1 não está na mesma sub-rede. Redes WiFi corporativas frequentemente têm isolamento de clientes — verifique com o TI ou use um roteador 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
Erro 2 Falha no planejamento do MoveIt2: nenhum caminho encontrado

A pose alvo está fora do espaço de trabalho acessível do braço ou em colisão com o corpo do robô.

# 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? Comece a Coletar Dados.

Uma vez que os braços estão em movimento, o próximo passo é a teleoperação e a gravação de dados.