सेटअप गाइड
CAN बस लाने से लेकर पहले टेलीऑपरेटेड एपिसोड तक। Piper_sdk, ROS2 लॉन्च और मेटा क्वेस्ट 3 VR टेलीऑपरेशन को कवर करता है।
कैन बस एवं होस्ट सेटअप
~15 मिनटएजाइलएक्स पाइपर विशेष रूप से संचार करता है 1 एमबीपीएस पर बस कर सकते हैं. आपको अपने लिनक्स होस्ट पर सॉकेटकैन इंटरफ़ेस को प्रदर्शित करने के लिए एक यूएसबी-टू-कैन एडाप्टर (उदाहरण के लिए, कैनेबल, जीएस_यूएसबी) की आवश्यकता है।
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.
can1, can2, आदि। उपयोग करें ip link show सभी CAN इंटरफ़ेस को सूचीबद्ध करने और सही नाम भेजने के लिए C_PiperInterface.
ओएस समर्थन
Ubuntu 18.04, 20.04 और 22.04 आधिकारिक तौर पर परीक्षण किए गए प्लेटफ़ॉर्म हैं। पायथन 3.6+ आवश्यक है.
Piper_sdk स्थापित करें
~20 मिनटThe piper_sdk पायथन लाइब्रेरी 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 बस संचार के लिए एक निर्भरता के रूप में।
कनेक्ट करें और सक्षम करें
The 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.")
piper_sdk/demo/V2/. के साथ शुरू demo_joint_ctrl.py अपना स्वयं का नियंत्रण लूप बनाने से पहले बुनियादी गति को सत्यापित करने के लिए।
प्रथम प्रस्ताव
~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) समाप्त होने पर. एक सक्षम आर्म किसी भी कमांड पर तुरंत प्रतिक्रिया देता है - जिसमें बग या गिराए गए पैकेट से आए गलत कमांड भी शामिल हैं।
डुअल-आर्म (मास्टर-स्लेव) सेटअप
द्वि-मैन्युअल कॉन्फ़िगरेशन के लिए, दो पाइपर्स को अलग-अलग 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.")
ROS2 / MoveIt एकीकरण
~60 मिनटThe piper_ros पैकेज MoveIt मोशन प्लानिंग और गज़ेबो सिमुलेशन के साथ एक पूर्ण ROS नॉएटिक ड्राइवर प्रदान करता है। यह लपेटता है 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
मूवइट योजना
# 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 विषयों और सेवाओं की तालिका के लिए।
मेटा क्वेस्ट 3 वीआर टेलीऑपरेशन
~90 मिनटपाइपर को वास्तविक समय में नियंत्रित किया जा सकता है मेटा क्वेस्ट 3 हेडसेट. आर्किटेक्चर आपके स्थानीय नेटवर्क पर यूडीपी का उपयोग करता है: क्वेस्ट एक यूनिटी ऐप चलाता है जो हैंड पोज़ डेटा स्ट्रीम करता है, और रोबोट पीसी पर एक पायथन सर्वर इसे पाइपर एसडीके कमांड में अनुवादित करता है।
वास्तुकला
एकता पक्ष (VRHandPoseSender.cs, VRGripperController.cs, VRTeleoperationManager.cs) और यूडीपी परत xArm सेटअप से पूरी तरह से पुन: प्रयोज्य है - केवल रोबोट नियंत्रक मॉड्यूल को बदलने की आवश्यकता है।
सेटअप चरण
-
CAN इंटरफ़ेस प्रारंभ करें और आर्म को सक्षम करें।
sudo ip link set can0 type can bitrate 1000000 sudo ip link set can0 up -
एक बनाने के
PiperControllerरैपिंगC_PiperInterface. प्रतिस्थापित करेंXArmControllerआपके मौजूदा टेलीऑपरेशन स्टैक में एक नए के साथ क्लासpiper_controller.py. अमल में लानाconnect(),set_pose(x, y, z, roll, pitch, yaw),set_gripper(value), औरemergency_stop()Piper_sdk कॉल का उपयोग करना। -
रोबोट पीसी पर पायथन यूडीपी सर्वर लॉन्च करें।
सर्वर यूडीपी पोर्ट 8888/8889 पर सुनता है और पाइपर को प्राप्त हैंड पोज़ पैकेट को अग्रेषित करता है।python3 teleoperation_main.py --robot-type piper -
क्वेस्ट 3 पर यूनिटी ऐप लॉन्च करें और पीसी के आईपी पते से कनेक्ट करें।
समायोजित करना
positionOffset,rotationOffset, औरscaleFactorपाइपर के कार्यक्षेत्र से मेल खाने के लिए एकता में। पाइपर की छोटी पहुंच वाले लिफ़ाफ़े के कारण ये पैरामीटर xArm से भिन्न हैं।
scaleFactor टेलीऑपरेशन के दौरान हाथ को संयुक्त सीमा से टकराने से रोकने के लिए एकता में। एक रूढ़िवादी पैमाने से शुरू करें और संयुक्त कोणों की निगरानी करते हुए धीरे-धीरे बढ़ाएं।
डेटा संग्रहण
चल रहेएक बार टेलीऑपरेशन काम कर रहा है, तो हेरफेर प्रदर्शनों को रिकॉर्ड करने, लेबल करने और निर्यात करने के लिए एसवीआरसी प्लेटफ़ॉर्म का उपयोग करें।
- पायथन यूडीपी सर्वर के माध्यम से या सीधे टेलीऑपरेटेड एपिसोड रिकॉर्ड करें
piper_rosबैग रिकॉर्डिंग - में निर्यात करें RLDS या लेरोबोट डाउनस्ट्रीम नीति प्रशिक्षण के लिए प्रारूप
- उपयोग एसवीआरसी प्लेटफार्म डेटासेट प्रबंधित करने, गुणवत्ता जांच चलाने और ACT या डिफ्यूजन पॉलिसी मॉडल को प्रशिक्षित करने के लिए
piper.GetArmJointMsgs() और piper.GetArmEndPoseMsgs() टेलीऑपरेशन के दौरान सिंक्रोनाइज़्ड जॉइंट और एंड-इफ़ेक्टर स्थिति को कैप्चर करने के लिए बैकग्राउंड थ्रेड में ~50 हर्ट्ज़ पर।