AgileX Piper
מפרט טכני
מפרט חומרה מלא, התייחסות לנושאי ROS2, סיכום API של piper_sdk ומדריך לפתרון בעיות.
מפרט מכני
| מפרט | עֵרֶך |
|---|---|
| דרגות חופש | 6 DOF + תפסן אופציונלי |
| לְהַגִיעַ | ~600 מ"מ |
| מטען מקסימלי | ~1.5 ק"ג |
| הֲדִירוּת | ±0.1 מ"מ |
| גורם צורה | שולחן קומפקטי/שולחן עבודה |
| רב זרועות | מאסטר-עבד בעל זרוע כפולה באמצעות ממשקי CAN נפרדים |
| יַצרָן | AgileX Robotics |
חשמל ותקשורת
| מפרט | עֵרֶך |
|---|---|
| ספק כוח | 24 V DC |
| תִקשׁוֹרֶת | CAN bus — 1,000,000 bps (1 Mbps) |
| ממשק מארח | מתאם USB ל-CAN (לדוגמה, CANable, GS_USB) |
| ממשק לינוקס | SocketCAN (can0, can1, …) |
תוכנה ובקרה
| מפרט | עֵרֶך |
|---|---|
| מצבי שליטה | תנוחת מפרק, תנוחת קצה, תפסן |
| Python SDK | pip3 install piper_sdk — agilexrobotics/piper_sdk |
| חבילת ROS | agilexrobotics/piper_ros (ROS Noetic + MoveIt) |
| הַדמָיָה | ביתן משם piper_gazebo.launch |
| URDF | piper_description.urdf (קושחה ≥ S-V1.6-3) |
| תמיכה במערכת ההפעלה | אובונטו 18.04, 20.04, 22.04 |
| גרסת פייתון | Python 3.6+ |
מגבלות משותפות
| מְשׁוּתָף | שלי (אתה) | מקסימום (אתה) |
|---|---|---|
| מפרק 1 | −175 | +175 |
| מפרק 2 | −90 | +135 |
| מפרק 3 | −150 | +80 |
| מפרק 4 | −175 | +175 |
| מפרק 5 | −90 | +90 |
| מפרק 6 | −175 | +175 |
נושאים ושירותים של ROS
נושאים ושירותים סטנדרטיים שנחשפו על ידי piper_ros לאחר ההשקה start_single_piper.launch.
| נושא / שירות | סוּג | כיוון | תֵאוּר |
|---|---|---|---|
/joint_states |
sensor_msgs/JointState | משנה (שלח פקודות) | פקודות מיקום משותף - הירשם כדי לשלוח מטרות תנועה לזרוע |
/arm_status |
piper_msgs/ArmStatus | פאב (משוב) | משוב מצב זרוע: מופעל/מושבת, דגלי שגיאה, מיקומי מפרקים נוכחיים |
/end_pose |
geometry_msgs/Pose | פאב (משוב) | משוב על תנוחת קצה במרחב קרטזיאני (מיקום + קווטרניון) |
/enable_srv |
std_srvs/SetBool | שֵׁרוּת | אפשר (true) או השבת (false) כל מפרקי הידיים |
/go_zero_srv |
std_srvs/טריגר | שֵׁרוּת | פקד על הזרוע לעבור למצב אפס/בית |
/gripper_srv |
piper_msgs/GripperCmd | שֵׁרוּת | הגדר את מיקום האוחז (0 = פתוח, מקסימום = סגור לחלוטין) |
/stop_srv |
std_srvs/טריגר | שֵׁרוּת | עצור מיד את כל תנועת המפרקים (עצירת חירום באמצעות ROS) |
/reset_srv |
std_srvs/טריגר | שֵׁרוּת | אפס שגיאות זרוע והפעל מחדש לאחר מצב תקלה |
API של piper_sdk
שיטות מפתח על C_PiperInterface מַחלָקָה. אתחול עם piper = C_PiperInterface("can0").
| שִׁיטָה | תֵאוּר |
|---|---|
ConnectPort() |
פתח את ממשק ה-CAN והתחל את שרשור התקשורת |
EnableArm(7) |
אפשר את כל 6 המפרקים והתפסן (מסכת סיביות; 7 = הכל) |
DisableArm(7) |
השבת את כל המפרקים - תמיד התקשר בסיום או לפני הניתוק |
EmergencyStop() |
עצור מיד את כל תנועת המפרקים |
MotionCtrl_2(j1, j2, j3, j4, j5, j6) |
שלח פקודת מיקום משותפת של 6-DOF (זוויות במעלות) |
GetArmJointMsgs() |
קרא את מיקומי המפרק הנוכחיים, המהירויות והמומנטים |
GetArmEndPoseMsgs() |
קרא את הפוזה הקרטזית הנוכחית של גורם הקצה |
GripperCtrl(position, speed) |
הגדר את מיקום האוחז (0 = פתוח) ואת המהירות |
GetArmGripperMsgs() |
קרא את מצב האוחז הנוכחי ואת משוב המיקום |
פתרון בעיות
| סִימפּטוֹם | סיבה סביר | לִקְבּוֹעַ |
|---|---|---|
OSError: [Errno 19] No such device |
ממשק CAN לא למעלה | לָרוּץ sudo ip link set can0 up ולאמת עם ifconfig can0 |
| זרוע לא מגיבה לפקודות | הזרוע לא במצב עבד או לא מופעלת | שִׂיחָה piper.EnableArm(7) לאחר החיבור. ודא שמגשר מצב עבדים מוגדר כהלכה על הזרוע. |
| משוב משותף קורא את כל האפסים | אי התאמה של קצב סיביות | ודא שקצב הסיביות של ממשק CAN הוא בדיוק 1000000. הפעל מחדש ip link set can0 type can bitrate 1000000. |
can.CanError: Failed to transmit |
אוטובוס CAN לא הסתיים | ודא שנגדי סיום של 120 אוהם קיימים בשני הקצוות של אפיק ה-CAN. אפשר את המחסל הפנימי של הפייפר באמצעות מתג DIP. |
| דגם רובוט URDF שגוי ב-RViz | אי התאמה לקושחה | קושחה < S-V1.6-3: שימוש piper_description_old.urdf. קושחה חדשה יותר: השתמש piper_description.urdf. |
| ההרשאה נדחתה ב-can0 | המשתמש לא נמצא dialout קְבוּצָה |
SocketCAN דורש בסיס או הרשאות מתאימות. הפעל פקודות עם sudo או להגדיר כללי udev. |
| טלאופ VR: הזרוע חורגת / פוגעת בגבולות | scaleFactor גבוה מדי באחדות |
לְהַפחִית scaleFactor באפליקציית Unity ובדוק מחדש בהדרגה. סביבת העבודה של Piper קטנה מ-xArm. |
מאגרי GitHub
| מאגר | תֵאוּר |
|---|---|
| agilexrobotics/piper_sdk | Python SDK הרשמי. לְהַתְקִין: pip3 install piper_sdk. כולל הדגמות, מפרט ממשק (INTERFACE_V2.MD), ומדריך בעל זרוע כפולה. |
| agilexrobotics/piper_ros | חבילת ROS Noetic עם MoveIt, הדמיית Gazebo, URDF ונושאים/שירותים סטנדרטיים של ROS. |