论文阅读 (58):Research and Implementation of Global Path Planning for Unmanned Surface Vehicle Based...
文章目录
- 1 概述
- 1.1 题目
- 1.2 摘要
- 1.3 代码
- 1.4 Bib
- 2 环境模型的建立与表示
- 2.1 电子海图数据提取
- 2.2 环境模型的建立
- 3 改进的A*算法的描述与实现
- 3.1 改进的A*算法
- 3.2 路径曲线平滑
- 4 仿真结果
1 概述
1.1 题目
2022:基于电子海图的无人水面艇全局路径规划研究与实现 (Research and implementation of global path planning for unmanned surface vehicle based on electronic chart)
1.2 摘要
无人水面艇 (Unmanned surface vehicle, USV) 是一种新型的智能水面艇,其关键技术是全局路径规划。为解决无人艇全局路径规划问题,提出一种改进的基于电子海图的航行成本优化A∗*∗算法。S-57电子海图实现八叉树网格环境模型的建立,提出一种基于航行安全权重、引航数量和路径曲线平滑的改进A∗*∗算法,保证航路安全,减少规划 时间,并提高路径的平滑度。仿真结果表明,环境模型构建方法和改进的A∗*∗算法可以生成安全合理的全局路径。
1.3 代码
Python:https://github.com/wylloong/Global_path_planning_for_USV
1.4 Bib
@inproceedings{Wang:2017:534539,
author = {Yan Long Wang and Xu Liang and Bao An Li and Xue Min },
title = {Research and implementation of global path planning for unmanned surface vehicle based on electronic chart},
booktitle = {International Conference on Mechatronics and Intelligent Robotics},
pages = {534--539},
year = {2017},
doi = {10.1007/978-3-319-65978-7_80},
url = {https://link.springer.com/chapter/10.1007/978-3-319-65978-7_80}
}
2 环境模型的建立与表示
USA在大范围海域航行时,雷达、摄像头等传感器无法提供全球海洋环境信息,因此能够提供详细准确的全球海洋环境信息的S-57电子海图成为无人艇全局航路规划的必要输入,用以保证航行安全。
2.1 电子海图数据提取
电子海图是海域元素的重要组成,其细节包括海底地形、航行障碍、航行标志,以及港口设施等。S-57电子海图标准包格式为ISO/IEC 8211国际标准,因此本文采用ISO8211开源库并根据S-57电子海图的包结构来解析所有电子海图信息。图1展示了S-57电子海图的包格式。
图1:S-57电子海图的包格式
2.2 环境模型的建立
USA的环境模型建立可以简化为:
1)USV在海平面的有限和任意凸区OS中移动;
2)OS中的有限数量静态障碍物Oi(i=1,2,…,n)O_i(i=1,2,\dots,n)Oi(i=1,2,…,n);
3)障碍物形状与位置的不确定性。
环境模型的栅格化是通过将OS填充为一个矩形,将填充区域作为障碍物区域,OS亦划分为多个大小相等的网格。本文根据依次提取的信息判断网格中是否存在陆地、岛屿等障碍物,从而以网格为单位建立通航区域和非通航区域。图2 (a) (b) 展示了环境模型的原始状态和通航状态,阴影部分表示不可通行。
图2:不同状态下的环境模型
八叉树作为路径搜索的扩展策略,如图2 (c\text{c}c)所示,每个节点iii都有八个领域节点。USV在避障和临时任务过程中可能会偏离规划路径,八叉树结构中的非通航区域附近可能有对角路线,因此本文认为非通航区域附近的通航区域存在潜在风险。对此设置航行安全权重来引导路径规划而不陷入潜在风险区域,即网格(Ci,Ri)(C_i,R_i)(Ci,Ri)的权重受领域非通航网格数量的影响:1+2n−21+2^{n-2}1+2n−2。
3 改进的A*算法的描述与实现
3.1 改进的A*算法
A∗*∗算法是一个经典的启发式路径规划算法,其基本思路是利用预设的代价函数计算当前节点可能到达的每个领域子节点的值,选择代价最小的节点加入搜索空间并展开,以此类推,直到到达目标点。在安全约束下,USA路径规划的优化目标是最小化航程的航行代价。航行代价D(pi,p(i+1))D(p_i,p_{(i+1)})D(pi,p(i+1))是两点之间的直线距离乘以航行安全权重:
D(pi,pi+1)=(xpi−xp(i+1))2+(ypi−yp(i+1))2∗w(C(i+1),Ri+1).(1)\tag{1} D(p_i,p_{i+1})=\sqrt{(x_{p_i}-x_{p_{(i+1)}})^2+(y_{p_i}-y_{p_{(i+1)}})^2}*w(C_{(i+1)},R_{i+1}). D(pi,pi+1)=(xpi−xp(i+1))2+(ypi−yp(i+1))2∗w(C(i+1),Ri+1).(1) 有时最低航行代价的路径不止一条,虽然只需要一条,但均已被探索,有时由于起点和目标点之间的直线 Lsg{L}_{sg}Lsg 有偏差,此时的自动规划航线并不合理。因此,试点质量PPP被引入,以确保规划路径接近LsgL_{sg}Lsg。令(S.x,S.y)(S.x,S.y)(S.x,S.y)表示起点、(G.x,G.y)(G.x,G.y)(G.x,G.y)表示终点,以及(C.x,C.y)(C.x,C.y)(C.x,C.y)表示当前节点iii,则起始-终点与iii-目标向量的夹角θi\theta_iθi被计算为:
θi=arcsin((C.x−G.x)∗(S.y−G.y)−(S.x−G.x)∗(C.y−G.y)(C.x−G.x)2+(C.y−G.y)2∗(S.x−G.x)2+(S.y−G.y)2).(2)\tag{2} \theta i=\arcsin \left(\frac{\sqrt{(C.x-G.x) *(S.y-G.y)-(S.x-G.x) *(C.y-G.y)}}{\sqrt{(C.x-G .x)^{2}+(C.y-G.y)^{2}} * \sqrt{(S .x-G .x)^{2}+(S.y-G.y)^{2}}}\right). θi=arcsin((C.x−G.x)2+(C.y−G.y)2∗(S.x−G.x)2+(S.y−G.y)2(C.x−G.x)∗(S.y−G.y)−(S.x−G.x)∗(C.y−G.y)).(2) 节点iii的试点数量计算为:
p(i)=3/(4−sin(θi)).(3)\tag{3} p_{(i)}=3 /\left(4-\sin \left(\theta_{i}\right)\right). p(i)=3/(4−sin(θi)).(3)
节点iii的代价函数为:
f(i)=g(i)+h(i),(4)\tag{4} f_{(i)}=g_{(i)}+h_{(i)}, f(i)=g(i)+h(i),(4)其中g(i)g_{(i)}g(i)是起点到节点iii的航行代价函数,h(i)h_{(i)}h(i)是节点iii到终点的启发函数。本文将启发函数更改为距离与试点质量的乘机,其用于确保航程被优化。这是因为h(i)h_{(i)}h(i)不会大于从节点iii到终点之间的最小航行代价:
h(i)=(xpi−xpG)2+(ypi−ypG)2∗p(i)≤(xpi−xpG)2+(ypi−ypG)2≤min(∑j=iGD(j,j+1)).(5)\tag{5} h_{(i)}=\sqrt{\left(x_{p i}-x_{p G}\right)^{2}+\left(y_{p i}-y_{p G}\right)^{2}} * p(i) \leq \sqrt{\left(x_{p i}-x_{p G}\right)^{2}+\left(y_{p i}-y_{p G}\right)^{2}} \leq \min \left(\sum_{j=i}^{G} D_{(j, j+1)}\right). h(i)=(xpi−xpG)2+(ypi−ypG)2∗p(i)≤(xpi−xpG)2+(ypi−ypG)2≤min(j=i∑GD(j,j+1)).(5)
3.2 路径曲线平滑
在网格环境下,如果将改进的A∗*∗算法得到的节点依次连接起来作为USV的规划路径,路径上有时会出现阶梯或锯齿线,很容易知道规划路径不是满足需求的。因此提出了一种路径曲线平滑方法来去除冗余节点。该方法需要遍历所有的节点,如果节点iii和i+2i+2i+2之间没有障碍,则去除冗余节点i+1i+1i+1。重复以上面步骤直到iii和jjj的连线穿过障碍物,然后在节点iii之后取出3个连续的节点P(j−1)P_{(j-1)}P(j−1)、PjP_jPj和P(j+1)P_{(j+1)}P(j+1),继续这些步骤直到遍历完路径中的所有节点。
4 仿真结果
为了说明环境建模和改进A∗*∗算法的有效性,对上述算法进行了仿真。电子海图分析使用C++、环境建模和路径规划用python 。
对于南海某海域 (区域范围18.10°N~18.40°N,109.35°E~109.85°E),给定路径规划的模拟结果如图3所示。图 (a)为改进A∗*∗算法的规划结果、图 (b)是A∗*∗算法的规划结果,以及图 (c\text{c}c)是Dijkstra算法的规划结果,其中实线是最终规划的路径,虚线是没有路径平滑的路径。
图3:仿真结果
表1列出了上述路径规划算法的仿真结果,其中潜在危险数为网格范围内接近最终路线的不可通航区域总数。结果显示A∗*∗算法遍历的节点数比Dijkstra算法要少,因为Dijkstra算法直接搜索全局空间而不考虑目标信息,所以A∗*∗算法的路径规划效率远高于Dijkstra算法。改进后的A∗*∗算法比未改进的A∗*∗算法在提高航线安全性、减少冗余节点、提高路径平滑度、缩短航行距离等方面,导航节点布局更丰富合理。
论文阅读 (58):Research and Implementation of Global Path Planning for Unmanned Surface Vehicle Based...相关推荐
- 论文阅读笔记《Few-Shot Learning with Global Class Representations》
小样本学习&元学习经典论文整理||持续更新 核心思想 本文提出一种基于度量学习的小样本学习算法.与其他算法将训练集分成基础类别和新类别,进行两个阶段的训练方式不同,本文将包含大量样本的基础 ...
- 语义激光SLAM论文阅读 Semantic Lidar_based SLAM paper Research
语义激光SLAM论文阅读 Suma: Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments 主要工作 ...
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...
- 论文阅读:ThinLTO: Scalable and Incremental LTO
ThinLTO: Scalable and Incremental LTO 论文阅读笔记 A little bit of history. SYZYGY – A Framework for Scala ...
- 深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》
深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1< You Only Look Once: Unified, Real-Time Object Detection> Abstra ...
- 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》
深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...
- [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
最新文章
- php margin参数,margin参数简单介绍_html/css_WEB-ITnose
- jmeter多用户登录跨线程组操作传值
- 禁止ipc$默认共享的方法
- 字符串Ascll格式转16进制
- CVS的几个学习小站及配置说明
- usb接口驱动_教你如何下载安装打印机驱动并设置共享打印机
- 【redis】跟我一起动手玩玩redis主从复制和哨兵模式
- 过滤多余的空格-C语言
- 计算机音乐桃源恋歌,GARNiDELiA《桃源恋歌》[FLAC/MP3-320K]
- 电报注册网络代理_如何在电报开放网络(TON)中开发和发布智能合约
- 【Javascript】shift、unshift、pop、push的区别
- 监听器(统计在线人数)
- 什么是欠拟合现象_欠拟合和过拟合是什么?解决方法总结
- 四十五岁还能学计算机专业吗,女人40到45岁之间该学点什么技术好?
- linux 小企鹅输入法 方块乱码
- VSTO for Mere Mortals(TM): A VBA Developer's Guide to Microsoft Office Development Using Visual Stud
- 关于物联网的一点畅想
- 如何在线安装Axure插件?
- 影像裁剪及数据扩充(针对DOTAv1.5进行部分优化)
- 互助平台是什么?互助系统怎么开发