डेटा संग्रहण

वीएलएआई एल1 को बड़े पैमाने पर टेलीऑपरेशन डेटा संग्रह के लिए बनाया गया है। इसकी वन-क्लिक रिकॉर्डिंग पाइपलाइन, डुअल-आर्म सिंक्रोनाइज़ेशन और बिल्ट-इन वीआर टेलीपॉप इसे रोबोट डिलीवरी से लेकर प्रशिक्षण-तैयार डेटासेट तक का सबसे तेज़ रास्ता बनाते हैं।

रिकॉर्डिंग वर्कफ़्लो

द्वि-मैनुअल वीआर टेलीऑपरेशन रिकॉर्डिंग

1

सभी सिस्टम कनेक्ट करें और सत्यापित करें

rc connect --device l1 --host 192.168.1.45
rc status   # check: arms, base, cameras, battery all green
2

L1 को रिकॉर्डिंग स्थिति में ले जाएँ

ब्राउज़र पैनल में WASD का उपयोग करके L1 को कार्य कार्यक्षेत्र में ड्राइव करें। कार्य के लिए लिफ्ट की ऊंचाई निर्धारित करें (उदाहरण के लिए, टेबल-टॉप हेरफेर के लिए 130 सेमी)। इसे पार्क करें और पहियों को लॉक कर दें।

rc teleop --device l1   # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3

कार्य दृश्य और कैमरे सेट करें

कार्य वस्तुओं को सुसंगत प्रारंभिक स्थिति में रखें। ब्राउज़र पैनल में कैमरा दृश्य सत्यापित करें - दोनों कलाई कैमरे (डेवलपर मैक्स) और किसी भी बाहरी कैमरे को कार्य कार्यक्षेत्र को कवर करना चाहिए।

4

सीएलआई के माध्यम से रिकॉर्डिंग सत्र प्रारंभ करें

rc record \
  --device l1 \
  --task "Pick up the bottle and pour into the glass" \
  --num_episodes 50 \
  --output ~/datasets/l1-pour-v1 \
  --teleop_mode vr   # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5

एपिसोड की समीक्षा करें

rc replay \
  --dataset ~/datasets/l1-pour-v1 \
  --episode 0

व्यूअर सभी कैमरा स्ट्रीम + संयुक्त स्थिति समय-श्रृंखला को सिंक्रनाइज़ दिखाता है। आगे बढ़ाने से पहले खराब एपिसोड हटा दें।

6

हगिंगफेस हब पर पुश करें

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
डेटासेट प्रारूप

L1 डेटासेट स्कीम

L1 रिकॉर्डिंग पाइपलाइन दोनों हथियारों, मोबाइल बेस, सभी कैमरों और वैकल्पिक भाषा एनोटेशन के साथ एक मल्टी-मोडल डेटासेट तैयार करती है।

प्रत्येक एपिसोड Parquet फ़ाइल में फ़ील्ड
अवलोकन.left_arm_state फ्लोट32[8] रेडियन में बाएं हाथ की संयुक्त स्थिति (8 डीओएफ)
अवलोकन.right_arm_state फ्लोट32[8] रेडियन में दाहिने हाथ की संयुक्त स्थिति (8 डीओएफ)
अवलोकन.आधार_स्थिति फ्लोट32[3] मोबाइल आधार x, y, मीटर और रेडियन में शीर्षक
अवलोकन.लिफ्ट_ऊंचाई फ्लोट32 धड़ उठाने की ऊँचाई मीटर में
अवलोकन.छवियां.* वीडियो पथ कलाई कैमरा (बाएं, दाएं), हेड कैमरा, बाहरी कार्यक्षेत्र कैमरा
कार्रवाई.left_arm फ्लोट32[8] वीआर टेलीपॉप से ​​बाएं हाथ की संयुक्त स्थिति को लक्षित करें
कार्रवाई.दाईं_बांह फ्लोट32[8] वीआर टेलीपॉप से ​​दाहिने हाथ के जोड़ की स्थिति को लक्षित करें
भाषा_निर्देश डोरी वीएलए कंडीशनिंग के लिए प्राकृतिक भाषा कार्य विवरण
TIMESTAMP फ्लोट64 सेकंड में यूनिक्स टाइमस्टैम्प
अगला.किया बूल प्रत्येक एपिसोड के अंतिम फ्रेम पर सच है
गुणवत्ता आश्वासन

