一种无人机路径规划方法、无人机及存储介质与流程

文档序号:32399171发布日期:2022-12-02 18:25阅读:89来源:国知局
一种无人机路径规划方法、无人机及存储介质与流程

1.本发明涉及无人机技术领域,具体涉及一种无人机路径规划方法、无人机及存储介质。


背景技术:

2.随着社会科学技术的进步,无人机技术的广泛应用极大的改变了人们的生活,一方面自主移动的机器人降低了人工的劳动成本,同时也带来了更加丰富多样的信息资源。路径规划作为无人机经典的自主能力,成为了无人机领域的研究热门。当前无人机路径规划的研究主要存在于室外空旷环境,相反室内环境区域狭小,边界条件复杂,避障裕度小,从而对无人机的精确避障及实时规划提出了巨大的挑战。近来我国研究人员在此基础上也研发和引进了室内无人机实验系统,在这个前提下研究室内无人机的路径规划算法,实现室内无人机在复杂条件下的实时准确的动态路径决策和引导,给室内无人机智能自主导航技术打下坚实的基础,具有重要的理论研究价值和应用价值。
3.无人机实时路径规划的研究方向通常存在于室外宽敞环境,室内环境具有较多的变化性与难以可预测性,随着路径规划方法的提出,尽管出现了许多用于二维和三维环境的路径规划算法,这些算法用来对较为复杂的环境的观察、检测、建模和最佳路径选取的问题,但是既能准确考虑室内环境信息检测不稳定性问题,又能实时快速的求解,这个问题是限制路径规划技术用于实际应用的难题。
4.基于几何地图搜索的方法,其优势是构建环境障碍物的信息,可以使用许多完善的图搜索算法求解最优解,但是通常用于静态环境和离线规划。基于虚拟势场与导航函数的方法通常用于局部规划器中,这个方法的缺点是推广到空间环境后造成计算复杂度增加,规划的实时性能较差。基于生物智能优化的方法可以用来处理较为复杂的非结构化约束和一些较难近似处理的动力学约束等问题,但是它的缺点是规划周期较长,通常不用于规划过程中经常使用,一般应用于调用周期大的情况和初始全局规划。
5.因此,在无人机的最优路径规划方法上还存在一定的改进空间。


技术实现要素:

