SO-100 ఆర్మ్‌తో మీ మొదటి LeRobot డేటాసెట్‌ను రికార్డ్ చేయడానికి AY-Robots ట్యుటోరియల్ పేజీ
LeRobotSO-100డేటాసెట్ రికార్డింగ్టెలిఆపరేషన్అనుకరణ అభ్యాసం

SO-100తో మీ మొదటి LeRobot డేటాసెట్‌ను రికార్డ్ చేయండి

AY-Robots ResearchAugust 23, 202616 నిమిషాల పఠనం

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 నుండి చదవబడింది.

ఫీచర్డేటాటైప్ఆకారంఅది ఏమిటి
actionfloat32[6]లీడర్ ఆర్మ్ నుండి జాయింట్ లక్ష్యాలు
observation.statefloat32[6]అనుచరుడు చేరుకున్న జాయింట్ స్థానాలు
observation.images.topvideo[480, 640, 3]సీన్ కెమెరా, MP4 (ఇక్కడ av1)
observation.images.wristvideo[480, 640, 3]మణికట్టు కెమెరా, అదే రేటు
timestampfloat32[1]ఎపిసోడ్ ప్రారంభమైనప్పటి నుండి సెకన్లు
frame_index, episode_index, index, task_indexint64[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 సెకన్లు, ప్రతి ఎపిసోడ్‌కు. మీవి సగటున ఒక నిమిషం అయితే, మీరు మరింత కష్టమైన పని చేస్తున్నారు లేదా రెండు చివర్లలో డెడ్ టైమ్‌ను రికార్డ్ చేస్తున్నారు.

AY-Robots గ్లోసరీ ఎంట్రీ LeRobot డేటాసెట్ ఫార్మాట్ కోసం, డైరెక్టరీ లేఅవుట్ మరియు మెటాడేటా ఫైల్‌లను చూపుతుంది.
డేటా/, వీడియోలు/ మరియు మెటా/లో ఏముంటుంది, మరియు ఏ విధానాలు ఏ వెర్షన్‌ను చదువుతాయి.

మీకు బెంచ్‌పై అవసరమైనవి

అంశంవివరంగమనిక
ఫాలోవర్ ఆర్మ్SO-100, ఆరు Feetech STS3215 సర్వోలుభాగాలలో సుమారు 110 నుండి 150 EUR
లీడర్ ఆర్మ్రెండవ SO-100, గేర్లు తొలగించబడ్డాయిఆరు లీడర్ మోటార్ల నుండి గేర్లు తొలగించబడ్డాయి: ఎన్‌కోడర్ మాత్రమే, తక్కువ ఘర్షణ
శక్తిమెటీరియల్స్ బిల్లులోని 7.4 V STS3215 వేరియంట్‌కు సరిపోతుందిదిగువ హెచ్చరికను చూడండి
కెమెరాలురెండు USB కెమెరాలు, 640x480 30 fps వద్దఒక దృశ్య వీక్షణ, ఒకటి మణికట్టుపై
హోస్ట్Python 3.12 లేదా అంతకంటే కొత్తది, ffmpegrequires-python >= 3.12
హబ్ ఖాతాHugging Face రైట్ టోకెన్optional with --dataset.push_to_hub=false
7.4 V, 12 V కాదు

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 ఇన్‌స్టాల్ చేయండి

bash
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
lerobot-info సిస్టమ్ సారాంశాన్ని ప్రింట్ చేస్తుంది, ఇందులో PATHలో కనుగొనగలిగే ffmpeg వెర్షన్ కూడా ఉంటుంది.

అదనపు అంశాలు చాలా మందిని గందరగోళానికి గురిచేస్తాయి. pip install lerobot కేవలం కోర్ ML డిపెండెన్సీలను మాత్రమే ఇన్‌స్టాల్ చేస్తుంది, రోబోట్‌తో మాట్లాడేది ఏమీ కాదు. కోచ్ ఆర్మ్స్‌కు dynamixel బదులుగా feetech అవసరం. మీ షెల్ lerobot-record గురించి ఎప్పుడూ వినకపోతే, దీనికి కారణం ఇదే.

పోర్ట్‌లు, మోటార్ IDలు మరియు క్రమాంకనం

భాగాలు మరియు పని చేసే టెలిఆప్ లూప్ మధ్య మూడు ఒకేసారి చేసే దశలు ఉన్నాయి. మీ చేయిపై శిక్షణ పొందిన విధానాన్ని మరొకరిపై అమలు చేయడానికి, ముడి ఎన్‌కోడర్ కౌంట్‌లను భాగస్వామ్య జాయింట్ కన్వెన్షన్‌కు మ్యాప్ చేస్తుంది.

  1. 1
    ప్రతి చేయి యొక్క USB పోర్ట్‌ను కనుగొనండి

    రెండు చేతులు ప్లగ్ ఇన్ చేసి అమలు చేయండి, ప్రాంప్ట్ చేసినప్పుడు మీరు గుర్తించే దానిని అన్‌ప్లగ్ చేయండి మరియు ఏ పోర్ట్ అదృశ్యమవుతుందో గమనించండి. Linuxలో మీకు sudo chmod 666 /dev/ttyACM0 అవసరం కావచ్చు.

    bash
    lerobot-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. 2
    మోటార్ IDలు మరియు బాడ్‌రేట్‌లను వ్రాయండి

    IDలు ఒక మోటారుకు ఒకసారి వ్రాయబడతాయి మరియు డాక్యుమెంటేషన్ ఎలా చేయాలో కఠినంగా ఉంటుంది: కంట్రోలర్ బోర్డుకు సరిగ్గా ఒక మోటారును కనెక్ట్ చేయండి, ఇంకా దేనికీ డేజీ-చైన్ చేయవద్దు. స్క్రిప్ట్ గ్రిప్పర్ కోసం ముందుగా అడిగి దానికి ID 6 ఇస్తుంది, ఆపై wrist_rollకు 5, shoulder_panకు 1 వరకు వెనుకకు నడుస్తుంది. అసెంబ్లీకి ముందు దీన్ని చేయండి.

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  3. 3
    రెండు చేతులను క్రమాంకనం చేయండి

    ప్రతి జాయింట్‌ను దాని పరిధి మధ్యలోకి తరలించండి, ఎంటర్ నొక్కండి, ఆపై ప్రతి దానిని దాని పూర్తి పరిధిలో స్వీప్ చేయండి. id ప్రొఫైల్ ఫైల్‌పేరు అవుతుంది.

    bash
    lerobot-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. 4
    ఏదైనా రికార్డ్ చేయడానికి ముందు టెలిఆపరేట్ చేయండి

    పైన పేర్కొన్న అన్నింటికీ ఆమోద పరీక్ష. టెలిఆపరేషన్ అస్థిరంగా, అద్దంలో ఉన్నట్లుగా, లేదా ఒక జాయింట్ అనుసరించకపోతే, రికార్డింగ్ దానిని 50 ఎపిసోడ్‌లలో భద్రపరుస్తుంది.

    bash
    lerobot-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
క్రమాంకనం ఎక్కడ నిల్వ చేయబడుతుంది మరియు ID ఎందుకు ముఖ్యమైనది

ప్రొఫైల్‌లు $HF_LEROBOT_CALIBRATIONకు వెళ్తాయి, డిఫాల్ట్ ~/.cache/huggingface/lerobot/calibration, మరియు ID అనేది లుకప్ కీ. lerobot-recordకు క్రమాంకనం చేయబడిన IDని ఇవ్వండి మరియు అది ప్రొఫైల్‌ను తిరిగి ఉపయోగించడానికి ఎంటర్ లేదా దాన్ని మళ్లీ చేయడానికి cని అందిస్తుంది. తెలియని IDని ఇస్తే ఫైల్ ఉండదు, కాబట్టి అది సెషన్ మధ్యలో క్రమాంకనంలోకి వస్తుంది.

పాలసీ ఏమి చూస్తుందో కెమెరాలు నిర్ణయిస్తాయి

bash
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 సిమ్‌లింక్‌కు చూపండి, ఇది ఎన్యూమరేషన్ ఆర్డర్ కాకుండా డివైస్‌ను అనుసరిస్తుంది. డేటాసెట్ అంతర్గతంగా అస్థిరంగా మారడానికి ఇది అత్యంత సాధారణ మార్గం, మరియు శిక్షణ దానిని సరిచేయదు. కెమెరా కనుగొనబడలేదు.

రికార్డ్ కమాండ్ మరియు ప్రతి ఫ్లాగ్

bash
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_idemptyపేరు; డిఫాల్ట్‌గా టైమ్‌స్టాంప్ జోడించబడుతుంది
--dataset.single_taskemptyప్రతి ఎపిసోడ్‌తో నిల్వ చేయబడిన టాస్క్ స్ట్రింగ్
--dataset.root$HF_LEROBOT_HOME/repo_idరైట్ పాత్, డిఫాల్ట్ ~/.cache/huggingface/lerobot/
--dataset.fps30కంట్రోల్ లూప్ రేట్ మరియు డేటాసెట్ ఫ్రేమ్ రేట్
--dataset.episode_time_s60ఒక ఎపిసోడ్ ఆటో-అడ్వాన్స్ అయ్యే ముందు సెకన్లు
--dataset.reset_time_s60సీన్ రీసెట్; చేయి కదులుతుంది, ఏమీ నిల్వ చేయబడదు
--dataset.num_episodes50ఈ సెషన్‌లో రికార్డ్ చేయబడిన ఎపిసోడ్‌లు
--dataset.push_to_hubtrueసెషన్ ముగింపులో అప్‌లోడ్ చేయండి; false స్థానికంగా ఉంటుంది
--dataset.streaming_encodingfalse in the dataclass, true in the docs tableక్యాప్చర్ సమయంలో ఎన్‌కోడ్ చేయండి; దీన్ని స్పష్టంగా సెట్ చేయండి
--dataset.encoder_queue_maxsize30ప్రతి కెమెరాకు బఫర్ చేయబడిన ఫ్రేమ్‌లు, 30 fps వద్ద ~1 సె
--dataset.encoder_threadsnull (codec decides)ప్రతి ఎన్‌కోడర్‌కు థ్రెడ్‌లు; క్యాప్చర్ స్టట్టర్ అయితే తగ్గించండి
--dataset.no_stampfalserepo_id ని టైప్ చేసిన విధంగానే ఉంచండి
--resumefalseఇప్పటికే ఉన్న డేటాసెట్‌కు జోడించండి; --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 శ్రేణిప్రతి రన్‌కు ఖర్చు
SmolVLA30LeRobot v3.0RTX 4090 or any 24 GB cardabout 1 to 3 USD
ACT50LeRobot v3.0RTX 4090 or any 24 GB cardabout 1 to 3 USD
GR00T N1.750LeRobot v2.0 or v2.1A100 80 GB or H100 80 GBabout 4 to 12 USD
GR00T N1.550LeRobot v2.0 or v2.1A100 80 GB or H100 80 GBabout 4 to 12 USD
Pi0.550LeRobot v3.0A100 80 GB or H100 80 GBabout 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 సార్లు వ్యవధికి సమానమని నిర్ధారించండి. మొత్తం మీద కాదు, ప్రతి ఎపిసోడ్‌కు.

python
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"])
fps సమయాల వ్యవధికి దూరంగా ఉన్న ఒక ఎపిసోడ్ తొలగింపుకు అభ్యర్థి, శిక్షణకు కాదు.

ఆపై దానిని చూడండి. lerobot-dataset-viz కెమెరా వీక్షణల పక్కన జాయింట్ ట్రేస్‌లతో ఒక ఎపిసోడ్‌ను ఫ్రేమ్ బై ఫ్రేమ్ రీప్లే చేస్తుంది, Rerun లేదా Foxgloveలో. మార్చబడిన కెమెరాలు మరియు స్తంభింపచేసిన ఫ్రేమ్‌లు పది సెకన్లలో కనిపిస్తాయి. ప్రజలు ఈ దశను దాటవేస్తారు.

bash
# 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]"
lerobot-edit-dataset స్ప్లిట్, మెర్జ్, remove_feature, modify_tasks మరియు గణాంకాల పునఃగణనను కూడా చేస్తుంది. ఉదారంగా తొలగించండి: ఒక చెడ్డ ఎపిసోడ్ ఒక ఎపిసోడ్‌కు ఖర్చవుతుంది; దానిని ఉంచడం దానిపై శిక్షణ పొందిన ప్రతి రన్‌కు ఖర్చవుతుంది.
AY-Robots డేటాసెట్ డైరెక్టరీ పబ్లిక్ LeRobot డేటాసెట్‌లను ఎపిసోడ్ కౌంట్‌లు మరియు ఫార్మాట్‌లతో జాబితా చేస్తుంది
పోల్చదగిన డేటాసెట్‌లు ఎలా పరిమాణం చేయబడతాయి మరియు ఉల్లేఖించబడతాయి.

v2.1 లేదా v3.0: రికార్డ్ చేసే ముందు నిర్ణయించుకోండి

v2.1 ప్రతి ఎపిసోడ్‌కు ఒక పార్కెట్ మరియు ఒక MP4ను రాసింది. v3.0 అనేక ఎపిసోడ్‌లను షేర్డ్ షార్డ్‌లలో కలుపుతుంది మరియు మెటాడేటా నుండి సరిహద్దులను పునర్నిర్మిస్తుంది, కాబట్టి info.json ఎపిసోడ్ నంబర్‌కు బదులుగా పాత్ టెంప్లేట్‌లను కలిగి ఉంటుంది, అవి: data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet అటువంటివి. దీనికి గల ప్రధాన కారణం తక్కువ, పెద్ద ఫైల్‌లు: వేగవంతమైన ప్రారంభం మరియు పెద్ద స్థాయిలో తక్కువ ఫైల్-సిస్టమ్ ఒత్తిడి.

LeRobot v2.1LeRobot v3.0
లేఅవుట్ప్రతి ఎపిసోడ్‌కు ఒక పార్కెట్ మరియు ఒక MP4ప్రతి షార్డ్‌కు అనేక ఎపిసోడ్‌లు
ఎపిసోడ్ మెటాడేటాJSONL ఫైల్‌లుmeta/episodes/ కింద చంక్ చేయబడిన పార్కెట్, డేటాసెట్స్ స్టాక్ ద్వారా
హబ్ నుండి స్ట్రీమింగ్లేదుఅవును, StreamingLeRobotDataset ద్వారా
lerobot 0.6.1 ద్వారా వ్రాయబడిందిలేదుఅవును, ఈరోజు మీకు లభించేది
GR00T N1.7 మరియు N1.5 ద్వారా చదవబడిందిఅవునులేదు, కిందికి మార్చబడాలి
ఈరోజు రికార్డింగ్, రేపు GR00T శిక్షణ

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గా తిరస్కరించబడిన డేటాసెట్.

bash
# 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
50 ఎపిసోడ్‌లకు త్వరితగతిన. స్కేల్ అనేది వేరే పని: lerobot యొక్క పోర్టింగ్ గైడ్, v3.0లోకి రా డ్రాయిడ్‌ను మార్చడానికి, 7+ రోజుల స్థానిక ప్రాసెసింగ్ మరియు సుమారు 400 GB బడ్జెట్‌ను కేటాయిస్తుంది.

ఒకే డేటాసెట్‌కు రెండు మార్గాలు

పైన పేర్కొన్నవన్నీ, మీ స్వంత మెషీన్‌లో: USB ఎన్యూమరేషన్, ffmpeg బిల్డ్, ఎన్‌కోడర్ ట్యూనింగ్ మరియు కాలిబ్రేషన్ ఫైల్‌లు మీ నియంత్రణలో ఉంటాయి. పైప్‌లైన్‌ను అర్థం చేసుకోవడానికి, అసాధారణ కెమెరా రిగ్‌ను అమలు చేయడానికి లేదా డేటాను స్థానికంగా ఉంచడానికి ఇది సరైన మార్గం.

ఈ మార్గం యొక్క ఖర్చులు

సమయం: ప్రతి ఆర్మ్‌ను అసెంబుల్ చేయడానికి ఒక సాయంత్రం, ఒక క్లిష్టమైన మొదటి కాలిబ్రేషన్, మరియు కెమెరా తప్పు స్లాట్‌లో ఉన్నందున మీరు విస్మరించే మొదటి సెషన్.

మీరే పైప్‌లైన్‌ను వైరింగ్ చేయకుండా 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

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started