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

机器人的移动控制方法及系统与流程

2022-03-09 06:45:55 来源:中国专利 TAG:


1.本公开涉及机器人设计领域,尤其涉及一种机器人的移动控制方法及系统。


背景技术:

2.随着移动机器人技术的发展,机器人技术逐步推广至各行各业中。当今社会人工成本的日益增长,在仓储物流、制造业等领域,越来越多的企业将能够自主移动的机器人投入工作中,以代替高昂的人力成本。由于移动机器人具有自动化程度高、可靠性好、生产效率高、适应性强、成本低等优点,使其在自动化仓储等领域得到广泛应用。但是如何构建一个完整的地图始终是自主机器人的热点问题。其中,当机器人在一个陌生环境中如何通过周围环境中的已知环境灵活地构建出环境地图,是目前亟需解决的问题。


技术实现要素:

3.有鉴于此,本公开提出了一种机器人的移动控制方法及系统。
4.根据本公开的一方面,提供了一种机器人的移动控制方法所述方法包括:在预设区域内生成随机树,所述随机树包括全局随机树,所述全局随机树为以预设位置为起点生成的随机树,且所述全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关;从所述随机树的节点中筛选出边界点,以生成边界点集合,所述边界点位于环境地图的未知区域中,所述未知区域为所述机器人的传感器扫描范围之外的区域;基于所述边界点集合,确定目标位置点;基于所述目标位置点指示所述机器人移动,并更新环境地图。
5.进一步的,所述在预设区域内生成随机树之前,还包括:控制所述机器人在当前位置点通过传感器扫描周围环境,生成所述环境地图,所述环境地图包括所述未知区域、无障碍物区域以及障碍物区域;基于所述机器人的当前位置点以及初始位置点,确定所述预设区域,所述预设区域包括全局采样区域以及局部采样区域,所述全局采样区域为以第一预设中心为中心的区域,所述局部采样区域为以第二预设中心为中心的区域,其中,所述全局采样区域覆盖所述环境地图;在所述预设区域内进行采样,生成的至少一个采样点。
6.进一步的,所述第一预设中心为所述机器人的初始位置点,所述第二预设中心为所述机器人的当前位置点。
7.进一步的,所述环境地图为栅格地图。
8.进一步的,所述预设区域内生成随机树,包括:遍历所述随机树中的节点,以确定生长节点,所述生长节点是所述随机树中与所述采样点之间的距离最小的节点;以所述生长节点为起点,向所述生长节点指向所述采样点的射线方向,扩展预设长度,获得该生长节点生成的新节点以及生长线;其中,所述生长线是所述生长节点与基于该生长节点生成的新节点之间的连线,所述生长线的长度由所述预设长度确定。
9.进一步的,在所述随机树为所述全局随机树的情况下,所述预设长度与生长节点到所述全局随机树的起点的距离呈负相关,所述全局随机树的起点为所述机器人的初始位
置点,所述采样点为所述全局采样区域中的采样点。
10.进一步的,所述随机树还包括局部随机树;在所述随机树为局部随机树的情况下,所述预设长度为预设固定值,所述局部随机树的起点为所述机器人的当前位置点,所述采样点为所述局部采样区域中的采样点。
11.进一步的,所述以所述生长节点为起点,向所述生长节点指向所述采样点的射线方向,扩展预设长度,获得该生长节点生成的新节点以及生长线的步骤之后,包括:基于所述局部随机树中的节点位置以及所述环境地图,确定所述局部随机树中未位于所述无障碍物区域的栅格点,所述局部随机树中的栅格点包括所述局部随机树中的节点以及所述局部随机树中的生长线与所述栅格地图的交点中的至少一种;在所述局部随机树中不存在未位于所述无障碍物区域的栅格点的情况下,返回遍历所述随机树中的节点以确定生长节点的步骤,重新生成新节点以及生长线,并重新判断是否存在未位于所述无障碍物区域的栅格点,在返回预设次数后,清空所述局部随机树中全部节点以及生长线,返回所述遍历所述随机树中的节点,以确定生长节点的步骤;在所述局部随机树中存在位于所述无障碍物区域的栅格点的情况下,清空局部随机树中全部节点以及生长线,返回所述遍历所述随机树中的节点,以确定生长节点的步骤。
12.进一步的,所述从所述随机树的节点中筛选出边界点,以生成边界点集合,包括:标记所述随机树的生长线上未位于所述无障碍物区域的栅格点为未知点,所述栅格点包括所述随机树中的节点以及生长线与所述栅格地图的交点中的至少一种;标记所述未知点中符合所述第一预设筛选条件的未知点为边界点,并在待筛选集合中存储所述边界点,所述第一预设筛选条件用以滤除所述未知点中的重复点以及无效点;基于第二预设筛选条件,筛选所述待筛选集合中的边界点,在所述边界点集合中优先存储符合所述第二预设筛选条件的边界点。
13.进一步的,所述第二预设筛选条件用以优先将与所述机器人当前位置点的距离更小的点录入所述边界点集合中。
14.进一步的,所述无效点包括所述环境地图覆盖范围外的栅格点、位于所述障碍物区域内的栅格点中的一种或多种。
15.进一步的,所述基于所述边界点集合,确定目标位置点的步骤,包括:基于所述边界点集合,计算所述边界点集合中每一所述边界点的增益值,所述边界点的增益值与所述边界点信息增益呈正相关,且与所述机器人的当前位置点到所述边界点所需经历的路径长度,以及所述边界点到所述随机树起点的距离呈负相关;设置所述增益值最大的边界点为所述目标位置点,所述目标位置点用以确定所述机器人的移动方向;其中,所述边界点的信息增益与以所述边界点为中心,预设范围内的所述未知区域的面积大小呈正相关。
16.进一步的,在所述基于所述目标位置点指示所述机器人移动,并更新所述环境地图的步骤之后,还包括:在所述环境地图中不存在所述未知区域的情况下,指示所述机器人终止生成所述随机树;在所述环境地图中存在所述未知区域的情况下,返回所述在所述预设区域内进行采样,生成的至少一个采样点的步骤,或返回所述在预设区域内生成随机树的步骤。
17.根据本公开的另一方面,提供了一种机器人的移动控制系统,所述移动控制系统包括:随机树生成模块,被配置为在预设区域内生成随机树,所述随机树包括全局随机树,
所述全局随机树为以预设位置为起点生成的随机树,且所述全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关;边界点集合生成模块,被配置为从所述随机树的节点中筛选出边界点,以生成边界点集合,所述边界点位于环境地图的未知区域中,所述未知区域为所述机器人的传感器扫描范围之外的区域;目标位置点确定模块,被配置为基于所述边界点集合,确定目标位置点;指示移动模块,被配置为基于所述目标位置点指示所述机器人移动;地图更新模块,被配置为更新所述环境地图。
18.根据本公开的另一方面,提供了一种机器人的移动控制装置,所述移动控制装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行前文中任意一项所述的方法。
19.根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前文中任意一项所述的方法。
20.本公开提供的机器人的移动控制方法及系统通过将全局随机树设置为树中各节点距基于该节点生成的新节点的距离,与该节点距起点的距离呈负相关的随机树。相当于,距离全局随机树的起点近的节点与其新生的节点之间的距离远,距离全局随机树的起点远的节点与其新生的节点之间的距离近。可见,在生成的节点数目相同的情况下,近处的全局随机树向起点外扩张的速度大于远处的全局随机树向起点外扩张的速度,进而使全局随机树在距离起点近的地方探索速度快,使近处的区域仅被粗略探索,而在距离全局随机树起点远的地方生长速度慢,使远处的区域能够被细致探索,从而解决了上文中遍历不完全的问题以及探索效率低的问题。
21.根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
22.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
23.图1为本公开提供的一机器人移动控制方法的流程图。
24.图2为本公开图1中提供的步骤s100的流程图。
25.图3为本公开图1中提供的步骤s200的流程图。
26.图4为本公开图1中提供的步骤s300的流程图。
27.图5为本公开提供的另一机器人移动控制方法的流程图。
28.图6为本公开提供的另一机器人移动控制方法的流程图。
29.图7为本公开提供的预设区域以及环境地图的示意图。
30.图8为本公开提供的一机器人移动控制装置的结构示意图。
31.图9为本公开提供的另一机器人移动控制装置的结构示意图。
具体实施方式
32.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
33.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
34.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
35.在现有的机器人中,通过自主环境探索方法可以实现其对周围环境的自动探索,进而生产出能够应用于仓储物流、制造业等领域的工作型机器人,从而实现以机器人代替高昂的人力成本的目的。进一步的,自主环境探测方法是通过对机器人周围环境的分析,并对相应的数据进行处理,从而提取出多个用于引导机器人完成周围环境探索的位置点。提取用于引导机器人完成周围环境探索的位置点的步骤通常包括:获取机器人的传感器中的数据,并根据该数据确定当前环境地图中的障碍物的区域、无障碍物的区域,以及未探索到的区域,并通过探索决策树(即随机树)算法筛选出机器人的下一个位置点,从而尽可能构建完整的环境地图。
36.以下为便于理解,将对边界(frontier-based)的自主探索方法作出进一步说明。基于边界(frontier-based)的自主探索方法是目前自主探索研究的主流方法,该方法的原理在于:以环境地图中未被机器人的传感器探索到的区域驱动机器人探索环境地图,并在探索的过程中不断拟合数据,在环境地图中确定机器人移动的下一位置点。进一步的,在应用对边界(frontier-based)的自主探索方法的过程中,基于快速搜索随机树(rapidly-exploration random tree)的自主探索环境方法因其计算速度快,效率高,并且能够解决机器人在复杂环境下和动态环境中的路径规划问题等优点,而逐渐被重视。
37.进一步的,快速搜索随机树的自主探索环境方法通过在环境地图中生成多个采样点,并基于上述采样点生成随机树。然而上述的快速搜索随机树的自主探索环境方法存在较为明显的弊端,即在随机树的生长过程中,随机树通常以机器人的初始位置点为随机树的起点,并且在距离其起点近的区域以及距离其起点远的区域的生长速度是相同的,相当于在随机树的起点附近的节点与其新生的节点之间的距离,与随机树的起点远处的节点与其新生的节点中间的距离是相同的,故在随机树的探索速度快(即随机树的节点与其新生的节点之间的距离大)的情况下,距离生长起点远的区域,仅能够被粗略地探索,易存在诸多未被探索的区域,产生遍历不完全的问题,而在随机树的探索速度慢(即随机树的节点与其新生的节点之间的距离小)的情况下,由于距离生长起点近的区域大部分已由机器人的传感器探知,并不具备探索价值,故细致地探索该区域会造成探索效率低的问题。
38.基于上述内容,本公开提供一种机器人的移动控制方法,该移动控制方法根据随机树的探测结果确定目标位置点,并向该目标位置点移动。该随机树包括全局随机树,由于本公开提供的机器人的移动控制方法通过将全局随机树设置为树中各节点距基于该节点生成的新节点的距离,与该节点距起点的距离呈负相关的随机树。相当于,距离全局随机树的起点近的节点与其新生的节点之间的距离远,距离全局随机树的起点远的节点与其新生的节点之间的距离近。可见,在生成的节点数目相同的情况下,近处的全局随机树向起点外扩张的速度大于远处的全局随机树向起点外扩张的速度,进而使全局随机树在距离起点近的地方探索速度快,使近处的区域仅被粗略探索,而在距离全局随机树起点远的地方生长速度慢,使远处的区域能够被细致探索。由于机器人是根据随机树的探索结果进而决定目
标位置点(即移动方向)的,故设置全局随机树的起点位置,可使全局随机树在探索价值高的地方,减缓探索速度,细致探索该区域,在探索价值低的地方,加快探索速度,粗略探索该区域,进而解决现有技术中机器人无法灵活探索环境地图的技术问题。
39.参阅图1-图7所示,本公开提供一种机器人的移动控制方法,该移动控制方法包括步骤s100-步骤s400:
40.步骤s100,在预设区域内生成随机树,该随机树包括全局随机树。其中,全局随机树为以预设位置为起点生成的随机树,且全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关。
41.示例性的,预设区域可以包括全局采样区域以及局部采样区域,每一区域覆盖的范围,可以由开发人员自行设定。可选的,在该机器人应用于环境探索的场景中时,该全局采样区域范围覆盖待探索的环境地图的范围。
42.可选的,全局随机树的起点,即预设位置,可以由开发人员自行设定。可选的,该起点可以为机器人的初始位置点,也可以为机器人的初始位置点周围的点,或是待探索的环境地图的中心点。
43.可选的,全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距起点的欧式距离呈负相关,也可以与该节点距起点的曼哈顿距离呈负相关,本公开对距离的确定方式不做限定。
44.参阅图2所示,在一些可能的实施方式中,步骤s100还包括步骤s110-s120。
45.步骤s110,遍历随机树中的节点,以确定生长节点,生长节点是随机树中与采样点之间的距离最小的节点。
46.示例性的,随机树可通过nearest函数获得随机树中与采样点之间的距离最小的节点,即生长节点。
47.步骤s120,以生长节点为起点,向生长节点指向采样点的射线方向,扩展预设长度,获得该生长节点生成的新节点以及生长线。其中,生长线是生长节点与基于该生长节点生成的新节点之间的连线,生长线的长度由预设长度确定。
48.可选的,随机树可通过stree函数在生长节点(通过步骤s110中确定的)指向采样点的射线方向上,扩展预设长度,获得该生长节点生成的新节点以及生长线。可选的,该预设长度可通过ηgain函数获得。示例性的,在一个生长节点对应多个采样点的情况下,以该生长节点为起点,分别向各个指向采样点的射线方向,并通过stree函数扩展由ηgain函数确定的预设长度,获得该生长节点生成的多个新节点以及多条生长线。示例性的,在随机树中存在多个生长节点的情况下,以每一生长节点为起点,每一生长节点均向指向采样点的射线方向,并通过stree函数扩展由ηgain函数确定的预设长度,获得各个生长节点生成的新节点以及生长线。
49.进一步的,在一种可能的实现方式中,在随机树为全局随机树的情况下,预设长度与生长节点到全局随机树的起点的距离呈负相关,全局随机树的起点为机器人的初始位置点,采样点为全局采样区域中的采样点。
50.可选的,在随机树为全局随机树的情况下,预设长度通过第一ηgain函数获得,通过将第一ηgain函数中的η设置为可变值。可选的,由于全局随机树的预设长度由第一ηgain函数确定,则通过将第一ηgain函数中的η设置为随生长节点到全局随机树的起点的距离增
大而减小的可变值,可使全局随机树的预设长度与生长节点到全局随机树的起点的距离呈负相关。
51.进一步的,在一种可能的实现方式中,随机树还包括局部随机树。在随机树为局部随机树的情况下,预设长度为预设固定值,局部随机树的起点为机器人的当前位置点,采样点为局部采样区域中的采样点。可选的,在随机树为局部随机树的情况下,预设长度可由第二ηgain函数获得,第二ηgain函数中的η设置为固定值。由于局部随机树的预设长度由第二ηgain函数确定,则通过将第二ηgain函数中的η设置为固定值,可使局部随机树的预设长度与生长节点到全局随机树的起点的距离之间的关系保持不变,相当于局部随机树起点近处节点对应的预设长度与远处节点对应的预设长度是相等的,保证局部随机树在各处的探索速度均等。由于局部随机树是用于探索机器人当前位置附近区域的随机树,故局部随机树能够探索的区域的探索价值差别不大,无需同全局随机树的生长规律(即预设长度与生长节点到全局随机树的起点的距离呈负相关)相同。
52.进一步的,在一种可能的实现方式中,在步骤s100中的环境地图为栅格地图的情况下,基于局部随机树中的节点位置以及环境地图,确定局部随机树中未位于无障碍物区域的栅格点,局部随机树中的栅格点包括局部随机树中的节点以及局部随机树中的生长线与栅格地图的交点中的至少一种。
53.可选的,在局部随机树中不存在未位于无障碍物区域的栅格点的情况下,返回遍历随机树中的节点以确定生长节点的步骤,重新生成新节点以及生长线,并重新判断是否存在未位于无障碍物区域的栅格点,在返回预设次数后,清空局部随机树中全部节点以及生长线,返回遍历所述随机树中的节点,以确定生长节点的步骤(即步骤s110)。
54.局部随机树用于探测机器人当前位置附近的未知点,若局部随机树中所有栅格点都在无障碍物区域之内,此时意味局部随机树未找到未知点,局部随机树继续生长,即返回遍历随机树中的节点以确定生长节点的步骤(即重复执行上述步骤s100中的步骤s110-s120),预设次数的生长后,若局部随机树还没有出现未知点,局部随机树的生长范围就超过了“机器人当前位置附近”这个概念,得到的边界点就不具备“机器人当前位置附近的未知点”这一性质,因此需要清空局部随机树中全部节点以及生长线,返回执行步骤s110-s120,重新进行局部随机树的生长。由于在此过程中,机器人的当前位置可能发生变化,且根据上文所述,采样点也可能因重新采样而发生了变化,因此重新生长的局部随机树可与之前的局部随机树不同,可继续利用新生成的局部随机树探测机器人当前位置附近的未知点。其中,未知点为随机树的生长线上未位于无障碍物区域的栅格点。
55.可选的,该预设次数可由开发人员根据实际的情况作出调整。即在环境地图的面积较小的情况下,减少预设次数,在环境地图的面积较大的情况下,增加预设次数。
56.进一步的,在局部随机树中存在未位于无障碍物区域的栅格点的情况下,清空局部随机树中全部节点以及生长线,返回遍历所述随机树中的节点,以确定生长节点的步骤。
57.由于在局部随机树是用于探索机器人当前位置附近的区域,确定机器人当前位置附近的区域中是否存在具备探索价值的点(即未知点,该为随机树的生长线上未位于无障碍物区域的栅格点。),故在局部随机树中存在未位于无障碍区域的点的情况下,局部随机树的探索任务已完成,因此,需要局部随机树清除全部的节点以及生长线,重新从机器人的当前位置点,再次对机器人的当前位置附近的区域进行探索(即返回上述步骤s110中,重新
执行步骤s100中的步骤s110-s120)。由于在此过程中,机器人的当前位置可能发生变化,且根据上文所述,采样点也可能因重新采样而发生了变化,因此重新生长的局部随机树可与之前的局部随机树不同,可继续利用新生成的局部随机树探测机器人当前位置附近的未知点。
58.本公开提供的机器人的移动控制方法通过将全局随机树设置为树中各节点距基于该节点生成的新节点的距离,与该节点距起点的距离呈负相关的随机树,进而使全局随机树在距离起点近的地方探索速度快,使近处的区域仅被粗略探索,而在距离全局随机树起点远的地方生长速度慢,使远处的区域能够被细致探索,并且由于机器人是根据随机树的探索结果进而决定目标位置点(即移动方向)的,故通过设置全局随机树的起点位置,可使全局随机树在探索价值高的地方,减缓探索速度,细致探索该区域,在探索价值低的地方,加快探索速度,粗略探索该区域,进而解决现有技术中机器人无法灵活探索环境地图的技术问题。
59.在上述步骤s100生成随机树之后还包括步骤s200,从随机树的节点中筛选出边界点,以生成边界点集合,边界点位于环境地图的未知区域中,未知区域为机器人的传感器扫描范围之外的区域。
60.示例性的,机器人在当前位置点通过传感器扫描周围环境,未扫描到的区域为未知区域(例如未知区域被障碍物阻挡导致无法扫描,或者超出传感器量程等等),障碍物所在的区域为障碍物区域,不存在障碍物、且不属于未知区域的区域为无障碍物区域。可选的,机器人的传感器可以为红外传感器,以及超声波传感器等,本公开机器人中的传感器类型不做限定。同时,机器人的传感器的个数可以由开发人员根据实际情况设定,在机器人的体积较为小巧的情况下,开发人员可以在该机器人中设置一个传感器,机器人可以通过自身的旋转,实现传感器的多方位扫描。在环境地图的面积较大的情况下,开发人员可以在该机器人中设置多个传感器。此外,通过在机器人中设置多个传感器,能够实现机器人同时获取多方位的扫描结果,进而提升机器人在同一当前位置点中对环境地图扫描的效率。
61.进一步的,该边界点为位于未知区域的点。
62.进一步的,该环境地图为需要机器人移动探索的区域。示例性的,该机器人用于构建汽车厂中一个厂房内部的物品摆放示意图(包括存放物品的区域,闲置的区域等),则该汽车厂中的一个厂房即为一个环境地图。
63.参阅图3所示,在一些可能的实施方式中,在根据上文步骤s100得到了随机树后,且在环境地图为栅格地图的情况下,步骤s200还包括步骤s210-s230:
64.步骤s210,标记随机树的生长线上未位于无障碍物区域的栅格点为未知点,栅格点包括随机树中的节点以及生长线与栅格地图的交点中的至少一种。
65.示例性的,通过gridcheck函数通过判断随机树中是否存在穿过未知区域的生长线,即通过判断全局随机树以及局部随机树中的生长线是否存在穿过栅格值为“0”的生长线,若存在,则gridcheck函数返回
“‑
1”,即随机树中存在未位于无障碍物区域的栅格点,若不存在,则gridcheck函数返回“1”,即随机树中不存在未位于无障碍物区域的栅格点。
66.示例性的,在处理数据性能优良的机器人移动控制装置中,随机树中的栅格点包括随机树中的节点以及随机树中的生长线与栅格地图的交点,进而保证计算所得的目标位置点为最符合机器人移动原则的目标位置点。在处理数据性能优良的机器人移动控制装置
中,为保证减轻机器人移动控制装置的计算压力,随机树中的栅格点包括随机树中的节点,或随机树中的生长线与栅格地图的交点,也可以是全局随机树中的节点、全局随机树中的生长线与栅格地图的交点以及局部随机树中的节点,本公开对此不做限定。
67.步骤s220,标记未知点中符合第一预设筛选条件的未知点为边界点,并在待筛选集合中存储边界点,第一预设筛选条件用以滤除未知点中的重复点以及无效点。
68.进一步的,无效点包括环境地图覆盖范围外的栅格点、位于障碍物区域内的栅格点中的一种或多种。
69.s230,基于第二预设筛选条件,筛选待筛选集合中的边界点,在边界点集合中优先存储符合所述预设优先条件的边界点。
70.示例性的,该第二预设筛选条件用以优先将待筛选集合中与机器人当前位置点的距离更小的点录入边界点集合中。示例性的,在待筛选集合中的多个点中,距机器人当前位置点的距离由大到小依次为n1、n2、n3、n4、n5,则根据第二预设筛选条件录入边界点集合的顺序依次为n5、n4、n3、n2、n1。
71.本公开提供的机器人的移动控制方法,通过筛选获得的未知点生成边界点集合,将未知点中的无效点以及重复点剔除,生成便节点集合,进而计算边界点集合中各个边界点的增益值,确定目标位置点,避免了计算未知点中无效点的增益值以及重复计算边界点的增益值的过程,从而减轻了控制该机器人的移动控制系统的计算压力。
72.在上述步骤s200获得边界点集合之后还包括步骤s300,基于边界点集合,确定目标位置点。
73.进一步的,通过筛选边界点,进而确定目标位置点。可选的,目标位置点为边界点集合中增益值最大的边界点。其中,边界点的增益值与边界点信息增益呈正相关,且与机器人的当前位置点到边界点所需经历的路径长度,以及边界点到随机树起点的距离呈负相关。
74.可选的,边界点的信息增益与以边界点为中心,预设范围内的未知区域的面积大小呈正相关。参阅图4所示,在一些可能的实施方式中,步骤s300还包括步骤s310-s320。
75.步骤s310,基于边界点集合,计算边界点集合中每一边界点的增益值,边界点的增益值与边界点信息增益呈正相关,且与机器人的当前位置点到边界点所需经历的路径长度,以及边界点到随机树起点的距离呈负相关。其中,边界点的信息增益与以边界点为中心,预设范围内的所述未知区域的面积大小呈正相关。
76.示例性的,边界点的增益值的计算公式如下:
77.r(x
fp
)=λh(x
fp,
xr)i(x
fp
)-n(x
fp
)
[0078][0079]
其中,λ为权重常数,用以修改信息增益在计算中所占的比例,可以由开发人员根据实际的需求更改。x
fp
是边界点,xr是机器人的当前位置点,i为在x
fp
点处的信息增益,与机器人到达边界点x
fp
处可获得的视野区域成正相关,该视野区域为以边界点x
fp
点为中心,预设范围内的未知区域的面积值。可选的,该预设范围为以边界点x
fp
点为圆心,预设距离为半径的圆。n为机器人移动至该边界点x
fp
点所需经历的路径长度。
[0080]
h()函数的用于依据边界点到机器人当前位置点的距离设置增益系数,即当边界点位于以机器人当前位置点为中心的预设面积内,则令增益h
gain
大于1,该预设面积为以机器人当前位置点为圆心,以hr为半径的圆形面积。当边界点超出该预设面积时,增益设置为1。
[0081]
示例性的,当边界点集合中的边界点数目大于n(大于0的正整数)的情况下,计算边界点集合中各个边界点的增益值,可选的,n可以由开发人员根据实际情况设定。示例性的,在未知区域的面积与环境地图的面积比值较大的情况下,n值可以设定为较大数值。在未知区域的面积与环境地图的面积比值较小的情况下,n值可以设定为较小数值。
[0082]
示例性的,实时获取边界点集合中的边界点,并计算每一边界点的增益值,在存在一个边界点的增益值大于预设增益值的情况下,将该边界点设为目标未知点。可选的,预设增益值可由开发人员根据实际情况设定,在未知区域的面积与环境地图的面积比值较大的情况下,预设增益值可以设定为较大数值。在未知区域的面积与环境地图的面积比值较小的情况下,预设增益值可以设定为较小数值。
[0083]
步骤s320,设置增益值最大的边界点为目标位置点,目标位置点用以确定机器人的移动方向。
[0084]
可选的,机器人可通过路径规划算法得到从当前位置点到目标位置点的最短路径。示例性的,该路径规划算法可以是a*算法等,本公开对此不做限定。
[0085]
本公开提供的机器人的移动控制方法,通过边界点的增益值计算公式获得每一边界点的增益值,进而确定机器人的目标位置点,故机器人周围的边界点的增益值通常高于机器人远处的边界点的增益值,因此有利于机器人优先探索离当前位置点较近的边界点,进而节省机器人的路径成本,解决重复探索环境地图的问题。
[0086]
在上述步骤s300计算获得目标位置点之后还包括步骤s400,基于目标位置点指示机器人移动,并更新环境地图。
[0087]
进一步的,机器人向目标位置点移动,并在移动的过程中通过传感器扫描环境地图,实现更新环境地图的目的。
[0088]
示例性的,机器人可通过slam算法更新环境地图。
[0089]
本公开提供的机器人的移动控制方法通过全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关,进而使距离全局随机树的起点近的节点与其新生的节点之间的距离远,距离全局随机树的起点远的节点与其新生的节点之间的距离近。节点与新生的节点距离越远,生成该新生节点时跨越的距离范围越大,探索速度越快,因此,相当于,在生成的节点数目相同的情况下,近处的全局随机树向起点外扩张的速度大于远处的全局随机树向起点外扩张的速度,进而使全局随机树在距离起点近的地方探索速度快,使近处的区域仅被粗略探索,而在距离全局随机树起点远的地方生长速度慢,使远处的区域能够被细致探索,从而解决了上文中遍历不完全的问题以及探索效率低的问题。
[0090]
参阅图5所示,在一些可能的实施方式中,步骤s400确定目标位置点,并更新环境地图之后还包括步骤s500-s600。
[0091]
步骤s500,在环境地图中不存在未知区域的情况下,指示机器人终止生成随机树。
[0092]
步骤s600,在环境地图中存在未知区域的情况下,返回在预设区域内进行采样,生
成的至少一个采样点的步骤(即步骤s12),或返回在预设区域内生成随机树的步骤(即步骤s100)。
[0093]
参阅图6所示,在一些可能的实施方式中,在步骤s100生成随机树之前还包括步骤s10-s12,本公开提供的机器人的移动控制方法通过步骤s10-s12确定步骤s100-s500中的预设区域以及采样点。
[0094]
步骤s10,控制机器人在当前位置点通过传感器扫描周围环境,生成环境地图,环境地图包括未知区域、无障碍物区域以及障碍物区域(即步骤s200中提及的未知区域、无障碍物区域以及障碍物区域)。
[0095]
示例性的,该环境地图为栅格地图。机器人通过传感器探测机器人周围的环境,得到环境地图中的未知区域、障碍物区域以及无障碍物区域。机器人将栅格地图中位于未知区域的栅格值标记为
“‑
1”,将栅格地图中位于障碍物区域的栅格值标记为“1”,将栅格地图中位于无障碍物区域的栅格值标记为“0”。再通过图像处理模块根据栅格地图中各个栅格区域的栅格值生成rgb图像,例如,栅格值为“1”的栅格区域为黑色,栅格值为“0”的栅格区域为白色,栅格值为
“‑
1”的栅格区域为灰色。
[0096]
步骤s11,基于机器人的当前位置点以及初始位置点,确定预设区域(即步骤s100中提及的预设区域),预设区域包括全局采样区域以及局部采样区域,全局采样区域为以第一预设中心为中心的区域,局部采样区域为以第二预设中心为中心的区域,其中,全局采样区域覆盖所述环境地图。
[0097]
参阅图7所示,全局采样区域的中心,即第一预设中心,例如为机器人的初始位置点1。局部采样区域的中心,即第二中心,例如为机器人的当前位置点2。可选的,第一预设中心也可以为环境地图的中心,也可以为机器人的初始位置点1附近的点。第二预设中心可以为机器人当前位置点2附近的点。为保证环境地图中的区域均能够生成采样点,故该预设区域中的全局采样区域覆盖该环境地图,例如全局采样区域可完全覆盖环境地图,且面积大于环境地图。可选的,预设区域中的局部采样地图也可以覆盖该环境地图,或者可包含在环境地图之内。
[0098]
步骤s12,在预设区域内进行采样,生成的至少一个采样点。
[0099]
进一步的,通过samplefree函数在全局采样区域以及局部采样区域中生成至少一个采样点。
[0100]
可选的,samplefree函数每隔预设时间生成多个采样点。示例性的,samplefree函数可以在每次随机树生成新的节点后在预设区域内再一次生成采样点。
[0101]
可选的,在每次随机树生成新的节点后,清除预设区域内未位于随机树中的采样点。
[0102]
可选的,在每次机器人移动至下一位置点后,清除预设区域内未位于随机树中的采样点。
[0103]
本公开提供的机器人的移动控制方法通过全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关,进而使距离全局随机树的起点近的节点与其新生的节点之间的距离远,距离全局随机树的起点远的节点与其新生的节点之间的距离近。相当于,在生成的节点数目相同的情况下,近处的全局随机树向起点外扩张的速度大于远处的全局随机树向起点外扩张的速度,进而使全局随机树在距离起点近的地
方探索速度快,使近处的区域仅被粗略探索,而在距离全局随机树起点远的地方生长速度慢,使远处的区域能够被细致探索,从而解决了上文中遍历不完全的问题以及探索效率低的问题。
[0104]
以下结合一示例性应用场景,介绍本公开实施例所述方法的示例性执行过程。
[0105]
本公开提供的机器人的移动控制方法可用于构建居民卧室的环境地图。
[0106]
进一步的,如前文步骤s10中所述,生成栅格地图。即将机器人摆放于居民卧室中,并控制机器人在当前位置点通过传感器扫描周围环境,生成环境地图。其中,未扫描到的区域为未知区域(例如未知区域被障碍物阻挡导致无法扫描,或者超出传感器量程等等),障碍物所在的区域为障碍物区域,不存在障碍物、且不属于未知区域的区域为无障碍物区域。根据传感器的扫描结果生成栅格地图,该栅格地图的生成方法如前文步骤s10中所述。
[0107]
进一步的,如前文步骤s11中所述,确定预设区域。即通过确定居民卧室(环境地图)的范围,设置预设区域。其中,预设区域包括全局采样区域以及局部采样区域,全局采样区域的范围覆盖居民卧室的范围,局部采样区域的范围可由开发人员确定,通常局部采样区域的范围小于居民卧室的范围。
[0108]
进一步的,如前文步骤s12中所述,生成采样点。即通过samplefree函数在全局采样区域以及局部采样区域中生成至少一个采样点。
[0109]
进一步的,如前文中步骤s100所述,根据s11-s12生成的采样点,生成随机树,即生成全局随机树以及局部随机树。示例性的,如前文步骤s110所述,对于全局随机树,遍历全局随机树中的节点,通过nearest函数确定随机树中与采样点距离最小的节点,将该节点确定为生长节点,并通过第一ηgain函数获得全局随机树的预设长度,再如前文中步骤s120所述,通过stree函数在生长节点指向采样点的射线方向上,扩展预设长度,获得该生长节点生成的新节点以及生长线。
[0110]
对于局部随机树,遍历局部随机树中的节点,通过nearest函数确定随机树中与采样点距离最小的节点,将该节点确定为生长节点,通过第二ηgain函数获得局部随机树的预设长度。示例性的,在局部随机树中不存在未位于无障碍物区域的栅格点(即局部随机树中的节点以及局部随机树中的生长线与栅格地图的交点中的至少一种)的情况下,返回遍历随机树中的节点,通过nearest函数确定随机树中与采样点距离最小的节点的步骤(即步骤s110),重新生成新节点以及生长线,并重新判断是否存在未位于无障碍物区域的栅格点,在返回预设次数后,清空局部随机树中全部节点以及生长线,返回遍历随机树中的节点,通过nearest函数确定随机树中与采样点距离最小的节点的步骤(即步骤s110)。在局部随机树中存在未位于无障碍物区域的栅格点的情况下,清空局部随机树中全部节点以及生长线,返回遍历随机树中的节点,通过nearest函数确定随机树中与采样点距离最小的节点的步骤(即步骤s110)。
[0111]
进一步的,如前文中步骤s200所述,根据步骤s100生成的随机树(可包括全局随机树和局部随机树),生成边界点集合。示例性的,如前文步骤s210所述,通过gridcheck函数通过判断随机树中是否存在穿过未知区域的生长线,将随机树中未位于无障碍物区域的点标记为未知点。如前文步骤s220所述,根据第一预设筛选条件将未知点中的无效点(如居民卧室区域范围外的栅格点、位于障碍物区域内的栅格点中的一种或多种)以及重复点滤除,生成边界点集合。如前文步骤s230所述,根据第二预设筛选条件,将待筛选集合中与机器人
当前位置点的距离更小的点录入边界点集合中。
[0112]
进一步的,如前文步骤s300所述,根据s200生成的边界点,确定目标位置点。示例性的,如前文步骤s310所述,计算边界点集合中每一边界点的增益值,其具体计算公式同上文步骤s310中所示。如前文步骤s320所述,根据步骤s310输出的计算结果,确定最大增益值对应的边界点为目标边界点,目标位置点用以确定机器人的移动方向。
[0113]
进一步的,如前文步骤s400所述,根据步骤s300确定的目标位置点,指示机器人移动,并通过slam算法更新环境地图。
[0114]
进一步的,如前文步骤s500所述,在环境地图中不存在未知区域的情况下,指示机器人终止生成随机树。
[0115]
进一步的,如前文步骤s600所述,在环境地图中存在未知区域的情况下,返回步骤s12或步骤s100。
[0116]
本公开提供的机器人的移动控制方法通过全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关,进而使距离全局随机树的起点近的节点与其新生的节点之间的距离远,距离全局随机树的起点远的节点与其新生的节点之间的距离近。相当于,在生成的节点数目相同的情况下,近处的全局随机树向起点外扩张的速度大于远处的全局随机树向起点外扩张的速度,进而使全局随机树在距离起点近的地方探索速度快,使近处的区域仅被粗略探索,而在距离全局随机树起点远的地方生长速度慢,使远处的区域能够被细致探索,从而解决了上文中遍历不完全的问题以及探索效率低的问题。
[0117]
根据本公开的另一方面,本公开还提供一种机器人的移动控制系统,该移动控制系统包括:随机树生成模块、边界点集合生成模块、目标位置点确定模块、指示移动模块以及地图更新模块。
[0118]
进一步的,随机树生成模块被配置为基于预设随机树算法在预设区域中内生成随机树,随机树包括全局随机树,全局随机树为以预设位置为起点生成的随机树,且全局随机树中各节点距基于该节点生成的新节点的欧氏距离,与该节点距所述起点的欧氏距离呈负相关。
[0119]
进一步的,边界点集合生成模块被配置为基于预设筛选算法,筛选得到随机树中符合第二预设筛选条件的点,以生成边界点集合。
[0120]
进一步的,目标位置点确定模块被配置为基于边界点集合,确定目标位置点。
[0121]
进一步的,指示移动模块被配置为基于目标位置点指示机器人移动。
[0122]
进一步的,地图更新模块被配置为更新环境地图。
[0123]
本公开提供的机器人的移动控制系统通过全局随机树中各节点距基于该节点生成的新节点的距离,与该节点距所述起点的距离呈负相关的方案,使在距起点近的随机树的探索速度快,在距起点远的随机树的探索速度慢,从而解决了现有技术中随机树在距离起点远与距离起点近的地方探索速度相同,从而产生随机树遍历地图不完全,或探索效率低的问题。
[0124]
根据本公开的另一方面,本公开还提供一种机器人的移动控制装置,所述移动控制装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上文中任意一项所述的方法。
[0125]
根据本公开的另一方面,本公开还提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前文中任意一项所述的方法。
[0126]
图8是根据一示例性实施例示出的一种机器人的移动控制装置的框图。例如,装置可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0127]
参照图8,装置700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(i/o)的接口712,传感器组件714,以及通信组件716。
[0128]
处理组件702通常控制装置的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
[0129]
存储器704被配置为存储各种类型的数据以支持在装置的操作。这些数据的示例包括用于在装置上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0130]
电源组件706为装置的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为装置生成、管理和分配电力相关联的组件。
[0131]
多媒体组件708包括在所述装置和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触敏显示器,以传输来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当装置处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以传输外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0132]
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(mic),当装置处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为传输外部音频信号。所传输的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
[0133]
i/o接口为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0134]
传感器组件714包括一个或多个传感器,用于为装置提供各个方面的状态评估。例如,传感器组件714可以检测到装置的打开/关闭状态,组件的相对定位,例如所述组件为装
置的显示器和小键盘,传感器组件714还可以检测装置或装置一个组件的位置改变,用户与装置接触的存在或不存在,装置方位或加速/减速和装置的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0135]
通信组件716被配置为便于装置和其他设备之间有线或无线方式的通信。装置可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道传输来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0136]
在示例性实施例中,装置可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0137]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0138]
图9是根据一示例性实施例示出的一种机器人的移动控制装置800的框图。例如,装置可以被提供为一服务器。该装置包括处理组件822,其进一步包括一个或多个处理器,以及由存储器所代表的存储器资源,用于存储可由处理组件822的执行的指令,例如应用程序。存储器中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件822被配置为执行指令,以执行上述任一实施例所述的方法。
[0139]
装置还可以包括一个电源组件826被配置为执行装置的电源管理,一个有线或无线网络接口850被配置为将装置连接到网络,和一个输入输出(i/o)接口858。装置可以操作基于存储在存储器的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
[0140]
本技术的实施例提供了一种机器人的移动控制装置,所述机器人的移动控制装置包括:处理器以及用于存储处理器可执行指令的存储器。其中,所述处理器被配置为执行上述机器人的移动控制方法。
[0141]
本技术的实施例提供了一种非易失性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理组件执行以完成上述机器人的移动控制方法。例如,所述非易失性计算机可读存储介质可以是rom、可编程只读存储器(prom)、可抹除可编程只读存储器(eprom)、一次编程只读存储器(otprom)、电子抹除式可复写只读存储器(eeprom)等。
[0142]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0143]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

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

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

相关文献