מה תשיג

בסוף יחידה זו תהיה לך סביבה וירטואלית Python עם ה-OpenArm SDK מותקן, והפעלת סקריפט בדיקה בן 5 שורות תחזור True מִן arm.ping(). האישור הזה אומר לקוד ה-Python שלך יש ערוץ תקשורת חי לזרוע - שהוא הבסיס שעליו מתבסס הכל ביחידות 3-6.

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

התקן את ה-SDK

עבוד דרך ה מדריך התקנת תוכנה להתקנת SDK מלאה. הגרסה הקצרה:

# Create an isolated environment for this path python3 -m venv ~/openarm-env מקור ~/openarm-env/bin/activate # Install the SDK and its dependencies pip להתקין זרוע פתוחה-sdk lerobot לפיד לפיד

ההתקנה אורכת 5-15 דקות בהתאם לחיבור האינטרנט שלך. ה torch ו lerobot החבילות גדולות אבל תזדקק להן ביחידות 4 ו-5, אז התקן אותן עכשיו.

בדיקת חיבור מהיר לפייתון

כאשר ROS 2 פועל (מיחידה 1) והסביבה הוירטואלית שלך מופעלת, הפעל את הבדיקה הזו. זוהי הדרך המהירה ביותר לוודא שהמחסנית המלאה שלך עובדת מקצה לקצה:

# Make sure ROS 2 is running first (from a separate terminal) # source ~/openarm_ws/install/setup.bash && ros2 launch openarm_bringup real.launch.py מ-openarm ייבוא OpenArm arm = OpenArm() # connects via ROS 2 action server print(arm.ping()) # should print: True print(arm.get_joints()) # should print: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] arm.close()

אִם arm.ping() מחזיר True ו arm.get_joints() מחזירה את זוויות המפרק הנוכחיות, סיימת. עבור לסעיף פתרון בעיות רק אם אתה רואה שגיאות.

פתרון בעיות: 3 שגיאות החיבור הנפוצות ביותר

שגיאה 1: ConnectionRefusedError או פסק זמן מופעל OpenArm()

ROS 2 אינו פועל או ששרת הפעולה עדיין לא הופעל. תבדוק את זה ros2 node list מופעים /openarm_controller. אם לא, חזור למסוף ROS 2 שלך ואשר שההשקה הושלמה ללא שגיאות. גורם משנה שכיח: שכחת לספק את סביבת העבודה שלך לפני ההשקה - ראה יחידה 1, שלב 2 קריטי.

שגיאה 2: can0: Network is down בטרמינל ROS 2

ממשק SocketCAN ירד. זה קורה אם ניתקת וחיברת מחדש את מתאם ה-USB-CAN מבלי להפעיל מחדש את ip link set פְּקוּדָה. לָרוּץ sudo ip link set can0 up type can bitrate 1000000, ולאחר מכן הפעל מחדש את השקת ROS 2. הוסף פקודה זו לסקריפט אתחול כך שיפעל אוטומטית באתחול: sudo nano /etc/network/interfaces.d/can0.

שגיאה 3: arm.get_joints() מחזיר את כל האפסים גם כאשר הזרוע לא מאושרת

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

יחידה 2 השלם כאשר...

arm.ping() מחזיר True במסוף Python שלך. סקריפט הבדיקה פועל ללא שגיאות מתחילתו ועד סופו. אתה יכול לראות את ערכי זווית המפרק משתנים בזמן אמת כאשר אתה מזיז פיזית את הזרוע תוך כדי arm.get_joints() מושאל בלולאה. אתה מוכן ליחידה 3.