![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
slam
老李lyj
这个作者很懒,什么都没留下…
展开
-
一起做RGB-D SLAM (1)
SLAM,即Simultaneous Localization and Mapping,中文译作同时定位与地图创建,是近几十年里机器人领域有重大发展的研究方向。作为自主机器人的核心技术,SLAM在机器人导航、控制、生产等方面都有着重要的研究意义。尤其在二十一世纪,以视觉传感器为中心的视觉SLAM技术,在理论和方法上都经历了明显的转变与突破,正逐步从实验室研究迈向成熟的市场应用。在国外研究如火如荼之转载 2017-04-13 08:40:49 · 505 阅读 · 0 评论 -
实用教程|快速搭建自动导航机器人( 二)
4. STM32固件配置 底盘的固件代码需要修改为适应当前底盘的具体参数,可以用slamware_config_tool.exe工具来自动生成配置文件: 配置工具链接:http://pan.baidu.com/s/1qXHWDzQ密码:3hs6 打开slamware_config_tool.exe, 添加以下参数: (1) 底盘直径:将Robot Diame转载 2017-08-31 17:50:18 · 2505 阅读 · 0 评论 -
实用教程|快速搭建自动导航机器人(一)
服务机器人的核心问题在于自主定位与导航,它主要包括几大问题: 无需用户干预,机器人自主构建环境地图?实时、高精度的获取机器人所在位置?有效规避环境障碍,抵达目标地点?在未知环境中,有效规划两地之间最短路线? 有了相应解决方案后,对于服务机器人厂商,还需要考虑如何快速与现有系统整合,加快产品上市?在高性能与低成本间如何获得平衡?转载 2017-08-31 17:49:15 · 1788 阅读 · 0 评论 -
一起做RGB-D SLAM 第二季 (二)
本节目标 我们要实现一个基本的文件IO,用于读取TUM数据集中的图像。顺带的,还要做一个参数文件的读取。设计参数文件读取的类:ParameterReader 首先,我们来做一个参数读取的类。该类读取一个记录各种参数文本文件,例如数据集所在目录等。程序其他部分要用到参数时,可以从此类获得。这样,以后调参数时只需调整参数文件,而不用重新编译整个程序,可以节省调试时间转载 2017-04-13 15:29:36 · 829 阅读 · 0 评论 -
一起做RGB-D SLAM 第二季 (一)
小萝卜:师兄!过年啦!是不是很无聊啊!普通人的生活就是赚钱花钱,实在是很没意思啊! 师兄:是啊…… 小萝卜:他们都不懂搞科研和码代码的乐趣呀! 师兄:可不是嘛…… 小萝卜:所以今年过年,我们再做一个SLAM吧!之前写的那个太烂了啦,我都不好意思说是我做的了! 师兄:嗯那可真是对不住你啊…… 小萝卜:没事!你再写一个好一点的,我就原谅你了!转载 2017-04-13 15:25:43 · 2055 阅读 · 0 评论 -
视觉SLAM实战(二):ORB-SLAM2 with Kinect2
前言 实战系列很久没有更新了。近期拿到了一台不错的Thinkpad和Kinect v2,前两天orbslam2又放出,于是想要在kinect2下尝试一下orb slam。整个过程没有特别多的技术含量,读者可以把它当成一个实验步骤的总结。ORB-slam orb-slam是15年出的一个单目SLAM,也可以说是单目中做的非常好的一个实现。另一方面,他的代码也极其清爽,转载 2017-04-13 15:21:20 · 2393 阅读 · 0 评论 -
视觉SLAM中的数学基础 第三篇 李群与李代数
视觉SLAM中的数学基础 第三篇 李群与李代数前言 小结 最后,我们对之前介绍的李群李代数进行一个简单的小结。概而言之,李群有以下两个重要用处:李代数表达的正切空间,具有和对应李群相同的自由度。指数映射能把正切空间中任意向量正好映射到原李群。转载 2017-04-13 15:15:30 · 1082 阅读 · 0 评论 -
视觉SLAM中的数学基础 第二篇 四元数
视觉SLAM中的数学基础 第二篇 四元数什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑、易于迭代、又不会出现奇异值的表示方法。它在程序中广为使用,例如ROS和几个著名的SLAM公开数据集、g2o等程序都使用四元数记录机器人的姿态。因此,理解四元数的含义与用法,对学习SLAM来说是必须的。本节我们就来讲讲四元数。 首先,请读者不要对四元数有什么神秘的转载 2017-04-13 15:08:33 · 795 阅读 · 0 评论 -
视觉SLAM的数学基础 第一篇 3D空间的位置表示
视觉SLAM中的数学基础 第一篇 3D空间的位置表示前言 转眼间一个学期又将过去,距离我上次写《一起做RGBD SLAM》已经半年之久。《一起做》系列反响很不错,主要由于它为读者提供了一个可以一步步编码、运行的SLAM程序,为读者理解SLAM实现的细节作了详细的介绍。但是我也有很多对它不满意的地方。作为面向实现的介绍,它的代码不够稳定可靠,例如,甚至没有对匹配丢失的情况进行处理,转载 2017-04-13 15:01:24 · 625 阅读 · 0 评论 -
SLAM拾萃(1):octomap
本篇是《SLAM拾萃》第一篇,介绍一个建图工具:octomap。和往常一样,我会介绍它的原理、安装与使用方式,并提供例程供读者学习。必要时也会请小萝卜过来吐槽。(小萝卜真是太好用了,它可以代替读者提很多问题。) 什么是octomap? RGBD SLAM的目的有两个:估计机器人的轨迹,并建立正确的地图。地图有很多种表达方式,比如特征点地图、网格地图、拓扑地图等等。在《一起做》转载 2017-04-13 14:45:59 · 5181 阅读 · 0 评论 -
一起做RGB-D SLAM(8) (关于调试与补充内容)
“一起做”系列完结后,我收到不少同学给我的反馈。他们提了一些在程序编译/运行过程中的问题。我把它们汇总起来,组成了这个“补充篇”。你也可以看成是一个Q&A。Q: OpenCV的版本?A: 我用的是2.4.9。可以使用2.4系列,不会有太大差别。而3.0系列则在接口上有一些明显的改动,可能需要修改源码。Q: 第二讲的点云如何查看?A: 使用pcl_viewer。当点云显示时,先用r键转载 2017-04-13 14:35:53 · 489 阅读 · 0 评论 -
一起做RGB-D SLAM(7) (完结篇)
第七讲 添加回环检测 2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。回环检测的阈值作出了相应的调整。请以现在的github上源码为准。简单回环检测的流程 上一讲中,我们介绍了图优化软件g2o的使用。本讲,我们将实现一个简单的回环检测程序,利用g2o提升slam轨迹与地图的质量。本讲结束后,读者朋友们将得到一个转载 2017-04-13 14:34:38 · 569 阅读 · 0 评论 -
一起做RGB-D SLAM (6)
2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。OpenCV可以使用 apt-get install libopencv-dev ,一样能成功。因为换成了ORB,所以调整了good match的阈值,并且匹配时需要使用 Brute Force match。请以现在的github上源码为准。 在上一讲中,我们介绍了如何使用两两匹转载 2017-04-13 14:31:42 · 930 阅读 · 0 评论 -
一起做RGB-D SLAM (5)
第五讲 Visual Odometry (视觉里程计) 2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。去掉了cv::cv2Eigen函数,因为有些读者找不到这个函数。检查了minDis为零的情况。之前t的访问时,行和列颠倒了,会对结果产生一定影响,现在修正了。请以现在的github上源码为准。 读者朋友们大家好,又到转载 2017-04-13 14:22:44 · 546 阅读 · 0 评论 -
一起做RGB-D SLAM (4)
第四讲 点云拼接上讲回顾 上一讲中,我们理解了如何利用图像中的特征点,估计相机的运动。最后,我们得到了一个旋转向量与平移向量。那么读者可能会问:这两个向量有什么用呢?在这一讲里,我们就要使用这两个向量,把两张图像的点云给拼接起来,形成更大的点云。 首先,我们把上一讲的内容封装进slamBase库中,代码如下: include/slamBase.h转载 2017-04-13 09:36:54 · 634 阅读 · 0 评论 -
一起做RGB-D SLAM (3)
第三讲 特征提取与配准 2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。OpenCV可以使用 apt-get install libopencv-dev ,一样能成功。因为换成了ORB,所以调整了good match的阈值,并且匹配时需要使用 Brute Force match。请以现在的github上源码为准。转载 2017-04-13 09:27:18 · 638 阅读 · 0 评论 -
一起做RGB-D SLAM (2)
第二讲 从图像到点云 本讲中,我们将带领读者,编写一个将图像转换为点云的程序。该程序是后期处理地图的基础。最简单的点云地图即是把不同位置的点云进行拼接得到的。 当我们使用RGB-D相机时,会从相机里读到两种数据:彩色图像和深度图像。如果你有Kinect和ros,可以运行:1 roslaunch openni_launch openni.launch 使转载 2017-04-13 09:14:18 · 512 阅读 · 0 评论 -
实用教程|快速搭建自动导航机器人(三)
系统整体坐标系:输出底盘调试信息 在配置MCU固件代码的时候,如果需要输出调试信息,可以连接J7调试输出口至电脑USB用SSCOM工具查看调试信息。 请自行下载SSCOM工具,并运行。 比如在底盘代码中加入DBG_OUT(),格式与printf()一致。 然后连接J7和电脑的COM口,用SSCOM工具查看调试信息:转载 2017-08-31 17:51:39 · 1037 阅读 · 0 评论