Paxini PX-6AX GEN3 설정 가이드
언박싱부터 라이브 데이터 스트리밍까지 6단계로 진행됩니다. 장착, 배선, PXSR 소프트웨어, 교정, 검증 및 ROS2 통합을 다룹니다.
설치
센서 타일을 로봇 엔드 이펙터에 부착하세요
GEN3 제품군은 세 가지 해부학적 형태로 제공됩니다. 올바른 변형과 마운트 지점을 선택하세요.
- 핑거팁(DP) 변형 — 직경 13mm ~ 30mm. 로봇 손가락 끝 캡용으로 설계되었습니다. 13mm(S1813-Core/Elite) 및 15mm(S2015-Elite)는 LinkerBot O6처럼 작고 능숙한 손에 맞습니다. 26mm(M2826-Omega) 및 30mm(L3530-Omega)는 더 큰 그리퍼 손끝에 적합합니다.
- 핑거 패드(IP/CP) 변형 — 로봇 손가락의 등쪽 또는 복부 표면에 장착하기 위한 플랫 패드(16×10mm ~ 53×25mm). 변형에 따라 제공된 접착 뒷면 또는 M2 나사로 고정됩니다.
- 팜(MC) 변형 — M2020-엘리트(20×20mm). 로봇 손바닥 판의 오목한 주머니에 장착됩니다. 모서리에 4개의 M2 나사 구멍이 있습니다.
손가락 끝(DP) 변형의 경우 센서의 평평한 면을 손가락 끝 접촉 표면과 같은 높이로 맞춥니다. 리본 케이블을 손가락 몸체를 따라 손목 쪽으로 배선하고 포함된 케이블 클립으로 고정하여 동작 중에 걸리는 것을 방지합니다. 리본 케이블을 급격하게 구부리지 마십시오. 최소 5mm의 구부림 반경을 유지하십시오.
배선 및 통신 보드
USB를 통해 센서를 통신 보드 및 호스트 PC에 연결
제품 번들에는 세 가지 통신 보드 옵션이 포함되어 있습니다. 배포에 따라 선택하세요.
- 10채널 SPI 허브 — 허브 PCB에 표시된 채널 포트를 통해 최대 10개의 센서 타일을 연결합니다. 각 포트는 센서 리본 커넥터를 수용합니다. 포함된 5V USB 케이블을 통해 허브에 전원을 공급합니다. 완전한 촉각 커버리지를 위해 이 보드를 사용하십시오.
- 단일 채널 직렬 변환기 — 단일 센서 프로토타이핑용. 센서 리본을 보드의 단일 포트에 연결합니다. 보드는 USB 직렬 인터페이스를 호스트에 노출합니다.
- 고속 통합 보드 — 다중 채널 SPI/I2C. 채널 결선도는 제품 번들에 포함된 통신 프로토콜 문서(v1.0.5)를 참조하세요.
배선이 완료되면 통신 보드 USB 케이블을 Windows x64 호스트에 연결합니다. 보드의 전원 LED가 즉시 켜집니다. 호스트는 새로운 COM 포트(Windows)를 열거하거나 /dev/ttyUSB* (리눅스).
드라이버 및 PXSR 소프트웨어 설치
Windows x64 호스트에 PXSR v1.0.7 설치
PXSR 소프트웨어는 USB 드라이버를 등록하고 실시간 히트맵 시각화를 제공하며 데이터 내보내기를 처리합니다. 초기 설정 및 교정 확인에 필요합니다.
- 위치하고 있다
pxsr-gen3-win-x64-1.0.7_Release.exe에서 【04】소프트웨어 설치 패키지 제품 번들의 폴더입니다. - 설치 프로그램을 관리자로 실행하십시오. UAC 프롬프트를 수락합니다. 설치 프로그램이 통신 보드용 WHQL 서명 USB 드라이버를 등록합니다.
- 설치가 완료되면 PXSR을 다음 위치에서 사용할 수 있습니다.
C:\Program Files\PaXini\PXSR\PXSR.exe. - Windows에서 드라이버를 다시 시작하라는 메시지가 표시되면 재부팅합니다.
센서 교정
XLSX 좌표 파일을 로드하고 무부하 기준선 설정
각 GEN3 변형에는 원시 탁셀 지수를 센서 중심을 기준으로 밀리미터 단위의 물리적(x, y) 좌표에 매핑하는 해당 XLSX 파일이 함께 제공됩니다. 정확한 히트맵 렌더링 및 접촉 중심 계산을 위해서는 올바른 파일을 로드해야 합니다.
- PXSR을 엽니다. 통신보드가 연결된 상태에서 다음을 클릭하세요. 연결하다. 상태 표시줄에 "장치 연결됨"이 표시되어야 합니다.
- 이동 파일 → 좌표 지도 열기 센서 변형과 일치하는 XLSX 파일을 선택하세요. 다음에서 테이블을 사용하세요. 명세서 올바른 파일 이름을 확인하려면(예:
PXSR-STDDP03B.xlsx26mm M2826-Omega 핑거팁용). - 센서가 언로드되었는지 확인하십시오(접촉이 없고 감지면에 중력 부하가 없음). 딸깍 하는 소리 교정 → 제로 베이스라인. PXSR은 100개의 프레임을 캡처하고 모든 탁셀과 6개의 F/T 축 모두에 대한 제로 로드 오프셋을 저장합니다.
- 센서가 언로드된 상태에서 오른쪽 패널의 6축 막대가 모두 0에 가까운(±0.02 N / ±0.001 Nm 이내) 판독되는지 확인합니다.
데이터 스트리밍 검증
실제 힘/토크 판독값 및 탁셀 히트맵 확인
PXSR을 연결하고 보정한 후 로봇 파이프라인에 통합하기 전에 모든 센서 채널이 올바르게 스트리밍되는지 확인하세요.
- 센서 표면에 손가락 끝으로 부드럽고 균일한 압력을 가합니다. 히트맵 패널에는 접촉점에 국지적인 고압 영역이 표시되어야 합니다.
- 손가락 끝으로 표면을 밀어서 PXSR 오버레이에서 접촉 중심 추적을 관찰합니다.
- 센서를 옆으로 누르십시오(전단력). Fx 및 Fy 막대는 Fz가 0에 가깝게 유지되는 동안 반응해야 합니다.
- SPI 허브 배포의 경우: PXSR의 각 채널 탭에 실시간 데이터가 표시되는지 확인하세요. 데이터가 0인 채널은 느슨한 리본 연결을 나타냅니다. 다시 장착하고 다시 시도하세요.
오프라인 분석을 위해 데이터를 내보내려면 다음을 사용하세요. 녹음 → 시작. PXSR은 타임스탬프(Unix ms), Fx, Fy, Fz, Tx, Ty, Tz 및 전체 평면 탁셀 배열 열이 포함된 CSV를 저장합니다. 각 행은 하나의 샘플 프레임입니다.
ROS2 통합
Python pyserial 래퍼를 통해 ROS2 주제에 센서 데이터 게시
ROS2 통합의 경우 다음을 사용하십시오. pyserial 통신 보드의 USB 직렬 포트에서 직접 프레임을 읽고 ROS2 주제에 게시합니다. 아래 스켈레톤은 Fearless Platform WebSocket에서 예상하는 JSONL 원격 측정 형식과 일치하며 ROS2에 맞게 조정할 수 있습니다. sensor_msgs 출판.
#!/usr/bin/env python3 # paxini_ros2_bridge.py — Paxini GEN3 → ROS2 topic publisher # Requires: pyserial, rclpy, sensor_msgs import serial, json, time import rclpy from rclpy.node import Node from std_msgs.msg import String class PaxiniPublisher(Node): def __init__(self): super().__init__('paxini_gen3') self.pub = self.create_publisher(String, '/paxini/tactile', 10) # Configure port per PaXini GEN3 Communication Protocol v1.0.5 self.ser = serial.Serial('/dev/ttyUSB0', baudrate=115200, timeout=0.1) self.create_timer(0.01, self.read_and_publish) # 100 Hz def read_and_publish(self): raw = self.ser.read(64) # frame size: see protocol doc if len(raw) == 0: return ft = self.parse_force_torque(raw) taxels = self.parse_taxel_array(raw) msg = String() msg.data = json.dumps({ "type": "telemetry", "device": "paxini_gen3", "ft": ft, "taxels": taxels, "ts": int(time.time() * 1000) }) self.pub.publish(msg) def parse_force_torque(self, raw): # Implement per PaXini GEN3 Communication Protocol v1.0.5 return {"fx": 0.0, "fy": 0.0, "fz": 0.0, "tx": 0.0, "ty": 0.0, "tz": 0.0} def parse_taxel_array(self, raw): # Returns flat list of taxel pressure values return [] def main(): rclpy.init() node = PaxiniPublisher() rclpy.spin(node) if __name__ == '__main__': main()
주제를 구독하고 오프라인 교육을 위해 JSONL 파일에 데이터를 기록하려면 다음을 수행하세요.
# Subscribe and log to file
ros2 topic echo /paxini/tactile --no-arr > tactile_session.jsonl
/api/teleop/ws) 브라우저 기반 실시간 히트맵 보기와 공동 및 카메라 스트림과 함께 동기화된 에피소드 녹화를 가능하게 합니다. 참조 개발자 위키 전체 등록 핸드셰이크 및 원격 측정 형식을 사용합니다.