CN116430854A - 探索方法、导航方法、装置、设备、机器人系统及介质 - Google Patents
探索方法、导航方法、装置、设备、机器人系统及介质 Download PDFInfo
- Publication number
- CN116430854A CN116430854A CN202310281706.9A CN202310281706A CN116430854A CN 116430854 A CN116430854 A CN 116430854A CN 202310281706 A CN202310281706 A CN 202310281706A CN 116430854 A CN116430854 A CN 116430854A
- Authority
- CN
- China
- Prior art keywords
- current
- path
- grid map
- node
- edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000012216 screening Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004888 barrier function Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000010845 search algorithm Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本申请实施例提供了一种探索方法、导航方法、装置、设备、机器人系统及介质,探索方法包括:通过获取目标场景中当前的已探索区域对应的当前的栅格地图;从当前的栅格地图的未知边中确定出当前的待前往边;控制机器人向当前的待前往边在目标场景中对应的位置处移动;基于机器人移动至当前的待前往边在目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到目标场景的完整栅格地图。如此,能够提高探索目标场景的效率,也就能够提高栅格地图的生成效率。
Description
技术领域
本申请涉及机器人技术领域,特别是涉及一种探索方法、导航方法、装置、设备、机器人系统及介质。
背景技术
随着机器人技术的快速发展,机器人被广泛应用于各个领域。当需要工作时,机器人往往可以探索未知的场景以获得该场景的环境信息,并构建场景的栅格地图。在探索完成得到整个场景的栅格地图后,机器人可以基于整个场景的栅格地图进行导航,实现机器人在该场景中的自主移动。在栅格地图中,整个场景分为若干个大小相同的栅格,每个栅格点的状态可以为被障碍物占据,空白或未知。
由于待探索的场景往往较复杂,如何规划机器人的探索路径,以提高栅格地图的生成效率,成为亟待解决的问题。
发明内容
本申请实施例的目的在于提供一种探索方法、导航方法、装置、设备、机器人系统及介质,以提高探索目标场景的效率,提高栅格地图的生成效率栅格地图的生成效率。具体技术方案如下:
在本申请实施的第一方面,提供了一种探索方法,所述方法包括:
获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图;
从当前的栅格地图的未知边中确定出当前的待前往边;其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的;
控制所述机器人向当前的待前往边在所述目标场景中对应的位置处移动;
基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行所述从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到所述目标场景的完整栅格地图。
可选的,在所述从当前的栅格地图的未知边中确定出当前的待前往边之前,所述方法还包括:获取当前的栅格地图对应的拓扑图,作为当前的拓扑图;其中,当前的拓扑图包含多个节点;所述多个节点与对当前的栅格地图进行划分得到的多个子区域、相邻子区域共同的可通过边以及当前的栅格地图的未知边一一对应;相邻子区域共同的可通过边表示相邻子区域的交界处中允许通过的部分;在当前的拓扑图中,表示边的节点与表示该边所属的子区域的节点相连;
所述从当前的栅格地图的未知边中确定出当前的待前往边,包括:确定所述机器人在当前的栅格地图中的位置所属子区域对应的节点,作为当前的第一节点,以及确定当前的栅格地图的未知边对应的节点,作为当前的各第二节点;针对当前的每一第二节点,计算在当前的拓扑图中,当前的该第二节点与当前的第一节点之间包含的节点最少的节点路径,作为当前的该第二节点对应的备选节点路径;从当前的各第二节点中确定当前的第三节点;其中,当前的第三节点对应的备选节点路径包含的节点最少;基于当前的第三节点表示的未知边,确定当前的待前往边;
在所述基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新之后,所述方法还包括:基于更新后的栅格地图,对当前的拓扑图进行更新。
可选的,所述基于当前的第三节点表示的未知边,确定当前的待前往边,包括:若当前的第三节点为多个,则针对当前的每一第三节点,基于所述机器人在当前的栅格地图中的位置与当前的该第三节点表示的未知边之间的栅格路径的指定计算参数,计算当前的该第三节点对应的栅格路径的路径代价;其中,所述指定计算参数包括栅格路径的长度;从当前的各第三节点各自表示的未知边中,确定当前的待前往边;其中,表示当前的待前往边的第三节点对应的栅格路径的路径代价最小。
可选的,所述基于更新后的栅格地图,对当前的拓扑图进行更新,包括:针对本次探索得到的每一子区域,若该子区域包含的未知边的数目不大于1,则确定在当前的拓扑图中该子区域与相邻的指定子区域对应同一个节点,并从当前的拓扑图中删除用于表示该子区域与相邻的指定子区域共同的可通过边的节点;若该子区域包含的未知边的数目大于1,则在当前的拓扑图中添加表示该子区域的节点,以及表示该子区域的未知边的节点。
可选的,针对所述指定子区域在更新前的栅格地图中的任一未知边,该未知边在更新后的栅格地图中的属性未发生变化;所述方法还包括:若该子区域包含的未知边的数目不大于1,且在更新前的栅格地图中不存在所述指定子区域,则在当前的拓扑图中添加表示该子区域的节点。
可选的,所述方法还包括:若该子区域包含一个未知边,则在当前的拓扑图中添加表示该子区域的未知边的节点。
可选的,当前的栅格地图包含的多个子区域为通过以下步骤划分得到的:按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点;针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线;并返回执行所述按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点的步骤;其中,每一匹配端点与当前的待处理端点之间的连线位于当前的栅格地图的内部;按照确定出的分界线对当前的栅格地图进行划分,得到多个子区域。
可选的,所述预设筛选条件包括以下至少一项:该匹配端点与当前的待处理端点之间的连线与当前已确定出的分界线不相交;该匹配端点所属的分界线的数目小于预设阈值;当前的待处理端点所属的分界线的数目小于所述预设阈值;当前的待处理端点与该匹配端点之间的连线的长度小于预设长度。
可选的,所述针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线,包括:针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,且该匹配端点为满足所述预设筛选条件的端点中,与当前的待处理端点之间的连线的长度最短的端点,则确定当前的待处理端点与该匹配端点之间的连线作为分界线。
在本申请实施的第二方面,还提供了一种导航方法,所述方法包括:
确定机器人在目标场景的完整栅格地图中的位置,作为第一位置,以及导航的终点在所述完整栅格地图中的位置,作为第二位置;其中,所述完整栅格地图为上述任一所述的探索方法得到的;
确定所述第一位置与所述第二位置之间的目标栅格路径;其中,所述目标栅格路径为:所述完整栅格地图中连接所述第一位置和所述第二位置的路径代价最小的栅格路径;
按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
可选的,在所述确定所述第一位置与所述第二位置之间的栅格路径之前,所述方法还包括:获取所述目标场景对应的包含路径代价的拓扑图,作为第一代价拓扑图;其中,所述第一代价拓扑图包含多个节点,所述多个节点与对所述完整栅格地图进行划分得到的多个区域中的可通过边一一对应;一个区域的可通过边表示该区域与相邻区域的交界处中允许通过的部分;属于同一个区域的每两个可通过边对应的节点相连;在所述第一代价拓扑图中,两个节点之间的连线表示:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价;确定所述第一位置与所属的区域中的第一可通过边之间路径代价最小的第一栅格路径和对应的第一路径代价,以及所述第二位置与所属的区域中的第二可通过边之间路径代价最小的第二栅格路径和对应的第二路径代价;在所述第一代价拓扑图中添加表示所述第一位置和所述第二位置的节点,得到第二代价拓扑图;其中,在所述第二代价拓扑图中,表示所述第一位置的第一节点与表示所述第一可通过边的节点之间的连线表示第一栅格路径和对应的第一路径代价,表示所述第二位置的第二节点与表示所述第二可通过边的节点之间的连线表示第二栅格路径和对应的第二路径代价;
所述确定所述第一位置与所述第二位置之间的目标栅格路径,包括:基于图搜索算法,确定连接所述第一节点与所述第二节点,且包含的连线所表示的路径代价最小的节点路径,作为目标节点路径;针对所述目标节点路径包含的每两个相邻的节点,获取该两个相邻的节点之间的连线表示的栅格路径,得到目标栅格路径。
可选的,所述第一代价拓扑图的生成过程包括以下步骤:基于所述完整栅格地图,生成所述目标场景对应的多个层级的结构拓扑图;其中,每一层级的结构拓扑图包含多个节点,所述多个节点与该层级的结构拓扑图所表示的多个区域以及多个区域中的可通过边一一对应;每一层级的结构拓扑图中节点表示的多个区域为:对上一层级的结构拓扑图中节点表示的多个区域中的一个区域进行划分得到的;最高层级的第一结构拓扑图表示对所述完整栅格地图进行划分得到的多个区域之间的拓扑关系;针对最低层级的第二结构拓扑图中节点表示的每一区域,基于该区域的栅格地图,确定该区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;基于多个层级的结构拓扑图,对确定出的各路径代价进行叠加计算,直至确定出所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;基于所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,生成所述第一代价拓扑图。
可选的,针对所述第一代价拓扑图中存在连接关系的每两个节点,该两个节点之间的连线表示的栅格路径包含:该栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序;
所述按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动,包括:从指定存储位置获取指定区域的栅格地图;其中,所述指定区域为:在所述第二结构拓扑图中的节点所表示的区域中所述目标栅格路径所经过的区域;基于获取到的栅格地图,按照所述目标栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
可选的,针对划分得到的每一区域,该区域内部的任意两个位置之间连通,且该两个位置之间的第一栅格路径的路径代价小于第二栅格路径的路径代价;所述第一栅格路径表示位于该区域内部的栅格路径,所述第二栅格路径表示位于该区域外部的栅格路径。
在本申请实施的第三方面,还提供了一种探索装置,所述装置包括:
栅格地图获取模块,用于获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图;
待前往边确定模块,用于从当前的栅格地图的未知边中确定出当前的待前往边;其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的;
移动控制模块,用于控制所述机器人向当前的待前往边在所述目标场景中对应的位置处移动;
栅格地图更新模块,用于基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行所述从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到所述目标场景的完整栅格地图。
可选的,所述装置还包括:拓扑图获取模块,用于在所述从当前的栅格地图的未知边中确定出当前的待前往边之前,获取当前的栅格地图对应的拓扑图,作为当前的拓扑图;其中,当前的拓扑图包含多个节点;所述多个节点与对当前的栅格地图进行划分得到的多个子区域、相邻子区域共同的可通过边以及当前的栅格地图的未知边一一对应;相邻子区域共同的可通过边表示相邻子区域的交界处中允许通过的部分;在当前的拓扑图中,表示边的节点与表示该边所属的子区域的节点相连;
所述待前往边确定模块,包括:
第一确定子模块,用于确定所述机器人在当前的栅格地图中的位置所属子区域对应的节点,作为当前的第一节点,以及确定当前的栅格地图的未知边对应的节点,作为当前的各第二节点;
节点路径计算子模块,用于针对当前的每一第二节点,计算在当前的拓扑图中,当前的该第二节点与当前的第一节点之间包含的节点最少的节点路径,作为当前的该第二节点对应的备选节点路径;
第二确定子模块,用于从当前的各第二节点中确定当前的第三节点;其中,当前的第三节点对应的备选节点路径包含的节点最少;
第三确定子模块,用于基于当前的第三节点表示的未知边,确定当前的待前往边;
所述装置还包括:拓扑图更新模块,用于在所述基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新之后,基于更新后的栅格地图,对当前的拓扑图进行更新。
可选的,所述第三确定子模块,具体用于若当前的第三节点为多个,则针对当前的每一第三节点,基于所述机器人在当前的栅格地图中的位置与当前的该第三节点表示的未知边之间的栅格路径的指定计算参数,计算当前的该第三节点对应的栅格路径的路径代价;其中,所述指定计算参数包括栅格路径的长度;从当前的各第三节点各自表示的未知边中,确定当前的待前往边;其中,表示当前的待前往边的第三节点对应的栅格路径的路径代价最小。
可选的,所述拓扑图更新模块,具体用于针对本次探索得到的每一子区域,若该子区域包含的未知边的数目不大于1,则确定在当前的拓扑图中该子区域与相邻的指定子区域对应同一个节点,并从当前的拓扑图中删除用于表示该子区域与相邻的指定子区域共同的可通过边的节点;若该子区域包含的未知边的数目大于1,则在当前的拓扑图中添加表示该子区域的节点,以及表示该子区域的未知边的节点。
可选的,针对所述指定子区域在更新前的栅格地图中的任一未知边,该未知边在更新后的栅格地图中的属性未发生变化;
所述拓扑图更新模块,具体用于若该子区域包含的未知边的数目不大于1,且在更新前的栅格地图中不存在所述指定子区域,则在当前的拓扑图中添加表示该子区域的节点。
可选的,所述拓扑图更新模块,具体用于若该子区域包含一个未知边,则在当前的拓扑图中添加表示该子区域的未知边的节点。
可选的,所述装置还包括:
端点确定模块,用于按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点;
分界线确定模块,用于针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线;并返回执行所述按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点的步骤;其中,每一匹配端点与当前的待处理端点之间的连线位于当前的栅格地图的内部;
划分模块,用于按照确定出的分界线对当前的栅格地图进行划分,得到多个子区域。
可选的,所述预设筛选条件包括以下至少一项:该匹配端点与当前的待处理端点之间的连线与当前已确定出的分界线不相交;该匹配端点所属的分界线的数目小于预设阈值;当前的待处理端点所属的分界线的数目小于所述预设阈值;当前的待处理端点与该匹配端点之间的连线的长度小于预设长度。
可选的,所述分界线确定模块,具体用于针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,且该匹配端点为满足所述预设筛选条件的端点中,与当前的待处理端点之间的连线的长度最短的端点,则确定当前的待处理端点与该匹配端点之间的连线作为分界线。
在本申请实施的第四方面,还提供了一种导航装置,所述装置包括:
位置确定模块,用于确定机器人在目标场景的完整栅格地图中的位置,作为第一位置,以及导航的终点在所述完整栅格地图中的位置,作为第二位置;其中,所述完整栅格地图为上述任一所述的探索方法得到的;
栅格路径确定模块,用于确定所述第一位置与所述第二位置之间的目标栅格路径;其中,所述目标栅格路径为:所述完整栅格地图中连接所述第一位置和所述第二位置的路径代价最小的栅格路径;
控制模块,用于按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
可选的,所述装置还包括:
第一代价拓扑图获取模块,用于在所述确定所述第一位置与所述第二位置之间的栅格路径之前,获取所述目标场景对应的包含路径代价的拓扑图,作为第一代价拓扑图;其中,所述第一代价拓扑图包含多个节点,所述多个节点与对所述完整栅格地图进行划分得到的多个区域中的可通过边一一对应;一个区域的可通过边表示该区域与相邻区域的交界处中允许通过的部分;属于同一个区域的每两个可通过边对应的节点相连;在所述第一代价拓扑图中,两个节点之间的连线表示:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价;
路径代价确定模块,用于确定所述第一位置与所属的区域中的第一可通过边之间路径代价最小的第一栅格路径和对应的第一路径代价,以及所述第二位置与所属的区域中的第二可通过边之间路径代价最小的第二栅格路径和对应的第二路径代价;
第二代价拓扑图获取模块,用于在所述第一代价拓扑图中添加表示所述第一位置和所述第二位置的节点,得到第二代价拓扑图;其中,在所述第二代价拓扑图中,表示所述第一位置的第一节点与表示所述第一可通过边的节点之间的连线表示第一栅格路径和对应的第一路径代价,表示所述第二位置的第二节点与表示所述第二可通过边的节点之间的连线表示第二栅格路径和对应的第二路径代价;
所述栅格路径确定模块,具体用于基于图搜索算法,确定连接所述第一节点与所述第二节点,且包含的连线所表示的路径代价最小的节点路径,作为目标节点路径;针对所述目标节点路径包含的每两个相邻的节点,获取该两个相邻的节点之间的连线表示的栅格路径,得到目标栅格路径。
可选的,所述装置还包括:代价拓扑图生成模块,用于基于所述完整栅格地图,生成所述目标场景对应的多个层级的结构拓扑图;其中,每一层级的结构拓扑图包含多个节点,所述多个节点与该层级的结构拓扑图所表示的多个区域以及多个区域中的可通过边一一对应;每一层级的结构拓扑图中节点表示的多个区域为:对上一层级的结构拓扑图中节点表示的多个区域中的一个区域进行划分得到的;最高层级的第一结构拓扑图表示对所述完整栅格地图进行划分得到的多个区域之间的拓扑关系;针对最低层级的第二结构拓扑图中节点表示的每一区域,基于该区域的栅格地图,确定该区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;基于多个层级的结构拓扑图,对确定出的各路径代价进行叠加计算,直至确定出所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;基于所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,生成所述第一代价拓扑图。
可选的,针对所述第一代价拓扑图中存在连接关系的每两个节点,该两个节点之间的连线表示的栅格路径包含:该栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序;
所述控制模块,具体用于从指定存储位置获取指定区域的栅格地图;其中,所述指定区域为:在所述第二结构拓扑图中的节点所表示的区域中所述目标栅格路径所经过的区域;基于获取到的栅格地图,按照所述目标栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
可选的,针对划分得到的每一区域,该区域内部的任意两个位置之间连通,且该两个位置之间的第一栅格路径的路径代价小于第二栅格路径的路径代价;所述第一栅格路径表示位于该区域内部的栅格路径,所述第二栅格路径表示位于该区域外部的栅格路径。
在本申请实施的又一方面,还提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的探索方法或导航方法。
在本申请实施的又一方面,还提供了一种机器人系统,包括传感器和处理器;
所述传感器,用于对目标场景进行探索;
所述处理器,用于获取所述传感器的探索结果,并执行上述任一所述的探索方法步骤或导航方法步骤。
在本申请实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的探索方法或导航方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的探索方法或导航方法。
本申请实施例提供的一种探索方法,通过获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图;从当前的栅格地图的未知边中确定出当前的待前往边;其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的;控制机器人向当前的待前往边在目标场景中对应的位置处移动;基于机器人移动至当前的待前往边在目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到目标场景的完整栅格地图。
基于上述处理,当机器人在探索目标场景时,从当前的已探索区域对应的栅格地图(即当前的栅格地图)的未知边中,确定当前的待前往边(即当前的探索方向)。由于未知边为当前的栅格地图中当前已探索的不存在障碍的区域与当前的未探索区域的交界处,因此,基于此种方式,可以控制机器人向当前的未探索区域移动,也就能够实现机器人的探索路径规划。另外,基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定待前往边,也就可以确定距离机器人的位置较近的未知边作为当前的待前往边,进而,也就能够减少前往待前往边所消耗的时间,进而,提高探索目标场景的效率,也就能够提高栅格地图的生成效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种探索方法的流程图;
图2为本申请实施例提供的一种已探索区域的栅格地图;
图3为本申请实施例提供的一种包含多个子区域的栅格地图;
图4A为本申请实施例提供的一种机器人在栅格地图中的位置的示意图;
图4B为本申请实施例提供的一种对图4A中的栅格地图进行划分得到的包含多个子区域的栅格地图;
图4C为本申请实施例提供的图4B对应的拓扑图;
图5A为本申请实施例提供的第一种机器人移动至边h在目标场景中对应的位置处时已探索区域对应的栅格地图;
图5B为本申请实施例提供的基于图5A对图4C进行更新得到的拓扑图;
图6A为本申请实施例提供的第二种机器人移动至边h在目标场景中对应的位置处时已探索区域对应的栅格地图;
图6B为本申请实施例提供的基于图6A对图4C进行更新得到的拓扑图;
图7A为本申请实施例提供的第三种机器人移动至边h在目标场景中对应的位置处时已探索区域对应的栅格地图;
图7B为本申请实施例提供的基于图7A对图4C进行更新得到的拓扑图;
图8为本申请实施例提供的导航方法的第一种流程图;
图9为本申请实施例提供的导航方法的第二种流程图;
图10为本申请实施例提供的一种多个层级的结构拓扑图的总体结构示意图;
图11A为本申请实施例提供的一种完整栅格地图;
图11B为本申请实施例提供的一种图11A对应的第一结构拓扑图;
图11C为本申请实施例提供的一种对图11B中节点E表示的区域进行划分得到的区域E的栅格地图;
图11D为本申请实施例提供的一种图11C对应的结构拓扑图;
图11E为本申请实施例提供的图11D中节点E3表示的区域E3的栅格地图;
图12为本申请实施例提供的一种第一代价拓扑图的示意图;
图13为本申请实施例提供的一种第二代价拓扑图的示意图;
图14为本申请实施例提供的一种探索装置的结构示意图;
图15为本申请实施例提供的一种导航装置的结构示意图;
图16为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种探索方法,能够实现机器人的探索路径的规划,且能够提高栅格地图的生成效率。本申请实施例提供的探索方法可以应用于电子设备,该电子设备可以为机器人,或者,也可以为其他设备,且该设备能够与机器人进行数据通信。
参见图1,图1为本申请实施例提供的一种探索方法的流程图,该方法包括以下步骤:
步骤S101:获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图。
步骤S102:从当前的栅格地图的未知边中确定出当前的待前往边。
其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的。
步骤S103:控制机器人向当前的待前往边在目标场景中对应的位置处移动。
步骤S104:基于机器人移动至当前的待前往边在目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到目标场景的完整栅格地图。
基于上述处理,当机器人在探索目标场景时,从当前的已探索区域对应的栅格地图(即当前的栅格地图)的未知边中,确定当前的待前往边(即当前的探索方向)。由于未知边为当前的栅格地图中当前已探索的不存在障碍的区域与当前的未探索区域的交界处,因此,基于此种方式,可以控制机器人向当前的未探索区域移动,也就能够实现机器人的探索路径规划。另外,基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定待前往边,也就可以确定距离机器人的位置较近的未知边作为当前的待前往边,进而,也就能够减少前往待前往边所消耗的时间,进而,提高探索目标场景的效率,也就能够提高栅格地图的生成效率。
针对步骤S101,目标场景为机器人当前待探索的场景。例如,当前待探索的场景可以是办公室或者厂房。当前的已探索区域可以为机器人在对目标场景进行探索的过程中,任一时刻已经探索的区域;或者,也可以为机器人在进入到目标场景后,且未移动时已探索的区域。例如,机器人可以基于传感器对目标场景进行探索。传感器可以对目标场景中机器人当前的探索方向的区域进行探索,可以确定当前的探索方向的区域中的障碍的分布情况。例如,传感器可以为雷达传感器。
针对步骤S102,栅格地图中包含多个栅格点,每个栅格点均有对应的属性,栅格点对应的属性表示该栅格点为被障碍占据、未被障碍占据或者未知状态。栅格地图中的每一栅格点均与栅格地图对应的目标场景中的实际位置相对应。相应的,每一栅格点的状态也就可以表示该栅格点在目标场景中对应的实际位置的状态。
在栅格地图中记录有已探索区域对应的栅格点的状态。例如,基于记录的障碍以及空白区域,也就可以确定出已探索的不存在障碍的区域与未探索区域的交界处(即未知边)。如图2所示,图2为本申请实施例提供的一种已探索区域的栅格地图。图2中的黑色边包含处于被障碍占据的各栅格点,表示已探索区域中的被障碍占据的部分。已探索区域内的空白区域包含处于未被障碍占据的各栅格点,表示未被障碍占据的区域。灰色边1和灰色边2均为未知边,包含已探索的不存在障碍的区域与未探索区域的交界处的处于未知状态的各栅格点。针对灰色边1,其左下方的区域为未探索区域;针对灰色边2,其右上方的区域为未探索区域。
若当前的栅格地图中只存在一个未知边,则确定该未知边为当前的待前往边。
若当前的栅格地图中存在多个未知边,针对每一未知边,可以确定机器人在当前的栅格地图中的位置与该未知边之间的栅格路径,作为该未知边对应的栅格路径。栅格路径为:在栅格地图中,两个栅格点之间的路径。例如,两个栅格点之间的栅格路径中可以记录有该两个栅格点之间的路径经过的栅格点。各未知边对应的栅格路径可以基于预设路径规划算法确定,例如,预设路径规划算法可以是Dijkstra(迪杰斯特拉)算法、BFS(Breadth-First-Search,广度优先算法)或者DFS(Depth-First-Search,深度优先算法)。
在确定出各未知边对应的栅格路径后,可以基于各未知边对应的栅格路径的长度,从各未知边中确定当前的待前往边。例如,可以确定对应的栅格路径的长度最短的未知边作为当前的待前往边。
或者,也可以确定出对应的栅格路径的长度较短的多个未知边,后续,结合其他指定计算参数,从确定出的多个未知边中选择一个未知边作为当前的待前往边。例如,指定计算参数可以包括:栅格路径的空旷度和/或平滑度。栅格路径的空旷度用于表示栅格路径周围的障碍情况。栅格路径与障碍的距离越远,栅格路径的空旷度越高,栅格路径的路径代价越小。栅格路径的平滑度表示栅格路径的曲率变化情况。栅格路径的曲率变化越小,栅格路径的平滑度越高,栅格路径的路径代价越小。
针对步骤S103和步骤S104,当确定出当前的待前往边后,也就可以控制机器人向当前的待前往边在目标场景中对应的位置处移动。当机器人到达待前往边在目标场景中对应的位置处时,也就可以对待前往边在目标场景中对应的位置处附近的未探索区域进行探索。进而,也就可以基于探索得到的探索结果对栅格地图进行更新,得到更新后的栅格地图。
可以理解的是,由于在移动至待前往边后,机器人的位置发生了变化,且由于探索了新的区域,探索得到的新的区域中可能存在新的未知边,因此,栅格地图中的未知边也发生了变化,因此,可以基于更新后的栅格地图中的未知边,重新确定待前往边,即,再次执行从当前的栅格地图的未知边中确定出当前的待前往边的步骤,以实现后续的探索。本次确定待前往边时使用的栅格地图为基于上一次探索的探索结果更新后的栅格地图。当得到目标场景的完整栅格地图时,结束探索。例如,可以在当前的栅格地图中不存在未知边时,结束探索。
在一个实施例中,在从当前的栅格地图的未知边中确定出当前的待前往边之前,该方法还包括:
步骤1:获取当前的栅格地图对应的拓扑图,作为当前的拓扑图。
其中,当前的拓扑图包含多个节点;多个节点与对当前的栅格地图进行划分得到的多个子区域、相邻子区域共同的可通过边以及当前的栅格地图的未知边一一对应;相邻子区域共同的可通过边表示相邻子区域的交界处中允许通过的部分;在当前的拓扑图中,表示边的节点与表示该边所属的子区域的节点相连。
从当前的栅格地图的未知边中确定出当前的待前往边(S102),包括:
步骤2:确定机器人在当前的栅格地图中的位置所属子区域对应的节点,作为当前的第一节点,以及确定当前的栅格地图的未知边对应的节点,作为当前的各第二节点。
步骤3:针对当前的每一第二节点,计算在当前的拓扑图中,当前的该第二节点与当前的第一节点之间包含的节点最少的节点路径,作为当前的该第二节点对应的备选节点路径。
步骤4:从当前的各第二节点中确定当前的第三节点。
其中,当前的第三节点对应的备选节点路径包含的节点最少。
步骤5:基于当前的第三节点表示的未知边,确定当前的待前往边。
在基于机器人移动至当前的待前往边在目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新之后,该方法还包括:
步骤6:基于更新后的栅格地图,对当前的拓扑图进行更新。
在本申请实施例中,由于该拓扑图能够体现栅格地图中的各子区域、相邻子区域共同的可通过边以及栅格地图的未知边之间的结构关系,因此,本申请中也可以称为结构拓扑图。若两个子区域相邻,则该相邻的两个子区域的交界处中允许通过的部分也就是该两个子区域共同的可通过边。
一种实现方式中,当前的栅格地图包含的多个子区域为通过以下步骤划分得到的:
步骤一:按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点。
步骤二:针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线;并返回执行步骤一,直至将当前的栅格地图的未知边的最后一个端点确定为当前的待处理端点。
其中,每一匹配端点与当前的待处理端点之间的连线位于当前的栅格地图的内部。
步骤三:按照确定出的分界线对当前的栅格地图进行划分,得到多个子区域。
在本申请实施例中,可以按照预设顺序依次对当前的栅格地图的未知边的各个端点进行处理。若其他端点中存在与当前的待处理端点之间满足预设条件的匹配端点,则确定当前的待处理端点与该匹配端点之间的连线作为分界线。对当前的栅格地图的未知边的每一端点均进行处理后,根据确定出的分界线对当前的栅格地图进行划分,得到多个子区域。如图3所示,图3为本申请实施例提供的一种包含多个子区域的栅格地图。图中黑色点1-14表示当前的栅格地图的未知边的各个端点,虚线表示确定出的分界线。
由于分界线用于对当前的栅格地图进行划分,因此,分界线位于当前的栅格地图的内部。
在一个实施例中,预设筛选条件包括以下至少一项:
条件1:该匹配端点与当前的待处理端点之间的连线与当前已确定出的分界线不相交。
条件2:该匹配端点所属的分界线的数目小于预设阈值;
条件3:当前的待处理端点所属的分界线的数目小于预设阈值;
条件4:当前的待处理端点与该匹配端点之间的连线的长度小于预设长度。
在本申请实施例中,条件1可以避免出现分界线相交的情况,也就能够避免出现由于分界线相交导致一个子区域存在多个相邻子区域的情况,即,能够避免一个子区域与其相邻子区域共同的可通过边的数目过多。基于此,按照确定出的分界线对当前的栅格地图进行划分,得到多个子区域,也就能够在保证子区域精细度的同时,避免一个子区域与其相邻子区域共同的可通过边的数目过多,也能够避免子区域过多的情况。相应的,也就能够在保证拓扑图精细度的同时,避免拓扑图中表示相邻子区域共同的可通过边的节点和表示子区域的节点数目过多,降低拓扑图的复杂度,也就能够提高基于拓扑图确定待前往边的效率。
条件2和条件3分别对该匹配端点和当前的待处理端点所属的分界线的数目进行限制。例如,预设阈值可以为2或者3。基于此,可以减少分界线的数量,进而,减少划分得到的子区域的数量,即,降低子区域的复杂度,也就能够进一步降低拓扑图的复杂度。
条件4对当前的待处理端点与该匹配端点之间的连线的长度进行限制。当前的待处理端点与该匹配端点之间的连线的长度不大于预设长度,即,当前的待处理端点与该匹配端点在当前的栅格地图对应的目标场景中的实际位置之间的直线距离不超过预设距离。例如,预设长度所表征的预设距离可以是15米或者20米。由于在计算路径代价时,往往以分界线的中点表示分界线,若分界线的长度较长,则根据分界线的中点计算得到的路径代价与根据分界线端点计算得到的路径代价相差较大。此时,根据分界线的中点计算得到的路径代价准确性不高,即,根据分界线的中点计算得到的路径代价并不能有效地体现实际的路径代价。因此,本申请实施例中,可以对当前的待处理端点与该匹配端点之间的连线的长度进行限制,即,对分界线的长度进行限制,也就能够避免出现根据分界线的中点计算得到的路径代价与根据分界线端点计算得到的路径代价相差较大的情况,也就能够提高计算得到的路径代价的准确性。
在一个实施例中,针对上述步骤二,满足预设筛选条件的匹配端点可能为多个,相应的,可以从该多个匹配端点中随机选择一个匹配端点,并确定当前的待处理端点与该匹配端点之间的连线作为分界线。
在一个实施例中,上述步骤二,包括:
针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,且该匹配端点为满足所述预设筛选条件的端点中,与当前的待处理端点之间的连线的长度最短的端点,则确定当前的待处理端点与该匹配端点之间的连线作为分界线。
在本申请实施例中,若满足预设筛选条件的匹配端点为多个,可以从该多个匹配端点中,确定与当前的待处理端点之间的连线的长度最短的匹配端点,并确定当前的待处理端点与该匹配端点之间的连线作为分界线。即,在满足预设筛选条件的匹配端点中,当前的待处理端点与该匹配端点在当前的栅格地图对应的目标场景中的实际位置之间的直线距离最短。基于此,可以尽可能地使确定出的分界线的长度较短,也就能够进一步提高计算得到的路径代价的准确性。
在对当前的栅格地图进行划分得到多个子区域,并得到对应的拓扑图后,可以根据机器人在栅格地图中的位置以及栅格地图中的各子区域的位置,确定机器人在栅格地图中的位置所属的子区域,作为起始子区域。也就可以确定在拓扑图中,机器人在起始子区域对应的节点(即当前的第一节点)。另外,根据拓扑图,也可以确定栅格地图中未知边对应的节点(即各第二节点)。在拓扑图中,针对每一第二节点,可以确定一条从第一节点到该第二节点,且经过的节点最少的路径(即节点路径),该条节点路径可以作为当前的该第二节点对应的备选节点路径。在拓扑图中,节点路径表示:两个节点之间的路径。两个节点之间的节点路径可以记录有该两个节点之间的路径经过的节点以及经过各节点的顺序。比较当前的各第二节点对应的备选节点路径包含的节点的数目,确定对应的备选节点路径包含的节点最少的第二节点,即第三节点。
进而,可以基于当前的第三节点表示的未知边,确定当前的待前往边。例如,若当前的第三节点只有一个,则将当前的第三节点表示的未知边确定为当前的待前往边。
在一个实施例中,基于当前的第三节点表示的未知边,确定当前的待前往边(步骤5),包括:
步骤51:若当前的第三节点为多个,则针对当前的每一第三节点,基于机器人在当前的栅格地图中的位置与当前的该第三节点表示的未知边之间的栅格路径的指定计算参数,计算当前的该第三节点对应的栅格路径的路径代价。
其中,指定计算参数包括栅格路径的长度。
步骤52:从当前的各第三节点各自表示的未知边中,确定当前的待前往边。
其中,表示当前的待前往边的第三节点对应的栅格路径的路径代价最小。
在本申请实施例中,若当前的第三节点为多个,针对当前的每一第三节点,可以基于当前的栅格地图,确定机器人在当前的栅格地图中的位置与当前的该第三节点表示的未知边之间的栅格路径,作为当前的该第三节点对应的栅格路径。
进而,针对当前的每一第三节点,可以根据其对应的栅格路径的长度,计算当前的该第三节点对应的栅格路径的路径代价。例如,在栅格地图中,可以计算栅格路径的起点和终点之间的曼哈顿距离、对角线距离或者欧氏距离,作为栅格路径的长度。
基于此,确定对应的栅格路径的路径代价最小的当前的第三节点表示的未知边,作为当前的待前往边,即,可以确定对应的栅格路径的长度最短的当前的第三节点表示的未知边,作为当前的待前往边。由于当前的第三节点对应的栅格路径的长度越短,机器人移动至当前的第三节点表示的未知边所消耗的时间也越短,也就能够减少机器人在探索过程中移动消耗的时间,提高探索目标场景的效率,也就能够提高栅格地图的生成效率。
在一个实施例中,指定计算参数还包括:栅格路径的空旷度和/或平滑度。
在本申请实施例中,也可以基于栅格路径的长度和空旷度,计算栅格路径的路径代价;或者,也可以基于栅格路径的长度和平滑度,计算栅格路径的路径代价;或者,还可以基于栅格路径的长度、空旷度和平滑度,计算栅格路径的路径代价。
栅格路径的空旷度用于表示栅格路径周围的障碍情况。栅格路径与障碍的距离越远,栅格路径的空旷度越高,栅格路径的路径代价越小。若栅格路径与障碍的距离较近,机器人在移动过程中可能存在与障碍碰撞的风险。在计算栅格路径的路径代价时,结合栅格路径的空旷度,确定路径代价最小的栅格路径也就可以确定出空旷度较高的栅格路径,能够降低机器人在移动过程中与障碍碰撞的风险。
栅格路径的平滑度表示栅格路径的曲率变化情况。栅格路径的曲率变化越小,栅格路径的平滑度越高,栅格路径的路径代价越小。若栅格路径的曲率变化较大,机器人在移动过程中的急转弯次数较多,增加了机器人的转向功能模块的损耗。在计算栅格路径的路径代价时,结合栅格路径的平滑度,确定路径代价最小的栅格路径也就可以确定出平滑度较高的栅格路径,能够降低机器人在移动过程中转向功能模块的损耗。
基于上述处理,可以避免栅格路径中出现较多急转弯的情况,减少机器人按照栅格路径移动时与障碍物碰撞的风险,也就能够保证栅格路径更适合机器人移动,降低机器人在移动过程中的损耗。
在基于机器人移动至当前的待前往边在目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新之后,可以根据更新后的栅格地图,对当前的拓扑图进行更新。后续,可以基于更新后的拓扑图,再次确定当前的第三节点,以确定当前的待前往边。
相关技术中,基于完整栅格地图确定探索方向时,需要计算连通域边界,计算量较大,且栅格地图中对于已探索区域的连通关系不够直观,导致探索效率较低。而本申请实施例提供的方法中,由于拓扑图能够直观反应已探索区域的连通关系,相应的,无需计算连通域边界,也就能够提高探索效率,提高栅格地图的生成效率。
图4A为本申请实施例提供的一种机器人在栅格地图中的位置的示意图。图4A中的圆点表示机器人在当前的栅格地图中的位置。图4B为本申请实施例提供的一种对图4A中的栅格地图进行划分得到的包含多个子区域的栅格地图。如图4B所示,A-E表示对图4A中的栅格地图进行划分得到的多个子区域A-E,a-k表示栅格地图中的各条边。虚线表示相邻子区域之间的可通过边,灰色边表示未知边。后续,图5A、图6A和图7A与图4A中的表示方式类似。图4C为本申请实施例提供的图4B对应的拓扑图。图4C中圆框节点A-E与图4B中的子区域A-E对应,方框节点a-k与图4B中的边a-k对应。后续,图5B、图6B和图7B中的节点表示方式与图4A中节点的表示方式类似。
在本申请中,可以用第二节点对应的节点路径包含的节点数目表示第二节点的优先级。针对每一第二节点,该第二节点对应的节点路径包含的节点数目越少,该第二节点的优先级越高。如图4A-图4C所示,机器人在栅格地图中的位置所属的子区域为子区域B,即,第一节点为节点B。节点a、c、d、e、h、j、k为第二节点。按照深度优先搜索,较浅分支优先的策略确定各第二节点的优先级。即,针对每一第二节点,计算在图4C中,当前的该第二节点与当前的第一节点之间包含的节点最少的节点路径,作为当前的该第二节点对应的备选节点路径。例如,节点h的备选节点路径为B-h,节点a的备选节点路径为B-f-D-b-E-a。对应的备选节点路径包含的节点最少的第二节点的优先级最高,从优先级最高的第二节点表示的未知边中确定当前的待前往边。例如,图4C中优先级最高的第二节点为节点h。
在一个实施例中,基于更新后的栅格地图,对当前的拓扑图进行更新(步骤6),包括:
步骤61:针对本次探索得到的每一子区域,若该子区域包含的未知边的数目不大于1,则确定在当前的拓扑图中该子区域与相邻的指定子区域对应同一个节点,并从当前的拓扑图中删除用于表示该子区域与相邻的子区域共同的可通过边的节点。
其中,针对指定子区域在更新前的栅格地图中的任一未知边,该未知边在更新后的栅格地图中的属性未发生变化。
步骤62:若该子区域包含一个未知边,则在当前的拓扑图中添加表示该子区域的未知边的节点。
步骤63:若该子区域包含的未知边的数目不大于1,且在更新前的栅格地图中不存在指定子区域,则在当前的拓扑图中添加表示该子区域的节点。
步骤64:若该子区域包含的未知边的数目大于1,则在当前的拓扑图中添加表示该子区域的节点,以及表示该子区域的未知边的节点。
在本申请实施例中,本次探索得到的探索结果中可以包含多个子区域。针对本次探索得到的每一子区域,若该子区域包含的未知边的数目不大于1,即,该子区域包含的未知边的数目为0或者1,则在栅格地图中,将该子区域与相邻的指定子区域合并,得到更新后的栅格地图。相应的,在拓扑图中,确定该子区域与相邻的指定子区域对应同一个节点,并从拓扑图中删除用于表示该子区域与相邻的子区域共同的可通过边的节点。如此,能够简化得到的拓扑图。或者,也可以将该子区域作为一个单独的子区域,即,该子区域不与相邻的指定子区域合并。相应的,在拓扑图中添加表示该子区域的节点。
例如,在图4B的基础上,当机器人移动至边h在目标场景中对应的位置处时,可以探索得到如图5A所示的栅格地图,图5A为本申请实施例提供的第一种机器人移动至边h在目标场景中对应的位置处时已探索区域对应的栅格地图。本次探索得到的探索结果包含子区域F,子区域F只包含一个未知边l。此时,可以将子区域F与相邻的指定子区域(即子区域B)合并。相应的,在拓扑图中确定子区域F与子区域B对应同一个节点(即节点B),并从拓扑图中删除用于表示子区域F与子区域B共同的可通过边的节点h,得到如图5B所示的拓扑图。图5B为本申请实施例提供的基于图5A对图4C进行更新得到的拓扑图。
若该子区域只有一个相邻的子区域,则将该相邻的子区域确定为指定子区域。
若该子区域有多个相邻的子区域,则从多个相邻的子区域中确定指定子区域。例如,针对指定子区域在更新前的栅格地图中的任一未知边,该未知边在更新后的栅格地图中的属性未发生变化。如,指定子区域可以不包含未知边,相应的,也就不存在在更新后的栅格地图中的属性发生变化的未知边;或者,针对指定子区域在更新前的栅格地图中的任一未知边,未知边在更新后的栅格地图中仍为未知边,且该未知边的长度未发生变化。
基于此,可以确定更新前的栅格地图中的各子区域包含的任一未知边,在更新后的栅格地图中的属性是否发生变化,以确定出指定子区域。此时,若栅格地图中不存在指定子区域,则在栅格地图中将该子区域作为一个单独的子区域,相应的,在拓扑图中添加表示该子区域的节点。
例如,在图4B的基础上,当机器人移动至边h在目标场景中对应的位置处时,还可以探索得到如图6A所示的栅格地图,图6A为本申请实施例提供的第二种机器人移动至边h在目标场景中对应的位置处时已探索区域对应的栅格地图。本次探索得到的探索结果包含子区域F和子区域G,子区域G包含未知边l。更新前的栅格地图中的未知边e在更新后的栅格地图中的属性发生变化。针对子区域G,不存在相邻的指定子区域,因此,在拓扑图中添加表示子区域G的节点G,以及表示未知边l的节点l。将子区域F作为一个单独的子区域,子区域F与子区域A通过可通过边e2相连,未知边m属于子区域A。图6B为本申请实施例提供的基于图6A对图4C进行更新得到的拓扑图。
针对子区域F,由于存在相邻的指定子区域B,因此,也可以将子区域F与子区域B合并。相应的,在拓扑图中确定子区域F与子区域B对应同一个节点(即节点B),并从拓扑图中删除用于表示子区域F与子区域B的共同的可通过边的节点h。可以理解的是,此时,子区域F与子区域A和子区域B是同时连通的,即,子区域A、D、B、F组成了一个环形区域。将子区域F与子区域B合并能够简化拓扑图。将子区域F作为一个单独的子区域能够使拓扑图更精细,后续,基于拓扑图确定节点路径时,确定出的节点路径更精确。
针对更新前的栅格地图中各子区域的任一未知边,该未知边在更新后的栅格地图中的属性发生变化,即,本次探索会影响之前的探索结果。此时,也可以对当前已探索的所有区域对应的栅格地图重新划分子区域,并重新生成当前以探索的所有区域对应的拓扑图。
或者,按照本申请实施例提供的方法,对上一次探索的所有区域对应的拓扑图进行更新,得到当前已探索的所有区域对应的拓扑图。基于此,可以实现对拓扑图进行局部调整,无需重新生成拓扑图,能够提高拓扑图更新的效率,也就能够提高探索效率。
其中,针对每次探索得到的探索结果包含的区域,也可以先划分区域块,然后对多个区域块进行合并,得到多个子区域,进而,基于得到的多各子区域更新拓扑图。
针对本次探索得到的每一子区域,若该子区域包含未知边,则在拓扑图中添加表示该子区域的未知边的节点。即,表示该子区域的未知边的节点与表示该子区域的节点相连。
由于包含未知边的数目大于1的子区域的复杂度较高,因此,为了使得到的拓扑图能够更有效地体现出各未知边之间的优先级,若该子区域包含的未知边的数目大于1,则在栅格地图中将该子区域作为一个单独的子区域。相应的,在拓扑图中添加表示该子区域的节点,以及表示该子区域的未知边的节点。
例如,在图4B的基础上,当机器人移动至边h在目标场景中对应的位置处时,还可以探索到如图7A所示的栅格地图,图7A为本申请实施例提供的第三种机器人移动至边h在目标场景中对应的位置处时已探索区域对应的栅格地图。本次探索得到的探索结果包含子区域F,子区域F包含两条未知边,即,未知边m和未知边l。此时,将子区域F作为一个单独的子区域。相应的,在拓扑图中添加表示子区域F的节点F,以及表示未知边m的节点m和表示未知边l的节点l,得到如图7B所示的拓扑图。图7B为本申请实施例提供的基于图7A对图4C进行更新得到的拓扑图。
基于上述处理,得到的拓扑图能够更有效地体现出各未知边之间的优先级,也就能够提高确定各未知边之间的优先级的准确度,提高后续基于拓扑图确定第三节点的准确度。
本申请实施例还提供了一种导航方法,导航方法可以应用于电子设备,该电子设备可以为机器人,或者,也可以为其他设备,且该设备能够与机器人进行数据通信。
参见图8,图8为本申请实施例提供的导航方法的第一种流程图,该方法包括:
步骤S801:确定机器人在目标场景的完整栅格地图中的位置,作为第一位置,以及导航的终点在完整栅格地图中的位置,作为第二位置。
其中,完整栅格地图为基于上述实施例中任一探索方法得到的。
步骤S802:确定第一位置与第二位置之间的目标栅格路径。
其中,目标栅格路径为:完整栅格地图中连接第一位置和第二位置的路径代价最小的栅格路径。
步骤S803:按照确定出的目标栅格路径,控制机器人向第二位置在目标场景中对应的位置处移动。
基于上述处理,可以基于上述实施例中的任一探索方法得到完整栅格地图,也就能够提高探索目标场景的效率,也就能够提高栅格地图的生成效率。同时,可以基于得到的完整栅格地图,确定机器人在目标场景的完整栅格地图中的位置到导航的终点在完整栅格地图中的位置的路径,进而实现导航,提高导航效率。
在本申请实施例中,目标场景为机器人已探索结束的场景,即,已经得到目标场景的完整栅格地图。基于完整栅格地图,可以确定实际位置与在栅格地图中位置的对应关系,后续,当导航时,可以基于对应关系确定机器人在目标场景的完整栅格地图中的位置(即第一位置)和导航的终点在完整栅格地图中的位置(即第二位置)。
一种实现方式中,在完整栅格地图中,基于预设路径规划算法确定连接第一位置和第二位置的栅格路径,例如,预设路径规划算法可以是Dijkstra(迪杰斯特拉)算法、BFS(Breadth-First-Search,广度优先算法)或者DFS(Depth-First-Search,深度优先算法)。确定连接第一位置与第二位置的路径代价最小的栅格路径,作为目标栅格路径。此处计算栅格路径的路径代价的方法,可以参考上述探索方法中关于计算栅格路径的路径代价的方法。按照确定出的目标栅格路径,控制机器人向第二位置在目标场景中对应的位置处移动,即,控制机器人向导航的终点在目标场景中的位置移动。
另一种实现方式中,参见图9,图9为本申请实施例提供的导航方法的第二种流程图,在确定第一位置与第二位置之间的栅格路径之前,导航方法还包括:
步骤S804:获取目标场景对应的包含代价的拓扑图,作为第一代价拓扑图。
其中,第一代价拓扑图包含多个节点,多个节点与对完整栅格地图进行划分得到的多个区域中的可通过边一一对应;一个区域的可通过边表示该区域与相邻区域的交界处中允许通过的部分;属于同一个区域的每两个可通过边对应的节点相连;在第一代价拓扑图中,两个节点之间的连线表示:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价。
步骤S805:确定第一位置与所属的区域中的第一可通过边之间路径代价最小的第一栅格路径和对应的第一路径代价,以及第二位置与所属的区域中的第二可通过边之间路径代价最小的第二栅格路径和对应的第二路径代价。
步骤S806:在第一代价拓扑图中添加表示第一位置和第二位置的节点,得到第二代价拓扑图。
其中,在第二代价拓扑图中,表示第一位置的第一节点与表示第一可通过边的节点之间的连线表示第一栅格路径和对应的第一路径代价,表示第二位置的第二节点与表示第二可通过边的节点之间的连线表示第二栅格路径和对应的第二路径代价。
确定第一位置与第二位置之间的目标栅格路径(S802),包括:
步骤S8021:基于图搜索算法,确定连接第一节点与第二节点,且包含的连线所表示的路径代价最小的节点路径,作为目标节点路径。
步骤S8022:针对目标节点路径包含的每两个相邻的节点,获取该两个相邻的节点之间的连线表示的栅格路径,得到目标栅格路径。
在本申请实施例中,可以基于预设分区算法对完整栅格地图进行划分,得到多个区域。例如,预设分区算法可以为分水岭算法或者boustrophedon(牛耕式)单元分解法。
例如,针对划分得到的每一区域,该区域内部的任意两个位置之间连通,且该两个位置之间的第一栅格路径的路径代价小于第二栅格路径的路径代价;第一栅格路径表示位于该区域内部的栅格路径,第二栅格路径表示位于该区域外部的栅格路径。
在本申请实施例中,针对划分得到的每一区域,该区域内部的任意两个位置之间连通,以保证机器人可以在该区域内部的任意两个位置之间移动。该两个位置之间,位于该区域内部的栅格路径的路径代价小于位于该区域外部的栅格路径的路径代价,即,该两个位置之间,从该区域内部导航确定的栅格路径为最优解。基于此,能够避免出现该区域外部存在路径代价更小的栅格路径的情况,保证导航的效率。
第一代价拓扑图中的节点用于表示该多个区域的可通过边。在第一代价拓扑图中,属于同一个区域的可通过边对应的节点之间两两相连;属于不同区域的可通过边对应的节点之间并没有连接关系。在第一代价拓扑图中,每两个相连的节点之间的连线的属性信息包含有:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价。
确定第一位置与第一位置所属的区域中的每一可通过边(即第一可通过边)之间路径代价最小的栅格路径(即第一栅格路径),并计算第一栅格路径的路径代价(即第一路径代价)。同理,确定第二位置与所属的区域中的每一可通过边(即第二可通过边)之间路径代价最小的栅格路径(即第二栅格路径),并计算第二栅格路径的路径代价(即第二路径代价)。
在第一代价拓扑图中添加表示第一位置的节点(即第一节点),表示第一位置的节点与第一可通过边相连,并记录第一栅格路径以及第一路径代价。在第一代价拓扑图中添加表示第二位置的节点(即第二节点),表示第二位置的节点与第二可通过边相连,并记录第二栅格路径以及第二路径代价。得到添加了第一节点和第二节点的第二代价拓扑图。进而,可以基于图搜索算法在第二代价拓扑图中进行搜索,确定连接第一节点与第二节点,且包含的连线所表示的路径代价最小的节点路径,作为目标节点路径。例如,图搜索算法可以是A*算法(一种启发式搜索算法)、Dijkstra算法(迪杰斯特拉算法)或者D*算法(一种反向增量式搜索算法)。获取目标节点路径包含的相邻节点间的栅格路径,作为目标栅格路径。
基于上述处理,可以在进行导航之前,得到第一代价拓扑图。在进行导航时,将第一节点和第二节点添加至第一代价拓扑图,得到第二代价拓扑图。进而,在进行导航确定目标栅格路径时,基于图搜索算法,确定第二代价拓扑图中的目标节点路径,基于目标节点路径确定目标栅格路径。由于目标节点路径包含的相邻节点间的栅格路径,在导航之前已经确定并记录在第二代价拓扑图中,因此,相对于在进行导航时,基于完整栅格地图确定目标栅格路径,本申请实施例提供的导航方法,在进行导航时,电子设备只需存储第一代价拓扑图,而无需存储完整栅格地图,也无需存储多个层级的结构拓扑图,也就可以减少存储的冗余信息,能够节省存储空间。且只需基于第一代价拓扑图确定目标节点路径,计算量也较低,可以减少导航消耗的时间,提高导航的效率。
在一个实施例中,第一代价拓扑图的生成过程包括以下步骤:
步骤①:基于完整栅格地图,生成目标场景对应的多个层级的结构拓扑图。
其中,每一层级的结构拓扑图包含多个节点,多个节点与该层级的结构拓扑图所表示的多个区域以及多个区域中的可通过边一一对应;每一层级的结构拓扑图中节点表示的多个区域为:对上一层级的结构拓扑图中节点表示的多个区域中的一个区域进行划分得到的;最高层级的第一结构拓扑图表示对完整栅格地图进行划分得到的多个区域之间的拓扑关系。
步骤②:针对最低层级的第二结构拓扑图中节点表示的每一区域,基于该区域的栅格地图,确定该区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价。
步骤③:基于多个层级的结构拓扑图,对确定出的各路径代价进行叠加计算,直至确定出第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价。
步骤④:基于第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,生成第一代价拓扑图。
在本申请实施例中,可以基于完整栅格地图,生成多个层级的结构拓扑图。如图10所示,图10为本申请实施例提供的一种多个层级的结构拓扑图的总体结构示意图。图10中的结构拓扑图为基于后续图11所示的栅格地图得到的。虚线框1中为最高层级的结构拓扑图(即第一结构拓扑图),虚线框2中的结构拓扑图中E2节点和E3节点表示的区域为对第一结构拓扑图中E节点表示的区域进行划分得到的。虚线框1和虚线框2中的拓扑图均未完整画出。后续,可以对E3节点表示的区域进行划分,得到下一层级的结构拓扑图中节点表示的各区域。直到得到N层拓扑结构,即,N个层级的拓扑结构图,并可以得到最低层级的结构拓扑图(即第二结构拓扑图)中节点表示的每一区域的栅格地图。图10中最底层的一层栅格结构,表示节点E3表示的区域E3的栅格地图。
可以理解的是,由于每一层级的结构拓扑图中节点表示的多个区域为:对上一层级的结构拓扑图中节点表示的多个区域中的一个区域进行划分得到的。因此,针对一个结构拓扑图,若该结构拓扑图中有N个表示区域的节点,且该结构拓扑图不是最低层级的结构拓扑图,则该N个表示区域的节点均有对应的下一层级的拓扑图,即,该结构拓扑图所属层级的下一层级的结构拓扑图有N个。
图11A为本申请实施例提供的一种完整栅格地图。对图11A所示的完整栅格地图进行划分,得到区域A-L以及各区域的可通过边a-l。区域A与区域D相邻,区域A与区域B的交界处包括被障碍占据的部分以及未被障碍占据的部分,其中,未被障碍占据的部分即为允许通过的部分,即可通过边a。
基于图11A生成表示图11A中区域A-L之间的拓扑关系的第一结构拓扑图,如图11B所示,图11B为本申请实施例提供的一种图11A对应的第一结构拓扑图。对图11B中节点表示的区域进行划分,可以得到下一层级的结构拓扑图中节点表示的多个区域。例如,可以对图11B中的节点E表示的区域进行划分,得到区域E1-E6和可通过边Ea-Ef。如图11C所示,图11C为本申请实施例提供的一种对图11B中节点E表示的区域进行划分得到的区域E的栅格地图。基于图11C生成表示图11C中划分得到的多个区域的拓扑关系的结构拓扑图,如图11D所示,图11D为本申请实施例提供的一种图11C对应的结构拓扑图。对于图11D中节点E1-E6所表示的区域,可以不进行划分,则图11D为图11A对应的第二结构拓扑图。
图11E为本申请实施例提供的图11D中节点E3表示的区域E3的栅格地图。针对最低层级的结构拓扑图(即第二结构拓扑图)中的每一节点表示的区域,基于该节点表示的区域的栅格地图,可以确定该节点表示的区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价。图11E中虚线划分出的小方格即为栅格点,边Eb到Ec、Eb到e以及Ec到e之间的连线分别为边Eb到Ec、Eb到e以及Ec到e之间路径代价最小的栅格路径。如图11E所示,可以分别确定可通过边Eb到Ec、Eb到e以及Ec到e之间路径代价最小的栅格路径和对应的路径代价。在图11E中,每两个可通过边之间的栅格路径的路径代价可以为栅格路径所经过的栅格点的数目。例如,可通过边Eb与可通过边Ec之间的栅格路径的路径代价为20;可通过边Eb与可通过边e之间的栅格路径的路径代价为6;可通过边e与可通过边Ec之间的栅格路径的路径代价为17。
由于第二结构拓扑图中节点表示的多个区域为对最低层级的上一层级的结构拓扑图(称为次低结构拓扑图)中节点表示的多个区域中的一个区域进行划分得到的,因此,可以根据次低结构拓扑图中节点表示的区域与第二结构拓扑图中节点表示的各区域的关系,计算得到次低结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价。以此类推,可以计算得到第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,以生成第一代价拓扑图。
如图12所示,图12为本申请实施例提供的一种第一代价拓扑图的示意图。图12为基于图11B-图11E计算得到的。图12中节点a-l表示可通过边a-l,每两个节点之间的连线表示:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价。例如,图12中的cost(代价)_cd表示可通过边c与可通过边d之间路径代价最小的栅格路径对应的路径代价。
相应的,在进行导航时,可以将第一节点和第二节点添加至第一代价拓扑图,得到第二代价拓扑图。如图13所示,图13为本申请实施例提供的一种第二代价拓扑图的示意图。图13为在图12的基础上添加了start(起点)和end(终点)的第二代价拓扑图,start(起点)即为第一节点,end(终点)即为第二节点。
基于上述处理,基于完整栅格地图,生成目标场景对应的多个层级的结构拓扑图,基于多个层级的结构拓扑图,对确定出的各路径代价进行叠加计算,确定第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,以生成第一代价拓扑图。由于采用多个层级的结构拓扑图,因此,本申请实施例的方案能够很好的对较大的目标场景进行处理。且本申请实施例的方案中,只需要存储第一代价拓扑图,也就能够减少存储资源的消耗。
在一个实施例中,针对第一代价拓扑图中存在连接关系的每两个节点,该两个节点之间的连线表示的栅格路径包含:该栅格路径所经过的,且属于第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序。按照确定出的目标栅格路径,控制机器人向第二位置在目标场景中对应的位置处移动,包括:
步骤Ⅰ:从指定存储位置获取指定区域的栅格地图。
其中,指定区域为:在第二结构拓扑图中的节点所表示的区域中目标栅格路径所经过的区域。
步骤Ⅱ:基于获取到的栅格地图,按照目标栅格路径所经过的,且属于第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序,控制机器人向第二位置在目标场景中对应的位置处移动。
在本申请实施例中,针对第一代价拓扑图中存在连接关系的每两个节点,该两个节点之间的连线表示的栅格路径包含:该栅格路径所经过的,且属于第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序,即,包含该栅格路径所经过的,属于最低层级的结构拓扑图(即第二结构拓扑图)中的节点所表示的区域的可通过边,以及各可通过边的导航顺序。进而,在进行导航时,也就可以基于获取到的目标栅格路径所经过的,且属于第二结构拓扑图中的节点所表示的区域的栅格地图,按照目标栅格路径中包含的导航顺序,确定机器人的移动方向,以实现导航。
另外,针对最低层级的结构拓扑图(即第二结构拓扑图)中的节点所表示的每一区域,均可以在指定位置存储有该区域的栅格地图,即,指定存储位置可以存储第二结构拓扑图中的所有节点所表示的区域的栅格地图。相应的,在进行导航时,只需要获取确定出的目标栅格路径所经过的,且属于第二结构拓扑图中的节点所表示的区域的栅格地图,而无需获取完整栅格地图,也就能够提高导航的效率。
另外,可以在指定存储位置存储第二结构拓扑图中的所有节点所表示的区域的栅格地图,例如,指定存储区域可以是云端。当确定出目标栅格路径后,可以从指定存储区域获取在第二结构拓扑图中的节点所表示的区域中目标栅格路径所经过的区域的栅格地图。基于此,只需在导航时从指定区域获取部分栅格地图,而无需在本地存储完整栅格地图以实现导航,也就能够节约本地的存储资源。
本申请实施例还提供了一种探索装置,参见图14,图14为本申请实施例提供的一种探索装置的结构示意图,所述装置包括:栅格地图获取模块1401,用于获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图;
待前往边确定模块1402,用于从当前的栅格地图的未知边中确定出当前的待前往边;其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的;
移动控制模块1403,用于控制所述机器人向当前的待前往边在所述目标场景中对应的位置处移动;
栅格地图更新模块1404,用于基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行所述从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到所述目标场景的完整栅格地图。
在一个实施例中,所述装置还包括:拓扑图获取模块,用于在所述从当前的栅格地图的未知边中确定出当前的待前往边之前,获取当前的栅格地图对应的拓扑图,作为当前的拓扑图;其中,当前的拓扑图包含多个节点;所述多个节点与对当前的栅格地图进行划分得到的多个子区域、相邻子区域共同的可通过边以及当前的栅格地图的未知边一一对应;相邻子区域共同的可通过边表示相邻子区域的交界处中允许通过的部分;在当前的拓扑图中,表示边的节点与表示该边所属的子区域的节点相连;
所述待前往边确定模块1402,包括:
第一确定子模块,用于确定所述机器人在当前的栅格地图中的位置所属子区域对应的节点,作为当前的第一节点,以及确定当前的栅格地图的未知边对应的节点,作为当前的各第二节点;
节点路径计算子模块,用于针对当前的每一第二节点,计算在当前的拓扑图中,当前的该第二节点与当前的第一节点之间包含的节点最少的节点路径,作为当前的该第二节点对应的备选节点路径;
第二确定子模块,用于从当前的各第二节点中确定当前的第三节点;其中,当前的第三节点对应的备选节点路径包含的节点最少;
第三确定子模块,用于基于当前的第三节点表示的未知边,确定当前的待前往边;
所述装置还包括:拓扑图更新模块,用于在所述基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新之后,基于更新后的栅格地图,对当前的拓扑图进行更新。
在一个实施例中,所述第三确定子模块,具体用于若当前的第三节点为多个,则针对当前的每一第三节点,基于所述机器人在当前的栅格地图中的位置与当前的该第三节点表示的未知边之间的栅格路径的指定计算参数,计算当前的该第三节点对应的栅格路径的路径代价;其中,所述指定计算参数包括栅格路径的长度;从当前的各第三节点各自表示的未知边中,确定当前的待前往边;其中,表示当前的待前往边的第三节点对应的栅格路径的路径代价最小。
在一个实施例中,所述拓扑图更新模块,具体用于针对本次探索得到的每一子区域,若该子区域包含的未知边的数目不大于1,则确定在当前的拓扑图中该子区域与相邻的指定子区域对应同一个节点,并从当前的拓扑图中删除用于表示该子区域与相邻的指定子区域共同的可通过边的节点;若该子区域包含的未知边的数目大于1,则在当前的拓扑图中添加表示该子区域的节点,以及表示该子区域的未知边的节点。
在一个实施例中,针对所述指定子区域在更新前的栅格地图中的任一未知边,该未知边在更新后的栅格地图中的属性未发生变化;
所述拓扑图更新模块,具体用于若该子区域包含的未知边的数目不大于1,且在更新前的栅格地图中不存在所述指定子区域,则在当前的拓扑图中添加表示该子区域的节点。
在一个实施例中,所述拓扑图更新模块,具体用于若该子区域包含一个未知边,则在当前的拓扑图中添加表示该子区域的未知边的节点。
在一个实施例中,所述装置还包括:
端点确定模块,用于按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点;
分界线确定模块,用于针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线;并返回执行所述按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点的步骤;其中,每一匹配端点与当前的待处理端点之间的连线位于当前的栅格地图的内部;
划分模块,用于按照确定出的分界线对当前的栅格地图进行划分,得到多个子区域。
在一个实施例中,预设筛选条件包括以下至少一项:该匹配端点与当前的待处理端点之间的连线与当前已确定出的分界线不相交;该匹配端点所属的分界线的数目小于预设阈值;当前的待处理端点所属的分界线的数目小于所述预设阈值;当前的待处理端点与该匹配端点之间的连线的长度小于预设长度。
在一个实施例中,所述分界线确定模块,具体用于针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,且该匹配端点为满足所述预设筛选条件的端点中,与当前的待处理端点之间的连线的长度最短的端点,则确定当前的待处理端点与该匹配端点之间的连线作为分界线。
本申请实施例还提供了一种导航装置,参见图15,图15为本申请实施例提供的一种导航装置的结构示意图,所述装置包括:
位置确定模块1501,用于确定机器人在目标场景的完整栅格地图中的位置,作为第一位置,以及导航的终点在所述完整栅格地图中的位置,作为第二位置;其中,所述完整栅格地图为上述实施例中任一所述的探索方法得到的;
栅格路径确定模块1502,用于确定所述第一位置与所述第二位置之间的目标栅格路径;其中,所述目标栅格路径为:所述完整栅格地图中连接所述第一位置和所述第二位置的路径代价最小的栅格路径;
控制模块1503,用于按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
在一个实施例中,所述装置还包括:第一代价拓扑图获取模块,用于在所述确定所述第一位置与所述第二位置之间的栅格路径之前,获取所述目标场景对应的包含路径代价的拓扑图,作为第一代价拓扑图;其中,所述第一代价拓扑图包含多个节点,所述多个节点与对所述完整栅格地图进行划分得到的多个区域中的可通过边一一对应;一个区域的可通过边表示该区域与相邻区域的交界处中允许通过的部分;属于同一个区域的每两个可通过边对应的节点相连;在所述第一代价拓扑图中,两个节点之间的连线表示:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价;
路径代价确定模块,用于确定所述第一位置与所属的区域中的第一可通过边之间路径代价最小的第一栅格路径和对应的第一路径代价,以及所述第二位置与所属的区域中的第二可通过边之间路径代价最小的第二栅格路径和对应的第二路径代价;
第二代价拓扑图获取模块,用于在所述第一代价拓扑图中添加表示所述第一位置和所述第二位置的节点,得到第二代价拓扑图;其中,在所述第二代价拓扑图中,表示所述第一位置的第一节点与表示所述第一可通过边的节点之间的连线表示第一栅格路径和对应的第一路径代价,表示所述第二位置的第二节点与表示所述第二可通过边的节点之间的连线表示第二栅格路径和对应的第二路径代价;
所述栅格路径确定模块1502,具体用于基于图搜索算法,确定连接所述第一节点与所述第二节点,且包含的连线所表示的路径代价最小的节点路径,作为目标节点路径;针对所述目标节点路径包含的每两个相邻的节点,获取该两个相邻的节点之间的连线表示的栅格路径,得到目标栅格路径。
在一个实施例中,所述装置还包括:代价拓扑图生成模块,用于基于所述完整栅格地图,生成所述目标场景对应的多个层级的结构拓扑图;其中,每一层级的结构拓扑图包含多个节点,所述多个节点与该层级的结构拓扑图所表示的多个区域以及多个区域中的可通过边一一对应;每一层级的结构拓扑图中节点表示的多个区域为:对上一层级的结构拓扑图中节点表示的多个区域中的一个区域进行划分得到的;最高层级的第一结构拓扑图表示对所述完整栅格地图进行划分得到的多个区域之间的拓扑关系;针对最低层级的第二结构拓扑图中节点表示的每一区域,基于该区域的栅格地图,确定该区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;基于多个层级的结构拓扑图,对确定出的各路径代价进行叠加计算,直至确定出所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;基于所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,生成所述第一代价拓扑图。
在一个实施例中,针对所述第一代价拓扑图中存在连接关系的每两个节点,该两个节点之间的连线表示的栅格路径包含:该栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序;
所述控制模块1503,具体用于从指定存储位置获取指定区域的栅格地图;其中,所述指定区域为:在所述第二结构拓扑图中的节点所表示的区域中所述目标栅格路径所经过的区域;基于获取到的栅格地图,按照所述目标栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
在一个实施例中,针对划分得到的每一区域,该区域内部的任意两个位置之间连通,且该两个位置之间的第一栅格路径的路径代价小于第二栅格路径的路径代价;所述第一栅格路径表示位于该区域内部的栅格路径,所述第二栅格路径表示位于该区域外部的栅格路径。
本申请实施例还提供了一种电子设备,如图16所示,包括:
存储器1601,用于存放计算机程序;
处理器1602,用于执行存储器1601上所存放的程序时,执行上述实施例中任一所述的探索方法,或导航方法。
并且上述电子设备还可以包括通信总线和/或通信接口,处理器1602、通信接口、存储器1601通过通信总线完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种机器人系统,包括传感器和处理器;
所述传感器,用于对目标场景进行探索;
所述处理器,用于获取所述传感器的探索结果,并执行上述实施例中任一探索方法步骤或导航方法步骤。
在本申请实施例中,机器人系统可以基于传感器对目标场景进行探索。传感器可以对目标场景中当前的探索方向的区域进行探索,也就可以确定当前的探索方向的区域中的障碍的分布情况。例如,传感器可以为雷达传感器。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一探索方法或导航方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一探索方法或导航方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者存储介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、系统以及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (19)
1.一种探索方法,其特征在于,所述方法包括:
获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图;
从当前的栅格地图的未知边中确定出当前的待前往边;其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的;
控制所述机器人向当前的待前往边在所述目标场景中对应的位置处移动;
基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行所述从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到所述目标场景的完整栅格地图。
2.根据权利要求1所述的方法,其特征在于,在所述从当前的栅格地图的未知边中确定出当前的待前往边之前,所述方法还包括:
获取当前的栅格地图对应的拓扑图,作为当前的拓扑图;其中,当前的拓扑图包含多个节点;所述多个节点与对当前的栅格地图进行划分得到的多个子区域、相邻子区域共同的可通过边以及当前的栅格地图的未知边一一对应;相邻子区域共同的可通过边表示相邻子区域的交界处中允许通过的部分;在当前的拓扑图中,表示边的节点与表示该边所属的子区域的节点相连;
所述从当前的栅格地图的未知边中确定出当前的待前往边,包括:
确定所述机器人在当前的栅格地图中的位置所属子区域对应的节点,作为当前的第一节点,以及确定当前的栅格地图的未知边对应的节点,作为当前的各第二节点;
针对当前的每一第二节点,计算在当前的拓扑图中,当前的该第二节点与当前的第一节点之间包含的节点最少的节点路径,作为当前的该第二节点对应的备选节点路径;
从当前的各第二节点中确定当前的第三节点;其中,当前的第三节点对应的备选节点路径包含的节点最少;
基于当前的第三节点表示的未知边,确定当前的待前往边;
在所述基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新之后,所述方法还包括:
基于更新后的栅格地图,对当前的拓扑图进行更新。
3.根据权利要求2所述的方法,其特征在于,所述基于当前的第三节点表示的未知边,确定当前的待前往边,包括:
若当前的第三节点为多个,则针对当前的每一第三节点,基于所述机器人在当前的栅格地图中的位置与当前的该第三节点表示的未知边之间的栅格路径的指定计算参数,计算当前的该第三节点对应的栅格路径的路径代价;其中,所述指定计算参数包括栅格路径的长度;
从当前的各第三节点各自表示的未知边中,确定当前的待前往边;其中,表示当前的待前往边的第三节点对应的栅格路径的路径代价最小。
4.根据权利要求2所述的方法,其特征在于,所述基于更新后的栅格地图,对当前的拓扑图进行更新,包括:
针对本次探索得到的每一子区域,若该子区域包含的未知边的数目不大于1,则确定在当前的拓扑图中该子区域与相邻的指定子区域对应同一个节点,并从当前的拓扑图中删除用于表示该子区域与相邻的指定子区域共同的可通过边的节点;
若该子区域包含的未知边的数目大于1,则在当前的拓扑图中添加表示该子区域的节点,以及表示该子区域的未知边的节点。
5.根据权利要求4所述的方法,其特征在于,针对所述指定子区域在更新前的栅格地图中的任一未知边,该未知边在更新后的栅格地图中的属性未发生变化;
所述方法还包括:
若该子区域包含的未知边的数目不大于1,且在更新前的栅格地图中不存在所述指定子区域,则在当前的拓扑图中添加表示该子区域的节点。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若该子区域包含一个未知边,则在当前的拓扑图中添加表示该子区域的未知边的节点。
7.根据权利要求2所述的方法,其特征在于,当前的栅格地图包含的多个子区域为通过以下步骤划分得到的:
按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点;
针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线;并返回执行所述按照预设顺序,确定当前的栅格地图的未知边的各个端点中当前的待处理端点的步骤;其中,每一匹配端点与当前的待处理端点之间的连线位于当前的栅格地图的内部;
按照确定出的分界线对当前的栅格地图进行划分,得到多个子区域。
8.根据权利要求7所述的方法,其特征在于,所述预设筛选条件包括以下至少一项:
该匹配端点与当前的待处理端点之间的连线与当前已确定出的分界线不相交;
该匹配端点所属的分界线的数目小于预设阈值;
当前的待处理端点所属的分界线的数目小于所述预设阈值;
当前的待处理端点与该匹配端点之间的连线的长度小于预设长度。
9.根据权利要求8所述的方法,其特征在于,所述针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,确定当前的待处理端点与该匹配端点之间的连线作为分界线,包括:
针对其他端点中的每一匹配端点,若该匹配端点和当前的待处理端点满足预设筛选条件,且该匹配端点为满足所述预设筛选条件的端点中,与当前的待处理端点之间的连线的长度最短的端点,则确定当前的待处理端点与该匹配端点之间的连线作为分界线。
10.一种导航方法,其特征在于,所述方法包括:
确定机器人在目标场景的完整栅格地图中的位置,作为第一位置,以及导航的终点在所述完整栅格地图中的位置,作为第二位置;其中,所述完整栅格地图为基于权利要求1-9任一所述的方法得到的;
确定所述第一位置与所述第二位置之间的目标栅格路径;其中,所述目标栅格路径为:所述完整栅格地图中连接所述第一位置和所述第二位置的路径代价最小的栅格路径;
按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
11.根据权利要求10所述的方法,其特征在于,在所述确定所述第一位置与所述第二位置之间的栅格路径之前,所述方法还包括:
获取所述目标场景对应的包含路径代价的拓扑图,作为第一代价拓扑图;其中,所述第一代价拓扑图包含多个节点,所述多个节点与对所述完整栅格地图进行划分得到的多个区域中的可通过边一一对应;一个区域的可通过边表示该区域与相邻区域的交界处中允许通过的部分;属于同一个区域的每两个可通过边对应的节点相连;在所述第一代价拓扑图中,两个节点之间的连线表示:该两个节点对应的可通过边之间路径代价最小的栅格路径和对应的路径代价;
确定所述第一位置与所属的区域中的第一可通过边之间路径代价最小的第一栅格路径和对应的第一路径代价,以及所述第二位置与所属的区域中的第二可通过边之间路径代价最小的第二栅格路径和对应的第二路径代价;
在所述第一代价拓扑图中添加表示所述第一位置和所述第二位置的节点,得到第二代价拓扑图;其中,在所述第二代价拓扑图中,表示所述第一位置的第一节点与表示所述第一可通过边的节点之间的连线表示第一栅格路径和对应的第一路径代价,表示所述第二位置的第二节点与表示所述第二可通过边的节点之间的连线表示第二栅格路径和对应的第二路径代价;
所述确定所述第一位置与所述第二位置之间的目标栅格路径,包括:
基于图搜索算法,确定连接所述第一节点与所述第二节点,且包含的连线所表示的路径代价最小的节点路径,作为目标节点路径;
针对所述目标节点路径包含的每两个相邻的节点,获取该两个相邻的节点之间的连线表示的栅格路径,得到目标栅格路径。
12.根据权利要求11所述的方法,其特征在于,所述第一代价拓扑图的生成过程包括以下步骤:
基于所述完整栅格地图,生成所述目标场景对应的多个层级的结构拓扑图;其中,每一层级的结构拓扑图包含多个节点,所述多个节点与该层级的结构拓扑图所表示的多个区域以及多个区域中的可通过边一一对应;每一层级的结构拓扑图中节点表示的多个区域为:对上一层级的结构拓扑图中节点表示的多个区域中的一个区域进行划分得到的;最高层级的第一结构拓扑图表示对所述完整栅格地图进行划分得到的多个区域之间的拓扑关系;
针对最低层级的第二结构拓扑图中节点表示的每一区域,基于该区域的栅格地图,确定该区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;
基于多个层级的结构拓扑图,对确定出的各路径代价进行叠加计算,直至确定出所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价;
基于所述第一结构拓扑图中节点表示的每一区域中每两个可通过边之间路径代价最小的栅格路径和对应的路径代价,生成所述第一代价拓扑图。
13.根据权利要求12所述的方法,其特征在于,针对所述第一代价拓扑图中存在连接关系的每两个节点,该两个节点之间的连线表示的栅格路径包含:该栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序;
所述按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动,包括:
从指定存储位置获取指定区域的栅格地图;其中,所述指定区域为:在所述第二结构拓扑图中的节点所表示的区域中所述目标栅格路径所经过的区域;
基于获取到的栅格地图,按照所述目标栅格路径所经过的,且属于所述第二结构拓扑图中的节点所表示的区域的可通过边的导航顺序,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
14.根据权利要求12所述的方法,其特征在于,针对划分得到的每一区域,该区域内部的任意两个位置之间连通,且该两个位置之间的第一栅格路径的路径代价小于第二栅格路径的路径代价;所述第一栅格路径表示位于该区域内部的栅格路径,所述第二栅格路径表示位于该区域外部的栅格路径。
15.一种探索装置,其特征在于,所述装置包括:
栅格地图获取模块,用于获取目标场景中当前的已探索区域对应的栅格地图,作为当前的栅格地图;
待前往边确定模块,用于从当前的栅格地图的未知边中确定出当前的待前往边;其中,当前的栅格地图的未知边表示:当前已探索的不存在障碍的区域与当前的未探索区域的交界处;当前的待前往边为:基于机器人在当前的栅格地图中的位置,与当前的栅格地图的未知边之间的栅格路径的长度确定出的;
移动控制模块,用于控制所述机器人向当前的待前往边在所述目标场景中对应的位置处移动;
栅格地图更新模块,用于基于所述机器人移动至当前的待前往边在所述目标场景中对应的位置处时探索得到的探索结果,对当前的栅格地图进行更新,并返回执行所述从当前的栅格地图的未知边中确定出当前的待前往边的步骤,直至得到所述目标场景的完整栅格地图。
16.一种导航装置,其特征在于,所述装置包括:
位置确定模块,用于确定机器人在目标场景的完整栅格地图中的位置,作为第一位置,以及导航的终点在所述完整栅格地图中的位置,作为第二位置;其中,所述完整栅格地图为基于权利要求1-9任一所述的方法得到的;
栅格路径确定模块,用于确定所述第一位置与所述第二位置之间的目标栅格路径;其中,所述目标栅格路径为:所述完整栅格地图中连接所述第一位置和所述第二位置的路径代价最小的栅格路径;
控制模块,用于按照确定出的目标栅格路径,控制所述机器人向所述第二位置在所述目标场景中对应的位置处移动。
17.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-14任一所述的方法。
18.一种机器人系统,其特征在于,包括传感器和处理器;
所述传感器,用于对目标场景进行探索;
所述处理器,用于获取所述传感器的探索结果,并执行权利要求1-14任一所述的方法步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-14任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310281706.9A CN116430854A (zh) | 2023-03-17 | 2023-03-17 | 探索方法、导航方法、装置、设备、机器人系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310281706.9A CN116430854A (zh) | 2023-03-17 | 2023-03-17 | 探索方法、导航方法、装置、设备、机器人系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116430854A true CN116430854A (zh) | 2023-07-14 |
Family
ID=87091779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310281706.9A Pending CN116430854A (zh) | 2023-03-17 | 2023-03-17 | 探索方法、导航方法、装置、设备、机器人系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116430854A (zh) |
-
2023
- 2023-03-17 CN CN202310281706.9A patent/CN116430854A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109115226B (zh) | 基于跳点搜索的多机器人冲突避免的路径规划方法 | |
CN114510056B (zh) | 室内移动机器人的平稳移动全局路径规划方法 | |
CN110260867A (zh) | 一种机器人导航中位姿确定、纠正的方法、设备及装置 | |
US20100211244A1 (en) | Apparatus and method for generating and using a grid map path | |
EP3699890A2 (en) | Information processing method and apparatus, and storage medium | |
CN108665117B (zh) | 一种室内空间最短路径的计算方法、装置、终端设备以及存储介质 | |
CN113741453B (zh) | 一种非结构化环境的路径规划方法、装置、设备和介质 | |
CN114815802A (zh) | 一种基于改进蚁群算法的无人天车路径规划方法和系统 | |
CN114440916B (zh) | 一种导航方法、装置、设备及存储介质 | |
KR20220034748A (ko) | 차량 궤적 계획 방법, 장치, 컴퓨터 장치, 컴퓨터 저장 매체 | |
CN112486178A (zh) | 一种基于有向d*算法的动态路径规划方法 | |
Yang et al. | A novel path planning algorithm for warehouse robots based on a two-dimensional grid model | |
CN114061586B (zh) | 用于生成电子设备的导航路径的方法和产品 | |
CN113867347A (zh) | 机器人路径规划方法、装置、管理系统及计算机存储介质 | |
Le et al. | Search-based planning and replanning in robotics and autonomous systems | |
CN115560771A (zh) | 基于采样的路径规划方法及装置、自动行驶设备 | |
JP2020042496A (ja) | 電子制御装置、ニューラルネットワーク更新システム | |
CN117516573A (zh) | 一种多目标航点规划方法及系统 | |
CN116430854A (zh) | 探索方法、导航方法、装置、设备、机器人系统及介质 | |
CN116358555A (zh) | 一种室内环境模型自主构建和维护方法及系统 | |
CN114442642B (zh) | 路径规划方法、装置、计算机设备和存储介质 | |
CN113885531B (zh) | 用于移动机器人的方法、移动机器人、电路、介质和程序 | |
CN115993817A (zh) | 张量场驱动分层路径规划的自主探索方法、装置及介质 | |
CN115540852A (zh) | 电子栅格地图构建方法、装置、电子设备及存储介质 | |
CN114510053A (zh) | 机器人规划路径校验方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |