איסוף נתונים

הקלטת נתוני מניפולציה מיומנת עם Orca Hand שונה מהותית מאיסוף נתוני תפסן פשוט - 17 מפרקי אצבעות, זרמי מישוש אופציונליים והפעלה טלפונית של כפפות כולם דורשים סנכרון קפדני. מדריך זה מכסה את זרימת העבודה המלאה.

לפני ההקלטה

הגדרת חומרה לאיסוף נתונים מיומן

מערך ההקלטה של ​​Orca Hand כולל יותר זרמים מאשר זרוע אחיזה פשוטה - מפרקי אצבעות, מישוש אופציונלי, מצלמות ומפרקי זרוע כולם צריכים להיות מסונכרנים.

🕐

Orca Hand (טורי USB)

מצב אצבע 17-DOF עד 100 הרץ. לְאַמֵת: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"

🤸

מכשיר טלאופרציה

Juqiao Glove (מומלץ) או מעקב יד VR. תנוחות של מפעיל מפות למטרות משותפות של Orca Hand בזמן אמת.

📷

מצלמת כף היד/שורש כף היד

מצלמת USB קטנה בתוך כף היד מפנה אל קצות האצבעות והאובייקט. קריטי למשימות עשירות במגע, שבהן מגע עם אובייקט אצבע קובע את הצלחת התפיסה.

📈

חיישני מישוש (אופציונלי)

Paxini או חיישני קצות אצבעות תואמים. חיבור USB נפרד. הוסף את זרם כוח אנשי הקשר למערך הנתונים שלך להכשרת מדיניות מונחית אנשי קשר.

זרימת עבודה של הקלטה

תהליך הקלטה שלב אחר שלב

1

הרם זרוע + יד + כפפה

# Terminal 1: Arm (if using OpenArm)
source ~/openarm_ws/install/setup.bash
ros2 launch openarm_ros2 openarm.launch.py use_fake_hardware:=false can_interface:=can0

# Terminal 2: Orca Hand
source ~/orca_ws/install/setup.bash
ros2 launch orca_ros2 orca_hand.launch.py port:=/dev/ttyUSB0 handedness:=right

# Terminal 3: Juqiao Glove (see Juqiao Glove software page)
python -m juqiao_glove.stream --port /dev/ttyUSB1
2

ודא שכל הסטרימינג בשידור חי

# Check finger joint states
ros2 topic hz /orca_hand/joint_states   # expect ~100 Hz

# Check glove stream
ros2 topic hz /juqiao_glove/finger_angles   # expect ~100 Hz

# Check camera
python -c "import cv2; cap=cv2.VideoCapture(0); print('Camera OK:', cap.isOpened())"
3

כייל מיפוי כפפה ליד

הפעל את כיול הכפפות כדי למפות את מידות האצבעות שלך לטווח המפרקים של Orca Hand. שלב זה מבטיח פעולה טלפונית טבעית - היד הפתוחה שלך = אורקה פתוחה, האגרוף שלך = אגרוף אורקה.

python -m orca_core.scripts.calibrate_teleop \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --handedness right
4

הגדר את סצנת המשימה

הצב אובייקטים בעמדות התחלה עקביות. אחיזה מיומנת היא רגישה מאוד לתנוחת האובייקט - השתמש בקיבוע (סרט, שפכטל) כדי לשמור על מיקום אובייקט עקבי לאורך פרקים.

5

התחל את הפעלת ההקלטה

python -m orca_core.scripts.record_episodes \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --camera_id 0 \
  --fps 30 \
  --output_dir ~/datasets/orca-grasp-v1 \
  --num_episodes 50 \
  --task "Pick up the pen using a precision pinch grasp"

המקליט שומר מיקומי מפרקי אצבע מסונכרנים, זוויות כפפות, מסגרות מצלמה ו(אם מחובר) קריאות מישוש במערך נתונים של פרקט.

6

סקירת איכות אחיזה

