一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于启发式探索的分层导航避障系统、分层导航避障方法与流程

2021-09-25 01:03:00 来源:中国专利 TAG:分层 导航 启发式 机器人 探索


1.本发明涉及机器人导航技术领域,特别涉及基于启发式探索的分层导航避障系统、分层导航避障方法。


背景技术:

2.近年来,在机器人导航算法在业界被广泛研究,很多商用服务型机器人具备一定的室内导航能力。但是在真实环境下通常需要轮式或足式机器人在灾难现场、野外等无地图场景中执行救援、探测等任务。在这种紧急场景里往往无法事先提供环境地图,并且环境中还可能存在大量的高速移动障碍物。因此,这要求机器人具有良好导航避障能力。此外,由于任务场景中还可能存在大量的长廊、房间等复杂布局,机器人还需要具备长时历史记忆和规划能力来避免迷路或陷入死角。总体来说,为了在未知的高动态且复杂环境下实现自主导航,需要机器人具备高效的环境探索策略、可靠的路径规划算法及灵活的避障能力。
3.目前,常用的导航算法是基于地图的方法和基于学习的方法。其中,基于地图的方法通过不断的建图和轨迹规划来实现安全导航,例如ros(robotics operate system)中的move_based工具包。这种方法通常根据当前地图规划出全局路径,然后实时地调整局部路径达到避障的目的。但是在高动态环境下,这种方法效果难以让人满意。因为高速移动的障碍物会影响建图和局部路径规划的结果。此外,基于强化学习的方法也可以实现灵活的导航避障,即利用强化学习在模拟器中训练机器人自己学习如何避障和导航。这种基于学习的方法能够极大地提高避障能力,但该方法缺乏环境记忆和全局规划的能力,难以应对在复杂场景下的导航任务,即会被被围墙阻挡或困在死角从而导致失败。从原理上看,基于地图的方法,通过在现有地图和未知区域中不断优化出一条可行轨迹,但计算复杂度高,难以应对高动态环境;而基于学习的方法通过训练学会了灵活地避障,但缺乏记忆能力,但是,无法独立地解决大环境下复杂场景的导航问题。
4.在未知的高动态复杂场景下纯自主导航能力对机器人的推广和应用而言至关重要。当前的以上几种方法都难以独立地完整解决这种问题,通常需要用户的协助或需要事先环境建图,或者采用其他的传感器对外部障碍物进行捕捉,而这样的限制会极大地降低机器人的应用前景。
5.因此,需要一种新型的导航系统,能够独立地解建图、定位、探索、规划和避障导航各个问题,让机器人在这种无地图的高动态复杂场景下真正具备纯自主导航的能力。


技术实现要素:

