自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (1)
  • 收藏
  • 关注

原创 ORB_SLAM3_优化方法 InertialBA

关键帧创建的帧率降低,将有更多的时间进行LocalInertialBA优化,所以窗口大小扩大为。的主要作用是联合视觉和IMU信息优化当前关键帧的局部地图,主要用在。当Tracking线程跟踪的地图点超过。进行联合优化,主要作用在。

2024-02-19 17:44:42 783

原创 ORB_SLAM3 IMU初始化

因为在IMU初始化阶段假设biases为常数,所以IMU残差中不包含biases的随机游走。首先,对齐IMU轨迹与纯视觉轨迹,求解尺度、关键帧的速度、重力方向、IMU的biases。众所周知,重力和加速度的bias往往是耦合的,大多数情况下很难区分开,避免或者缓解的方法。问题:如果对于IMU参数没有比较好的初值,那么。将不能很快收敛,特别耗时,而且容易陷入局部最优。帧的位姿和速度以及3D点。对齐,bias需要更新,

2024-02-19 09:57:30 595

原创 ORB_SLAM3 LocalMapping中CreateNewMapPoints

在的中,通过与新插入关键帧中ORB特征进行匹配,并抛弃其中的匹配点对,接着通过生成地图点。

2024-01-14 23:52:32 988

原创 ORB_SLAM3 LocalMapping中关键帧的处理ProcessNewKeyFrame和地图点的筛选MapPointCulling

更新关键帧中的地图点的属性,并更新和其他关键帧的连接。中新增的地图点,并剔除质量不好的地图点。主要的作用是更新关键帧之间的。已经检验过了,所以不再需要。中的关键帧,给关键帧添加。

2023-10-23 23:54:24 409

原创 ORB_SLAM3 判断关键帧与创建关键帧

ORB_SLAM3 判断关键帧与创建关键帧

2023-09-19 17:48:28 612 1

原创 [VINS-Mono]IMU预积分之PVQ 增量的误差、 协方差及 Jacobian

