- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Efficient Autonomous Exploration Planning of Large-scale 3-D Environments文章解读
摘要本文主要是提出了一种面向大规模场景主动探索问题的方法,融合了基于边界的策略和RH-NBVP的方法。后者在局部区域中的探索具有较大的优势,而前者在引导机器人进行全局探索方面具有优势,因此作者将两者结合起来。这是基本的思想。当然了,其中也针对效率做了一些优化。首先,根据RRT的扩展去保存一些未被探索的含有增益的边界点。文中相当一部分利用高斯过程对空间点的增益进行建模与计算,个人认为对于实际应用过程中,意义不大。全局引导加上局部探索,是核心。...
2021-05-09 10:17:05
413
1
原创 traversability_prm代码解读
引言本文继续对地形建模开源代码中关于probabilistic road map的构建进行解读。代码解读话题订阅订阅了两个话题,目标点prm_goal和局部占据地图occupancy_map_local_heightsubGoal = nh.subscribe<geometry_msgs::PoseStamped>("/prm_goal", 5, &TraversabilityPRM::goalPosHandler, this);subElevationMap = nh.
2021-05-06 21:30:28
490
原创 kdtree库文件解读
kdtree的C语言实现kd中的一个超平面矩阵,存储了维度,每个维度的坐标最大最小值struct kdhyperrect { int dim; double *min, *max; /* minimum/maximum coords */};kd树的节点,存储位置向量,左右子树struct kdnode { double *pos; int dir; void *data; struct kdnode *left, *right; /* negative/
2021-05-06 21:28:47
475
原创 BKG traversabilitymapping 中的所使用变量的说明
前言最近的工作主要集中在地形建模与主动探索上面,目前主要以BKG为框架,下面对代码所使用的变量进行整理。首先是地图方面的参数,地图是以0.1分辨率的栅格构成的,上一层是1m分辨率的Cube,再上面才是全局地图mapResolution=0.1m 地图栅格分辨率mapCubeLength=1.0m 地图cube的大小mapCubeArrayLength=mapCubeLength/mapResolution=10 每个Cube包含多少个栅格mapArrayLength = 2000/mapCu
2021-04-25 21:05:45
368
原创 fatal error: ros/ros.h: No such file or directory解决办法
主要在CMakelist.txt中加入以下语句find_package(catkin REQUIRED COMPONENTS roscpp#这里可增加需要的消息类型}include_directories( include ${catkin_INCLUDE_DIRS} #${PCL_INCLUDE_DIRS} #${OpenCV_INCLUDE_DIRS})target_link_libraries(**node** ${PCL_LIBRARIES}...
2021-04-23 16:19:09
3395
原创 Bayesian Generalized Kernel Inference for Terrain Traversability Mapping代码解读(二)
下面对traversability_map节点进行学习。首先看main函数,创建了一个节点。int main(int argc, char** argv){ ros::init(argc, argv, "traversability_mapping"); TraversabilityMapping tMapping; std::thread predictionThread(&TraversabilityMapping::TraversabilityThre
2021-04-23 00:49:16
462
1
原创 Bayesian Generalized Kernel Inference for Terrain Traversability Mapping代码解读(一)
Bayesian Generalized Kernel Inference for Terrain Traversability Mapping论文解读基于贝叶斯广义核推理的地形建模是机器人领域做地形建模的重要文章之一,在实时性和精度方面都取得了较好的效果。在对其代码进行解读之前,先谈几点思考。围绕机器人环境感知与导航,有很多工作可以做,但是可供选择的方法框架是有限的,当然了在机器人领域很多问题归根到底就是信息的滤波/状态估计/规划与控制问题,最核心的就是优化问题。在机器人领域,如何做的更深,更加具有创
2021-04-23 00:04:54
890
原创 多目标遍历路径规划
Multi-Goal Path Planning Using Multiple Random Trees论文解读摘要引言功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入摘要在一般性的场景中进行多目标的路径规划是目前机器人领域的一
2021-04-18 10:05:23
4217
原创 fast_gicp代码解读(一)
fast_gicp代码解读(一)fast_gicp系统介绍理论方法分析代码框架fast_gicp在kitti上的部分实验结果总结fast_gicp系统介绍fast_gicp的首次提出是2016年的文章Voxelized GICP for Fast and Accurate 3D Point Cloud Registration。github代码链接为:https://github.com/SMRT-AIST/fast_gicp.git这篇文章是16年提出的,定位精度较高,与目前先进的SLAM方法相比
2021-04-18 09:44:55
5011
2
原创 安装TensorRT并运行RangeNet_lib
文章目录安装TensorRT安装Nvidia, Cuda, Cudnn运行RangeNet_lib遇到的一些问题一些参考链接安装TensorRT系统:ubuntu16.04GPU: 1060安装Nvidia, Cuda, Cudnn型号:Nvidia: 430.50cuda: 10.1cudnn: 7.6.5安装Nvidia ,下载.run文件,利用chmod a+x 更改文件权限, 并禁止nouveau:sudo gedit /etc/modprobe.d/blacklist.co
2020-07-10 22:04:48
1474
10
翻译 论文翻译:C-box: A scalable and consistent TSDF-based dense mapping approach
摘要维护一个一致性的环境稠密地图对于机器人进行高层次决策是重要的。然而,在长时空的建图过程中,累积漂移误差将导致地图不一致性。本文提出了一个新的稠密建图方法,解决建图一致性挑战的时候实现了可扩展性。我们方法的中心是将环境表示为一个TSDF子地图的集合。这些子地图通过基于特征的相机跟踪和BA优化进行定位。我们的主要贡献在于一个能够识别地图中稳定区域的pipeline,以及对子地图的融合。所提出的方...
2019-12-11 14:47:38
783
翻译 论文翻译CamNet: Coarse-to-Fine Retrieval forCamera Re-Localization
前言视觉重定位是一个较为独立的研究方向,目前主要的方法分为基于深度学习,基于随机森林的,和基于传统特征点匹配的三种。对于深度学习的方法,越来越重视对位姿的精确回归。摘要相机重定位是一个重要但是仍然具有挑战的问题。最近,基于检索的方法被认为是一个具有潜力的方向,因为其能够较为容易地泛化到新的场景中。尽管许多方法被提出,但是这些方法性能瓶颈仍然在于检索模块。这些方法使用相同的特征用于检索和相对位...
2019-12-05 12:14:41
600
原创 安装配置stvo-plSLAM
参考博客http://www.pianshen.com/article/7301181947/按照顺序来即可。在编译MRPT的时候,出现:In file included from /home/wjk/myfile/PLSLAM/mrpt/libs/pbmap/include/mrpt/pbmap.h:20:0, from /home/wjk/myfi...
2019-11-15 09:25:38
976
3
原创 stvo-pl融合点线段特征的立体视觉里程计代码解读
摘要基于点和线段的SLAM系统在点特征不充足的场景下具有一定的优势。本文对文章Robust Stereo Visual Odometry through a Probabilistic Combination of Points and Line Segments对应的源码进行记录。主函数入口在imagesStVO.cpp中首先进入初始化部分if( frame_counter == 0 )...
2019-11-15 09:24:10
972
原创 论文笔记:Visual-Inertial Mapping with Non-Linear Factor Recovery
前言摘要在位姿估计和环境建图中,相机和IMU是两种互补的传感器。二者的结合使得视觉里程计更加精确和鲁棒。在全局一致性建图中,但是,并不能直接地融合视觉和惯性单元。对具有较大基线的图像的运动估计是需要的。因此,许多系统基于关键帧进行操作,关键帧之间具有较大的时间间隔。惯性数据随着间隔时间的增大而快速degrades,经过几次二次积分,惯性数据会包含的有用的信息较少。在本文中,本文提出了一个使用...
2019-10-16 17:18:37
1849
原创 多个版本opencv安装的问题
由于要用到SURF特征点的提取,可以用opencv3和opencv-contrib联合编译进行实现,但是在build的时候出现了问题,主要原因是跟ros中的opencv冲突,编译器搜索到的是ros中的opencv。我们的解决方法是,安装opencv2,注意在cmake的时候要指定和opencv3不同的安装路径,然后在要测试的代码中的cmakelist.txt中set(OPENCV_DIR $Y...
2019-09-25 22:46:32
991
原创 关于找不到opencv/nonfree的问题
sudo add-apt-repository --remove ppa:xqms/opencv-nonfreesudo add-apt-repository --yes ppa:jeff250/opencvsudo apt-get updatesudo apt-get install libopencv-devsudo apt-get install libopencv-nonfree...
2019-09-25 11:45:54
2118
原创 A Monocular SLAM System Leveraging Structural Regularity in Manhattan World
摘要在曼哈顿世界中的结构特征能够表达场景中的平行,正交以及共面信息。通过充分地应用这些结构化特征,我们提出了一个新的单目SLAM系统,能够提供相机位姿和三维地图的精确位姿估计。本文主要的贡献在于基于结构化特征的优化框架,其包含三个新的优化策略:1. 一个使用三维线段平行于正交性质的优化策略;2. 基于共面性质的平移量优策略。3. 一个同时使用平行性质,正交性质和共面性质的三维线段优化方法,以获取...
2019-09-24 23:05:31
827
原创 Keyframe-based Dense Planar SLAM平面处理部分介绍
摘要本文提出了一个新的基于关键帧的稠密平面SLAM系统,只基于CPU本身。该方法利用一个快速稠密的方法进行里程计估计,融合深度观测,并从融合后的深度图中提取平面,对关键帧的位姿和平面特征进行优化。使用快速的平面估计,可以找到准确的平面对应关系,每帧的位姿在平面特征数目不足的情况下仍然能够被较为准确地估计。并且,以一种概率全局优化的方法对平面特征进行建模能够显著降低漂移误差。引言目前,所有已知...
2019-09-24 15:21:11
663
1
原创 Joint Layout Estimation and Global Multi-View Registration for indoor Reconstruction
摘要本文提出了一个新的共同优化场景布局和全局注册问题的方法,用于精确地室内三维重建。给定一序列距离数据,我们首先根据kinectfusion建立一个子场景稠密地图的集合,用位姿图优化对这些地图段进行预测。然后,我们迭代地进行layout估计和基于layout的全局注册过程,这两者是相辅相成。我们通过层次聚类法以及基于能量的多模型拟合提取场景中的布局信息。获取到场景的布局信息之后,我们通过全局IC...
2019-09-24 11:25:04
363
原创 Dense Planar-Inertial SLAM with Structural Constraints论文解读
摘要本文中,我们提出了一个新的基于平面和IMU的稠密SLAM方法(DPI-SLAM),IMU的预积分与稠密VO进行松耦合,与平面的观测进行紧耦合。位姿,速度以及IMU偏置与平面特征一起进行优化。使用的是iSAM2的优化方法。结合基于RGBD和IMU的里程计估计能够在没有充足平面的场景下进行位姿跟踪。将IMU的状态和平面的状态在全局优化中的建模能够降低漂移误差,提升建图性能。而且,相邻平面的结构约...
2019-09-23 15:23:34
456
原创 Simultaneous Localization and Mapping with Infinite Planes论文解读
前言在SLAM方法体系中,总有那么一部分是和线段,平面,边缘相关的方法。这并不是为了和特征点法或者直接法不一样而去构造的新的方法,环境中存在的这么多几何特征,同样能够对相机的位姿估计产生有效约束。尽管它们不如特征点具有较高的普遍性,但是对于室内环境,越高层的几何特征越具有优势。摘要基于infinite平面的SLAM方法由于相比于基于稀疏点和稠密像素的方法具有较小的复杂度受到广泛的关注。本文展...
2019-09-23 11:35:56
673
原创 从文本中读取逗号分割符的文件
在读取txt文本时,利用getline()函数可以获取一行字符串,然后再构造字符串输入流,赋值给各个变量,但是这种情况一般针对以空格分隔的字符串,对于以逗号为分割的字符串,需要进行以下操作for(string::iterator iter=line.begin(); iter!=line.end(); ++iter) { if(*iter==',') *iter=' '; ...
2019-09-19 22:43:57
1807
原创 Information Sparsification in Visual-Inertial Odometry论文理解
前言网上关于先验信息矩阵稀疏化的中文资料非常少,而个人觉得NFR(Nonlinear Factor Recovery)在提高边缘化后的信息矩阵稀疏性,提升非线性求解效率和精度方面具有重要作用。与本文相关的文章有Nonlinear factor recovery for long-term SLAM和Visual-Inertial Mapping with Non-Linear Factor Re...
2019-09-19 10:44:01
838
原创 VINS-Mono边缘化策略的思考
最近在看VINS-Mono的代码,关于边缘化过程产生了一些疑问,在构造信息矩阵H后,对H矩阵进行边缘化操作,产生先验信息矩阵,然后再和后面的新的因子图的信息矩阵进行叠加形成了新的信息矩阵,然后再进行求解。但是由于新的因子图构造包含了上一个因子图中的大部分节点。因此,先验的信息矩阵中就包含了被保留节点的残差信息,然后新的因子图对应的信息矩阵又包含了被保留节点的残差信息,这样不就重复添加了被保留的边了...
2019-09-18 10:15:57
936
1
原创 VINS-Mono代码-视觉特征部分-笔记
引言视觉特征从提取到构造视觉误差再到优化,是VINS中重要的一部分。所采用的特征法,光流跟踪,重投影误差,基于归一化平面的残差计算等等都值得具体的分析与思考。下面我们将从整个代码的主函数开始,沿着特征处理进行介绍。主函数整个系统的主函数在estimator_node.cpp中,进一步的IMU数据和视觉数据的处理是在process()函数中,数据的获取是在getMeasurements()函数...
2019-09-06 12:37:55
743
原创 IEKF-based Visual-Inertial Odometry using Direct Photometric Feedback阅读笔记-光度误差
直接介绍我们最关心的部分:Multilevel Patches and Photometric Error4.1 Multilevel Patch Features每个特征与一个多层次的patch特征相关联,是从图像金字塔上提取的图像块。与传统的特征描述子相比,基于图块的描述子能够计算像素误差,因此能够避免使用重投影误差。将每个像素都考虑在内能够提供更加丰富的环境信息。对于基于最小化重投影误...
2019-09-05 22:19:04
680
转载 Semi-direct Viusal Odometry学习笔记(二)
创建地图点在SVO中,后端的特征点是只在关键帧上提取的,用FAST加金字塔。而上一个关键帧的特征点在这一个关键帧上找匹配点的方法,是用极限搜索,寻找亮度差最小的点。最后再用depthfilter深度滤波器把这个地图点准确地过滤出来。VINS中对特征点的跟踪是使用的光流的方法,对每个特征位置的误差没有进行优化处理,优化的只是特征对应的空间点深度。在SVO中,选取30个地图点,如果这30个地图点在...
2019-09-05 11:58:18
221
转载 Semi-Direct Viusal Odometry 学习笔记
引言作为一个SLAM方向的研究人员或者从业人员,不管是学术研究还是工程实现,都需要对SLAM算法中每个艺术般的操作了然于心。在致力于掌握主流SLAM方法的设计灵魂之后,才能产生新的突破,进一步推动SLAM技术走向现实生活,成为人们生活中不可或缺的一部分。本文将对所学习的视觉里程计SVO系统进行整理,主要参考SVO详细解读.SVO原理解析.一些大佬们走过的路,我们致以敬意。同时,也向在SLAM领...
2019-09-04 17:40:36
247
翻译 论文翻译:DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes
DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes引言将SLAM与深度学习结合起来的工作越来越多。这些工作从不同的角度解决目前传统SLAM方法存在的问题。在我们跟进或者开展类似的工作的时候,需要想清楚,传统的SLAM方法目前遇到的问题到底是什么。对这些问题进行明确地分析,从理论框架、算法技术、工程实现等方面挖掘可以改进的点,...
2019-09-01 09:14:13
886
1
翻译 论文翻译:Robust Odometry Estimation for RGB-D Cameras
前言视觉里程计所基于的理论框架在前几年已经基本成型。新的ideas需要在之前的工作的土壤中生根发芽,这也是本文对该论文进行翻译的动机所在。这篇文章是2013年ICRA Best Vision Paper Award - Finalist。摘要本文的工作是针对RGBD图像提出一个快速、精确的相机位姿估计方法。我们的方法是通过最小化像素误差对连续帧相机进行位姿估计。我们使用一种coarse-to...
2019-08-28 17:39:13
676
2
原创 VINS-Mono视觉初始化代码详解
摘要视觉初始化的过程是至关重要的,如果在刚开始不能给出很好的位姿态估计,那么也就不能对IMU的参数进行精确的标定。这里就体现了多传感器融合的思想,当一个传感器的数据具有不确定性的时候,我们需要依赖与其他传感器进行降低不确定性。同理,当相机在弱纹理或者高动态场景下工作时,预期的SLAM算法能够根据IMU的数据补偿视觉不确定性带来的精度损失。下面,我们对VINS-Mono中的视觉初始化部分的代码进...
2019-08-27 17:20:28
2103
原创 VINS-Mono代码总结-IMU预积分相关部分
VINS-Mono代码总结-IMU预积分与残差计算关于VINS-Mono系统的理论推导和代码讲解,网上有很多优秀的博客,如VINS-Mono代码分析与总结(一) IMU预积分,VINS-Mono源码解析(三)后端: IMU预积分,VINS-Mono预积分公式推导,VINS-Mono 论文公式推导与代码解析,VINS-Mono代码分析总结VINS-Mono理论学习——IMU预积分 Pre-int...
2019-08-26 21:31:27
1276
原创 一次从文本中读取时间戳的过程
在一些SLAM数据集中,有的时候需要读取位姿的时间戳,并保存到txt文件中,但是时间戳一般都是比较大的值,如#timestamp, p_RS_R_x [m], p_RS_R_y [m], p_RS_R_z [m], q_RS_w [], q_RS_x [], q_RS_y [], q_RS_z [], v_RS_R_x [m s^-1], v_RS_R_y [m s^-1], v_RS_R_z ...
2019-08-24 17:22:52
752
原创 VINS-Mono代码精简版代码详解-后端优化之边缘化(三)
边缘化策略参考博客:https://www.cnblogs.com/feifanrensheng/p/10532918.html\url{https://www.cnblogs.com/feifanrensheng/p/10532918.html}https://www.cnblogs.com/feifanrensheng/p/10532918.htmlhttps://blog.csdn.ne...
2019-08-22 11:50:52
2460
12
原创 VINS-Mono代码精简版代码详解-后端非线性优化(三)
非线性优化部分代码解析之前已经对VINS-Mono的初始化部分进行了介绍,下面结合代码和公式介绍其非线性优化部分。本文部分参考https://blog.csdn.net/u012871872/article/details/78128087\url{https://blog.csdn.net/u012871872/article/details/78128087}https://blog.csd...
2019-08-21 22:22:32
1572
转载 VINS-Mono代码精简版代码详解-无ROS依赖(二)
视觉惯性联合初始化其对应的函数为visualInitialAlign()是在初始窗口中的图像帧完成SFM三维重建之后,即各图像帧在参考坐标系下的初始位姿都已经计算完成之后,执行的。该函数主要实现了陀螺仪的偏置校准(加速度偏置没有处理),计算速度V[0:n]、重力g、尺度s。同时更新了Bgs后,IMU测量量需要repropagate;得到尺度s和重力g的方向后,需更新所有图像帧在世界座标系...
2019-08-21 12:12:01
1783
4
原创 VINS-Mono代码精简版代码详解-无ROS依赖(一)
精简版无ROS依赖的Vins-Mono代码(code is provided by 深蓝学院VIO Class)详解一代码框架主函数数据发布函数后端优化函数代码框架所详解的代码是深蓝学院课程提供的VIO代码,是港科大VINS-Mono代码的精简版本,保留了主要的初始化/前端/后端优化模块,整个代码不依赖于ROS系统,对于进一步深入学习VINS系统具有极大的帮助。下面将对代码的主要部分进行讲解,...
2019-08-20 20:28:32
3760
3
翻译 论文翻译-Accurate Monocular Visual-inertial SLAM using a Map-assisted EKF Approach
摘要本文提出了一个新的紧耦合单目视觉惯性SLAM方法,能够在标准的CPU上进行精确、鲁棒的实时定位。首先,本文使用视觉惯性EKF产生一个高频的运动估计,但是由于线性化问题,其结果会变得不一致。因此,本文使用基于关键帧的视觉惯性BA以提高系统的一致性和精度。另外,一个闭环检测与校正的模块被加入到系统中以消除累积漂移误差。最终,优化后的运动估计和地图反馈到基于EKF的视觉惯性里程计模块中,进一步降低...
2019-08-13 14:11:39
369
翻译 论文翻译Trifo-VIO: Robust and Efficient Stereo Visual Inertial Odometry using Points and Lines
论文翻译:Trifo-VIO: Robust and Efficient Stereo Visual Inertial Odometry using Points and LinesSome ideasAbstract引言Related WorkEstimator Description功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你...
2019-08-12 11:16:56
796
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人