6.基于此,有必要针对现有的导航避障方法所存在的无法独立地解决大环境下复杂场景的导航问题,提供一种基于启发式探索的分层导航避障系统、方法、装置、计算机设备和存储介质。
7.第一方面,本技术实施例提供了一种基于启发式探索的分层导航避障系统,所述分层导航避障系统包括上层模块和下层避障模块,所述上层模块和所述下层避障模块分别
运行于不同的进程中,所述上层模块用于在陌生无地图环境中负责探索和规划,所述下层避障模块用于实现局部导航避障、且所述上层模块和所述下层避障模块之间具有紧耦合的关联关系,所述上层模块为所述下层避障模块提供临时目标点,所述下层避障模块为所述上层模块规划路径提供安全启发因子参考。
8.第二方面,本技术实施例提供一种使用分层导航避障系统进行分层导航避障方法,所述方法包括:
9.根据机器人的当前状态信息和所处环境的周边障碍物分布信息,通过下层强化学习避障模型的价值评估网络,计算候选点的安全启发因子;
10.根据在陌生无地图环境中实时构建的当前地图、预设目标和机器人的当前位置,计算候选点的目标启发因子;
11.根据所述安全启发因子和所述目标启发因子,计算出启发值最小的候选点,并将所述启发值最小的候选点作为最佳探索点;
12.根据所述最佳探索点计算多个中途点,将所述多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将所述临时目标点设置为所述下层强化学习避障模型的目标点;
13.将所述机器人所处环境数据输入至导航避障模型中,输出导航指令,并将所述导航指令发送给所述机器人。
14.第三方面,本技术实施例提供了一种使用分层导航避障系统进行分层导航避障方法,所述方法包括:
15.接收所述分层导航避障系统依次发送的多个中途点,并作为对应的临时目标点;
16.根据各个所述临时目标点依次行驶至对应的中途点,直至到达所述最佳探索点。
17.第四方面,本技术实施例提供了一种使用分层导航避障系统进行分层导航避障装置,所述装置包括:
18.安全启发因子计算模块,用于根据机器人的当前状态信息和所述机器人所处环境的周边障碍物分布信息,通过下层强化学习避障模型的价值评估网络,计算候选点的安全启发因子;
19.目标启发因子计算模块,用于根据在陌生无地图环境中实时构建的当前地图、预设目标和机器人的当前位置,计算候选点的目标启发因子;
20.最佳探索点计算模块,用于根据所述安全启发因子计算模块计算的所述安全启发因子和所述目标启发因子计算模块计算的所述目标启发因子计算出启发值最小的候选点,并将所述启发值最小的候选点作为最佳探索点;
21.目标点确定模块,用于根据所述最佳探索点计算模块确定的所述最佳探索点计算多个中途点,将所述多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将所述临时目标点设置为所述下层强化学习避障模型的目标点;
22.处理模块,用于将所述机器人所处环境数据输入至导航避障模型中,输出导航指令;
23.发送模块,用于将所述处理模块处理得到的所述导航指令发送给所述机器人。
24.第五方面,本技术实施例提供了一种使用分层导航避障系统进行分层导航避障装置,所述装置包括:
25.接收模块,用于接收所述分层导航避障系统依次发送的多个中途点,并作为对应的临时目标点;
26.行驶模块,用于根据各个所述接收模块确定的所述临时目标点依次行驶至对应的中途点,直至到达所述最佳探索点。
27.第六方面,本技术实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现上述任一所述的使用所述分层导航避障系统进行分层导航避障方法。
28.第七方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现上述任一所述的使用所述分层导航避障系统进行分层导航避障方法。
29.本技术实施例提供的技术方案可以包括以下有益效果:
30.在本技术实施例中,本技术实施例提供的分层导航避障方法,根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点;以及将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人。因此,采用本技术实施例,能够精准地确定出最佳探索点,根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点,以及将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人,从而能够精准导航并避障。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
31.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
32.图1为本公开实施例提供的一种分层导航避障方法的流程示意图;
33.图2为本公开实施例提供的具体应用场景下的分层导航避障方法所采用的分层导航避障系统的示意图;
34.图3为本公开实施例提供的具体应用场景下的基于启发式探索机制在未知环境下进行探索的导航示意图;
35.图4为本公开实施例提供的具体应用场景下的基于启发式探索机制进行选点的示意图;
36.图5为本公开实施例提供的具体应用场景下的基于启发式探索的分层导航避障方法的流程示意图;
37.图6为本公开实施例提供的分层导航避障方法的另一流程示意图;
38.图7为本公开实施例提供的一种分层导航避障装置的结构示意图;
39.图8为本公开实施例提供的另一种分层导航避障装置的结构示意图。
具体实施方式
40.以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
41.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
42.下面结合附图详细说明本公开的可选实施例。
43.如图1所示,本公开实施例提供一种分层导航避障方法,该分层导航避障方法应用于服务器,该分层导航避障方法所使用的系统为基于启发式探索的分层导航避障系统,该分层导航避障系统包括上层模块和下层避障模块,上层模块和下层避障模块分别运行于不同的进程中,上层模块用于在无地图的陌生环境中负责探索和规划,下层避障模块用于实现局部导航避障、且上层模块和下层避障模块之间具有紧耦合的关联关系,上层模块为下层避障模块提供临时目标点,下层避障模块为上层模块规划路径提供安全启发因子参考。
44.本公开实施例提供的一种分层导航避障方法具体包括以下方法步骤:
45.s101:根据机器人的当前状态信息和所处环境的周边障碍物分布信息,通过下层强化学习避障模型的价值评估网络,计算候选点的安全启发因子;其中,候选点为当前已构建的地图上的所有候选点。
46.s102:根据在陌生无地图环境中实时构建的当前地图、预设目标和机器人的当前位置,计算候选点的目标启发因子;其中,候选点为当前已构建的地图上的所有候选点。
47.s103:根据安全启发因子和目标启发因子,计算出启发值最小的候选点,并将启发值最小的候选点作为最佳探索点;
48.s104:根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点;
49.s105:将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人。
50.在一种可能的实现方式中,本公开实施例提供的一种分层导航避障方法还包括以下步骤:
51.构建下层强化学习避障模型的价值评估网络和动作策略网络;
52.基于预设深度强化学习模型,对机器人实现应激式强化学习避障的学习避障模型进行训练,得到下层强化学习避障模型。
53.在一种可能的实现方式中,本公开实施例提供的一种分层导航避障方法还包括以下步骤:
54.在陌生无地图环境中通过增量式建图构建栅格地图和计算机器人的当前位置。
55.在一种可能的实现方式中,本公开实施例提供的一种分层导航避障方法还包括以下步骤:
56.获取用于重新选择新的最佳探索点的预设条件,并判断当前条件是否符合预设条件,在判断出当前条件符合预设条件时,则重新选择新的最佳探索点。
57.在本技术实施例中,预设条件包括:机器人在探索过程中,探索地图的熵变化大于预设熵变化阈值;或者,检测出当前探索点的状态发生变化;或者,检测出机器人已达到最
佳探索点;或者,检测出目标点为已知区域。
58.如图2所示,为本公开实施例提供的具体应用场景下的分层导航避障方法所采用的分层导航避障系统的示意图。
59.为了解决未知的高动态复杂环境下的导航问题,分层导航避障系统包括上下两层,如图2所示,其中上层模块需要负责同步地探索未知环境并实现路径规划,下层避障模块主要实现了短距离的导航避障,保证机器人安全地从当前点行驶到临时目标。
60.如图2所示,上层模块包括三个部分组成,分别是基于slam的建图子模块(slam

based mapping),启发式探索子模块(heuristic exploration)和中途点规划子模块(waypoint planning),分别运行在30hz,0.2hz和1hz。下层避障模块是一个单独训练的强化学习避障模块,都运行在30hz。
61.在如图2所示的分层导航避障系统中,中下层单独训练了一个基于强化学习的应激式避障模型:
62.设计强化学习要素:首先设计紧凑的状态空间作为状态输入,机器人的观测向量记为:其中机器人通过挂载的2d激光雷达观测到周边环境为向量o
l
,在载体坐标系下目标点相对于机器人投影向量为o
g
,同时还通过前n个时刻记录的激光观测数据中计算出相对运动向量:该相对运动向量o
m
综合了机器人自身运动和外界障碍物的运动。最后机器人在世界坐标系下的自身运动向量记为o
v
。然后为了将本发明应用到更多的机器人平台,动作向量设计为:[v
x
,v
y
,w
z
],分别代表着机器人自身x轴方向的运动速度,y轴方向的运动速度和旋转角速度。
[0063]
基于强化学习并行ppo算法训练机器人在模拟器中实现短距离避障导航,如图2所示,采用dppo这种连续控制的深度强化学习算法在stage模拟器中设置不同场景训练小车学会短距离避障导航,根据当前位置和目标位置的距离以及是否发生碰撞计算奖励函数,用奖励函数来引导更新强化学习算法中动作策略网络和价值评估网络。为了加速训练过程,采用并行训练的方式,同步在多类场景中同时训练,如图3所示,多类场景包括了空旷场景、静态障碍物场景、动态障碍物场景等。
[0064]
在如图2所示的分层导航避障系统中,上层模块的建图子模块用于实时构建环境地图,实时构建环境地图的过程具体如下所述:
[0065]
上层实时运行建图子模块,建图子模块中运行激光slam的cartograhper算法对环境实时建图并实时更新,得到二维占据网格地图(occupany grid map)。)根据最新的网络地图,定义边界点为探明已知空闲点和未知状态点之间的边界点,记做p
boundary

