SLAM 与计算机视觉基础

893 词

SLAM 基础概念、KD 树加速搜索和视觉图像处理入门。

SLAM 基础

SLAM(Simultaneous Localization and Mapping),同时定位与建图。

经典框架

  1. 传感器信息读取:相机/激光雷达数据采集与预处理
  2. 前端里程计:估算相邻帧之间的运动
  3. 后端优化:处理里程计误差和回环检测信息,优化全局地图
  4. 回环检测:判断是否到达过先前位置
  5. 建图:根据轨迹建立地图

传感器方案

传感器 优势 局限
单目相机 成本低、结构简单 缺少绝对尺度
双目相机 可通过基线计算深度 算力要求高
RGB-D 相机 直接获取深度 室外受阳光干扰
激光雷达 精度高、稳定 成本高、信息稀疏

FAST-LIO2

  • 基于迭代卡尔曼滤波的 LiDAR-惯性里程计
  • 融合 IMU 和激光雷达数据
  • 实时性好,适用于无人机和移动机器人

三维空间刚体运动

旋转表示

  • 旋转矩阵 $R \in SO(3)$:$3\times3$ 正交矩阵,$\det R = 1$
  • 欧拉角:roll/pitch/yaw,直观但有万向锁
  • 四元数:无奇异性,适合插值
  • 旋转向量:方向+角度

刚体变换

$$T = \begin{bmatrix} R & t \ 0 & 1 \end{bmatrix} \in SE(3)$$

  • $R$ 为旋转矩阵,$t$ 为平移向量
  • $SE(3)$ 为特殊欧氏群

KD 树

KD 树(K-Dimensional Tree)是一种用于多维空间搜索的二叉树结构。常用于 SLAM 中的最近邻搜索(ICP 匹配、回环检测)。

构建原理

  1. 选择方差最大的维度作为划分维度
  2. 取该维度的中位数作为划分点
  3. 左右子空间递归构建

搜索

  • 从根节点向下搜索到叶子节点
  • 回溯检查另一侧子树是否有更近的点
  • 时间复杂度从 $O(n)$ 降到 $O(\log n)$(平均)

计算机视觉基础

色彩分割

将图像按颜色划分为不同区域,常用于目标检测。

形态学处理

  • 膨胀:扩大亮区域
  • 腐蚀:缩小亮区域
  • 开运算:先腐蚀后膨胀(去除小噪点)
  • 闭运算:先膨胀后腐蚀(填充小孔洞)

深度相机

  • 结构光(Kinect v1):投射编码图案
  • ToF(Kinect v2):测量光的飞行时间
  • 双目立体:通过视差计算深度

深度相机在 ROS 中通过 depth_image_proc 处理,输出点云数据。