Paxini PX-6AX GEN3 セットアップ ガイド
開梱からライブ データ ストリーミングまでの 6 つのステップ。 取り付け、配線、PXSR ソフトウェア、校正、検証、ROS2 統合について説明します。
取り付け
センサー タイルをロボットのエンド エフェクターに取り付けます
GEN3 ファミリは、3 つの解剖学的フォームファクターで出荷されます。 正しいバリアントとマウント ポイントを選択します。
- フィンガーチップ (DP) のバリエーション — 直径 13 mm ~ 30 mm。 ロボットの指先キャップ用に設計されています。 13 mm (S1813-Core/Elite) と 15 mm (S2015-Elite) は、LinkerBot O6 のようなコンパクトで器用な手にフィットします。 26 mm (M2826-Omega) と 30 mm (L3530-Omega) は、より大きなグリッパーの指先に適しています。
- フィンガーパッド (IP/CP) のバリエーション — ロボットフィンガーの背側または腹側表面に取り付けるためのフラットパッド (16×10 mm ~ 53×25 mm)。 付属の粘着裏地またはバリエーションに応じて M2 ネジで固定します。
- パーム (MC) バリアント — M2020-エリート (20×20 mm)。 ロボットの掌プレートの凹んだポケットに取り付けます。 四隅に M2 ネジ穴が 4 つあります。
指先 (DP) バージョンの場合は、センサーの平面を指先の接触面と同一面に合わせます。 リボンケーブルを指の本体に沿って手首に向かって配線し、付属のケーブルクリップで固定して、動作中の引っ掛かりを防ぎます。 リボン ケーブルを急激に曲げないでください。少なくとも 5 mm の曲げ半径を維持してください。
配線および通信ボード
USB経由でセンサーを通信ボードとホストPCに接続します
3 つの通信ボード オプションが製品バンドルに含まれています。 展開に基づいて選択します。
- 10チャンネルSPIハブ — ハブ PCB 上のラベル付きチャネル ポートを介して、最大 10 個のセンサー タイルを接続します。 各ポートはセンサーのリボン コネクタを受け入れます。 付属の 5V USB ケーブルを介してハブに電力を供給します。 このボードを使用して、完全な触覚をカバーします。
- シングルチャンネルシリアルコンバータ — 単一センサーのプロトタイピング用。 センサー リボンをボードの 1 つのポートに接続します。 このボードは、USB シリアル インターフェイスをホストに公開します。
- 高速統合ボード — マルチチャンネル SPI/I2C。 チャネル配線図については、製品バンドルの通信プロトコル文書 (v1.0.5) を参照してください。
配線が完了したら、通信ボードの USB ケーブルを Windows x64 ホストに接続します。 ボードの電源 LED がすぐに点灯するはずです。 ホストは新しい COM ポート (Windows) を列挙します。 /dev/ttyUSB* (Linux)。
ドライバーと 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.xlsx26 mm M2826-Omega は最初の使用を指します)。 - センサーに負荷がかかっていないことを確認してください (検出面に接触がなく、重力負荷がかかっていない)。 クリック 校正 → ゼロベースライン。 PXSR は 100 フレームをキャプチャし、すべてのタクセルと 6 つの F/T 軸すべてのゼロロード オフセットを保存します。
- センサーが無負荷の状態で、右側のパネルの 6 軸バーがすべてゼロ付近 (±0.02 N / ±0.001 Nm 以内) を示していることを確認します。
データストリーミングの検証
ライブの力/トルク測定値とタクセルヒートマップを確認
PXSR を接続して調整したら、ロボット パイプラインに統合する前に、すべてのセンサー チャネルが正しくストリーミングされていることを確認します。
- センサー表面に優しく均一な指先圧力を加えます。 ヒートマップ パネルには、接触点に局所的な高圧領域が表示されるはずです。
- 表面上で指先をスライドさせ、PXSR オーバーレイで接触重心の追跡を観察します。
- センサーを横方向に押します (せん断力) — Fz がゼロ付近にある間、Fx および Fy バーが反応するはずです。
- SPI ハブ展開の場合: PXSR の各チャネル タブにライブ データが表示されていることを確認します。 データがゼロのチャネルは、リボン接続が緩んでいることを示します。取り付け直し、再試行してください。
オフライン分析用にデータをエクスポートするには、次を使用します。 録音→開始。 PXSR は、タイムスタンプ (Unix ミリ秒)、Fx、Fy、Fz、Tx、Ty、Tz、およびフルフラット タクセル配列の列を含む CSV を保存します。 各行は 1 つのサンプル フレームです。
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) ブラウザベースのライブ ヒートマップ表示と、ジョイントおよびカメラ ストリームと並行した同期エピソード録画を可能にします。 を参照してください。 開発者ウィキ 完全な登録ハンドシェイクおよびテレメトリ形式の場合。