软件和驱动程序设置
安装 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方法:
| 方法/属性 | 描述 | 退货 |
|---|---|---|
| 传感器.start() | 开始串流; 非阻塞 | 没有任何 |
| 传感器.stop() | 干净地停止流 | 没有任何 |
| 传感器.stream() | 生成器以配置的 Hz 生成 TactileFrame 对象 | 发电机[触觉框架] |
| 传感器.最新() | 无阻塞地返回最新的帧 | 触觉框架 |
| 传感器.set_rate(hz) | 设置采样率(USB-C 为 50–500 Hz,BLE 为 50–200 Hz) | 没有任何 |
| 传感器.校准() | 针对当前静载负载的零偏移校准 | 没有任何 |
| 传感器.串行 | 设备序列号字符串 | 斯特 |
| 传感器变体 | “指尖”| “指垫”| “棕榈” | 斯特 |
触觉数据格式
每个 触觉框架 包含:
| 场地 | 类型 | 描述 |
|---|---|---|
| 帧.timestamp_ns | 整数 | 纳秒时间戳(单调,主机时钟) |
| 框架.压力图 | np.ndarray(H,W)float32 | 每个紫杉醇的压力(以 kPa 为单位)。 形状因型号而异:指尖为 8×8,手掌为 16×12。 |
| 框架.contact_mask | np.ndarray (H, W) 布尔值 | 当压力超过接触阈值时为真(默认值:5 kPa) |
| 框架.接触面积_mm2 | 漂浮 | 活性紫杉醇面积总和(mm²) |
| 框架.total_force_n | 漂浮 | 所有税元的综合法向力(以牛顿为单位) |
| 框架.contact_centroid | (浮动,浮动) | (row, col) 紫杉醇坐标中接触区域的质心 |
| 接触框架 | 布尔值 | 如果total_force_n超过接触阈值,则为真(默认值:0.05 N) |
| 帧序列 | 整数 | 单调递增的帧序列号 |
实时热图可视化
SDK 提供了一个可立即运行的实时可视化工具。 直接从命令行运行它:
或者使用以下命令嵌入到您自己的脚本中 帕克西尼维兹 模块:
ROS2接口
ROS2桥发布了 传感器消息/图像 (压力图)和自定义 paxini_msgs/TactileFrame 每个传感器的主题。 需要 ROS2 Humble 或 Jazzy。
对于多传感器设置,每个设备都以其序列号发布。 您可以使用标准 ROS2 重新映射来重新映射启动文件中的主题。
机械臂集成
要将 Paxini 数据与机器人手臂关节状态同步,请使用 帕西尼同步 模块。 它根据共享时钟对所有传感器帧进行时间戳记,并提供一个阻塞 API,可生成同步的(arm_state、tactile_frame)对:
MultiSourceSync 当手臂和传感器速率不同时,该类处理插值。
三大问题
未检测到传感器。 按顺序检查:(1) 尝试使用不同的 USB-C 电缆 — 有些电缆只能充电,不传输数据。 (2) 在Linux上,运行 sudo python -m paxini.install_udev 然后拔下/重新插入传感器。 (3) 确认传感器 LED 常亮(不闪烁)——闪烁表示处于固件更新模式; 按住重置按钮 5 秒即可退出。
传感器需要校准或阈值设置得太高。 跑步 sensor.calibrate() 传感器卸载(无接触)。 如果问题仍然存在,请检查传感器型号是否与您的安装座匹配 - 由于紫杉醇面积较大,安装在指尖上的手掌传感器将显示非常低的压力值。 另请确认固件版本 1.2+ python -m paxini.discover.
ARM 接口时钟和传感器时间戳相差超过 max_dt_ms。 这通常是由于arm SDK返回过时的联合状态(例如,以较低速率缓冲)引起的。 增加 max_dt_ms 到 10.0 作为第一次测试,然后调查为什么 ARM 状态刷新率低于预期。 对于 USB 臂,确认 USB 轮询速率没有受到电源管理的限制(sudo powertop 在 Linux 上)。
还卡住了吗? 发表在 论坛提问帖 与您的操作系统、SDK 版本(paxini.__version__),以及准确的错误输出。