
slam
荆黎明
这个作者很懒,什么都没留下…
展开
-
error: ‘decay_t’ is not a member of ‘std’
原创 2022-01-03 15:59:06 · 1349 阅读 · 0 评论 -
hidden symbol `_ZNK3fmt2v86detail10locale_ref3getISt6localeEET_v‘
主要的原因是Sophus中要使用fmt库,而自己配置了炒鸡长的时间也没有配置成功,故而不使用fmt库了。重新cmake Sophus库并将cmake的一个指令打开"- DUSE_BASIC_LOGGING=ON"。问题得以解决。最终自己又将该指令打开了,Eigen版本是3.4.4. fmt的版本是7.1.1。莫名其妙的又安装成功了,自己就是一个菜鸡。...原创 2021-12-31 20:24:19 · 760 阅读 · 0 评论 -
ORB-SLAM2 三种跟踪模式总结(参考关键帧跟踪、恒速模型跟踪、重定位跟踪)
总体概要在系统初始化成功后,mState状态会置位,下一帧来临后,首先检查上一帧的地图点是否需要进行替换,如果需要替换则替换。由于刚初始化完成,所以相机是没有速度的,所以首先使用参考关键帧进行跟踪当前帧。当系统刚发生重定位后,也需要使用参考关键帧进行跟踪。在正常情况下,系统使用恒速模型进行跟踪当前帧。若使用恒速模型跟踪失败,则使用参考关键帧进行跟踪。若使用参考关键帧进行跟踪也没有跟踪到当前帧,则系统只能进行重定位了。若系统中的关键帧数量过少,也就是说系统刚开始运行就要重定位,那么就重置系统,重新初始化,重原创 2021-12-29 19:25:53 · 4405 阅读 · 0 评论 -
ORB-SLAM2代码 单目初始化总结
ORB-SLAM2代码 单目初始化ORB-SLAM2在加载系统过程中,首先为系统创建地图,关键帧数据库,然后在创建的Tracking、LoaclMapping、LoopClosing线程中传入地图和关键帧数据库地址指针,可以实现数据共享。然后通过设置进程间的指针,可以实现进程间的信息调用。当系统传入图像数据时,要为每一幅图像构造一帧数据,在构造每帧数据时,为每一幅图像构造了八层图像金字塔,构造完成图像金字塔之后。对每层图像进行网格的划分,在每个cell中提取FAST角点,当提取不出来角点时,降低阈值重新原创 2021-12-16 10:54:36 · 3287 阅读 · 0 评论 -
OpenCV Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage
我的代码中的主要问题是配置文件中没有添加“YAML:1.0”,导致一直读取错误,而使用yaml-cpp库而不会发生这样的问题。原创 2021-12-12 16:28:54 · 4020 阅读 · 0 评论 -
ros service 通信失败问题
创建的ros::NodeHandle 节点不能使用局部初始化,需要使用全局初始化,否则无法通信,具体原因不明!!!原创 2021-12-01 10:59:46 · 1943 阅读 · 0 评论 -
what(): Character [ ] at element [19] is not valid in Graph Resource Name [add_two_ints_client X Y
主要的问题是ros初始化时,中间有空格,将空格去掉即可解决!!!原创 2021-11-27 22:40:06 · 327 阅读 · 0 评论 -
imu静态初始化
原创 2021-11-10 11:47:37 · 618 阅读 · 1 评论 -
lego-loam 点云分割:相同物体or不同物体判断
原创 2021-10-09 16:43:59 · 217 阅读 · 0 评论 -
计算机视觉攻略 笔记14 (计算两幅图像之间的单应矩阵)
没有伞的孩子要学会奔跑计算两幅图像之间的单应矩阵单应矩阵( Homography) H,它描述了两个平面之间的映射关系。若场景中的特征点都落在同一平面上(比如墙、地面等),则可以通过单应性来进行运动估计。这种情况在无人机携带的俯视相机或扫地机携带的顶视相机中比较常见。...原创 2020-08-24 09:32:42 · 1377 阅读 · 0 评论 -
计算机视觉攻略 笔记12 (计算图形对的基础矩阵)
计算图形对的基础矩阵本节将探讨同一场景的两幅图像之间的投影关系。可以移动相机,从两个视角拍摄两幅照片;也可以使用两个相机,分别对同一个场景拍摄照片。如果这两个相机被刚性基线分割,我们就称之为立体视觉。如果两幅图像之间有一定数量的已知匹配点,就可以利用方程组来计算图像对的基础矩阵。这样的匹配项至少要有 7 对。示例程序#include <iostream>#include <vector>#include <opencv2/core/core.hpp>#i原创 2020-08-19 17:59:46 · 470 阅读 · 0 评论 -
CMake 学习
主要参考下面的文献就好了加油~~~连接原创 2020-08-01 20:25:46 · 103 阅读 · 0 评论 -
视觉里程计2 高翔
视觉里程计2直接法根据像素的亮度信息估计相机的运动,可以完全不用计算关键点和描述子,能够避免特征的计算时间,特征缺失的情况,只要常见中存在明暗变化(可以渐变,不形成局部的图像梯度),直接法就能工作。直接法分为稀疏,稠密和半稠密三种。稀疏光流以Lucas-Kanade光流为代表(LK光流)LK光流实践部分TUM数据集定义的格式– rgb.txt和depth.txt记录了各文件的采集时间和对应的文件名。– rgb 和 depth目录存放着采集到的PNG格式图像文件。彩色图像为8位3通道,深度图为原创 2020-07-24 09:40:08 · 166 阅读 · 0 评论 -
非线性优化 高翔
实践部分手写高斯牛顿法高斯牛顿法#include <iostream>#include <opencv2/opencv.hpp>#include <Eigen/Core>#include <Eigen/Dense>#include <chrono>using namespace std;int main() { double ar = 1.0, br = 2.0, cr = 1.0 ; //真实参数值原创 2020-07-20 10:49:12 · 300 阅读 · 0 评论 -
相机与图像 高翔
相机与图像针孔相机模型将中间的量组成的矩阵称为相机的内参数矩阵K,相机的内参在出厂之后是固定的,不会在使用过程中发生变化。相机的位姿R,t又称为相机的外参数(camera Extrinsics),相比于不变的内参,外参会随着相机的运动发生改变,同时也是SLAM中带估计的目标,代表着机器人的轨迹。畸变畸变先不处理,等日后再来!!!...原创 2020-07-17 12:35:05 · 140 阅读 · 0 评论 -
视觉里程计1 高翔
小白(我)本着学习,提高自我,增加知识的想法,决定认真分析高翔博士slam。在此立下一个flag:每周进行知识总结(优快云);每周要有一个计划决定一年时间学好slam。我也不知道要说什么了,总之就是这个意思吧,“不荒废自己,撸起袖子加油干,做出成绩来”。废话不说了。视觉里程计1特征点法特征点是由关键点和描述子两部分组成,关键点是指该特征点在图像里面的位置,描述子通常是一个向量,描述了该关键点周围像素的信息。到目前为止ORB特征则是目前非常具有代表性的实时图像特征。ORB特征由关键点和描原创 2020-07-13 17:15:55 · 365 阅读 · 0 评论 -
三维空间刚体运动学习
三维空间刚体运动的描述方式:旋转矩阵、变换矩阵、四元数和欧拉角旋转矩阵在SLAM 中相机可以看成三维空间的刚体,相机的位置是指相机在空间中的哪一个地方,二姿态则是指相机的朝向。结合起来可以说“相机正处于(0,0,0)点出,朝向正前方”。aXb = a^b (外积)—“^”该符号表示a为反对称矩阵;外积只对三维向量存在定义,能够使用外积表示向量的旋转欧式变换:刚体运动保证了同一个向量在各...原创 2019-11-23 16:31:14 · 566 阅读 · 0 评论 -
李群李代数学习
李群李代数**在SLAM中位姿(位置和姿态)是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。**一种典型的方式是把它构建成一个优化问题,求解最有的R,t,使得误差最小化。旋转矩阵自身带有约束,将旋转矩阵最为优化变量时会产生额外的约束使得优化变得困难。通过李群李代数间的转换关系,可以将位姿估计变成无约束的优化问题,简化求解方式。李群李代数基础三维旋转矩阵构成特殊正交群S...原创 2019-11-23 19:05:06 · 559 阅读 · 0 评论