소프트웨어 설정

SDK 설치, 네트워크 연결, MoveIt2 듀얼 암 계획을 갖춘 ROS2, 브라우저 텔레옵 패널, VLA 모델 통합 및 원클릭 데이터 파이프라인. 네트워크 발견부터 자율 조작까지 모든 것.

섹션으로 이동:

1단계 - SDK 설치

SDK 설치

VLAI L1은 다음을 통해 제어됩니다. roboticscenter 높은 수준의 작업 API와 낮은 수준의 공동 제어를 모두 제공하는 Python SDK입니다. 호스트 PC에 설치하세요.

가상 환경 만들기

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 스택을 실행하고 로컬 네트워크를 통해 gRPC 제어 API를 노출합니다. 호스트 PC는 WiFi 또는 이더넷을 통해 통신합니다.

초기 네트워크 설정

# 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

MoveIt2 듀얼 암 제어 기능이 있는 ROS2

L1에는 ROS2 Humble이 탑재되어 배송됩니다. 호스트 PC는 동일한 네트워크를 통해 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()

이동식 기지 관제

Roboticscenter에서 L1 가져오기 로봇 = L1(호스트="192.168.1.45") 로봇.연결() # 0.5m/s의 속도로 1m 앞으로 이동 robots.base.move(x=1.0, y=0.0, 속도=0.5) # 시계방향으로 90도 회전 robots.base.rotate(angle=-90, speed=0.3) # 도 # 리프트 높이 조정(106~162cm) robots.base.set_lift_height(130) #cm # 중지 로봇.베이스.스톱() 로봇.연결 끊기()
4단계 - 브라우저 Teleop

브라우저 원격조작 패널

L1에는 브라우저 텔레오프 패널이 내장되어 있어 소프트웨어를 설치할 필요가 없습니다. 포트 8888에서 L1의 IP로 이동합니다.

패널에 액세스

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

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

패널은 다음을 제공합니다.

  • 모바일 베이스용 WASD 키보드 제어
  • 왼쪽/오른쪽 팔 데카르트 조이스틱(3D 뷰포트에서 클릭한 채 드래그)
  • 그리퍼 열기/닫기 버튼
  • 장착된 모든 카메라의 카메라 피드
  • 원클릭 에피소드 녹화 시작/중지
  • 배터리 및 조인트 상태 상태 패널

VR 텔레오프(Developer 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 추론을 로컬로 실행할 수 있는 온보드 컴퓨팅이 포함되어 있습니다. 모든 계층에 대해 호스트 PC에서 VLA 추론을 실행하고 작업을 로봇에 스트리밍할 수 있습니다.

호스트 PC(모든 계층)에서 OpenVLA 실행

pip 설치 로봇 센터[vla] Roboticscenter에서 L1 가져오기 robotscenter.vla에서 OpenVLAClient 가져오기 로봇 = L1(호스트="192.168.1.45") 로봇.연결() vla = OpenVLA클라이언트( 모델="openvla/openvla-7b", device="cuda" # 또는 추론 속도가 느린 경우 "cpu" ) # 관찰을 포착하세요 obs = robots.capture_observation() # RGB 이미지 + 관절 상태를 반환합니다. # VLA에서 작업 가져오기(텍스트 조건) 액션 = vla.예측( 이미지=obs["이미지"], Instruction="파란색 블록을 집어서 빨간색 접시 위에 올려놓으세요" ) # 동작: 팔 관절 델타 사전 + 그리퍼 명령 # 로봇에서 작업을 실행합니다. robots.execute_action(액션) 로봇.연결 끊기()

온디바이스 VLA 추론(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
문제 해결

일반적인 문제

오류 1 rc discover에서 장치를 찾지 못했습니다

L1은 동일한 서브넷에 없습니다. 기업 WiFi 네트워크에는 클라이언트 격리가 있는 경우가 많습니다. IT 부서에 문의하거나 전용 라우터를 사용하세요.

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

소프트웨어가 작동 중인가요? 데이터 수집을 시작하세요.

팔이 움직이면 다음 단계는 원격 조작과 데이터 세트 기록입니다.