基于可视图法(VG)的路径规划算法简述

news2025/4/4 14:59:10

   可视图法路径规划(VG)

   可视图法由Lozano-Perez和Wesley于1979年在论文:《An Algorithm for Planning Collision-Free Paths among Polyhedral Obstacles.》中提出。

   基于可视图法路径规划算法主要包括以下两个步骤:①可视图的构建、②采用某种优化方法在构建的可视图上搜索最优路径

   在可视图算法中,障碍物用多边形描述,并将起始点S 、目标点G 和多边形障碍物的各顶点Vo,作为可视图的顶点V,将这些顶点之间相互连接,并保留不穿越障碍物的连线,作为可视图的边E,然后按照某种准则给这些边赋权值,比如以这些边的长度来作为其权值 。然后采用某种优化方法在构建的可视图上搜索所需的最优路径 ,根据以上过程易知,最终得到是包括S和G的一些顶点的集合,这些顶点按顺序相连接即为所得路径。


   由上述过程可知,构建可视图的关键在于确定任意两个顶点间的连线是否穿过障碍物障碍物。可以简单粗暴的直接检测任意两个顶点之间连线是否穿越了障碍物,也可采用以下方法简化判断:

   ① 同一障碍物的相邻顶点间的连线肯定不穿过障碍物(即该障碍物的某条边界),同一障碍物的的不相邻顶点间一般认为是穿越障碍物的(但是对于凹多边形障碍物而言,这样做有时会产生误判,因为凹多边形的某些不相邻节点之间连线也是不穿越障碍物的)

   ② 不同障碍物之间顶点是否穿过的障碍物的判断可以转化为判断其顶点连线是否会与构成障碍物的边的两个顶点之间连线相交,如下图中V1和V7之间的连线穿过了V3和V4的连线,因此V1和V7之间连线是穿越障碍物的。


   可视图法找到的路径是贴着障碍物边缘的,对此作者在论文中提到可以采用将障碍物的顶点按照设定的半径往外扩展一段距离的方法,效果如下所示:


   拓展障碍物半径可能丢失最短路径,如下图所示:


   如果拓展半径取较大值,我们设定扩展后的障碍物边缘与另一个扩展后的障碍物边缘的相交区域是可行的,则在相交区域的内部可以找到可行的代替路径,如下图蓝色路线所示:


   此外,也可以通过寻找障碍物的重心绘制圆形拓展区域或者采用障碍物的外接圆等方法进行拓展,不同的场景下,不同的拓展障碍物的方式往往能收获不同的效果。对于弧形的障碍物,难以寻找顶点,可已将圆弧边界用切线包围,转化为多边形障碍物,或者将弧形障碍物外拓为多边形障碍物,可视图法的灵活度较差,一旦环境发生改变,新增了障碍物,就要重新进行可视图的构建,不适合于实时性较高的动态场景。 切线图法和Voronoi图法对可视图法进行了改进。切线图法用障碍物的切线表示弧,Voronoi图法可以确保找到的路径尽最大可能的远离障碍物。


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

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

相关文章

第二章 环境的选择和安装

1、开发环境操作系统 1.1 选择Windows、Mac or Linux 首先明确一点:我们的首要目的是要快速上手使用Elasticsearch(以下简称ES),安装和部署ES并非重点,企业中真正需要你去安装的可能性或者机会非常小。大家可以想一想…

C++运算符重载

运算符重载运算符重载一、重载‘’运算符1.非成员函数版本重载2.成员函数版本二、重载关系运算符三、重载左移运算符四、重载下标运算符五、重载赋值运算符六、重载new和delete1.重载2.内存池七、重载括号运算符八、重载一元运算符运算符重载 C将运算符重载扩展到自定义的数据…

23 张图细讲使用 Devtron 简化 K8S 中应用开发

23 张图细讲使用 Devtron 简化 K8S 中应用开发 在本文中,您将学习如何在多集群环境中使用 Devtron 在 K8S 上进行应用开发。 https://devtron.ai/ Devtron 附带用于构建、部署和管理微服务的工具。它通过提供直观的 UI 和 Helm 图表支持来简化 K8S 上的部署。今天&a…

Java数据结构 | 模拟实现优先级队列

目录 一、前言 二、堆模拟实现优先级队列 2.1 堆的概念 2.2 堆的性质 2.3 堆的存储方式 2.4 堆的创建 一、前言 在前面我们学习过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队…

mybatis-plus代码生成工具

mybatis-plus版本升级尝试遇到的问题 若遇到高版本:【全局覆盖已有文件的配置已失效,已迁移到策略配置中】or【覆盖已有文件(已迁移到策略配置中,3.5.4版本会删除此方法)】这句话,可参考文章中解决办法 参考…

python机器人编程——基于单目视觉、固定场景下的自动泊车(下)

目录一、前言二、主要思路step0 设定一个中间位置step1 掉转马头step2 直线匀速前进step3 调整姿态step4 视觉匹配三、效果四、全篇总结一、前言 本篇来讨论一下在固定场景下,如何仅通过单目视觉,实现差速小车的自动停靠,这种方式实现成本比…

