소프트웨어 및 드라이버 설정
Paxini SDK를 설치하고, Python으로 압력 데이터를 스트리밍하고, 접촉 히트맵을 시각화하고, 선택적 ROS2 통합을 추가하고, 전체 데이터 수집 파이프라인을 위해 로봇 팔과 동기화하세요.
Paxini SDK 설치
Paxini Gen3은 USB HID를 통해 통신하므로 커널 모듈이나 공급업체 드라이버가 필요하지 않습니다. Python SDK는 하위 수준 HID 프로토콜을 래핑하고 깔끔한 스트리밍 API를 공개합니다.
설치를 확인합니다.
센서 감지
USB-C를 통해 Gen3 센서를 컴퓨터에 연결하세요. SDK의 장치 검색 유틸리티를 사용하여 인식되는지 확인하세요.
다중 센서 설정의 경우(예: USB 허브의 다섯 손가락):
sudo python -m paxini.install_udev 한 번 규칙을 설치한 다음 센서를 뽑았다가 다시 연결하세요.
Python 스트리밍 API
핵심 API는 콜백 기반 스트림입니다. 각 프레임은 촉각프레임 전체 압력 배열과 메타데이터가 포함된 개체입니다.
모든 공개 API 메소드:
| 방법/속성 | 설명 | 보고 |
|---|---|---|
| 센서.시작() | 스트리밍을 시작하세요. 비차단 | 없음 |
| 센서.정지() | 스트림을 깔끔하게 중지하세요. | 없음 |
| 센서.스트림() | 구성된 Hz에서 TactileFrame 객체를 생성하는 생성기 | 생성기[촉각프레임] |
| 센서.최신() | 차단하지 않고 가장 최근 프레임을 반환합니다. | 촉각프레임 |
| 센서.set_rate(hz) | 샘플링 속도 설정(USB-C의 경우 50~500Hz, BLE의 경우 50~200Hz) | 없음 |
| 센서.보정() | 현재 정지 부하에 대한 제로 오프셋 교정 | 없음 |
| 센서.직렬 | 장치 일련번호 문자열 | str |
| 센서.변형 | "손끝" | "손가락 패드" | "손바닥 안에 감추다" | str |
촉각 데이터 형식
각 촉각프레임 다음을 포함합니다:
| 필드 | 유형 | 설명 |
|---|---|---|
| 프레임.타임스탬프_ns | 정수 | 나노초 타임스탬프(단조, 호스트 클록) |
| 프레임.압력_맵 | np.ndarray(H, W) float32 | 탁셀당 압력(kPa)입니다. 모양은 변형에 따라 다릅니다. 손가락 끝은 8×8, 손바닥은 16×12입니다. |
| 프레임.접촉_마스크 | np.ndarray (H, W) bool | 압력이 접촉 임계값을 초과하는 경우 참(기본값: 5kPa) |
| 프레임.접촉_면적_mm2 | 뜨다 | 활성 탁셀 면적의 합(mm²) |
| 프레임.total_force_n | 뜨다 | 뉴턴 단위로 모든 탁셀에 걸쳐 통합된 수직항력 |
| 프레임.접촉_중심 | (플로트, 플로트) | (행, 열) 탁셀 좌표에서 접촉 영역의 중심 |
| 프레임.인_접촉 | 부울 | total_force_n이 접촉 임계값을 초과하는 경우 참(기본값: 0.05N) |
| 프레임.seq | 정수 | 단조롭게 증가하는 프레임 시퀀스 번호 |
실시간 히트맵 시각화
SDK는 즉시 실행 가능한 라이브 시각화 도구를 제공합니다. 명령줄에서 직접 실행하세요.
또는 다음을 사용하여 자신의 스크립트에 삽입하세요. paxini.viz 기준 치수:
ROS2 인터페이스
ROS2 브리지는 다음을 게시합니다. sensor_msgs/이미지 (압력 맵) 및 사용자 정의 paxini_msgs/TactileFrame 센서별 주제. ROS2 Humble 또는 Jazzy가 필요합니다.
다중 센서 설정의 경우 각 장치는 일련번호로 게시됩니다. 표준 ROS2 재매핑을 사용하여 실행 파일의 주제를 재매핑할 수 있습니다.
로봇 팔 통합
Paxini 데이터를 로봇 팔 관절 상태와 동기화하려면 paxini.sync 기준 치수. 공유 시계에 대해 모든 센서 프레임의 타임스탬프를 기록하고 동기화된(arm_state, tactile_frame) 쌍을 생성하는 차단 API를 제공합니다.
MultiSourceSync 클래스는 arm 속도와 센서 속도가 다를 때 보간을 처리합니다.
상위 3개 이슈
센서가 감지되지 않습니다. 순서대로 확인하십시오. (1) 다른 USB-C 케이블을 사용해 보십시오. 일부 케이블은 충전 전용이며 데이터를 전달하지 않습니다. (2) Linux에서는 다음을 실행합니다. sudo python -m paxini.install_udev 그런 다음 센서를 분리했다가 다시 연결하세요. (3) 센서 LED가 계속 켜져 있는지 확인합니다(깜박이지 않음). 깜박이면 펌웨어 업데이트 모드에 있음을 의미합니다. 종료하려면 재설정 버튼을 5초 동안 누르세요.
센서에 교정이 필요하거나 임계값이 너무 높게 설정되었습니다. 달리다 sensor.calibrate() 센서가 언로드된 상태(접촉 없음). 문제가 지속되면 센서 변형이 마운트와 일치하는지 확인하십시오. 손가락 끝에 설치된 손바닥 센서는 더 큰 탁셀 영역으로 인해 매우 낮은 압력 값을 표시합니다. 또한 펌웨어 버전 1.2+를 확인하십시오. python -m paxini.discover.
암 인터페이스 시계와 센서 타임스탬프가 다음보다 많이 분기됩니다. max_dt_ms. 이는 일반적으로 arm SDK가 오래된 조인트 상태(예: 더 낮은 속도로 버퍼링됨)를 반환하기 때문에 발생합니다. 증가하다 max_dt_ms 첫 번째 테스트로 10.0으로 업그레이드한 다음 팔 상태 새로 고침 빈도가 예상보다 낮은 이유를 조사합니다. USB 암의 경우 USB 폴링 속도가 전원 관리에 의해 제한되지 않는지 확인합니다(sudo powertop 리눅스에서).
아직도 붙어있나요? 에 게시 포럼 질문 스레드 OS, SDK 버전(paxini.__version__) 및 정확한 오류 출력.