Technische Spezifikationen

Vollständige Hardware-Spezifikationen, ROS2-Themenreferenz, Piper_sdk-API-Zusammenfassung und Leitfaden zur Fehlerbehebung.

Mechanische Spezifikationen

Spez Wert
Freiheitsgrade6 DOF + optionaler Greifer
Erreichen~600 mm
Maximale Nutzlast~1,5 kg
Wiederholbarkeit±0,1 mm
FormfaktorKompakte Tischplatte/Desktop
MehrarmigDoppelarmiger Master-Slave über separate CAN-Schnittstellen
HerstellerinAgileX Robotics

Elektrik und Kommunikation

Spez Wert
Stromversorgung24 V DC
KommunikationCAN-Bus – 1.000.000 bps (1 Mbit/s)
Host-SchnittstelleUSB-zu-CAN-Adapter (z. B. CANable, GS_USB)
Linux-SchnittstelleSocketCAN (can0, can1, …)

Software & Steuerung

Spez Wert
SteuermodiGelenkposition, Endeffektorhaltung, Greifer
Python-SDKpip3 install piper_sdkagilexrobotics/piper_sdk
ROS-Paketagilexrobotics/piper_ros (ROS Noetic + MoveIt)
SimulationPavillon entfernt piper_gazebo.launch
URDFpiper_description.urdf (Firmware ≥ S-V1.6-3)
BetriebssystemunterstützungUbuntu 18.04, 20.04, 22.04
Python-VersionPython 3.6+

Gemeinsame Grenzen

Gemeinsam mein (du) Max (du)
Gelenk 1−175+175
Gelenk 2−90+135
Gelenk 3−150+80
Gelenk 4−175+175
Gelenk 5−90+90
Gelenk 6−175+175

ROS-Themen und -Dienste

Standardthemen und -dienste bereitgestellt von piper_ros nach dem Start start_single_piper.launch.

Thema / Service Typ Richtung Beschreibung
/joint_states sensor_msgs/JointState Sub (Befehle senden) Gelenkpositionsbefehle – Abonnieren Sie, um Bewegungsziele an den Arm zu senden
/arm_status piper_msgs/ArmStatus Kneipe (Feedback) Armzustandsrückmeldung: aktiviert/deaktiviert, Fehlerflags, aktuelle Gelenkpositionen
/end_pose Geometrie_msgs/Pose Kneipe (Feedback) Endeffektor-Pose-Feedback im kartesischen Raum (Position + Quaternion)
/enable_srv std_srvs/SetBool Service Aktivieren (true) oder deaktivieren (false) alle Armgelenke
/go_zero_srv std_srvs/Trigger Service Befehlen Sie dem Arm, sich in die Null-/Ausgangsposition zu bewegen
/gripper_srv piper_msgs/GripperCmd Service Greiferposition einstellen (0 = offen, max = vollständig geschlossen)
/stop_srv std_srvs/Trigger Service Alle Gelenkbewegungen sofort stoppen (Notstopp über ROS)
/reset_srv std_srvs/Trigger Service Setzen Sie Armfehler zurück und aktivieren Sie sie nach einem Fehlerzustand erneut

Piper_sdk-API-Referenz

Schlüsselmethoden zum C_PiperInterface Klasse. Initialisieren mit piper = C_PiperInterface("can0").

Verfahren Beschreibung
ConnectPort() Öffnen Sie die CAN-Schnittstelle und starten Sie den Kommunikationsthread
EnableArm(7) Alle 6 Gelenke und Greifer aktivieren (Bitmaske; 7 = alle)
DisableArm(7) Deaktivieren Sie alle Verbindungen – rufen Sie immer an, wenn Sie fertig sind oder bevor Sie die Verbindung trennen
EmergencyStop() Stoppen Sie sofort alle gemeinsamen Bewegungen
MotionCtrl_2(j1, j2, j3, j4, j5, j6) Senden Sie einen 6-DOF-Gelenkpositionsbefehl (Winkel in Grad)
GetArmJointMsgs() Lesen Sie aktuelle Gelenkpositionen, Geschwindigkeiten und Drehmomente ab
GetArmEndPoseMsgs() Lesen Sie die aktuelle kartesische Pose des Endeffektors
GripperCtrl(position, speed) Greiferposition (0 = offen) und Geschwindigkeit einstellen
GetArmGripperMsgs() Lesen Sie den aktuellen Greiferzustand und die Positionsrückmeldung

Fehlerbehebung

Symptom Wahrscheinliche Ursache Fix
OSError: [Errno 19] No such device CAN-Schnittstelle nicht aktiv Laufen sudo ip link set can0 up und überprüfen Sie mit ifconfig can0
Arm reagiert nicht auf Befehle Scharfschaltung nicht im Slave-Modus oder nicht aktiviert Anruf piper.EnableArm(7) nach dem Anschließen. Bestätigen Sie, dass der Slave-Modus-Jumper am Arm richtig gesetzt ist.
Die gemeinsame Rückmeldung liest alle Nullen Nicht übereinstimmende Bitrate Stellen Sie sicher, dass die Bitrate der CAN-Schnittstelle genau 1000000 beträgt. Führen Sie den Vorgang erneut aus ip link set can0 type can bitrate 1000000.
can.CanError: Failed to transmit CAN-Bus nicht terminiert Stellen Sie sicher, dass an beiden Enden des CAN-Busses 120-Ohm-Abschlusswiderstände vorhanden sind. Aktivieren Sie den internen Abschlusswiderstand des Piper über den DIP-Schalter.
Falsches URDF-Robotermodell in RViz Firmware-Konflikt Firmware < S-V1.6-3: verwenden piper_description_old.urdf. Neuere Firmware: verwenden piper_description.urdf.
Berechtigung für can0 verweigert Benutzer nicht da dialout Gruppe SocketCAN erfordert Root- oder entsprechende Berechtigungen. Befehle ausführen mit sudo oder udev-Regeln konfigurieren.
VR-Teleop: Arm überschreitet/stößt an Grenzen scaleFactor zu hoch in Unity Reduzieren scaleFactor in der Unity-App und testen Sie es schrittweise erneut. Der Piper-Arbeitsbereich ist kleiner als xArm.

GitHub-Repositorys

Repository Beschreibung
agilexrobotics/piper_sdk Offizielles Python SDK. Installieren: pip3 install piper_sdk. Enthält Demos, Schnittstellenspezifikationen (INTERFACE_V2.MD) und Doppelarmführung.
agilexrobotics/piper_ros ROS Noetic-Paket mit MoveIt, Gazebo-Simulation, URDF und Standard-ROS-Themen/-Diensten.
← Zurück zu Piper Hub Installationsanleitung → Vollständiges Entwickler-Wiki →

Bereit, Manipulationsdaten mit dem Piper zu sammeln?

Verfügbar für praktische Auswertungen und Datenerfassung in unserer Einrichtung in Mountain View, Kalifornien.