自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 MSCKF2讲:JPL四元数与Hamilton四元数

MSCKF2讲:JPL四元数与Hamilton四元数文章目录MSCKF2讲:JPL四元数与Hamilton四元数2 JPL四元数2.1 定义与区别2.2 JPL四元数的乘法2.3 反对称矩阵2.4 Ω(ω)\Omega(\omega)Ω(ω)矩阵2.5 JPL四元数与旋转矩阵的转换2.6 JPL四元数导数2.7 JPL四元数积分2.7.1 0阶积分2.7.2 1阶积分3 JPL与Hamilton的区别3.1 转换方向3.2 四元数与旋转向量的转换3.3 四元数与旋转矩阵的转换3.4 四元数的乘法3.5 四

2024-03-01 15:19:50 973

原创 VIO第6讲:投影模型与三角化

投影模型与三角化推理验证

2024-02-27 11:03:54 985

原创 SLAM十四讲之第八讲:光流法、直接法

视觉里程计2文章目录视觉里程计21 光流法1.1 2D光流1.2 LK光流程序1.2.1 单层光流1.2.2 多层光流1.2.3 opencv函数1.2.4 双线性插值1.2.5 C++内置类2 直接法2.1 直接法原理推导2.2 直接法程序解析2.2.1 计算雅可比2.2.2 单层直接法2.2.3 多层直接法2.2.4 讨论3 程序编译问题1 光流法​ 光流跟踪能够直接得到特征点的对应关系。这个对应关系就像是描述子的匹配,只是光流对图像的连续性和光照稳定性要求更高一些。​ 光流法可以加速基于特

2023-07-12 11:14:13 962 6

原创 Failed to contact master at [localhost:11311]. Retrying...

[ERROR] [1685197203.713679712]: [registerPublisher] Failed to contact master at [localhost:11311]. Retrying...RLException: [irataus.launch] is neither a launch file in package [ratslam_ros] nor is [ratslam_ros] a launch file name The traceback for the

2023-05-27 22:25:30 5709

原创 Windows上可视化ubuntu程序图形界面

① 测试X11转发是否工作,如果显示了时钟窗口,则说明X11转发配置正确,可以继续运行。③ 执行一个程序验证,下图所示,已经构建一个连接,程序可视化也能在Windows显示。)来模拟一个显示环境(实际上我们是看不到真实画面的,但是程序可以运行了)。为了在本地机器上显示虚拟机程序的图形界面,可以使用X11转发。如果不是利用vscode,可以直接下面命令进行配置,效果是等价的。1 点击左下角SSH进行远程连接,选择添加新的SSH主机。3 配置完成,选择主机,输入密码即可!到此,配置好之后,即可验证。

2024-07-21 21:45:01 793

原创 VIO第8讲:更优的LM策略与H矩阵加速

复习,逢考避过

2024-04-14 11:34:02 882

原创 VIO第7讲:VINS初始化与VINS系统

复习总结

2024-04-14 11:14:47 709

原创 ORB-SLAM3中的IMU预积分

IMU预积分之前也博客也提到几次了,这次把ORB-SLAM3中相应的流程记录下,与推导公式一一对应,顺带复习。

2024-04-13 11:09:29 659

原创 SLAM问题:剔除外点

RANSAC算法是随机采样一致算法,从一组含有“外点”的数据中正确估计数学模型参数的迭代算法。

2024-04-13 11:02:40 813

原创 SLAM问题:线性方程求解和矩阵分解

关于矩阵分解的知识,很多内容已经在之前的博客提到,这里不再详细介绍了。

2024-03-30 11:32:41 737

原创 SLAM问题:特征匹配如何避免误/漏匹配

具体的过程,是在被选中的重要点为中心,周围画一个圈,这个圈内不允许有别的特征点的存在,避免特征点过于集中。通常直方图中前三个最大的格子里就是正常的匹配点对,那些误匹配的特征点对此时就会暴露出来,落在直方图之外的其他格子里,这些就是需要剔除的错误匹配。而成功的闭环需要在闭环候选帧和当前帧之间尽可能多地建立更多的匹配关系,这时可以利用初步估计的Sim(3)位姿进行相互投影匹配,忽略已经匹配的特征点,只在尚未匹配的特征点中挖掘新的匹配关系。当然,新的特征点的追踪次数也设置为1,因为都是刚刚追踪到的。

