איסוף נתונים

זרימת העבודה המלאה של ההקלטה עבור LinkerBot O6. Teleoperation של מנהיג-עוקב, פורמט מערך נתונים של LeRobot, רשימת בדיקה לאיכות פרק וקישורים לצינור איסוף הנתונים הרחב יותר.

זרימת עבודה להקלטה עבור O6

התהליך המלא מחומרה מוכן לפרק מערך הנתונים הראשון. בצע את השלבים לפי הסדר.

1

אימות חומרה וממשק CAN

ודא שה-O6 מותקן, מופעל וממשק ה-CAN פועל. לָרוּץ candump can0 וודא שמופיעות חבילות פעימות לב מוטוריות לפני שתמשיך.

2

הגדר משימה ופריסה של מצלמה

הגדר את תיאור המשימה, הגדר את המצלמה/ות בזוויות הנכונות והצב אובייקטים של משימה בסביבת העבודה. הגדרת סצנה עקבית על פני פרקים היא קריטית להכללת מדיניות.

3

התחל את סשן ההקלטה

הפעל את סקריפט הבקרה של LeRobot עם ה record מצב. זה מפעיל את המערכת להקלטת פרקים. ההפעלה ימתין להדק ההתחלה שלך לפני הצילום.

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=record \
  --control.fps=30 \
  --control.repo_id=your-username/o6-task-name \
  --control.num_episodes=50 \
  --control.single_task="Pick up the blue block"
4

הפעלה טלפונית והקלטת פרקים

השתמש בזרוע מובילה (או במקלדת שלך לבדיקות פשוטות) כדי להפעיל מרחוק את ה-O6. לחץ על מקש התחלה/עצירה כדי לשלב כל פרק בסוגריים. אפס את הסצנה בין פרקים למען עקביות.

5

סקירה וסנן פרקים

השתמש בכלי השידור החוזר של LeRobot כדי לסקור כל פרק בצורה ויזואלית. השלך כל מי שנכשל ברשימת האיכות למטה. איכות על פני כמות: 30 פרקים מצוינים מנצחים 100 בינוניים.

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=replay \
  --control.repo_id=your-username/o6-task-name \
  --control.episode=0
6

העלה ל- HuggingFace Hub

דחוף את מערך הנתונים המסונן שלך אל HuggingFace Hub לשיתוף והדרכה. מערך הנתונים זמין באופן מיידי לאימון מדיניות ב-LeRobot.

huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
  --repo_id=your-username/o6-task-name

פורמט ערכת נתונים של LeRobot עבור O6

כל פרק מוקלט מאוחסן בפורמט הנתונים הסטנדרטי של LeRobot HuggingFace. פורמט זה תואם ישירות ל-ACT, Diffusion Policy וכל שאר אלגוריתמי האימון הנתמכים על ידי LeRobot.

מבנה הפרק

dataset/
  data/
    episode_000000/
      observation.state.npy     # [T, 12] — 6 joint positions + 6 velocities
      action.npy                # [T, 6]  — 6 target joint positions
      observation.images.wrist_cam/
        frame_000000.png        # 640x480 @ 30 fps
        ...
      observation.images.overhead_cam/
        frame_000000.png
        ...
      episode.json              # {task, success, duration_s, num_frames}
  meta_data/
    info.json                   # dataset schema version, robot type, fps
    stats.json                  # per-channel mean, std, min, max

ממדי מצב ופעולה

# observation.state: [T, 12]
# Columns: [j0_pos, j1_pos, j2_pos, j3_pos, j4_pos, j5_pos,
#            j0_vel, j1_vel, j2_vel, j3_vel, j4_vel, j5_vel]
# Units: radians and radians/second

# action: [T, 6]
# Columns: [j0_target, j1_target, j2_target, j3_target, j4_target, j5_target]
# Units: radians

אימון מדיניות ממערך הנתונים של O6

python -m lerobot.scripts.train \
  --dataset_repo_id=your-username/o6-task-name \
  --policy.type=act \
  --output_dir=./checkpoints/o6-act-v1 \
  --training.num_epochs=100

רשימת איכות פרק

החל את רשימת הבדיקה הזו על כל פרק לפני הכללתה במערך האימון שלך. נתונים גרועים יותר גרועים מפחות נתונים.

  • המשימה הושלמה בהצלחה - הזרוע הגיעה למצב המטרה ללא התערבות אנושית. אין השלמות חלקיות.
  • התנועה חלקה ומכוונת - ללא תיקונים מטומטמים, חריגות או שינויי כיוון פתאומיים. הפגנות חלקות מכשירות מדיניות חלקה יותר.
  • כל מסגרות המצלמה נוכחות - ללא מסגרות שנשרו, ללא חסימות של אזור סביבת העבודה הרלוונטית למשימה.
  • מדינות משותפות הן רציפות - אין פערי צעדי זמן גדולים מ-40 אלפיות השנייה ביומן המצב.
  • משך הפרק עקבי - פרקים קצרים מ-3 שניות או יותר מ-30 שניות הם בדרך כלל חריגים. סקור אותם לפני הכללה.
  • הסצנה אופסה באופן זהה - אובייקטי משימה הוחזרו לאותה עמדת התחלה לפני תחילת הפרק.
  • אין שגיאות CAN במהלך ההקלטה - לבדוק candump can0 יומנים עבור מסגרות שגיאה במהלך ההפעלה.
סקירת צינור איסוף נתונים →

מוכן להתאמן?

עקוב אחר נתיב הלמידה LinkerBot O6 עבור זרימת העבודה המלאה של ההגדרה לאימון.