שידור חוזר של כל פרק. חפשו: אירועי החלקה (קפיצות עמדה פתאומיות), אחיזים לא שלמים, רוויון גידים (מפרק בגבול קשה בזמן אחיזה), נתיבי גישה לא עקביים.

python -m orca_core.scripts.visualize_episode \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --episode_index 0
7

דחף אל HuggingFace Hub

python -m orca_core.scripts.push_dataset \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --repo_id your-username/orca-grasp-v1
פורמט ערכת נתונים

Orca Hand Dataset Schema

פורמט הנתונים של Orca Hand מרחיב את סכימת LeRobot הסטנדרטית עם זרמים נוספים ספציפיים לאצבע ולמישוש.

שדות בכל פרק קובץ פרקט
observation.hand_state float32[17] כל 17 מצבי מפרקי האצבעות במעלות
observation.hand_velocity float32[17] מהירויות מפרקי האצבעות בדרגות/שניות
תצפית.מישוש float32[5] כוח מגע לכל קצה אצבע ב-N (אם חיישני מישוש מחוברים)
תצפית.תמונות.* נתיב וידאו מסגרות מצלמה - תצוגת כף היד, תצוגת פרק כף היד, תצוגת סביבת עבודה
פְּעוּלָה float32[17] כוון למנחי מפרקי האצבעות מניתוח טלפון של הכפפה
תפיסה_סוג חוּט תווית עבור פרימיטיבי האחיזה שבו נעשה שימוש (למשל, "צביטה_דיוק", "תפיסת_כוח")
חותמת זמן לצוף64 חותמת זמן של יוניקס בשניות
הבא.בוצע bool נכון בפריים האחרון של כל פרק
אבטחת איכות

רשימת איכות נתונים מיומנת

לנתוני מניפולציה מיומנים יש יותר מצבי כשל מאשר בחירה ומקום פשוט. רץ דרך זה לפני שאתה דוחף לרכזת.

  • 1
    לכל 17 המפרקים יש קריאות מיקום תקפות לאורך הפרק ערכים NaN או תקועים מצביעים על נשירת סרוו. לִבדוֹק observation.hand_state לערכים קבועים בכל מפרק על פני כל המסגרות.
  • 2
    זמן האחזור של כפפה ליד הוא מתחת ל-20ms בדוק את יישור חותמת הזמן בין action (מכפפה) ו observation.hand_state. זמן אחזור גבוה גורם למדיניות ללמוד מצמדים לא עקביים.
  • 3
    סוג האחיזה עקבי בתוך משימה מדיניות של צביטה מדויקת לא תכליל אם חלק מההפגנות השתמשו באחיזת כוח. שמור כל מערך נתונים לאסטרטגיית אחיזה ראשית אחת, או תווית לפי סוג אחיזה.
  • 4
    אירועי קשר גלויים בעמדות משותפות כאשר היד יוצרת מגע עם חפץ, מפרקי האצבעות צריכים להראות האטה ברורה והסטת ציות. פרקים שבהם האצבעות נצמדות למיקום ללא עיוות מגע עלולים להחמיץ את האחיזה.
  • 5
    מצלמת פאלם מציגה אובייקט במהלך כל שלב המניפולציה האובייקט חייב להיות גלוי במצלמת כף היד מהגישה לשחרור. בדוק שתושבת המצלמה לא נחבטה ושה-FOV מכסה את סביבת העבודה של המשימה.
  • 6
    לזרמים מישוש יש אירועי מגע היכן שצפויים במהלך אחיזת צביטה, גם האגודל וגם מישוש המדד צריכים להראות עלייה בכוח. אותות כוח חסרים במהלך מגע מאושר מעידים על חיישן מנותק או מכויל שגוי.

ערכת נתונים מוכנה? התחל אימון.

דחוף את מערך הנתונים של המניפולציה המיומנות שלך אל HuggingFace וחקור מודלים תואמים.