6_Visibility Graph_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】

本文探讨了在大规模运动规划中,如何通过位形空间路径规划的三种方法,结合Dijkstra和A*算法,处理二维障碍物问题。重点介绍了可视图算法的原理及其在障碍物识别中的应用,以及如何考虑安全空间对路径的影响。

现在有一个理论框架,可以(以此切入)考虑大面积的运动规划问题,如何在位形空间中规划路径,下面来探讨一下该问题的三种不同解法,它们的出发点是一样的
也就是,一开始它们都将(机器人的)运动放到连续位形空间里进行规划,然后用不同的方法在图像中对问题进行重构,于是我们就可以应用讨论过的算法,如烧草、Dijikstra 和 A* 算法,我们可以用接下来的图中呈现的2D规划方案来阐明这些方法。
在这里插入图片描述
像往常样,我们的目标是,在二维的位形空间内找到一个从起点到终点的轨迹,在这个例子中,位形空间中的障碍物被简化成多边形,表明将出现离散化的现象。

如下图所示,我们将(起始)点和每个位形空间光学顶点(optical vertex)两两相连,然后,我们只需要计算这个可视图(visibility graph)(中的数据)。
具体地说,我们在任意两个顶点之间绘制一条边,这两个点可用直线连接,而且这些直线完全处于自由空间,注意,同个障碍上的相邻顶点间的边也包括在内。【这里感觉官方课件中少画了一条边,所以用红色双向箭头补上】

在这里插入图片描述

为了能够让算法运作起来,我们需要确定,在位形空间中任何两点之间的线与障碍是否相交,在此图中的位形空间,其障碍是多边形的,实际上(对于算法的运行)是相对简单的,在这个图中,我们把起点和终点也算作(需要描绘的)点。

完成这一步后,让我们回到一开始讨论的的规划问题中,我们的目标是,建立一条从起点到终点的最短路径,解决这个问题很简单用Dijkstra算法就行,这里是这个例子中我们所找到的最短路径的结果。

可以通过以下几种方式下载和安装 `visibility_graph` 库: 1. **使用 pip 安装** 如果 `visibility_graph` 已经发布到 Python 包索引 (PyPI),可以通过以下命令安装: ```bash pip install visibility_graph ``` 2. **从 GitHub 安装** 如果 `visibility_graph` 是一个 GitHub 上的开源项目(例如 Pyvisgraph[^1]),可以通过克隆仓库并手动安装: ```bash git clone https://github.com/username/visibility_graph.git cd visibility_graph pip install . ``` 请将 `username/visibility_graph` 替换为实际的 GitHub 仓库地址。 3. **从源代码安装** 如果项目没有提供预构建的包,可以手动下载源代码并进行安装: - 访问项目的官方页面或 GitHub 仓库,下载源代码压缩包。 - 解压后进入项目目录,并运行安装命令: ```bash python setup.py install ``` 4. **使用虚拟环境** 为了防止依赖冲突,建议使用虚拟环境进行安装: ```bash python -m venv venv source venv/bin/activate # Linux 或 macOS venv\Scripts\activate # Windows pip install visibility_graph ``` ### 示例代码 安装完成后,可以通过以下代码测试是否成功导入库: ```python from visibility_graph import VisibilityGraph # 创建一个可见性图实例 vg = VisibilityGraph() # 添加障碍物和起点、终点 obstacles = [[(1, 1), (2, 1), (2, 2), (1, 2)], [(3, 3), (4, 3), (4, 4), (3, 4)]] start = (0, 0) end = (5, 5) # 构建可见性图 vg.add_obstacles(obstacles) vg.add_start_end(start, end) graph = vg.build() # 打印生成的可见性图 print(graph) ``` ### 注意事项 - 确保网络连接正常,以便能够访问外部资源。 - 如果遇到依赖问题,可以尝试更新 `pip` 并安装所需的依赖库: ```bash pip install --upgrade pip pip install numpy ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值