ZeroHour's Site

Back

第4章 感知 (Perception)#

包含感知(1) 传感器 + 感知(2) 测距与视觉 + 感知(3) 特征提取


4.1 传感器分类 ⭐#

按测量对象分#

类型说明
本体感受 (PC)测量系统内部值编码器、陀螺仪、电池状态
外感受 (EC)测量环境信息超声波、摄像头、激光

按工作方式分#

类型说明
被动传感器测量环境进入的能量CCD 摄像机、罗盘
主动传感器发射能量再测量反应超声波、激光、结构光

传感器分类总表#

类别传感器系统PC/EC主动/被动
触觉接触开关、减震器EC被动
光栅栏、非接触接近EC主动
轮子/电机光电编码器PC主动
电位计PC被动
旋转变压器、同步机PC主动
导向罗盘EC被动
陀螺仪PC被动
倾角仪EC主动/被动
地面信标GPSEC主动
有源光学/RF/超声信标EC主动
主动测距超声传感器EC主动
激光测距仪EC主动
结构光EC主动
视觉CCD/CMOS 摄像机EC被动

4.2 传感器性能特征#

基本额定值#

特征含义
动态范围上下界之比,常用 dB 表示
分辨率两个值之间的最小差别
线性度输出随输入线性变化的程度
带宽/频率传感器读数速率

现场性能#

特征含义
灵敏度输出变化 / 输入变化
交叉灵敏度目标参数受环境参数影响的灵敏度
准确度输出与真实值的差别
精度测量结果的可重复性

误差类型#

类型特点处理
系统误差 (确定性)可建模 → 可预测标定消除
随机误差 (非确定性)不可预测概率描述

4.3 测距基本原理#

4.3.1 飞越时间法 (Time of Flight)#

基本公式: d=ct/2d = c \cdot t / 2

超声波激光
波速340 m/s\sim 340\ \mathrm{m/s} (声速)3×108 m/s3 \times 10^8\ \mathrm{m/s} (光速)
3m 飞越时间10 ms\sim 10\ \mathrm{ms}10 ns\sim 10\ \mathrm{ns}
精度受温度、镜面反射影响高但昂贵

超声波特点:

  • 频率: 40180 kHz40 \sim 180\ \mathrm{kHz}
  • 锥形波传播,开角 204020^\circ \sim 40^\circ
  • 测量圆弧段(非点),镜面反射问题
  • 声速公式: c=γRTc = \sqrt{\gamma \cdot R \cdot T}

激光测距三种方式:

  1. 脉冲式: 直接测量往返时间(分辨皮秒级)
  2. 差频法: 调频连续波与反射波差频
  3. 相移法: D=(λ/4π)θD = (\lambda / 4\pi) \cdot \theta,其中 λ=c/f\lambda = c / f

4.3.2 三角测量法#

利用几何性质确定物体距离:

  • 激光三角测量 (1D): D=fL/xD = f \cdot L / x,距离与 1/x1/x 成正比
  • 基线 bb 越大 → 分辨率越高
  • 焦距 ff 越长 → 分辨率越高(但体积大)

4.3.3 结构光 (Structured Light)#

  • 将已知光模式投影到环境
  • 摄像机捕获反射光
  • 简单三角测量确定距离
  • 例: Microsoft Kinect (IR projector + IR camera)

4.3.4 毫米波雷达#

  • 频率 30100 GHz30 \sim 100\ \mathrm{GHz},波长 110 mm1 \sim 10\ \mathrm{mm}
  • 测距范围大(可达 200m200\mathrm{m} 以上)
  • 24 GHz24\ \mathrm{GHz} (中短距/BSD) vs 77 GHz77\ \mathrm{GHz} (长距/ACC)

传感器对比#

毫米波雷达超声波激光雷达红外
最大距离200 m200\ \mathrm{m}15 m15\ \mathrm{m}150 m150\ \mathrm{m}35 m35\ \mathrm{m}
角度测量较好很好不能
环境限制全天候风沙雨天温度
成本中低

4.4 里程表法与编码器#

编码器类型#

  • 增量式编码器: 测量相对转动,典型分辨率 2000 脉冲/转
  • 绝对式编码器: 每位置有唯一编码(格雷码),断电不丢失

里程表法#

  • 积分编码器数据 → 位置估计
  • 优点: 直观简单
  • 缺点: 误差累积无界
  • 三类误差: 路程误差、转动误差、漂移误差

4.5 导向传感器#

传感器类型原理缺点
罗盘EC测量地球磁场弱磁场,易受磁干扰,室内不适用
陀螺仪PC保持相对固定参考系方向漂移

4.6 计算机视觉基础#

4.6.1 成像原理#

透视投影模型:

  • 3D 景象 → 2D 平面(丢失长度、角度信息)
  • 保留: 直线仍然是直线
  • 消失点 (vanishing point): 平行线在图像中汇聚点

4.6.2 摄像机内参矩阵 KK#

[uv1]=[fufucotθu00fv/sinθv0001][XcYc1]\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} f_u & -f_u \cot\theta & u_0 \\ 0 & f_v / \sin\theta & v_0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} X_c \\ Y_c \\ 1 \end{bmatrix}

4.6.3 镜头畸变#

  • 径向畸变: 桶形畸变 / 枕形畸变
  • 还包括切向畸变和法向畸变

4.6.4 张正友标定法#

  1. 打印模板贴平面
  2. 从不同角度拍摄
  3. 检测特征点
  4. 求内外参数
  5. 求畸变系数
  6. 优化求精

4.7 图像预处理与滤波#

处理流程#

图像 → 预处理(阈值化/滤波) → 边缘检测 → 聚类/分割 → 直线提取(霍夫变换) → 特征提取 → 匹配

