איסוף נתונים
הקלט לחץ מגע לצד מצב מפרק הרובוט ווידאו מצלמה. הכפפה מוסיפה אופנת מישוש הלוכדת כמה קשה תפס הרובוט לוחץ - מידע בלתי נראה לראייה בלבד.
חיבורי מערכת
חבר את כל המכשירים לפני הפעלת תוכנה כלשהי. הכפפה מחווטת USB אך ורק - אין מצב אלחוטי.
רובוט זרוע + יד
Orca Hand (מומלץ) או גורם קצה אחר. מחובר באמצעות מתאם USB או CAN של Feetech, תלוי בזרוע.
/dev/ttyUSB0 or CAN0כפפת Juqiao
USB-C למחשב מארח. מופיע כסדרה CDC-ACM. כבל 1.5 מ'; השתמש בתוספת USB במידת הצורך לחופש תנועה.
/dev/ttyACM0מצלמת פרק כף היד
מצלמת USB או GigE מותקנת על פרק כף היד של הרובוט, ומספקת תצוגה ממוקדת עצמים לאימון.
/dev/video0 or GigE IPמצלמה עילית
מצלמת סביבת עבודה קבועה להקשר של סצנה. התאם עם מצלמת שורש כף היד עבור מערכי נתונים מרובים.
/dev/video2 or GigE IPמכשיר טלאופרציה
זרוע מנהיג (SO-101 / OpenArm leader), בקר VR, או SpaceMouse שמניעים את הרובוט העוקב.
נמל לידר / HIDהקלטה שלב אחר שלב
הרם את הזרוע והיד של הרובוט
הפעל את נהג הזרוע (והנהג של Orca Hand אם רלוונטי) בטרמינלים נפרדים. ודא ש-joint_states מתפרסמים לפני שתמשיך.
הפעל את מנהל ההתקן של Juqiao Glove
הפעל את צומת ROS2 של הכפפה. ודא שנתוני 200 הרץ זורמים לפני תחילת כל סשן הקלטה.
הפעל מצלמות
התחל צמתי מצלמה עבור תצוגות פרק כף היד וראש. ודא שנושאי תמונה מתפרסמים בקצב פריימים יעד (בדרך כלל 30 פריימים לשנייה).
ודא שכל הזרמים מסונכרנים
לְהִשְׁתַמֵשׁ רשימת נושאים של ros2 כדי לוודא שכל הנושאים הנדרשים קיימים. בדוק שחותמות הזמן נמצאות בטווח של 20 אלפיות השנייה בכל השיטות לפני הקלטת פרקים כלשהם.
הקלט מערך נתונים עם LeRobot
השתמש בסקריפט הרשומה של LeRobot. ה --נושא מישוש הדגל מוסיף את זרם לחץ הכפפות כעמודת נתונים לצד מצבים ותמונות משותפים.
סקור פרקים לפני שדוחפים
הפעל מחדש כל פרק עם שכבת העל של מפת החום כדי לאמת את איכות הנתונים המישוש לפני התחייבות ל-HuggingFace Hub.
דחף אל HuggingFace Hub
העלה את מערך הנתונים המאומת. כרטיס מערך הנתונים נוצר אוטומטית עם תיאורי אופנים כולל מישוש.
סכימת ערכת נתונים
כל מסגרת במערך הנתונים מכילה את העמודות הבאות. כל המערכים מאוחסנים כעמודי float32 פרקט; תמונות כרצפי וידאו MP4.
| עַמוּדָה | צורה / סוג | תֵאוּר |
|---|---|---|
| תצפית.מצב | float32[6] | עמדות מפרקי זרוע הרובוט (רדיאנים). אינדקס 6 הוא צמצם תפס אם משתמשים בזרוע 6-DOF. |
| observation.hand_state | float32[17] | עמדות משותף של יד אורקה (רדיאנים), 17 DOF. להשמיט אם אין יד מיומנת. מסומן לפי שם משותף במטא נתונים. |
| observation.tactile_pressures | float32[64] | Juqiao Glove לחץ מנורמל לצומת, 0.0 (ללא מגע) עד 1.0 (קנה מידה מלא). 200 הרץ מופחת כדי להתאים לקצב פריימים של רובוט. |
| observation.tactile_pressures_raw | uint16[64] | ערכי ADC גולמיים של 16 סיביות. שמור לנורמליזציה מחדש לאחר כיול מחדש. אופציונלי; להשמיט כדי להקטין את גודל הנתונים. |
| observation.grasp_region | str | היוריסטיקה של אזור מגע פעיל: "כַּף הַיָד", "אֲגוּדָל", "מַדָד", "אֶמצַע", "טַבַּעַת", "זרת", או "" (אין קשר). |
| תצפית.תמונות.פרק כף היד | uint8[H, W, 3] | מסגרת RGB של מצלמת שורש כף היד במהירות 30 פריימים לשנייה, מאוחסנת כרצף וידאו MP4. |
| תצפית.תמונות.מעל | uint8[H, W, 3] | מסגרת RGB של מצלמה עילית במהירות 30 פריימים לשנייה. |
| פְּעוּלָה | float32[6 או 23] | כוון למנחי מפרקים עבור הזרוע (6) ובאופן אופציונלי יד (17). הצורה תלויה אם קיימת יד מיומנת. |
| הוראת_שפה | str | תיאור משימה, למשל. "להרים את הביצה מבלי לשבור אותה". מאפשר הדרכת מדיניות מותנית בשפה. |
| episode_index | int | מספר פרק בתוך מערך הנתונים. |
| frame_index | int | מספר פריים בתוך הפרק (אינדקס 0). |
| חותמת זמן | לצוף64 | שניות חלפו מאז תחילת הפרק. |
הורדת דגימה במישוש
הכפפה זורמת ב-200 הרץ; הרובוט והמצלמות פועלים בדרך כלל במהירות 30-100 הרץ. המקליט מיישר מסגרות באמצעות התאמת חותמת הזמן של השכן הקרוב ביותר. כדי לשמר את זרם המישוש המלא של 200 הרץ כמערך נפרד:
רשימת איכות פרק
סקור כל פרק לפי הקריטריונים האלה לפני הכללתו במערך הנתונים שלך. פרק רע אחד יכול להציג דפוסי מישוש מזויפים המשפילים את הכשרת המדיניות.
-
זרם המישוש הוא רציף - אין פערי מסגרת לְאַמֵת frame.sequence מרווחים ללא דילוגים. טיפות מסגרת מופיעות כערכים חוזרים בעמודת המישוש.
-
קו הבסיס במנוחה קרוב לאפס (<0.03) בתחילת הפרק (לפני כל מגע), צומת הלחץ המקסימלי צריך להיות מתחת ל-0.03. סחף מעל 0.05 במנוחה מציין שהכפפה זקוקה לכיול מחדש.
-
אירועי אנשי קשר מתיישבים עם האחיזה הנראית לעין בסרטון משחק חוזר עם --שכבה-מישוש. קוצים בלחץ (צומת מרבי > 0.4) צריכים לחפוף עם סגירת האחיזה הנראית לעין במצלמת פרק כף היד.
-
אזור האחיזה עקבי בשלב המגע תפיסה_אזור צריך להתייצב על אזור אחד או שניים במהלך כל אחיזה (למשל. "כַּף הַיָד" + "מַדָד"). אזורים המשתנים במהירות מעידים על חוסר יישור כפפה או אות רועש.
-
חביון כפפה < 20 אלפיות השנייה ביחס למצב הרובוט השווה את התחלת אירוע מישוש לשיא מהירות התפסן. חביון > 20 אלפיות השנייה מציע גודש ברכזת USB - חבר את הכפפה ישירות ליציאת USB מארח.
-
הוראת השפה תואמת את המשימה שהודגמה עבור מערכי נתונים מותנים בשפה, ודא שההוראה שהוזנה בתחילת הפרק מתארת במדויק את מה שהמפעיל הוכיח בפועל.
-
אין הפרעות כבל לתנועת רובוט אסור לכבל USB באורך 1.5 מ' להגביל את תנועות היד של המפעיל או לשלוף את הכפפה במהלך הפרק. השתמש בקליפס לניהול כבל על האמה.
אימון עם תצפיות מישוש
מדיניות שצורכת קלט מישוש בדרך כלל רואה שיפור של 15-30% במשימות רגישות למגע (טיפול באובייקט שביר, הכנסת יתדות, קיפול בד) בהשוואה לקווי בסיס של ראייה בלבד.