视觉SLAM
文章平均质量分 86
OORRANNGGE
视觉&激光SLAM研究生,QQ: 970075148
展开
-
逆深度参数化(Inverse Depth Parametrization)
参数化 在Bundle Ajustment中,参数空间通常呈现出高维度、非线性的特点。其中对于3D特征点的优化占据了大量的运算量。 3D特征点最常用的参数化方式为:Xi=(xi,yi,zi)TX_i = (x_i,y_i,z_i)^TXi=(xi,yi,zi)T 或者齐次式:Xi=(xi,yi,zi,1)TX_i = (x_i,y_i,z_i,1)^TXi=...原创 2018-11-05 08:20:09 · 5712 阅读 · 2 评论 -
Pangolin学习
之前一直在用OpenCV的Viz模块做三维显示,看了一些Pangolin的效果还是觉得Pangolin比较适合用于SLAM中的三维显示。刚在MAC下装了Pangolin,编译了几个demo,有的能运行,有的不能运行,把学习过程和遇到的问题在这里记录一下。CMakeLists.txt里面必须指定C++11才能成功编译,否则会报错。我加了2条:set(CMAKE_BUILD_TYPE “Rele...原创 2018-11-29 10:58:07 · 6218 阅读 · 5 评论 -
VINS源码笔记(一)
这段时间在看VINS,写一下总结。VINS需要在ROS框架下运行,而自己用的是Mac,不能很好的支持VINS,于是在把代码搞熟之后自己发挥动手能力在Mac下把VINS搭建了一遍,效果如下。VINS在ros框架下进行开发,主要由3个节点构成:feature_tracker, vins_estimator和pose_graph。对应代码位于同名文件夹下,其中config文件夹主要包含了不同dem...原创 2018-12-04 18:59:13 · 1572 阅读 · 6 评论 -
基于LK光流的Structure from Motion实现
这两天试着写了个Structure from Motion的实现,巩固一下对sfm细节的掌握,本来以为sfm应该挺简单的,但最后写完发现代码还是不少。最后在Kitti数据集上跑了一下,基本能够还原运动过程和特征点的位置,由于没有进行BA优化,所以总体的准确度还有一定的提升空间。理论推导部分Structure from Motion是单目视觉运动估计的一种常用方法,主要通过对极几何和求...原创 2018-12-17 17:16:33 · 1352 阅读 · 2 评论 -
s-msckf代码笔记(一)
s-msckf主要由image_processor跟msckf_vio两个节点组成。Image_processor中主要的算法位于ImageProcessor::stereoCallback()。一、前端图像处理image_processor::stereoCallback()接收双目图像数据,首先构建图像金字塔,用于光流跟踪、双目匹配,保存在curr_cam1_pyramid_,curr_...原创 2019-03-18 17:34:51 · 3165 阅读 · 3 评论 -
从零编写一个双目视觉SLAM系统(一):一个滑窗的PnP里程计
最近在尝试用光流法写一个基本的双目视觉SLAM,希望通过这个项目把SLAM的各个模块都自己实现一遍,以此加深对SLAM各个模块的理解。 目前刚完成了一个通过求解相邻帧PnP问题的双目视觉里程计,基本有了一个粗糙的效果,后续还需要把Bundle Adjustment、边缘化、回环检测和位姿图优化加上去。回环检测暂时设想用ORB来做。 在这里把这个初步的里程计的思路记录一下。...原创 2019-04-04 16:14:32 · 4023 阅读 · 2 评论 -
利用光流做双目立体匹配的2种去除外点的方法
利用光流跟踪可以对左右图像的特征点进行快速匹配,相比于利用描述子(Descriptor)进行匹配,使用光流跟踪速度更快,然而,使用光流法进行跟踪会返回一些错误跟踪的点,如下图中圈红圈的部分。最近看了一些开源代码,发现了2种用于去除外点的方法。1.基于RANSAC算法估计左右图像的基础矩阵该方法可以用cv::findFundamentalMat实现,且十分高效。可以看到第一幅图中红圈...原创 2019-03-27 20:08:46 · 2131 阅读 · 0 评论 -
LSD_SLAM代码笔记
Lsd_slam的主函数位于main_live_odometry.cpp中,其中主要的SLAM功能由slamNode.Loop();执行。Slam.Loop()主要为一个读取新图像并处理的死循环,由newImageCallback处理图像。newImageCallback执行slam的随机初始化和图像跟踪。1 随机初始化随机初始化函数为SlamSystem::randomInit1.1 ...原创 2019-05-06 15:18:20 · 1118 阅读 · 0 评论 -
s-msckf代码笔记(二)
二、VIOVIO中IMU的状态向量为:xI=(GIqTbgTGvITbaTGpITCIqTIpCT)T\textbf x_I=\begin{pmatrix}{}_G^I\textbf q^T & \textbf b_g^T & {}^G\textbf v_I^T & \textbf b_a^T & {}^G\textbf p_...原创 2019-05-10 10:59:05 · 2430 阅读 · 2 评论