איסוף נתונים
ה-VLAI L1 בנוי לאיסוף נתונים בקנה מידה גדול של פעולות טלפוניה. צינור ההקלטה בלחיצה אחת, סנכרון זרוע כפולה וטלאופ VR מובנה הופכים אותו לנתיב המהיר ביותר ממסירת רובוט למערך נתונים מוכן לאימון.
הקלטת VR דו-ידנית
חבר ואמת את כל המערכות
rc connect --device l1 --host 192.168.1.45
rc status # check: arms, base, cameras, battery all green
העבר את L1 למצב הקלטה
הסע את ה-L1 אל סביבת העבודה של המשימה באמצעות WASD בחלונית הדפדפן. הגדר את גובה ההרמה עבור המשימה (לדוגמה, 130 ס"מ עבור מניפולציה על השולחן). החנה אותו ונעל את הגלגלים.
rc teleop --device l1 # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
הגדר את סצנת המשימה ואת המצלמות
הצב אובייקטים של משימה בעמדות התחלה עקביות. אמת תצוגות מצלמה בחלונית הדפדפן - גם מצלמות שורש כף היד (מקס מפתחות) וכל מצלמות חיצוניות צריכות לכסות את סביבת העבודה של המשימה.
התחל את ההקלטה דרך CLI
rc record \
--device l1 \
--task "Pick up the bottle and pour into the glass" \
--num_episodes 50 \
--output ~/datasets/l1-pour-v1 \
--teleop_mode vr # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
סקירת פרקים
rc replay \
--dataset ~/datasets/l1-pour-v1 \
--episode 0
הצופה מציג את כל זרמי המצלמה + סדרות זמן של מצבים משותפים מסונכרנים. מחק פרקים גרועים לפני הדחיפה.
דחף אל HuggingFace Hub
huggingface-cli login
rc push_dataset \
--dataset ~/datasets/l1-pour-v1 \
--repo_id your-username/l1-pour-v1
סכימת ערכת נתונים L1
צינור ההקלטה L1 מייצר מערך נתונים רב-מודאלי עם שתי הזרועות, הבסיס הנייד, כל המצלמות והערות שפה אופציונליות.
רשימת רשימת איכות
ה-VR Teleop של ה-L1 יכול להציג בעיות ייחודיות של איכות נתונים סביב חביון ותיאום דו-ידני. רץ דרך זה לפני שאתה דוחף לרכזת.
-
1זמן האחזור של VR היה מתחת ל-50ms במהלך ההקלטה בדוק את צג האחזור בלוח הדפדפן במהלך ההקלטה. מעל 50ms, תנועות היד של המפעיל מפגרות את פעולות הרובוט, מה שיוצר חוסר התאמה סיבתי במערך הנתונים. הקלט מחדש בערוץ WiFi עם זמן אחזור נמוך יותר במידת הצורך.
-
2שתי הזרועות זזו כמתוכנן (ללא פרקים בזרוע אחת) עבור משימות דו-ידניות, ודא ששתי הזרועות מציגות תנועה משמעותית פנימה
observation.left_arm_stateוobservation.right_arm_state. אפיזודות דומיננטיות בזרוע אחת עשויות להצביע על יד אחת המועדפת על המפעיל. -
3הבסיס הנייד היה נייח במהלך מניפולציה בזרוע אלא אם כן אתה מקליט משימות מניפולציה ניידות,
observation.base_stateצריך להיות כמעט קבוע בכל פרק. תנועת בסיס במהלך מניפולציה גורמת לתזוזה של סביבת העבודה ביחס למצלמות. -
4כל זרמי המצלמה נוכחים לפרק המלא רוחב הפס של ה-WiFi של ה-L1 עלול להפיל מסגרות תחת עומס. לָרוּץ
rc validate_dataset --dataset ~/datasets/l1-pour-v1כדי לבדוק אם חסרים פריימים בכל זרמי המצלמה. -
5הוראת השפה תואמת את מה שהודגם הוראת השפה מוגדרת לפני תחילת ההקלטה. אם המפעיל אילתר גישה אחרת (למשל, השתמש בזרוע אחת במקום בשתיים), עדכן את ההוראה או מחק את הפרק.
הכשרת VLA מתוך מערך הנתונים שלך
ברגע שמערך הנתונים שלך נמצא ב- HuggingFace Hub, כוונן עדין VLA עם מרחב הפעולה L1.
כוונן את OpenVLA בנתוני L1
pip install roboticscenter[vla]
python -m roboticscenter.scripts.finetune_vla \
--model openvla/openvla-7b \
--dataset your-username/l1-pour-v1 \
--action_space l1_bimanual \ # registers the 16-DOF bimanual action head
--epochs 50 \
--output_dir outputs/openvla-l1-pour
פריס VLA מכוון במכשיר (Developer Pro/Max)
rc deploy vla \ --יציאות דגם/openvla-l1-pour \ --quantize int4 \ --מכשיר l1 \ --מארח 192.168.1.45 # הפעל את המדיניות: מדיניות הפעלת rc \ --משימה "להרים את הבקבוק ולמזוג לכוס" \ --max_steps 100