一起自学SLAM算法:11.2 环境感知

news2024/12/24 9:32:22

连载文章,长期更新,欢迎关注:

环境感知就是机器人利用传感器获取自身及环境状态信息的过程,自主导航机器人的环境感知主要包括实时定位、环境建模、语义理解等,下面具体讨论。

11.2.1 实时定位

定位其实就是在回答图11-1中机器人提出的第1个问题“我在哪”,更确切点说应该是实时定位,因为机器人不仅要知道自身的起始位姿,在导航过程中机器人实时位姿也必须要知道。实时定位可以分为被动定位和主动定位两种,被动定位依赖外部人工信标,主动定位则不依赖外部人工信标。

1.被动定位

以GPS为代表的室外被动定位方法几乎应用到了生活的方方面面,GPS通过多颗卫星实现三角定位。对于一些定位精度要求特别高的场合,会在地面搭建信辅助基站来提高GPS的定位精度,即差分GPS。

当卫星信号受到遮挡时,GPS就无法使用了。因此在室内通常会借助移动网络或者WiFi进行定位,在定位精度要求更高的场合会使用UWB进行定位。这些室内定位方法其实与室外卫星定位方法的原理是一样的,都是通过外部基站提供的信标进行三角定位。在一些像物流仓储这样的特殊场合,会在环境中放置很多人工信标(比如二维码、RFID、磁条等),机器人移动过程中检测到这些信标时就能获取相应位姿信息。

这些被动定位技术通常会再结合IMU、里程计等进行融合以获得更稳定更精确的定位效果。

2.主动定位

被动定位有诸多缺点,一方面是搭建提供人工信标的基站价格高昂,另一方面是许多场合不具备基站搭建条件(比如宇宙中的其他星球表面、地下深坑、岩洞等),这时候主动定位就凸显优势了。

所谓主动定位,就是机器人依靠自身传感器对未知环境进行感知并获取定位信息,也就是说主动定位不需要依赖外部人工信标。目前主动定位技术以SLAM为主要代表,即同时进行建图和定位。关于SLAM部分的内容请参考前面相关章节,本章讨论的侧重点在导航上面。SLAM导航方案由建图(mapping)、定位(localization)和路径规划(path planning)3大基本问题组成,这3大问题互相重叠和嵌套又组成新的问题,也就是SLAM问题、导航问题、探索问题等,如图11-3所示。

图11-3  建图、定位与路径规划的关系

目前在商用场合中通常采用SLAM重定位模式来进行定位,即先手动遥控机器人进行SLAM环境扫描并将构建好的地图保存下来,然后载入事先构建好的离线地图并启动SLAM重定位获取机器人的实时位姿,大多数SLAM算法都支持这两种工作模式(SLAM建图模式和SLAM重定位模式)。比如Gmapping在SLAM建图模式时将构建出的地图保存为*.pgm和*.yaml文件,然后利用map_server功能包载入*.pgm和*.yaml文件并发布到ROS话题,最后SLAM重定位模式(这里通常为AMCL算法)利用当前传感器信息与地图信息的匹配程度来估计位姿。同样ORB-SLAM、Cartographer等也是类似的过程,只是各个算法在位姿估计问题的处理细节上有所不同。

但在外星球表面、荒野、岩洞等不便于人工手动遥控建图的情况下,就需要机器人自发进行探索、建图和定位了。单机器人对未知环境的探索过程,如图11-4所示。机器人在未知环境中启动时,依靠探测距离有限的传感器仅能获取一小片环境地图;接下来机器人依靠某种探索策略选择一个当前地图的边界点为目标,利用路径规划获取一条路径然后自主导航到该目标;通过这种方式机器人就能探索到区域越来越大的环境地图。为了提高超大范围的探索效率,通常会利用多个机器人进行协同探索。

 图11-4  对未知环境的探索过程

11.2.2 环境建模

环境建模其实就是在对环境状态进行描述,也就是构建环境地图。地图的一方面可以用于定位,另一方面可以用于避障,因此定位用到的地图与避障的地图并不一定相同。环境地图的表示方法有很多种,比如特征地图、点云地图、几何地图、栅格地图、拓扑地图等。视觉SLAM通常以构建特征地图和点云地图为主,而激光SLAM则以构建栅格地图为主。由于导航过程中需要避开障碍物,所以特征地图或点云地图必须被转换成栅格地图后才能导航,下面主要讨论一下二维栅格地图和三维栅格地图。

1.二维栅格地图

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

2.三维栅格地图

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

11.2.3 语义理解

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BI技巧丨近两年及当年月份数据汇总

BOSS:白茶,有个需求,不知道你能不能做? 白茶:不能! BOSS:我还没说呢,小伙砸!做了加钱! 白茶:BOSS您吩咐! BOSS:是这样的&a…

C语言开发基于RT-Thread家庭安全环境检测系统源码,RTT设计大赛

基于RT-Thread家庭安全环境检测 简介 基于RT-Thread和中蓝讯科的AB32VG1开发板实现的家庭安全检测功能,主要包含如下功能: 1、基于RT-Thread操作系统的按键组件,音频播放组件等; 2、基于AB32VG1开发板的语音播放功能&#xff1b…

BlackByte勒索软件开始使用新的数据泄露工具ExByte

BlackByte 勒索软件在 2021 年被首次发现,随后不断发现其变种。BlackByte 勒索软件不仅使用双重勒索,还运营着勒索软件即服务(RaaS)。最近,研究人员发现 BlackByte 开始使用名为 ExByte 的数据泄露工具来窃取受害者的数…

