
SO-100తో ఉపయోగించదగిన LeRobot డేటాసెట్ను రికార్డ్ చేయండి: క్రమాంకనం, లీడర్-ఫాలోవర్ టెలిఆపరేషన్, నిజమైన lerobot-record ఫ్లాగ్లు మరియు డిఫాల్ట్లు, కెమెరా సెటప్, ఎపిసోడ్ గణనలు మరియు రన్ను పాడుచేసే లోపాలు.
ఒక SO-100 ఫాలోవర్, అదే డిజైన్తో కూడిన లీడర్ ఆర్మ్ మరియు రెండు USB కెమెరాలు ఒక మధ్యాహ్నంలో ఒక పాలసీని ఫైన్-ట్యూన్ చేయగలవు. అదే బెంచ్ ఫైల్ బ్రౌజర్లో ఆరోగ్యంగా కనిపించే అరవై ఎపిసోడ్లను సులభంగా ఉత్పత్తి చేయగలదు మరియు ఆరు గంటల GPU రన్ను వృథా చేయగలదు. తేడా చాలా అరుదుగా మోడల్లో ఉంటుంది; ఇది సర్వోలు మరియు పారేక్ ఫైల్ మధ్య ఏమి జరిగిందో దానిలో ఉంటుంది.
ఇది మాన్యువల్ మార్గం, ఆపై చిన్నది. ప్రతి కమాండ్ lerobot 0.6.1 నుండి వచ్చింది, ఇది 3 ఆగస్టు 2026న విడుదల చేయబడింది మరియు PyPIలో ప్రస్తుత వెర్షన్. ఇది కన్సోల్ ఎంట్రీ పాయింట్లకు మారింది, కాబట్టి python lerobot/scripts/control_robot.py నడిపే ట్యుటోరియల్లు ఇకపై లేని ఫైల్ను వివరిస్తాయి.
సంక్షిప్త వెర్షన్
- •lerobot 0.6.1 v3.0ని రికార్డ్ చేస్తుంది; GR00T N1.7 మరియు N1.5 v2.1ని కోరుకుంటున్నాయి. మీరు రికార్డ్ నొక్కే ముందు ఫార్మాట్ను సెట్ చేయండి.
- •నాలుగు కమాండ్లు: lerobot-find-port, lerobot-setup-motors, lerobot-calibrate, lerobot-record. కాలిబ్రేషన్ నుండి అదే --robot.id మరియు --teleop.idని రికార్డింగ్ సెషన్లోకి తీసుకెళ్లండి.
- •వాస్తవ డిఫాల్ట్లు: 30 fps, ప్రతి ఎపిసోడ్కు 60 s, 60 s రీసెట్, 50 ఎపిసోడ్లు, సుమారు 100 నిమిషాల వాల్ క్లాక్.
- •ఇక్కడ కనీస ఎపిసోడ్లు: SmolVLA కోసం 30, మిగిలిన వాటికి 50.
- •వైవిధ్యం పరిమాణం కంటే ముఖ్యం. డేటాసెట్లు నాలుగు కారణాల వల్ల పనిచేయవు: కెమెరా ఇండెక్స్లు మారడం, ఫ్రేమ్లు డ్రాప్ అవ్వడం లేదా ఫ్రీజ్ అవ్వడం, ఒక జాయింట్ దాని పరిమితి వద్ద నిలిచిపోవడం, చదవలేని టాస్క్ స్ట్రింగ్.
రికార్డింగ్ సెషన్ ఏమి సంగ్రహిస్తుంది
ఒక LeRobot డేటాసెట్ అనేది వీడియోల ఫోల్డర్ కాదు, కానీ వీడియోతో జతచేయబడిన సమయ-సూచిక పట్టిక: ప్రతి కంట్రోల్-లూప్ టిక్ ఆదేశించిన చర్య, అనుచరుడు చేరుకున్న స్థితి, ప్రతి కెమెరాకు ఒక ఫ్రేమ్, ఒక టైమ్స్టాంప్ మరియు సూచికలను కలిగి ఉన్న ఒక అడ్డు వరుసను వ్రాస్తుంది. పాలసీ ఆ నిలువు వరుసలను మాత్రమే చూస్తుంది. యొక్క స్కీమా lerobot/svla_so100_pickplace, దాని meta/info.json నుండి చదవబడింది.
| ఫీచర్ | డేటాటైప్ | ఆకారం | అది ఏమిటి |
|---|---|---|---|
| action | float32 | [6] | లీడర్ ఆర్మ్ నుండి జాయింట్ లక్ష్యాలు |
| observation.state | float32 | [6] | అనుచరుడు చేరుకున్న జాయింట్ స్థానాలు |
| observation.images.top | video | [480, 640, 3] | సీన్ కెమెరా, MP4 (ఇక్కడ av1) |
| observation.images.wrist | video | [480, 640, 3] | మణికట్టు కెమెరా, అదే రేటు |
| timestamp | float32 | [1] | ఎపిసోడ్ ప్రారంభమైనప్పటి నుండి సెకన్లు |
| frame_index, episode_index, index, task_index | int64 | [1] | స్వయంచాలకంగా నింపబడిన బుక్కీపింగ్ |
జాయింట్లు main_shoulder_pan, main_shoulder_lift, main_elbow_flex, main_wrist_flex, main_wrist_roll మరియు main_gripper: SO-100 యొక్క ఆరు డిగ్రీస్ ఆఫ్ ఫ్రీడమ్. చర్య మరియు స్థితి ఒకే ఆకారాన్ని పంచుకుంటాయి ఎందుకంటే లీడర్-ఫాలోవర్ టెలిఆపరేషన్ ఒక లక్ష్యాన్ని మరియు ఒక అడుగు తర్వాత చేరుకున్న స్థానాన్ని రికార్డ్ చేస్తుంది. ఆ అంతరం సమాచారం: చేయి గురుత్వాకర్షణతో లేదా చిక్కుకున్న వస్తువుతో ఎక్కడ పోరాడిందో. ఆ స్ట్రింగ్లు ఆ డేటాసెట్కు చెందినవి. ఈరోజు 0.6.1తో రికార్డ్ చేయబడిన సెషన్ shoulder_pan.pos నుండి gripper.pos వరకు, బస్సులో 1 నుండి 6 వరకు ఐడిలను వ్రాస్తుంది: అదే ఆరు జాయింట్లు, విభిన్న కీలు, ఇది ఒక కాన్ఫిగ్ పేరు ద్వారా ఒక ఫీచర్ను అడ్రస్ చేసినప్పుడు ముఖ్యమైనది.
ఆ డేటాసెట్ 30 fps వద్ద 50 ఎపిసోడ్లు మరియు 19,631 ఫ్రేమ్లను కలిగి ఉంది: సుమారు 393 ఫ్రేమ్లు, లేదా 13 సెకన్లు, ప్రతి ఎపిసోడ్కు. మీవి సగటున ఒక నిమిషం అయితే, మీరు మరింత కష్టమైన పని చేస్తున్నారు లేదా రెండు చివర్లలో డెడ్ టైమ్ను రికార్డ్ చేస్తున్నారు.

