【SLAM】初识SLAM

2.1视觉SLAM

  • 单目相机
    • 通过视差得知物体的相对远近
    • 尺度不确定性(Scale Ambiguity)
  • 双目相机
    • 极几何推算距离
    • 计算量大,需要GPU和FPGA等加速
  • 深度相机
    • 物理测量距离,节省算力
    • 范围窄,噪声大,视野小,易受日光干扰,无法测量透射材质

2.2经典视觉SLAM框架

视觉SLAM框架

  1. 传感器信息读取:
    1. 相机图像(编码器,IMU)信息读取和预处理
  2. 前端视觉里程计 Visual Odometry:
    1. 估算相邻图像间相机的运动和局部地图
    2. 计算机视觉, 图像特征提取匹配
  3. 后端(非线性)优化 optimization:
    1. 接受不同时刻视觉里程计相机位姿 & 回环检测信息, 处理噪声问题
    2. 优化得全局一致的轨迹 & 地图
    3. 滤波与非线性优化
  4. 回环检测 Loop closure:
    1. 判断机器人是否到达过先前位置
    2. 利用图像间的相似性
  5. 建图 mapping
    1. 度量地图 Metric Map: 表示地图中物体位置关系
      1. 稀疏 Sparse: 抽象路标组成, 忽略非路标, 用于定位
      2. 稠密 Dense: 重建所有, 用于导航, 小方块/小格子
    2. 拓扑地图 Topological Map: 节点与边组成, 仅考虑连通性

2.3数学建模

  • t = 1... K t=1 ... K t=1...K 离散时刻中发生的事件
  • x 1 . . . x K x_1 ... x_K x1...xK 各时刻的位置
  • y 1 . . . y N y_1 ... y_N y1...yN 路标点
  • u k u_k uk 运动传感器的读数/输入
  • w k w_k wk 噪声
  • O \mathcal{O} O 记录k时刻观察到j路标的集合

建模->状态估计问题

  • 运动方程 x k = f ( x k − 1 , u k , w k ) , k = 1... K x_k=f(x_{k-1},u_k,w_k), k=1...K xk=f(xk1,uk,wk),k=1...K
  • 观测方程 z k , j = h ( y j , x k , v k , j ) , ( k , j ) ∈ O z_{k,j}=h(y_j,x_k,v_{k,j}), (k,j)\in\mathcal{O} zk,j=h(yj,xk,vk,j),(k,j)O

分类:

  • 线性/非线性系统: 运动,观测方程是否为线性
  • 高斯/非高斯系统: 噪声是否服从高斯分布
    • 线性高斯LG系统->卡尔曼滤波KF得出无偏最优估计
    • 非线性非高斯NLNG系统->扩展卡尔曼EKF+非线性优化求解

猜你喜欢

转载自blog.csdn.net/weixin_46143152/article/details/126804765