איסוף נתונים
זרימת העבודה המלאה של ההקלטה עבור LinkerBot O6. Teleoperation של מנהיג-עוקב, פורמט מערך נתונים של LeRobot, רשימת בדיקה לאיכות פרק וקישורים לצינור איסוף הנתונים הרחב יותר.
זרימת עבודה להקלטה עבור O6
התהליך המלא מחומרה מוכן לפרק מערך הנתונים הראשון. בצע את השלבים לפי הסדר.
אימות חומרה וממשק CAN
ודא שה-O6 מותקן, מופעל וממשק ה-CAN פועל. לָרוּץ candump can0 וודא שמופיעות חבילות פעימות לב מוטוריות לפני שתמשיך.
הגדר משימה ופריסה של מצלמה
הגדר את תיאור המשימה, הגדר את המצלמה/ות בזוויות הנכונות והצב אובייקטים של משימה בסביבת העבודה. הגדרת סצנה עקבית על פני פרקים היא קריטית להכללת מדיניות.
התחל את סשן ההקלטה
הפעל את סקריפט הבקרה של 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"
הפעלה טלפונית והקלטת פרקים
השתמש בזרוע מובילה (או במקלדת שלך לבדיקות פשוטות) כדי להפעיל מרחוק את ה-O6. לחץ על מקש התחלה/עצירה כדי לשלב כל פרק בסוגריים. אפס את הסצנה בין פרקים למען עקביות.
סקירה וסנן פרקים
השתמש בכלי השידור החוזר של 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
העלה ל- 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יומנים עבור מסגרות שגיאה במהלך ההפעלה.