మీకు బెంచ్పై అవసరమైనవి
| అంశం | వివరం | గమనిక |
|---|---|---|
| ఫాలోవర్ ఆర్మ్ | SO-100, ఆరు Feetech STS3215 సర్వోలు | భాగాలలో సుమారు 110 నుండి 150 EUR |
| లీడర్ ఆర్మ్ | రెండవ SO-100, గేర్లు తొలగించబడ్డాయి | ఆరు లీడర్ మోటార్ల నుండి గేర్లు తొలగించబడ్డాయి: ఎన్కోడర్ మాత్రమే, తక్కువ ఘర్షణ |
| శక్తి | మెటీరియల్స్ బిల్లులోని 7.4 V STS3215 వేరియంట్కు సరిపోతుంది | దిగువ హెచ్చరికను చూడండి |
| కెమెరాలు | రెండు USB కెమెరాలు, 640x480 30 fps వద్ద | ఒక దృశ్య వీక్షణ, ఒకటి మణికట్టుపై |
| హోస్ట్ | Python 3.12 లేదా అంతకంటే కొత్తది, ffmpeg | requires-python >= 3.12 |
| హబ్ ఖాతా | Hugging Face రైట్ టోకెన్ | optional with --dataset.push_to_hub=false |
STS3215 రెండు వెర్షన్లలో వస్తుంది: SO-ARM100 README 7.4 V వెర్షన్ను 6 V వద్ద కొలిచిన 16.5 kg.cm స్టాల్ టార్క్గా మరియు 12 V వెర్షన్ను 30 kg.cm గా రేట్ చేస్తుంది, మరియు 12 V మోటార్లను తీసుకోవడం అంటే 5 V సరఫరాకు బదులుగా 12 V 5 A+ సరఫరాను కొనుగోలు చేయడం అని కూడా గమనిస్తుంది. మెటీరియల్స్ బిల్లు 7.4 V సర్వోలను జాబితా చేస్తుంది. 7.4 V రేట్ చేయబడిన సర్వోలకు 12 V ఇవ్వడం వాటిని నాశనం చేస్తుంది, కాబట్టి మీరు ఏదైనా వైర్ చేసే ముందు మోటార్ లేబుల్ను చదవండి. సర్వో స్పందించడం లేదు.
చేయి ఇంకా నిర్మించబడకపోతే, అది వేరే పని: ఇక్కడ ప్రారంభించండి SO-100 ప్రారంభించడం మరియు పూర్తి SO-100 సెటప్ గైడ్. మీరు ఇంకా ఏమీ కొనుగోలు చేయకపోతే, ముందుగా SO-100 వర్సెస్ SO-101 పోలిక చదవండి: SO-101 అనేది మెరుగైన వైరింగ్ మరియు గేర్-తొలగింపు దశ లేని కొత్త వెర్షన్, మరియు రికార్డింగ్ వర్క్ఫ్లో ఒకే విధంగా ఉంటుంది.
lerobot 0.6.1 ఇన్స్టాల్ చేయండి
conda create -y -n lerobot python=3.12
conda activate lerobot
# TorchCodec is the default video decoder and needs ffmpeg
conda install ffmpeg -c conda-forge
# core_scripts = dataset + hardware + viz extras (record, replay, calibrate)
# feetech = SDK for the STS3215 bus servos in the SO-100
pip install 'lerobot[core_scripts,feetech]'
lerobot-infoఅదనపు అంశాలు చాలా మందిని గందరగోళానికి గురిచేస్తాయి. pip install lerobot కేవలం కోర్ ML డిపెండెన్సీలను మాత్రమే ఇన్స్టాల్ చేస్తుంది, రోబోట్తో మాట్లాడేది ఏమీ కాదు. కోచ్ ఆర్మ్స్కు dynamixel బదులుగా feetech అవసరం. మీ షెల్ lerobot-record గురించి ఎప్పుడూ వినకపోతే, దీనికి కారణం ఇదే.
పోర్ట్లు, మోటార్ IDలు మరియు క్రమాంకనం
భాగాలు మరియు పని చేసే టెలిఆప్ లూప్ మధ్య మూడు ఒకేసారి చేసే దశలు ఉన్నాయి. మీ చేయిపై శిక్షణ పొందిన విధానాన్ని మరొకరిపై అమలు చేయడానికి, ముడి ఎన్కోడర్ కౌంట్లను భాగస్వామ్య జాయింట్ కన్వెన్షన్కు మ్యాప్ చేస్తుంది.
- 1ప్రతి చేయి యొక్క USB పోర్ట్ను కనుగొనండి
రెండు చేతులు ప్లగ్ ఇన్ చేసి అమలు చేయండి, ప్రాంప్ట్ చేసినప్పుడు మీరు గుర్తించే దానిని అన్ప్లగ్ చేయండి మరియు ఏ పోర్ట్ అదృశ్యమవుతుందో గమనించండి. Linuxలో మీకు
sudo chmod 666 /dev/ttyACM0అవసరం కావచ్చు.bashlerobot-find-port # Finding all available ports for the MotorsBus. # Ports before disconnecting: ['/dev/ttyACM0', '/dev/ttyACM1'] # Remove the USB cable from your MotorsBus and press Enter when done. # The port of this MotorsBus is '/dev/ttyACM1' # Reconnect the USB cable. - 2మోటార్ IDలు మరియు బాడ్రేట్లను వ్రాయండి
IDలు ఒక మోటారుకు ఒకసారి వ్రాయబడతాయి మరియు డాక్యుమెంటేషన్ ఎలా చేయాలో కఠినంగా ఉంటుంది: కంట్రోలర్ బోర్డుకు సరిగ్గా ఒక మోటారును కనెక్ట్ చేయండి, ఇంకా దేనికీ డేజీ-చైన్ చేయవద్దు. స్క్రిప్ట్ గ్రిప్పర్ కోసం ముందుగా అడిగి దానికి ID 6 ఇస్తుంది, ఆపై wrist_rollకు 5, shoulder_panకు 1 వరకు వెనుకకు నడుస్తుంది. అసెంబ్లీకి ముందు దీన్ని చేయండి.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 3రెండు చేతులను క్రమాంకనం చేయండి
ప్రతి జాయింట్ను దాని పరిధి మధ్యలోకి తరలించండి, ఎంటర్ నొక్కండి, ఆపై ప్రతి దానిని దాని పూర్తి పరిధిలో స్వీప్ చేయండి.
idప్రొఫైల్ ఫైల్పేరు అవుతుంది.bashlerobot-calibrate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_so100_follower lerobot-calibrate \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_so100_leader - 4ఏదైనా రికార్డ్ చేయడానికి ముందు టెలిఆపరేట్ చేయండి
పైన పేర్కొన్న అన్నింటికీ ఆమోద పరీక్ష. టెలిఆపరేషన్ అస్థిరంగా, అద్దంలో ఉన్నట్లుగా, లేదా ఒక జాయింట్ అనుసరించకపోతే, రికార్డింగ్ దానిని 50 ఎపిసోడ్లలో భద్రపరుస్తుంది.
bashlerobot-teleoperate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_so100_follower \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_so100_leader \ --display_data=true
ప్రొఫైల్లు $HF_LEROBOT_CALIBRATIONకు వెళ్తాయి, డిఫాల్ట్ ~/.cache/huggingface/lerobot/calibration, మరియు ID అనేది లుకప్ కీ. lerobot-recordకు క్రమాంకనం చేయబడిన IDని ఇవ్వండి మరియు అది ప్రొఫైల్ను తిరిగి ఉపయోగించడానికి ఎంటర్ లేదా దాన్ని మళ్లీ చేయడానికి cని అందిస్తుంది. తెలియని IDని ఇస్తే ఫైల్ ఉండదు, కాబట్టి అది సెషన్ మధ్యలో క్రమాంకనంలోకి వస్తుంది.
పాలసీ ఏమి చూస్తుందో కెమెరాలు నిర్ణయిస్తాయి
lerobot-find-cameras opencv # or: lerobot-find-cameras realsense
# --- Detected Cameras ---
# Camera #0:
# Name: OpenCV Camera @ 0
# Type: OpenCV
# Id: 0
# Backend api: AVFOUNDATION
# Default stream profile:
# Format: 16.0
# Width: 1920
# Height: 1080
# Fps: 15.0రెండు వీక్షణలు, అవి ఎక్కడ ఉన్నాయో ముఖ్యం: వర్క్స్పేస్ను కవర్ చేసే స్థిరమైన సీన్ కెమెరా, మరియు ఎండ్-ఎఫెక్టర్ దగ్గర ఉన్న రిస్ట్ కెమెరా గ్రిప్పర్ దేనిని తాకబోతుందో చూపిస్తుంది. LeRobot కమ్యూనిటీ-డేటాసెట్ల చెక్లిస్ట్ 480x640 / 720p లేదా అంతకంటే మెరుగైన రెండు వీక్షణలు, స్థిరమైన నేపథ్యం, తటస్థ స్థిరమైన లైటింగ్, మరియు లీడర్ ఆర్మ్ మరియు మానవ అవయవాలు ఫ్రేమ్ వెలుపల ఉండాలని కోరుతుంది. రికార్డింగ్ గైడ్ ఒక సాధారణ నియమాన్ని జోడిస్తుంది: కెమెరా చిత్రాలను మాత్రమే చూసి మీరు పనిని మీరే చేయగలగాలి.
OpenCV ఇండెక్స్లు ఎన్యూమరేషన్ ఆర్డర్ నుండి వస్తాయి, కాబట్టి రీబూట్ లేదా రీప్లగ్ ఇండెక్స్ 0 మరియు 2 స్థానాలను మార్చుకునేలా చేసి, మొత్తం సెషన్ కోసం రిస్ట్ వ్యూను టాప్ స్లాట్లో ఉంచగలదు. lerobot స్వయంగా చెబుతుంది: దాని కెమెరా క్లాస్ ఒక డివైస్ పాత్తో పాటు ఒక పూర్ణాంకాన్ని తీసుకుంటుంది, మరియు రీబూట్లు లేదా పోర్ట్ మార్పుల అంతటా ఇండెక్స్లు అస్థిరంగా ఉంటాయని హెచ్చరిస్తుంది, ముఖ్యంగా Linuxలో. index_or_pathను /dev/v4l/by-id/ కింద ఉన్న udev సిమ్లింక్కు చూపండి, ఇది ఎన్యూమరేషన్ ఆర్డర్ కాకుండా డివైస్ను అనుసరిస్తుంది. డేటాసెట్ అంతర్గతంగా అస్థిరంగా మారడానికి ఇది అత్యంత సాధారణ మార్గం, మరియు శిక్షణ దానిని సరిచేయదు. కెమెరా కనుగొనబడలేదు.
రికార్డ్ కమాండ్ మరియు ప్రతి ఫ్లాగ్
HF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}')
lerobot-record \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_so100_follower \
--robot.cameras="{ top: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \
--teleop.type=so100_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_so100_leader \
--display_data=true \
--dataset.repo_id=${HF_USER}/so100_pick_cube \
--dataset.single_task="Pick the red cube and drop it in the box" \
--dataset.num_episodes=50 \
--dataset.fps=30 \
--dataset.episode_time_s=25 \
--dataset.reset_time_s=10 \
--dataset.streaming_encoding=true \
--dataset.encoder_threads=2క్రింద ఉన్న డిఫాల్ట్లు src/lerobot/configs/dataset.py మెయిన్ నుండి వచ్చాయి, ట్యుటోరియల్ నుండి కాదు. చాలా మంది ఊహించినవి కావు.
| ఫ్లాగ్ | డిఫాల్ట్ | ఇది ఏమి చేస్తుంది |
|---|---|---|
| --dataset.repo_id | empty | పేరు; డిఫాల్ట్గా టైమ్స్టాంప్ జోడించబడుతుంది |
| --dataset.single_task | empty | ప్రతి ఎపిసోడ్తో నిల్వ చేయబడిన టాస్క్ స్ట్రింగ్ |
| --dataset.root | $HF_LEROBOT_HOME/repo_id | రైట్ పాత్, డిఫాల్ట్ ~/.cache/huggingface/lerobot/ |
| --dataset.fps | 30 | కంట్రోల్ లూప్ రేట్ మరియు డేటాసెట్ ఫ్రేమ్ రేట్ |
| --dataset.episode_time_s | 60 | ఒక ఎపిసోడ్ ఆటో-అడ్వాన్స్ అయ్యే ముందు సెకన్లు |
| --dataset.reset_time_s | 60 | సీన్ రీసెట్; చేయి కదులుతుంది, ఏమీ నిల్వ చేయబడదు |
| --dataset.num_episodes | 50 | ఈ సెషన్లో రికార్డ్ చేయబడిన ఎపిసోడ్లు |
| --dataset.push_to_hub | true | సెషన్ ముగింపులో అప్లోడ్ చేయండి; false స్థానికంగా ఉంటుంది |
| --dataset.streaming_encoding | false in the dataclass, true in the docs table | క్యాప్చర్ సమయంలో ఎన్కోడ్ చేయండి; దీన్ని స్పష్టంగా సెట్ చేయండి |
| --dataset.encoder_queue_maxsize | 30 | ప్రతి కెమెరాకు బఫర్ చేయబడిన ఫ్రేమ్లు, 30 fps వద్ద ~1 సె |
| --dataset.encoder_threads | null (codec decides) | ప్రతి ఎన్కోడర్కు థ్రెడ్లు; క్యాప్చర్ స్టట్టర్ అయితే తగ్గించండి |
| --dataset.no_stamp | false | repo_id ని టైప్ చేసిన విధంగానే ఉంచండి |
| --resume | false | ఇప్పటికే ఉన్న డేటాసెట్కు జోడించండి; --dataset.root అవసరం |
మీరు టైప్ చేసిన పేరుతో మీ డేటాసెట్ ఉండదు. lerobot ఒక తేదీ-సమయ ట్యాగ్ను జోడిస్తుంది, కాబట్టి so100_pick_cube అనేది so100_pick_cube_20260823_141530 అవుతుంది. స్థిరమైన పేరు కోసం --dataset.no_stamp=true ఉపయోగించండి. పునఃప్రారంభం మొత్తం సంఖ్యలను కాకుండా అదనపు సంఖ్యలను లెక్కిస్తుంది. --resume=trueతో, --dataset.num_episodes అదనపు ఎపిసోడ్లను లెక్కిస్తుంది మరియు --dataset.root తప్పనిసరి అవుతుంది. 30-ఎపిసోడ్ల డేటాసెట్లో 50 అడిగితే, మీకు 80 లభిస్తాయి.
సెషన్ సమయంలో కీబోర్డ్ నియంత్రణ
- కుడి బాణం లేదా
n: ఎపిసోడ్ను ముగించండి లేదా దశను ముందుగానే రీసెట్ చేయండి. మీరు ఎక్కువగా ఉపయోగించే కీ ఇది, ఎందుకంటే శుభ్రమైన పట్టుకు 25 సెకన్లు చాలా అరుదుగా అవసరం. - ఎడమ బాణం లేదా
r: ఎపిసోడ్ను విస్మరించండి మరియు మళ్లీ చేయండి. చెడ్డ టేక్ ఇప్పుడు ఏమీ ఖర్చు చేయదు, కానీ తర్వాత చాలా ఖర్చు అవుతుంది. - Escape లేదా
q: సెషన్ను ఆపండి, ఎన్కోడింగ్ను పూర్తి చేయండి, అప్లోడ్ చేయండి. - ఇవి X11, Wayland మరియు హెడ్లెస్ SSH లలో పనిచేస్తాయి: గ్లోబల్ కీ బ్యాకెండ్ లేనప్పుడు, lerobot-record నియంత్రణ టెర్మినల్ నుండి అదే కీలను చదువుతుంది. బాణం సీక్వెన్స్లు విడిపోయే లాగీ SSH లింక్లలో కూడా అక్షరాలు పనిచేస్తాయి.
- కీబోర్డ్ టెలిఆపరేషన్ భిన్నంగా ఉంటుంది మరియు గ్లోబల్ బ్యాకెండ్ అవసరం: X11, Windows, లేదా Accessibilityతో macOS.
ఎన్ని ఎపిసోడ్లు, మరియు మంచి ఎపిసోడ్ ఎలా ఉంటుంది
రికార్డింగ్ గైడ్ మొదటి పని కోసం కనీసం 50 ఎపిసోడ్లను సూచిస్తుంది, ప్రతి వస్తువు స్థానానికి సుమారు 10. పాలసీ పేజీలు ప్రతి మోడల్కు కనీస సంఖ్యను జాబితా చేస్తాయి, దీని కంటే తక్కువ రన్ GPU సమయానికి విలువైనది కాదు.
| పాలసీ | కనీస ఎపిసోడ్లు | డేటాసెట్ ఫార్మాట్ | GPU శ్రేణి | ప్రతి రన్కు ఖర్చు |
|---|---|---|---|---|
| SmolVLA | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB card | about 1 to 3 USD |
| ACT | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB card | about 1 to 3 USD |
| GR00T N1.7 | 50 | LeRobot v2.0 or v2.1 | A100 80 GB or H100 80 GB | about 4 to 12 USD |
| GR00T N1.5 | 50 | LeRobot v2.0 or v2.1 | A100 80 GB or H100 80 GB | about 4 to 12 USD |
| Pi0.5 | 50 | LeRobot v3.0 | A100 80 GB or H100 80 GB | about 4 to 12 USD |
మెరుగైన ప్రశ్న ఏమిటంటే, ఎన్ని మరియు దేనివి. రోబోటిక్ మానిప్యులేషన్ కోసం ఇమిటేషన్ లెర్నింగ్లో డేటా స్కేలింగ్ నియమాలు (లిన్ ఎట్ అల్., 2024) 40,000 కంటే ఎక్కువ ప్రదర్శనలను సేకరించి, 15,000 కంటే ఎక్కువ వాస్తవ-ప్రపంచ రోల్అవుట్లను నిర్వహించింది. సాధారణీకరణ వాతావరణాలు మరియు వస్తువుల సంఖ్యతో సుమారుగా పవర్-లా సంబంధాన్ని అనుసరించింది, మరియు ప్రతి వాతావరణం లేదా వస్తువుకు ఒక పరిమితిని దాటిన తర్వాత, అదనపు ప్రదర్శనలు తక్కువ ప్రభావాన్ని చూపాయి. ఒక బెంచ్పై: వస్తువును తరలించండి, లైటింగ్ను మార్చండి, క్యూబ్ను మార్చండి, ఒకే టేక్ను పునరావృతం చేయకుండా.
- కీబోర్డ్ లేదా గేమ్ప్యాడ్లా కాకుండా, సర్వో పునరుత్పత్తి చేయగల నిరంతర జాయింట్ పథాలు
- చర్య మరియు స్థితి ఒక కోఆర్డినేట్ కన్వెన్షన్ను పంచుకుంటాయి, కాబట్టి పాలసీ నేరుగా ఆదేశించగల లక్ష్యాన్ని నేర్చుకుంటుంది
- 25 సెకన్ల ఎపిసోడ్ ప్లస్ 10 సెకన్ల రీసెట్ సుమారుగా గంటకు 100 ఎపిసోడ్లు
- ఆపరేటర్ ఫాలోవర్ స్టాల్ అవ్వడం లేదా బంధించబడటం అనుభవిస్తాడు, కాబట్టి డేటా కట్టుబడి ఉండకముందే లోపాలు బయటపడతాయి
- రెండవ చేయి సుమారుగా భాగాల ఖర్చును రెట్టింపు చేస్తుంది
- ప్రదర్శనలు ఆపరేటర్ అలవాట్లను వారసత్వంగా పొందుతాయి; మాండ్లేకర్ ఎట్ అల్. పాలసీ నాణ్యత ప్రదర్శన నాణ్యతపై ఎక్కువగా ఆధారపడి ఉంటుందని కనుగొన్నారు
- లీడర్ లూప్ రేటు వద్ద నమూనా చేయబడుతుంది, కాబట్టి పాజ్లు దాదాపు ఒకేలాంటి వరుసలుగా మారతాయి, ఇవి పాలసీకి వేచి ఉండమని నేర్పుతాయి
- సెషన్ల మధ్య స్థిరత్వాన్ని ఏదీ అమలు చేయదు: 5 సెం.మీ. కదిలిన కెమెరా దాచిన పంపిణీ మార్పు
ఒక మంచి ఎపిసోడ్ బోరింగ్గా ఉంటుంది: పునరావృతమయ్యే హోమ్ పోజ్, ఒక పని పూర్తయింది, వస్తువు డబ్బాలో పడిన తర్వాత ముగిసింది, చెక్లిస్ట్ సిఫార్సు చేసిన 25 నుండి 50 అక్షరాలలో టాస్క్ స్ట్రింగ్. Pick the red cube and drop it in the box అనేది ఒక టాస్క్ స్ట్రింగ్; task1 అనేది చెక్లిస్ట్ స్పష్టంగా పేర్కొన్న యాంటీ-ప్యాటర్న్. అస్పష్టమైన ఉల్లేఖనాలు దాని సమస్యల జాబితాలో అగ్రస్థానంలో ఉన్నాయి, మరియు అవి కు చాలా ముఖ్యమైనవి, ఇక్కడ స్ట్రింగ్ ఒక మోడల్ ఇన్పుట్, ఫైల్నేమ్ కాదు.
డేటాసెట్ను నిశ్శబ్దంగా నాశనం చేసే లోపాలు
ఏదీ మినహాయింపును విసిరివేయదు. అన్నీ శిక్షణలోకి ప్రవేశిస్తాయి, చక్కగా కనిపించే లాస్ కర్వ్గా మరియు ఏమీ చేయని రోబోట్గా బయటపడతాయి. దృశ్యం సెట్ చేయబడినప్పుడు తనిఖీ చేయండి.
| లోపం | అది ఎలా కనిపిస్తుంది | అది ఎక్కడ నుండి వస్తుంది | దాన్ని ఎలా పట్టుకోవాలి |
|---|---|---|---|
| కెమెరా వీక్షణలు మారాయి | టాప్ కీ కింద మణికట్టు చిత్రం | తిరిగి ప్లగ్ చేసిన తర్వాత ఇండెక్స్ పునఃకేటాయింపు | lerobot-find-cameras each session; by-id paths |
| స్తంభించిన ఫ్రేమ్లు | డజన్ల కొద్దీ వరుసలకు ఒకే చిత్రం | కెమెరా డెలివరీ చేయడం ఆపివేస్తుంది; లూప్ చివరి ఫ్రేమ్ను పునరావృతం చేస్తుంది | scrub it in lerobot-dataset-viz |
| వదిలివేయబడిన ఫ్రేమ్లు | fps సార్లు సెకన్ల కంటే తక్కువ వరుసల సంఖ్య | క్యూ నిండిపోతుంది, బ్లాక్ చేయడానికి బదులుగా వదిలివేస్తుంది | 'Encoder queue full' in the log; rows vs fps times duration |
| దాని పరిమితి వద్ద జాయింట్ | ఒక జాయింట్ కనిష్ట లేదా గరిష్ట వద్ద ఫ్లాట్గా ఉంటుంది | లీడర్ పరిధి ఫాలోవర్ పరిధిని మించిపోయింది, లేదా చెడ్డ మధ్య పోజ్ | per-joint min/max in ds.meta.stats; lerobot-find-joint-limits beforehand |
| చిత్రం మరియు చర్య సమకాలీకరణలో లేవు | పాలసీ ముందుగానే ఊహిస్తుంది లేదా వెనుకబడి ఉంటుంది | లూప్ కంటే భిన్నమైన fps వద్ద కెమెరాలు | keep every camera at --dataset.fps |
| డెడ్ టైమ్ | ఒకే విధమైన చర్య వరుసల సుదీర్ఘ పరుగు | ఆపరేటర్ రికార్డర్ నడుస్తున్నప్పుడు పాజ్ చేసాడు | share of consecutive identical action rows |
| ఉపయోగించలేని టాస్క్ స్ట్రింగ్ | task1, demo2, test | వేగంగా టైప్ చేయడం | meta/tasks.parquet in v3.0 (it was meta/tasks.jsonl in v2.1); fix with lerobot-edit-dataset modify_tasks |
ఎన్కోడర్ ప్రతి కెమెరాకు ఒక పరిమిత క్యూను కలిగి ఉంటుంది, డిఫాల్ట్గా 30 ఫ్రేమ్లు. అది వేగాన్ని అందుకోలేనప్పుడు, ఫ్రేమ్లు బ్లాక్ చేయబడకుండా వదిలివేయబడతాయి: క్యాప్చర్ కొనసాగుతుంది మరియు ఏదీ క్రాష్ అవ్వదు. మీకు Encoder queue full for {camera}, dropped N frame(s) మరియు ఎపిసోడ్ చివరలో ప్రతి కెమెరాకు మొత్తం లభిస్తుంది. lerobot థ్రెషోల్డ్: సుమారు 5 శాతం మిస్సింగ్ అంటే ఓవర్లోడ్ అయిన సిస్టమ్, 2 శాతం ఆశించిన స్టార్టప్ లోడ్. పరిష్కారాలు వరుసగా: --display_data=false, --dataset.encoder_threads తగ్గించడం, vcodec=h264, స్ట్రీమింగ్ ఆఫ్.
ఒక హెచ్చరిక: స్ట్రీమింగ్-ఎన్కోడింగ్ గైడ్ యొక్క పట్టిక డిఫాల్ట్ను ఇలా జాబితా చేస్తుంది True, అయితే మెయిన్లోని డేటాక్లాస్ ఇలా చదువుతుంది streaming_encoding: bool = False. డాక్యుమెంట్లు మరియు కోడ్ ఏకీభవించవు, కాబట్టి దీన్ని స్పష్టంగా సెట్ చేయండి; ఫ్లాగ్ ఆఫ్ చేయబడినప్పుడు lerobot ఎల్లప్పుడూ దీన్ని సిఫార్సు చేస్తూ ఒక సూచనను లాగ్ చేస్తుంది.
GPU అద్దెకు తీసుకునే ముందు డేటాసెట్ను తనిఖీ చేయండి
డాక్యుమెంట్ల నుండి అంగీకార పరీక్ష: వీడియో వ్యవధిని CLI నివేదించిన ఎపిసోడ్ వ్యవధితో పోల్చండి మరియు అడ్డు వరుసల సంఖ్య fps సార్లు వ్యవధికి సమానమని నిర్ధారించండి. మొత్తం మీద కాదు, ప్రతి ఎపిసోడ్కు.
from lerobot.datasets import LeRobotDataset
ds = LeRobotDataset("your-user/so100_pick_cube_20260823_141530")
print("fps:", ds.fps, "frames:", ds.num_frames)
# In v3.0 the per-episode records live in meta/episodes/ as chunked parquet:
# lengths, tasks and offsets into the shared parquet and mp4 shards.
# They load through the datasets stack, so this is a datasets.Dataset --
# use .column_names and integer indexing, not pandas .columns / .head().
eps = ds.meta.episodes
print(eps.column_names)
print(eps[0])
# Global feature statistics, including per-joint min and max.
# A joint whose min equals its max never moved. A joint sitting at a
# hard limit for most of the run is the one that will stall the policy.
print(ds.meta.stats["observation.state"])ఆపై దానిని చూడండి. lerobot-dataset-viz కెమెరా వీక్షణల పక్కన జాయింట్ ట్రేస్లతో ఒక ఎపిసోడ్ను ఫ్రేమ్ బై ఫ్రేమ్ రీప్లే చేస్తుంది, Rerun లేదా Foxgloveలో. మార్చబడిన కెమెరాలు మరియు స్తంభింపచేసిన ఫ్రేమ్లు పది సెకన్లలో కనిపిస్తాయి. ప్రజలు ఈ దశను దాటవేస్తారు.
# Replay one episode with camera views and joint traces
lerobot-dataset-viz \
--repo-id your-user/so100_pick_cube_20260823_141530 \
--episode-index 0
# Foxglove instead, for a seekable, scrubbable timeline
lerobot-dataset-viz \
--repo-id your-user/so100_pick_cube_20260823_141530 \
--episode-index 0 \
--display-mode foxglove
# Drop the episodes that did not survive review
lerobot-edit-dataset \
--repo_id your-user/so100_pick_cube_20260823_141530 \
--new_repo_id your-user/so100_pick_cube_clean \
--operation.type delete_episodes \
--operation.episode_indices "[3, 17, 41]"
v2.1 లేదా v3.0: రికార్డ్ చేసే ముందు నిర్ణయించుకోండి
v2.1 ప్రతి ఎపిసోడ్కు ఒక పార్కెట్ మరియు ఒక MP4ను రాసింది. v3.0 అనేక ఎపిసోడ్లను షేర్డ్ షార్డ్లలో కలుపుతుంది మరియు మెటాడేటా నుండి సరిహద్దులను పునర్నిర్మిస్తుంది, కాబట్టి info.json ఎపిసోడ్ నంబర్కు బదులుగా పాత్ టెంప్లేట్లను కలిగి ఉంటుంది, అవి: data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet అటువంటివి. దీనికి గల ప్రధాన కారణం తక్కువ, పెద్ద ఫైల్లు: వేగవంతమైన ప్రారంభం మరియు పెద్ద స్థాయిలో తక్కువ ఫైల్-సిస్టమ్ ఒత్తిడి.
| LeRobot v2.1 | LeRobot v3.0 | |
|---|---|---|
| లేఅవుట్ | ప్రతి ఎపిసోడ్కు ఒక పార్కెట్ మరియు ఒక MP4 | ప్రతి షార్డ్కు అనేక ఎపిసోడ్లు |
| ఎపిసోడ్ మెటాడేటా | JSONL ఫైల్లు | meta/episodes/ కింద చంక్ చేయబడిన పార్కెట్, డేటాసెట్స్ స్టాక్ ద్వారా |
| హబ్ నుండి స్ట్రీమింగ్ | లేదు | అవును, StreamingLeRobotDataset ద్వారా |
| lerobot 0.6.1 ద్వారా వ్రాయబడింది | లేదు | అవును, ఈరోజు మీకు లభించేది |
| GR00T N1.7 మరియు N1.5 ద్వారా చదవబడింది | అవును | లేదు, కిందికి మార్చబడాలి |
lerobot 0.6.1 v3.0ను రాస్తుంది, కానీ GR00T N1.7 మరియు N1.5 v2.0 లేదా v2.1ను చదువుతాయి మరియు దానిపై క్రాష్ అవుతాయి. ప్రయాణ దిశను గమనించండి: src/lerobot/scripts/ లో convert_dataset_v21_to_v30.py ఉంది, కానీ దీనికి వ్యతిరేకంగా ఏదీ లేదు. సెషన్కు ముందు దీనిని పరిష్కరించండి. పరిష్కారం: v3గా తిరస్కరించబడిన డేటాసెట్.
# Upgrade an older v2.1 dataset to v3.0
python -m lerobot.scripts.convert_dataset_v21_to_v30 \
--repo-id=your-user/so100_pick_cube
# By default it pushes the converted dataset back to the hub and tags it v3.0.
# To convert a local copy and keep it off the hub:
python -m lerobot.scripts.convert_dataset_v21_to_v30 \
--repo-id=your-user/so100_pick_cube \
--root=/path/to/dataset/directory \
--push-to-hub=falseఒకే డేటాసెట్కు రెండు మార్గాలు
పైన పేర్కొన్నవన్నీ, మీ స్వంత మెషీన్లో: USB ఎన్యూమరేషన్, ffmpeg బిల్డ్, ఎన్కోడర్ ట్యూనింగ్ మరియు కాలిబ్రేషన్ ఫైల్లు మీ నియంత్రణలో ఉంటాయి. పైప్లైన్ను అర్థం చేసుకోవడానికి, అసాధారణ కెమెరా రిగ్ను అమలు చేయడానికి లేదా డేటాను స్థానికంగా ఉంచడానికి ఇది సరైన మార్గం.
సమయం: ప్రతి ఆర్మ్ను అసెంబుల్ చేయడానికి ఒక సాయంత్రం, ఒక క్లిష్టమైన మొదటి కాలిబ్రేషన్, మరియు కెమెరా తప్పు స్లాట్లో ఉన్నందున మీరు విస్మరించే మొదటి సెషన్.
డెస్క్టాప్ క్లయింట్ LeRobot-ఫార్మాట్ డేటాసెట్లు, ఎపిసోడ్లు, కెమెరా స్ట్రీమ్లు మరియు జాయింట్ స్టేట్లను నేరుగా టెలిఆపరేషన్ సెషన్ నుండి రికార్డ్ చేస్తుంది. ఆ డేటాసెట్ శిక్షణ ఫారమ్కు వెళుతుంది: మోడల్, డేటాసెట్ మరియు హైపర్పారామీటర్లను ఎంచుకోండి, మరియు బ్యాకెండ్ మోడల్ VRAM పరిమాణం ప్రకారం ఒక GPUని అద్దెకు తీసుకుంటుంది, ట్రైనర్ను నడుపుతుంది మరియు చెక్పాయింట్లను ఆబ్జెక్ట్ స్టోరేజ్కు వ్రాస్తుంది.
- 1క్లయింట్ను ఇన్స్టాల్ చేయండి
On డౌన్లోడ్ పేజీలో; క్లయింట్ డాక్యుమెంట్లలో సెటప్ చేయండి.
- 2టెలిఆపరేషన్ సెషన్ నుండి రికార్డ్ చేయండి
ఆర్మ్ను నడపండి; క్లయింట్ LeRobot ఫార్మాట్లో ఎపిసోడ్లను వ్రాస్తుంది. వాక్త్రూ: మీ మొదటి డేటాసెట్ను రికార్డ్ చేయండి.
- 3లేదా మీ స్వంత డేటాను తీసుకురండి
ఒక డేటాసెట్ Hugging Face రెపో ఐడి నుండి లేదా మీ స్వంత మెషీన్ నుండి కూడా రావచ్చు: డేటాసెట్ డాక్యుమెంట్లు, పబ్లిక్ డైరెక్టరీ.
- 4శిక్షణ ఇచ్చి తిరిగి అమలు చేయండి
శిక్షణ మ్యాట్రిక్స్లో కాంబినేషన్ను ఎంచుకోండి, ఆపై పాలసీని తిరిగి ఆర్మ్పై అమలు చేయండి. సుమారుగా 24 GB టైర్లో 1 నుండి 3 USD, A100 లేదా H100 టైర్లో 4 నుండి 12 USD.
ఇది మీ ఆర్మ్ను అసెంబుల్ చేయదు లేదా కాలిబ్రేట్ చేయదు, మరియు ఇది లోపభూయిష్ట ఎపిసోడ్ను రిపేర్ చేయదు, కాబట్టి తనిఖీ దశ ఇప్పటికీ వర్తిస్తుంది. మరొక చివరలో ఒక కఠినమైన పరిమితి కూడా ఉంది: వేగవంతమైన పనుల కోసం, ఇన్ఫరెన్స్ సర్వోల పక్కన ఉండాలి. కంట్రోల్ లూప్ ప్రతి చర్య దశకు 20 నుండి 485 ms వరకు నడుస్తుంది, మరియు పబ్లిక్-ఇంటర్నెట్ రౌండ్ ట్రిప్లు ఒక పని చేసే పాలసీని సంకోచించే పాలసీగా మారుస్తాయి.
మీరే పైప్లైన్ను వైరింగ్ చేయకుండా LeRobot డేటాసెట్లను రికార్డ్ చేయండి
AY-Robots డెస్క్టాప్ క్లయింట్ టెలిఆపరేషన్ సెషన్ నుండి LeRobot ఫార్మాట్లో ఎపిసోడ్లు, కెమెరా స్ట్రీమ్లు మరియు జాయింట్ స్టేట్లను రికార్డ్ చేస్తుంది, ఆపై డేటాసెట్ను ట్రైనర్కు అందిస్తుంది.
డెస్క్టాప్ క్లయింట్ను పొందండిడేటాసెట్ నుండి పాలసీకి
ఇక్కడ నడిచే ప్రతి ఇమిటేషన్ లెర్నింగ్కు యాభై శుభ్రమైన ఎపిసోడ్లు ఫీడ్ చేయబడతాయి. ACT మీ పనిపై మాత్రమే మొదటి నుండి శిక్షణ పొందుతుంది, సుమారు 80 మిలియన్ పారామీటర్లతో, ప్రతి చర్య దశకు సుమారు 20 ms పడుతుంది, వేగవంతమైన కదలికతో సౌకర్యవంతంగా ఉండే ఐదు వాటిలో ఇది ఒక్కటే. SmolVLA 24 GB కార్డ్లో సుమారు 450 మిలియన్ పారామీటర్లను కలిగి ఉంటుంది. GR00T N1.7 అనేది సుమారు 3 బిలియన్ పారామీటర్ల ఫౌండేషన్ మోడల్, ఇక్కడ ఫైన్-ట్యూనింగ్ సుమారు 40 మిలియన్ పారామీటర్లను తాకుతుంది, దీనికి A100 లేదా H100 అవసరం, మరియు ఆ v2.1 డేటాసెట్ కావాలి.
తరువాత, మీ కాంబినేషన్ కోసం గైడ్: ACT on SO-100, SmolVLA on SO-100 లేదా GR00T N1.7 on SO-100; మొదటి రన్ కోసం, మీ మొదటి పాలసీకి శిక్షణ ఇవ్వడం తక్కువ సమయం పడుతుంది. పాలసీ బెంచ్పై పనిచేసి, మీరు టేబుల్ను కదిలించిన వెంటనే కుప్పకూలిపోతే, అది డేటా సమస్య: పాలసీ ఒకే సెటప్లో మాత్రమే పనిచేస్తుంది మరియు అధిక-నాణ్యత VLA శిక్షణ డేటాను సేకరించడం వైవిధ్యాన్ని లోతుగా పరిశీలిస్తాయి.
మొదటి పని చేసే పాలసీకి నాకు నిజంగా ఎన్ని ఎపిసోడ్లు అవసరం?▾
SmolVLAకి ముప్పై, ACT, Pi0.5, GR00T N1.5 మరియు N1.7కి యాభై, ఇవి AY-Robots శిక్షకులు అమలు చేసే కనీసాలు. LeRobot గైడ్ స్వతంత్రంగా మొదటి పని కోసం కనీసం 50, ప్రతి వస్తువు స్థానానికి సుమారు 10 సిఫార్సు చేస్తుంది. డేటా-స్కేలింగ్ పనిలో, ప్రదర్శనల సంఖ్య కంటే పరిసరాలు మరియు వస్తువులతో సాధారణీకరణ పెరుగుతుందని కనుగొనబడింది, కాబట్టి ఒకే దృశ్యం యొక్క వంద టేక్లు ఐదు ప్లేస్మెంట్లలో యాభై కంటే అధ్వాన్నంగా ఉంటాయి.
నాకు లీడర్ ఆర్మ్ అవసరమా, లేదా నేను కీబోర్డ్తో టెలిఆపరేట్ చేయవచ్చా?▾
lerobot కీబోర్డ్ మరియు గేమ్ప్యాడ్ టెలిఆపరేటర్లను అందిస్తుంది, కాబట్టి లీడర్ ఆర్మ్ ఖచ్చితంగా అవసరం లేదు, కానీ ఇది చాలా మంచిది: లీడర్-ఫాలోవర్ రికార్డ్ చేయబడిన చర్య యొక్క కోఆర్డినేట్ కన్వెన్షన్లో నిరంతర జాయింట్ ట్రాజెక్టరీలను అందిస్తుంది, అయితే కీబోర్డ్ ఇన్పుట్ పాలసీ జర్క్గా నేర్చుకునే స్టెప్డ్ మోషన్ను ఉత్పత్తి చేస్తుంది. కీబోర్డ్ టెలిఆపరేషన్కు గ్లోబల్ కీ బ్యాకెండ్ కూడా అవసరం, కాబట్టి ఇది Wayland మరియు హెడ్లెస్ సిస్టమ్లలో విఫలమవుతుంది.
నేను రాస్ప్బెర్రీ పై లేదా చిన్న మినీ PCలో రికార్డ్ చేయవచ్చా?▾
అవును, ట్యూనింగ్తో. స్ట్రీమింగ్-ఎన్కోడింగ్ గైడ్ ఆధునిక 4-కోర్ మెషీన్లు మరియు Raspberry Pi 5ని కవర్ చేసే తక్కువ-వనరుల బ్రాకెట్ను కలిగి ఉంది, మరియు రెండు కెమెరాలను 640x480 మరియు 30 fps వద్ద దాని 'కొంత ట్యూనింగ్ అవసరం' కాలమ్లో ఉంచుతుంది. దాని సలహా: --dataset.rgb_encoder.vcodec=h264 మరియు --dataset.streaming_encoding=false ద్వారా క్యాప్చర్ లూప్తో పోటీ పడకుండా ఎన్కోడర్ను ఆపండి. ఇది 640x480 వద్ద రెండు కెమెరాలను సెకనుకు సుమారు 55 మిలియన్ పిక్సెల్లుగా మరియు 1920x1080 వద్ద రెండు కెమెరాలను సుమారు 373 మిలియన్లుగా రేట్ చేస్తుంది.
నేను ఇప్పుడే రికార్డ్ చేసిన డేటాసెట్ నిజంగా ఆరోగ్యంగా ఉందని నాకు ఎలా తెలుస్తుంది?▾
మూడు చవకైన తనిఖీలు. ప్రతి ఎపిసోడ్ యొక్క వీడియో వ్యవధిని CLI నివేదించిన వ్యవధితో పోల్చండి మరియు మొత్తం మీద కాకుండా ప్రతి ఎపిసోడ్కు, అడ్డు వరుసల సంఖ్య fps సార్లు ఆ వ్యవధికి సమానమని నిర్ధారించండి; ఇది lerobot యొక్క ఎన్కోడింగ్ గైడ్ ఇచ్చే అంగీకార పరీక్ష. ds.meta.stats చదవండి, ఇక్కడ దాని కనిష్ట విలువ దాని గరిష్ట విలువకు సమానమైన జాయింట్ ఎప్పుడూ కదలలేదు. ఆపై lerobot-dataset-vizలో రెండు లేదా మూడు ఎపిసోడ్లను రీప్లే చేయండి, మార్చబడిన వీక్షణలు మరియు స్తంభించిన ఫ్రేమ్లు కనిపించే ఏకైక మార్గం ఇది. డ్రాప్ చేయబడిన ఫ్రేమ్లపై గైడ్ సుమారు 5 శాతం లోపించిన వాటికి గీత గీస్తుంది; సుమారు 2 శాతం సాధారణ తాత్కాలిక లోడ్, తరచుగా ప్రారంభంలో మాత్రమే.
నా శిక్షణ పని v3.0గా డేటాసెట్ను తిరస్కరించింది. ఇప్పుడు ఏమి చేయాలి?▾
GR00T N1.7 మరియు N1.5 LeRobot v2.0 లేదా v2.1ని చదువుతాయి మరియు v3.0లో క్రాష్ అవుతాయి, ఇది lerobot 0.6.1 రికార్డ్ చేస్తుంది. శిక్షణకు ముందు ఫార్మాట్ను పరిష్కరించండి, లేదా v3.0ని స్థానికంగా చదివే పాలసీని ఉపయోగించండి: Pi0.5, SmolVLA లేదా ACT. lerobot v2.1 నుండి v3.0 కన్వర్టర్ను అందిస్తుంది మరియు రివర్స్లో ఏమీ లేదు.
Sources
- LeRobot: నిజ-ప్రపంచ రోబోట్లపై అనుకరణ అభ్యాసం
- LeRobot: SO-100 అసెంబ్లీ, మోటార్ సెటప్ మరియు క్రమాంకనం
- LeRobot: కెమెరాలు మరియు lerobot-find-cameras
- LeRobot: ఇన్స్టాలేషన్ మరియు ఎక్స్ట్రాస్ మ్యాట్రిక్స్
- LeRobotDataset v3.0: లేఅవుట్ మరియు v2.1 మైగ్రేషన్
- LeRobot: స్ట్రీమింగ్ వీడియో ఎన్కోడింగ్ మరియు డ్రాప్ చేయబడిన ఫ్రేమ్లు
- LeRobot: పెద్ద డేటాసెట్లను v3.0 (DROID)కి పోర్టింగ్ చేయడం
- lerobot v0.6.1 విడుదల, 3 ఆగస్టు 2026
- DatasetRecordConfig: నిజమైన రికార్డింగ్ డిఫాల్ట్లు
- lerobot_record.py: రికార్డ్ లూప్ మరియు రెజ్యూమ్ హ్యాండ్లింగ్
- TheRobotStudio/SO-ARM100: బిల్డ్ రెపో మరియు మెటీరియల్స్ బిల్లు
- Hugging Face: LeRobot కమ్యూనిటీ డేటాసెట్ల చెక్లిస్ట్
- lerobot/svla_so100_pickplace: 50 ఎపిసోడ్లు, 19,631 ఫ్రేమ్లు
- లిన్ మరియు ఇతరులు (2024), అనుకరణ అభ్యాసంలో డేటా స్కేలింగ్ నియమాలు
- మాండ్లేకర్ మరియు ఇతరులు (2021), ఆఫ్లైన్ మానవ ప్రదర్శనల నుండి నేర్చుకోవడంలో ముఖ్యమైనవి
Sources
- LeRobot: Imitation Learning on Real-World Robots
- LeRobot: SO-100 assembly, motor setup and calibration
- LeRobot: Cameras and lerobot-find-cameras
- LeRobot: Installation and the extras matrix
- LeRobotDataset v3.0: layout and v2.1 migration
- LeRobot: Streaming video encoding and dropped frames
- LeRobot: Porting large datasets to v3.0 (DROID)
- lerobot v0.6.1 release, 3 August 2026
- DatasetRecordConfig: the real recording defaults
- lerobot_record.py: record loop and resume handling
- TheRobotStudio/SO-ARM100: build repo and bill of materials
- Hugging Face: LeRobot Community Datasets checklist
- lerobot/svla_so100_pickplace: 50 episodes, 19,631 frames
- Lin et al. (2024), Data Scaling Laws in Imitation Learning
- Mandlekar et al. (2021), What Matters in Learning from Offline Human Demonstrations
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started