什么品牌的蓝牙耳机音质好?四款高音质蓝牙耳机推荐

随着时代的发展,蓝牙耳机的使用频率越来越高,在日常生活中随处可见的戴蓝牙耳机的人。或是听音乐,或是追剧,或是玩游戏等等。在现如今众多的蓝牙耳机品牌当中,什么品牌的蓝牙耳机音质好?下面,我…

基于Yolo实现的交通路况汽车识别 附完整代码(使用Keras框架)

一、问题描述 假设你现在在做自动驾驶的汽车,你想着首先应该做一个汽车检测系统,为了搜集数据,你已经在你的汽车前引擎盖上安装了一个照相机,在你开车的时候它会每隔几秒拍摄一次前方的道路。 您已经将所有这些图像收集到一个文件夹中,并通过在您找到的每辆车周围画边界框…

BlackStone:一款功能强大的渗透测试报告工具

关于BlackStone BlackStone是一款功能强大的渗透测试报告工具,该项目可以帮助广大研究人员自动起草和提交渗透测试或安全研究审计报告。该工具允许我们在数据库中提交和存储渗透测试过程中发现的漏洞,并通过内部和外部审计来对漏洞进行分类。除此之外&a…

界面控件DevExpress WinForm的先进技术——服务器和即时反馈模式

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

vue中如何优雅的实现数字递增特效

需求 前几天项目开发中遇到一个需求,需要在数字更新时,实现其动态递增的效果 并且,在数字大于10000时,将单位进行转换,如数字大于10000时,单位从m变为万m 我们以vue中开发为例,一一实现下这两个…

多目标跟踪(MOT)入门介绍

1. 相关方向 这些是我所了解的多目标跟踪(MOT)的一些相关方向。其中单目标跟踪(VOT/SOT)、目标检测(detection)、行人重识别(Re-ID)都是非常热门的方向。而偏视频的相关方向就比较冷…

java 随机数种子 java设置随机数种子教程 java随机数种子怎么设置

我们常用的随机数生成就是Math.random();java.util.Random类有两种方式构建方式:带种子和不带种子import java.util.Random;不带种子:不带种子将会返回随机的数字,每次运行结果不一样public class RandomTest {public static void…

分享149个ASP源码,总有一款适合您

ASP源码 分享149个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 149个ASP源码下载链接:https://pan.baidu.com/s/173AhCXJgM5AvPqBw-la60w?pwdqk9j 提取码&#x…

如何在UI自动化测试中加入REST API的操作

1、问题 当我们描述一个“好的自动化测试用例”时,经常出现标准是: 精确 自动化测试用例应该测试一件事,只有一件事。与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败。 独立 自动化测试用例不应该受测试套件中任何其他测…

SVN服务端使用教程

前言 正式进入公司项目后,我们需要和同事进行协同开发,此时代码管理工具是必不可少的,目前常用的两款工具是:SVN 和 Git。本人因为要搭建一个自动化测试的框架,对SVN和Git都不熟悉,在调研后选择了操作更为…

组合选择器

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>组合选择器</title> <style type"text/css"> /* 多个选择器组合在一起中间用逗号","隔开就形成了组合选择器&…

销售过程管理系统对企业的好处是什么

当线索转化成销售机会后&#xff0c;要不断地跟进才有可能成交。但是这个过程时间跨度长&#xff0c;涉及人员、要素过多&#xff0c;销售过程中经常会遇到很多的问题。不少企业使用CRM销售管理系统把控销售过程。下面来说说&#xff0c;为什么企业需要销售过程管理系统? 销售…

【Mysql】X档案:Mysql 服务和Navicat客户端的安装与使用(超详细步骤)

Mysql 服务和Navicat客户端的安装与使用&#xff08;超详细步骤&#xff09;一、Mysql 安装配置1、下载安装2、配置环境变量3、设置服务自动启动二、Mysql Cli 使用1、连接 Mysql2、创建数据库3、创建数据表4、数据表操作5、删除数据库对象三、Navicat 安装1、下载2、安装3、FR…

Android 实现隐私政策提示弹窗(完整版)

android studio版本&#xff1a;2021.2.1例程名称&#xff1a;pravicydialog功能&#xff1a;1、启动app后弹窗隐私协议2、屏蔽返回键3、再次启动不再显示隐私协议。本例程的绝大部分代码来自下面链接&#xff0c;因为本人改了一些&#xff0c;增加了一些功能&#xff0c;所以不…

【计算机网络】S1P1 概念、功能、组成、分类

计算机网络概念功能组成分类概念 计算机网络&#xff0c;是互连的、自治的计算机集合。 计算机网络&#xff0c;是一个将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 分散的&#xf…

UOS桌面系统使用启动盘找回数据盘文件

使用启动盘找回数据盘文件1、格式化优盘2、准备一个UOS系统启动优盘3、进入UOS PE系统4、查看硬盘信息5、查看挂载信息6、查看路径信息7、找到Desktop目录8、安装器文件9、挂在数据盘10、查看是否挂载成功11、找到重要文件12、打包重要文件13、可以看到打好的tar.gz包大小为64M…

【学Vue就跟玩一样】如何正确快速使用Vue中的插槽和配置代理

一&#xff0c;插槽1.什么是插槽让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件——>子组件。插槽分为三种&#xff0c;分别是默认插槽、具名插槽、作用域插槽&#xff0c;下面分别列出了如何使用这三种插槽1.1默认插槽啥是默认插槽呢&am…