Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple Task Points (针对多任务点的水面无人艇全局路径规划的设计和实现)

  针对多任务点的全局路径规划,是指在存在静态障碍物的环境中,给定水面无人艇起始点、目标点以及多个任务点的情况下,设计从起始点出发,安全地遍历各个任务点,最终返回目标点的全局路径,要求行驶的航路代价总和最小。
  本文主要解决水面无人艇在对多个任务点进行全局路径规划时的设计和实现算方法,相关研究和设计已在 International Journal of Vehicle Autonomous Systems (IJVAS) EI期刊发表。附InderScience Publiers - IJVAS的官方文献下载链接 Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple Task Points,以及arXiv的下载链接。官方文献下载链接需要***才可以打开。
  本文主要讨论论文的实现原理,并给出部分程序源代码,方便后来者研究和参考。

摘要

英文在中文之后 / English follows Chinese
  全局路径规划是水面无人艇设计的关键技术之一。本文基于电子海图和六边形网格建立全局环境模型,并且证明六边形网格在有效性,安全性和快速性方面优于传统的正方形网格。此外,本文引入Cube坐标系来简化六边形坐标运算。进一步地,我们提出了一种改进的A算法来实现两点之间的路径规划。在此基础上,我们构建了多个任务点的全局路径规划模型,并提出了一种改进的蚁群优化算法来准确实现多任务点的全局路径规划。仿真结果表明,全局路径规划系统可以安全、快速地规划出多个任务点的最优路径,在安全性,快速性和路径长度方面均优于传统方法。此外,全局规划路径可直接用于USV的实际场景。
  Global path planning is the key technology in the design of unmanned surface vehicles. This paper establishes global environment modelling based on electronic charts and hexagonal grids which are proved to be better than square grids in validity, safety and rapidity. Besides, we introduce Cube coordinate system to simplify hexagonal algorithms. Furthermore, we propose an improved A
algorithm to realize the path planning between two points. Based on that, we build the global path planning modelling for multiple task points and present an improved ant colony optimization to realize it accurately. The simulation results show that the global path planning system can plan an optimal path to tour multiple task points safely and quickly, which is superior to traditional methods in safety, rapidity and path length. Besides, the planned path can directly apply to actual applications of USVs.

论文实现原理

  本文提出的多任务点全局路径规划算法主要分为电子海图解析、六边形网格化建模、两点间路径搜索、多任务点的路径规划四部分。

  其中,通过解析电子海图文件,提取其中的海域地理信息及碍航物等信息,利用六边形进行网格化,建立由可航行六边形网格和不可航行六边形网格组成的环境模型。相关资料可以参考 基于8211lib库对s57电子海图的解析和存储正六边形网格化(Hexagonal Grids)原理与实现
  在实现环境建模后,两点间路径搜索算法优化的目标是在确保航行安全性的前提下,尽可能使规划的路径航行代价最小,最大程度地减小与最短路径、最小航行代价无关的计算量。本文设计综合多因素的航行代价,利用Hart提出的A*算法实现两点间的初步搜索,然后利用去除多余航点的曲线平滑算法,在保证安全的前提下减少路径中不必要的航点,使多段折线化为直线,增加路径的光滑度,规划的路径会更加符合起止点之间的期望路径,符合水面无人艇的运动学特性。相关资料可以参考 Research and Implementation of Global Path Planning for Unmanned Surface Vehicle Based on Electronic Chart 论文。
  在多任务点设计中,本文分析了港口巡逻、水质采样、水文勘测等任务对于全局路径规划的具体要求,从中抽象出针对这些任务通用的路径规划需求:在存在障碍物的海洋环境中,在给定多个任务点坐标的情形下,要求水面无人艇从起始点出发,安全地巡行到各个任务点执行具体的任务,再返回到目标点,要求总体的航路代价和最小。如在水质采样中,航路任务要求水面无人艇从固定点出发,根据设定路线行驶到各个采样点,根据采样要求完成全自动采集水样后,返回到目标点进行下一步处理,该航路任务要求完全符合本文抽象出来的全局路径规划要求。
  在水面无人艇复杂任务应用场景下,多任务点的路径规划可以抽象为网络最短路径问题,该网络本质上是一个有权值的有向图。多任务点的全局路径规划抽象模型--网络最短路径问题,可以近似为旅行商问题(Traveling Salesman Problem, TSP),是非常典型的NP (Nondeterministic Polynomial)难问题。在应用蚁群算法解决多任务点的全局路径规划问题时,路径规划问题可以转化为在一个由节点和边组成的网络权重图(网络最短路径模型)中搜索最优闭环路径,如下图所示。相关资料可以参考 基于蚁群算法的机械臂打孔路径规划