2024-03-29 15:54:02 955

原创 视觉轮速滤波融合1讲:理论推导

边缘化,就是说如何删除滑窗里的状态,这里使用最简单的策略,把最老的一帧去掉,删掉协方差矩阵中对应块,去掉的这帧里的所有特征点都被拿来做更新。,等同IMU测量的角速度。左右轮速的速度我们是可以计算得到的,但是半径R一开始肯定未知,所以利用下面公式计算,其中。这里先引出论文中的公式,貌似顺序写反了,δp在前,δθ在后,更多详细推导可以参考论文。2 状态增广:当新的frame到来,利用里程计位姿,通过外参预测相机位姿,更新。来讲,前面定义世界系与初始轮速坐标系重合,轮速只有绕z轴的旋转,所以坐标系。

2024-03-26 22:42:03 986

原创 MSCKF第6讲:状态与协方差

避免混肴

2024-03-21 15:50:30 654

原创 CMake笔记

写在最外层CMakeLists.txt## set(CMAKE_MODULE_PATH "../cmake") 这里可以写绝对路径,然后可以分子项目,具体见test4target_link_libraries(test ${HELLO_LIBRARY}) # 链接库文件 .cpp libhello.so也可如果分为子项目,即最外层只写和上面的cmakelists相同,只需要改一句。

2024-03-08 22:20:28 1040

原创 相机标定实验

