当前位置: 首页 > news >正文

视觉SLAM第13讲:实践,设计SLAM系统

主要目标:

1.实际设计一个视觉里程计;

2.理解SLAM软件框架是如何搭建的。

13.1 工程框架

1.bin存在编译好的可执行程序;

2.include存放头文件,include/myslam放自己写的头文件;

3.src存放源代码文件;

4.test放测试用文件;

5.config存放配置文件;

6.cmake_modules存放第三方库的cmake文件。

13.1.1 核心算法结构

程序=数据结构+算法

系统最基本的结构,关系如下图:

(1)图像,双目相机是一对图像,统称为一帧。

(2)特征,对每帧都提取其特征

(3)路标,根据不同帧之间的相同特征点,求解路标点坐标(多次看到某个特征可用三角化方法计算3D位置)

13.1.2 两大线程:前端、后端
1.前端

(1)作用

负责计算相邻图像的特征匹配,快速处理保证实时性。

(2)运行机理

插入图像帧-提取图像中特征-与上一帧进行光流追踪-根据光流结果计算该帧定位。必要时补充新特征点做三角化,前端处理结果作为后端优化初始值。

2.后端

(1)作用

负责优化整个问题,优化关键帧以保证良好结果。

(2)运行机理

拿到前端处理过的关键帧和路标点,对其优化,返回优化结果。优化规模在一定范围内,不随时间一直增长。

3.联合运行机理

       在前后端之间放一个地图模块来处理它们之间的数据流动。前端提取关键帧后往地图中添加新数据,后端检测到地图更新时运行一次优化,去掉地图中旧关键帧和地图点保持优化规模。见图。

13.1.3 其他模块

为了方便编码实现,还需要添加几个辅助模块:

(1)相机类

  管理内外参、投影函数

(2)配置文件管理类

  方便从配置文件中读取内容,配置文件中记录一些重要参数,方便调整

(3)Kitti数据集

  按照Kitti存储格式读取图像数据

(4)可视化模块

  观察系统状态。

13.2 实践

因博主在虚拟机上运行,该数据集较大,无法运行,后切换为Win+Ubuntu双系统。

http://www.dtcms.com/a/391526.html

相关文章:

  • 【论文阅读】WebWalker: Benchmarking LLMs in Web Traversal
  • 页面水印记录
  • 快速学习kotlin并上手 Android 开发指南
  • Linux进程控制(下):进程等待和进程替换
  • 如何检查数据库是否处于恢复模式
  • AI一周资讯 250913-250919
  • Livox-mid-360录制的.lvx2文件转化为.bag文件(TBC)
  • 【 svn】自动重试: cleanup + update
  • 有哪些Java学习书籍推荐?
  • 机动车登记证 OCR 识别:让车辆业务办理驶入 “快车道“
  • 在QT中使用FFmpeg实现录屏功能
  • 使用redisson实现延迟队列
  • 算法面试(1)-----两阶段检测器(如Faster R-CNN)和单阶段检测器(如YOLO、SSD)的区别与优劣?
  • 10cm钢板矫平机:一条“钢铁传送带”上的隐形战场
  • 数据结构与算法3:链式最基本的表示和实现——单链表
  • redisson延迟队列最佳实践
  • Netty ByteToMessageDecoder解码机制全解析
  • scrapy项目-爬取某招聘网站信息
  • 解决ubuntu下搜狗输入法在浏览器不可用的问题
  • 设计模式- 命令模式详解
  • 谈一谈Java成员变量,局部变量和静态变量的创建和回收时机
  • OSCP - Proving Grounds - Leyla
  • 9 月 19 日 IT 界热点大赏:科技浪潮下的创新与变革
  • 自动化脚本的零失误之路
  • Redis(三)Redis集群的三种模式
  • 网络环路:成因、影响与防环机制深度解析
  • 力扣刷题笔记(1)--面试150数组部分
  • 分割模型Maskformer
  • C# TCP的方式 实现上传文件
  • 高压消解罐:难溶物质消解的首选工具