Skip to main content

概述

本篇实践介绍如何将 tactile_residual 连续残差信号渲染为终端网格并调整显示阈值。应用场景包括观察信号强度变化、比较区域响应和选择应用侧接触阈值。 对应的 Python 示例为 9.tactile_residual_view.py,C 示例为 7_tactile_residual_view.c。 触觉数据的字段定义见触觉,本页说明集成流程和运行时行为。
本文的网格渲染、字符梯度规则、阈值行为、未标定时的表现均为实测结果。有接触时的画面未实测——手套需要有人戴着并真实触碰才会产生残差。

前置条件

硬件

软件

前序步骤

先做触觉标定。 残差是相对标定基线算的,没有基线就没有残差——实测未标定时这条流精确恒为 0。见触觉标定。

残差与二值的关系

两条流出自同一个模型,tactile_binary 是 tactile_residual 过了一道阈值。需要现成判定就用前者,需要自己控制判据就用后者。

网格与二值视图完全一致

tactile_residual 长度同样是 744,无效通道位置同样是那 218 个,映射同样是行优先 index = row * 31 + col。24 × 31 = 744,网格就是传感器阵列的物理排布。 所以两个视图的手形轮廓一模一样,切换着看不会错位。通道数的来历见数据订阅:回调。

六级字符梯度

这是与二值视图最大的显示差异: 梯度的映射是按比例切的:
值落在阈值的 0 到 1/6 显示 .,1/6 到 2/6 显示 :,以此类推,到 * 就快够着阈值了。梯度是相对阈值的,调阈值会让整个梯度重新分布,不是绝对刻度。 无效通道的判据用的是浮点近似比较而不是 == -1.0,避开相等比较的坑:

阈值行为实测

钳制只有下限:
没有上限。 这与二值视图的灵敏度不同——那个在示例层被钳在 [0.5, 3.0]。残差阈值由应用侧设定,示例不设定边界。 threshold = 0 是个特例:cell_for 里 value <= 0.0 or threshold <= 0.0 这一条会让所有有效通道都渲染成 .,# 永不出现。想「显示一切」不能靠把阈值设成 0,要设一个很小的正数。 交互式终端下 + / - 每次调 0.1(THRESHOLD_STEP = 0.1)。

状态行

peak 带符号是关键——负峰值说明整片区域比标定基线还轻,可能是手套没戴紧或者标定时手的姿态与现在差太多。 seq 可以用来确认流没有停:数字不动就是没收到新帧。

渲染限流

与二值视图一样限到 10 Hz:
流是 130 Hz,回调在 SDK 工作线程上按帧触发。不限流会把这条线程耗在终端输出上。

集成步骤

完整示例:Python tactile_residual 视图 和 C tactile_residual 视图。 以下为接入片段。Python 导入与 manager 初始化、C 初始化与连接错误分支、回调定义均沿用 Python 示例 和 C 示例。C 每次调用应检查返回状态,失败时按 Python 示例 和 C 示例 释放已有资源并退出。

1. 连接目标手套

按序列号连接目标手套。多设备环境不要依赖扫描结果顺序。

2. 订阅残差流

残差流不需要下发设备参数。回调中读取有符号触觉单元数组,自行应用阈值并限流渲染。

3. 限时运行并收尾

视图退出时先关闭订阅,再断开设备。回调线程不直接执行阻塞渲染。

运行与输出

实测输出(未标定、无人佩戴):
以上为实机运行结果,设备是右手 Wuji Glove,手套静置无人佩戴且未做触觉标定。 网格轮廓与二值视图完全相同,因为无效通道位置一致。peak=+0.000 与 above=0 是未标定的典型表现。seq 在递增,说明流本身是通的——流有数据不等于流有内容,这正是 seq 字段的用处。 标定并戴上手套之后,接触区域会按强度显示 . : - = + * 的梯度,达到阈值的位置变成 #,peak 给出当前最强残差。

注意事项

扩展用法

用 peak 找阈值

这是本示例最实用的用法:保持应用场景中的最小接触,观察 peak 的稳定值,并将阈值设为略低于该值。比拍脑袋猜或者反复调灵敏度靠谱得多。

梯度用来看接触边缘

# 只标记超过阈值的位置,梯度用于显示接触向边缘衰减的过程。抓握姿态分析、接触面积估计等任务,梯度信息比二值有用。

负残差是个信号

peak 长期为负说明整只手套都比标定基线轻。常见原因是手套戴得比标定时松。发现这种情况先重新佩戴手套后重试,不要靠调低阈值硬凑。

需要判定就用二值流

自定义阈值逻辑需要处理:要处理噪声、要做时间滤波、要定滞回。仅需判断是否接触时,可使用 tactile_binary,相关处理由 SDK 完成。残差适用于自定义判据与默认判据不一致的场景。

相关内容