扫地机器人如何利用图算法来进行避障策略和优化清扫路径的?

前言

扫地机器人是现代家庭中最常见的智能设备。其基本的核心组件由主控系统(大脑)、传感器等控制系统(感知系统)、动力供应系统(心脏)、清扫系统(四肢)组成。

图片

扫地机器人的智能、高效、灵活程度,最重要的核心技术便是路径的设计与规划,比如自主地实现避障,在不同地形如木地板、砖地板、地毯、地垫等以及各种障碍物的情况下进行实时决策、移动、清扫等任务。

图片

扫地机器人的路径规划是机器人学科中的一个重要研究领域,其中如何在清扫过程中规划出最优路径,确保覆盖整个区域并避开障碍物,这就需要借助算法了。

图片

最常见的最短路径算法包括 Dijkstra(迪杰斯特拉)算法、A* 算法、Bellman-ford(贝曼-福特)算法、Floyd-Warshall (佛洛依德-沃歇尔)算法等,这些都属于不同的最短路径算法。

嬴图数据库来建模扫地机器人的路径规划:

1、创建图模型[5] 

· [1] 可以代表扫地机器人可以访问的房间、走廊、墙角、家具等每个地点;

· 边 [2] 则用来表示点与点之间的连接,例如路径的长度,通行的难度(例如需要穿过狭窄的门或地毯)、路径类型(直线、曲线、斜坡等)等。

图片

2、节点属性:

· 每个节点可以具有属性,如节点的坐标、类型(起点、终点、障碍物等),是否被清扫过等状态信息。这些属性均可以帮助扫地机器人进行路径[3] 规划和决策。

在我们日常中,呈现出的上层应用显示见下图:

图片

3、最短路径[4] 算法:
基于以上的建模信息,扫地机器人可以通过 Dijkstra 算法、A* 算法等来快速找到从起点到终点的最优路径。

1) Dijkstra(迪卡斯特拉)算法:在离散化的清扫区域网格中,机器人可以根据这个算法计算出一条能够有效覆盖整个区域的路径。

该算法的主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。

图片

图中各边上的每个数字表示从起始节点到终止结点的距离(这里定义为权值/权重)。那么,如上图所示,V1到各点之间的最短路径是哪些?使用方法如下:

起点

终点

最短路径

距离

V1

V2

V1—V2

2

V1

V3

V1—>V2—>V3

4.5

V1

V4

V1—>V4

3

V1

V5

V1—>V2—>V3—>V5

7

V1

V6

V1—>V2—>V3—>V5—>V6

8

V1

V7

V1—>V2—>V3—>V5—>V6—>V7

13

2)A*(A-Star)算法:扫地机器人通过 A*算法结合启发式函数,可以在清扫过程中动态地规划最短路径,并充分去考虑房间的布局和障碍物的分布,从而提高路径规划效率。

A*算法的优点是速度快,它通过评估每个节点到终点的距离,选择最优的路径来搜索最短路径。A*算法使用一个路径优劣评价公式为:

f ( n ) = g ( n ) + h ( n )

这里面还涉及到一个扫地机器人如何执行避障算法的问题。扫地机器人可以使用基于图搜索的算法如 A*来规划避开障碍物的路径,确保在清扫过程中不会与障碍物碰撞。

如图,假设我们需要从 A 点到目标点,这两点之间有一堵墙。我们把地图栅格化,把每一个方格的中心称为节点;父节点 A 周围共有 8 个子节点。这个特殊的方法把我们的搜索区域简化为了 2 维数组。数组的每一项代表一个格子,它的状态就是可走 (walkalbe) 和不可走 (unwalkable) 。通过计算出从 A 到 目标点需要走过哪些方格,就找到了路径。一旦路径找到了,便从一个方格的中心移动到另一个方格的中心,直至到达目的地 T。

图片

3)最小生成树(Minimum Spanning Tree,MST)算法:这些算法可以用于优化机器人的清扫路径,确保覆盖整个区域的同时减少路径长度,提高清扫效率。

最小生成树算法是一种试图选出权重[6] 和最小的边,从而使全图节点尽可能连通的算法。它属于图论中的一个基本概念,主要应用于路径优化、寻求最低成本等降本增效的求解场景中。以下是最小生成树算法的常用参数。

图片

在实际应用场景中,是会遇到动态变化以及要考虑各种复杂性的,图数据库可以支持动态的更新点和边,这就使得扫地机器人在路径规划时,可以根据实时环境的变化随时进行调整。(值得注意的是,图要考虑可能有环的问题,这意味着我们可从一个节点出发,走一圈后又回到这个节点。我们只要每绕环一次,总权重都会增加。因此,绕环的路径不可能是最短的路径。)