PVQ 增量的误差、 协方差及 Jacobian根据协方差矩阵的性质:y=Ax,x∈N(0,Σx)Σy=AΣxAT\begin{array}{c}y = Ax, x\in N\left(0, \Sigma _{x}\right) \\\Sigma_y = A \Sigma_{x}A^{T}\end{array}y=Ax,x∈N(0,Σx​)Σy​=AΣx​AT​则相邻时刻误差的线性传递方程:ηik=Fk−1ηik−1+Gk−1nk−1\eta_{ik} = F_{k-1} \eta_{i

2023-09-13 12:23:27 284

原创 [VINS-Mono]IMU预积分

​的状态改变并不会对其产生影响,因此将其作为非线性优化变量,可以避免状态的重复传递。,这将导致的问题是:当每次迭代时,我们得到一个新的bais ,还需要根据预积分项。解决方法:当bias变换很小时,对bias进行一阶近似调整。对第k帧和第k+1帧之间的IMU预积分,时刻的状态有关,做优化时需要迭代更新第。与IMU的bais有关,而。时刻的状态,导致需要每次。帧的位置、速度以及旋转。进行中值积分,然后得到。进行积分,可以得到第。计算积分,为了不要使。,避免重新计算,但是。

2023-09-13 11:44:09 159

原创 [VINS-Mono]IMU预积分之PVQ 增量的误差、 协方差及 Jacobian(离散形式)

PVQ 增量的误差、 协方差及 Jacobian5.离散形式PVQ 增量误差在离散形式下的矩阵形式:[δαk+1δθk−1δβk+1δbak+1δbwk+1]=[If12δtf14f150f2200−δt0f32If34f35000I00000I][δαkδθkδβkδbakδbwk]+[g11g12g13g14000−12δt0−12δt00−12Rkδtg32−12Rkδtg34000000δt000000δt][naknwknak+1nwk+1nbnnbw]=F[δαkδθkδβkδbakδbw

2023-09-13 11:42:16 269

原创 [VINS-Mono]IMU预积分残差

残差由预积分[pwbjqwbjvjwbjabjg]=[pwbi+viwΔt−12gwΔt2+qwbiαbibjqwbiqbibjviw−gwΔt+qwbiβbibjbiabig]\left[\begin{array}{c}\mathbf{p}_{w b_{j}} \\\mathbf{q}_{w b_{j}} \\\mathbf{v}_{j}^{w} \\\mathbf{b}_{j}^{a} \\\mathbf{b}_{j}^{g}\end{array}\right]=\left[\begi

2023-09-13 11:14:05 207

原创 ORB_SLAM3 Relocalization

为包含了PnP的所有内点的集合。为啥不在优化后赋值,主要是为了防止通过。中寻找和当前帧相似的关键帧作为匹配帧,进而恢复当前帧的位姿。的主要作用是通过将关键帧中的地图点投影到当前帧寻找两帧之间。为优化后的外点,那么再位姿优化,内点可能无法达标。主要是通过词袋搜索当前帧与候选关键帧的匹配,参考。进行匹配,这样避免了所有特征点之间的两两匹配。赋值是在PnP后,而不在优化后,说明。时,通过词袋在关键帧数据库。的作用是通过词袋模糊搜索在。为同一节点,再用节点下。,关键帧中的地图点不在。为更加抽象的簇,一个。

2023-08-15 16:03:49 127

原创 ORB_SLAM3 TrackLocalMap

TrackLocalMap通过TrackWithMotionModel或TrackReferenceKeyFrame的Frame to Frame跟踪得到了当前帧的初始位姿。为了得到更加精准的位姿,可以将局部地图投影到当前帧上得到更多的匹配实现Frame to Map,然后进一步优化当前帧的位姿1.UpdateLocalMapTrackLocalMap的第一步就是更新当前帧的局部地图,该地图包含:通过UpdateLocalKeyFrames更新局部关键帧:能观测到当前帧地图点的共视关键帧1中

2023-08-07 09:00:00 396

原创 ORB_SLAM3 TrackReferenceKeyFrame

对于词汇树,它是由一堆图像离线训练而来的,首先对训练的图像计算。进行匹配,这样避免了所有特征点之间的两两匹配。两帧图像特征匹配类似,先对比。特征点,然后把这些特征点放在一起,通过。的树,除了叶子之外,每个节点都有。从词汇树中可以看出,如果想比较两个东西,那么先用。然后对每簇,再次通过。)以及一个正向索引表(对它们聚类, 将之分为。为同一节点,再用节点下。函数将当前帧的描述子。为更加抽象的簇,一个。

2023-07-31 09:00:00 244

原创 Clion配置与使用记录

为了能够在Docker中使用ROS2环境,同时Clion能够在编辑代码时可以有代码提示以及函数、变量跳转等功能。

2023-07-27 16:43:55 279

原创 ORB_SLAM3 TrackWithMotionModel

虽然在开始设置了位姿,但是没有参与优化,因此在下一次跟踪时,需要用。,为什么要更新上一帧的位姿,主要是在ORB_SLAM中优化的是。首先,假设两帧之间的变换近似,根据速度设置当前帧的初始位姿。是什么:当跟踪成功或者刚刚跟丢,会更新该速度,该速度表示。中的预积分测量值更新(bias更新,一阶近似)利用参考关键帧更新上一帧在世界坐标系下的。得到上一帧与当前帧的匹配关系后,利用。来预测当前帧的状态,就不用通过。预测当前帧的位姿与速度时,采用。注意:这里可以参考前面的。的位姿更新上一帧的位姿。

2023-07-24 23:01:17 387

原创 SG-SLAM: A Real-Time RGB-D Visual SLAM Toward Dynamic Scenes With Semantic and Geometric Information

SG-SLAM使用LK光流法计算特征匹配,然后去除位于图像边缘的匹配点对,以及差异过大的,减少错误的匹配,采用基于RANSAC的七点法计算两帧之间的基本矩阵。仅用关键帧构建语义地图,当一个新的关键帧到达时,语义地图线程立即使用它的深度图像和姿态来生成三维点云。动态点判断方法:计算当前帧的特征点与其对应的极线之间的距离。距离越大,特征点的动态越有可能。因此,RANSAC算法可以有效地减少动态区域错误数据关联的不利影响。

2023-07-20 14:59:45 1254

原创 [2023]RGB-D-Inertial SLAM in Indoor Dynamic Environments with Long-term Large Occlusion

以RGB-D相机和IMU作为输入,与ORB_SLAM3类似,分别估计poseTiT_{i}Ti​、速度viv_{i}vi​、以及biasbabgba​bg​对于深度图像,将其分割为K个类,对于深度无效的分为第K+1类,对于每一簇,有个score代表静止的可能性,另外,假设同一簇的所有像素点具有相同的分数对于BA,使用滑窗内的共视关键帧和这些关键帧观测到3D地图点XX0⋯XL−1XX0​⋯XL−1​, 分数Bβ0⋯βMB。

2023-06-29 11:02:12 322

原创 ORB_SLAM3 IMU预积分PreintegrateIMU

这篇博文主要分享ORB_SLAM3中Tracking::PreintegrateIMU(),其主要包括几个部分:获得两帧之间的IMU数据中值积分IMU状态更新关于IMU的理论推导参考:ORB_SLAM3_IMU预积分理论推导(预积分项)ORB_SLAM3_IMU预积分理论推导(噪声分析)ORB_SLAM3_IMU预积分理论推导(更新)ORB_SLAM3_IMU预积分理论推导(残差)1.获得两帧之间的IMU数据主要是为了获取当前帧和前一帧之间的IMU数据,以便用于后续的IMU预积分

2023-06-22 19:39:34 701 3

原创 ros::spin()和ros::AsyncSpinner

是一个单线程,它根据消息到达的时间一一执行对应的回调函数,只有当前一个回调函数执行结束后,新的回调函数才能执行,:是一个多线程,将为每个回调函数创建一个自己的线程,这样就不存在。

2023-06-22 14:47:38 775

原创 详解使用ament_cmake构建ROS2功能包

ROS2的构建系统叫做,它是基于CMake改进而来的。接下来将详细介绍一下ament。

2023-06-21 17:33:37 3093

原创 [2022]DyOb-SLAM : Dynamic Object Tracking SLAM System

[2022]DyOb-SLAM : Dynamic Object Tracking SLAM System

2023-06-21 10:44:38 514

原创 ORB_SLAM3 闭环检测

【代码】ORB_SLAM3 闭环检测。

2023-06-11 22:47:01 932

原创 ORB SLAM3 构建Frame

矩在圆中以行的方式进行计算,首先计算v=0行,上下两行中对应的点为。将特征点分配到网格中主要的作用:加速特征点的搜索。对于金字塔的每一层,将其网格化,每个格子大小为。在四叉树均匀化后,将特征点坐标变换到。示例:目标特征点数(20)个点,两两相互比较,生成。提取到的角点的原点位于。组点对,每组点对包含。

2023-05-28 18:47:42 1036

原创 双目视觉(七)稀疏双目匹配

这里介绍ORB_SLAM算法中的双目匹配算法。

2023-05-07 00:31:38 1291 1

原创 我的创作纪念日(划水...)

提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。提示:职业规划、创作规划等​​。

2023-04-24 20:14:59 327

原创 ORB_SLAM3_优化方法 Pose优化

主要的作用是利用上一关键帧和当前关键帧的视觉以及IMU信息来优化当前帧的位姿,主要用在。对于先验信息公式推导,未完待续。

2023-04-16 14:49:57 671

原创 ORB_SLAM3_IMU预积分理论推导(残差)

残差预积分的测量值采用一阶近似修正,免去了积分重新运算,降低计算量状态包含:Ri,pi,vi,Rj,pj,vj,δbig,δbia\mathbf{R}_{i}, \mathbf{p}_{i}, \mathbf{v}_{i}, \mathbf{R}_{j}, \mathbf{p}_{j}, \mathbf{v}_{j}, \delta \mathbf{b}_{i}^{g}, \delta \mathbf{b}_{i}^{a}Ri​,pi​,vi​,Rj​,pj​,vj​,δbig​,δbia​,其中关于

2023-04-10 10:26:55 653

原创 ORB_SLAM3_IMU预积分理论推导(更新)

预积分测量值更新当bias不发生变化时ΔR~ij−1→ΔR~ij\Delta \tilde{R} _{ij-1}\to \Delta \tilde{R}_{ij}ΔR~ij−1​→ΔR~ij​ΔR~ij=∏k=ij−1Exp⁡((ω~k−big)Δt)=∏k=ij−2Exp⁡((ω~k−big)Δt)⋅Exp⁡((ω~j−1−big)Δt)=ΔR~ij−1⋅ΔR~j−1j\begin{array}{l}\Delta \tilde{\mathbf{R}}_{i j}=\prod_{k=i}^{j

2023-04-09 20:53:36 497

原创 ORB_SLAM3_IMU预积分理论推导(预积分项)

误差1.确定性误差Bias:偏置Scale:实际数值和传感器输出值之间的比值。Misalignment:非正交误差。标定的方法:六面法标定加速度。2.随机误差Allan方差随机游走IMU器件测量模型1.角标符号说明b:body坐标系a:加速计(acc)g:陀螺仪(gyro)w:世界坐标系d:离散(discrete)2.假设假设:地球是静止的,忽略自转,运行平面为水平面,重力指向固定,模值恒定。运行场景小;运行时间短;精度低(mems);3.测量

2023-04-09 20:47:14 1113

原创 ORB_SLAM3_IMU预积分理论推导(噪声分析)

ORB_SLAM3 IMU预积分 理论推导

2023-04-09 20:41:40 522

原创 ORB_SLAM3 单目初始化

单目初始化单目初始化通过前后两帧图像进行特征匹配,得到他们之间的匹配关系后,通过H或者F恢复两帧之间的运动,并通过三角化生成地图点1.接口void Tracking::MonocularInitialization()2.步骤单目初始化的大致步骤如下:创建单目初始化器,并创建当前帧和来自上一关键帧的IMU预积分mCurrentFrame.mpImuPreintegrated:当前帧的IMU预积分mpImuPreintegratedFromLastKF:来自上一关键帧的IMU预积分

2023-04-05 23:34:53 551

原创 动态SLAM论文归纳

动态SLAM

2022-10-24 09:53:16 2637

原创 ORB SLAM3系统初始化

ORB SLAM3的初始化

2022-07-03 14:46:07 1453

原创 【四】相机标定

张氏标定法的原理1.单应性矩阵H的计算根据针孔相机模型,可以得到如下表达式:s[uv1]=A[Rt][XWYWZW1]=A[r1r2r3t][XWYWZW1]s\left[\begin{array}{l}u \\v \\1\end{array}\right]=A\left[\begin{array}{ll}R & t\end{array}\right]\left[\begin{array}{c}X_{W} \\Y_{W} \\Z_{W} \\1\end{array}\r

2022-05-22 15:25:56 730

原创 [Cartographer]AddTrajectory

AddTrajectory从Node::StartTrajectoryWithDefaultTopics()进来后,开始使用函数Node::AddTrajectory添加轨迹int Node::AddTrajectory(const TrajectoryOptions& options) { const std::set<cartographer::mapping::TrajectoryBuilderInterface::SensorId> expected_sen

2022-03-30 18:23:49 1614

原创 [Cartographer]初始化

[Cartographer]初始化[Cartographer]传感器数据流1.Cartographer文件树cartographer算法包括cartographer和cartographer_ros两部分,其中cartographer为算法的核心实现,cartographer_ros为算法和ROS的对接的桥梁,方便用户使用。.├── cartographer│ ├── bazel│ │ └── third_party│ ├── cartographer│ │ ├──

2022-03-30 14:49:18 512

原创 [Cartographer]传感器数据流

传感器数据流A.Node开始建图node.StartTrajectoryWithDefaultTopics(trajectory_options);添加轨迹,订阅话题int Node::AddTrajectory(const TrajectoryOptions& options){ .... LaunchSubscribers(options, trajectory_id);}在LaunchSubscribers中调用传感器的回调函数void Node::Han

2022-03-28 11:00:37 1921

原创 [2020]The STDyn-SLAM

[2020]The STDyn-SLAM: A stereo vision and semantic segmentation approach for SLAM in dynamic outdoor environments1.作者Daniela Esparza and Gerardo Flores代码:GitHub - DanielaEsparza/STDyn-SLAM: STDyn-SLAM: A Stereo Vision and Semantic Segmentation Approach

2022-03-06 15:36:36 472

原创 基于视觉的移动平台运动目标检测

1.声明  本文为自己的研究总结,内容可能有些不全面,不客观,但都是自己根据阅读的各类文献总结而来。这篇博文主要介绍的是基于视觉的移动平台运动目标检测,写这篇博文的目的主要是对自己一个阶段性总结。2.引言  运动目标检测一直是计算机视觉领域研究的热点,同样也是很多应用的基础,比如:SLAM,交通监控等等。运动目标检测其实就是从图像序列中检测出运动目标。当然,检测出运动目标后,就可以做许多其他的事情,比如说,估计目标的速度,预测目标的状态等等。3.重要性  我们身处一个动态的世界,比如,车辆在马路上

2021-11-01 20:13:31 6274 7

原创 Dual-SLAM: A framework for robust single camera navigation

题目Dual-SLAM: A framework for robust single camera navigation作者Huajian Huang, Wen-Yan Lin*, Siying Liu, Dong Zhang, Sai-Kit Yeung时间2020内容1.问题局部位姿估计经常失败,造成整个SLAM系统异常脆弱,也造成地图的不一致。2.方法保存当前地图,初始化两个新的线程:SLAM线程:通过新进来的帧创建新的地图。恢复SLAM线程:跳过失败的部分,连接新的地图和

2021-08-21 20:19:20 288 1

原创 [ROS]问题记录

1.rosbag相关1) ERROR bag unindexed: xxxx-xx-xx-xx-xx.bag. Run rosbag reindex.问题描述:运行rosbag info,出现如下信息:ERROR bag unindexed: xxxx-xx-xx-xx-xx.bag. Run rosbag reindex.运行rosbag play xx.bag,出现如下信息:[ INFO] [1624972506.447439941]: Opening 2021-6-23-0103

2021-08-16 10:32:11 943

myd-c437x linux开发手册

arm开发办linux开发手册:arm开发办linux开发手册:arm开发办linux开发手册:arm开发办linux开发手册

2018-07-22

空空如也

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

TA关注的人

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