دليل الإعداد

من إحضار حافلة CAN إلى الحلقة الأولى التي تم بثها عن بعد. يغطي Piper_sdk، وإطلاق ROS2، والتشغيل عن بعد لـ Meta Quest 3 VR.

1

يمكن إعداد الحافلة والمضيف

~15 دقيقة

يتواصل AgileX Piper بشكل حصري CAN حافلة بسرعة 1 ميجابت في الثانية. أنت بحاجة إلى محول USB-to-CAN (على سبيل المثال، CANable، GS_USB) لعرض واجهة SwitchCAN على مضيف Linux الخاص بك.

السلامة أولا قم بتثبيت قاعدة الذراع فعليًا على سطح ثابت قبل تشغيلها. أبقِ البشر بعيدًا عن مظروف الوصول الكامل للذراع (نصف قطره حوالي 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.

دعم نظام التشغيل

Ubuntu 18.04 و20.04 و22.04 هي الأنظمة الأساسية التي تم اختبارها رسميًا. مطلوب بايثون 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.

الاتصال والتمكين

ال 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

ميتا كويست 3 VR عن بعد

~90 دقيقة

يمكن التحكم في Piper في الوقت الفعلي باستخدام ميتا كويست 3 سماعة الرأس. تستخدم البنية UDP عبر شبكتك المحلية: يقوم Quest بتشغيل تطبيق Unity الذي يقوم بتدفق بيانات وضع اليد، ويقوم خادم Python على الكمبيوتر الشخصي الآلي بترجمة ذلك إلى أوامر Piper SDK.

بنيان

ميتا كويست 3 (الوحدة)
↓ UDP — المنافذ 8888 / 8889
خادم Python UDP (الكمبيوتر المضيف)
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 لتتناسب مع مساحة عمل Piper. تختلف هذه المعلمات عن xArm بسبب مظروف الوصول الأصغر لـ Piper.
تنسيق الاختلافات في النظام مساحة عمل Piper أصغر من xArm. يقلل scaleFactor في الوحدة لمنع الذراع من الوصول إلى حدود المفصل أثناء التشغيل عن بعد. ابدأ بمقياس متحفظ ثم قم بالزيادة تدريجيًا مع مراقبة زوايا المفصل.
دليل كامل كويست 3. للحصول على تعليمات الإعداد الكاملة - تثبيت تطبيق Unity، والاقتران بالكمبيوتر، ومعايرة تتبع اليد - راجع دليل التشغيل عن بعد لـ Quest 3 VR.
6

جمع البيانات

مستمر

بمجرد أن تعمل عملية التشغيل عن بعد، استخدم منصة SVRC لتسجيل عروض التلاعب وتسميتها وتصديرها.

  • قم بتسجيل الحلقات التي تم بثها عن بعد عبر خادم Python UDP أو مباشرة من خلاله piper_ros تسجيل الحقيبة
  • تصدير في RLDS أو ليروبوت نموذج للتدريب على السياسات النهائية
  • استخدم منصة SVRC لإدارة مجموعات البيانات، وإجراء فحوصات الجودة، وتدريب نماذج ACT أو سياسة الانتشار
نصيحة. يستخدم piper.GetArmJointMsgs() و piper.GetArmEndPoseMsgs() عند ~ 50 هرتز في خيط الخلفية لالتقاط حالة المفصل والمستجيب النهائي المتزامنة أثناء التشغيل عن بعد.
افتح المنصة → ويكي المطور الكامل →

هل تحتاج إلى مساعدة في الإعداد الخاص بك؟

فريقنا متاح للجلسات العملية في منشأة ماونتن فيو، كاليفورنيا.