SLAM
凵恧
这个作者很懒,什么都没留下…
展开
-
zed用ros双目标定
下载zed所依赖的zed包:[git clone https://github.com/stereolabs/zed-ros-wrapper.git](git clone https://github.com/stereolabs/zed-ros-wrapper.git)(参考官网安装编译就行)下载ros标定包:cd catkin_ws/src git clone https://g...原创 2019-10-29 14:22:42 · 1326 阅读 · 0 评论 -
使用zed摄像头跑ORB_SLAM2
zed-ros-wrapper安装首先对zed-ros-wrapper安装:具体操作步骤及代码的参考链接:https://github.com/stereolabs/zed-ros-wrapper.gitmkdir -p ~/catkin_ws/srccd ~/catkin_ws/srcgit clone https://github.com/stereolabs/zed-ros-wrap...原创 2019-09-17 14:35:25 · 1832 阅读 · 4 评论 -
Graph-based SLAM的Cartographer实践及其问题
原文链接:link具体实现步骤:原文链接走一遍就行,如下:sudo apt-get updatesudo apt-get install -y python-wstool python-rosdep ninja-buildmkdir catkin_wscd catkin_wswstool init srcwstool merge -t src https://raw.githubu...原创 2019-09-10 16:30:48 · 507 阅读 · 1 评论 -
ORB-SLAM2实践及遇到相关问题
具体步骤参考下列链接:link代码库:link最后一步执行Ros实际时,有如下代码解释:rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE其中有两参数:PATH_TO_VOCABULARY:视觉词典,一般可以直接使用catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txtPAT...原创 2019-09-09 16:34:59 · 518 阅读 · 0 评论 -
SLAM学习(八)——直接法
1.直接法特征值估计相机运动的缺点:关键的提取与描述子的匹配非常耗时。使用特征点时,忽略了特征点以外的所有信息。相机有时会运动到特征点缺失的地方,这些地方往往没有明显的纹理信息。我们有以下思路来克服这些缺点:a. 保留特征点,但只计算关键点,不计算描述子。同时使用光流法来跟踪特征点运动。b. 只计算关键点,不计算描述子。同时使用直接法来计算特征点下一时刻图像中的位置。c. 既不计...原创 2019-08-29 10:40:34 · 1236 阅读 · 0 评论 -
SLAM学习(七)——视觉里程计
前面写的是介绍运动方程和观测方程的具体形式,并讲解了以非线性优化为主的求解方法这篇关注基于特征点方式的视觉里程计算法。我们将介绍什么是特征点、如何提取特征点和匹配特征点,以及如何根据配对的特征点估计相机运动。1.特征点从图像中选取比较有代表性的点,这些点在相机视角发生少量变化后会保持不变,在经典SLAM中称之为路标,而在视觉SLAM中指图像的特征。从图像中判断哪些地方是同一个点,仅凭灰度知识...原创 2019-08-28 20:31:00 · 440 阅读 · 0 评论 -
SLAM学习(六)——非线性优化
1.最小二乘法的引出该篇文章将介绍如何通过优化处理噪声数据,并且由这些表层逐渐深入图优化本质,给出图优化解决算法。经典的SLAM模型由一个运动方程和一个观测方程组成,如下所示:我们希望通过带有噪声的数据推断位姿x和地图y,这构成一个状态估计问题。在SLAM过程中,由于数据随时间变化,在很长一段时间内研究者用扩展卡尔曼滤波器求解它,但它只关心当前时刻状态估计Xk;相对的,近年来,使用的非线性优...原创 2019-08-28 11:07:58 · 738 阅读 · 0 评论 -
SLAM学习(五)——相机与图像
前面文章主要介绍了“相机如何表示自身位置”,部分的解释了SLAM经典模型中变量的含义和运动方程部分。这篇文章讨论“机器人如何观测外部世界”,也就是观测方程部分。1.相机模型1.1针孔模型该文主要讲解使用针孔和畸变两个模型来描述整个投影过程。首先要区分几个坐标系:世界坐标系、(相机坐标系=?物理成像平面坐标系)、还有就是像素坐标系。再者就是内参(该式为从成像平面坐标系转换成像素坐标系过程):...原创 2019-08-27 15:55:16 · 271 阅读 · 0 评论 -
SLAM学习(四)——利群李代数
前几篇文章介绍了三维世界刚体运动的描述。因为在SLAM中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一个典型的方法是把它构建成一个优化问题,求解最有的R、t,使得误差最小化。1.利群李代数基础理论及指数关系其中利群与李代数就是为了弄清楚上面公式,具体推导过程可看相关书籍。该公式学要解决一下两个问题:1.如果上式成立,那么给定的某时刻R,我们就能求出一个Ф,他...原创 2019-08-27 14:49:21 · 627 阅读 · 0 评论 -
SLAM学习(三)——三维空间刚体运动(实践)
代码库:http://github.com/gaoxiang121.实践:Eigen上篇文章主要写了三维刚体运动的一些理论知识。这部分实践主要介绍使用Eigen来表示矩阵、向量,随后引申至旋转矩阵和变换矩阵的计算。在实践之前,您需要安装Eigen库,网上有很多安装教程,相信难不倒大家,然后就废话少说,直接上代码:代码文件名:eigenMatrix.cpp#include <ios...原创 2019-08-27 09:49:58 · 410 阅读 · 0 评论 -
SLAM学习(二)——三维刚体运动(理论部分)
使用库上篇文章介绍了C++的编译方法,并想放在一起,但觉得有点乱,就单独写一篇关于库的使用在一个C++工程中,并不是所有代码都会编译成可执行文件,只有带有main函数的文件才会生成可执行程序。而另外一些代码,我们只想把它们打包成一个东西,供其他程序代用。这个东西叫做库。...原创 2019-08-27 09:16:54 · 418 阅读 · 0 评论 -
SLAM学习(一)——Linux编译C++方法介绍
简单概括下SLAM主要步骤:传感器信息读取、视觉里程计(VO)、后端优化(Optimization)、回环检测(Loop Closing)、建图(Mapping)该文章主要介绍编程基础部分:在Linux进行编程的方法介绍程序名:helloSLAM.cpp#include<iostream>using namespace std;int mian(int argc, char...原创 2019-08-25 10:41:57 · 505 阅读 · 0 评论