기술 사양

전체 하드웨어 사양, ROS2 주제 참조, Piper_sdk API 요약 및 문제 해결 가이드.

기계 사양

투기
자유도6 DOF + 옵션 그리퍼
도달하다~600mm
최대 페이로드~1.5kg
반복성±0.1mm
폼 팩터컴팩트한 탁상/데스크탑
다중 팔별도의 CAN 인터페이스를 통한 듀얼 암 마스터-슬레이브
제조업체AgileX 로봇공학

전기 및 통신

투기
전원공급장치24V DC
의사소통CAN 버스 — 1,000,000bps(1Mbps)
호스트 인터페이스USB-CAN 어댑터(예: CANable, GS_USB)
리눅스 인터페이스소켓CAN(can0, can1, …)

소프트웨어 및 제어

투기
제어 모드관절 위치, 엔드 이펙터 자세, 그리퍼
파이썬 SDKpip3 install piper_sdk애질렉스로보틱스/piper_sdk
ROS 패키지애질렉스로보틱스/piper_ros (ROS 노에틱 + MoveIt)
시뮬레이션가제보 어웨이 piper_gazebo.launch
URDFpiper_description.urdf (펌웨어 ≥ S-V1.6-3)
OS 지원우분투 18.04, 20.04, 22.04
파이썬 버전파이썬 3.6+

관절 제한

관절 나의 (당신) 맥스(당신)
조인트 1−175+175
조인트 2−90+135
조인트 3−150+80
조인트 4−175+175
공동 5−90+90
합동 6−175+175

ROS 주제 및 서비스

공개되는 표준 주제 및 서비스 piper_ros 출시 후 start_single_piper.launch.

주제/서비스 유형 방향 설명
/joint_states sensor_msgs/JointState 하위(명령 보내기) 관절 위치 명령 - 모션 타겟을 팔로 보내기 위해 구독
/arm_status Piper_msgs/ArmStatus 펍(피드백) 팔 상태 피드백: 활성화/비활성화, 오류 플래그, 현재 관절 위치
/end_pose 기하학_msgs/포즈 펍(피드백) 데카르트 공간(위치 + 쿼터니언)의 엔드 이펙터 포즈 피드백
/enable_srv std_srvs/SetBool 서비스 할 수 있게 하다 (true) 또는 비활성화(false) 모든 팔 관절
/go_zero_srv std_srvs/트리거 서비스 팔에 0/홈 위치로 이동하도록 명령합니다.
/gripper_srv Piper_msgs/GripperCmd 서비스 그리퍼 위치 설정(0 = 열림, 최대 = 완전 닫힘)
/stop_srv std_srvs/트리거 서비스 모든 관절 동작을 즉시 중지(ROS를 통한 긴급 중지)
/reset_srv std_srvs/트리거 서비스 암 오류를 재설정하고 오류 상태 후 다시 활성화

Piper_sdk API 참조

에 대한 주요 방법 C_PiperInterface 수업. 다음으로 초기화 piper = C_PiperInterface("can0").

방법 설명
ConnectPort() CAN 인터페이스를 열고 통신 스레드를 시작하십시오.
EnableArm(7) 6개 관절과 그리퍼를 모두 활성화합니다(비트마스크, 7 = 모두).
DisableArm(7) 모든 관절 비활성화 - 완료되면 또는 연결을 끊기 전에 항상 호출하십시오.
EmergencyStop() 모든 관절 운동을 즉시 중단
MotionCtrl_2(j1, j2, j3, j4, j5, j6) 6-DOF 관절 위치 명령(각도 단위) 보내기
GetArmJointMsgs() 현재 관절 위치, 속도 및 토크 읽기
GetArmEndPoseMsgs() 현재 엔드 이펙터 직교 위치 읽기
GripperCtrl(position, speed) 그리퍼 위치(0 = 열림) 및 속도 설정
GetArmGripperMsgs() 현재 그리퍼 상태 및 위치 피드백 읽기

문제 해결

징후 가능한 원인 고치다
OSError: [Errno 19] No such device CAN 인터페이스가 작동하지 않음 달리다 sudo ip link set can0 up 그리고 확인 ifconfig can0
Arm이 명령에 응답하지 않습니다. Arm이 슬레이브 모드가 아니거나 활성화되지 않았습니다. 부르다 piper.EnableArm(7) 연결 후. 슬레이브 모드 점퍼가 암에 올바르게 설정되어 있는지 확인하십시오.
공동 피드백은 모두 0을 읽습니다. 비트레이트 불일치 CAN 인터페이스 비트 전송률이 정확히 1000000인지 확인하십시오. 다시 실행하십시오. ip link set can0 type can bitrate 1000000.
can.CanError: Failed to transmit CAN 버스가 종료되지 않음 CAN 버스의 양쪽 끝에 120옴 종단 저항이 있는지 확인하십시오. DIP 스위치를 통해 Piper의 내부 터미네이터를 활성화합니다.
RViz에서 URDF 로봇 모델이 잘못되었습니다. 펌웨어 불일치 펌웨어 < S-V1.6-3: 사용 piper_description_old.urdf. 최신 펌웨어: 사용 piper_description.urdf.
can0에 대한 권한이 거부되었습니다. 사용자가 없음 dialout 그룹 SocketCAN에는 루트 또는 적절한 권한이 필요합니다. 다음을 사용하여 명령을 실행하세요. sudo 또는 udev 규칙을 구성하세요.
VR 텔레오프: 팔 오버슈트/한계에 도달 scaleFactor Unity에서는 너무 높음 줄이다 scaleFactor Unity 앱에서 점진적으로 다시 테스트하세요. Piper 작업 공간은 xArm보다 작습니다.

GitHub 저장소

저장소 설명
애질렉스로보틱스/piper_sdk 공식 Python SDK. 설치하다: pip3 install piper_sdk. 데모, 인터페이스 사양 포함(INTERFACE_V2.MD) 및 이중 암 가이드.
애질렉스로보틱스/piper_ros MoveIt, Gazebo 시뮬레이션, URDF 및 표준 ROS 주제/서비스를 포함하는 ROS Noetic 패키지입니다.
← 파이퍼 허브로 돌아가기 설정 가이드 → 전체 개발자 위키 →

Piper로 조작 데이터를 수집할 준비가 되셨나요?

캘리포니아주 마운틴뷰 시설에서 직접 평가 및 데이터 수집이 가능합니다.