具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明下述各实施例如无特别说明均可应用于如图1所示的机器人路径干涉检测系统,如图1所示,机器人路径干涉检测系统包括服务器100及多个可以移动的机器人200。上述服务器100分别与机器人200通信连接。为了方便描述,在本发明实施例中,将一个机器人200作为第一机器人,则将与服务器100通信的其他的机器人200作为第二机器人。
上述机器人200内预先设置运行场地的地图,并可以利用配备的传感器结合运行场地的地图确定该机器人200的实时位置,例如,上述实时位置可以是地图上的栅格坐标。机器人200可以依据当前的位置信息规划抵到目的地的符合用户预期的路径。上述路径可以由多个栅格路径点组成的集合。机器人200的尺寸、安全距离可以预先配置于机器人200内,例如机器人200的高度和宽度。机器人200还可以识别运动方向上的障碍物(例如运行的其他机器人200)。
请参考图2,上述服务器100包括机器人路径干涉检测装置、存储器111、处理器112、通信单元113。
所述存储器111、处理器112、通信单元113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述机器人路径干涉检测装置包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器111中或固化在所述机器人200的操作系统(Operating System,OS)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如机器人路径干涉检测装置所包括的软件功能模块及计算机程序等。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序或者数据。所述通信单元113用于通过所述网络建立机器人200与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图2所示的结构仅为服务器100的结构示意图,所述服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
第一实施例
请参考图3,图3为本发明较佳实施例提供的一种机器人路径干涉检测方法的流程图。上述机器人路径干涉检测方法应用于图1中的机器人路径干涉检测系统。上述机器人路径干涉检测方法包括以下步骤:
步骤S101,当所述第一机器人侦测到所述第二机器人时,向所述服务器100发送检测指令。
在本发明实施例,第一机器人上可以设有感知单元(例如红外探头、图像识别单元),用于在运行过程中会实时感知周围环境中的障碍物。对应第一机器人而言,其他机器人200也属于障碍物。在第一机器人感知到附近存在障碍物,通过对识别到的障碍物进行尺寸或标识特征的提取,以判断其是否为第二机器人。若判定为第二机器人,则向服务器100发送检测指令,以便服务器100启动判断第一机器人与第二机器人之间的路径是否会存在干涉。
步骤S102,所述服务器100依据所述检测指令,分别获取所述第一机器人的第一剩余路径及所述第二机器人的第二剩余路径。
在本发明实施例中,在服务器100接收到检测指令时,服务器100分别从第一机器人获取第一剩余路径和正在运行中的第二机器人的第二剩余路径。需要说明的是,第一机器人预先生成的位移路径为第一位移路径,第二机器人生成的位移路径为第二位移路径。上述第一剩余路径属于第一位移路径,上述第二剩余路径属于第二位移路径。位移路径是由多个栅格路径点组成,机器人200在生成位移路径时,会根据预计抵达每个栅格路径点的先后顺序对位移路径上的栅格路径点进行排序,以使每一个机器人200执行或准备执行的位移路径上的每一个栅格路径点都对应一个序号。也可以理解为,位移路径可以是由多个排列有序的栅格路径点组成集合。
具体地,如图4所示,在本发明实施例中,步骤S102还可以包括以下子步骤:
子步骤S1021,分别获取所述第一位移路径及第二位移路径。
在本发明实施例中,服务器100依据检测指令从第一机器人内获取其预先生成的由多个栅格路径点组成的第一位移路径,从第二机器人内获取其预先生成由多个栅格路径点组成的第二位移路径。
子步骤S1022,接收所述第一机器人当前的第一位置信息及所述第二机器人当前的第二位置信息。
在本发明实施例中,每一个机器人200均会实时的确定其当前在运行场景对应的地图中的位置,并将确认的位置信息反馈至服务器100。服务器100接收到第一机器人当前的第一位置信息及所述第二机器人当前的第二位置信息。
子步骤S1023,根据所述第一位置信息从所述第一位移路径中划分出所述第一剩余路径及根据所述第二位置信息从所述第二位移路径中划分出所述第二剩余路径。
在本发明实施例中,上述根据第一位置信息从第一位移路径中获取所述第一剩余路径的方式包括:依据所述第一位置信息在所述第一位移路径上匹配第一目标栅格路径点。通常而言,机器人200每一次移动后的位置信息均与位移路径上的一个栅格路径点基本一致,上述基本一致可以理解为二者之间的距离不差超预定的误差阈。可选地,将与所述第一位置信息之间距离满足预定的误差阈的栅格路径点作为第一目标栅格路径点。也可以理解为,当前第一机器人的实际位置为第一位置信息时,该第一机器人在第一位移路径上对应的位置为第一目标栅格路径点。将第一位移路径中序号排列于所述第一目标栅格路径点之后的栅格路径点组成第一剩余路径。例如,第一位移路径中对应的栅格路径点的排序序号依次是1-100,与该第一位置信息匹配的第一目标栅格路径点为第一位移路径上排列于第20位的栅格路径点,则将第一位移路径上排列于第20位到第100为的栅格路径点作为第一剩余路径。上述第二剩余路径获取的原理与第一剩余路径获得的原理相同,也是匹配出对应的第二目标栅格路径点,再进行路段划分,在此不再赘述。
在本发明实施例中,机器人200的实时状态可以表示为:
其中,A该机器人200预先生成的位移路径,其可以是多个栅格路径点位置信息组成的集合,wA(xi,yi)代表位移路径上第i个的栅格路径点的栅格位置坐标值,L代表该机器人200的实际位置,w*(x*,y*)代表机器人200的实际位置对应的栅格坐标值,li(xi,yi)代表在位移路径上第i个栅格路径点与相邻上一次移动前的位置之间的距离。
步骤S103,将所述第一剩余路径与所述第二剩余路径进行比较,以获得比较结果。
在本发明实施例中,上述第一剩余路径与第二剩余路径之间的比较可以是将第一剩余路径上对应的栅格路径点与第二剩余路径上对应的栅格路径点进行比较。具体地,可以是先计算所述第一剩余路径中所述栅格路径点与所述第二剩余路径中所述栅格路径点之间的距离长度值。再将获得的所述距离长度值与所述安全距离的预设倍数进行比较,以获得比较结果。需要说明的是,不同的机器人200对应的安全距离不尽相同,因此,当判断第一机器人是否会与其他的第二机器人的路径发生干涉时,则均是以第一机器人的安全距离作为生成划分长度的安全距离。
进一步地,计算所述第一剩余路径中所述栅格路径点与所述第二剩余路径中所述栅格路径点之间的距离长度值的方式可以是:
对所述第一剩余路径对应的栅格路径点按照所述第一机器人预计抵达的先后顺序进行重新排序,以使所述第一剩余路径的每一个所述栅格路径点对应一序号,对所述第二剩余路径对应的栅格路径点按照所述第二机器人预计抵达的先后顺序进行重新排序,以使所述第二剩余路径的每一个所述栅格路径点对应一序号。依次计算所述第一剩余路径中所述栅格路径点与所述第二剩余路径中序号相同的所述栅格路径点之间的所述距离长度值,直至不存在序号相同的所述栅格路径点。需要说明的是,上述直至不存在序号相同的所述栅格路径点是指依次计算每一组具有相同序号的栅格路径点之间的距离,直至到达第一剩余路径的最后一个栅格路径点或到达第二剩余路径的最后一个栅格路径点
作为一种实施方式,可以采用下述算法实现步骤S103,具体为:
其中,ljk代表第一位移路径上的序号为ij栅格路径点与第二位移路径上的序号为ik的栅格路径点的距离长度值,mjs为第一位置信息对应的第一目标栅格路径点在第一位移路径上对应的序号,mks为第二位置信息对应的第二目标栅格路径点在第二位移路径上对应的序号。ij的取值可以是不小于mjs且不大于mjs+min(mj-mjs,mk-mks)之间的值,且mj为第一位移路径对应的栅格路径点的总个数;ik的取值可以是不小于mks且不大于mks+min(mj-mjs,mk-mks)之间的值,且mk为第二位移路径对应的栅格路径点的总个数。需要说明的是,第一位移路径上序号为ij栅格路径点在第一剩余路径中对应的序号与第二位移路径上序号为ik的栅格路径点第二剩余路径中对应的序号相同。
代表第一路径上的序号为ij的栅格路径点的第一方向坐标值,代表第一路径上的序号为ij的栅格路径点的第二方向坐标值。代表第二路径上的序号为ik的栅格路径点的第一方向坐标值,代表第二路径上的序号为ik的栅格路径点的第二方向坐标值。
Aj代表第一位移路径上的栅格路径点,Ak代表第二位移路径上的栅格数据点,wj(xj,yj)代表第一位移路径上的栅格路径点的栅格坐标信息,wk(xk,yk)代表第二位移路径上的栅格路径点的栅格坐标信息。
步骤S104,根据所述比较结果,对所述第一机器人与第二机器人之间是否存在路径干涉进行判定。
在本发明实施例中,当所述比较结果包括至少一个所述距离长度值小于所述安全距离的预设倍数时,则预判所述第一机器人与第二机器人存在路径干涉。当所述比较结果中不包括所述距离长度值小于所述安全距离的所述预设倍数时,则预判所述第一机器人与第二机器人不存在路径干涉。
第二实施例
本发明较佳实施例提供的一种机器人路径干涉检测系统包括服务器100、第一机器人及第二机器人,所述服务器100分别与所述第一机器人和第二机器人通信连接。
所述第一机器人,用于在侦测到所述第二机器人时,向所述服务器100发送检测指令。
所述服务器100,用于依据所述检测指令,分别获取所述第一机器人的第一剩余路径及所述第二机器人的第二剩余路径。
优选地,所述第一机器人内预先生成由多个栅格路径点组成的第一位移路径;所述第二机器人内预先生成由多个栅格路径点组成的第二位移路径。分别获取所述第一位移路径及第二位移路径,接收所述第一机器人当前的第一位置信息及所述第二机器人当前的第二位置信息,根据所述第一位置信息从所述第一位移路径中划分出所述第一剩余路径及根据所述第二位置信息从所述第二位移路径中划分出所述第二剩余路径。进一步地,所述第一位移路径对应的所述栅格路径点按照所述第一机器人预计抵达的先后顺序排序,划分出所述第一剩余路径的方式具体可以是依据所述第一位置信息在所述第一位移路径上匹配第一目标栅格路径点,将所述第一位移路径中排列于所述第一目标栅格路径点之后的栅格路径点组成所述第一剩余路径。
所述服务器100,还用于将所述第一剩余路径与所述第二剩余路径进行比较,以获得比较结果。
优选地,计算所述第一剩余路径中所述栅格路径点与所述第二剩余路径中所述栅格路径点之间的距离长度值。将获得的所述距离长度值与所述安全距离的预设倍数进行比较,以获得比较结果。
所述服务器100,还用于根据所述比较结果,对所述第一机器人与第二机器人之间是否存在路径干涉进行判定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
综上所述,本发明提供的一种机器人路径干涉检测方法及系统。其中所述机器人路径干涉检测方法应用于机器人路径干涉检测系统,所述机器人路径干涉检测方法包括:当所述第一机器人侦测到所述第二机器人时,向所述服务器发送检测指令;所述服务器依据所述检测指令,分别获取所述第一机器人的第一剩余路径及所述第二机器人的第二剩余路径;将所述第一剩余路径与所述第二剩余路径进行比较,以获得比较结果;根据所述比较结果,对所述第一机器人与第二机器人之间是否存在路径干涉进行判定。从而实现为第一机器人判定与感知到的第二机器人之间是否会产生相遇,无需复杂的分析轨迹是否平行,判定方法更加高效简单,便于机器人提前采取措施避免相遇。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。