高斯平滑#

去除高频噪声,图像 II 与高斯函数 GG 求卷积:

Ifiltered=GII_{\text{filtered}} = G * I

4.8 边缘检测 ⭐常考#

Canny 边缘检测#

核心思想: 将平滑和求导结合在一个操作中

步骤:

  1. 图像 IIGG' (高斯一阶导数) 卷积: R=GIR = G' * I
  2. RR 取绝对值
  3. 超过阈值 TTR|R| 局部极值做标记
  4. 非最大抑制 → 单像素宽度的轮廓

常用梯度算子 ⭐重要#

Roberts (2×2):

Gx=[1001]Gy=[0110]G_x = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \qquad G_y = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix}

Prewitt (3×3):

Gx=[101101101]Gy=[111000111]G_x = \begin{bmatrix} -1 & 0 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 1 \end{bmatrix} \qquad G_y = \begin{bmatrix} -1 & -1 & -1 \\ 0 & 0 & 0 \\ 1 & 1 & 1 \end{bmatrix}

Sobel (3×3):

Gx=[101202101]Gy=[121000121]G_x = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} \qquad G_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix}

Sobel 中心行/列权重为 2,对噪声更鲁棒。


4.9 霍夫变换 (Hough Transform) ⭐#

用途#

从边缘图像中提取直线。

原理#

图像空间中的直线 y=mx+by = mx + b → 参数空间中的点 (m,b)(m, b)。 共线点在参数空间中交于同一点 → 投票机制。

步骤#

  1. 产生 2D 阵列 A[m,b]A[m,b],初始化为 00
  2. 对每个边缘像素 (xp,yp)(x_p, y_p),遍历所有 m,bm, b:
    • yp=mxp+by_p = m \cdot x_p + b,则 A[m,b]+=1A[m,b] \mathrel{+}= 1(投票)
  3. 搜索 AA 中最大值 → 对应最显著的直线

4.10 双目立体视觉 ⭐重要#

理想对齐情况#

两摄像机水平放置,基线 bb,焦距 ff,光轴平行。

xlf=XZ,xrf=XbZ\frac{x_l}{f} = \frac{X}{Z}, \qquad \frac{x_r}{f} = \frac{X - b}{Z}

视差: d=xlxrd = x_l - x_r

深度公式:

Z=bfdZ = \frac{b \cdot f}{d}

关键结论#

  1. 深度与视差成反比 → 近物体更准确
  2. 视差与基线 bb 成正比bb 大精度高(但公共视场小)
  3. 共轭对处于表偏振线 (epipolar line) 上

一般情况#

两摄像机间存在旋转 RR (3×3) 和平移 r0r_0:

rr=Rrl+r0r'_r = R \cdot r'_l + r_0
  • 完全校准需 4\geq 4 个共轭对(12 未知数,12 方程)
  • N>4N > 4 时最小二乘: r=(ΦTΦ)1ΦTYr = (\Phi^{\mathsf{T}} \Phi)^{-1} \Phi^{\mathsf{T}} Y

深度恢复(校准后)#

已知 (xl,yl)(x_l, y_l), (xr,yr)(x_r, y_r)RR, r0r_0, ff:

  1. 构造三个方程
  2. 任意两个解出 zlz'_lzrz'_r
  3. 得到 3D 位置

对应性问题#

  • 双目视觉的关键挑战:左右图像中匹配同一物点
  • ZLoG(高斯的拉普拉斯零相交):辨别特征点
  • 灰度级别匹配:沿表偏振线匹配灰度波形

立体视觉实例(课件)#

  • 竖直边缘滤波器: [1  2  4  2  10  2  4  2  1][1\; 2\; 4\; {-2}\; {-10}\; {-2}\; 4\; 2\; 1]
  • 深度图像: 亮 = 近,暗 = 远

4.11 景深测距#

  • 锐度比较: 比较不同焦距下的子图像梯度 → 最大锐度 = 正确聚焦
  • 3 台摄像机分别聚焦远/中/近,提高搜索效率

4.12 光流法#

光流约束方程:

uEx+vEy+Et=0u \frac{\partial E}{\partial x} + v \frac{\partial E}{\partial y} + \frac{\partial E}{\partial t} = 0
  • u=dx/dt,  v=dy/dtu = dx/dt,\; v = dy/dt: 光流分量
  • 仅能得到方向,uuvv 不唯一 → 需附加约束(光流平滑性)

4.13 误差传播#

输出协方差矩阵:

CY=FXCXFXTC_Y = F_X \cdot C_X \cdot F_X^{\mathsf{T}}

其中 FXF_X 是雅可比矩阵(f(X)f(X) 梯度阵的转置)。


4.14 特征提取#

环境建模层次#

层次数据量独特性
原始数据激光扫描、灰度图
低级特征一般直线、圆
高级特征门、车

直线提取方法#

  • 最小二乘
  • 加权最小二乘(误差与 r2r^2 成正比时用)

考前速记#

要点记忆
传感器两维度分类PC/EC × 主动/被动
飞越时间公式d=ct/2d = c \cdot t / 2
双目深度公式Z=bf/dZ = b \cdot f / d
Sobel 3×3GxG_x 中心列 [2,0,2][-2,0,2]GyG_y 中心行 [2,0,2][-2,0,2]
Canny 核心GIG' * I = 先平滑后求导
霍夫变换图像空间直线 → 参数空间点,投票机制
非最大抑制产生单像素宽度轮廓
第4章 感知 (Perception)
https://zerohour.fun/blog/mobile_robotics/ch4-perception
Author ZeroHour
Published at 2026年5月13日
Comment seems to stuck. Try to refresh?✨