ソフトウェアのセットアップ
SDK のインストール、ネットワーク接続、ROS2 と MoveIt2 デュアルアーム プランニング、ブラウザ テレオペ パネル、VLA モデルの統合、およびワンクリック データ パイプライン。 ネットワークの検出から自律的な操作までのすべて。
セクションにジャンプします:
SDKのインストール
VLAI L1 は、 roboticscenter Python SDK。高レベルのタスク API と低レベルの共同制御の両方を提供します。 ホスト 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
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
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") robot.connect() # 0.5 m/s で 1 メートル前進します robot.base.move(x=1.0、y=0.0、speed=0.5) # 時計回りに90度回転 robot.base.rotate(角度=-90、速度=0.3) # 度 # リフト高さ調整 (106 ~ 162 cm) robot.base.set_lift_height(130) # cm # 停止 robot.base.stop() robot.disconnect()
ブラウザ遠隔操作パネル
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
視覚、言語、行動モデルの統合
L1 Developer Pro 層と Max 層には、VLA 推論をローカルで実行できるオンボード コンピューティングが含まれています。 すべての層で、ホスト PC 上で VLA 推論を実行し、アクションをロボットにストリーミングできます。
ホスト PC 上で OpenVLA を実行する (任意の層)
pip install roboticscenter[vla] roboticscenter インポート L1 から roboticscenter.vla から OpenVLAClient をインポート ロボット = L1(ホスト = "192.168.1.45") robot.connect() vla = OpenVLAClient( モデル="openvla/openvla-7b", device="cuda" # 推論を遅くする場合は "cpu" ) # 観察を捕獲する obs = robot.capture_observation() # RGB 画像 + 関節状態を返す # VLA からアクションを取得 (テキスト条件付き) アクション = vla.predict( 画像=obs["画像"], 命令="青いブロックを持ち上げて、赤い皿の上に置きます" ) # アクション: アームジョイントデルタの辞書 + グリッパーコマンド # ロボット上でアクションを実行する robot.execute_action(アクション) robot.disconnect()
オンデバイス 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
よくある問題
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
ターゲット ポーズがアームの到達可能な作業スペースの外にあるか、ロボット本体と衝突しています。
# 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()







