视觉SLAM基础理论_努力努力努力-CSDN博客
视觉SLAM基础理论
别低头,王冠会掉;别流泪,坏人会笑
-
转载 VINS 细节系列 - readIntrinsicParameter()
一、 相机标定参数读取trackerData[0].readIntrinsicParameter(sConfig_file)1、 readIntrinsicParameter()函数void FeatureTracker::readIntrinsicParameter(const string &calib_file){ m_camera = CameraFactory::instance()->generateCameraFromYamlFile(calib_f2021-09-16 22:30:16 23 0 -
转载 参考系列2:优化库——ceres(三)实战案例
实战案例1.1 CmakeLists.txt配置cmake_minimum_required(VERSION 2.8)project(ceres)find_package(Ceres REQUIRED)include_directories(${CERES_INCLUDE_DIRS})add_executable(test test.cpp)target_link_libraries(test ${CERES_LIBRARIES})1.2 示例:ceres入门例子#i2021-08-18 13:18:39 46 0 -
转载 参考系列2:优化库——ceres(二)深入探索ceres::Problem
1-1 ???? Problem类函数总览整个Problem函数内部的核心操作实际上是由类对象内部的internal::scoped_ptr problem_impl_; 操作的,这层关系就好比STL 提供的 queue 和stack和deque的关系,queue 和stac的内部实际上都是deque实现的专业术语叫做配接器 (adapters);秀一把C++概念(可不看) 容器 (containers) : 各种数据结构,如 vect2021-08-18 13:00:38 54 0 -
转载 参考系列2:优化库——ceres(一)快速概览
1 ???? ceres快速概览基本概念对于任何一个优化问题,我们首先需要对问题进行建模,之后采用合适的优化方法,进行求解。在求解的过程中,往往需要进行梯度下降求取最优,这里涉及了导数计算。所以在代码中使用Ceres进行优化时,需要包含基本内容:建模、优化、求导方法。1.1 ????问题建模和求解1.1.1 问题建模对于形如 下 问题来说:这样便完成了一个优化问题的建模 !在写代码时,我们构建问题之后需要先定义代价函数,定义时需要指明求导方式,之后将残差块加入到2021-08-18 11:29:36 54 0 -
转载 VINS-Mono 中的 liftProjective() 函数
在VINS-Mono中的视觉前端里,经常会使用 liftProjective() 这个函数,如下所示:for (unsigned int i = 0; i < cur_pts.size(); i++){ Eigen::Vector2d a(cur_pts[i].x, cur_pts[i].y); //a为像素坐标 Eigen::Vector3d b; m_camera->liftProjective(a, b); //b为无畸变的归一化坐标 cur_un_2021-08-05 22:15:20 56 0 -
原创 相机、IMU、世界坐标系的转换关系
假设相机、IMU、世界坐标系的结构如下:2021-05-31 22:05:18 563 0 -
转载 从零开始一起学习SLAM | 掌握g2o顶点编程套路
小白:师兄,上一次将的g2o框架《从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码》真的很清晰,我现在再去看g2o的那些优化的部分,基本都能看懂了呢!师兄:那太好啦,以后多练习练习,加深理解小白:嗯,我开始编程时,发现g2o的顶点和边的定义也非常复杂,光看十四讲里面,就有好几种不同的定义,完全懵圈状态。。。师兄,能否帮我捋捋思路啊师兄:嗯,你说的没错,入门的时候确实感觉很乱,我最初也是花了些时间才搞懂的,下面分享一下。g2o的顶点(Vertex) 从哪里来的?师兄:在《2021-03-19 22:30:07 80 0 -
转载 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
小白:师兄师兄,最近我在看SLAM的优化算法,有种方法叫“图优化”,以前学习算法的时候还有一个优化方法叫“凸优化”,这两个不是一个东西吧?师兄:哈哈,这个问题有意思,虽然它们中文发音一样,但是意思差别大着呢!我们来看看英文表达吧,图优化的英文是 graph optimization 或者 graph-based optimization,你看,它的“图”其实是数据结构中的graph。而凸优化的英文是 convex optimization,这里的“凸”其实是凸函数的意思,所以单从英文就能区分开它们。2021-03-19 22:04:47 125 0 -
转载 从零开始一起学习SLAM | 掌握g2o边的代码套路
小白:师兄,g2o框架《从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码》,以及顶点《从零开始一起学习SLAM | 掌握g2o顶点编程套路》我都学完啦,今天给我讲讲g2o中的边吧!是不是也有什么套路?师兄:嗯,g2o的边比顶点稍微复杂一些,不过前面你也了解了许多g2o的东西,有没有发现g2o的编程基本都是固定的格式(套路)呢?小白:是的,我现在按照师兄说的g2o框架和顶点设计方法,再去看g2o实现不同功能的代码,发现都是一个模子出来的,只不过在某些地方稍微改改就行了啊师兄:是这2021-03-20 09:49:24 77 0 -