机器人slam技术_激光二维扫描仪

机器人slam技术_激光二维扫描仪机器人开发–二维激光SLAM介绍1SLAM简介1.1概述1.2应用1.3历史发展2SLAM中3个模块2.1前端里程计模块实现原理实现方法2.2后端优化模块2.3回环检测模块参考1SLAM简介1.1概述SLAM本质就是确定自己在哪里的哪里,如在苏州中心的正东边66米处。SLAM(SimultaneousLocalizationandMapping),也称为CML(ConcurrentMappingandLocalization),即时定位与地图构建,或并发

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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 回环检测模块

  • 回环检测,又称闭环检测,是指机器人识别曾到达某场景,使得地图闭环的能力。说的简单点,就是机器人在左转一下,右转一下建图的时候能意识到某个地方是“我”曾经来过的,然后把此刻生成的地图与刚刚生成的地图做匹配。
    在这里插入图片描述
  • 回环检测之所以能成为一个难点,是因为:如果回环检测成功,可以显著地减小累积误差,帮助机器人更精准、快速的进行避障导航工作。而错误的检测结果可能使地图变得很糟糕。因此,回环检测在大面积、大场景地图构建上是非常有必要的 。
    在这里插入图片描述
  • 思岚的回环检测
    先小闭环,后大闭环 ;选择特征丰富的点作为闭环点;多走重合之路,完善闭环细节。
    在这里插入图片描述
  • 思岚的超大场景下建图完整闭合过程
    在这里插入图片描述

参考

1、
2、李想–从零开始搭二维激光SLAM
3、李想–从零开始搭二维激光SLAM项目地址
4、百科–SLAM (同步定位与建图)
5、基于SLAM的机器人的自主定位导航
6、移动机器人定位与地图创建(SLAM)方法
7、知乎–同时定位和地图构建(SLAM)
8、干货 | 超全SLAM技术及应用介绍
9、SLAM大法之回环检测

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172372.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • activity manager_tasklist findstr

    activity manager_tasklist findstr//getRunningTasks(int),获取int个任务栈列表,但返回的列表size可能会小于int//getRunningTasks(int).get(0):获取当前正在运行的任务栈对象,通过这个对象可获取栈中activity的数量、正处于运行状态的activity数量等等信息//getRunningTasks(int).get(0).topActivity:获取当前正在运行的任…

  • 《windows程序设计》_windows窗口程序设计

    《windows程序设计》_windows窗口程序设计TEXTMETRICTEXTMETRIC是在WINGDI.H中定义的型态的结构。结构体各成员介绍TEXTMETRIC是在WINGDI.H中定义的型态的结构。TEXTMETRIC结构有20个栏位:typedef struct tagTEXTMETRIC { // tmLONG tmHeight; //字符高度TEXTMETRIC结构字段的图示LONG tmAscent; //字符上部高…

  • rpm 安装与卸载

    rpm 安装与卸载rpm (RedHatPackageManager) 红帽软件包工具。在redhat,fedora,novellsuselinuxenterprise,openSUSE,centos等系统上使用。 用途:安装与卸载软件包用法:rpm -选项 包名选项:-vih   安装v显示安装过程h显示安装进度      -q    后跟包名查询指…

  • 米的换算单位和公式_米的单位换算公式大全(长度单位大全表)

    米的换算单位和公式_米的单位换算公式大全(长度单位大全表)位换算题是小学低年级数学学习重点之一。单位换算记忆不够深刻,孩子经常混淆运用,容易出现计算失误,进率错误等问题。牢记单位换算口诀,才能准确计算。口诀:大化小,往右移,进率有几个“0”,就移几位。小化大,往左移,进率有几个“0”,就移几位。长度单位国际单位是“米”。最常见的有千米(km)、米(m)、分米(dm)、厘米(cm)、毫米(mm)。换算公式1千米(km)=1000米(m),1米(m)=10分…

  • 整数规划

    整数规划2、整数规划2.1定义规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。2.2分类变量全限制为整数时,称纯(完全)整数规

  • mysql如何开启远程连接

    mysql如何开启远程连接

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号