SO-101 सेटअप गाइड
भागों से लेकर पहले डेटा संग्रह तक। अनुमानित समय: ~3-4 घंटे (3डी प्रिंट समय की गिनती नहीं)।
विधानसभा
~60 मिनट + प्रिंट समयSO-101 पूरी तरह से ओपन-सोर्स आर्म है। सभी हिस्से या तो 3डी-प्रिंटेड हैं या हगिंगफेस पर लेरोबोट बीओएम में सूचीबद्ध ऑफ-द-शेल्फ हार्डवेयर के रूप में उपलब्ध हैं।
आपके लिए आवश्यक हिस्से
- 6× फ़ीटेक STS3215 सर्वो मोटर्स
- 3डी-मुद्रित संरचनात्मक भाग (SO-101 GitHub रेपो में STL फ़ाइलें)
- यूएसबी-टू-सीरियल एडाप्टर केबल (CH340 या CP2102 चिप)
- 12V विद्युत आपूर्ति (न्यूनतम 3A)
- सर्वो केबल और कनेक्टर हार्डवेयर (प्रति बीओएम)
असेंबली चेकलिस्ट
- सभी संरचनात्मक घटकों (आधार, लिंक, अंतिम-प्रभावक) को प्रिंट करें
- STS3215 सर्वो को उनके संबंधित लिंक हाउसिंग में स्थापित करें
- मुद्रित केबल चैनलों के माध्यम से सर्वो केबल को रूट करें
- डेज़ी-चेन सर्वो सही क्रम में (आधार से सिरे तक आईडी 1-6)
- बिजली चालू करने से पहले आधार को एक स्थिर सतह पर सुरक्षित करें
- को पढ़िए सुरक्षा पृष्ठ शक्ति लगाने से पहले
भागों की 3डी प्रिंटिंग
~8-16 घंटे प्रिंट समयSO-101 के सभी संरचनात्मक घटक मानक डेस्कटॉप प्रिंटर का उपयोग करके FDM-प्रिंट करने योग्य हैं। एसटीएल फाइलों को प्रत्येक हाथ के लिए एकल-फ़ाइल प्रिंट में व्यवस्थित किया जाता है, जिससे स्लाइस करना आसान हो जाता है।
अनुशंसित स्लाइसर सेटिंग्स
एसटीएल फ़ाइलें - जिन्हें प्रिंट करना है
सामान्य बिस्तर आकारों के लिए पूर्व-व्यवस्थित सिंगल-फ़ाइल प्रिंट उपलब्ध हैं:
- 220×220 मिमी बिस्तर (एंडर 3):
- पालन करने वाला:
STL/SO101/Follower/Ender_Follower_SO101.stl - नेता:
STL/SO101/Leader/Ender_Leader_SO101.stl
- पालन करने वाला:
- 205×250 मिमी बिस्तर (प्रूसा/यूपी):
- पालन करने वाला:
STL/SO101/Follower/Prusa_Follower_SO101.stl - नेता:
STL/SO101/Leader/Prusa_Leader_SO101.stl
- पालन करने वाला:
STL/Gauges/ और उन्हें लेगो ईंट या STS3215 सर्वो के विरुद्ध परीक्षण करें। गेज पर सही फिट यह पुष्टि करता है कि आपका प्रिंटर अंशांकन सटीक है। पूर्ण प्रिंट करने से पहले यदि आवश्यक हो तो स्केलिंग समायोजित करें।
सॉफ़्टवेयर इंस्टाल करें
~15 मिनटSO-101 मूल रूप से HuggingFace LeRobot द्वारा समर्थित है। किसी अतिरिक्त प्लगइन की आवश्यकता नहीं है - बस LeRobot इंस्टॉल करें।
लेरोबोट स्थापित करें
# Using pip
pip install lerobot
# Or with uv (recommended)
uv pip install lerobot
लिनक्स सीरियल पोर्ट अनुमतियाँ
लिनक्स पर, सीरियल पोर्ट के अंतर्गत /dev/ttyACM* उपयोगकर्ता को इसमें शामिल होना आवश्यक है dialout समूह। इसे एक बार चलाएं और लॉग आउट करें और वापस इन करें:
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
आवश्यक शर्तें
- पायथन 3.10+
- Linux (Ubuntu 22.04 अनुशंसित) या macOS
- USB-टू-सीरियल ड्राइवर स्थापित (macOS पर CH340 ड्राइवर; आमतौर पर Linux पर पहले से इंस्टॉल)
पोर्ट डिटेक्शन एवं कैलिब्रेशन
~20 मिनटबांह के लिए सही यूएसबी सीरियल पोर्ट ढूंढें, फिर सर्वो शून्य स्थिति सेट करने के लिए लेरोबोट कैलिब्रेशन स्क्रिप्ट चलाएं।
सीरियल पोर्ट ढूंढें
python lerobot/scripts/find_motors_bus_port.py
संकेत मिलने पर यूएसबी केबल को प्लग और अनप्लग करें। स्क्रिप्ट यह पहचानती है कि हाथ किस पोर्ट से जुड़ा है। विशिष्ट मान:
# Linux: /dev/ttyACM0 (or ttyUSB0 for CH340 adapters)
# macOS: /dev/tty.usbmodem* or /dev/tty.usbserial-*
अंशांकन चलाएँ
संकेत मिलने पर हाथ को उसकी पूरी गति में घुमाएँ:
python lerobot/scripts/calibrate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
पहला मोशन टेस्ट
~15 मिनटलीडर आर्म को जोड़ने से पहले यह सत्यापित करने के लिए कि सभी जोड़ सही ढंग से प्रतिक्रिया कर रहे हैं, टेलीऑपरेट स्क्रिप्ट को सिंगल-आर्म मोड में चलाएँ।
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
क्या सत्यापित करें?
- सभी 6 जोड़ बिना रुके आदेशों का जवाब देते हैं
- टर्मिनल में कोई सर्वो स्टॉल या ओवरलोड चेतावनी नहीं
- ग्रिपर पूरी रेंज में खुलता और बंद होता है
- किसी भी जोड़ की स्थिति में केबल में कोई रुकावट नहीं
टेलीऑपरेशन
~30 मिनटएसओ-101 एक स्टैंडअलोन आर्म के रूप में या टेलीऑपरेशन के लिए लीडर आर्म के साथ फॉलोअर आर्म के रूप में काम करता है। नेता के रूप में दूसरे हाथ का उपयोग अनुकरण सीखने के लिए उच्च-गुणवत्ता वाले प्रदर्शन उत्पन्न करता है।
स्टैंडअलोन मोड (कीबोर्ड/प्रोग्रामेटिक)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
लीडर आर्म के साथ (जैसे DK1 लीडर)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101 \
--teleop.port=/dev/ttyACM1
डेटा संग्रहण
चल रहेका उपयोग करके प्रदर्शन रिकॉर्ड करें record.py. डेटा को लेरोबोट प्रारूप में सहेजा गया है और प्रशिक्षण के लिए इसे सीधे हगिंगफेस हब पर भेजा जा सकता है।
बुनियादी रिकॉर्डिंग
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
USB कैमरे के साथ
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--robot.cameras.top.type=opencv \
--robot.cameras.top.index=0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
सर्वोत्तम प्रथाओं को रिकॉर्ड करना
- प्रशिक्षण से पहले प्रति कार्य कम से कम 50 प्रदर्शन रिकॉर्ड करें
- प्रत्येक एपिसोड में वस्तु की स्थिति और झुकाव अलग-अलग हों
- वर्णनात्मक प्रयोग करें
--dataset.taskबाद में फ़िल्टर करने के लिए नाम - OAK-D या Intel RealSense कैमरे गहराई-सक्षम डेटा संग्रह के लिए अच्छा काम करते हैं
- प्रत्येक सत्र के बाद हगिंगफेस हब पर अपलोड किए गए डेटासेट को सत्यापित करें
अगले कदम
एक बार जब आपके पास डेटा एकत्र हो जाए, तो LeRobot की प्रशिक्षण स्क्रिप्ट का उपयोग करके ACT या डिफ्यूजन पॉलिसी मॉडल को प्रशिक्षित करें। पूरा पढ़ें SO-101 सीखने का पथ सेटअप से मॉडल परिनियोजन तक संरचित प्रगति के लिए।