本发明实施方式涉及机器人导航领域,特别是涉及一种机器人定位导航的方法、装置、计算设备和计算机存储介质。
背景技术:
在机器人、无人驾驶等移动平台中,定位系统起着至关重要的作用,准确且稳定的定位是系统的基础。目前的常见定位方式主要有激光雷达定位、视觉定位、gps卫星定位、移动基站平台定位等方法以及各种定位方法的融合,其中激光雷达定位较为可靠。bim可以提供三维建筑模型,具有数字信息仿真模拟建筑物所具有的所有真实信息,可以作为建立点云地图的基础和数据,建立精确的点云。
本发明的发明人在实现本发明的过程中,发现:bim提供三维建筑模型信息量极大,以此建立的点云图数据量也难以在机器人本地实时处理,因此提出一种在云服务器处理的方案,利用云端大脑的超强计算能力和低延时的5g网络为机器人系统提供定位服务。
技术实现要素:
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的机器人定位导航的方法、装置、计算设备及计算机存储介质。
为解决上述技术问题,本发明实施方式采用的一个技术方案是:提供一种机器人定位导航的方法,包括:接收所述机器人发送的当前位置的点云信息和目标位置,其中,所述当前位置的点云信息是实时更新的;根据所述点云信息确定机器人的当前位置;根据所述当前位置和所述目标位置规划运动路径;使用预设启发式搜索算法在所述运动路径之中搜索最佳路径;将所述机器人的当前位置和所述最佳路径发送给机器人,以使所述机器人根据所述最佳路径进行运动。
其中,所述根据所述点云信息确定机器人的当前位置包括:获取所述机器人服务区域的三维地图模型;根据所述三维地图模型,生成点云地图;根据所述点云信息和所述点云地图,确定所述机器人的当前位置。
其中,所述根据所述点云信息和所述点云地图,确定所述机器人的当前位置包括:判断所述当前位置的点云信息是否为第一帧点云信息;若是,将预设的初始位置对应的点云信息与所述当前位置的点云信息进行匹配;若匹配,则确定所述预设的初始位置作为所述当前位置;若不匹配,则根据当前位置的点云信息,在所述点云地图之中在所述预设的初始位置的周围定位所述当前位置。
其中,所述根据所述点云信息和所述点云地图,确定所述机器人的当前位置还包括:若所述当前位置的点云信息不为第一帧点云信息,获取上一帧点云信息中所确定的机器人的位置;根据所确定的位置,预估所述机器人当前的预估位置;获取所述预估位置的点云信息,并且将所述预估位置的点云信息与当前位置的点云信息进行匹配;若匹配,则确定所述预估位置为所述当前位置;若不匹配,则在所述点云地图之中在所述预估位置的周围定位所述当前位置。
其中,所述根据所述当前位置和所述目标位置规划路径包括:根据所述三维地图模型,生成栅格地图,其中,所述点云地图和栅格地图相对应;将所确定的机器人的当前位置映射至所述栅格地图之中,得到第一位置;将所述目标位置映射至所述栅格地图之中,得到第二位置;根据所述第一位置和第二位置在栅格地图中规划所述运动路径。
其中,所述根据所述三维地图模型,生成栅格地图包括:从所述三维地图模型中提取机器人所有可到达所述目标点的路面模型,并生成二维平面;根据所述二维平面在栅格图上生成栅格地图。
为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种机器人定位导航装置,包括:
接收模块:用于接收机器人发送的当前位置的点云信息和目标位置,其中,所述当前位置的点云信息是实时更新的;
位置更新模块:用于更新所述当前位置点云信息;
确定模块:用于根据所述点云信息确定机器人的当前位置;
路径规划模块:用于根据所述当前位置和所述目标位置规划运动路径;
智能搜索模块:用于使用预设启发式搜索算法在所述运动路径之中搜索最佳路径;
发送模块:用于将所述机器人的当前位置和所述最佳路径发送给机器人,以使所述机器人根据所述最佳路径进行运动。
其中,所述确定模块包括:获取单元,用于获取所述机器人服务区域的三维地图模型;生成单元,用于根据所述三维地图模型,生成点云地图;确定单元,用于根据所述点云信息和所述点云地图,确定所述机器人的当前位置。
其中,所述确定单元用于根据所述点云信息和所述点云图,确定所述机器人的当前位置具体包括:判断所述当前位置的点云信息是否为第一帧点云信息;若是,将预设的初始位置对应的点云信息与所述当前位置的点云信息进行匹配;若匹配,则确定所述预设的初始位置作为所述当前位置;若不匹配,则根据当前位置的点云信息,在所述点云地图之中在所述预设的初始位置的周围定位所述当前位置。
其中,所述确定单元用于根据所述点云信息和所述点云图,确定所述机器人的当前位置还包括:
若所述当前位置的点云信息不为第一帧点云信息,获取上一帧点云信息中所确定的机器人的位置;根据所确定的位置,预估所述机器人当前的预估位置;获取所述预估位置的点云信息,并且将所述预估位置的点云信息与当前位置的点云信息进行匹配;若匹配,则确定所述预估位置为所述当前位置;若不匹配,则在所述点云地图之中在所述预估位置的周围定位所述当前位置。
其中,所述路径规划模块包括:生成单元,用于根据三维地图模型,生成栅格地图,其中,所述点云地图和栅格地图相对应;第一映射单元,用于将所确定的机器人的当前位置映射至所述栅格地图之中,得到第一位置;第二映射单元,用于将所述目标位置映射至所述栅格地图之中,得到第二位置;规划单元,用于根据所述第一位置和第二位置在栅格地图中规划所述运动路径。
其中,所述生成单元用于根据所述三维地图模型,生成栅格地图具体包括:从所述三维地图模型中提取机器人所有可到达所述目标点的路面模型,并生成二维平面;根据所述二维平面在栅格图上生成栅格地图。
为解决上述技术问题,本发明实施方式采用的又一个技术方案是:提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述一种机器人定位导航方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述一种机器人定位导航方法对应的操作。
本发明实施方式的有益效果是:区别于现有技术的情况,本发明实施方式通过接收机器人当前位置的点云信息和目标位置,在点云地图上确定机器人当前位置,并映射到栅格地图上,在栅格地图上进行路径规划,并通过预设启发式搜索算法在规划路径中确定最佳路径,以使机器人按照最佳路径进行运动,利用云端大脑的超强计算能力为机器人提供了精准的定位服务和路径规划。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施方式的一种机器人定位导航的方法流程图;
图2是本发明实施方式的示意图;
图3是本发明实施方式一种机器人定位导航装置实施例的功能框图;
图4是本发明实施方式一种计算设备功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为本发明一种机器人定位导航的方法实施例的流程图,该方法应用于云服务器。如图1所示,该方法包括以下步骤:
步骤s101:接收机器人发送的当前位置的点云信息和目标位置,其中,所述当前位置的点云信息是实时更新的。
在本步骤中,所述机器人发送的当前位置的点云信息是通过机器人装配的激光雷达采集机器人当前位置的环境信息,并生成的点云,在一些实施例中,所述机器人发送的点云信息和目标位置是通过5g网络实时的传送到云服务器的。
可以理解的是,机器人根据规划路径实时运动,所以,机器人的当前位置是实时更新的,其更新频率与所述机器人装配的激光雷达频率一致。
步骤s102:根据所述点云信息确定机器人的当前位置。
由于机器人的当前位置是未知的,需要先确定机器人的当前位置,才能根据当前位置和目标位置确定运动路径。
在一些实施例中,在定位当前位置时,可以将点云信息在点云地图上作匹配的方式进行定位,则步骤s102又可以为:当云服务器接收到机器人发送的当前位置的点云信息后,从bim提供的三维地图模型中提取所述点云信息对应的三维地图模型,并根据所述三维地图模型生成点云地图,根据所述点云信息和所述点云地图确定机器人的当前位置。
在一些实施例中,如图2所示,在步骤s102中根据所述点云信息和所述点云地图确定机器人的当前位置包括以下步骤:
步骤s1021:判断所述当前位置的点云信息是否为第一帧点云信息;若是,执行步骤s1022,若否,执行步骤s1025。
步骤s1022:将预设的初始位置对应的点云信息与所述当前位置的点云信息进行匹配,若匹配,执行步骤s1023,若不匹配,执行步骤s1024。
步骤s1023:确定所述预设的初始位置作为所述当前位置。
步骤s1024:根据当前位置的点云信息,在所述点云地图之中在所述预设的初始位置的周围定位所述当前位置。
在通常情况下,机器人在不需要运动时会回到预设的初始位置等待下一个命令,当前位置的点云信息为第一帧点云信息时,机器人在预设的初始位置的机率非常大,因此,在预设的初始位置进行点云信息匹配,有利于提高定位当前位置的定位速度。
步骤s1025:获取上一帧点云信息中所确定的机器人的位置。
步骤s1026:根据所确定的位置,预估所述机器人当前的预估位置;
步骤s1027:获取所述预估位置的点云信息,并且将所述预估位置的点云信息与当前位置的点云信息进行匹配,若匹配,执行步骤s1028,若不匹配,执行步骤s1029;
步骤s1028:确定所述预估位置为所述当前位置;
步骤s1029:在所述点云地图之中在所述预估位置的周围定位所述当前位置。
根据预估位置,来定位机器人的当前位置,可以缩小定位当前位置的范围,相比于在机器人整个服务区域的点云地图中定位当前位置的方式,其定位速度更快。
步骤s103:根据所述当前位置和所述目标位置规划运动路径。
在本步骤中,所述规划运动路径是在栅格地图上进行规划的,其中,所述栅格地图是云端服务器根据bim提供的三维地图模型生成的,具体的,当获取到所述三维地图模型后,提取机器人所有可到达所述目标点的路面模型,并生成二维平面,根据所述二维平面在栅格图上生成栅格地图,其中,所述栅格地图和点云地图是相互对应的。当在点云地图上确定了机器人的当前位置和目标位置之后,将所述当前位置和目标位置映射到所述栅格地图中,得到第一位置和第二位置,其中,第一位置与点云地图中的当前位置相对应,第二位置与点云地图中的目标位置相对应,然后根据所述的第一位置和第二位置在所述栅格地图上规划运动路径。
可以理解的是,在栅格地图上规划运动路径时,将点云地图中可行路面对应在栅格地图上的栅格标注为1,将障碍物标注为256,规划运动路径是所有连接第一位置与第二位置的标注为1的栅格组成的。
步骤s104:使用预设启发式搜索算法在所述运动路径之中搜索最佳路径。
通过栅格地图确定的规划运动路径有很多条,机器人在运动时,按照其中一条路径运动,通过预设的启发式搜索算法在所述运动路径中搜索最佳路径,其中,所述预设启发式搜索算法可以是现有启发式搜索算法中任意一种算法,如a*算法。
步骤s105:将所述机器人的当前位置和所述最佳路径发送给机器人,以使所述机器人根据所述最佳路径进行运动。
在本步骤中,云端服务器通过5g网络将所述机器人的当前位置和所述最佳路径发送给机器人,机器人接收到所述当前位置和所述最佳路径后,通过预设的动态口令算法进行实时局部路径规划,实现机器人自主导航,此外,机器人在导航的过程中,还可以结合避障模型进行避障处理。
在本发明实施例中,通过机器人发送的当前位置点云信息和目标位置在点云地图上定位,并在栅格地图上规划路径,并通过预设启发式搜索算法搜索一条最佳路径发送给机器人,解决了机器人端运算能力不足的问题,将导航的计算过程全部在云端服务器实现,提高了机器人导航的速度,并可以实现机器人自主导航。
图3为本发明一种机器人定位导航装置实施例的功能框图。如图1所示,该装置包括:接收模块301、位置更新模块302、确定模块303、路径规划模块304、智能搜索模块305、发送模块306。
接收模块301:用于接收机器人发送的当前位置的点云信息和目标位置,其中,所述当前位置的点云信息是实时更新的;
位置更新模块302:用于更新所述当前位置点云信息;
确定模块303:用于根据所述点云信息确定机器人的当前位置;
路径规划模块304:用于根据所述当前位置和所述目标位置规划运动路径;
智能搜索模块305:用于使用预设启发式搜索算法在所述运动路径之中搜索最佳路径;
发送模块306:用于将所述机器人的当前位置和所述最佳路径发送给机器人,以使所述机器人根据所述最佳路径进行运动。
在本实施例中,确定模块303包括:获取单元3031、生成单元3032以及确定单元3033,其中,获取单元3031,用于获取所述机器人服务区域的三维地图模型;生成单元3032,用于根据所述三维地图模型,生成点云地图;确定单元3033,用于根据所述点云信息和所述点云地图,确定所述机器人的当前位置。
进一步的,所述确定单元3033用于根据所述点云信息和所述点云地图,确定所述机器人的当前位置,具体包括:判断所述当前位置的点云信息是否为第一帧点云信息;若是,将预设的初始位置对应的点云信息与所述当前位置的点云信息进行匹配;若匹配,则确定所述预设的初始位置作为所述当前位置;若不匹配,则根据当前位置的点云信息,在所述点云地图之中在所述预设的初始位置的周围定位所述当前位置。
进一步的,所述确定单元3033用于根据所述点云信息和所述点云地图,确定所述机器人的当前位置,还包括:若所述当前位置的点云信息不为第一帧点云信息,获取上一帧点云信息中所确定的机器人的位置;根据所确定的位置,预估所述机器人当前的预估位置;获取所述预估位置的点云信息,并且将所述预估位置的点云信息与当前位置的点云信息进行匹配;若匹配,则确定所述预估位置为所述当前位置;若不匹配,则在所述点云地图之中在所述预估位置的周围定位所述当前位置。
在本实施例中,所述路径规划模块304包括:生成单元3041、第一映射单元3042、第二映射单元3043以及规划单元3044,其中生成单元3041,用于根据三维地图模型,生成栅格地图,其中,所述点云地图和栅格地图相对应;第一映射单元3042,用于将所确定的机器人的当前位置映射至所述栅格地图之中,得到第一位置;第二映射单元3043,用于将所述目标位置映射至所述栅格地图之中,得到第二位置;规划单元3044,用于根据所述第一位置和第二位置在栅格地图中规划所述运动路径。
进一步的,所述生成单元3041用于根据三维地图模型,生成栅格地图,具体包括:从所述三维地图模型中提取机器人所有可到达所述目标点的路面模型,并生成二维平面;根据所述二维平面在栅格图上生成栅格地图。
在本发明实施例中,通过接收模块接收机器人发送的当前位置点云信息和目标位置,并通过确定模块确定机器人当前位置,根据接收模块和确定模块的信息在路径规划模块进行路径规划,解决了机器人端运算能力不足的问题,提高了机器人导航的速度,并可以实现机器人自主导航。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的一种机器人定位导航的方法。
图4为本发明计算设备实施例的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(communicationsinterface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述消息弹窗的展示方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:
接收机器人发送的当前位置的点云信息和目标位置,其中,所述当前位置的点云信息是实时更新的;
根据所述点云信息确定机器人的当前位置;
根据所述当前位置和所述目标位置规划运动路径;
使用预设启发式搜索算法在所述运动路径之中搜索最佳路径;
将所述机器人的当前位置和所述最佳路径发送给机器人,以使所述机器人根据所述最佳路径进行运动。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
获取所述机器人服务区域的三维地图模型;
根据所述三维地图模型,生成点云地图;
根据所述点云信息和所述点云地图,确定所述机器人的当前位置。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:所述至少一条推送消息具体为一条最新的推送消息;判断所述最新的推送消息的推送时间戳是否晚于所述记录的时间戳。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
判断所述当前位置的点云信息是否为第一帧点云信息;
若是,将预设的初始位置对应的点云信息与所述当前位置的点云信息进行匹配;
若匹配,则确定所述预设的初始位置作为所述当前位置;
若不匹配,则根据当前位置的点云信息,在所述点云地图之中在所述预设的初始位置的周围定位所述当前位置。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
若所述当前位置的点云信息不为第一帧点云信息,获取上一帧点云信息中所确定的机器人的位置;
根据所确定的位置,预估所述机器人当前的预估位置;
获取所述预估位置的点云信息,并且将所述预估位置的点云信息与当前位置的点云信息进行匹配;
若匹配,则确定所述预估位置为所述当前位置;
若不匹配,则在所述点云地图之中在所述预估位置的周围定位所述当前位置。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
根据所述三维地图模型,生成栅格地图,其中,所述点云地图和栅格地图相对应;
将所确定的机器人的当前位置映射至所述栅格地图之中,得到第一位置;
将所述目标位置映射至所述栅格地图之中,得到第二位置;
根据所述第一位置和第二位置在栅格地图中规划所述运动路径。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:从所述三维地图模型中提取机器人所有可到达所述目标点的路面模型,并生成二维平面;根据所述二维平面在栅格图上生成栅格地图。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的消息弹窗的展示装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。