איסוף נתונים דו ידני
ה-DK1 מתוכנן מהיסוד לאיסוף נתוני טל-פעולה דו-ידניים. מדריך זה מכסה חיווט של זרועות ומצלמות, הפעלת הליך הקלטת מנהיג/עוקב, הבנת סכימת הנתונים הדו-ידניים והכנת הנתונים שלך לאימון ACT.
חיבורי חומרה להקלטה דו-ידנית
הקלטה דו-ידנית דורשת יותר חיבורים מאשר הגדרה של זרוע אחת. אמת כל חיבור לפני הפעלת LeRobot - חסר חיבור באמצע הסשן משחית את הפרק.
זרוע לידר (Dynamixel XL330)
USB-C מזרוע מובילה למחשב המארח. זרוע זו מזיזה על ידי ידו של המפעיל. השתמש בכבל קצר (1 מ') כדי למנוע ניתוקים מקריים במהלך הטלאופ. לְאַמֵת: ls /dev/ttyACM0
זרוע עוקב (DM4340 + מתח)
USB-C מזרוע העוקבת למחשב המארח בתוספת ספק כוח DC. זרוע העוקבים דורשת מתח חיצוני - לעולם אל תפעל על כוח USB בלבד. לְאַמֵת: ls /dev/ttyACM1
מצלמת שורש כף היד (זרוע עוקב)
חבר מצלמת רשת USB למכשיר הקצה של זרוע העוקבים. זוהי מצלמת המניפולציה העיקרית. חיבור דרך USB 3.0. לְאַמֵת: ls /dev/video0
מצלמה עילית / סביבת עבודה
מצלמה קבועה מעל סביבת העבודה הדו-ידנית בגובה של ~70 ס"מ, בזווית של 30 מעלות למטה. לוכד את שתי הזרועות בו זמנית. יציאת USB 3.0 שנייה. לְאַמֵת: ls /dev/video2
קריטי: סנכרון דו-ידני. עם שתי זרועות ושתי מצלמות, סנכרון הוא גורם איכות הנתונים החשוב ביותר עבור ה-DK1. LeRobot חותמת את כל הזרמים משעון המחשב המארח. כדי למזער את הטיית חותמת הזמן: (1) השתמש בבקרי USB נפרדים עבור מצלמות וזרועות, (2) השתמש ברכזות USB 3.0 עם שעונים יציבים, (3) הגדר את מושל המעבד למצב ביצועים. יעד: <5 אלפיות השנייה הטיה בין כל ארבעת הזרמים. חוסר סנכרון של 10 אלפיות השנייה בין מצבי זרוע שמאל וימין עלול לגרום לכשלים באימון ACT במשימות עשירות במגע.
נוהל הקלטה של מנהיג/עוקב
בצע את השלבים הבאים עבור כל סשן הקלטה של DK1. להליך הדו-ידני יש כמה שלבים נוספים בהשוואה לאיסוף בזרוע אחת.
בדיקת בטיחות לפני הפגישה
נקה את מרחב העבודה המשותף בין שתי הזרועות (1.5 מ' × 1 מ'). ודא ששתי הזרועות מגיעות לסביבת העבודה המשותפת ללא התנגשות. בדוק E-stop לפני ההקלטה. לִרְאוֹת דף בטיחות.
חבר ואמת את שתי הזרועות
# Verify serial ports are available
ls /dev/ttyACM*
# Expected: /dev/ttyACM0 (leader) and /dev/ttyACM1 (follower)
# Quick connection test
python -m lerobot.scripts.control_robot \
--robot.type=bi_dk1_follower \
--robot.config=~/.lerobot/robots/dk1_bimanual.yaml \
--control.type=none
אמת עדכוני מצלמה
שתי המצלמות חייבות להיות זורמות לפני הפעלת LeRobot. מצלמה חסרה תפיק בשקט פרקים עם מסגרות תמונה אפסיות.
python3 -c "
import cv2
for i in [0, 2]:
cap = cv2.VideoCapture(i)
if cap.isOpened():
ret, frame = cap.read()
print(f'Camera {i}: OK ({frame.shape[1]}x{frame.shape[0]})')
else:
print(f'Camera {i}: FAILED')
cap.release()
"
הזז את הזרועות לעמדת ההתחלה
הזז ידנית את זרוע המנהיג לעמדת הטלאופ ההתחלתית. זרוע העוקבים תשקף אותו. החזק את זרוע המנהיג יציב למשך 2-3 שניות כדי לאשר סנכרון לפני תחילת תקופת החימום.
הגדר את סצנת המשימה
הנח חפצים בעמדות התחלה עקביות עבור שתי הזרועות. צלם את תצורת ההתחלה. עבור משימות דו-ידניות, סמן מיקומים מדויקים עם סרט - עקביות הסצנה היא אפילו קריטית יותר מכיוון ששני מסלולי הזרוע חייבים להיות תואמים.
התחל הקלטה דו-ידנית של LeRobot
source ~/.venvs/dk1/bin/activate
python -m lerobot.scripts.control_robot \
--robot.type=bi_dk1_follower \
--robot.config=~/.lerobot/robots/dk1_bimanual.yaml \
--control.type=record \
--control.fps=30 \
--control.repo_id=your-username/dk1-bimanual-pick-place-v1 \
--control.num_episodes=50 \
--control.single_task="Pick up block with left arm, place in bin with right arm" \
--control.warmup_time_s=5 \
--control.reset_time_s=15
השתמש ארוך יותר reset_time_s עבור משימות דו-ידניות - איפוס שתי זרועות והסצנה לוקחת יותר זמן מאשר הגדרות של זרוע אחת.
סקירה והשמעה חוזרת של פרקים
לאחר כל אצווה של 10 פרקים, שידור חוזר וסקור לפני שתמשיך. שימו לב לתיאום זרועות - פיגור בין זרועות שמאל לימין יופיע כריצוד בתנועות של העוקב.
python -m lerobot.scripts.visualize_dataset \
--repo_id=your-username/dk1-bimanual-pick-place-v1 \
--episode_index=0
דחף אל HuggingFace Hub
huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/dk1-bimanual-pick-place-v1
תבנית ערכת נתונים של LeRobot עבור דו-ידנית (DK1)
סכימת הנתונים הדו-ידניים של DK1 מכפילה את שדות המצב המשותפים בהשוואה להקלטה בזרוע אחת. כל פרק מכיל תצפיות מסונכרנות מזרועות המנהיג והעוקבים יחד עם כל המצלמות.
מבנה ספריות
your-username/dk1-bimanual-pick-place-v1/
├── meta/
│ ├── info.json # Dataset metadata, fps, shapes, robot_type
│ ├── episodes.jsonl # Per-episode metadata (task, length, outcome)
│ └── stats.json # Min/max/mean/std for all fields
├── data/
│ └── chunk-000/
│ ├── episode_000000.parquet
│ └── ...
└── videos/
└── chunk-000/
├── observation.images.wrist_cam/
│ ├── episode_000000.mp4
│ └── ...
└── observation.images.overhead_cam/
└── ...
סכימת נתוני פרק (דו-ידנית)
רשימת רשימת איכות להדגמות דו-ידניות
למערכי נתונים דו-ידניים יש דרישות איכות מחמירות יותר מנתונים עם זרוע אחת. תיאום לקוי בין זרועות הוא הגורם המוביל לכישלון אימון מדיניות DK1.
-
1דלתא סנכרון זרוע היא מתחת ל-10 אלפיות השנייה בדוק את
arm_sync_delta_msשדה בכל פרק. קוצים מעל 10 אלפיות השנייה מצביעים על מחלוקת באוטובוס USB או על חבילה טורית שנפלה. מחק פרקים עם דלתות גבוהות מתמשכות. -
2אין תנודת זרוע עוקב במהלך מגע סקור את מסלולי זרועות העוקבים בנקודות מגע (אחיזה, מסירה, מיקום). תנודה מופיעה כרעש בתדר גבוה בפנים
observation.state. הפחת רווחי PD אם קיימים. לִרְאוֹת פתרון תקלות תוכנה. -
3שתי הזרועות משלימות את המשימה באותו פרק עבור משימות דו-ידניות, פרק תקף רק אם שתי הזרועות משלימות את המשימות המשנה שהוקצו להן. אם הזרוע השמאלית הצליחה אך הזרוע הימנית שמטה את האובייקט, סמן את הפרק ככשל ומחק או ציין אותו.
-
4לא חסרות מסגרות מצלמה שני זרמי המצלמה חייבים לכלול את המספר הצפוי של פריימים. פריימים חסרים משתי המצלמות משחיתות את הקלט של המדיניות הוויזו-מוטורית. תבדוק עם
lerobot.scripts.visualize_dataset. -
5סצנת המשימות אופסה באופן זהה בין הפרקים יש לאפס את סביבת העבודה של שתי הזרועות עבור כל פרק. מיקום האובייקט, תצורת תחילת הזרוע וזוויות המצלמה חייבות להתאים. השתמש בתצורת ההתחלה המצולמת בתור התייחסות.
-
6אורך הפרק עקבי כל הפרקים המוצלחים צריכים להיות בטווח של ±25% מהאורך החציוני. למשימות דו-ידניות לרוב יש שונות גבוהה יותר ממשימות בזרוע אחת, אך יש לבטל חריגים קיצוניים (3× חציון).
-
7הנתונים הסטטיסטיים של מערכי הנתונים הם סימטריים עבור שתי הזרועות ב
meta/stats.json, בדוק את זהaction_leftוaction_rightנתונים סטטיסטיים סבירים עבור גיאומטריית המשימה שלך. אם זרוע אחת מראה אפס שונות, הזרוע הזו לא זזה - בדוק הקצאות יציאה. -
8סגנון הדגמת הטלאופ עקבי כל ההדגמות צריכות להשתמש באותו נתיב גישה, אסטרטגיית אחיזה וטכניקת מסירה. אסטרטגיות מעורבות מייצרות הפצות פעולה רב-מודאליות המבלבלות את אימון ה-ACT. השתמש באופרטור יחיד לכל גרסת משימה.
אימון ACT על מערך הנתונים הדו-ידני שלך
לאחר שהמערך שלך יעבור את רשימת הבדיקה האיכותית, אמן את ACT או Diffusion Policy ישירות עם LeRobot. ACT מומלץ למשימות דו-ידניות של DK1 - חיזוי הפעולה הנתח שלו מטפל בתיאום בין זרועות טוב יותר מאשר מדיניות חד-שלבית.
רכבת ACT (מומלץ לדו-ידנית)
python -m lerobot.scripts.train \
--policy.type=act \
--dataset.repo_id=your-username/dk1-bimanual-pick-place-v1 \
--policy.chunk_size=100 \
--policy.n_action_steps=100 \
--training.num_epochs=5000 \
--training.batch_size=8 \
--output_dir=outputs/dk1-act-bimanual
מדיניות פיזור רכבת (למשימות עשירות באנשי קשר)
python -m lerobot.scripts.train \
--policy.type=diffusion \
--dataset.repo_id=your-username/dk1-bimanual-pick-place-v1 \
--training.num_epochs=8000 \
--output_dir=outputs/dk1-diffusion-bimanual
תעמיק יותר: קרא את המלא סקירת צינור איסוף נתונים בספריית הרובוטיקה לטיפול יסודי במבנה הפרק, עיבוד גרסאות של מערך נתונים, אסטרטגיות סנכרון והרכב מערכי נתונים דו ידני רב משימות.