计算机系统应用ISSN 1003.3254,CODEN CSAOBN ComputerSystems&Applications,2017,26(7):146—152【doi:10.158880.cnki.csa.005859] @中国科学院软件研究所版权所有. E-mail:csa@iscas.ac.cn http://www.c—S—a.org.cn Tel:+86.10.62661O4l 基于A去算法的三维地图最优路径规划① 赵德群,段建英,陈鹏宇,苏晋海 (北京工业大学信息学部,北京100124) 摘要:研究了基于A 算法的适合人步行行走的山地环境下三维地图最优路径规划算法及实现.本文考虑了三维 山地无路息覆盖的条件较差环境,对A 算法进行改进,并利用三维地形DEM数据计算出一条相对平缓且长度 较短的三维路径.改进算法对三维条件下路径最短的评价标准由原有的空间距离累加最短改进为先将空间等效成 水平距离,再计算距离是否最短.同时,本文充分考虑了搜索点周围环境的整体坡度信息作为启发信息,来降低算法 寻找的路径走在陡坡上的概率.实验表明,本算法最终计算出的三维最优路径在平缓度及路径最短上有所改善,基 本符合人步行行走的习惯. 关键词:A 算法;三维地图;山地;最优路径规划;DEM 弓I用格式;j赵德群’段建荚,陈鹏字;苏晋海:基于A|_算法的三维地图最优路径规划。计算机系统应用;20I J7r,26(7):I4 152i http://wwW, ̄-s— Optimal Path Planning for 3D Map Based on A古Algorithm ZHAO De—Qun,DUAN Jian—Ying,CHEN Peng—Yu,SU Jin-Hai (Bering University ofTechnology,Department ofInformation,Beijing 100124,China) Abstract:The optimal path planning algorithm and implementation of 3D map based on A algorithm in mountainous environment are studied in this paper.It considers the condition of poor coverage of 3D mountain-free network information coverage,improves the A algorithm and uses 3D terrain DEM data to calculate a relatively smooth and short three-dimensional path.The improved algorithm can improve the shortest path evaluation criterion in three— dimensional space from the original spatial distance accumulation to the shortest distance,and then calculates whether he tdistance is the shortest.At the same time,the global gradient information of the surroundings of the search point is considered as the heuristic information to reduce the probability that the path the algorithm looks for is steep. Experimental results show that the proposed algorithm can improve the smoothness and shortest path of the three- dimensional optimal path,which accords wih tthe walking habits of human beings. Key words:A algorithm;three—dimensional map;mountain;optimal path planning;DEM 传统地图服务已经成为人们每天外出必须的功能, 其无论是形式还是技术发展都较为成熟,在实际中得 到了广泛应用….其中,路径规划在交通导航这个方向 几乎全部集中于大中城市,对于乡镇以及山地等偏远 地区几乎找不到路息.通过路息的辅助,可以 很容易的规划处一条最优的路径,但在没有路网的条 件下现在的路径规划算法却毫无办法. 上应用广泛,极大地方便了人们的外出.然而,现有的 各大路径规划系统全部是在二维地图平台上实现。并 且严重依赖于交通路网这些数据[2】。同时这些路息 ①基金项目:国家重大科研仪器设备研制专项(1L001790201501) 在二维路网式路径规划给人们带来便利的同时, 人们对路径规划的要求也有所提高,由二维转向三 收稿时间:2016-11-02;收到修改稿时间:2016—12-08 146软件技术・算法Software Technique・Algorithm 2017年第26卷第7期 http://www.C—S—a.org.cn 计 机系统心川 维、由有路网转向无路网,例如森林救火的行进路线 自动规划、戈壁滩的行车路径规划问题,规划出结果 的同时能在三维地图上有更为直观的展示. 对于三维路径规划问题,目前主要的算法有蚁群 一个己知的蔓维实景地图模型进行栅格化处理,利用 DEM(高程模型)数据将一个_二维地图降维成二维栅格 地图进而利刖 二维栅格r}1仔储的数据进行计算得出最 优路径的问题. 算法、遗传算法、粒子群算法、人工势能算法、A 算 法等.文献[3—5]分别对蚁群算法进行 改进并应川剑 三维路径规划问题中,取得了一定效果,但是蚁群算法 收敛速度慢、容易陷入局部最优解的问题没有得到有 效解决;文献[6]利用遗传算法提出了…种针对于AUV 海底三维路径规划的解决方案,对AUv的安全航 起 到1r重要的参考价值,但算法容易出 早熟及稳定性 较差;文献[7,8] 对 r飞行器飞行安全问题提出J,甚 于粒子群算法的 !维路径规划算法,简化r模型及参 数调整的步骤,提升了飞行器飞行的有效性 同时该算 法也}IJ现了搜索过程过早结束难以找剑最优解的问题. 文献[9】将启发函数与人,I 势场法相结合进行J,仿 真,仿真结果可以避开障碍物同时进行了, 滑处理,但 是算法得出的结果是否最优难以确定.文献f10 14]分 别利用A 算法并进行改进,在lI维网格或者游戏地} 型中进行仿真,得出较为满意的路径,为三维路径规划 问题提供了参考,但是以上算法大多采用简单的 维 或三维仿真模型进行试验 数据量和复杂程度都远远 低于真实地形地图 不具备一定的实用性. 本文针对于山地没有路网覆盖的情形,利用A 算 法并在考虑三维地形坡度问题的基础上对原有算法进 行改进和优化,得出一条位于三维地图两点之间的坡 度符合人步行行进且路径最短的最优路径,同时 二 维实景地图展示最后的规划路径结果,满足了人的视 觉需求,具有一定的实用性. 1研究目标 本文致力于研究出一种针对于山地,适合人步行 前进的坡度平缓且路径长度最短的路径.本文采用■维 地图模型进行实验以更加接近人在山区行进的真实环 境.在给定实验区域任意两点的情况下,能够实时计算… 适合人行走的路径,同时显示在三维实景地图上. 维 实景地图的最优路径规划问题可以直观地表示为 1. 2三维路径规划算法实现 2.1数据准备 三维地图I【J地最优路径规划的问题实质卜就足将 奉文实验所用的DEM数据由测绘无人机进行航1毛 并通过后期数据处理得到grd格式的 储文件.本文程 序运行前需要预处理将grd文件里存储的DEM数据解 析、读出并存储到特定形式的数据结构中. 2 DEM数据映射 如}冬{2所永,本文将一片DEM数据转化为图示卜方 的一:维映射,其中DEM数据集合可表示为: D={Xmin,Xmax,Ymin,Ymax,NumCol,NumRow}(1) 其rf1D为DEM数据集合,Xmin表示整片 域最小经度. Xmax表示最大经度,Ymin表示最小纬瞍,Ymax表示最 大纬度,NumCol表示DEM数据的总列数,NumRow表示 DEM的总行数. 二维映射可以表示为‘个由NumCol*NumRo ̄l,个 Node节点的::维数组:Data[NumCo1][NumRow]. Software Technique-Algorithm软件技术・算法147 hap:llwww.C—S—a.org.cn 2017年第26卷第7期 Node:』F【V g,x,E Long 打“d , “d ,E 口 ,2,1 alueh,Valueg,Valuef,Parent J 最短距离,其计算公式为: G(f)=G(i—1)+L (5) _(2) ・Flng—— i南 识 其中G(i—1)为栅格i的父栅格i.1到起始栅格S的累积最 短距离, 为栅格f到其父栅格f.1的距离,在通常情况下 £取的是两点之间的三维空间直线距离.对于上述算法, ・ . 节点所处二维数组的横坐标: ・y 一节点所处二维数据的总坐标; ・ £0 m“ 一・ 口ffm如一・ E 节点经度; 节点纬度: 本文称之为3DBA*算法. 3DBA*算法理论上能够搜索到一条最短的路径, 比较适合于二维地图和较为简单的规则三维游戏地图 模型.经过实验本文发现由真实DEM数据表示的山地 区域来说,地形较为复杂,而3DBA*算法只考虑最短距 离却没考虑坡度问题,因此不能完全适用.如图3方框 D ——节点高程: 节点到起点走过的实际值; Value_h与Valueg的和; _・ Value Jlz——节点到终点的启发值; ・ Value ・ValuP卜.・ 尸口 ,2 节点的父节点. 内的路线所示,3DBA*算法计算出来的路径往往走在 陡峭的山坡上,这样的路径过于危险,并不适合人的行 走.因此,在3DBA*算法的基础上,本文从距离最短和 J 式中节点标识Flagn-S以表示为: , g 1 S TARTPOINT,DES TINATION ・ ・ L 节点可以通行: B三 一节点不适合通行: f VIABLE,UNVIABLE,INOPEN,INCLOSE,1 (3) f 坡度较缓两方面因素入手提出一种改进型A 算法.适 合于三维山地地形,适合于人行走同时路径较短,本文 称之为3DA*算法.本文将在下一节详细描述3DA*算 法的实现方法. ・ ,ⅣD尸 ^L下节阐述1中: ・ 节点在开放列表(开放列表将在 CLD. ~节点在关闭列表f关闭列表将在 下节阐述)中; ・ R ,D yDⅣ_节点为起始节点: 节点为终止节点. ・ DES 2.2基本算法介绍 A 算法引入了估值函数:F(i)=G(i)+日(f),G(f)是 栅格f到起始栅格的已知最短距离,称为代价函数; f)是栅格f到目标栅格的估计值[8】,称为启发函数. 如果 ( 是小于或等于从f到目标的实际花费, 图3 3DBA*算法危险路径 2.3改进算法(3DA )的实现 2-3.1 坡面与水平地面距离的等效 那么A 算法就能确保找到最短路径, f)的值越小, A 算法要扩展的节点就越多,算法就越慢 n】.对于三维 文献[15] ̄?Chyi—Rong等人兼顾坡度及体能消耗等 多种因素并在多处山地环境下进行亲身测试得出人在 山地步行行走的速度与坡度的关系如下所示: l/V=0.75+14.6slope (6) A 算法通常 f)取欧几里德距离作为启发值,由于这 个启发值通常小于栅格f和终点栅格e的实际距离,因此 能够保证搜索的路径距离最短,例如文献[9】和文献 [14】皆用到了欧几里德距离作为启发值.启发值 f)取 栅格f和终点栅格e之间的三维距离,计算公式: 式中 人的步行速度,slope为地形坡度的正切值 由式(6)可以推出:Vo=4/3(坡度为0时速度) 由式(6)和Vo=4/3可以推出在坡度为slope的山地上 (f)=4[(Coli-ColP) +(Rowi-RowP) 】女Size +(Zi-Z ) (4) 行走单位距离 与等效水平地面距离 的比值为: S V 1 … 其q ̄(Rowi,Colf)为栅格i的行列号,Zi为栅格i的高程, Size为栅格的分辨率.G(f)为栅格f到起始栅格S的己知 1 48软件技术・算法Software Technique・Algorithm 0 l+19.46slope2 2017年第26卷第7期 http://www.c—s—a.org.cn 汁算机系统应用 由式f6)可以看出,在坡上行走的速度随坡度增大 平距离; 一 表示A~H中的被遍历到的节点n与终点e的 高度差值;slope 一 表示A ̄H中的被遍历到的节点 与 终点e的坡度正切值slope 一 =dh 一 /dl 一 ;slope 表示 A~H中的被遍历到的节点”与当前处理节点Center的坡 减小,坡度增大的同时也会增加体能的消耗【l刚.再由式 (7)可以发现利用式(5)所表达的空间距离评价己走路 径是否为最短并不科学,因为在坡面上行走单位距离 并不等于相同的水平距离,在坡面上行走较为困难,实 际等效成的水平距离要大于相对应的坡面距离.本文 提出,评价路径最短的标准可以将式(5)坡面上行走的 度正切值( ̄slopeA). 本文rOslope 并非简单地将遍历节点与Center节点 的高度差除以水平距离,这样的话只是考虑了局部坡 坡面距离由式(7)先等效成水平距离,再判断距离是否 最短. 2.3.2改进算法描述 度信息对路径寻优的影响,却并未考虑到遍历节点的 整体坡度环境,从而造成2.2节提到的图2所示的路径走 在斜坡上的问题.为了尽量避免上述问题,本文在计算 坡度信息的时候还考虑了此遍历节点与Center节点方 向垂直的方向的坡度,本文仅以图4所示A(代表A、 C、H、F之--) ̄DD(代表B、D、G、E之一1两点为例. 改进算法估值函数依然采用f(n)=g(n)+,z(,1),本 文根据2.3.1节讨论,先把坡面距离等效成水平距离,再 判断距离是否最短,由此本文引入新的g(n)表示方法. 结合式(5)和式(7)本文得出新的 )表示法: g(n)=g(n一1)+(1+19.46slope ){L (8) 其他的节点计算方法与这两点一致,A、D两点的坡度 计算方法如下: slopeA=(slopec—F+slopeA—C r)/2 (1 0) 式(8)只是在考虑了坡度影响人行走速度的情况下提出 的新的评价山地地形最短路径的标准,一定程度上影 slopeD=(slopes—G+slopeD—C洲 r)/2 (11) 响了算法寻找出的路径,使路径坡度总体变缓,但是实 验结果发现在不改变2.2节所述3DBA*算法启发函数 (,1)的情况下,算法寻找出的路径仍然存在2.2节提出 需要注意的是如果式slope 的值大于0.351j寸,本文 将此节点的Flag置为UNVIABLE. 2.3_3实现步骤 算法需要建立两个列表来存储节点数据,一个为 “开启列表”,本文称之为OpenList,用来存储等待检查 的节点:另一个为“关闭列表”,本文称之为CloseList,用 来存储不需要再次检查的节点. 以下为算法的流程: 的路径走在陡坡上的问题.因此本文对启发函数 ( )进 行了改进: h(n)=(1+slope ̄一 )(1+slope ̄)(dln一 +dh 一 ) (9) 式(9)中n代表当前被遍历的地图节点,e代表终点节点, 图4中Center代表当前正在处理的节点,Center的周围 节点(图4中A~H节点)代表待遍历的节点.式(9)中其他 符号表示如下所述. 1)首先初始化式(2)中存放Node节点数据的二维 数组,初始化过程中将每个Node分别根据DEM数据计 算出每个Node对应的数组坐标、经纬度、高度等信 息,需要说明的是如果当前初始化的节点是起点(Start Point) ̄JJ此Node的Flag赋值为式(3)中的STARTPOINT, 如果当前初始化节点是终点(EndPoint) ̄0 ̄LNode的 Flag赋值为式(3)中的DESTINATION,其他的节点 Flag一律初始化为式(3)中的VIABLE.从StartPoint开始 执行,并当做当前需要处理的节点存.N.OpenList. 2)从OPenList中取f(n)值最小的节点(如果 OpenListqb只有起点则为Sta ̄Point)作为当前待处理的 节点如图4所示Center.遍历Center节点周围可以到达 图4处理节点Center与遍历节点A.F 的8个节点(图4中A~H),如果发现这8个节点内已经出 现Flag为DESTINATION的节点,终点找到,退出路径 搜索,执行步骤8. Software Technique・Algorithm软件技术・算法149 , 表示A~H中的被遍历到的节点 与终点P的水 饥系统 http://www.C—S—a.org.cn 20l7年第26卷第7期 3实验 本文利用一片大致10 km*l0 km,节点间隔5 m的 DEM数据,进行了大约50组实验,每一组实验分别记录 了3DBA*算法与改进算法3DA*算法的路径长度、平 均坡度、算法计算时间以及实验结果的效果图。 需要说明的是本文记录的路径长度是将利用式 (7)将空间距离根据坡度信息等效成水平距离后得出的 数据,最终本文评价所得路径长度的标准为: 『】 S=∑(1+19.46slope2) √【(墨一Xi—I) +( —ri-1) 】 Interval2+(Zi—Zi一1) (12) lt Lslope,为 点i与节点i一1之问的坡度正切值,Interval 50软件技术・算法Software Technique・Algorithm 在本实验中如果不在图4对角节点时为5 m,否则乘1.4 为7 m. 本文记录的路径平均坡度就是计算得出的轨迹点 串相邻点的坡度正切值累加和再除以点数取均值得出 的数据,本文评价所得路径坡度的标准为: "一l∑ ‘—一2 lo腑03) 本文记录的算法计算时问即从开始搜素到搜索结 束找到终点程序运行的时间. 3.1实验效果分析 实验的效果图如图5所示,点线代表原始3DBA*算 法结果,实线代表本文改进的3DA*算法,图下方定位 点代表起点,图上方定位点代表终点.本文从实验结果 中任意截取了两幅上坡的路径(a)(b)与两组下坡的路径 图(c)(d),效果图如图5所示. 【} , .}^. // \ (c)F坡路径1 (d)下坡路径2 图5实验效果图 从实验结果效果图直观分析,3DBA*的点线路径 大多没有顾及到山坡的陡峭性,本文的算法所得出的 实线路径相对较为平缓,且基本避开了较为陡峭的山 坡转而寻找较为平缓且距离相对最近的路. 3.2实验数据分析 本文根据实验所得的50组结果数据进行统计,将 最终的结果分别按路径从小到大的进行显示,并用 EXCEL软件做出数据走向的趋势. (1)算法所得路径长度 2017年第26卷第7期 http:H ̄vw.C-S—a.org.cn 计。算机系统应用 8 啪咖咖 咖咖咖咖咖o 6 4 2 O 8 6 4 2 路径长度统计 从图8统计数据来观察,两种算法的计算时间有大 有小,很难分清哪种算法用的时间少.但是,由于本文 将数据根据路径长度由小到大的顺序重新进行了统计, 本文通过EXCEL软件做出的虚线代表的趋势线可以看 出,改进算法在范围较小的区域内搜索路径时,搜索时 间大于原始算法的搜索时间,但随着搜索范围的增大, 1 3 5 7 9 l1 13 1517 1921 23252729 31 3335373941 43454749 本文的改进算法搜索的时间有小于原始算法搜索时间 一…改进算法路径长度 一原始算法路径长度 线性(改进算法路径长度)…-“线性(原始算法路径长度) 的趋势.此外,从数据上看,本算法寻找路径的范围在 方圆10公里左右,在这个范围内算法所用的时间基本 上小于1200 ms,在这样复杂的地形环境下,算法时间 基本可以忍受. 图6路径长度统计 由图6可以看出,实体曲线代表的原始算法计算出 的等效水平路径长度几乎总是在改进算法路劲长度的 上方,从虚线代表的各自趋势线也可以看出,两种算法 最终算出的路径长度几乎相等,但总的趋势是改进算 法稍优一点. (2)算法所得路径平均坡度 平均坡度统计 O.3 O.25 0.2 0.15 4总结 本文着眼于三维实景地图,并针对于地形较为复 杂的山地,在传统A 最优路径搜索算法的基础上。经过 改进得出一种适合于山地行走的最优路径搜索算法. 本改进算法通过将有坡度的路径空间距离等效为水平 距离重新定义了评价路径长短的标准,并通过此标准 记录算法实际走过的路程,与此同时本文充分考虑了 搜索点周围环境的整体坡度信息作为启发信息,来降 低算法寻找的路径走在陡坡上的概率.通过实验可以 看出,本文的改进算法较之基础算法,整体坡度更为平 缓,等效为水平路径的长度比基础算法稍短,算法运算 时间随着搜索范围的增大有小于基础算法的趋势.综 合以上内容,本文可以得出结论:本文的算法在针对山 O.1 O.05 O l 3 5 7 9 il 13 l5l7 l9 2l 23 252729 3l 3335 37 39 41 43454749 _一一-改进算法平均坡度 一原始算法平均坡度 线性(改进算法平均坡度)・・・・・线性(原始算法平均坡度) 图7平均坡度统计 地这一类地势较为复杂的三维地形时能够搜索出一条 坡度适于人行走,距离较短的路径,且在方圆10公里这 样的范围内搜索时间对于人来说能够接受. 参考文献 1张栋海,韩丽华,肖雄兵,等.导航地图发展现状和趋势分 析.地理信息世界,2013,2O(2):20-23,36. 由图7可以看出,原始算法的平均坡度除极少数情 况小于改进算法,其他绝大部分情况明显大于改进算 法的平均坡度,由此也可以说明本算法寻找出的路径 明显要平缓很多,更适合人行走的要求. (3)算法搜索时间 算法时间统计 12o0 lOoo 2王俊.面向智能交通的路径规划相关技术研究『硕士学位 1000 900 800 700 600 500 400 300 200 100 0 论文】.南京:南京大学,2013. 3王弋.基于高程环境与蚁群算法的三维路径规划研究f硕 士学位论文1.西安:西安工业大学,2014. 800 6OO 4oo 200 O 4黄玲,胡蔚蔚.基于改进蚁群算法的果蔬采摘机器人三维 路径规划.农机化研究,2016,(9):38_42. 5黄劲潮.一种基于改进蚁群算法的山地三维路径规划算 法.荆楚理工学院学报,2014,29(2):40—44. 6郝燕玲,张京娟.基于遗传算法的AuV三维海底路径规划. 中国工程科学,2003,5(1 1):56-60.[doi:10.3969 ̄.issn. Software Technique ̄Algorithm软件技术-算法151 l 3 5 7 9 Ill3l5l7 192123252729313335 37394l43454749 _IIII¥mI改进算法时间 一原始算法时间 线性(改进算法时间) ・・・・・线性(原始算法时间) 图8算法时间统计 计算机系统应用 ht ̄:llwww.c・s—a.org.ell 2017年第26卷第7期 1009—1742.2003.1 1.008】 游戏中的应用研究.电子设计工程,2014,22(14):37—39, 42.【doi:10.3969 ̄.issn.1674-6236.2014.14.012】 7张航,刘梓溪.基于量子行为粒子群算法的微型飞行器三维 路径规划.中南大学学报(自然科学版),2013,44(S2):58--62. 13崔振兴,顾治华.基于A+算法的游戏地图最短路径搜索. 软件导刊,2007,(17):145—147. 8李挚,宋顶立,张双江,等.两种改进的最优路径规划算法. 北京科技大学学报,2005,27(3):367-370. 9陈春梅.无人机快速三维航迹规划算法的研究『硕士学位 论文1.成都:电子科技大学,2015. 14石俊卫,包世泰,冯煜.基于A 算法的山地最优路径分析. 现代计算机,2013,(14):9-1 I,15. 15 Chiou CR,Tsai WL,Leung YF.A GIS—dynamic 1o王鹏程。夏洁.基于特殊双向A・搜索算法的三维航迹规划. 系统仿真学报,2009,20(增TtJ):229-233. 1 1邱磊.利用跳点搜索算法加速A 寻路.兰州理工大学学报, 2015,4l(3):102—107. 12祁悦,赵洋,杨帆.一种基于A 算法的分层路径规划在3D 1 52软件技术・算法Software Technique・Algorithm segmentation approach to planning travel routes on forest trail networks in Central Taiwan.Landscape and Urban Planning,2010,97(4):221-228.[doi:10.1016 ̄.1andurbplan. 2010.06.0041