गुणवत्ता जांच सूची

L1 का VR टेलीओप विलंबता और द्वि-मैन्युअल समन्वय के आसपास अद्वितीय डेटा गुणवत्ता संबंधी समस्याएं पेश कर सकता है। हब पर जाने से पहले इसे चलाएं।

  • 1
    रिकॉर्डिंग के दौरान VR विलंबता 50ms से कम थी रिकॉर्डिंग के दौरान ब्राउज़र पैनल में विलंबता मॉनिटर की जाँच करें। 50 एमएस से ऊपर, ऑपरेटर के हाथ की गति रोबोट की गतिविधियों से पिछड़ जाती है, जिससे डेटासेट में एक कारण बेमेल पैदा होता है। यदि आवश्यक हो तो कम-विलंबता वाले वाईफाई चैनल पर पुनः रिकॉर्ड करें।
  • 2
    दोनों भुजाएँ इच्छानुसार हिलीं (कोई एक भुजा वाली घटना नहीं) द्वि-मैन्युअल कार्यों के लिए, सत्यापित करें कि दोनों भुजाएँ महत्वपूर्ण गति दिखाती हैं observation.left_arm_state और observation.right_arm_state. एकल-हाथ-प्रमुख एपिसोड यह संकेत दे सकते हैं कि ऑपरेटर ने एक हाथ का पक्ष लिया।
  • 3
    हाथ में हेरफेर के दौरान मोबाइल बेस स्थिर था जब तक आप मोबाइल हेरफेर कार्यों को रिकॉर्ड नहीं कर रहे हैं, observation.base_state प्रत्येक एपिसोड में लगभग स्थिर रहना चाहिए। हेरफेर के दौरान बेस मूवमेंट के कारण कार्यस्थल कैमरे के सापेक्ष स्थानांतरित हो जाता है।
  • 4
    पूरे एपिसोड के लिए सभी कैमरा स्ट्रीम मौजूद हैं L1 का वाईफ़ाई बैंडविड्थ लोड के तहत फ़्रेम को गिरा सकता है। दौड़ना rc validate_dataset --dataset ~/datasets/l1-pour-v1 सभी कैमरा स्ट्रीम में गुम फ़्रेमों की जाँच करने के लिए।
  • 5
    भाषा निर्देश जो प्रदर्शित किया गया था उससे मेल खाता है रिकॉर्डिंग शुरू होने से पहले भाषा निर्देश सेट किया जाता है। यदि ऑपरेटर ने एक अलग दृष्टिकोण में सुधार किया है (उदाहरण के लिए, दो के बजाय एक हाथ का उपयोग किया है), तो निर्देश को अपडेट करें या एपिसोड को हटा दें।
अगला कदम

अपने डेटासेट से वीएलए को प्रशिक्षित करना

एक बार जब आपका डेटासेट हगिंगफेस हब पर हो, तो L1 एक्शन स्पेस के साथ VLA को फाइन-ट्यून करें।

L1 डेटा पर OpenVLA को फाइन-ट्यून करें

pip install roboticscenter[vla]

python -m roboticscenter.scripts.finetune_vla \
  --model openvla/openvla-7b \
  --dataset your-username/l1-pour-v1 \
  --action_space l1_bimanual \   # registers the 16-DOF bimanual action head
  --epochs 50 \
  --output_dir outputs/openvla-l1-pour

डिवाइस पर परिष्कृत वीएलए तैनात करें (डेवलपर प्रो/मैक्स)

आरसी परिनियोजन वीएलए \ --मॉडल आउटपुट/ओपनvla-l1-डालना \ - मात्रा निर्धारित करें int4 \ --डिवाइस एल1 \ --होस्ट 192.168.1.45 # नीति चलाएँ: आरसी रन नीति \ --कार्य "बोतल उठाओ और गिलास में डालो" \ --मैक्स_स्टेप्स 100

डेटासेट तैयार है? प्रशिक्षण प्रारंभ करें.

हगिंगफेस हब पर पुश करें और अपने द्वि-मैन्युअल हेरफेर डेटा पर एक वीएलए मॉडल को फाइन-ट्यून करें।