sensor.calibrate() עם האוחז פתוח ופרוק. זה מאפס את המגע העצמי של האצבע ואת מתח הכבלים. כיול מחדש אם הזרוע ממוקמת מחדש באופן משמעותי.
הקלטת הפגנות מישוש
נתונים מישוש הם האופציה החסרה ברוב מערכי הלמידה של רובוטים. דף זה מסביר מדוע זה חשוב, כיצד להקליט זרמים מסונכרנים של מישוש + זרוע + מצלמה, פורמט מערך הנתונים המורחב וכיצד לאמן מדיניות המשתמשת בקלט מישוש.
מדוע נתונים מישוש משפרים את למידת הרובוטים
חזון אומר מדיניות אֵיפֹה התפסן הוא. פרופריוספציה אומרת את זה מַה הַמִרְחָק האצבעות סגורות. אף אחד לא מספר את זה האם האחיזה יציבה. מדיניות המאומנת על חזון + נתונים משותפים בלבד חייבת ללמוד להסיק את איכות התפיסה בעקיפין - מתנועת אובייקט, מגבלות כוח זרוע או ניסוי וטעייה במהלך ההפצה. הוספת חישה מישוש מספקת פיקוח של מצב מגע ישיר: המדיניות מקבלת אות אמת המבדיל בין אחיזה בטוחה לזו המועדת להחלקה בכל שלב של כל הפגנה. זה משפיע במיוחד על אובייקטים הניתנים לעיוות, שקוף או בגדלים משתנים, שבהם הערכת איכות התפיסה החזותית אינה אמינה.
הגדרת חומרה להקלטה מסונכרנת
מתקן הקלטה רב-מודאלי מלא דורש שלוש שכבות חומרה, כולן מסונכרנות לשעון משותף:
- זרוע רובוט - מספק מיקומי מפרקים, מהירויות ותנוחת קצה של 100-500 הרץ באמצעות USB או Ethernet. השתמש ב-API של חותמת הזמן של ה-SDK של הזרוע, לא בזמן המערכת, כדי לקבל מצב משותף עם חותמת חומרה.
- חיישני Paxini Gen3 - מחובר לרכזת USB מופעלת המותקן על פרק כף היד של הרובוט. כל מסגרת מסומנת על ידי המחשב המארח בזמן הפסקת USB (רזולוציה של ננו-שניות, ריצוד של <0.5 אלפיות השנייה).
- מַצלֵמָה - מצלמה אחת מותקנת בפרק כף היד (אופציונלי: מצלמה עילית אחת). השתמש במצלמת USB או GigE עם סנכרון טריגר חומרה, או מצלמה מופעלת על ידי תוכנה עם זמן אחזור ידוע. הקלט במהירות 30-60 פריימים לשנייה.
כל שלושת המקורות כותבים חותמות זמן באמצעות אותו שעון מארח מונוטוני. ה-SDK של הפלטפורמה מקליט ריבוי מקורים מיישר מסגרות בזמן שלאחר העיבוד באמצעות אינטרפולציה של חותמת זמן.
פורמט ערכת נתונים - סכמת LeRobot מורחבת
צינור איסוף הנתונים של Paxini Gen3 מרחיב את פורמט הנתונים הסטנדרטי של LeRobot HDF5 עם ערוצים מישוש נוספים. הכלים הקיימים של LeRobot (טעינת נתונים, הדמיה, הדרכת מדיניות) נשארים תואמים לחלוטין - המפתחות החדשים פשוט מתעלמים מצינורות שאינם משתמשים בהם.
| מפתח HDF5 | צוּרָה | מָקוֹר |
|---|---|---|
| תצפית.מצב | (ת, 7) | עמדות מפרקי הזרוע + רוחב האחיזה |
| תצפית.תמונות.פרק כף היד | (T, H, W, 3) | מצלמת שורש כף היד (uint8 RGB) |
| פְּעוּלָה | (ת, 7) | יעד עמדות מפרקים + פקודת תפסן |
| observation.tactile.pressure_map | (T, 8, 8) | מערך לחץ Paxini Gen3 (kPa, float32) |
| observation.tactile.total_force_n | (ט,) | סך הכוח הנורמלי לכל מסגרת (ניוטון) |
| observation.tactile.in_contact | (ט,) | דגל איש קשר בוליאני לכל מסגרת |
| observation.tactile.contact_centroid | (ת, 2) | מרכז קשר (שורה, קול) לכל מסגרת |
| meta/timestamps_ns | (ט,) | חותמות זמן של ננו-שניות עבור כל הערוצים |
מקשי מישוש חדשים מודגשים. כל שאר המפתחות פועלים לפי סכימת LeRobot הסטנדרטית.
רשימת איכות לנתונים מישוש
in_contact הקצה העולה צריך לעלות בקנה אחד עם הרגע הנראה לעין של מגע קצה אצבע עם אובייקט בהזנת המצלמה. פיגור של יותר מ-20 אלפיות השנייה מציין בעיה ביישור חותמת זמן.
paxini.annotate.flag_slip_events(episode) כדי לסמן אותם באופן אוטומטי לבדיקה.
pressure_map.max() מגיע ל-600 kPa בכל פרק, החיישן רווי. הפחת את כוח האחיזה או השתמש בגרסה של כף היד (לחץ שיא נמוך יותר לכל טקסל) לאחיזה כבדה יותר.
אימון מדיניות עם תשומות מישוש
כדי להוסיף מישוש כאופן תצפית ב-ACT או ב-Diffusion Policy, הרחב את תצורת התצפית כך שתכלול את מפת הלחץ או הסקלר המצטבר (total_force_n). מפת הלחץ מספקת מידע מרחבי מלא אך מוסיפה 64 מצופים לכל פריים לכל חיישן; הסקלר קל יותר לשילוב ומספיק למשימות איכות אחיזה בינארית.
להדרכה המלאה של ההדרכה - כולל כיצד לחשב סטטיסטיקות נורמליזציה מהמערך המוקלט שלך ולהעריך מול קו בסיס של ראייה בלבד - ראה מסלול למידה יחידה 5.
להקשר רחב יותר על אסטרטגיות איסוף נתוני ידיים מיומנות, ראה את מדריך ידיים מיומנות.