具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施提供的送餐机器人避让方法的应用场景示意图。后台服务端100与第一送餐机器人300、第二送餐机器人400及送餐服务端均通信连接,后台服务端100依据第一送餐机器人300的预设路径和第二送餐机器人400的预设路径判断是否存在路径交叉,当存在路径交叉时,从送餐服务端获取第一送餐机器人300的餐点服务时间及第二送餐机器人400的餐点服务时间,然后,从送餐服务端获取第一送餐机器人300的餐点服务时间及第二送餐机器人400的餐点服务时间,依据第一送餐机器人300的预设路径、第二送餐机器人400的预设路径、第一送餐机器人300的当前位置信息、第二送餐机器人400的当前位置信息、所述第一送餐机器人300的餐点服务时间、所述第二送餐机器人400的餐点服务时间及交叉点的位置信息,从第一送餐机器人300及第二送餐机器人400中确定出避让送餐机器人及被避让送餐机器人,并计算避让送餐机器人的避让等待时长,以使避让送餐机器人移动至避让点暂停避让等待时长进行避让。
需要指出的是,虽然图1中只示出一个第一送餐机器人300及一个第二送餐机器人400,但并不意味着本发明只适用于一个第一送餐机器人300与一个第二送餐机器人400的情况,当有多个第一送餐机器人300与多个第二送餐机器人400时,每个第一送餐机器人300与每个第二送餐机器人400使用的方案是一样的,本领域技术人员完全可以依据本发明实施例揭示的送餐机器人避让方法、在不做出新的发明创造的前提下实现多个第一送餐机器人300与多个第二送餐机器人400的情况下的送餐机器人避让方法。
请参照图2,图2示出了本发明实施例提供的后台服务端100的方框示意图。后台服务端100可以是,但不限于个人电脑(personal computer,PC)、服务器等等。后台服务端100的操作系统可以是,但不限于,Windows系统、Linux系统等。所述后台服务端100包括送餐机器人避让装置200、存储器101、存储控制器102及处理器103。
存储器101、存储控制器102及处理器103各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。送餐机器人避让装置200包括至少一个可以软件或固件(firmware)的形式存储于存储器101中或固化在所述后台服务端100的操作系统(operating system,OS)中的软件功能模块。处理器103用于执行存储器101中存储的可执行模块,例如送餐机器人避让装置200所包括的软件功能模块及计算机程序等。
其中,存储器101可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器101用于存储程序,所述处理器103在接收到执行指令后,执行所述程序。
处理器103可以是一种集成电路芯片,具有信号处理能力。上述的处理器103可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)、语音处理器以及视频处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器103也可以是任何常规的处理器等。
第一实施例
请参照图3,图3示出了本发明实施例提供的送餐机器人避让方法流程图。该方法包括以下步骤:
步骤S101,依据第一送餐机器人的预设路径与第二送餐机器人的预设路径判断第一送餐机器人的预设路径与第二送餐机器人的预设路径是否存在路径交叉。
在本发明实施例中,第一送餐机器人300的预设路径是后台服务端100预先为第一送餐机器人300规划的移动路径,第一送餐机器人300的预设路径中包括了至少两个按照顺序排列的第一导航点,第一送餐机器人300按照第一导航点的顺序依次途径每个第一导航点,第二送餐机器人400的预设路径是后台服务端100预先为第二送餐机器人400规划的移动路径,第二送餐机器人400的预设路径中包括了至少两个按照顺序排列的第二导航点,第二送餐机器人400按照第二导航点的顺序依次途径每个第二导航点。
作为一种实施方式,依据第一送餐机器人300的预设路径与第二送餐机器人400的预设路径判断第一送餐机器人300的预设路径与第二送餐机器人400的预设路径是否存在路径交叉的方法可以是:
首先,计算每个第一导航点与每个第二导航点之间的多个导航距离;
其次,对多个导航距离进行排序,得到多个导航距离中的最小导航距离;
最后,当最小导航距离小于预设安全距离时,判定第一送餐机器人的预设路径与第二送餐机器人的预设路径存在路径交叉。
在本发明实施例中,预设安全距离指第一送餐机器人300与第二送餐机器人400相遇时,在不改变当前移动路径的情况下可以顺利通过的最小距离值。例如,请参照图4,图4示出了第一送餐机器人300的预设路径与第二送餐机器人400的预设路径之间的导航距离示例图,图4中,第一送餐机器人300的预设路径包括A1、A2、A3三个第一导航点,第二送餐机器人400的预设路径包括B1、B2、B3三个第二导航点,预设安全距离为5,A1和B1、A1和B2、A1和B3、A2和B1、A2和B2、A2和B3、A3和B1、A3和B2、A3和B3之间的导航距离分别为6、4、12、7、3、7、10、8、6,则多个第一导航点与多个第二导航点之间多个导航距离中最小导航距离为3,且小于预设安全距离5,因此,判定第一送餐机器人300的预设路径与第二送餐机器人400的预设路径存在路径交叉。
步骤S102,当第一送餐机器人的预设路径与第二送餐机器人的预设路径存在路径交叉时,获取交叉点的位置信息、第一送餐机器人的当前位置信息及第二送餐机器人的当前位置信息。
在本发明实施例中,每个第一导航点按照途经的先后顺序均有一个对应的第一序号,每个第二导航点按照途经的先后顺序均有一个对应的第二序号,按照预设规则从与最小导航距离对应的第一导航点和第二导航点中确定交叉点,预设规则可以是与最小导航距离对应的第一导航点与第二导航点中序号较小的一个,也可以是随机从最小导航距离对应的第一导航点与第二导航点中选取其中任意一个。
步骤S103,从送餐服务端获取第一送餐机器人的餐点服务时间及第二送餐机器人的餐点服务时间。
在本发明实施例中,餐点服务时间包括点餐时间和送餐时间,其中,点餐时间是用户点该餐点时的下单时间,送餐服务端在用户点餐时记录用户点餐的时间信息,送餐时间是送餐机器人接收餐点配送任务中所要配送的餐点的时间,送餐机器人接收送餐任务,送餐服务端在送餐开始时,记录送餐时间。
步骤S104,依据第一送餐机器人的预设路径、第二送餐机器人的预设路径、第一送餐机器人的当前位置信息、第二送餐机器人的当前位置信息、第一送餐机器人的餐点服务时间、第二送餐机器人的餐点服务时间交叉点的位置信息,从第一送餐机器人及第二送餐机器人中确定出避让送餐机器人及被避让送餐机器人。
在本发明实施例中,首先,依据第一送餐机器人300的预设路径、第二送餐机器人400的预设路径、第一送餐机器人300的当前位置信息、第二送餐机器人400的当前位置信息、第一送餐机器人300的餐点服务时间、第二送餐机器人400的餐点服务时间及交叉点的位置信息计算出第一送餐机器人300的避让优先级及第二送餐机器人400的避让优先级,将避让优先级小的送餐机器人确定为避让送餐机器人,将避让优先级大的送餐机器人确定为被避让送餐机器人。
请参照图5,步骤S104还包括以下子步骤:
子步骤S1041,依据当前系统时间及第一送餐机器人的餐点服务时间计算出第一送餐机器人的第一优先级因子。
在本发明实施例中,第一送餐机器人300的餐点服务时间包括第一送餐机器人300的送餐时间和第一送餐机器人300的点餐时间,其中,第一送餐机器人300的送餐时间是指第一送餐机器人300接收该餐点送餐任务的时刻,第一送餐机器人300的点餐时间是指用户下单该餐点的时刻。
作为一种实施方式,依据当前系统时间及第一送餐机器人300的餐点服务时间计算出第一送餐机器人300的第一优先级因子的方法可以是:
首先,依据所述当前系统时间及所述第一送餐机器人的送餐时间确定第一送餐机器人的送餐优先级因子。
在本发明实施例中,每个餐点从完成到递送抵达餐桌都有时间要求,即要小于预设送餐时长,第一送餐机器人300的送餐优先级因子可以通过如下公式计算得到:
其中,Pr1表示第一送餐机器人300的送餐优先级因子,tn表示当前系统时间,ts1表示第一送餐机器人300的送餐时间,Tr表示预设送餐时长。
其次,依据所述当前系统时间及所述第一送餐机器人的点餐时间确定第一送餐机器人的点餐优先级因子。
在本发明实施例中,每个餐点从点餐到递送抵达餐桌都要求在预设点餐时长内尽快完成,第一送餐机器人300的点餐优先级因子可以通过如下公式计算得到:
其中,Pw1表示第一送餐机器人300的点餐优先级因子,a表示预设时长倍数,可以根据不同的场景进行设置,Tl1表示剩余送餐路径耗时,tn表示系统时间,t01表示第一送餐机器人300的点餐时间,Tm表示平均送餐时间,v表示预设移动速度,s1表示第一送餐机器人300的预设路径中距离第一送餐机器人300的当前位置最近的导航点,m1表示第一送餐机器人300的预设路径中序号最大的导航点,即第一送餐机器人300的预设路径中最后一个导航点。
最后,依据所述第一送餐机器人的送餐优先级因子及所述第一送餐机器人的点餐优先级因子确定第一送餐机器人的第一优先级因子。
在本发明实施例中,确定第一送餐机器人300的第一优先级因子可以通过如下公式计算得到:
P11=Pr1·Pw1
其中,P11表示第一送餐机器人300的第一优先级因子,Pr1表示第一送餐机器人300的送餐优先级因子,Pw1表示第一送餐机器人300的点餐优先级因子。
子步骤S1042,依据当前系统时间及第二送餐机器人的餐点服务时间计算出第二送餐机器人的第一优先级因子。
在本发明实施例中,第二送餐机器人400的餐点服务时间包括第二送餐机器人400的送餐时间和第二送餐机器人400的点餐时间,其中,第二送餐机器人400送餐时间是指第二送餐机器人400接收该餐点送餐任务的时刻,第二送餐机器人400的点餐时间是指用户下单该餐点的时刻。
作为一种实施方式,依据当前系统时间及第二送餐机器人400的餐点服务时间计算出第二送餐机器人400的第一优先级因子的方法可以是:
首先,依据所述当前系统时间及所述第二送餐机器人的送餐时间确定第二送餐机器人的送餐优先级因子。
在本发明实施例中,每个餐点从完成到递送抵达餐桌都有时间要求,即要小于预设送餐时长,第二送餐机器人400的送餐优先级因子可以通过如下公式计算得到:
其中,Pr2表示第二送餐机器人400的送餐优先级因子,tn表示当前系统时间,ts2表示第二送餐机器人400的送餐时间,Tr表示预设送餐时长。
其次,依据所述当前系统时间及所述第二送餐机器人的点餐时间确定第二送餐机器人的点餐优先级因子。
在本发明实施例中,每个餐点从点餐到递送抵达餐桌都要求在预设点餐时长内尽快完成,第二送餐机器人400的点餐优先级因子可以通过如下公式计算得到:
其中,Pw2表示第二送餐机器人400的点餐优先级因子,a表示表示预设时长倍数,可以根据不同的场景进行设置,Tl2表示剩余送餐路径耗时,tn表示系统时间,t02表示第二送餐机器人400的点餐时间,Tm表示平均送餐时间,v表示预设移动速度,s2表示第二送餐机器人400的预设路径中距离第一送餐机器人300的当前位置最近的导航点,m2表示第二送餐机器人400的预设路径中序号最大的导航点,即第二送餐机器人400的预设路径中最后一个导航点。
最后,依据所述第二送餐机器人的送餐优先级因子及所述第二送餐机器人的点餐优先级因子确定第二送餐机器人的第一优先级因子。
在本发明实施例中,确定第二送餐机器人400的第一优先级因子可以通过如下公式计算得到:
P21=Pr2·Pw2
其中,P21表示第二送餐机器人400的第一优先级因子,Pr2表示第二送餐机器人400的送餐优先级因子,Pw2表示第二送餐机器人400的点餐优先级因子。
子步骤S1043,依据第一送餐机器人的预设路径及第一送餐机器人的当前位置信息计算出第一送餐机器人的第二优先级因子,其中,第一送餐机器人的第二优先级因子是第一送餐机器人已走路程占第一送餐机器人的预设路径的总路程的百分比。
在本发明实施例中,第一送餐机器人300在移动过程中,第一送餐机器人300的实时位置与第一送餐机器人300的预设路径之间可能会有偏差,也就是说,第一送餐机器人300可能不会严格按照第一送餐机器人300的预设路径上的导航点进行移动,因此,在计算第一送餐机器人300已走路程占第一送餐机器人300的预设路径的总路程的百分比时,首先,确定第一送餐机器人300的预设路径上的第一导航点中与第一送餐机器人300的当前位置最接近的第一导航点,然后,依据与第一送餐机器人300的当前位置最接近的第一导航点及第一送餐机器人300的预设路径计算第一送餐机器人300已走路程占第一送餐机器人300的预设路径的总路程的百分比,计算公式如下:
其中,x*和y*分别表示第一送餐机器人300的当前位置的横坐标和纵坐标,i表示第一预设路径上第一导航点的序号,m表示第一预设路径上第一导航点的个数,xi和yi分别表示第一导航点i的横坐标和纵坐标,li *(x*,y*)表示第一送餐机器人300的当前位置与第一导航点i之间的距离,wi(xi,yi)表示第一送餐机器人300的预设路径,(xs,ys)表示第一送餐机器人300的预设路径上与第一送餐机器人300的(x*,y*)的当前位置距离最近的导航点,ls(xs,ys)表示(xs,ys)与(x*,y*)之间的距离,ws(xs,ys)表示(xs,ys)组成的移动路径,P1表示第一送餐机器人300的第二优先级因子,li表示第一导航点i与第一导航点(i-1)之间的距离。
子步骤S1044,依据第二送餐机器人的预设路径及第二送餐机器人的当前位置信息计算出第二送餐机器人的第二优先级因子,其中,第二送餐机器人的第二优先级因子是第二送餐机器人已走路程占第二送餐机器人的预设路径的总路程的百分比。
在本发明实施例中,第二送餐机器人400的第二优先级因子的计算方法与第一送餐机器人300的第二优先级因子的计算方法类似,此处不再赘述。
子步骤S1045,依据第一送餐机器人的第一优先级因子和第二优先级因子及第二送餐机器人的第一优先级因子和第二优先级因子确定出避让送餐机器人及被避让送餐机器人。
在本发明实施例中,首先,依据第一送餐机器人300的第一优先级因子和第一送餐机器人300的第二优先级因子计算出第一送餐机器人300的避让优先级,然后,依据第二送餐机器人400的第一优先级因子及第二送餐机器人400的第二优先级因子计算出第二送餐机器人400的避让优先级,最后,将避让优先级低的送餐机器人确定为避让送餐机器人,将避让优先级高的送餐机器人确定为被避让送餐机器人。
作为一种实施方式,依据第一送餐机器人300的第一优先级因子和第二优先级因子及第二送餐机器人400的第一优先级因子和第二优先级因子确定出避让送餐机器人及被避让送餐机器人的方法可以是:
首先,依据第一送餐机器人的第一优先级因子及第一送餐机器人的第二优先级因子计算出第一送餐机器人的避让优先级。
在本发明实施例中,计算第一送餐机器人300的避让优先级可以通过以下公式计算得到:
R1=a1*P11+a2*P12
其中,R1表示第一送餐机器人300的避让优先级,a1表示第一优先级因子的权重,即第一优先级对避让优先级的影响权重,P11表示第一送餐机器人300的第一优先级因子,a2表示第二优先级因子的权重,即第二优先级对避让优先级的影响权重,P12表示第一送餐机器人300的第二优先级因子。
其次,依据第二送餐机器人的第一优先级因子及第二送餐机器人的第二优先级因子计算出第二送餐机器人的避让优先级。
在本发明实施例中,计算第二送餐机器人400的避让优先级可以通过以下公式计算得到:
R2=a1*P21+a2*P22
其中,R2表示第二送餐机器人400的避让优先级,a1表示第一优先级因子的权重,即第一优先级对避让优先级的影响权重,P21表示第二送餐机器人400的第一优先级因子,a2表示第二优先级因子的权重,即第二优先级对避让优先级的影响权重,P22表示第二送餐机器人400的第二优先级因子。
第三,当第一送餐机器人的避让优先级大于第二送餐机器人的避让优先级时,将第一送餐机器人确定为被避让送餐机器人,并将第二送餐机器人确定为避让送餐机器人;
最后,当第一送餐机器人避让优先级小于第二送餐机器人避让优先级时,将第一送餐机器人确定为避让送餐机器人,并将第二送餐机器人确定为被避让送餐机器人。
步骤S105,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算出避让送餐机器人的避让等待时长及避让点,以使避让送餐机器人移动至避让点暂停避让等待时长进行避让。
在本发明实施例中,避让送餐机器人是第一送餐机器人300与第二送餐机器人400中避让优先级低的送餐机器人,当避让送餐机器人是第一送餐机器人300时,第二送餐机器人400为被避让送餐机器人,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算出避让送餐机器人的避让等待时长是通过依据第一送餐机器人300的当前位置信息、第二送餐机器人400的当前位置信息及交叉点的位置信息计算出第一送餐机器人300的避让等待时长,以使第一送餐机器人300暂停避让等待时长进行避让,当避让送餐机器人是第二送餐机器人400时,第一送餐机器人300为被避让送餐机器人,确定避让等待时长的方法与避让送餐机器人是第一送餐机器人300时,第二送餐机器人400为被避让送餐机器人的情形类似。
作为一种实施方式,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算出避让送餐机器人的避让等待时长,以使避让送餐机器人暂停避让等待时长进行避让的方法可以是:
首先,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算避让送餐机器人的最终避让距离。
在本发明实施例中,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算避让送餐机器人的避让距离的实现方式可以是:
第一步,先根据避让送餐机器人的当前位置信息及交叉点的位置信息计算出避让送餐机器人与交叉点之间的第一物理距离。
在本发明实施例中,当避让送餐机器人为第一送餐机器人300时,第一物理距离为第一送餐机器人300的当前位置与交叉点之间的物理距离,当避让送餐机器人为第二送餐机器人400时,第一物理距离为第二送餐机器人400的当前位置与交叉点之间的物理距离。以避让送餐机器人为第一送餐机器人300为例,计算第一物理距离的方法可以是:
第一送餐机器人300的当前位置信息与交叉点的位置信息均适用栅格坐标表示,第一物理距离可以通过如下公式计算得到:
l1=|xs1-xc|+|ys1-yc|
其中,xc和yc分别表示交叉点的横坐标和纵坐标,xs1和ys1分别表示第一送餐机器人300的当前位置的横坐标和纵坐标。
第二步,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算出初始避让距离。
作为一种实施方式,计算初始避让距离的方法可以是:
第二步的第一子步,依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息计算出避让送餐机器人与被避让送餐机器人之间的交叉角度。
在本发明实施例中,以避让送餐机器人为第一送餐机器人300,以被避让送餐机器人为第二送餐机器人400为例,计算避让送餐机器人与被避让送餐机器人之间的交叉角度即计算第一送餐机器人300与第二送餐机器人400之间的交叉角度,第一送餐机器人300与第二送餐机器人400之间的交叉角度可以是第一送餐机器人300的当前位置与交叉点的连线和第二送餐机器人400的当前位置与交叉点的连线之间的夹角,交叉角度可以通过如下公式计算得出:
其中,xc和yc分别表示交叉点的横坐标和纵坐标,xs1和ys1分别表示第一送餐机器人300的当前位置的横坐标和纵坐标,xs2和ys2分别表示第二送餐机器人400的当前位置的横坐标和纵坐标,α表示交叉角度。
第二步的第二子步,依据交叉角度计算出初始避让距离。
在本发明实施例中,初始避让距离可以通过如下公式计算得到:
k2≥k1≥3
其中,
表示初始避让距离,α表示交叉角度,k
1表示第一安全系数,k
2表示第二安全系数,l
q表示预设安全距离。
第三步,将第一物理距离与初始避让距离中的较大值作为最终避让距离。
在本发明实施例中,若第一物理距离大于初始避让距离,则将初始化避让距离作为最终避让距离,若第一物理距离小于或者等于初始避让距离,则将第一物理距离作为最终避让距离。
其次,依据避让送餐机器人的最终避让距离及预设移动速度计算出避让送餐机器人的避让等待时长。
在本发明实施例中,避让等待时长包括第一避让时长和第二避让时长,其中,第一避让时长可以通过避让送餐机器人的当前位置与交叉点之间的物理距离除以预设移动速度计算获得,第二避让时长可以通过避让送餐机器人的最终避让距离除以预设移动速度计算获得,其中预设移动速度可以是送餐机器人的平均移动速度。
在本发明实施例中,避让等待时长可以通过如下公式计算得到:
其中,t1表示第一避让时长,t2表示第二避让时长,v表示预设移动速度,s表示距离避让送餐机器人的当前位置最近的导航点,c表示交叉点,li表示导航点i与导航点(i-1)之间的距离,ld表示避让送餐机器人的最终避让距离。
最后,依据避让送餐机器人的当前位置及最终避让距离确定避让点。
在本发明实施例中,避让点是距离避让送餐机器人的当前位置为最终避让距离的导航点,其中,该导航点可以位于第一送餐机器人300的预设路径或者第二送餐机器人400的预设路径上,也可以即不位于第一送餐机器人300的预设路径也不位于第二送餐机器人400的预设路径上,避让点与避让送餐机器人的当前位置之间的距离为最终避让距离并不一定是避让点与避让送餐机器人的当前位置之间的距离刚好等于最终避让距离,也可以是避让点与避让送餐机器人的当前位置之间的距离在最终避让距离的预设范围内。例如,避让送餐机器人为第一送餐机器人300,第一送餐机器人300的预设路径包括A、B、C三个导航点,最终避让距离,也就是第一最终避让距离为5,第一送餐机器人300的当前位置距离导航点A为3,第一送餐机器人300的当前位置距离导航点B为6,第一送餐机器人300的当前位置距离导航点C为9,预设范围为(最终避让距离-1,最终避让距离+1),则确定导航点B为避让点。又例如,避让送餐机器人为第一送餐机器人300,第一送餐机器人300的预设路径包括A、B、C三个导航点,最终避让距离,也就是第一最终避让距离为5,第一送餐机器人300的当前位置距离导航点A为3,第一送餐机器人300的当前位置距离导航点B为9,第一送餐机器人300的当前位置距离导航点C为12,第一送餐机器人300的当前位置距离导航点D为5,则导航点D为避让点。
在本发明实施例中,确定避让点后,如果避让点没有处于预设路径上,将该避让点加入到预设路径上,并设置避让等待时长,后台服务端100将加入该避让点并设置避让等待时长的预设路径发送至避让送餐机器人,以使避让送餐机器人移动至避让点暂停避让等待时长进行避让。
在本发明实施例中,通过合理确定第一送餐机器人300及第二送餐机器人400避让优先级,依据避让优先级从第一送餐机器人300及第二送餐机器人400中确定出避让送餐机器人、被避让送餐机器人、避让等待时长及避让点,与现有技术相比,具有以下有益效果:
第一,将送餐机器人距离交叉点的距离作为避让优先级的第一优先级因子,为离交叉点较近的送餐机器人设置较高的优先级,使得离交叉点较近的送餐机器人尽快通过交叉点,减少对路径交叉的双方送餐机器人移动效率的影响。
第二,将送餐机器人已走路程占预设路径的总路程的百分比作为避让优先级的第二优先级因子,为预计先走完预设路径的送餐机器人设置较高的优先级,使得预计先走完预设路径的送餐机器人尽快走完预设路径,减少对路径交叉的双方送餐机器人移动效率的影响。
第三,根据不同场景为第一优先级因子与第二优先级因子设置不同的权重,一方面使得确定出的避让送餐机器人更合理,另一方面使得本发明实施例中的送餐机器人避让方法适用的场景更丰富。
第二实施例
请参照图6,图6示出了本发明实施例提供的送餐机器人避让装置200的方框示意图。送餐机器人避让装置200应用于后台服务端100,其包括判断模块201;第一获取模块202;第二获取模块203;确定模块204;避让模块205。
判断模块201,用于依据第一送餐机器人的预设路径与第二送餐机器人的预设路径判断第一送餐机器人的预设路径与第二送餐机器人的预设路径是否存在路径交叉。
在本发明实施例中,判断模块201用于执行步骤S101。
第一获取模块202,用于当第一送餐机器人的预设路径与第二送餐机器人的预设路径存在路径交叉时,获取交叉点的位置信息及第一送餐机器人的当前位置信息及第二送餐机器人的当前位置信息。
在本发明实施例中,第一获取模块202用于执行步骤S102。
第二获取模块203,用于从送餐服务端获取第一送餐机器人的餐点服务时间及第二送餐机器人的餐点服务时间。
在本发明实施例中,第二获取模块203用于执行步骤S103。
确定模块204,用于依据第一送餐机器人的预设路径、第二送餐机器人的预设路径、第一送餐机器人的当前位置信息、第二送餐机器人的当前位置信息、所述第一送餐机器人的餐点服务时间、所述第二送餐机器人的餐点服务时间及交叉点的位置信息,从第一送餐机器人及第二送餐机器人中确定出避让送餐机器人及被避让送餐机器人。
在本发明实施例中,确定模块204用于执行步骤S104及其子步骤S1041-S1045。
避让模块205,用于依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算出避让送餐机器人的避让等待时长,以使避让送餐机器人移动至避让点暂停避让等待时长进行避让。
在本发明实施例中,避让模块205用于执行步骤S105。
综上所述,本发明提供的一种送餐机器人避让方法及装置,应用于后台服务端,后台服务端与第一送餐机器人及第二送餐机器人均通信连接,所述方法包括:当第一送餐机器人的预设路径与第二送餐机器人的预设路径存在路径交叉时,获取交叉点的位置信息及第一送餐机器人的当前位置信息及第二送餐机器人的当前位置信息;依据第一送餐机器人的预设路径、第二送餐机器人的预设路径、第一送餐机器人的当前位置信息、第二送餐机器人的当前位置信息及交叉点的位置信息,从第一送餐机器人及第二送餐机器人中确定出避让送餐机器人及被避让送餐机器人;依据避让送餐机器人的当前位置信息、被避让送餐机器人的当前位置信息及交叉点的位置信息计算出避让送餐机器人的避让等待时长,以使避让送餐机器人暂停避让等待时长进行避让。与现有技术相比,与现有技术相比,本发明实施例通过合理确定相遇双方送餐机器人的优先级及避让送餐机器人的避让等待时长及避让点,实现相遇双方送餐机器人之间的合理避让。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。