SLAM学习(二)初识SLAM

本文介绍了视觉SLAM(Simultaneous Localization and Mapping)的基本概念,包括不同类型的相机及其特性,如单目、双目和深度相机。同时,还详细阐述了经典视觉SLAM框架的各个模块,例如视觉里程计、后端优化、回环检测和建图,并提供了Ubuntu 14.04环境下编程环境的搭建指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 视觉SLAM框架的模块及其相应任务
    1. 1、我在什么地方?——定位
      2、周围环境是什么?——建图
      1、单目相机(monocular)
      三维空间的投影
      平移之后才能计算深度(近大远小,近快远慢)
      无法确定真实尺度(尺度不确定性)
      2、双目相机(stereo)
      计算量比较大
      两目之间距离需要较大
      3、深度相机(RGB-D)
      Kinect、Kinect v2
      易受日光干扰,主要用于室内。
      

      经典视觉SLAM框架

    2. 1、传感器信息读取。
      主要为相机图像信息的读取和预处理
      码盘和惯性传感器等信息的读取和同步
      2、视觉里程计(visual odometry),VO
      估算相邻图像间相机的运动,以及局部地图的样子,也称为前端,存在累计误差,也就是漂移
      3、后端优化(optimization)
      接受视觉里程计测量的相机位姿,及回环检测的信息,对他们进行优化,得到全局一致的轨迹和地图,称为后端
      4、回环检测(loop closing)
      判断机器人是否达到过先前的位置,检测到回环,把信息提供给后端处理,根据图像间的相似性进行判断。
      5、建图(mapping)
      根据估计的轨迹,建立与任务相对应的地图
      度量地图:精确强调物体间的位置关系
      拓扑地图:去掉地图的细节
      2D栅格地图,2D拓扑地图,3D点云地图,3D网格地图
      
      在视觉SLAM中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配等
      后端则主要是滤波与非线性优化算法。
      
      1、运动方程
      2、观测方程

       

  2. 搭建编程环境,为开发和实验做准备
    1. ubuntu 14.04
    2. 虚拟机(4GB以上)或者双系统(启动盘U盘)(推荐)
    3. 安装过程中不要选择“安装中下载更新”,并且断开网络连接
    4. 安装完成后把软件源设置离得近的服务器上
  3. linux下编译并运行程序,调试
    1. 将代码放置家目录(/home)的“slambook_sin”下,称为代码根目录,放置标准程序。再建一个“slambook_cos”目录用于自己编程。
    2. vim进入slambook_sin/ch2/helloSLAM.cpp
    3. 编译成可执行文件
    4. g++ helloSLAM.cpp

      如果出错,安装g++

      sudo apt-get install g++

      执行a.out文件

      ./a.out

       

  4. 掌握cmake的基本使用方法
    1. 用cmake制作工程,再编译
    2. 新建CMakeList.txt文件,指定工程名和可执行程序。
    3. 在当前目录下,调用cmake对工程进行分析
      cmake .

      再用make命令对工程进行编译

      make
      ./helloSLAM

      中间文件

      mkdir build
      cd build
      cmake ..
      make

      使用库

    4. add_library(hello libHelloSLAM.cpp)
      cd build
      cmake ..
      make
      add_library(hello_shared SHARED libHelloSLAM.cpp)

      分别得到libhello.a(静态库)       libhello_shared.so(共享库)

    5. 再编写libhello的头文件

      add_executable(useHello useHello.cpp)
      target_link_libraries(useHello hello_shared)

      使用IDE

    6. Kdevelop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值