Настройка программного обеспечения

Установка SDK, сетевое подключение, ROS2 с двойным планированием MoveIt2, телеоператорская панель браузера, интеграция модели VLA и конвейер данных в один клик. Все, от обнаружения сети до автономного манипулирования.

Перейти в раздел:

Шаг 1 — Установка SDK

Установка SDK

VLAI L1 управляется через roboticscenter Python SDK, который предоставляет как API-интерфейсы задач высокого уровня, так и совместный контроль низкого уровня. Установите на свой хост-компьютер.

Создайте виртуальную среду

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

Установите SDK

pip install roboticscenter[l1]

Проверка установки

python -c "from roboticscenter import L1; print('SDK OK')"
rc --version   # command-line tool
Шаг 2 — Сетевое подключение

Подключение к L1

L1 использует собственный встроенный стек ROS2 и предоставляет API управления gRPC в вашей локальной сети. Ваш хост-компьютер связывается с ним через Wi-Fi или Ethernet.

Первоначальная настройка сети

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

Подключитесь и проверьте

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

Установите статический IP-адрес (рекомендуется для лабораторного использования)

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
Шаг 3 — ROS2 + MoveIt2

ROS2 с двойным управлением MoveIt2

L1 поставляется с установленной на борту ROS2 Humble. Ваш хост-компьютер подключается как узел ROS2 в той же сети. Вам нужен ROS2 Humble на вашем хосте.

Установите ROS2 Humble на хост (Ubuntu 22.04)

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

Запуск моста L1 ROS2

# 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.

Планирование MoveIt2 с двумя руками

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

Индивидуальное управление руками через 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()

Управление мобильной базой

из центра робототехники импорт L1 робот = L1(хост="192.168.1.45") робот.connect() # Проехать вперед 1 метр со скоростью 0,5 м/с. robot.base.move(x=1,0, y=0,0, скорость=0,5) # Поворот на 90 градусов по часовой стрелке robot.base.rotate(angle=-90, скорость=0.3) # градусов # Отрегулируйте высоту подъема (от 106 до 162 см). robot.base.set_lift_height(130) # см # Стоп робот.база.стоп() робот.отключить()
Шаг 4 — Браузер Teleop

Панель телеуправления браузера

L1 оснащен встроенной телеопальной панелью браузера — установка программного обеспечения не требуется. Перейдите к IP-адресу L1 на порту 8888.

Доступ к панели

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

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

Панель обеспечивает:

  • Управление клавиатурой WASD для мобильной базы
  • Декартов джойстик левой/правой руки (нажмите и перетащите в окне 3D-просмотра)
  • Кнопки открытия/закрытия захвата
  • Видео со всех установленных камер
  • Запуск/остановка записи эпизода одним щелчком мыши
  • Панель состояния батареи и сустава

VR-Телеоператор (Разработчик Pro и Max)

rc teleop --device l1 --mode vr
# Opens a WebXR session — put on Meta Quest and visit the displayed URL
Шаг 5 — Интеграция VLA

Интеграция модели «видение-язык-действие»

Уровни L1 Developer Pro и Max включают встроенные вычисления, способные выполнять логические выводы VLA локально. На всех уровнях вы можете запустить вывод VLA на хост-компьютере и передать действия роботу в потоковом режиме.

Запустите OpenVLA на хост-компьютере (любого уровня)

pip install roboticscenter[vla] из центра робототехники импорт L1 из roboticscenter.vla импортировать OpenVLAClient робот = L1(хост="192.168.1.45") робот.connect() вла = OpenVLAClient( модель="openvla/openvla-7b", device="cuda" # или "cpu" для более медленного вывода ) # Захват наблюдения obs = robot.capture_observation() # возвращает изображение RGB + состояние сустава # Получить действие от VLA (с текстовым условием) действие = vla.predict( image=obs["изображение"], Instruction="Возьмите синий блок и поместите его на красную пластину" ) # действие: команда дельт суставов рук + команда захвата # Выполняем действие над роботом robot.execute_action(действие) робот.отключить()

Вывод VLA на устройстве (для разработчиков 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
Поиск неисправностей

Общие проблемы

Ошибка 1 rc Discover не находит устройств

L1 не находится в той же подсети. Корпоративные сети Wi-Fi часто имеют изоляцию клиентов — обратитесь в ИТ-отдел или используйте выделенный маршрутизатор.

# 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
Ошибка 2 Планирование MoveIt2 не удалось: путь не найден

Целевая поза находится за пределами достижимой рабочей области руки или сталкивается с корпусом робота.

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

Программное обеспечение работает? Начните сбор данных.

Как только руки начнут двигаться, следующим шагом станет телеоперация и запись набора данных.