slam
文章平均质量分 66
一大块肉松
凡心所向,素履以往
展开
-
VINS_mono 代码详细理解(一)
一、运行命令二、简介VINS_mono 的代码是基于ROS写的,将slam的各个功能都封装成一个个功能包,相互之间通过发布和订阅的方向进行通信。具体的每个功能包的内容:三、VINS_mono代码整体框架VINS-mono是香港科技大学开源的VIO算法,单目相机+IMUVINS的功能模块分为五个部分,分别是数据预处理、初始化、后端非线性优化、闭环检测、闭环优化。四、feature_tracker 功能包(注:对于img_callback这里没有完全展示,要是需要更具体的可以评论)接原创 2022-03-06 11:01:37 · 6695 阅读 · 3 评论 -
ORB_SLAM2系统代码流程粗讲解(三)
注:本文讲解的是整个系统的运行过程,不涉及具体代码的讲解。均假设系统运行没有重复构建现象ORB_SLAM2系统代码流程粗讲解(一)ORB_SLAM2系统代码流程粗讲解(二)今天这篇文章,讲一下回环检测线程,具体的函数实现在LoopClosing.cc中,找到 Run () 函数。1.首先需要将mbFinished 置为false,表示当前线程正在运行并未结束;2.接着进入主循环,while(1) 表示一直处于运行状态;3.检查闭环检测队列mlpLoopKeyFrameQueue中有没有关键帧,原创 2022-01-04 21:37:37 · 299 阅读 · 0 评论 -
IMU预积分--详细推导过程
IMU预积分推导原创 2021-12-27 10:45:09 · 16011 阅读 · 15 评论 -
ORB_SLAM2系统代码流程粗讲解(二)
注:本文讲解的是整个系统的运行过程,不涉及具体代码的讲解。均假设系统运行没有重复构建现象上一篇博客:ORB_SLAM2系统代码流程粗讲解(一)系统有三个线程并行运行,其中追踪线程(tracking)在主函数,即主线程中运行。今天这篇文章讲一下局部建图线程,具体的函数实现在:***LocalMapping.cc***中,找到 ***run()***函数1.首先说明,局部建图所需要的数据是追踪线程传送过来的关键帧队列,所以在进行局部的建图的时候,需要将标志位mbAcceptKeyFrames置为fals原创 2021-12-24 21:12:27 · 1757 阅读 · 2 评论 -
ORB_SLAM1/2/3 系列 区别详解
一、区别ORB_SLAM:只针对的是单目SLAM系统ORB_SLAM2:可以用于单目、双目、RGB_D相机。(并且作者公开的源码中包含ROS版本,可以实时跑自己的数据)ORB_SLAM3:在2的基础上,还可以用于鱼眼相机;增加了视觉+imu的系统(VIO)。二、详情1.ORB_SLAMORB_SLAM:a Versatile and Accurate Monocular SLAM System(ORB_SLAM:一种通用精确的单目SLAM系统)摘要:本文提出了一种基于特征的单目ORB-SLA原创 2021-12-22 11:41:08 · 6833 阅读 · 0 评论 -
ORB-SLAM2系统代码流程粗讲解(一)
注:本文讲解的是整个系统的运行过程,不涉及具体代码的讲解。均假设系统运行没有重复构建现象需要说明该系统分为三个线程并行进行:追踪线程、局部建图线程、回环检测线程1.从main函数讲起,进行整个系统初始化,包括判断输入传感器的类型,加载词袋模型,初始化三个线程并运行,设置进程间的指针。2.依次遍历每张图像,将图像传入SLAM系统,先判断系统的类型(纯追踪模式还是追踪+建图),接下来根据传入的图像判断相机的位姿。3.每一帧图像进入均需要提取特征点,唯一的区别是当第一帧图像图像进入时,要求提取2倍的特征点原创 2021-12-18 10:49:45 · 569 阅读 · 1 评论 -
ORB-SLAM2 线程之间的调度
ORB_SLAM2 中包含三个并行的线程:tracking线程LocalMapping线程LoopClosing线程首先记录几个标志位:mbStopRequested:外部线程调用,为true,表示外部线程请求停止LocalMapping线程。mbStopped:为true表示可以并终止LocalMapping线程。mbNotStopped:true表示不要停止LocalMapping线程,因为要插入关键帧了,需要和mbStopped结合使用。mbAcceptKeyFrame:true表示原创 2021-11-11 21:45:36 · 697 阅读 · 1 评论 -
最完整---在ROS用自己电脑的摄像头在运行ORB_SLAM2
默认电脑已经安装好ROS在ROS下运行ORB_SLAM2 主要包括以下几步:一、创建ROS工作空间二、下载usb_cam三、下载ORB_SLAM2四、运行接下来讲解具体的步骤一、创建ROS空间1.创建工作空间:打开终端输入以下命令mkdir catkin_slamcd catkin_slam/mkdir srccd src/catkin_init_workspace如下图所示:catkin_slam文件夹下,存在src2.编译工作空间:编译完成会出现build deve原创 2021-06-15 17:47:38 · 4185 阅读 · 16 评论