6.本发明主要解决的技术问题是如何规划无人机的最优飞行路径。
7.根据第一方面,一种实施例中提供一种无人机路径规划方法,包括:
8.获取前方环境的深度图;
9.根据所述深度图获取所述前方环境的栅格地图,所述栅格地图中包括可通行的栅格和不可通行的栅格;
10.获取所述栅格地图中无人机的目标栅格,将所述目标栅格设置为引力点,将所述不可通行栅格均设置为斥力点;
11.获取任一可通行栅格相邻可通行的各个相邻栅格,根据所述目标栅格与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个相邻栅格的引力场值,根据各个不可
通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所述相邻栅格的斥力场值;
12.根据所述引力场值和所述斥力场值得到所述任一可通行栅格选择各个所述相邻栅格的启发式函数,根据所述启发式函数进行蚁群算法得到无人机的最优飞行路径。
13.一些实施例中,所述根据所述目标栅格与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个相邻栅格的引力场值,包括:
14.获取所述目标栅格与各个所述相邻栅格之间的哈曼顿距离d1,并选择其中最小的作为最小距离mind;
15.根据各个所述相邻栅格对应的哈曼顿距离d1和所述最小距离mind的差值,得到所述任一可通行栅格受到各个相邻栅格的引力场值,所述引力场值与所述哈曼顿距离d1和所述最小距离mind的差值呈负相关。
16.一些实施例中,在根据各个所述相邻栅格对应的哈曼顿距离d1和所述最小距离mind的差值,得到所述任一可通行栅格受到各个对应相邻栅格的引力场值时,通过以下公式得到所述引力场值:
[0017][0018]
其中,d(b,g)表示任一可通行栅格的相邻栅格b与目标栅格g之间的哈曼顿距离d1,mind(b,g)为最小距离mind。
[0019]
一些实施例中,所述根据各个不可通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所述相邻栅格的斥力场值,包括:
[0020]
获取各个不可通行栅格分别与各个所述相邻栅格的欧式距离d2,选择小于预设距离的欧式距离d2;
[0021]
根据对应相邻栅格所选择的各个欧式距离d2得到所述任一可通行栅格受到各个对应相邻栅格的斥力场值,所述斥力场值与各个欧式距离d2呈正相关。
[0022]
一些实施例中,在根据分别所选择的各个欧式距离d2得到所述任一可通行栅格受到各个对应相邻栅格的斥力场值时,通过以下公式得到所述斥力场值:
[0023][0024]
其中,d(b,o)表征任一可通行栅格的相邻栅格b与不可通行栅格o的欧式距离,sb表示在相邻栅格b的预设距离内不可通行栅格o的集合,r为预设常数。
[0025]
一些实施例中,在根据所述引力场值和所述斥力场值得到所述任一可通行栅格选择各个所述相邻栅格的启发式函数时,通过以下公式得到所述启发式函数:
[0026][0027]
其中,η
ab
为任一可通行栅格a选择相邻栅格b的启发式函数,attb为任一可通行栅格a受到相邻栅格b的引力场值,repb为任一可通行栅格a受到相邻栅格b的斥力场值,λ1和λ2分别为引力场值与斥力场值的权重。
[0028]
一些实施例中,所述根据所述启发式函数进行蚁群算法得到无人机的最优飞行路
径,包括:
[0029]
初始化所述栅格地图中各个栅格的信息素浓度矩阵以及参数;
[0030]
将预设数量的蚂蚁置于栅格地图中无人机当前所在栅格;
[0031]
每只蚂蚁通过状态转移策略选择可通行的相邻栅格,所述状态转移策略表示为:
[0032][0033]
其中,p
ab
(t)表示t时刻蚂蚁在栅格a时,选择相邻栅格b的概率,τ
ab
表示相邻栅格b上的信息素浓度,η
ab
为任一可通行栅格a选择各个相邻栅格b的启发式函数,σ和β分别表示信息素浓度和启发式函数计算值的权重,sa为栅格a的可达相邻栅格b组成的集合;
[0034]
当所有蚂蚁完成搜索时,在栅格地图上根据蚂蚁搜索到的可飞航迹对所经过栅格上的信息素浓度进行更新;
[0035]
当满足迭代终止条件时,得到最优航迹;
[0036]
利用视线算法对所述最优航迹进行全局优化,以得到所述最优飞行路径。
[0037]
根据第二方面,一种实施例中提供一种无人机,包括:
[0038]
深度获取模块,用于获取前方环境的深度图;
[0039]
栅格地图模块,用于根据所述深度图获取所述前方环境的栅格地图,所述栅格地图中包括可通行的栅格和不可通行的栅格;
[0040]
场值模块,用于获取所述栅格地图中无人机的目标栅格,将所述目标栅格设置为引力点,将所述不可通行栅格均设置为斥力点;获取任一可通行栅格相邻可通行的各个相邻栅格,根据所述目标栅格与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个相邻栅格的引力场值,根据各个不可通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所述相邻栅格的斥力场值;
[0041]
路径规划模块,用于根据所述引力场值和所述斥力场值得到所述任一可通行栅格选择各个所述相邻栅格的启发式函数,根据所述启发式函数进行蚁群算法得到无人机的最优飞行路径。
[0042]
根据第三方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现如第一方面所述的方法。
[0043]
据上述实施例的无人机路径规划方法、无人机和存储介质,先获取前方环境的深度图,然后由深度图得到相应的栅格地图,并在栅格地图中将无人机的目标栅格的设置为引力点,将不可通行栅格均设置为斥力点。然后得到任一可通行栅格受到相邻栅格的引力场值,以及受到相邻栅格的斥力场值,再根据引力场值和斥力场值得到该任一可通行栅格选择相邻栅格的启发式函数,最后根据启发式函数进行蚁群算法得到无人机的最优飞行路径。由于是根据相邻栅格与目标栅格的距离得到相邻栅格对该任一可通行栅格的引力场值,从而可以得到离目标栅格最近的相邻栅格,再根据相邻栅格与各个不可通行栅格的距离得到相邻栅格对该任一可通行栅格的斥力场值,从而可以得到离各个不可通行栅格最远的相邻栅格,使得蚁群算法在根据由引力场值和斥力场值得到的启发式函数进行路径规划时,可以综合的受到目标栅格和各个不可通行栅格的影响,去选择障碍较少且离目标栅格
较近的路径,以得到最优规划路径,从而有效的避开障碍物。并且相比随机的搜索路径,由引力场值和斥力场值得到的启发式函数可以使得蚁群算法更快的得到规划路径,并快速的进行收敛。
附图说明
[0044]
图1为一种实施例的无人机路径规划方法的流程图;
[0045]
图2为另一种实施例的无人机路径规划方法的流程图;
[0046]
图3为又一种实施例的无人机路径规划方法的流程图;
[0047]
图4为一种实施例的启发式函数的计算示意图;
[0048]
图5为一种实施例的无人机路径规划结果示意图;
[0049]
图6为一种实施例的无人机的结构框图。
具体实施方式
[0050]
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本技术能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本技术相关的一些操作并没有在说明书中显示或者描述,这是为了避免本技术的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
[0051]
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
[0052]
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本技术所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
[0053]
在本发明实施例中,对任一可通行栅格选择其相邻栅格时,都会根据相邻栅格与目标栅格的距离得到相邻栅格对该任一可通行栅格的引力场值,以表示最近的路径,还会根据相邻栅格与各个不可通行栅格的距离得到相邻栅格对该任一可通行栅格的斥力场值,以表示安全且不易遇障的路径,然后由引力场值和斥力场值得到的启发式函数并通过蚁群算法进行路径规划,使得所规划路径能有效的避开障碍物,更快的得到规划路径,并快速的进行收敛,以得到最优规划路径。
[0054]
请参考图1,一些实施例中提供了一种无人机路径规划方法,其可以用于对无人机飞行进行最优路径规划,例如无人机的室外路径规划或者室内路径规划,使得无人机在飞行的时候能够躲避障碍物并到达目的地点。以下对无人机路径规划方法进行具体的说明:
[0055]
步骤100:获取前方环境的深度图。
[0056]
一些实施例中,由于深度图的像素值反映场景中物体到相机的距离,因此可以通过获取无人机前方环境的深度图,以得到无人机可以飞行的范围,从而完成无人机的路径
规划。一些实施例中,可以通过被动测距传感和主动深度传感来获取前方环境的深度图。其中,被动测距传感中最常用的方法是双目立体视觉,该方法通过两个相隔一定距离的摄像机同时获取同一场景的两幅图像,通过立体匹配算法找到两幅图像中对应的像素点,随后根据三角原理计算出视差信息,再将视差信息进行转换后可用于表征场景中物体的深度信息。而基于立体匹配算法,还可通过拍摄同一场景下不同角度的一组图像来获得该场景的深度图像。除此之外,场景深度信息还可以通过对图像的明暗特征、光度特征等特征进行分析间接估算得到。主动测距传感相比较于被动测距传感最明显的特征是:设备本身需要发射能量来完成深度信息的采集。这也就保证了深度图像的获取独立于彩色图像的获取。其中,主动深度传感的方法主要包括了tof(time of flight)、结构光、激光扫描等。
[0057]
步骤200:根据所述深度图获取所述前方环境的栅格地图,所述栅格地图中包括可通行的栅格和不可通行的栅格。
[0058]
一些实施例中,栅格地图可以是三维的栅格地图,其中可通行的栅格为没有障碍物所占据的栅格,而不可通行的栅格则为有障碍物所占据的栅格。一些实施例中,为了构建三维的栅格地图,可以先使用三维激光扫描仪获取无人机前方环境的三维点云地图,然后将其转换为八叉树数据结构,以得到三维的栅格地图。八叉树(octree)是一种基于树形层次的数据结构,其定义是:若不为空树的话,树中任意一个节点的子节点恰好只会有8个或0个。八叉树充分利用了形体在空间上的相关性,其与按照三维体素阵列直接存储的方式相比,它所占用的存储空间要少得多。其主要优点在于管理方便,搜索某一个小方块的时候,能使用二分法很方便地进行查找,且当深度达到一定层次以后,基本可以拟合所有的三维模型。利用八叉树表示空间被占据情况的时,如果每个节点用2bit存储,那么空间被占据情况可以用一个6bit的八叉树来存储。将点云数据转换成八叉树结构的栅格地图,一方面可以大大节省内存空间。而且转换为八叉树结构在不损失空间结构的同时节省了存储空间,提高了计算速度,有助于移动机器人实时感知环境并智能决策。
[0059]
一些实施例中,栅格地图可以是二维的栅格地图,其中可通行的栅格为没有障碍物所占据的栅格,而不可通行的栅格则为有障碍物所占据的栅格。二维的栅格地图相比三维的栅格地图,不能对前方环境的深度信息进行细化,例如前方存在障碍时,那么该障碍就会占据该二维的栅格,而在三维的栅格地图中,如果前方存在障碍,那么该障碍只会根据其深度来占据相应深度的三维的栅格,而没有被该障碍占据的其它深度三维的栅格则为可通行的栅格。
[0060]
步骤300:获取所述栅格地图中无人机的目标栅格,将所述目标栅格设置为引力点,将所述不可通行栅格均设置为斥力点。
[0061]
一些实施例中,在进行路径规划需要在栅格地图中将无人机的目标栅格设置为引力点,以表示需要吸引无人机向此处飞行并进行相应的路径规划,同时还将全部的不可通行栅格均设置为斥力点,以表示需要排斥无人机向此处飞行并进行相应的路径规划。由于将不可通行栅格均设置为斥力点,因此使得无人机在规划路径时,并非只考虑单个障碍,而是根据全部的障碍来进行躲避,从而可以较好的避开障碍。
[0062]
步骤400:获取任一可通行栅格相邻可通行的各个相邻栅格,根据所述目标栅格与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个相邻栅格的引力场值,根据各个不可通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所
述相邻栅格的斥力场值。
[0063]
一些实施例中,由于在位于任一可通行栅格时,都是选择其相邻可通行的栅格作为下一个栅格,因此只要确认了在位于任一可通行栅格时如何选择可通行的相邻栅格,就可以在栅格地图中规划出飞行路径。一些实施例中,在选择相邻栅格时,期望可以选择离目标栅格最近的相邻栅格,从而使得规划出的路径最短,因此可以根据目标栅格与各个相邻栅格的距离,得到该任一可通行栅格受到各个相邻栅格的引力场值,可以理解的是,引力场值表征了目标栅格与相邻栅格的距离。一些实施例中,在选择相邻栅格时,期望可以选择远离不可通行栅格的相邻栅格,从而使得规划出的路径较安全,同时可以提高成功规划路径的可能性,因此可以根据各个不可通行栅格分别与各个相邻栅格的距离,得到任一可通行栅格受到各个相邻栅格的斥力场值,可以理解的是,斥力场值表征了相邻栅格与各个不可通行栅格的距离。由于斥力场值是根据相邻栅格与各个不可通行栅格之间的距离得到,因此在选择相邻栅格时,不仅仅是考虑到其现在碰到障碍的可能性,还考虑到后续碰到障碍的可能性,例如第一方向上的相邻栅格的较远处存在较多不可通行栅格,而第二方向上的相邻栅格的较近处存在较少不可通行栅格,如果只考虑最近的障碍去选择第一方向上的相邻栅格,可能导致后续还是碰见障碍后得转回去或者路径规划失败,如果综合全部的障碍选择第二方向上的相邻栅格,在绕开较近处的障碍后,可能后续基本不会碰见障碍,从而避开障碍以完成路径规格。
[0064]
步骤500:根据所述引力场值和所述斥力场值得到所述任一可通行栅格选择各个所述相邻栅格的启发式函数,根据所述启发式函数进行蚁群算法得到无人机的最优飞行路径。
[0065]
一些实施例中,蚁群算法可以采用已知公开的方法,并将本实施例中的启发式函数替换现有蚁群算法中的启发式函数,从而得到无人机的最优飞行路径。由于本实施例中的启发式函数综合了引力场值和斥力场值,因此在选择相邻栅格时,可以综合其受到目标栅格和各个不可通行栅格的影响,以规划出障碍较少且离目标栅格较近的路径。相比随机的搜索路径,由引力场值和斥力场值得到的启发式函数可以使得蚁群算法更快的得到规划路径,并快速的进行收敛,从而使得蚁群算法可以应用到三维的航迹规划中,以解决算法运行时间过长和航迹节点数过多等问题。
[0066]
由上述实施例可知,在进行无人机路径规划时,先获取前方环境的深度图,然后由深度图得到相应的二维或三维的栅格地图,并在栅格地图中将无人机的目标栅格的设置为引力点,得到任一可通行栅格受到相邻栅格的引力场值,将不可通行栅格均设置为斥力点,得到任一可通行栅格受到相邻栅格的斥力场值,再根据引力场值和斥力场值得到该任一可通行栅格选择相邻栅格的启发式函数,最后根据启发式函数进行蚁群算法得到无人机的最优飞行路径。由于是根据相邻栅格与目标栅格的距离得到相邻栅格对该任一可通行栅格的引力场值,再根据相邻栅格与各个不可通行栅格的距离得到相邻栅格对该任一可通行栅格的斥力场值,使得蚁群算法在根据由引力场值和斥力场值得到的启发式函数进行路径规划时,可以综合的受到目标栅格和各个不可通行栅格的影响,去选择障碍较少且离目标栅格较近的路径,以得到最优规划路径,从而有效的避开障碍物,并且由引力场值和斥力场值得到的启发式函数可以使得蚁群算法更快的得到规划路径,并快速的进行收敛。
[0067]
请参考图2,一些实施例中,在根据所述目标栅格与各个所述相邻栅格的距离,得
到所述任一可通行栅格受到各个相邻栅格的引力场值时,其具体方法包括:
[0068]
步骤410:获取所述目标栅格与各个所述相邻栅格之间的哈曼顿距离d1,并选择其中最小的作为最小距离mind。
[0069]
步骤420:根据各个所述相邻栅格对应的哈曼顿距离d1和所述最小距离mind的差值,得到所述任一可通行栅格受到各个对应相邻栅格的引力场值,所述引力场值与所述哈曼顿距离d1和所述最小距离mind的差值呈负相关。
[0070]
一些实施例中,由于任一可通行栅格只能选择相邻栅格作为下一个栅格,因此只需要体现出各个相邻栅格与目标栅格之间距离的大小关系即可选择离目标栅格最近的相邻栅格,而各个相邻栅格与目标栅格的距离采用哈曼顿距离来进行计算,既方便计算距离以体现出各个相邻栅格到目标栅格之间距离的大小关系,又可以使得不同相邻栅格到目标栅格之间距离的差值为整数值且方便计算。
[0071]
一些实施例中,在获取目标栅格与各个相邻栅格之间哈曼顿距离d1后,选择其中最小的作为最小距离mind,然后再根据各个相邻栅格对应的哈曼顿距离d1和最小距离mind的差值,得到该任一可通行栅格受到各个对应相邻栅格的引力场值。通过哈曼顿距离d1和最小距离mind的差值来计算引力场值,一方面可以简化计算过程,同时通过与引力场值的比较可以较好体现各个相邻栅格对该任一可通行栅格的引力场值。一些实施例中,所述引力场值与所述哈曼顿距离d1和所述最小距离mind的差值呈负相关,可以理解的是,当哈曼顿距离d1和所述最小距离mind的差值,说明对应相邻栅格与目标栅格的距离越远,因此对应的引力场值应该越小。
[0072]
一些实施例中,在根据各个所述相邻栅格对应的哈曼顿距离d1和所述最小距离mind的差值,得到所述任一可通行栅格受到各个对应相邻栅格的引力场值时,通过以下公式得到所述引力场值:
[0073][0074]
其中,d(b,g)表征任一可通行栅格的相邻栅格b与目标栅格g之间的哈曼顿距离d1,mind(b,g)为最小距离mind。
[0075]
请参考图3,一些实施例中,在根据各个不可通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所述相邻栅格的斥力场值,其具体方法包括:
[0076]
步骤430:获取各个不可通行栅分别与各个所述相邻栅格的欧式距离d2,选择小于预设距离的欧式距离d2;
[0077]
步骤440:根据对应相邻栅格所选择的各个欧式距离d2得到所述任一可通行栅格受到各个对应相邻栅格的斥力场值,所述斥力场值与各个欧式距离d2呈正相关。
[0078]
一些实施例中,由于任一可通行栅格选择相邻栅格作为下一个栅格时,相邻栅格与各个不可通行栅格的距离是会影响后续的路径规划,因此需要各个相邻栅格与不可通行栅格之间实际距离来选择远离不可通行栅格的相邻栅格,而各个相邻栅格与不可通行栅格的距离采用欧式距离来进行计算,从而准确的体现各个不可通行栅格与相邻栅格实际距离。
[0079]
一些实施例中,在获取各个不可通行栅格分别与各个相邻栅格的欧式距离d2后,选择小于预设距离的欧式距离d2。由于不可通行栅格主要是影响一定范围内栅格的路径规
划,因此当相邻栅格与不可通行栅格的欧式距离d2大于预设距离时,可以认为该不可通行栅格并不会影响到该相邻栅格后续的路径规划,因此对于各个相邻栅格,只选择小于预设距离的不可通行栅格以获取对应的欧式距离d2。然后根据对应相邻栅格所选择的各个欧式距离d2得到该任一可通行栅格受到各个对应相邻栅格的斥力场值,由于是考虑多个不可通行栅格对相邻栅格的影响,因此可以较好的避开障碍,提高成功得到规划路径的可能性。一些实施例中,斥力场值与各个欧式距离d2呈正相关,可以理解的是,当欧式距离d2越大,说明相邻栅格越远离不可通行栅格,因此对应的斥力场值应该越大。
[0080]
一些实施例中,在根据分别所选择的各个欧式距离d2得到所述任一可通行栅格受到各个对应相邻栅格的斥力场值时,通过以下公式得到所述斥力场值:
[0081][0082]
其中,d(b,o)表征任一可通行栅格的相邻栅格b与不可通行栅格o的欧式距离,sb表示在相邻栅格b的预设距离内不可通行栅格o的集合,r为预设常数。
[0083]
一些实施例中,在根据引力场值和斥力场值得到任一可通行栅格选择各个相邻栅格的启发式函数时,通过以下公式得到所述启发式函数:
[0084][0085]
其中,η
ab
为任一可通行栅格a选择相邻栅格b的启发式函数,attb为任一可通行栅格a受到相邻栅格b的引力场值,repb为任一可通行栅格a受到相邻栅格b的斥力场值,λ1和λ2分别为引力场值与斥力场值的权重。
[0086]
一些实施例中,由于斥力场值和引力场值都是在越大时,表示对应相邻栅格被选择的可能性越高,因此启发式函数还可以表示为斥力场值乘以权重λ1再加上引力场值乘以权重λ2。
[0087]
根据上述实施例中启发式函数的表达式可知,当λ1越大表示倾向于选择与目标栅格越近的相邻栅格,当λ2的越大表示倾向于选择远离各个不可通行栅格的相邻栅格。
[0088]
请参考图4,下面以一个二维的栅格地图对上述相邻栅格的斥力场值和引力场值进行说明:
[0089]
图中栅格a为任一可通行栅格,栅格g为目标栅格,黑色填充的栅格为障碍占据的不可通行栅格,其余均为可通行栅格。根据上述实施例中引力场值的计算公式可知,栅格a右上方的相邻栅格离目标栅格最近,因此其右上方的数字“1”表示其引力场值,而栅格a右方和上方的相邻栅格与右上方的相邻栅格的哈曼顿距离差值为1,因此对应的引力场值均为“0.5”,从而依次得到栅格a各个相邻栅格的引力场值。根据上述实施例中斥力场值的计算公式可知,只有栅格a右方、右下方和下方的相邻栅格在预设距离内,因此其它的相邻栅格的斥力场值均为其左下方的数字“1”,而栅格a的右下方栅格离三个不可通行栅格最近,因此其斥力场值最小且为“0.16”,而栅格a的右方和下方栅格离三个不可通行栅格相对远点,因此其斥力场值为“0.29”。然后由启发式函数的公式便可以根据斥力场值和引力场值得到启发式函数的值。而对于三维的栅格地图来说,其对上述相邻栅格的斥力场值和引力场值的计算与在二维的栅格地图中是一致的,在此不再赘述。
[0090]
一些实施例中,在根据所述启发式函数进行蚁群算法得到无人机的最优飞行路径
时,其具体方法包括:
[0091]
初始化栅格地图中各个栅格的信息素浓度矩阵以及参数;
[0092]
将预设数量的蚂蚁置于栅格地图中无人机当前所在栅格;
[0093]
每只蚂蚁通过状态转移策略选择可通行的相邻栅格,所述状态转移策略表示为:
[0094][0095]
其中,p
ab
(t)表示t时刻蚂蚁在栅格a时,选择相邻栅格b的概率,τ
ab
表示相邻栅格b上的信息素浓度,η
ab
为任一可通行栅格a选择各个相邻栅格b的启发式函数,σ和β分别表示信息素浓度和启发式函数计算值的权重,sa为栅格a的可达相邻栅格b组成的集合;
[0096]
当所有蚂蚁完成搜索时,在栅格地图上根据蚂蚁搜索到的可飞航迹对所经过栅格上的信息素浓度进行更新;
[0097]
当满足迭代终止条件时,得到最优航迹。
[0098]
本实施例中,蚁群算法可以采用已知公开的方法,因此上述蚁群算法也可以是采用已知公开的步骤来实现,其区别在于将上述实施例中的启发式函数替换现有蚁群算法中的启发式函数。本实施例中,蚂蚁的起始点均为无人机所在的当前栅格,其终点均为无人机的目标栅格,各个蚂蚁在搜索路径的时候均会受到栅格的信息素浓度和启发式函数的影响,当蚂蚁从起点到达终点时即相当于搜索到了可飞航迹。在已知公开的蚁群算法中,其启发式函数通常由任一节点至相邻节点的距离来计算的,而本实施例中,启发式函数包括斥力场值和引力场值,因此可以使得蚁群算法快速的规划出最优航迹,且最优航迹为综合考虑障碍较少和离目标栅格较近的规划路径。
[0099]
一些实施例中,当通过蚁群算法得到最优航迹后,利用视线算法对所述最优航迹进行全局优化,以得到最优飞行路径。一些实施例中,蚁群算法中的蚂蚁搜索相邻栅格时,是以栅格为基础的,所以规划出的航迹中转弯角度为固定角度,且可能存在转弯较多,因此需进行全局优化。而全局优化主要是运用栅格地图中的视线算法,视线算法在已规划的两个栅格之间连接一条直线,若该直线经过的栅格中没有不可通行栅格,则判定该两个栅格之间是可通视的,从而将两个栅格之间的路径优化为两个栅格之间连接的直线。本实施例中,利用视线算法,当判断出两个栅格可通视,且省略两个栅格之间的多余栅格后仍满足无人机约束条件,则将两个栅格之间直接相连,以作为优化后的路径。
[0100]
请参考图5,在模拟的三维的地图中,障碍物1顶点为(20m,45m,50m),障碍物2顶点为(35m,25m,100m),障碍物3顶点为(50m,45m,80m)。设定无人机的起始点为(18m,13m,16m),目标点为(49m,56m,79m)。而通过蚁群算法所规划出的航迹如图5所示,其中黑色线段表示规划出的无人机航迹。
[0101]
一些实施例中,蚁群算法还包括:根据蚂蚁搜索到的可飞航迹,将所述可飞航迹所经过的栅格的信息素扩散到预设范围内的其它栅格,并根据以下公式得到扩散的信息素:
[0102][0103]
其中,τb表示栅格a扩散到栅格b的信息素浓度,γ是扩散系数,是栅格a的
信息素浓度,d(a,b)是栅格a与栅格b之间的欧式距离,r为预设范围。
[0104]
本实施例中,由于可飞航迹对应的栅格a的信息素会在预设范围内扩散,使得可飞航迹附近的栅格信息素浓度较快提高,从而有利于蚁群算法的快速收敛。一些实施例中,预设范围可以是以栅格a为中心半径为r的球体范围。
[0105]
请参考图6,一些实施例中提供了一种无人机,其包括深度获取模块10、栅格地图模块20、场值模块30和路径规划模块40。
[0106]
深度获取模块10用于获取前方环境的深度图。
[0107]
栅格地图模块20用于根据所述深度图获取所述前方环境的栅格地图,所述栅格地图中包括可通行的栅格和不可通行的栅格。
[0108]
场值模块30用于获取所述栅格地图中无人机的目标栅格,将所述目标栅格设置为引力点,将所述不可通行栅格均设置为斥力点;获取任一可通行栅格相邻可通行的各个相邻栅格,根据所述目标栅格与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个相邻栅格的引力场值,根据各个不可通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所述相邻栅格的斥力场值。
[0109]
路径规划模块40用于根据所述引力场值和所述斥力场值得到所述任一可通行栅格选择各个所述相邻栅格的启发式函数,根据所述启发式函数进行蚁群算法得到无人机的最优飞行路径。
[0110]
一些实施例中,在根据所述目标栅格与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个相邻栅格的引力场值时,场值模块还用于获取所述目标栅格与各个所述相邻栅格之间的哈曼顿距离d1,并选择其中最小的作为最小距离mind,根据各个所述相邻栅格对应的哈曼顿距离d1和所述最小距离mind的差值,得到所述任一可通行栅格受到各个相邻栅格的引力场值,所述引力场值与所述哈曼顿距离d1和所述最小距离mind的差值呈负相关。
[0111]
一些实施例中,在根据各个所述相邻栅格对应的哈曼顿距离d1和所述最小距离mind的差值,得到所述任一可通行栅格受到各个对应相邻栅格的引力场值时,场值模块还用于通过以下公式得到所述引力场值:
[0112][0113]
其中,d(b,g)表示任一可通行栅格的相邻栅格b与目标栅格g之间的哈曼顿距离d1,mind(b,g)为最小距离mind。
[0114]
一些实施例中,在根据各个不可通行栅格分别与各个所述相邻栅格的距离,得到所述任一可通行栅格受到各个所述相邻栅格的斥力场值时,场值模块还用于获取各个不可通行栅格分别与各个所述相邻栅格的欧式距离d2,选择小于预设距离的欧式距离d2,根据对应相邻栅格所选择的各个欧式距离d2得到所述任一可通行栅格受到各个对应相邻栅格的斥力场值,所述斥力场值与各个欧式距离d2呈正相关。
[0115]
一些实施例中,在根据分别所选择的各个欧式距离d2得到所述任一可通行栅格受到各个对应相邻栅格的斥力场值时,场值模块还用于通过以下公式得到所述斥力场值:
[0116][0117]
其中,d(b,o)表征任一可通行栅格的相邻栅格b与不可通行栅格o的欧式距离,sb表示在相邻栅格b的预设距离内不可通行栅格o的集合,r为预设常数。
[0118]
一些实施例中,在根据所述引力场值和所述斥力场值得到所述任一可通行栅格选择各个所述相邻栅格的启发式函数时,路径规划模块还用于通过以下公式得到所述启发式函数:
[0119][0120]
其中,η
ab
为任一可通行栅格a选择相邻栅格b的启发式函数,attb为任一可通行栅格a受到相邻栅格b的引力场值,repb为任一可通行栅格a受到相邻栅格b的斥力场值,λ1和λ2分别为引力场值与斥力场值的权重。
[0121]
一些实施例中,在根据所述启发式函数进行蚁群算法得到无人机的最优飞行路径时,路径规划模块还用于:
[0122]
初始化栅格地图中各个栅格的信息素浓度矩阵以及参数;
[0123]
将预设数量的蚂蚁置于栅格地图中无人机当前所在栅格;
[0124]
每只蚂蚁通过状态转移策略选择可通行的相邻栅格,所述状态转移策略表示为:
[0125][0126]
其中,p
ab
(t)表示t时刻蚂蚁在栅格a时,选择相邻栅格b的概率,τ
ab
表示相邻栅格b上的信息素浓度,η
ab
为任一可通行栅格a选择各个相邻栅格b的启发式函数,σ和β分别表示信息素浓度和启发式函数计算值的权重,sa为栅格a的可达相邻栅格b组成的集合;
[0127]
当所有蚂蚁完成搜索时,在栅格地图上根据蚂蚁搜索到的可飞航迹对所经过栅格上的信息素浓度进行更新;
[0128]
当满足迭代终止条件时,得到最优航迹;
[0129]
利用视线算法对所述最优航迹进行全局优化,以得到最优飞行路径。
[0130]
一些实施例中,路径规划模块还用于根据蚂蚁搜索到的可飞航迹,将所述可飞航迹所经过的栅格的信息素扩散到预设范围内的其它栅格,并根据以下公式得到扩散的信息素:
[0131][0132]
其中,τb表示栅格a扩散到栅格b的信息素浓度,γ是扩散系数,是栅格a的信息素浓度,d(a,b)是栅格a与栅格b之间的欧式距离,r为预设范围。
[0133]
一些实施例中提供了一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述实施例所述的无人机路径规划方法。
[0134]
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过
硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
[0135]
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1