Spécifications techniques

Spécifications matérielles complètes, référence aux sujets ROS2, résumé de l'API piper_sdk et guide de dépannage.

Spécifications mécaniques

Spécification Valeur
Degrés de liberté6 DOF + pince en option
Atteindre~600 mm
Charge utile maximale~1,5 kg
Répétabilité±0,1mm
Facteur de formePlateau/bureau compact
Multi-soutiens-gorgeMaître-esclave à double bras via des interfaces CAN séparées
FabricantRobotique AgileX

Électricité et communications

Spécification Valeur
Alimentation24 VCC
CommunicationBus CAN — 1 000 000 bps (1 Mbps)
Interface hôteAdaptateur USB vers CAN (par exemple, CANable, GS_USB)
InterfaceLinuxPriseCAN (can0, can1, …)

Logiciel et contrôle

Spécification Valeur
Modes de contrôlePosition de l'articulation, pose de l'effecteur terminal, pince
SDK Pythonpip3 install piper_sdkagilexrobotics/piper_sdk
Forfait ROSagilexrobotics/piper_ros (ROS Noétique + MoveIt)
SimulationGazebo à l'écart piper_gazebo.launch
URDFpiper_description.urdf (micrologiciel ≥ S-V1.6-3)
Prise en charge du système d'exploitationUbuntu 18.04, 20.04, 22.04
VersionPythonPython3.6+

Limites conjointes

Articulation mon (tu) Max (toi)
Articulation 1−175+175
Articulation 2−90+135
Article 3−150+80
Article 4−175+175
Article 5−90+90
Article 6−175+175

Sujets et services ROS

Sujets et services standards exposés par piper_ros après le lancement start_single_piper.launch.

Sujet / Service Cône Direction Description
/joint_states sensor_msgs/JointState Sub (envoyer des commandes) Commandes de position articulaire – abonnez-vous pour envoyer des cibles de mouvement au bras
/arm_status piper_msgs/ArmStatus Pub (commentaires) Retour d'état de l'armement : activé/désactivé, indicateurs d'erreur, positions articulaires actuelles
/end_pose géométrie_msgs/Pose Pub (commentaires) Retour de pose de l'effecteur final dans l'espace cartésien (position + quaternion)
/enable_srv std_srvs/SetBool Service Activer (true) ou désactiver (false) toutes les articulations des bras
/go_zero_srv std_srvs/Déclencheur Service Commandez au bras de se déplacer vers la position zéro/origine
/gripper_srv piper_msgs/GripperCmd Service Définir la position de la pince (0 = ouvert, max = complètement fermé)
/stop_srv std_srvs/Déclencheur Service Arrêtez immédiatement tout mouvement articulaire (arrêt d’urgence via ROS)
/reset_srv std_srvs/Déclencheur Service Réinitialiser les erreurs d'armement et réactiver après une condition de panne

Référence de l'API piper_sdk

Méthodes clés sur le C_PiperInterface classe. Initialiser avec piper = C_PiperInterface("can0").

Méthode Description
ConnectPort() Ouvrez l'interface CAN et démarrez le fil de communication
EnableArm(7) Activer les 6 articulations et la pince (masque de bits ; 7 = tous)
DisableArm(7) Désactivez toutes les articulations – appelez toujours lorsque vous avez terminé ou avant de déconnecter
EmergencyStop() Arrêtez immédiatement tout mouvement articulaire
MotionCtrl_2(j1, j2, j3, j4, j5, j6) Envoyer une commande de position commune à 6 degrés de liberté (angles en degrés)
GetArmJointMsgs() Lire les positions, vitesses et couples actuels des articulations
GetArmEndPoseMsgs() Lire la pose cartésienne actuelle de l'effecteur final
GripperCtrl(position, speed) Régler la position de la pince (0 = ouverte) et la vitesse
GetArmGripperMsgs() Lire l'état actuel de la pince et le retour de position

Dépannage

Symptôme Cause probable Réparer
OSError: [Errno 19] No such device L'interface CAN n'est pas opérationnelle Courir sudo ip link set can0 up et vérifie avec ifconfig can0
Le bras ne répond pas aux commandes L'armement n'est pas en mode esclave ou n'est pas activé Appel piper.EnableArm(7) après la connexion. Confirmez que le cavalier du mode esclave est correctement réglé sur le bras.
La rétroaction conjointe lit tous les zéros Inadéquation du débit binaire Assurez-vous que le débit binaire de l'interface CAN est exactement de 1 000 000. Réexécutez ip link set can0 type can bitrate 1000000.
can.CanError: Failed to transmit Bus CAN non terminé Assurez-vous que des résistances de terminaison de 120 ohms sont présentes aux deux extrémités du bus CAN. Activez le terminateur interne du Piper via le commutateur DIP.
Modèle de robot URDF incorrect dans RViz Incompatibilité du micrologiciel Micrologiciel < S-V1.6-3 : utiliser piper_description_old.urdf. Firmware plus récent : utilisez piper_description.urdf.
Autorisation refusée sur can0 L'utilisateur n'est pas présent dialout groupe SocketCAN nécessite des autorisations root ou appropriées. Exécutez des commandes avec sudo ou configurez les règles udev.
Téléopération VR : les bras dépassent / atteignent les limites scaleFactor trop élevé dans l'unité Réduire scaleFactor dans l'application Unity et retestez progressivement. L'espace de travail Piper est plus petit que xArm.

Dépôts GitHub

Dépôt Description
agilexrobotics/piper_sdk SDK Python officiel. Installer: pip3 install piper_sdk. Comprend des démos, des spécifications d'interface (INTERFACE_V2.MD) et guide à deux bras.
agilexrobotics/piper_ros Package ROS Noetic avec MoveIt, simulation Gazebo, URDF et sujets/services ROS standard.
← Retour sur Piper Hub Guide de configuration → Wiki développeur complet →

Prêt à collecter des données de manipulation avec le Piper ?

Disponible pour une évaluation pratique et la collecte de données dans nos installations de Mountain View, en Californie.