מדריך התקנה

מהעלאת אוטובוס CAN ועד פרק ראשון בהפעלה טלפונית. מכסה את piper_sdk, השקת ROS2 ו-Meta Quest 3 VR טלאופרציה.

1

הגדרת CAN Bus & Host

~15 דקות

ה-AgilX Piper מתקשר באופן בלעדי אוטובוס CAN במהירות 1 Mbps. אתה צריך מתאם USB ל-CAN (למשל, CANable, GS_USB) כדי לחשוף ממשק SocketCAN במארח הלינוקס שלך.

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

העלה את ממשק ה-CAN

חבר את מתאם ה-USB ל-CAN, ולאחר מכן הפעל:

# Set bitrate and bring up the CAN interface
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up

# Verify the interface is active
ifconfig can0
סקריפט הפעלה אוטומטי. ה piper_sdk המאגר כולל א can_activate.sh עוֹזֵר. הפעל אותו כ: bash can_activate.sh can0 1000000. זהו אותו סקריפט שבו השתמש piper_ros.
שם הממשק עשוי להשתנות אם יש לך מספר מתאמי USB ל-CAN מחוברים, הממשק עשוי להופיע כ can1, can2וכו' שימוש ip link show לרשום את כל ממשקי ה-CAN ולהעביר את השם הנכון C_PiperInterface.

תמיכה במערכת הפעלה

אובונטו 18.04, 20.04 ו-22.04 הן הפלטפורמות שנבדקו רשמית. נדרש Python 3.6+.

2

התקן את piper_sdk

~20 דקות

ה piper_sdk ספריית Python מטפלת במסגור CAN, משוב מצב משותף ובקרת תפסן. התקן מ- PyPI (מומלץ) או ממקור.

# Option A: Install from PyPI (recommended)
pip3 install piper_sdk

# Option B: Install from source
git clone https://github.com/agilexrobotics/piper_sdk.git
cd piper_sdk
pip install -e .

# Verify installation
python3 -c "import piper_sdk; print('piper_sdk OK')"

ה-SDK מותקן אוטומטית python-can כתלות עבור תקשורת CAN bus.

התחבר והפעל

ה C_PiperInterface הכיתה היא נקודת הכניסה העיקרית. לאחר החיבור, יש להפעיל את הזרוע לפני שהיא מקבלת פקודות תנועה. EnableArm(7) מאפשר את כל ששת המפרקים בתוספת התפסן.

from piper_sdk import C_PiperInterface

# Initialize with the CAN interface name (default: "can0")
piper = C_PiperInterface("can0")

# Connect to the arm
piper.ConnectPort()

# Enable all joints (required before motion commands)
piper.EnableArm(7)

print("Piper connected and enabled.")
תסריטי הדגמה. ה-SDK נשלח עם הדגמות מוכנות להפעלה piper_sdk/demo/V2/. התחל עם demo_joint_ctrl.py כדי לאמת תנועה בסיסית לפני בניית לולאת שליטה משלך.
3

תנועה ראשונה

~20 דקות

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

קרא מצב משותף

import time

# Read joint angles in a polling loop
for _ in range(10):
    joint_state = piper.GetArmJointMsgs()
    print(joint_state)
    time.sleep(0.1)

# Read end-effector pose
end_pose = piper.GetArmEndPoseMsgs()
print(end_pose)

שלח פקודת עמדה משותפת

# Move to a joint configuration (angles in degrees)
# Arguments: joint1, joint2, joint3, joint4, joint5, joint6
piper.MotionCtrl_2(
    0,      # joint 1
    0,      # joint 2
    90,     # joint 3
    0,      # joint 4
    0,      # joint 5
    0       # joint 6
)
time.sleep(2)  # wait for motion to complete

בקרת תפסן

# Open gripper
piper.GripperCtrl(0, 1000)

# Close gripper (check your gripper's max value)
piper.GripperCtrl(70, 1000)

# Read gripper state
gripper_state = piper.GetArmGripperMsgs()
print(gripper_state)
השבת בסיום השבת תמיד את הזרוע עם piper.DisableArm(7) כאשר סיים. זרוע מופעלת מגיבה מיד לכל פקודה - כולל פקודות שגויות מבאגים או מנות שנפלו.

הגדרה עם זרוע כפולה (מאסטר-עבד).

עבור תצורות דו-ידניות, חבר שני Pipers על ממשקי CAN נפרדים:

piper_left  = C_PiperInterface("can0")
piper_right = C_PiperInterface("can1")

piper_left.ConnectPort()
piper_right.ConnectPort()

piper_left.EnableArm(7)
piper_right.EnableArm(7)

print("Both arms connected.")
4

שילוב ROS2 / MoveIt

~60 דקות

ה piper_ros החבילה מספקת דרייבר מלא של ROS Noetic עם תכנון תנועה של MoveIt והדמיית Gazebo. זה עוטף piper_sdk באופן פנימי וחושף ממשקי ROS סטנדרטיים.