最后,扫地机器人的机智程度还需依托无线传感技术来及时观测发现,其中,该技术在无线传感网络中的应用也会用到最小生成树算法。该算法将实时观测到的环境信息、设备、路由等所有的网络进行建模,一旦当某个因素出现变化时,那么物理距离上代表图中的边上的权重也会实时更新,随之边权重相关的最小生成树计算必然也会实时调整,最终确保扫地机器人在清扫过程中轻松应对障碍物阻塞或各种突发情况。

图片

小结:

综上所述,随着物联网的普及,算法的应用正在为日常生活带来更多智能化的体验,尤其随着人工智能和机器学习技术的不断进步,未来将有更多的技术为家庭生活带来更多的便利和舒适。(文/Emma wanyi)

【注释

【1】点 (Node):代表真实世界中的实体,即图论中的顶点(Vertex),在嬴图系统中也称作节点。
【2】边 (Edge):代表真实世界中实体间的关系,连接两个实体。嬴图系统中的边均为有向边。边的两个端点可以相同也可以不同,相同时称为自环边(Self-loop)。
【3】路径 (Path):有确定的起点和终点、由点边交替相连构成的序列称为路径。路径中点可以重复出现,边不能重复出现。路径中所有点、边组成的序列可看作为路径的唯一标识符。
【4】最短路径 (Shortest Path):从起点经过最少的边(至少一条)到达终点的路径称为该起点到该终点的最短路径。当边带有权重时,“最少的边”应理解为“权重和最小的边”。
【5】图模型 (Graph Model):图中所有 schema 和属性的定义,表达图所描述的具体场景。
【6】权重(weight):狄克斯特拉算法用于每条边都有关联数字的图,这些数字称为权重(weight)。带权重的图称为加权图(weighted graph),不带权重的图称为非加权图(unweighted graph)。

END

图片

对图算法更多了解,请阅读嬴图系列2024年度新书——《图算法:行业应用与实践》,本书是继《图数据库原理、架构与应用》的姊妹篇。

图片

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

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

相关文章

嵌入式UI开发-lvgl+wsl2+vscode系列:6、布局(Layouts)

一、前言 这节总结一下整体页面的布局方式,lvgl的布局方式比较少,目前只有flex和grid两大类布局,即弹性布局和网格布局,弹性布局一般就是指定相对位置,网格布局就是将整个页面划分为网格状,我们做其它的UI…

2-3 图像分类数据集

MNIST数据集是图像分类任务中广泛使用的数据集之一,但作为基准数据集过于简单,我们将使用类似但更复杂的Fashion-MNIST数据集。 %matplotlib inline import torch import torchvision # pytorch模型关于计算机视觉模型实现的一个库 from torch.utils i…

面试题 4:阐述以下方法 @classmethod, @staticmethod, @property?

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

绘唐科技聚星文社是同款一键生成工具

聚星文社是同款一键生成工具 工具下载 绘唐科技成立于2015年,是一家专注于虚拟现实(VR)技术和产品开发的高科技企业。绘唐科技的目标是利用虚拟现实技术为人们带来更加沉浸式的体验,推动虚拟现实在各个领域的应用和发展。 绘唐科…

LabVIEW环境下OCR文字识别的实现策略与挑战解析

引言 在自动化测试领域,OCR(Optical Character Recognition,光学字符识别)技术扮演着重要角色,它能够将图像中的文字转换成机器可编辑的格式。对于使用LabVIEW约5个月,主要进行仪器控制与数据采集的你而言…

谈大语言模型动态思维流程编排

尽管大语言模型已经呈现出了强大的威力,但是如何让它完美地完成一个大的问题,仍然是一个巨大的挑战。 需要精心地给予大模型许多的提示(Prompt)。对于一个复杂的应用场景,编写一套完整的,准确无误的提示&am…

jmeter-beanshell学习1-vars使用获取变量和设置变量

最近又开始了用jmeter做自动化,不管怎么实现,都逃离不了用beanshell,最后把所有校验都放在了beanshell判断,效果还不错。 首先jmeter有很多beanshell相关的元件,取样器、前置处理器、后置处理器、断言,暂时…

南方航空阿里v2滑块验证码逆向分析思路学习

目录 一、声明! 二、介绍 三、请求流程分析: 1.拿验证码 2.提交第一次设备信息 3.提交第二次设备信息 4.提交验证 ​编辑 四、接口响应数据分析: 1.拿验证码 2.提交第一次设备信息 3.提交第二次设备信息 4.提…