[0066]
建图子模块需要负责增量式建图和定位,即刚开始是完全陌生的环境,机器人只知道自身位置坐标和目标坐标,对于环境信息一无所知。经过不断探索,建图子模块不断对新的区域进行建图,并且同步通过cartograhper算法、惯性器件imu的角速度和加速度数据、轮式里程计信息对机器人位置p,姿态pose和实时速度v做精确估计。
[0067]
如图4所示,为本公开实施例提供的具体应用场景下的基于启发式探索机制进行选点的示意图。
[0068]
如图4所示,在图4的两类场景下,机器人均更倾向于选择更安全的探索点,即:黑框内的点。
[0069]
在本技术公开实施例提供的分层导航方法中,采用了多因子启发探索机制,具体如下所述:
[0070]
4.1探索子模块计算距离启发因子d
h
[0071]
首先,探索子模块根据建图子模块得到的最新地图,对地图中已知区域和未知区域边缘点进行提取,这一系列边缘点将经过滤波和聚类后的边界点p
boundary
做当做候选点。
[0072]
其次,探索子模块根据建图模块计算出来实时最新地图、当前的机器人位置姿态以及预设的最后目标点,计算每个候选点位置的目标启发因子代表从候选点到目标点的欧式距离,代表从当前点到候选点的路径长度,它衡量了该候选点的和目标之间的距离和到达该点的难易程度,的计算采用a*路径规划算法实现,因为从当前点到候选点均在地图上均是已知,通过a*路径规划方法可以得到一条可行路径,该可行路径的长度即
[0073]
4.2下层强化学习避障模块计算安全启发因子v
h
[0074]
下层强化学习避障模块计算每个候选点对应的安全启发因子v
ih
,其计算方法如下:安全水平启发因子v
ih
通过下层模块的强化学习避障模型的价值评估网络(critic模型)计算而得,将候选点设置为目标点o
g
,并在当前观测o
l
下计算critic网络输出值该候选点的v
ih
。v
ih
衡量了该候选点安全程度,当机器人和候选点之间的障碍物越密集,v
ih
值也相应越小,代表该候选点越危险。
[0075]
4.3探索子模块根据两类因子从候选点中选择探索点:如图2所示,本公开实施例提供的分层导航避障方法设计了两类启发因子,探索点的选择机制如下:计算所有候选点的两类启发因子的值,并通过以下公式归一化后加和:
[0076][0077]
系数γ代表两项之间的权重系数,用于平衡两类因子的贡献度,两项的分母是为了将其归一化。由计算公式可知,启发函数由两个启发因子计算而得,算法最终选择启发函数值最小的边界点作为探索点。并根据启发函数挑选出最合适的边界点作为下一步探索点p
exploration
[0078]
在两类启发因子的作用下,让机器人会选择更近目标、也更容易到达,并且还更安全的区域作为下一步探索。如图4所示,机器人在左图测试场景下选择右分支边缘区作为探索点,而在右图的测试场景中选择了左分支边缘区作为探索点,即两种情况下都选择了更安全的区域作为下一步探索点。本公开实施例提供的分层导航避障方法,引入多因子启发式探索机制,并结合了下层模块critic网络的特性,这种上下层紧耦合的方式让整个系统更加安全可靠。
[0079]
中途点规划子模块规划中途点并发送给下层避障模型执行,具体如下所述:
[0080]
在选择了合适的探索点p
exploration
后,中途点规划模块规划出一条从当前位置到探
索点的最短路径。该路径是一系列连续稠密的路径点序列组成,为了降低上下层的通信负担,在这路径点序列上选择若干个的中途点p
waypoint
,并将中途点p
waypoint
发送给下层模块当做临时的目标点o
g
。从规划的路径序列中选择中途点的标准是机器人能够直行到达的最远点为中途点p
waypoint
,即代表从中途点到当前位置路径上无大型障碍物遮挡阻拦。如图3所示:因为围墙边界的存在,机器人从当前点无法直接达到探索点,中途点选择在障碍物边缘位置。
[0081]
按照上述标准,在路径点序列中依次选择中途点,并逐个发送给下层模块作为临时目标o
g
,指导机器人行驶到探索点,当依次到达中途点后最终到达了探索点,则重复以上计算步骤,计算新的位置和地图下的探索点,然后基于此探索点计算中途点并交于下层避障模型执行。
[0082]
探索点重新规划:在机器人一步步往探索点行驶中,地图在不断更新,为了提高导航探索效率,此时需要不断检测是否需要重新规划探索点,重新规划的标准如下:
[0083]
(1)探索过程中地图发生较大改变,地图采用熵值来衡量其信息量
[0084][0085]
p(m
i,j
)是网格地图中第i行第j列的点的占率概率,当地图熵变化超过一定阈值,则代表地图发生了很多变化,此时旧的探索点未必是最优选择,应当重新规划探索点。
[0086]
(2)探索点的状态发生变化,即旧的探索点可能被某个动态障碍物长时间占据,此时也应当重新规划探索点。
[0087]
(3)机器人到达探索点p
exploration
,此时理应规划下一个探索点。
[0088]
(4)目标点p
goal
出现在网格地图的已知区域。此时无需探索点,直接让机器人往目标点行驶即可。
[0089]
如图5所示,为本公开实施例提供的具体应用场景下的分层导航避障方法的流程示意图。
[0090]
如图5所示,具体应用场景下的基于启发式探索的分层导航避障方法,该分层导航避障方法应用于服务器,该分层导航避障方法包括以下步骤:
[0091]
s501:基于深度强化学习ppo算法构建的模型,对机器人实现应激式强化学习避障的学习避障模型进行训练,得到下层强化学习避障模型。
[0092]
在本技术实施例中,在模拟器上基于强化学习方法训练避障模型,具体训练过程如下所述:
[0093]
1)在stage模拟器上设计多种训练场景:
[0094]
首先,在stage模拟器中建立小车模型、障碍物模型,并设计若干训练和测试场景,然后按照真实机器人配置设置小车的物理属性如,质量、速度、加速度、刚度等。其次在模拟器中给小车配置2d激光雷达,按照真实世界的民用级激光雷达性能指标模拟雷达的测量精度、角分辨率、测量范围、扫描频率等参数。最后设置若干静态障碍物场景和动态障碍物,障碍物的大小和形状各异,障碍物在环境中最大移动速度至少是小车最大速度两倍以上,并且障碍物在环境中随机游走,游走速度在速度范围里随机采样。
[0095]
2)搭建基于ppo的多进程强化学习训练框架,包括critic网络和actor网络:
[0096]
首先,搭建深度强化学习模型,采用ppo算法实现,分为actor模型和critic模型,
如图2所示,强化学习算法的actor和critic模型均是由深度神经网络搭建,搭建buffer memory存储历史元组,critic模型输出value值,并计算advantage value值,actor模型计算动作输出。
[0097]
3)训练强化学习算法,实现短距离避障导航:
[0098]
首先,设置四类奖励函数rg,rc,rt,rr,其中:目标奖励r
g
,每一步越靠近目标奖励越大,其计算方法如下:
[0099]
w
g
·
(d
t

d
t
‑1),代表t时刻相比t