_cpp 位图

文章目录1. 位图概念1.1 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。2. 位图的实现2.1 运行结果:3. 位图应用3.1 具体代码封装实现如下3.2 部分结果演示:3.3 应用总结&#x…

力扣(LeetCode)791. 自定义字符串排序(C++)

排序 这道题只关心 orderorderorder 出现的字符,在 sss 中的排序。 sss 中不在 orderorderorder 的字符,在排序后是什么位置,不影响答案。 可以用 sortsortsort 函数,传入我们自定义的排序方式,按照 orderorderorder …

【JavaSE】类和对象 (二) —— 封装、包以及 static 关键字

目录 1. 封装 1.1 封装的概念 1.2 访问限定符 2. 包 2.1 包的概念 2.2 导入包中的类 2.3 自定义包 2.3.1 包的基本规则 2.3.2 创建一个包 2.4 包访问权限——defualt 3. 何为封装 3.1 private 关键字 4. static 成员 4.1 对学生类的进一步思考 4.2 static 修饰成员变量 4.3 …

计算机毕业设计之java+javaweb的物业管理系统

项目介绍 系统权限按管理员,物业和住户这三类涉及用户划分。 (a) 管理员:管理员使用本系统涉到的功能主要有:首页,个人中心,用户管理,员工管理,房屋类型管理,房源信息管理,房屋预约管理,订单信息管理,我的收藏管理,系统管理等功能。 (b) 住户&#xf…

基于单片机的导盲拐杖设计

目 录 引言 1 1 系统概述 1 1.1 设计研究的背景和意义 1 1.2 本次设计内容 1 2 系统设计的整体方案 2 2.1 主控芯片的方案论证 2 2.2 显示模块的方案论证 3 2.3 本章小节 4 3 系统硬件电路设计 4 3.1 单片机最小系统的电路设计 4 3.1.1 STC…

李峋同款爱心代码!跳动的心,给你爱的人一个惊喜!

Hello 大家好 如何浪漫的表白,作为程序员出身的小编,今天就带你实现热播剧《点燃我,温暖你》中超火的李峋同款爱心代码!前面是教程,怕麻烦的朋友可以直接划到文末,下载现成的,下载完成后打开就可…

java毕业设计基于的校园头条新闻管理系统的设计与实现(附源码、数据库)

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

【Linux】基础:进程地址空间

【Linux】基础:进程地址空间 摘要:本文首先通过复习关于C语言内存空间的知识来做实验提出问题,从而引入进程的地址空间。需要理解的是进程地址空间的组织形式与其表示意义,在需要理解如何完成进程地址空间的划分以及关键对应物理内…

C++12 ---对象于对象的关系

一、对象于对象的关系 在一个系统中,一个对象可能与不同的对象相关,以下是不同的关系。 依赖(Dependency) (使用一个) 关联(Association) (使用一个) 聚合(Aggregation) (有一个) 组合(Composition ) (有一个,"用..来实现") …

从Matlab实例学习遗传算法

文章目录前言问题背景遗传算法Matlab实例代码附录君主方案遗传算法解决旅行商问题前言 本文旨在使用智能优化算法及其MATLAB实例(第2版) 一书中的例子,来透彻理解遗传算法的本质。 问题背景 目标: 求解最大化函数 f(x)x10sin⁡…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java星光之夜香水网站的设计与开发bfmcr

大学计算机专业毕业的,实际上到了毕业的时候,基本属于会与不会之间。说会,是因为学了整套的理论和方法,就是所谓的科班出身。说不会,是因为实践能力极差。 不会的问题,集中体现在毕设的时候,系…

CTFSHOW菜狗杯 web

文章目录web签到web2 c0me_t0_s1gn我的眼里只有$抽老婆一言既出驷马难追TapTapTapWebshell化零为整无一幸免传说之下(雾)算力超群算力升级2遍地飘零茶歇区小舔田?LSB探姬Is_Not_Obfuscate龙珠NFTweb签到 eval($_REQUEST[$_GET[$_POST[$_COOK…

Ubuntu22.04虚拟机配置双网

文章目录Ubuntu22.04虚拟机配置双网一、 虚拟机网络1、 简介1.1 概述1.2 四种网络2、 配置双网2.1 NAT2.2 主机模式3、 添加到虚拟机二、 ubuntu设置Ubuntu22.04虚拟机配置双网 一、 虚拟机网络 1、 简介 1.1 概述 近期在使用VirtualBox的时候遇到这样的场景,我…

Docker(五)—— 镜像原理、容器快照commit

一、如何得到镜像 1)从远程仓库下载 2)朋友/同事拷贝给你 3)自己制作DockerFile 二、联合文件系统 Docker的镜像是由一层层的文件系统组成,这种层级的文件系统叫做联合文件系统UnionFS。 三、Docker镜像加载原理 1. bootfs:…