机器人开发--二维激光SLAM介绍
机器人开发--二维激光SLAM介绍
- 1 SLAM简介
- 1.1 概述
- 1.2 应用
- 1.3 历史发展
- 2 SLAM中3个模块
- 2.1 前端里程计模块
- 实现原理
- 实现方法
- 2.2 后端优化模块
- 2.3 回环检测模块
- 参考
1 SLAM简介
1.1 概述
SLAM本质就是确定自己在哪里的哪里,如在苏州中心的正东边66米处。
- SLAM (Simultaneous Localization and Mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。
- 机器人自主定位导航技术中包括:定位和地图创建(SLAM)与路径规划和运动控制两个部分,而SLAM本身只是完成机器人的定位和地图创建,二者有所区别。
- 自主导航的解决方案:SLAM + 路径规划 + 运动控制;
- 在虚拟现实(Virtual Reality)和增强现实技术(Argument Reality)中,没有SLAM提供的定位,用户就无法在场景中漫游。
1.2 应用
- 二维激光SLAM构建的二维栅格地图,可以用来做机器人的定位与导航。
- 三维激光SLAM构建的三维点云地图,可以用来做无人车的定位与导航,也可以用来做三维建模。
- 视觉SLAM构建的稀疏点云地图,可以用来做定位。
- 视觉SLAM构建的半稠密与稠密的点云地图,可以用来做定位与导航,也可以用来做VR领域的交互场景,也可以用来做三维建模。
二维激光 | 三维激光 |
---|---|
1.3 历史发展
2 SLAM中3个模块
前端里程计模块,后端优化模块,以及回环检测模块
2.1 前端里程计模块
机器人行走里程由编码器、IMU等给出的。
实现原理
- 激光SLAM
激光雷达的频率一般是10Hz-40Hz之间。只要确定第一帧雷达数据与第二帧雷达数据的时间间隔内,机器人走了多远,再确定第二帧到第三帧雷达数据的时间间隔内,机器人走了多远(位姿变换),依次类推,就可以一直确定机器人到底走了多远,确定机器人当前的位姿与初始时刻的相对位姿。 - 视觉SLAM
摄像头的数据是一帧一帧的图像,可能是RGB彩色图像,也可能是彩色图像加上深度图像。一般的处理方法为在图像中提取特征点,然后确定特征点在空间中的坐标值,通过这些特征点,确定机器人在2帧图像间的位姿变换,再确定第二帧图像与第三帧图像间的位姿变换,依次类推,就可以确定了机器人当前的位姿与初始时刻的相对位姿。
上述过程确定了机器人相对于初始时刻以及相对于每帧数据到来时的位姿变换,这个过程就是定位的过程。
实现方法
对于激光SLAM来说,求从前一帧雷达数据到当前帧雷达数据间的位姿变换,一般将这个过程称为 扫描匹配(scan-matching) 过程。scan就是雷达的数据,通过与前一帧数据进行匹配,从而确定处位姿变换。
目前的扫描匹配方法为:
- scan-to-scan:雷达数据与雷达数据进行匹配
- scan-to-map:雷达数据与地图进行匹配
- scan-to-submap:雷达数据与子地图进行匹配
- map-to-map:地图与地图进行匹配
对于视觉SLAM来说,求从前一帧图像到当前帧图像间的位姿变换,一般将这个过程称为 BA(Bundle Adjustment)。
2.2 后端优化模块
- 使用编码器得到的里程计或者前端计算出来的里程计,一般都会有误差。误差可能来自编码器,也可能来自地面打滑、地面凹陷突起等。误差不做处理,会一直累积,导致机器人在地图中丢失位置。
- 后端优化就是为了减小累计误差的。通过图结构,将机器人的各个位姿以及生成的地图数据,进行联合优化,通过优化求解,将所有的误差平均分散到每个机器人位姿以及每个地图数据上去,当优化过程十分完美的时候,这些累计误差可以减小到可以忽略的地步。
2.3 回环检测模块
- 回环检测,又称闭环检测,是指机器人识别曾到达某场景,使得地图闭环的能力。说的简单点,就是机器人在左转一下,右转一下建图的时候能意识到某个地方是“我”曾经来过的,然后把此刻生成的地图与刚刚生成的地图做匹配。
- 回环检测之所以能成为一个难点,是因为:如果回环检测成功,可以显著地减小累积误差,帮助机器人更精准、快速的进行避障导航工作。而错误的检测结果可能使地图变得很糟糕。因此,回环检测在大面积、大场景地图构建上是非常有必要的 。
- 思岚的回环检测
先小闭环,后大闭环 ;选择特征丰富的点作为闭环点;多走重合之路,完善闭环细节。
- 思岚的超大场景下建图完整闭合过程
参考
机器人开发--二维激光SLAM介绍相关推荐
- 二维激光SLAM( 使用Laser Scan Matcher )
目录 一.Laser Scan Matcher安装配置 二.二维激光定位 一.Laser Scan Matcher安装配置 ROS自带的laser_scan_matcher库,使用的是CSM(Cano ...
- 从零开始搭二维激光SLAM --- 基于GMapping的栅格地图的构建
上篇文章讲解了如何在ROS中发布栅格地图,以及如何向栅格地图赋值. 这篇文章来讲讲如何将激光雷达的数据构建成栅格地图. 雷达的数据点所在位置表示为占用,从雷达开始到这点之间的区域表示为空闲. 1 GM ...
- 从零开始搭二维激光SLAM --- 激光雷达数据效果对比
我们知道,不同品牌的激光雷达产生的数据是不一样的,那这些不同点是如何影响建图效果的呢? 这篇文章就是来分析这个问题,将从不同光强下的点云效果,不同夹角下的点云效果,以及 1 激光雷达的技术指标 激光雷 ...
- 从零开始搭二维激光SLAM --- 基于ICP的帧间匹配
上一篇文章讲解了如何将激光雷达的sensor_msgs/LaserScan格式转换成pcl::PointCloud< pcl::PointXYZ>格式, 本篇文章将要讲解如何使用这个格式调 ...
- 从零开始搭二维激光SLAM --- Hector论文公式推导与相关代码解析
这篇文章将带领大家推导一下hector slam论文中的公式.之后再对这部分公式对应的代码进行讲解下. markdown打公式太费劲了,所以我用手写了.(懒) 然后csdn又限制了图片文件大小,我是照 ...
- 使用二维激光雷达和cartographer_ros实现实时SLAM
在前面已经完成了cartographer_ros的安装和demo的运行了.接下来,就要放到机器人上,实时进行SLAM了. 前一篇内容的链接如下: Cartographer_ros的下载.配置及编译与问 ...
- 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
定位技术是机器人实现自主定位导航的最基本环节,是机器人在二维工作环境中相对于全局坐标的位置及其本身的姿态.目前SLAM (Simultaneous Localization and Mapping即时 ...
- 浅谈机器人的定位技术 激光SLAM VS 视觉SLAM
定位技术是机器人实现自主定位导航的最基本环节,是机器人在二维工作环境中相对于全局坐标的位置及其本身的姿态.目前SLAM (Simultaneous Localization and Mapping即时 ...
- PDPS软件:带颜色的机器人工作站二维布局图JT格式文件转换方法
本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! PD/PS软件在对机器人工作站设备布局时,通常需要先导入设备二维布局图,布局图通常是使用AutoCAD软件 ...
- kmz转换为dwg_NX UG软件:带颜色的机器人工作站二维布局图JT格式文件转换方法...
PD/PS软件在对机器人工作站设备布局时,通常需要先导入设备二维布局图,布局图通常是使用AutoCAD软件设计的工作站二维布局草图,或是其他机械设计软件导出的设备布局投影图.由于PD/PS软件并不支持 ...
最新文章
- CentOS4 可用镜像及更新方式
- linux C 中的volatile使用
- C++虚继承和虚基类详解(二)
- 关于学习新技术的方法
- react判断点击位置是否为组件内,实现点击外部触发组件内事件
- Magento 自定义分页代码 How to change pagination design in product listing page in magen
- OPPO R17引领渐变色手机潮流,15步技术处理工艺出众
- 【zookeeper】Zk创建空节点 不带数据的
- 创建oracle方法,简单的Oracle存储过程的创建方法
- dmp导入数据 oracle_oracle数据库:数据的导入导出及备份
- F6-预编译编译安装
- 《深入浅出统计学》读书笔记
- mysql md5 sha1_PHP md5 vs sha1 性能测试
- 应急响应-记一次“完(sang)美(xin)无(bing)缺(kuang)”的SSH口令爆破
- axrue9不显示右侧文件_Axure 9.0基础教程:史上最详细的元件说明,建议你认真看完(一)...
- 打破思维断层之KMP分析
- hadoop集群搭建及易踩坑收录
- H5一键复制 兼容iOS
- linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网
- Centos7.3-Oracle11g数据库静默部署