1时刻和目标的欧氏距离之差,wg是事先设定的正权重系数。
[0100]
碰撞惩罚r
c
,在一次仿真模拟过程,当小车与障碍物发生碰撞则给予一定惩罚,计算如下:w
c
·
15,w
c
是一个事先预设的小于0的权重系数。
[0101]
到达奖励r
r
,代表在一次仿真模拟过程中,小车到达终点则给予一定奖励,计算如下:w
r
·
20,wr也是预设的正权重系数。
[0102]
时间惩罚r
t
:代表每一步仿真,只要小车依然存活就给予一定奖励或惩罚,计算如下:w
t
·
0.01,wt也是实现预设的小于0的权重系数。该时间惩罚驱使机器人快速到达终点。
[0103]
每次仿真过程中奖励函数r(t)=rg rc rt rr
[0104]
其次,在模拟器中实现多进程训练,在一个训练场景中设置n个机器人,每个仿真步长内采集所有的机器人的观测状态和r(t),然后送入强化学习框架里buffer memory存储。强化学习框架中的ppo算法根据n个观测状态计算出n个动作输出a(t),并返回给n个机器人小车,每个小车执行各自动作,并收集新一时刻的各自的o(t 1)和r(t 1),依次循环。当强化学习框架里的buffer memory收集的样本超过一定阈值则更新actor和critic网络参数。此外当某个小车在模拟器发生碰撞或达到最大时间步长,模拟器向强化学习框架发送done指令,代表本次模拟结束,强化学习框架对应发送reset指令重启该小车,整个并行训练环境采用同步模式进行,场景至少必须包括静态、动态和空旷场景三类以上。
[0105]
最后,通过多轮次的训练,在这四类奖励函数引导下,强化学习算法最终训练出一个灵活的短距离避障策略。
[0106]
s502:构建下层强化学习避障模型的价值评估网络,并根据机器人的当前状态信息和机器人所处环境的周边障碍物分布信息,通过该价值评估网络,计算安全启发因子。
[0107]
s503:分层导航避障系统的上层模块的建图子模块,通过基于激光2d