התקנת תלות

# Install required ROS packages
sudo apt-get install -y \
  ros-noetic-moveit \
  ros-noetic-ruckig \
  ros-noetic-ompl

# Install Python CAN dependency
pip3 install python-can piper_sdk

לְהַשִׁיק

# Step 1: Activate CAN interface
bash can_activate.sh can0 1000000

# Step 2: Launch the Piper control node
roslaunch piper start_single_piper.launch

# For dual-arm:
roslaunch piper start_double_piper.launch

תכנון MoveIt

# Launch MoveIt with RViz for interactive planning
roslaunch piper_moveit_config demo.launch

# Gazebo simulation (no physical arm required)
roslaunch piper piper_gazebo.launch
הערת קושחה. גרסאות קושחה לפני S-V1.6-3 דורשים את המורשת piper_description_old.urdf קוֹבֶץ. קושחה חדשה יותר משתמשת בתקן piper_description.urdf. בדוק את תווית גרסת הקושחה בבסיס הזרוע לפני טעינת דגמי ROS.

ראה את דף מפרט לטבלת הנושאים והשירותים המלאה של ROS.

5

Meta Quest 3 VR Teleoperation

~90 דקות

ניתן לשלוט בפייפר בזמן אמת באמצעות א Meta Quest 3 אוזניות. הארכיטקטורה משתמשת ב-UDP דרך הרשת המקומית שלך: ה-Quest מריץ אפליקציית Unity שמזרימה נתוני תנוחות ביד, ושרת Python במחשב הרובוט מתרגם את זה לפקודות Piper SDK.

אַדְרִיכָלוּת

Meta Quest 3 (Unity)
↓ UDP — יציאות 8888 / 8889
Python UDP Server (מחשב מארח)
piper_sdk → C_PiperInterface
AgileX Piper (אוטובוס CAN)

צד האחדות (VRHandPoseSender.cs, VRGripperController.cs, VRTeleoperationManager.cs) ושכבת UDP ניתנות לשימוש חוזר מלא מהגדרות xArm - יש להחליף רק את מודול בקר הרובוט.

שלבי הגדרה

  1. הפעל את ממשק ה-CAN והפעל את הזרוע.
    sudo ip link set can0 type can bitrate 1000000
    sudo ip link set can0 up
  2. צור א PiperController לְפָפָה C_PiperInterface. החלף את XArmController מחלקה במחסנית הטלאופרציה הקיימת שלך עם חדש piper_controller.py. ליישם connect(), set_pose(x, y, z, roll, pitch, yaw), set_gripper(value), ו emergency_stop() באמצעות קריאות piper_sdk.
  3. הפעל את שרת Python UDP במחשב הרובוט.
    python3 teleoperation_main.py --robot-type piper
    השרת מאזין ביציאות UDP 8888/8889 ומעביר מנות פוזת יד שהתקבלו ל-Piper.
  4. הפעל את אפליקציית Unity ב-Quest 3 והתחבר לכתובת ה-IP של המחשב האישי. לְהַתְאִים positionOffset, rotationOffset, ו scaleFactor ב-Unity כדי להתאים לסביבת העבודה של הפייפר. פרמטרים אלו שונים מ-xArm בשל מעטפת הטווח הקטן יותר של פייפר.
תיאום הבדלי מערכת סביבת העבודה של Piper קטנה מ-xArm. לְהַפחִית scaleFactor ב-Unity כדי למנוע מהזרוע לפגוע בגבולות המפרק במהלך ניתוח טלפוני. התחל בקנה מידה שמרני והגדל בהדרגה תוך מעקב אחר זוויות המפרק.
מדריך Quest 3 המלא. להוראות התקנה מלאות - התקנת אפליקציית Unity, התאמה למחשב וכיול מעקב יד - ראה Quest 3 VR Teleoperation Guide.
6

איסוף נתונים

מתמשך

ברגע שהטלאופרציה פועלת, השתמש בפלטפורמת SVRC כדי להקליט, לתווית ולייצא הדגמות מניפולציה.

  • הקלט פרקים בהפעלה מרחוק דרך שרת Python UDP או ישירות דרכו piper_ros הקלטת תיק
  • ייצא פנימה RLDS אוֹ LeRobot פורמט להכשרת מדיניות במורד הזרם
  • השתמש ב- פלטפורמת SVRC לנהל מערכי נתונים, להפעיל בדיקות איכות ולהכשיר מודלים של ACT או Diffusion Policy
עֵצָה. לְהִשְׁתַמֵשׁ piper.GetArmJointMsgs() ו piper.GetArmEndPoseMsgs() ב-~50 הרץ בשרשור רקע כדי ללכוד מצב מפרק ו-End-effector מסונכרן במהלך הפעלה טלפונית.
פתח את הפלטפורמה → ויקי מפתחים מלא →

זקוק לעזרה עם ההגדרה שלך?

הצוות שלנו זמין למפגשים מעשיים במתקן Mountain View, CA.