代码随想录第43天|动态规划

121. 买卖股票的最佳时机 股票只能被买卖一次 dp[i][0] 持有股票所得到的最大现金, dp[i][1] 不持有股票所得的最大现金, 避免定义多个变量递推公式: dp[i][0] 可能是在之前买入, 也可能是在这次被买入 max(dp[i - 1][0],-prices[i])dp[i][1] 可能是在本次抛售, 也可能在之…

误删分区后的数据拯救:双管齐下恢复策略

在数字化时代,数据的价值日益凸显,而误删分区作为常见的数据安全威胁之一,常常让用户措手不及。本文将深入探讨误删分区的现象,并为您揭示两种高效的数据恢复方案,旨在帮助您在最短时间内找回失去的数据,同…

RH850系列芯片深度剖析 1.8-内存管理之MPU

RH850系列芯片深度剖析 1.8-内存管理之MPU 文章目录 RH850系列芯片深度剖析 1.8-内存管理之MPU一、MPU简介1.1 功能特性1.2 系统保护标识符(SPID)二、保护区域设置2.1 保护区域属性设置2.2 保护区域设置注意事项2.2.1 跨越保护区域边界2.2.2 无效的保护区域设置2.2.3 保护违规…

当火热的Mamba遇到火热的YOLO,会发生怎么样的反应吗?

作者:浙江师范大学 论文地址:https://arxiv.org/pdf/2406.05835 代码地址:https://github.com/HZAI-ZJNU/Mamba-YOLO 目录 前言一、摘要二、介绍二、相关工作2.1 实时目标检测器2.2 端到端的目标检测器2.3 视觉状态空间模型 三 方法3.1 基础知…

Amesim应用篇-信号传递

前言 在Amesim中常见的信号传递是通过信号线连接,针对简单的模型通过信号线连接还可以是信号线清晰规整,方便查看。如果模型较复杂,传递信号的元件较多时,此时再继续使用信号线进行信号传递,可能会使草图界面看起来杂…

Leetcode - 周赛403

目录 一,3200. 三角形的最大高度 二,3195. 包含所有 1 的最小矩形面积 I 三,3196. 最大化子数组的总成本 四,3197. 包含所有 1 的最小矩形面积 II 一,3200. 三角形的最大高度 本题是一道模拟题,可以先排…

【Leetcode笔记】406.根据身高重建队列

文章目录 1. 题目要求2.解题思路 注意3.ACM模式代码 1. 题目要求 2.解题思路 首先,按照每个人的身高属性(即people[i][0])来排队,顺序是从大到小降序排列,如果遇到同身高的,按照另一个属性(即p…

分享超级实用的3款AI工具,让工作效率轻松翻倍

Hey,职场小伙伴们!每天被堆积如山的工作压得喘不过气?加班成了日常,效率却不见提高?别急,今天就让我来给你们揭秘3款AI神器,它们将是你职场上的得力助手,让你的工作效率轻松翻倍&…

AR视频技术与EasyDSS流媒体视频管理平台:打造沉浸式视频体验

随着增强现实(AR)技术的飞速发展,其在各个领域的应用日益广泛。这项技术通过实时计算摄影机影像的位置及角度,将虚拟信息叠加到真实世界中,为用户带来超越现实的感官体验。AR视频技术不仅极大地丰富了我们的视觉体验&a…

阶段总结——基于深度学习的三叶青图像识别

阶段总结——基于深度学习的三叶青图像识别 文章目录 一、计算机视觉图像分类系统设计二、训练模型2.1. 构建数据集2.2. 网络模型选择2.3. 图像数据增强与调参2.4. 部署模型到web端2.5. 开发图像识别小程序 三、实验结果3.1. 模型训练3.2. 模型部署 四、讨论五、参考文献&#…

Linux wget报未找到命令

wget报未找到命令需要安装wget 1、下载wget安装文件,本次于华为云资源镜像下载 地址:https://mirrors.huaweicloud.com/centos-vault/7.8.2003/os/x86_64/Packages/ 2、下载后上传到安装服务器/install_package,执行命令安装 rpm -ivh /i…

联合概率密度函数

目录 1. 什么是概率密度由联合概率密度求概率参考链接 1. 什么是概率密度 概率密度到底在表达什么? 外卖在20-40分钟内送达的概率 随机变量落在[20,40]之间的概率。下图中,对总面积做规范化处理,令总面积1, f ( x ) f(x) f(x)则成…