slam的预设方式,基于机器人所处环境,实时构建栅格地图和计算机器人的当前位置。
[0108]
在本技术实施例提供的分层导航避障方法中,建图子模块实现对环境地图的实施构建过程具体如下所述:
[0109]
1)上层实时运行建图子模块,首先,根据目标点和机器人起点的相对距离和方位,以机器人起点位置为圆心,机器人到目标的距离的1.3倍长度为半径,初始化一张圆形空白地图,则目标点位于地图内靠近边缘区域。地图中所有点的状态均为未知,此刻机器人只知道目标位置坐标和自身位置坐标。建图子模块中运行激光slam的cartograhper算法对环境实时建图并实时更新,得到二维占据网格地图(occupany grid map)。其中,网络地图中每个像素点值被设置为0

1之间,代表该网络区域的占据概率,具体如下:该点被障碍物占据则设置为大于0.52,探明已知空闲点则设为小于0.48,未知状态点则设置于0.48到0.52之
间。根据最新的网络地图,定义边界点为探明已知空闲点和未知状态点之间的边界点,记做p
boundary

[0110]
2)建图子模块需要负责增量式建图和定位,即刚开始是完全陌生的环境,机器人只知道自身位置坐标和目标坐标,对于环境信息一无所知,即在初始化的空白地图上不断构建真实环境地图。经过不断探索,建图子模块不断对新的区域进行建图,并且同步通过cartograhper算法、惯性器件imu的角速度和加速度数据、轮式里程计信息对机器人位置p,姿态pose和实时速度v做精确估计。
[0111]
s504:分层导航避障系统的上层模块的探索子模块,根据预设目标和机器人的当前位置,计算目标启发因子。
[0112]
s505:导航系统上层模块的探索子模块,根据目标启发因子、安全启发因子和当前最新地图选择最佳探索点。
[0113]
在本技术实施例中,基于多因子启发探索机制选择最佳候选点为探索点具体过程如下所述:
[0114]
1)通过筛选和聚类来预处理边界点作为候选点:
[0115]
首先,挑选出所有的边界点p
boundary
,边界点为非障碍物的已知区域和未知区域的交接处。然后对所有边界点p
boundary
序列进行滤波,排除那些由于算法噪声带来的伪边界和一些极狭窄边界,这些伪边界和极其狭窄的边界大多源自建图过程的地图的漂移或漏点。滤波方法采用对点图进行形态学处理,首先进行膨胀,然后再腐蚀,消除了较小的噪声点后得到更可行的边界点集。
[0116]
其次,为了加快运算效率,对上述所有边界点进行聚类,聚类个数n为超参数,根据地图大小和平台运算能力提前设定。得到n个聚类中心后,将归于该聚类中心的所有点中随机挑选k个点,挑选的依据是k个点之间的相对距离尽可能的大,即k个点尽可能散的分布在该聚类中心周边。最后得到n*k个边界点作为候选边界点。
[0117]
2)计算所有候选点的目标启发因子:
[0118]
探索子模块根据建图模块计算出来实时最新地图、当前的机器人位置姿态以及预设的最后目标点,计算每个候选点位置的目标启发因子算每个候选点位置的目标启发因子代表从候选点到目标点的欧式距离,代表从当前点到候选点的路径长度,它衡量了该候选点的和目标之间的距离和到达该点的难易程度,的计算采用a*路径规划算法实现,因为从当前点到候选点均在地图上均是已知,通过a*路径规划方法可以得到一条可行路径,该可行路径的长度即
[0119]
3)计算所有候选点的安全启发因子:
[0120]
下层强化学习避障模块计算每个候选点对应的安全启发因子v
ih
,其计算方法如下:安全水平启发因子v
ih
通过下层模块的强化学习避障模型的价值评估网络(critic模型)计算而得,将候选点设置为目标点o
g
,并在当前观测o
l
下计算critic网络输出值该候选点的v
ih
。v
ih
衡量了该候选点安全程度,当机器人和候选点之间的障碍物越密集,v
ih
值也相应越小,代表该候选点越危险。
[0121]
4)挑选出最佳的候选点作为探索点:
[0122]
如图2所示,本公开实施例提供的分层导航避障方法设计了两类启发因子,探索点的选择机制如下:计算所有候选点的两类启发因子的值,并通过以下公式归一化后加和:
[0123][0124]
系数γ代表两项之间的权重系数,用于平衡两类因子的贡献度,两项的分母是为了将其归一化。由计算公式可知,启发函数由两个启发因子计算而得,算法最终选择启发函数值最小的边界点作为探索点。并根据启发函数挑选出最合适的边界点作为下一步探索点p
exploration
[0125]
设置系数γ为0.6,选择具有最小启发值的候选边界点作为下一步探索点p
exploration
。在两类启发因子的作用下,让机器人会选择更近目标、也更容易到达,并且还更安全的区域作为下一步探索。如图4所示,机器人在左图测试场景下选择右分支边缘区作为探索点,而在右图的测试场景中选择了左分支边缘区作为探索点,即两种情况下都选择了更安全的区域作为下一步探索点。本发明引入多因子启发式探索机制,并结合了下层模块critic网络的特性,这种上下层紧耦合的方式让整个系统更加安全可靠。
[0126]
s506:分层导航避障系统的上层模块的路径规划子模块,根据选择的最佳探索点计算若干稀疏中途点,依次将各个中途点发送给下层避障模块当做临时目标点,以便于导航机器人依次行驶至每个中途点。
[0127]
在根据选择的最佳探索点计算若干稀疏中途点之后,本公开实施例提供的分层导航避障方法还包括以下步骤:依次计算稀疏路径点并检测是否需要重规划探索点,具体过程如下所述:
[0128]
1)基于探索点和当前点规划最短路径:
[0129]
得到了探索点p
exploration
后,如图3所示,此刻需要判断是否探索点可直接到达,即在探索点和当前点的直线连线上无障碍物阻挡,如若可直线到达,则直接将中途点p
waypoint
设置为探索点p
exploration

