感知系统是灵巧手实现精确操作的基础。本章深入探讨触觉、力觉、视觉等多种传感模态的原理与实现,重点介绍传感器标定、信号处理与多模态融合技术。通过学习本章,读者将掌握构建完整感知系统的理论基础与工程实践方法。
压阻式传感器通过材料电阻随压力变化的特性实现触觉感知。其基本原理遵循:
\[R = R_0(1 + GF \cdot \epsilon)\]其中 $R_0$ 为初始电阻,$GF$ 为应变系数,$\epsilon$ 为应变量。
FSR(Force Sensitive Resistor)设计
典型的FSR由导电聚合物层和电极阵列组成:
顶层电极
═══════════
导电聚合物
~~~~~~~~~~~
底层电极
═══════════
电阻与压力的关系近似为:
\[R = \frac{k}{F^n}\]其中 $k$ 为材料常数,$n$ 通常在0.5-1之间。
阵列化设计与串扰抑制
对于 $m \times n$ 的传感器阵列,采用行列扫描方式:
\[V_{ij} = \frac{R_{ref}}{R_{ref} + R_{ij}} \cdot V_{supply}\]串扰问题通过零电位法解决:保持非扫描行列为虚地电位,最小化漏电流路径。
电容式传感器通过介电层形变改变电容值:
\[C = \epsilon_0 \epsilon_r \frac{A}{d}\]其中 $\epsilon_0$ 为真空介电常数,$\epsilon_r$ 为相对介电常数,$A$ 为电极面积,$d$ 为间距。
柔性电容阵列设计
采用PDMS等柔性材料作为介电层,压力引起的电容变化:
\[\Delta C = C_0 \left(\frac{\Delta d}{d_0} + \frac{\Delta A}{A_0}\right)\]通过微结构设计(金字塔、微柱等)可提高灵敏度:
╱╲╱╲╱╲╱╲ <- 微金字塔结构
════════════ <- 顶层电极
············ <- 介电层
════════════ <- 底层电极
差分电容测量电路
采用电荷转移法实现高精度测量:
\[V_{out} = \frac{C_x - C_{ref}}{C_{fb}} \cdot V_{ref}\]通过相关双采样(CDS)技术消除1/f噪声和温漂。
光学方法通过图像分析获取接触信息,具有高空间分辨率优势。
基于标记点追踪的方法
在透明弹性体中嵌入标记点,通过追踪其位移重建三维形变场:
\[\mathbf{u}(x,y) = \sum_{i=1}^{N} \phi_i(x,y) \cdot \Delta\mathbf{p}_i\]其中 $\phi_i$ 为径向基函数,$\Delta\mathbf{p}_i$ 为标记点位移。
基于光度立体的方法
使用多个LED照明,通过光度立体视觉重建表面法向量:
\[\mathbf{n} = (L^T L)^{-1} L^T \mathbf{I}\]其中 $L$ 为光源方向矩阵,$\mathbf{I}$ 为图像强度向量。
事件驱动触觉传感
借鉴神经形态视觉,只在触觉变化时产生事件:
\[e(t) = \begin{cases} +1, & \text{if } \Delta p > \theta^+ \\ -1, & \text{if } \Delta p < \theta^- \\ 0, & \text{otherwise} \end{cases}\]显著降低数据率和功耗,适合高频振动检测。
基于机器学习的软传感器
利用深度网络从原始信号直接学习触觉特征:
\[\mathbf{f} = \text{CNN}(\mathbf{I}; \theta)\]其中 $\mathbf{I}$ 为传感器原始数据,$\theta$ 为网络参数。
基于应变片的六维传感器通过弹性体变形测量三维力和力矩:
\[\begin{bmatrix} F_x \\ F_y \\ F_z \\ M_x \\ M_y \\ M_z \end{bmatrix} = C \cdot \begin{bmatrix} V_1 \\ V_2 \\ \vdots \\ V_n \end{bmatrix}\]其中 $C$ 为标定矩阵,$V_i$ 为应变片输出电压。
Stewart平台结构设计
采用并联机构实现解耦:
○ <- 上平台
/|\
/ | \
/ | \
○───○───○ <- 下平台
每个支链测量轴向力,通过静力学分析计算六维载荷。
最小二乘标定
收集 $m$ 组标定数据($m > 6n$):
\[\min_C \|F_{known} - C \cdot V_{measured}\|^2\]通过SVD求解:
\[C = F_{known} \cdot V_{measured}^+\]其中 $V_{measured}^+$ 为伪逆。
温度补偿
考虑温度漂移的扩展模型:
\[F = C_0 \cdot V + C_T \cdot (T - T_0) + C_{VT} \cdot V \cdot (T - T_0)\]通过多温度点标定获取补偿系数。
静态解耦
通过标定矩阵的逆实现:
\[C_{decoupled} = \begin{bmatrix} c_{11} & 0 & \cdots & 0 \\ 0 & c_{22} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & c_{66} \end{bmatrix}\]动态解耦
考虑传感器动态特性:
\[G(s) = \frac{1}{ms^2 + cs + k}\]设计补偿器 $H(s)$ 使得:
\[G(s) \cdot H(s) = 1\]卡尔曼滤波器设计
状态空间模型:
\[\begin{align} \mathbf{x}_{k+1} &= A\mathbf{x}_k + B\mathbf{u}_k + \mathbf{w}_k \\ \mathbf{z}_k &= H\mathbf{x}_k + \mathbf{v}_k \end{align}\]其中 $\mathbf{w}_k \sim N(0,Q)$,$\mathbf{v}_k \sim N(0,R)$。
递推更新:
\[\begin{align} \hat{\mathbf{x}}_{k|k-1} &= A\hat{\mathbf{x}}_{k-1|k-1} + B\mathbf{u}_k \\ P_{k|k-1} &= AP_{k-1|k-1}A^T + Q \\ K_k &= P_{k|k-1}H^T(HP_{k|k-1}H^T + R)^{-1} \\ \hat{\mathbf{x}}_{k|k} &= \hat{\mathbf{x}}_{k|k-1} + K_k(\mathbf{z}_k - H\hat{\mathbf{x}}_{k|k-1}) \\ P_{k|k} &= (I - K_kH)P_{k|k-1} \end{align}\]相机标定
针孔相机模型:
\[\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \frac{1}{Z} \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \end{bmatrix}\]畸变校正(径向和切向):
\[\begin{align} x_{corrected} &= x(1 + k_1r^2 + k_2r^4 + k_3r^6) + 2p_1xy + p_2(r^2 + 2x^2) \\ y_{corrected} &= y(1 + k_1r^2 + k_2r^4 + k_3r^6) + p_1(r^2 + 2y^2) + 2p_2xy \end{align}\]深度图配准
RGB与深度图像配准变换:
\[p_{rgb} = K_{rgb} \cdot T_{rgb,d} \cdot K_d^{-1} \cdot p_d\]其中 $T_{rgb,d}$ 为外参变换矩阵。
固定相机标定(Eye-to-Hand)
求解方程 $AX = XB$:
\[T_{base}^{target} = T_{base}^{camera} \cdot T_{camera}^{target}\]通过多组数据构建优化问题:
\[\min_X \sum_{i=1}^{n} \|A_iX - XB_i\|_F^2\]移动相机标定(Eye-in-Hand)
求解方程 $AX = ZB$:
\[T_{gripper_i}^{gripper_j} \cdot T_{camera}^{gripper} = T_{camera}^{gripper} \cdot T_{camera_i}^{camera_j}\]使用对偶四元数或李代数求解。
传统特征检测
SIFT特征点检测的尺度空间构建:
\[L(x,y,\sigma) = G(x,y,\sigma) * I(x,y)\]其中 $G(x,y,\sigma) = \frac{1}{2\pi\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}}$。
DoG(Difference of Gaussian):
\[D(x,y,\sigma) = L(x,y,k\sigma) - L(x,y,\sigma)\]深度学习特征
使用CNN提取密集特征图:
\[F = \text{ResNet}(I; \theta)\]特征匹配通过相关性计算:
\[S_{ij} = \frac{f_i^T f_j}{\|f_i\| \|f_j\|}\]点云处理
ICP(Iterative Closest Point)配准:
| 最近点对应:$\mathcal{C} = {(p_i, q_j) | q_j = \arg\min_q |p_i - q|}$ |
视觉SLAM框架
前端跟踪:
\[\min_{\xi} \sum_{i} \rho\left(\|r_i(\xi)\|_{\Sigma_i}\right)\]其中 $r_i$ 为重投影误差,$\rho$ 为鲁棒核函数。
后端优化(Bundle Adjustment):
\[\min_{\{T_i\}, \{P_j\}} \sum_{i,j} \|p_{ij} - \pi(T_i, P_j)\|^2\]增量式编码器
通过正交信号实现4倍频:
A: ┌─┐ ┌─┐ ┌─┐
│ │ │ │ │ │
└─┘ └─┘ └─┘
B: ┌─┐ ┌─┐ ┌─┐
│ │ │ │ │ │
└─┘ └─┘ └─┘
分辨率计算:
\[\theta_{resolution} = \frac{360°}{PPR \times 4}\]绝对式编码器
Gray码避免多位同时变化:
\[G_i = B_i \oplus B_{i+1}\]多圈绝对值通过齿轮级联或磁记忆实现。
霍尔传感器阵列
磁场分布:
\(B_r = B_0 \cos(n\theta)\) \(B_{\theta} = B_0 \sin(n\theta)\)
其中 $n$ 为磁极对数。
角度计算:
\[\theta = \arctan2(B_y, B_x)\]导电墨水柔性电位器
电阻分布:
\[R(\theta) = R_{total} \cdot \frac{\theta}{360°}\]线性度校正通过查找表或多项式拟合实现。
柔性应变传感器
基于液态金属或碳纳米管:
\[\Delta R = GF \cdot \epsilon \cdot R_0\]其中应变系数 $GF$ 可达100以上。
三重冗余投票
\[output = \begin{cases} median(s_1, s_2, s_3), & \text{if all valid} \\ \frac{s_i + s_j}{2}, & \text{if one fault} \\ fault\_signal, & \text{if multiple faults} \end{cases}\]残差检测
基于模型的故障检测:
\[r = y_{measured} - \hat{y}_{model}\]| 当 $ | r | > \theta_{fault}$ 时触发故障报警。 |
时间戳对齐
线性插值:
\[x(t) = x_i + \frac{x_{i+1} - x_i}{t_{i+1} - t_i}(t - t_i)\]硬件触发同步
使用共同时钟源和触发信号确保同步采集。
非线性系统:
\[\begin{align} \mathbf{x}_{k+1} &= f(\mathbf{x}_k, \mathbf{u}_k) + \mathbf{w}_k \\ \mathbf{z}_k &= h(\mathbf{x}_k) + \mathbf{v}_k \end{align}\]线性化:
\[\begin{align} F_k &= \frac{\partial f}{\partial \mathbf{x}}\bigg|_{\hat{\mathbf{x}}_{k|k}} \\ H_k &= \frac{\partial h}{\partial \mathbf{x}}\bigg|_{\hat{\mathbf{x}}_{k|k-1}} \end{align}\]重要性采样:
\[w_i^{(k)} = w_i^{(k-1)} \cdot p(z_k|x_i^{(k)})\]重采样避免粒子退化:
\[N_{eff} = \frac{1}{\sum_{i=1}^{N} (w_i)^2}\]当 $N_{eff} < N_{threshold}$ 时触发重采样。
注意力机制融合
多模态特征加权:
\[f_{fused} = \sum_{i=1}^{M} \alpha_i \cdot f_i\]其中注意力权重:
\[\alpha_i = \frac{\exp(W_i^T f_i)}{\sum_{j=1}^{M} \exp(W_j^T f_j)}\]图神经网络融合
传感器节点间信息传递:
\[h_i^{(l+1)} = \sigma\left(W_{self}h_i^{(l)} + \sum_{j \in \mathcal{N}(i)} W_{neighbor}h_j^{(l)}\right)\]GelSight由MIT开发,通过光学方法实现高分辨率触觉感知。
系统架构
物体接触
↓
┌─────────┐
│弹性体层 │ <- 涂有反射涂层
└─────────┘
┌─────────┐
│ LED阵列 │ <- RGB照明
└─────────┘
┌─────────┐
│ 相机 │ <- 高速成像
└─────────┘
深度重建算法
通过光度立体视觉从RGB图像重建表面几何:
纹理识别
使用CNN进行材质分类:
# 网络结构示例
Conv2D(32, 3x3) → BatchNorm → ReLU → MaxPool
Conv2D(64, 3x3) → BatchNorm → ReLU → MaxPool
Conv2D(128, 3x3) → BatchNorm → ReLU → GlobalAvgPool
Dense(256) → Dropout(0.5) → Dense(num_classes)
识别精度可达95%以上(100类材质)。
滑动检测
通过光流分析检测切向运动:
\[v = \arg\min_v \int_{\Omega} (I(x+v,t+dt) - I(x,t))^2 + \lambda\|\nabla v\|^2 dx\]结合法向力估计摩擦系数:
\[\mu = \frac{F_{tangential}}{F_{normal}}\]BioTac模仿人类指尖结构,集成多种传感模态。
传感器结构
弹性外壳(硅胶)
╱ ╲
│ 导电液体 │ <- 阻抗测量
│ ┌──────┐ │
│ │刚性核│ │ <- 压力传感器
│ └──────┘ │
│ 电极阵列 │ <- 19个电极
╲ ╱
温度传感器
多模态信号处理
贝叶斯探索策略
主动触觉探索优化信息增益:
\[a^* = \arg\max_a H(X) - H(X|Z_a)\]| 其中 $H(X)$ 为当前熵,$H(X | Z_a)$ 为执行动作 $a$ 后的条件熵。 |
纹理分类性能
使用随机森林分类器:
| 指标 | GelSight | BioTac |
|---|---|---|
| 空间分辨率 | 40μm | 2mm |
| 力分辨率 | 0.01N | 0.01N |
| 频率响应 | 30Hz | 1kHz |
| 成本 | 中等 | 高 |
| 鲁棒性 | 中等 | 高 |
| 多模态 | 视触觉 | 力/振动/温度 |
应用场景建议
将视觉、触觉、力觉信号统一编码处理:
输入编码
各模态特征投影到统一维度:
\[\begin{align} f_{vision} &= W_v \cdot \text{CNN}(I_{rgb}) + b_v \\ f_{tactile} &= W_t \cdot \text{MLP}(S_{tactile}) + b_t \\ f_{force} &= W_f \cdot [F_x, F_y, F_z, M_x, M_y, M_z] + b_f \end{align}\]位置编码
空间位置编码:
\(PE_{(pos,2i)} = \sin(pos/10000^{2i/d})\) \(PE_{(pos,2i+1)} = \cos(pos/10000^{2i/d})\)
模态类型编码:
\[ME_i = \text{Embedding}(modality\_type_i)\]Cross-Modal Attention
跨模态注意力机制:
\[\text{Attention}(Q_i, K_j, V_j) = \text{softmax}\left(\frac{Q_i K_j^T}{\sqrt{d_k}}\right)V_j\]其中 $Q_i$ 来自模态 $i$,$K_j, V_j$ 来自模态 $j$。
Temporal Transformer
加入时间维度的注意力:
\[H_t = \text{MultiHead}(H_{t-1}, [H_{t-k}, ..., H_{t-1}], [H_{t-k}, ..., H_{t-1}])\]预测头设计
Masked Modality Modeling
随机遮蔽某个模态,预测缺失信息:
\[\mathcal{L}_{mask} = \|f_{masked} - \hat{f}_{reconstructed}\|^2\]Contrastive Learning
同一时刻不同模态作为正样本对:
\[\mathcal{L}_{contrastive} = -\log \frac{\exp(sim(f_i, f_j^+)/\tau)}{\sum_{k} \exp(sim(f_i, f_k)/\tau)}\]YCB抓取数据集表现
方法 成功率 推理时间
─────────────────────────────────────
单模态(视觉) 72.3% 5ms
单模态(触觉) 68.1% 3ms
早期融合 81.2% 8ms
晚期融合 79.5% 7ms
Transformer融合 89.7% 15ms
消融实验
模型量化
INT8量化保持精度:
\[q = \text{round}(x/s) + z\]其中 $s$ 为缩放因子,$z$ 为零点。
知识蒸馏
大模型指导小模型:
\[\mathcal{L}_{distill} = \alpha \mathcal{L}_{task} + (1-\alpha) KL(p_{teacher} || p_{student})\]边缘部署
本章系统介绍了灵巧手感知系统的核心技术:
关键公式回顾:
| 相机投影:$p = K[R | t]P$ |
练习 7.1:触觉传感器选型
某灵巧手需要检测0.1N-50N的抓取力,空间分辨率要求2mm,响应频率100Hz。请从压阻、电容、光学三种方案中选择合适的传感器类型,并说明理由。
提示:考虑各传感器的典型参数范围和成本。
练习 7.2:六维力传感器标定
给定标定数据矩阵 $V \in \mathbb{R}^{8 \times 100}$(8个应变片,100组数据)和对应的力矩阵 $F \in \mathbb{R}^{6 \times 100}$,写出最小二乘法求解标定矩阵的步骤。
提示:使用伪逆求解。
练习 7.3:相机内参标定
已知棋盘格标定板的角点在图像中的坐标和世界坐标,如何估计相机内参矩阵 $K$?假设无畸变。
提示:使用张正友标定法的基本原理。
练习 7.4:卡尔曼滤波器设计
设计一个卡尔曼滤波器融合IMU和编码器数据估计关节角度和角速度。状态向量 $\mathbf{x} = [\theta, \dot{\theta}]^T$。
提示:建立状态转移方程和观测方程。
练习 7.5:多指协同感知
设计一个算法,融合三个手指的触觉信息估计被抓物体的质心位置。每个手指提供接触点位置 $p_i$ 和法向力 $f_i$。
提示:使用力矩平衡原理。
练习 7.6:触觉SLAM
如何利用触觉传感器实现未知物体表面的建图?设计一个基于粒子滤波的触觉SLAM框架。
提示:将表面表示为点云或隐式函数。
练习 7.7:深度触觉预测
设计一个神经网络,从当前触觉图像预测下一时刻的触觉分布。考虑物体滑动和旋转的情况。
提示:使用ConvLSTM或Video Transformer。
练习 7.8:异构传感器标定
如何标定触觉传感器阵列与深度相机之间的空间变换关系?两者观测同一个球形标定物。
提示:构建优化问题最小化重投影误差。