实现程序

  因为程序实现于2017年,在性能和流程中仍然不够完善,欢迎邮件进行交流和给出建议。程序最新代码请参考本人的GitHub wylloong
  程序运行结果如下,其中黑点为任务点,红色线段为最后规划的全局路径。

Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple Task Points的更多相关文章

  1. Design and Implementation of a Routing Control Platform阅读笔记

    Design and Implementation of a Routing Control Platform   0.Abstract 1.Introduction 2.Interoperating ...

  2. Behavior Trees for Path Planning (Autonomous Driving)

    Behavior Trees for Path Planning (Autonomous Driving) 2019-11-13 08:16:52 Path planning in self-driv ...

  3. UNIX Filesystems - Evolution Design and Implementation.pdf

    UNIX Filesystems - Evolution Design and Implementation.pdf

  4. A*算法改进——Any-Angle Path Planning的Theta*算法与Lazy Theta*算法

    本文是该篇文章的归纳http://aigamedev.com/open/tutorial/lazy-theta-star/#Nash:07 . 传统的A*算法中,寻找出来的路径只能是沿着给出的模型(比 ...

  5. odex反编译dex异常 Cannot locate boot class path file /system/framework/core.odex

      为了将ROM中system/app下的CertInstaller.odex反编译为CertInstaller.dex,输入命令: "java -jar baksmali.jar -x C ...

  6. Apparatus, system, and method for automatically minimizing real-time task latency and maximizing non-real time task throughput

    An apparatus, system, and method are provided for automatically minimizing Real-Time (RT) task laten ...

  7. 泡泡一分钟:Motion Planning for a Small Aerobatic Fixed-Wing Unmanned Aerial Vehicle

    Motion Planning for a Small Aerobatic Fixed-Wing Unmanned Aerial Vehicle Joshua Levin, Aditya Paranj ...

  8. Design and Implementation of the Sun Network File System

    Introduction The network file system(NFS) is a client/service application that provides shared file ...

  9. Global UNIX file system cylinder group cache

    A global cylinder group (CG) cache is stored in file server memory and shared by a plurality of file ...

随机推荐

  1. idea进行断点快捷键

    快捷键 功能描述 F8 单步调试,不进入函数内部 F7 单步调试,进入函数内部 Shift+F7 选择要进入的函数 Shift+F8 跳出函数 Alt+F9 运行到断点 Alt+F8 执行表达式查看结 ...

  2. Spring MVC自定义错误页面

    在web.xml中添加: <error-page(其他属性404...省略咯)> <location>/error</location> </error-pa ...

  3. Java-IO读写文件简单操作2

    承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...

  4. Linux 系统 文件锁 fcntl函数详解

    #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int ...

  5. 多线程编程_控制并发线程数的Semaphore

    简介 Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源.很多年以来,我都觉得从字面上很难理解Semaphore所表达的含义,只能把它比作是 ...

  6. 换晶振导致stm32串口数据飞码的解决办法

    一般来说,stm32f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那串口接收还正常吗? 根据试验结果,很可能会飞码.比如说用串口助手发送的是0x35,但是在串 ...

  7. pat1031. Hello World for U (20)

    1031. Hello World for U (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Giv ...

  8. React.js 小书 Lesson5 - React.js 基本环境安装

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson5 转载请注明出处,保留原文链接和作者信息. 安装 React.js React.js 单独使 ...

  9. Andrew Ng 的 Machine Learning 课程学习 (week5) Neural Network Learning

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  10. C语言答案解析

    1.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(  B ) A) b=1.0/a            B) b=(float)(1/a) C) b=1/(float)a   ...