[0130]
如若不是直接直线到达,则先采用a*算法规划出从当前点到探索点的最短路径。该最短路径是一系列的连续稠密点集。
[0131]
2)基于规划的路径点序列选择若干稀疏中途点:
[0132]
将上述规划最短路径点集进行处理,选择从当前点可直接到达的最远点作为中途点p
waypoint
,然后将该中途点发送给下层强化学习避障网络作为临时目标点,下层网络此负责驱动机器人往该中途点行驶,并避开移动的障碍物。在到达中途点后依次计算下一次中途点p
waypoint
,直至最后到达探索点。到达探索点后则重复以上探索点的选择步骤。
[0133]
3)时刻检测是否需要重新规划探索点:
[0134]
在依次往逐个中途点行驶过程,需要检测是否需要重新规划探索点,如果触发了条件则重新规划探索点,则重复上述探索点选择步骤。
[0135]
s507:根据机器人的实时状态信息、最新的栅格地图监控数据和用于触发重新计算最佳探索点的预设条件,确定是否需要重新计算新的最佳探索点;若判断出需要重新计算新的新的最佳探索点,则重复上述s501至s506的步骤,直至计算出与新的最佳探索点对
应的若干稀疏的新的中途点,依次各个新的中途点发送给下层避障模块当做新的临时目标点,以便于导航机器人依次行驶至每个新的中途点。
[0136]
如图5所示,下层避障模块的下层模型需要计算安全启发因子v
h
并发送给上层模块的探索子模块,探索子模块计算距离启发因子d
h
,探索子模块基于两类启发因子和当前最新地图,在地图边缘候选点中选择合适的探索点p_exploration作为下一步的目标。
[0137]
上层模块根据探索点选择若干稀疏中途点,最后将选择出的多个中途点依次传给下层避障模块。下层避障模块依次将当前中途点作为临时目标点,并驱使行驶到该目标,同时避开障碍物。
[0138]
针对上述步骤中的详细描述,参见前述相同或相似部分的描述,在此不再赘述。
[0139]
在本公开实施例中,本技术实施例提供的分层导航避障方法,根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点;以及将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人。因此,采用本技术实施例,能够精准地确定出最佳探索点,根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点,以及将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人,从而能够精准导航并避障。
[0140]
如图6所示,本公开实施例提供一种基于启发式探索的分层导航避障方法,该分层导航避障方法应用于机器人,该分层导航避障方法具体包括以下方法步骤:
[0141]
s601:接收所述分层导航避障系统依次发送的多个中途点,并作为对应的临时目标点;
[0142]
s602:根据各个临时目标点依次行驶至对应的中途点,直至到达最佳探索点。
[0143]
在本公开实施例中,接收分层导航避障系统依次发送的多个中途点,并作为对应的临时目标点;以及根据各个临时目标点依次行驶至对应的中途点,直至到达最佳探索点。因此,采用本技术实施例,该分层导航避障系统能够在选择出一个最佳探索点之后,精准地计算出该最佳探索点对应的若干稀疏中途点。机器人接收到的分层导航避障系统依次发送的若干稀疏中途点均是由上述分层导航避障系统精准地计算出来的,并将多个中途点作为临时目标点,导航机器人依次行驶至各个中途点,直至到达上述确定出的最佳探索点;这样,该导航避障方法能够让机器人在上述无地图的高动态复杂场景下进行自主导航。
[0144]
下述为本发明分层导航避障装置实施例,可以用于执行本发明分层导航避障方法实施例。对于本发明分层导航避障装置实施例中未披露的细节,请参照本发明分层导航避障方法实施例。
[0145]
请参见图7,其示出了本发明一个示例性实施例提供的分层导航避障装置的结构示意图。该分层导航避障装置应用于服务器,该分层导航避障装置包括安全启发因子计算模块701、目标启发因子计算模块702、最佳探索点计算模块703、目标点确定模块704、处理模块705和发送模块706。
[0146]
具体而言,安全启发因子计算模块701,用于根据机器人的当前状态信息和机器人所处环境的周边障碍物分布信息,通过下层强化学习避障模型的价值评估网络,计算候选点的安全启发因子;
[0147]
目标启发因子计算模块702,用于根据在陌生无地图环境中实时构建的当前地图、预设目标和机器人的当前位置,计算候选点的目标启发因子;
[0148]
最佳探索点计算模块703,用于根据安全启发因子计算模块701计算的安全启发因子和根据目标启发因子计算模块702计算的目标启发因子,计算出启发值最小的候选点,并将启发值最小的候选点作为最佳探索点;
[0149]
目标点确定模块704,用于根据最佳探索点计算模块703确定的最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点;
[0150]
处理模块705,用于将机器人所处环境数据输入至导航避障模型中,输出导航指令;
[0151]
发送模块706,用于将处理模块705处理得到的导航指令发送给机器人。
[0152]
可选的,所述装置还包括:
[0153]
构建模块(在图7中未示出),用于构建下层强化学习避障模型的价值评估网络和动作策略网络;
[0154]
训练模块,用于基于预设深度强化学习模型,对机器人实现应激式强化学习避障的学习避障模型进行训练,得到下层强化学习避障模型。
[0155]
可选的,所述装置还包括:
[0156]
构建及计算模块(在图7中未示出),用于在陌生无地图环境中通过增量式建图方法实时构建栅格地图和计算机器人的当前位置。
[0157]
可选的,所述装置还包括:
[0158]
获取模块(在图7中未示出),用于获取用于重新选择新的最佳探索点的预设条件;
[0159]
处理模块705,用于判断当前条件是否符合获取模块获取的预设条件,在判断出当前条件符合预设条件时,则重新选择新的最佳探索点。
[0160]
可选的,预设条件包括:
[0161]
机器人在探索过程中,探索地图的熵变化大于预设熵变化阈值;或者,检测出当前探索点的状态发生变化;或者,检测出机器人已达到最佳探索点;或者,检测出目标点为已知区域。
[0162]
请参见图8,其示出了本发明一个示例性实施例提供的分层导航避障装置的结构示意图。该分层导航避障装置应用于机器人,该分层导航避障装置包括接收模块801和行驶模块802。
[0163]
具体而言,接收模块801,用于接收分层导航避障系统依次发送的多个中途点,并作为对应的临时目标点;
[0164]
行驶模块802,用于根据各个接收模块801确定的临时目标点依次行驶至对应的中途点,直至到达最佳探索点。
[0165]
需要说明的是,上述实施例提供的分层导航避障装置在执行分层导航避障方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的分层导航避障装置与分层导航避障方法实施例属于同一构思,其体现实现过程详见分层导航避障方法实施例,这里不再赘述。
[0166]
在本公开实施例中,接收模块用于接收分层导航避障系统依次发送的多个中途点,并作为对应的临时目标点;以及行驶模块用于根据各个接收模块确定的临时目标点依次行驶至对应的中途点,直至到达最佳探索点。因此,采用本技术实施例,该分层导航避障系统能够在选择出一个最佳探索点之后,精准地计算出该最佳探索点对应的若干稀疏中途点。机器人接收到的分层导航避障系统依次发送的若干稀疏中途点均是由上述分层导航避障系统精准地计算出来的,并将多个中途点作为临时目标点,导航机器人依次行驶至各个中途点,直至到达上述确定出的最佳探索点;这样,该导航避障装置能够让机器人在上述无地图的高动态复杂场景下进行自主导航。
[0167]
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:根据机器人的当前状态信息和所处环境的周边障碍物分布信息,通过下层强化学习避障模型的价值评估网络,计算候选点的安全启发因子;根据在陌生无地图环境中实时构建的当前地图、预设目标和机器人的当前位置,计算候选点的目标启发因子;根据安全启发因子、和目标启发因子,计算出启发值最小的候选点,并将启发值最小的候选点作为最佳探索点;根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点;将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人。
[0168]
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:根据机器人的当前状态信息和所处环境的周边障碍物分布信息,通过下层强化学习避障模型的价值评估网络,计算候选点的安全启发因子;根据在陌生无地图环境中实时构建的当前地图、预设目标和机器人的当前位置,计算候选点的目标启发因子;根据安全启发因子、和目标启发因子,计算出启发值最小的候选点,并将启发值最小的候选点作为最佳探索点;根据最佳探索点计算多个中途点,将多个中途点依次发送给下层避障模块,作为对应的临时目标点,并将临时目标点设置为下层强化学习避障模型的目标点;将机器人所处环境数据输入至导航避障模型中,输出导航指令,并将导航指令发送给机器人。
[0169]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
[0170]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0171]
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