सॉफ्टवेयर सेटअप

SDK इंस्टालेशन, नेटवर्क कनेक्शन, MoveIt2 डुअल-आर्म प्लानिंग के साथ ROS2, ब्राउज़र टेलोप पैनल, VLA मॉडल इंटीग्रेशन और वन-क्लिक डेटा पाइपलाइन। नेटवर्क खोज से लेकर स्वायत्त हेरफेर तक सब कुछ।

किसी अनुभाग पर जाएँ:

चरण 1 - एसडीके इंस्टालेशन

एसडीके स्थापना

VLAI L1 को इसके माध्यम से नियंत्रित किया जाता है roboticscenter पायथन एसडीके, जो उच्च-स्तरीय कार्य एपीआई और निम्न-स्तरीय संयुक्त नियंत्रण दोनों प्रदान करता है। अपने होस्ट पीसी पर इंस्टॉल करें.

एक आभासी वातावरण बनाएँ

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

एसडीके स्थापित करें

pip install roboticscenter[l1]

स्थापना सत्यापित करें

python -c "from roboticscenter import L1; print('SDK OK')"
rc --version   # command-line tool
चरण 2 - नेटवर्क कनेक्शन

L1 से कनेक्ट हो रहा है

L1 अपना स्वयं का ऑनबोर्ड ROS2 स्टैक चलाता है और आपके स्थानीय नेटवर्क पर एक gRPC नियंत्रण API प्रदर्शित करता है। आपका होस्ट पीसी वाईफाई या ईथरनेट पर इसके साथ संचार करता है।

प्रारंभिक नेटवर्क सेटअप

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

एक स्थिर आईपी सेट करें (प्रयोगशाला उपयोग के लिए अनुशंसित)

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 हंबल के साथ जहाज पर चल रहा है। आपका होस्ट पीसी उसी नेटवर्क पर ROS2 नोड के रूप में कनेक्ट होता है। आपको अपने होस्ट पर ROS2 Humble की आवश्यकता है।

होस्ट पर ROS2 हम्बल स्थापित करें (उबंटू 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

पायथन के माध्यम से व्यक्तिगत हाथ नियंत्रण

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 आयात करें रोबोट = एल1(होस्ट='192.168.1.45') रोबोट.कनेक्ट() # 0.5 मीटर/सेकंड की गति से 1 मीटर आगे ड्राइव करें robot.base.move(x=1.0, y=0.0, गति=0.5) # 90 डिग्री दक्षिणावर्त घुमाएँ robot.base.rotate(कोण=-90, गति=0.3) # डिग्री # लिफ्ट की ऊंचाई समायोजित करें (106 से 162 सेमी) robot.base.set_lift_height(130) # सेमी # रुकें रोबोट.बेस.स्टॉप() रोबोट.डिस्कनेक्ट()
चरण 4 - ब्राउज़र टेलिओप

ब्राउज़र टेलीऑपरेशन पैनल

L1 में एक अंतर्निर्मित ब्राउज़र टेलोप पैनल शामिल है - किसी सॉफ़्टवेयर इंस्टॉल की आवश्यकता नहीं है। पोर्ट 8888 पर एल1 के आईपी पर नेविगेट करें।

पैनल तक पहुंचें

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

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

पैनल प्रदान करता है:

  • मोबाइल बेस के लिए WASD कीबोर्ड नियंत्रण
  • बाएँ/दाएँ हाथ का कार्टेशियन जॉयस्टिक (3डी व्यूपोर्ट में क्लिक-खींचें)
  • ग्रिपर खुले/बंद बटन
  • सभी स्थापित कैमरों से कैमरा फ़ीड
  • एक-क्लिक एपिसोड रिकॉर्डिंग प्रारंभ/बंद करें
  • बैटरी और संयुक्त राज्य स्थिति पैनल

वीआर टेलीपॉप (डेवलपर प्रो और मैक्स)

rc teleop --device l1 --mode vr
# Opens a WebXR session — put on Meta Quest and visit the displayed URL
चरण 5 - वीएलए एकीकरण

दृष्टि-भाषा-क्रिया मॉडल एकीकरण

एल1 डेवलपर प्रो और मैक्स टियर में ऑनबोर्ड कंप्यूट शामिल है जो स्थानीय स्तर पर वीएलए अनुमान चलाने में सक्षम है। सभी स्तरों के लिए, आप होस्ट पीसी पर वीएलए अनुमान चला सकते हैं और रोबोट पर क्रियाएं स्ट्रीम कर सकते हैं।

होस्ट पीसी (किसी भी स्तर) पर OpenVLA चलाएँ

पिप इंस्टाल रोबोटिक्ससेंटर[वीएलए] रोबोटिक्ससेंटर से L1 आयात करें roboticscenter.vla से OpenVLAClient आयात करें रोबोट = एल1(होस्ट='192.168.1.45') रोबोट.कनेक्ट() वीएलए = ओपनवीएलएक्लाइंट( मॉडल = "ओपनव्ला/ओपनव्ला-7बी", धीमे अनुमान के लिए डिवाइस = "क्यूडा" # या "सीपीयू"। ) # अवलोकन कैप्चर करें obs = robot.capture_observation() # RGB छवि + संयुक्त स्थिति लौटाता है # वीएलए से कार्रवाई प्राप्त करें (पाठ-वातानुकूलित) क्रिया = vla.भविष्यवाणी( छवि=obs["छवि"], अनुदेश = "नीला ब्लॉक उठाएँ और इसे लाल प्लेट पर रखें" ) # क्रिया: आर्म जॉइंट डेल्टा का आदेश + ग्रिपर कमांड # रोबोट पर कार्रवाई निष्पादित करें रोबोट.execute_action(कार्रवाई) रोबोट.डिस्कनेक्ट()

ऑन-डिवाइस वीएलए अनुमान (डेवलपर प्रो/मैक्स)

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 आरसी डिस्कवर को कोई डिवाइस नहीं मिला

L1 समान सबनेट पर नहीं है. एंटरप्राइज़ वाईफाई नेटवर्क में अक्सर क्लाइंट आइसोलेशन होता है - आईटी से जांच करें या एक समर्पित राउटर का उपयोग करें।

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

सॉफ्टवेयर काम कर रहा है? डेटा एकत्र करना प्रारंभ करें.

एक बार जब हथियार चल रहे हों, तो अगला कदम टेलीऑपरेशन और डेटासेट रिकॉर्डिंग है।