Skip to content

LittleDang/mySLAM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目介绍

学习了slam的知识也算比较多,比较杂了,准备借着这个项目把所学的东西串起来。虽然一瞬间感觉slam系统哪个部分都已经会了,但是我相信写起代码来还是会遇到很多问题的。这个项目,我大概涉及几个部分的知识

  • VO前端
  • 后端优化
  • cmake/make

我打算从0开始写一个slam系统,这个系统不要求有多高的精度,只求能够把流程跑一遍。程序的结构上,前端和后端分开设计,做成可替换的模块。cmake/make主要是顺便学习一下怎么组织一个看起来比较高级的项目。

一些细节交代:

  • 开发环境:ubuntu18.04+ros melodic
  • 数据集:rgbd_dataset_freiburg2_pioneer_360

日期:2021/1/22 13:58

这个项目可能会烂尾,毕竟是我嘛,hhh。


更新

开发的过程中遇到了很多的bug,整个项目的方案也是改了又改,最后形成的方案如下:

  • VO前端采用的是frame-to-frame的最简单的方式。

  • 后端采用的是非实时的,即前端计算完成后再调用后端来优化。

  • 关键帧的选取为固定间隔

  • 可视化的模块采用rviz,所以必须和ros一起编译

  • 数据集也改了,旧的数据集VO前端不能很好的工作,最后换成了rgbd_dataset_freiburg1_desk,这个东西VO前端工作的比较正常。

  • 回环的选取,确实是使用了dbow,但是并不能够选取出足够多的信息,导致优化前后效果差不多,由于数据集比较小,所以暴力穷举了所有关键帧,通过重投影误差来判断效果。

    我彻底败给了回环了,我放弃使用回环检测了,直接手动添加groundtruth的部分数据作为回环 2021/2/20 15:19 更新

  • 优化方面采用的是g2o,方式是位姿图,比较懒得去求导(当然也可能是不会,我没去仔细思考),直接用默认的数值求导的方法。

日期:2021/2/18 18:05

这个项目可能看起来很简单,但是也算是完整的走了一套slam的流程,当然好像和一开始立下的flag差了点东西,cmakelists并没有写的很高端,只是最简单的把项目组织起来而已,并没有那些大型项目一样各种判断和检查,我也没有很搞清楚cmake的具体写法,里面的东西都是以往的经验和一些项目东拼西凑起来的。

项目介绍

  • config.hconfig.cpp其实就是一个读配置的通用文件,采用单例的设计模式。
  • camera.h相机模型。
  • frame.hframe.cpp 主要负责记录一些数据,包括color和depth以及特征匹配的一些信息。
  • vo.hvo.cpp主要负责视觉前端的工作。
  • loop.hloop.cpp主要负责后端的回环检测。
  • vertexSE3.hedgeSE3.h主要负责g2o的图优化,默认的资料太少,我嫌看起来太麻烦,自己写了个最简单的。
  • viewer.hviewer.cpp主要负责的是ros的一些接口,其实就是用了发数据给rviz进行可视化而已。
  • buildGroundtruth.cpp主要用来生成groundtruth
  • voTest主要用来测试视觉前端效果
  • slamTest主要用来测试整个slam的效果。
  • associations的排列顺序,timestamp rgb depth groundtruth

更多的细节看代码,代码可能质量不是很高,毕竟缝缝补补了好多次。当然也可能没有人会发现这个项目。: )

效果

groundtruth

beforeBA

afterBA

这里直接采用了手动添加回环的方式,取得了不错的效果,但是现实中哪有groundtruth给你手动添加,这点还需要努力想个办法。

主要问题有几个:

  1. 相似度检测,dbow可以解决,但是字典是个问题。
  2. 特征点集中在边缘点,而红外深度相机的误差也主要集中在边缘点,这是一对矛盾,理论上可以把路标也加进去优化,然后使用pnp的方式,但是我这里主要是走流程,并不是说为了取得多好的效果,就不折腾了。

loops

绿色的线是vo产生的,红色的线是优化后的,蓝色的线是回环

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages