内容列表 写在前面 环境安装 制作标定版 打印ArUco二维码 裁剪硬纸板 修改文件参数 调整launch文件 第一,remap字段: 第二,marker_size字段: 第三,修改zed_left_uurmi.ini 这个配置文件: 第四,修改其他配置文件: 运行程序 获取外参 发布TF变换 写在前
本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中。 由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件、控制等各方面并不是专门做SLAM的工程师),加上汇报的内容较多,因此在分享中我尽量使用简介的口语,而不出现复杂的公式。所以本文面向的是3D-slam方向的初学者,不涉及到源码解析。内容在整理中参考了许多链
写在前面 关于安装配置,博客LIO_SAM实测运行,论文学习及代码注释[附对应google driver数据] 我觉得已经写的比较完善了。但是我觉得在注释方面,这位博主写的还不够完善,因此在学习以后,我想补充一些内容。 关于本身论文的原理,参见我的专栏内容: SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,L
内容列表 1.相似变换、仿射变换、射影变换的区别。 2.单应矩阵和基础矩阵的区别。 3.视差和深度的关系。 4.二值图,最大联通区域。 5.梯度下降法,牛顿法和高斯牛顿法优劣。 6.边缘检测算子。Canny,Sobel,Laplace。 7.BA算法的流程。 8.SVO中深度滤波器原理。 9.某个SLAM框架工作原理,优缺点,改进。 10.Ransac框架的实现。
内容列表 写在前面 论文解析 代码注释 exploration_with_graph_planner.cpp graph_planner.cpp drrtp_node.cpp 先验 dual_state_graph.cpp drrtp.cpp drrt.cpp dual_state_frontier.cpp grid.cpp 写在前
非ROS版本 配置 要在linux下使用realsense相机,需要首先配置librealsense。我的环境是Ubuntu18.04,相机是D435i相机。 librealsense的地址在点击这里。 但是自己编译的时候发现太慢了,根本不知道是卡住了,还是正常进行但是时间比较漫长。很麻烦,建议不要自己编译,而是直接用apt install 的方式来装,这样装又快又省事,官方也给了相关的说
写这一篇文章的原因是随着相关内容的不断维护,这部分网上的一些资料都已经比较老了,配置起来走了一些弯路。不过,想当年实习配置SLAM算法库的时候什么依赖的报错没有调好过?哈哈,在今天配置完以后,特意总结此文章,把过程记录一下。方便我之后再配,还有就是给大家提供一些方便,不要把精力都花在像这种乱七八糟的事情上。 内容列表 安装Cartographer 下载3D包 保存点云数据 可视化
事件相机(Event-based camera)模拟器的环境配置方法,我已经在这篇文章中事件相机(Event-based camera)模拟器ESIM配置及使用指南介绍过了。 这篇文章用来介绍一下该模拟器哪些功能。(具体怎么使用,相信配置好以后看github介绍即可。其github地址在:点击这里 另外,该模拟器生成的事件,统一是以ROSBAG的形式保存的,如何从中读取我写了一个脚
Turtlebot3的github地址是https://github.com/ROBOTIS-GIT/turtlebot3,其中激光雷达默认的最远测距是3.5m。 当把3.5m修改为3.5m以上的数时,前方的激光发射会存在问题,如下图所示。总之会有许多测距的异常值,大概在0.1~0.2左右。(请无视我小车和车轮的颜色,这是我之后自己改过的,在这里我用的小车的型号是waffle) 事先声明,这个
事件相机的原理和特性在此处不解释,本文只讲解如何配置和使用事件相机模拟器。模拟器是用线性插值和高斯噪声扰动的方式,模拟出事件流来。因此需要帧率尽可能的高一些。亲自测了以后,和DAVIS事件相机实际对着电脑屏幕拍摄的已经记录的视频没什么差别。 模拟器在github网址为:点击这里 目录 一、模拟器的配置 可能出错以及解决方案: 继续配置: 二、
运行 Cartographer的配置参数比较重要,稍微不注意就会报错,例如一个常见的错误类型: [ERROR] [1602741280.449037435, 153.231000000]: Ignoring transform from authority "unknown_publisher" with frame_id and child_frame_id "odom" because
前几天有实习的学弟询问我关于2D-3D匹配点的EPnP的算法原理。一下子问到还真没想起来。看了看资料,回忆起来了,特在这里简单的总结一下。 学弟没看明白的原因,其实就是一些相关的讲解文章一上来就摆出让人生畏的一堆公式。其实个人觉得在目前Epnp算法已经被集成到OpenCV中库函数里面,我们就没必要再去手动实现轮子,因此求解的细节不需要死记,我们只要知道每一步是在干什么就可以了。除非你要研究和改
之前在SLAM14讲学习笔记(六)后端(最难一章:卡尔曼滤波器推导、理解以及扩展)中,介绍了卡尔曼滤波器的推导。 但是感觉不太直观,因此这次用了几个简单的图,希望能一目了然卡尔曼滤波器是在干什么。 先说SLAM中最简单的“滤波器”是什么含义: 以上就是常规滤波器的解释。但是,套用到卡尔曼滤波器上,会有一些差别:
本章的理论内容已经总结到了SLAM14讲学习笔记(九)单目稠密重建、深度滤波器详解与补充(纠正第13讲 建图 中的错误),这章的内容在关键的深度滤波器的地方犯了一些错误,我将其标了出来。本文没有理论知识,对理论知识不够了解的,请点击上面的链接。 本章的代码难点主要在于两点: 第一:通过极线匹配之后,如何通过三角测量算出两点的深度来。在ch7中,调用opencv的函数来三角化的。而这章是自己
本章的理论内容我已经将其总结在了SLAM14讲学习笔记(六)后端(最难一章:卡尔曼滤波器推导、理解以及扩展)以及SLAM14讲学习笔记(七)后端(BA与图优化,Pose Graph优化的理论与公式详解、因子图优化)当中。 本文主要针对其中的代码进行讲解。 这章的代码纯粹靠自己学习,对于初学者来说是很难的。 我个人有些感觉:之前的练习,都是一些小demo,相当于实验内容。而这章,给读者
本章的内容没有理论知识,完全是由实践部分组成的。 本章主要有两大难点。 第一,g2o的使用。对此,我总结了到了之前的一章中: SLAM14讲学习笔记(十一)g2o图优化中的要点与难点(前端VO中雅克比矩阵的定义) 第二,程序的架构,各个部分的组装。确实如高博所述,这章内容让人体会到了怎么一步一步由砖头搭建起大厦的过程。搭建的过程中,文章内容缺乏注释,因此,我在学习过程中将自己的理解和注释写
使用g2o优化的前提是,需要对各种误差的理解足够充足。我将雅克比矩阵的详细解析,写在了这里:点击查看 在源码和自定义的类中,各种雅克比矩阵有的是写在源码里的,有的是需要自己修改和定义的。然而在实践中发现,雅克比矩阵的定义往往不一,容易使初学者摸不着头脑。因此,这篇文章我从代码角度出发,简单解析一下g2o定义时候的要点,和内置的雅克比矩阵的书写方式。 在g2o中,内置了三大类: Ver
单目稠密重建和深度滤波器的内容我已经总结在了上一个学习笔记中(SLAM14讲学习笔记(九)单目稠密重建、深度滤波器详解与补充(纠正第13讲 建图 中的错误)),因为在那一部分内容中高博讲的有所欠缺和错误。这一节的学习笔记把14讲中剩下所有的内容做一个总结。 1.像素梯度和极线匹配的不确定性是存在联系的,具体表现在:梯度与极线夹角较大,极线匹配不确定性大;夹角较小,极线匹配的不确定性小。(举例
这次的笔记我把13讲的部分内容总结一下。 虽然slam的名字叫同步定位与构图,但是书中建图的内容却少的可怜。据此高博给出了自己的解释,意为在定位的过程中,我确定了很多特征点的世界坐标,那这个过程其实就是建图了。一个点云中,每个已知世界坐标系的特征点给它的位置塞一个点,那这不就是建图吗?从这角度来说倒也没有太大的问题。但是作为用户,对于地图的要求是不一样的,比如希望地图应该是稠密的。而基于特征点方法
学习到这里为止,SLAM14讲的主要知识就不多了。这章的内容书里只是做了一个简述,因此读起来也没有什么难度。但是初学者不仔细看就很容易犯糊涂。 回环检测的意义: 1.给后端的Pose Graph提供更多有效的数据(即走到同一个位置附近了),否则后端优化可能把前端的误差累积起来,出现漂移问题。 2.跟踪算法如果跟丢了,利用回环检测进行重定位。 回环检测的实现方式: 1.朴素思路:(1
上一节内容中我总结了卡尔曼滤波器的推导及其扩展的过程SLAM14讲学习笔记(六)后端(最难一章:卡尔曼滤波器推导、理解以及扩展),我认为那部分内容直接接触是比较难以理解的。但是高博书中也说了,卡尔曼滤波器并不是主流方法,主要还是通过BA或者其他方式来做优化。 SLAM十四讲中,后端分为两节,在我的笔记里,把卡尔曼滤波器单独拿出来做了一个笔记,然后剩下的内容总结在这里,作为第二个后端优化的笔
这一章的内容并不多,不像视觉里程计那章的内容那么厚。但是我认为它是整个SLAM十四讲中最难的一章,难点主要在于卡尔曼滤波器的推导涉及到一屁股的数学公式,非常的讨厌,如果不能静下心来,就很容易被吓到。但是真正看懂以后实质上它是比较简单的,并没有用到什么太过复杂的变换(不像傅里叶变换就十分的抽象,这也是我从电信科专业转到计算机专业的主要原因之一,因为我实在厌烦了与傅里叶变换打交道。),本质上这节内容掌
这章的内容不多,但是很奇妙的和上一章的串起来了。这里我简单总结一下光流法和直接法,主要想在最后总结和比较一下两个这节和上一节尤其是雅克比矩阵推导上的区别。雅克比矩阵的内容非常关键,如果不能充分理解它们的含义,前端基本就没有办法使用g2o来进行图优化。本文的内容主要是讲述重投影误差和光度误差分别对于位姿求偏导、以及对于世界坐标系下的点求偏导的理论文章,不涉及代码。如果希望理解代码中是如何用到雅克比矩
直接总结吧:这一节描述的视觉里程计就是检测特征点,特征点匹配,匹配上以后算位姿和深度。 特征点检测: Fast特征点:以半径为3画圆,检测周围一圈一共16个点,设定阈值。有12个连续的点与该点亮度差超过阈值,确认为一个Fast特征点。(快速检测方式是先检查上下左右四个点,有三个点大于阈值才有可能是角点。因为要的是“连续”的点。有一个断掉了,就不能是连续的12个点了;然后通过非极大值抑制的方
这部分的内容,第一次看觉得很难看懂,不知所云;最近第二次看,可以看明白了。本着“先赶理论,后赶代码,借着代码复习C++”的原则,现在先不去学习代码的内容。 这一章的内容,应该先从宏观上看。第一次看的时候,就是陷入了细节,忘记了每时每刻主要是在做什么,因此看完之后不能融会贯通。说明学习的时候,把握整体的脉络比追究细节更重要(毕竟不是考试,平时不用闭卷)。后者可以临时抱佛脚,现用现查,而前者不行。
相机模型这节的内容是最最基础重要的内容。再次回顾依然有所收获。但这一章的内容其实并不多。但是容易混淆。 1.一共涉及到的坐标系有四个: 第一,世界坐标系; 第二,相机坐标系; 第三,归一化相机坐标系; 第四,像素坐标系。 世界坐标系意如其名,不多解释;而相机坐标系是依据相机的光心(也就是小孔成像的那个小孔)建立起的坐标系。 而归一化相机坐标系,是相机坐标系下的(x,y,z)三个值除以第三
第二次翻看《视觉SLAM十四讲》,发现第一次看过的都忘记了,认真分析了一下,我认为是第一次学习没有弄清楚整体的脉络。因此这次做一个小小的总结,希望不要再过几天又忘掉。前面的内容就没有总结的意义了,因为是最简单的,真正进入SLAM,应该是从这章的内容开始。 首先,旋转矩阵是一个正交矩阵,它与自己的转置的乘积是单位矩阵。另外它还是关于时间的函数。 每次对R(t)求导,相当于将其左乘一个Φ
最近发现身边的一些初学者朋友捧着各种pytorch指南一边看一边敲代码,到最后反而变成了打字员。 敲完代码一运行,出来结果和书上一对比,哦,是书上的结果,就翻到下一章。半天就能把一本书都打完,但是合上书好像什么都不记得。有的甚至看了两三遍,都搭不出一个简单的网络来,这种学习方式很不可取。如果你刚好是这种情况,这篇文章应该能给你一些帮助。如果你已经是进阶的水平了,就直接关掉
SLAM定位算法、强化学习导航、计算机视觉、机器人、事件相机、Python/C++
积分
粉丝
勋章
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信