可以使用下面命令自定义一个Aprilgrid标定板(前提安装好kalibr,因为执行ROS命令没有加# 这样子实际大小在一张A4左右参考。

2024-03-07 22:48:49 1055 4

原创 Ubuntu18/20运行ORB-SLAM3

​ 这是因为当相机提供的是矫正过的立体图像时,意味着相机制造商或数据集已经对相机之间的畸变进行了矫正。在这种情况下,畸变已经被移除,相机图像上的点的位置更加准确。​ 随机打开头文件查看,对于sophus库的引用,一个指明了ORB-SLAM3第三方库下的文件,一个没有指明,估计是这里引发的问题。改了之后会出现其它问题,因为原来程序中会引用到这里的文件,所以还需要改各种头文件,很是麻烦。​ 估计报错提到的文件都有这个问题,修改完之后重新编译下c++版本,再编译ROS版本的。​ 假设它们遵循布朗运动。

2024-03-05 21:59:11 1774 2

原创 MSCKF5讲:后端代码分析

:提供了 Nodelet 类的定义,是用于实现节点的基类。Nodelet 是一种轻量级的ROS节点,它可以在同一个进程中共享节点管理和ROS通信,以提高系统的效率。Nodelet 允许将不同的ROS节点合并到一个进程中,从而减少通信开销。:提供了一组宏,用于导出和加载ROS插件,包括节点类(nodelets)。 是该库中的一个重要宏,用于将一个类导出为ROS插件,以便它可以在运行时被动态加载。通过这些宏,ROS能够在运行时根据类名查找和加载相应的插件。  在这里, 用于获取一

2024-03-04 22:28:02 400 2

原创 MSCKF4讲:后端理论推导(下)

写在前面,为了防止偏航角被错误的可观,作者对状态转移矩阵和观测矩阵进行了一定的修改,使其满足可观性要求。

2024-03-03 16:53:33 996

原创 MSCKF3讲:后端理论推导(上)

MSCKF3讲:后端理论推导(上)文章目录MSCKF3讲:后端理论推导(上)1 MSCKF中的状态变量① `IMU`状态:② `cam0`状态:③ `IMU`和`cam0`间状态关系2 微分方程递推(数值解)3 IMU状态预测3.1 连续时间下**IMU状态**运动学方程(微分方程)① 状态(理想值)② 状态(测量值)3.2 离散时间下**IMU状态**运动学方程(差分方程)3.2.1 预测姿态GIqT_G^Iq^TGI​qT3.2.2 预测速度GvIT^Gv_I^TGvIT​和位置GpIT^Gp_I^T

2024-03-02 21:34:06 666

原创 MSCKF1讲:卡尔曼滤波

说白了,ESKF就是预测的时候对状态和误差状态都预测了,但实际上只用了状态的预测值,对于误差状态,主要是利用了协方差。5 实际上,MSCKF中为保证状态协方差矩阵正定,采用如下形式(看了代码并不是,实际上还是按照常规的,之不过加了自生转置后除以2了,保证了对称正定)的状态依据IMU递推到了k时刻,对应状态的协方差一定是变大的,因为IMU是有误差的,引入了新的误差,协方差自然变大。引入其它传感器的观测,求取对误差状态的雅可比,计算卡尔曼增益,更新状态、协方差。上面提到,协方差描述了状态的稳定性。

2024-02-29 17:28:14 1051

原创 旋转矩阵与角速度

ω。

2024-02-28 19:20:57 619

原创 VIO第5讲:后端优化实践

在上面解决位姿优化问题中并没有真正使用marg,而是在最后给了一个具体的信息矩阵H,把对齐操作的结果展示了出来。1 确定维度-----优化变量的维度n = 6p+3l,残差维度m,则单个残差雅可比J(1*n),推断出单个。是海塞矩阵中每个优化姿态的实际索引,因为每一个姿态占6维,所以要每次更新其在H中的左上角索引!是优化变量要优化的维度,比如位姿,如果用四元数表示,输入参数维度是7,但实际优化维度是6!到次为止,H有了,残差有了,LM参数有了,那么我们就能够直接求解这个方程。可求解,但是求得的结。

2024-02-25 22:20:38 982

原创 VIO第4讲:基于滑动窗口法的vio系统可观性与一致性

VIO第4讲基于滑动窗口算法的 VIO 系统:可观性和一致性文章目录VIO第4讲基于滑动窗口算法的 VIO 系统:可观性和一致性1 从高斯分布到信息矩阵1.1 SLAM和高斯分布1.2 协方差矩阵与信息矩阵2 舒尔补应用:边际概率、条件概率2.1 舒尔补2.2 舒尔补的应用2.2.1 结论12.2.2 结论22.2.3 总结3 滑动窗口算法与边缘化 Marginalization3.1 最小二乘的图表示3.2 最小二乘问题信息矩阵的构成3.3 信息矩阵的稀疏性3.4 信息矩阵组装过程的可视化3.5 基于边

2024-02-24 16:54:41 973

原创 VIO第3讲:基于优化的IMU与视觉信息融合之预积分残差雅可比推导

VIO第3讲:基于优化的IMU与视觉信息融合之预积分残差雅可比推导文章目录VIO第3讲:基于优化的IMU与视觉信息融合之预积分残差雅可比推导4 IMU 预积分残差的雅克比4.1 预积分残差4.2 残差对两个关键帧i、j状态量的雅可比① 速度误差rvr_{v}rv​对`i`时刻状态量雅可比<1> 位移p<2> 旋转q<3> 速度v<4> 加速度偏置<5> 角速度偏置② 角度误差rqr_{q}rq​对`i`时刻状态量雅可比<1> 位移p&

2024-02-23 10:00:47 917 3

原创 VIO第3讲:基于优化的IMU与视觉信息融合之视觉残差雅可比推导

VIO第3讲:基于优化的IMU与视觉信息融合之视觉残差函数构建文章目录VIO第3讲:基于优化的IMU与视觉信息融合之视觉残差函数构建3 视觉重投影残差的 Jacobian3.1 视觉重投影残差① 估计值(预测值)<1> 推导<2> 引出因子图-优化变量<3> 简化形式② 观测值3.2 重投影残差雅可比J① 残差对归一化坐标点fcj{\mathbf{f}_{c_j}}fcj​​导数② 归一化坐标点fcj{\mathbf{f}_{c_j}}fcj​​对扰动量求导<1&

2024-02-22 11:03:08 377

原创 VIO第3讲:基于优化的IMU与视觉信息融合之IMU预积分

VIO第3讲:基于优化的IMU与视觉信息融合之IMU预积分文章目录VIO第3讲:基于优化的IMU与视觉信息融合之IMU预积分1 IMU预积分1.1 IMU常规积分—连续时间—不适用1.2 预积分形式① 定义② 如何推导出预积分定义③ 用预积分表达IMU积分公式④ 预积分误差(残差)⑤ 预积分的离散形式1.3 为什么采用预积分1.4 预积分量的误差递推(噪声模型)① 基于一阶泰勒展开的误差递推方程② 基于误差随时间变化的递推方程③ 预积分误差传递的形式1.4 零偏更新1 IMU预积分1.1 IMU常规

2024-02-21 16:10:57 879

原创 VIO第3讲:基于优化的IMU与视觉信息融合之最小二乘详解

最小二乘法详解之梯度下降、牛顿法、GN、LM算法与鲁棒核函数

2024-02-21 10:16:26 904

原创 VIO第2讲:IMU随机误差标定实验

生成模拟的IMU数据,然后使用imu_utils和kalibr_allan软件波进行IMU的标定,对两种方法进行对比

2024-02-20 21:15:57 1126

原创 【自动驾驶中的SLAM技术】第2讲:基础数学知识回顾

自动驾驶中的SLAM技术

2024-01-02 13:16:35 1963

原创 在Vscode中使用gdb调试程序

详情参考官方文档1 创建launch.json文件  调试多个程序和调试一个程序是一样的道理,只需要后面把两个文件2 创建tasks.json文件tasks.json\textcolor {red} {tasks.json}tasks.json  这个文件是通用的,直接复制粘贴即可。这个文件主要为了编译代码,所以如果不对代码修改,其实也可以不加这个文件。

2023-12-26 20:58:03 1214 1

原创 ORB-SLAM2之单目特征点对三角化

三角化得到的三维点坐标

2023-12-03 21:50:33 1162

原创 VIO第1讲:IMU传感器与误差模型

IMU传感器模型与误差模型

2023-11-30 19:32:02 1011

原创 ROS节点运行管理launch文件

ROS节点运行管理launch文件

2023-11-22 21:35:14 53

原创 ORB-SLAM2之单目地图初始化详解

​ ORB-SLAM2地图单目相机初始化、RANSAC算法、单应矩阵H、基础矩阵F、位姿恢复

2023-11-22 16:14:20 512

原创 ORB-SLAM2之特征匹配详解

ORB-SLAM2特征匹配:单目初始化匹配、地图点投影匹配、Sim(3)相似变换匹配、词袋匹配详解

2023-11-20 13:23:31 784 3

原创 ROS参数服务器

Param和getParam区别,ros参数服务器

2023-11-19 22:22:39 258

原创 Ubuntu中在终端使用git将代码上传GitHub

Ubuntu中在终端使用git将代码上传GitHub

2023-10-28 21:49:06 763

原创 第十一讲:回环检测

回环检测、词袋模型、字典训练、相似度检验

2023-10-28 21:28:11 125

原创 SLAM十四讲之第九讲:卡尔曼滤波与BA推导

贝叶斯滤波的详细推导、线性和非线性卡尔曼滤波推导、BA理论推导、图优化、BAL数据集、环境配置、SnavelyReprojectionError.h、rotation.h旋转变换、common.cpp、common.h、bundle_adjustment_ceres.cpp,bundle_adjustment_g2o.cpp

2023-10-28 21:21:12 240

原创 SLAM十四讲之第七讲:3D-3D ICP求解

​ICP问题存在唯一解或无穷多解的情况。在唯一解的情况下,只要能找到极小值解,这个极小值就是全局最优值(因此不会遇到局部极小而非全局最小的情况)。这也意味着ICP求解可以任意选定初始值。这是已匹配点时求解ICP的一大好处。

2023-10-28 19:40:47 218

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除