一种机器人跨楼层导航方法、系统及机器人与流程

文档序号:31198440发布日期:2022-08-20 01:08阅读:198来源:国知局
一种机器人跨楼层导航方法、系统及机器人与流程

1.本技术涉及机器人导航技术领域,尤其涉及一种机器人跨楼层导航方法、系统及机器人。


背景技术:

2.机器人在进行跨楼层导航时,需要对不同楼层之间的地图进行切换,并对机器人进行新地图中机器人位置的重新确定,以保证机器人在每一层的正常导航行驶,因此为了实现跨楼层导航,需要对不同楼层之间的地图进行关联处理,以保证机器人在新地图中的定位导航。
3.然而现有的地图拼接或使用slam算法定位,存在着效率不高,准确率低的问题,无法满足机器人跨楼层导航的效率和准确性的要求。


技术实现要素:

4.本技术实施例提供了一种机器人跨楼层导航方法、系统及机器人,能够实现快速并精确定位导航的目的。
5.第一方面,本技术提供一种机器人跨楼层导航方法,包括:获取机器人的当前地址和目标地址,上述当前地址中包括当前楼层和当前地图,上述目标地址中包括目标楼层和目标地图,其中楼层与地图之间存在一一对应关系;控制机器人行驶至当前楼层的第一预定位置后呼叫电梯,上述第一预定位置为满足机器人与电梯或电梯组之间的距离条件的位置点;在机器人进入电梯后,根据第一位置信息,通过转换矩阵t计算第二位置信息,上述第一位置信息为机器人当前所在位置在当前地图中的位置信息,上述第二位置信息为机器人当前所在位置在目标地图中的位置信息;根据上述第二位置信息,规划机器人到达上述目标地址的路径;在电梯到达目标楼层后,按照规划好的路径控制机器人行驶至上述目标地址。
6.在本技术实施例中,通过将楼层和地图管理,在控制机器人进入电梯后,通过转换矩阵t,将机器人当前所处位置在当前地图中的位置信息切换为在目标地图中的位置信息,使得机器人在到达目标楼层后,能够准确地在目标地图中根据规划好的路径导航至目标地址,解决了slam算法中现有因电梯环境参考物有限而导致的位置偏差较大,无法精确定位导航的问题。
7.在第一方面提供的一个可选方式中,上述在机器人进入电梯后,根据第一位置信息,通过转换矩阵t计算第二位置信息中,包括:
8.获取若干组第三位置信息,每组第三位置信息由第四位置信息和第五位置信息组成,上述第四位置信息为在电梯中的任意一点在当前地图中的位置信息,上述第五位置信息为上述第四位置信息中对应的点在目标地图中的位置信息;
9.根据上述若干组第三位置信息组成的线性方程组,确定上述转换矩阵t,上述转换矩阵t为:
[0010][0011]
其中,θ是旋转角度,(x,y)是平移坐标。
[0012]
在第一方面提供的另一个可选方式中,上述在机器人进入电梯后,根据第一位置信息,通过转换矩阵t计算第二位置信息中,包括:
[0013]
根据地图切换公式计算上述第二位置信息,其中,上述地图切换公式为:
[0014]
map2_elevator_id_a_pose=t*map1_elevator_id_a_pose
[0015]
其中,map2_elevator_id_a_pose为电梯中的a点在目标地图map2中的位置信息,也即第二位置信息;map1_elevator_id_a_pose为电梯中的a点在当前地图map1中的位置信息,也即第一位置信息;
[0016]
根据上述第二位置信息进行位置初始化,将机器人的位置信息更新为上述第二位置信息。
[0017]
在第一方面提供的另一个可选方式中,上述控制机器人从上述当前地址行驶至第一预定位置后呼叫电梯中,包括:
[0018]
查找与机器人距离最近的电梯或电梯组;
[0019]
当与机器人距离最近的电梯为单个电梯时,选择在该单个电梯的前面且在预设距离范围内的位置点作为第一预定位置;
[0020]
当与机器人距离最近的电梯为电梯组中的任意一个电梯时,选择在该电梯组前面的中间位置且在预设距离范围内的位置点作为第一预定位置。
[0021]
在第一方面提供的另一个可选方式中,上述控制机器人从上述当前地址行驶至第一预定位置后呼叫电梯中,包括:
[0022]
在当前楼层中存在多个电梯组时,规划机器人从当前地址到达与机器人距离最近的一个电梯组的路径;
[0023]
当路径规划失败时,根据机器人与不同电梯组的距离远近,按照从近到远的距离,规划机器人从当前地址到达不同电梯组的路径,直至路径规划成功。
[0024]
在第一方面提供的另一个可选方式中,上述制机器人从上述当前地址行驶至第一预定位置后呼叫电梯中,包括:
[0025]
向电梯或电梯组发送电梯呼叫请求信息,上述电梯呼叫请求信息中包括当前楼层和电梯组号的信息;
[0026]
接收电梯发送的电梯响应信息,上述电梯响应信息中包括电梯号信息;
[0027]
监控电梯状态直至上述电梯号对应的电梯打开电梯门;
[0028]
控制机器人行驶至上述电梯号对应的电梯的第二预定位置,并记录机器人在当前地图中的位置信息。
[0029]
在第一方面提供的另一个可选方式中,上述方法还包括:
[0030]
当发生异常事件时,选择异常事件对应的异常处理方法,控制机器人解决上述异常事件;
[0031]
当机器人无法解决上述异常事件时,生成异常通知信息并发送。
[0032]
第二方面,本技术提供一种机器人跨楼层导航系统,包括:
[0033]
地址获取单元,用于获取机器人的当前地址和目标地址,上述当前地址中包括当前楼层和当前地图,上述目标地址中包括目标楼层和目标地图,其中楼层与地图之间存在一一对应关系;
[0034]
第一控制单元,用于控制机器人行驶至当前楼层的第一预定位置后呼叫电梯,上述第一预定位置为满足机器人与电梯或电梯组之间的距离条件的位置点;
[0035]
位置信息计算单元,用于在机器人进入电梯后,根据第一位置信息,通过转换矩阵t计算第二位置信息,上述第一位置信息为机器人当前所在位置在当前地图中的位置信息,上述第二位置信息为机器人当前所在位置在目标地图中的位置信息;
[0036]
路径规划单元,用于根据上述第二位置信息,规划机器人到达上述目标地址的路径;
[0037]
第二控制单元,用于在电梯到达目标楼层后,按照规划好的路径控制机器人行驶至上述目标地址。
[0038]
在第二方面提供的一个可选方式中,上述位置信息计算单元,包括:
[0039]
位置信息获取子单元,用于获取若干组第三位置信息,每组第三位置信息由第四位置信息和第五位置信息组成,上述第四位置信息为在电梯中的任意一点在当前地图中的位置信息,上述第五位置信息为上述第四位置信息中对应的点在目标地图中的位置信息;
[0040]
转换矩阵确定子单元,用于根据上述若干组第三位置信息组成的线性方程组,确定上述转换矩阵t,上述转换矩阵t为:
[0041][0042]
其中,θ是旋转角度,(x,y)是平移坐标。
[0043]
在第二方面提供的另一个可选方式中,上述位置信息计算单元,包括:
[0044]
位置信息计算子单元,用于根据地图切换公式计算上述第二位置信息,其中,上述地图切换公式为:
[0045]
map2_elevator_id_a_pose=t*map1_elevator_id_a_pose
[0046]
其中,map2_elevator_id_a_pose为电梯中的a点在目标地图map2中的位置信息,也即第二位置信息;map1_elevator_id_a_pose为电梯中的a点在当前地图map1中的位置信息,也即第一位置信息;
[0047]
位置信息初始化子单元,用于根据上述第二位置信息进行位置初始化,将机器人的位置信息更新为上述第二位置信息。
[0048]
在第二方面提供的另一个可选方式中,上述第一控制单元,包括:
[0049]
电梯查找子单元,用于查找与机器人距离最近的电梯或电梯组;
[0050]
第一位置选择子单元,用于当与机器人距离最近的电梯为单个电梯时,选择在该单个电梯的前面且在预设距离范围内的位置点作为第一预定位置;
[0051]
第二位置选择子单元,用于当与机器人距离最近的电梯为电梯组中的任意一个电梯时,选择在该电梯组前面的中间位置且在预设距离范围内的位置点作为第一预定位置。
[0052]
在第二方面提供的另一个可选方式中,上述第一控制单元,包括:
[0053]
第一路径规划子单元,用于在当前楼层中存在多个电梯组时,规划机器人从当前
地址到达与机器人距离最近的一个电梯组的路径;
[0054]
第二路径规划子单元,用于当路径规划失败时,根据机器人与不同电梯组的距离远近,按照从近到远的距离,规划机器人从当前地址到达不同电梯组的路径,直至路径规划成功。
[0055]
在第二方面提供的另一个可选方式中,上述第一控制单元,包括:
[0056]
电梯呼叫请求信息发送子单元,用于向电梯或电梯组发送电梯呼叫请求信息,上述电梯呼叫请求信息中包括当前楼层和电梯组号的信息;
[0057]
电梯响应信息接收子单元,用于接收电梯发送的电梯响应信息,上述电梯响应信息中包括电梯号信息;
[0058]
电梯状态监控子单元,用于监控电梯状态直至上述电梯号对应的电梯打开电梯门;
[0059]
第一控制子单元,用于控制机器人行驶至上述电梯号对应的电梯的第二预定位置,并记录机器人在当前地图中的位置信息。
[0060]
在第二方面提供的另一个可选方式中,机器人跨楼层导航系统还包括:
[0061]
异常事件处理单元,用于当发生异常事件时,选择异常事件对应的异常处理方法,控制机器人解决上述异常事件;
[0062]
异常通知信息发送单元,用于当机器人无法解决上述异常事件时,生成异常通知信息并发送。
[0063]
第三方面,本技术提供一种机器人,包括处理器、存储器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如第一方面或第一方面的任意可选方式上述的方法。
[0064]
第四方面,本技术提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如第一方面或第一方面的任意可选方式上述的方法。
[0065]
第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行上述第一方面上述的机器人跨楼层导航方法的步骤。
[0066]
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
[0067]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0068]
图1是本技术实施例提供的一种机器人跨楼层导航方法的流程示意图;
[0069]
图2是本技术实施例提供一种电梯呼叫的控制方法的流程示意图;
[0070]
图3是本技术实施例提供的一种机器人位置信息初始化的方法的流程示意图;
[0071]
图4是本技术实施例提供的一种机器人跨楼层导航系统的结构示意图;
[0072]
图5是本技术实施例提供的一种机器人的结构示意图。
具体实施方式
[0073]
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、系统、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
[0074]
应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0075]
还应当理解,在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0076]
请参见图1,图1是本技术实施例提供的一种机器人跨楼层导航方法的流程示意图,详述如下:
[0077]
步骤s101,获取机器人的当前地址和目标地址,上述当前地址中包括当前楼层和当前地图,上述目标地址中包括目标楼层和目标地图,其中楼层与地图之间存在一一对应关系。
[0078]
在本技术实施例中,在商场或者酒店中一般部署有多个电梯,按照距离或者方向可以将电梯划分为多个电梯组,每个电梯组至少有两个电梯。在这里,电梯组是指在同一楼层中位于不同位置的被划分为一组的电梯,比如在某大厦南门入口的一组电梯,在某大厦北门的一组电梯,由于距离的限制,这两组电梯不能合并为一组电梯,因此被看作为两组电梯。又比如,在某大厦南门入口中位于一侧的多个电梯,位于另一侧的多个电梯,由于方向的限制,可以看作两组电梯。
[0079]
而在一些情况下,因为在一定的距离范围内仅有一个电梯,这个电梯也就不划入任何的电梯组中,单独以电梯表示,也即后文中出现的电梯可认为是单个电梯,而电梯组为两个或两个以上的电梯组合。
[0080]
为了提高机器人导航的准确性,不同的楼层设有对应的地图,楼层与地图之间存在一一对应关系,即可以通过楼层确定该楼层所属的地图,在确定某个位置点位于哪个地图后,也就可以确定这个位置点的地图对应的楼层。
[0081]
在本技术的一些实施例中,当机器人获取到目标地址后,获取当前位置点所属的地图,确定当前楼层与目标地址中的楼层是否为同一楼层,如果当前楼层与目标地址中的楼层是同一楼层,则直接规划当前地址到目标地址的路径,控制机器人按照规划好的路径行驶到目标地址。如果当前楼层与目标地址中的楼层不是同一楼层,则记录目标地址的目标地图和目标楼层,然后规划从当前地址到达电梯的路径以便于呼叫电梯。
[0082]
步骤s102,控制机器人行驶至当前楼层的第一预定位置后呼叫电梯,上述第一预定位置为满足机器人与电梯或电梯组之间的距离条件的位置点。
[0083]
在本技术实施例中,在记录目标地图和目标楼层后,查找与机器人距离最近的电梯或电梯组,以便于规划从当前地址到达电梯或电梯组的预定位置的路径。在这里,当与机器人距离最近的电梯为单个电梯时,选择在该单个电梯的前面且在预设距离范围内的位置点作为第一预定位置;当与机器人距离最近的电梯为电梯组中的任意一个电梯时,选择在该电梯组前面的中间位置且在预设距离范围内的位置点作为第一预定位置。
[0084]
可以理解的是,本技术实施例中的电梯组为包含至少两个电梯的电梯组。
[0085]
具体的,当与机器人距离最近的为电梯组时,选择该电梯组前1m的中间位置作为第一预定位置;当与机器人距离最近的为电梯组时,选择该电梯组前1m的位置作为第一预定位置。
[0086]
在本技术的一些实施例中,在当前楼层中存在多个电梯组时,规划机器人从当前地址到达与机器人距离最近的一个电梯组的路径;当由于存在障碍物或者其他不可控因素导致路径规划失败时,根据机器人与不同电梯组的距离远近,按照从近到远的距离,规划机器人从当前地址到达不同电梯组的路径,直至路径规划成功。
[0087]
请参见图2,图2是本技术实施例提供的一种电梯呼叫的控制方法的流程示意图,详述如下:
[0088]
步骤s201,向电梯或电梯组发送电梯呼叫请求信息,上述电梯呼叫请求信息中包括当前楼层和电梯组号的信息。
[0089]
在本技术实施例中,机器人到达第一预定位置后,比如,当电梯为单个电梯时,机器人到达距离该单个电梯前面1m的距离时,向电梯发送包括当前楼层信息的电梯呼叫请求信息,以便于电梯能够到达当前楼层。
[0090]
在本技术的一些实施例中,当同一楼层中的多个电梯被划分为多组电梯,而且每组电梯往往可能不在一起时,如果没有电梯组号,机器人就无法在当前位置呼叫正确的电梯。因此,为了能够呼叫正确的电梯,需要将电梯组号和第一预定位置关联,机器人在该第一预定位置向电梯组发送电梯呼叫请求信息时,该电梯呼叫请求信息须包含有电梯组号的信息,以便于机器人在确定第一预定位置后,可以方便快速并准确地呼叫电梯。
[0091]
步骤s202,接收电梯发送的电梯响应信息,上述电梯响应信息中包括电梯号信息。
[0092]
在本技术实施例中,由于并不是所有的电梯都处于空闲状态,因此电梯在接收到机器人发送的电梯呼叫请求信息后,电梯组中任意一个处于空闲状态的电梯会给机器人一个反馈信息,也即电梯响应信息。而为了方便机器人监控响应的电梯的状态,需要将响应的电梯号反馈给机器人,以便于机器人能够精准的监控该电梯的电梯门是在机器人当前所在楼层打开。
[0093]
步骤s203,监控电梯状态直至上述电梯号对应的电梯打开电梯门。
[0094]
步骤s204,控制机器人行驶至上述电梯号对应的电梯的第二预定位置,并记录机器人在当前地图中的位置信息。
[0095]
在本技术实施例中,在监控到电梯号对应的电梯打开电梯门后,控制机器人行驶至已打开电梯门的电梯仓的中间位置或者其他指定位置,同时记录此时机器人的当前位置在当前地图中的位置信息。
[0096]
步骤s103,在机器人进入电梯后,根据第一位置信息,通过转换矩阵t计算第二位置信息,上述第一位置信息为机器人当前所在位置在当前地图中的位置信息,上述第二位
置信息为机器人当前所在位置在目标地图中的位置信息。
[0097]
在本技术实施例中,机器人进入电梯后,可以进行位置初始化,以便于机器人在到达目标楼层后能够在目标地图中快速并准确地到达目标地址。
[0098]
需要说明的是,由于电梯内环境参考物有限,如果通过slam算法进行位置初始化,往往得到的结果并不太准确,尤其是,当机器人进入的电梯为电梯组中的任意一个电梯时,使用slam算法进行位置初始化的误差率更大,为了提高位置初始化的准确率,本技术实施例通过转换矩阵t强制设定位置给机器人,具体是通过转换矩阵t将机器人在当前地图中的位置信息转换为目标地图中的位置信息,而当前地图和目标地图使用的是同一世界坐标系,不需要重新在电梯内建立坐标系以初始化机器人的位置信息,避免了因坐标系的不同导致位置偏差。
[0099]
在本技术实施例中,可以通过若干组电梯中任意在同一位置的点在当前地图中和目标地图中的位置信息所组成的线性方程,确定转换矩阵t。
[0100]
具体的,获取若干组第三位置信息,每组第三位置信息由第四位置信息和第五位置信息组成,上述第四位置信息为在电梯中的任意一点在当前地图中的位置信息,上述第五位置信息为上述第四位置信息中对应的点在目标地图中的位置信息,换而言之,也就是第四位置信息和第五位置信息为在电梯中任意一点在当前地图和目标地图中对应的位置信息。比如电梯中a点的在当前地图中的位置信息为第四位置信息,电梯中a点在目标地图中的位置信息为第五位置信息,a点对应的第四位置信息和第五位置信息组成一组第三位置信息。
[0101]
在获取到若干组第三位置信息后,根据每组第三位置信息之间的线性关系,得到由该若干组第三位置信息组成的线性方程组,再根据若干组第三位置信息组成的线性方程组,确定上述转换矩阵t,上述转换矩阵t为:
[0102][0103]
其中,θ是旋转角度,(x,y)是平移坐标。
[0104]
在确定转换矩阵t后,通过转换矩阵t构成的地图切换公式计算机器人当前位置在目标地图中的位置信息。
[0105]
请参见图3,图3是本技术实施例提供的一种机器人位置信息初始化的方法流程示意图,详述如下:
[0106]
步骤s301,根据地图切换公式计算上述第二位置信息。
[0107]
其中,上述地图切换公式为:
[0108]
map2_elevator_id_a_pose=t*map1_elevator_id_a_pose
[0109]
其中,map2_elevator_id_a_pose为电梯中的a点在目标地图map2中的位置信息,也即第二位置信息;map1_elevator_id_a_pose为电梯中的a点在当前地图map1中的位置信息,也即第一位置信息。
[0110]
步骤s302,根据上述第二位置信息进行位置初始化,将机器人的位置信息更新为上述第二位置信息。
[0111]
在本技术实施例中,将第二位置信息直接赋值给机器人,使得机器人的位置信息
更新为在目标地图中的位置信息,从而可以在目标地图中进行精准导航。
[0112]
步骤s104,根据上述第二位置信息,规划机器人到达上述目标地址的路径。
[0113]
在本技术实施例中,在将机器人的当前位置信息更新为在目标地图中的位置信息后,根据更新后的位置信息规划机器人到达目标地址的路径,该路径为在目标地图中形成的路径。
[0114]
步骤s105,在电梯到达目标楼层后,按照规划好的路径控制机器人行驶至上述目标地址。
[0115]
在本技术实施例中,在机器人进入电梯后,机器人向电梯发送关门指令,结束电梯呼叫任务,同时,电梯根据电梯呼叫请求信息中的目标楼层信息,到达目标楼层后打开电梯门,机器人按照规划好的路径控制机器人行驶至目标地址。
[0116]
在本技术的一些实施例中,为了能够快速结束对电梯的控制,在目标楼层设有第三预定位置,机器人在到达该第三预定位置后,向电梯发送关门指令,结束电梯控制任务。这时,步骤s104和步骤s105相应为:
[0117]
根据上述第二位置信息,规划机器人到达第三预定位置的路径,以及规划机器人从上述第三预定位置到达目标地址的路径;
[0118]
在电梯到达目标楼层后,控制机器人按照规划好的路径行驶至第三预定位置,同时向电梯发送关门指令。在发送关门指令后,控制机器人按照规划好的路径行驶至目标地址。
[0119]
在本技术实施例中,在机器人跨楼层导航时,如果遇到异常,需要解决异常以使得机器人能够顺利完成导航任务,而不是停留在原地等待救援,而针对不同环节出现的异常事件,需要采用不同的异常处理方法来解决,如果机器人确实无法解决这些异常事件时,需要通知管理人员以方便管理人员进行相应处理。
[0120]
具体的,当发生异常事件时,选择异常事件对应的异常处理方法,控制机器人解决上述异常事件;当机器人无法解决上述异常事件时,生成异常通知信息并发送。
[0121]
比如,在一个应用场景中,当机器人规划从当前地址到达第一预定位置的路径时,有可能会因为障碍物、道路故障等问题无法成功规划路径时,可以采用导航失败处理方法,尝试重新规划路径,比如按照电梯组距离远近规划到达不同电梯组的预定位置直至路径规划成功。
[0122]
又比如,在另一个应用场景中,当机器人向电梯发送电梯呼叫请求信息后,电梯长时间无响应,这有可能是电梯出现了故障或者电梯被占用导致电梯无响应,这时,可以采用电梯无响应处理方法,重新发送电梯呼叫请求信息或者发送异常通知信息,控制机器人回到起始位置。
[0123]
又比如,在另一个应用场景中,在电梯门打开时,当机器人长时间无法进入电梯,通过语音播报障碍遮挡信息,通知障碍物移动以空出位置使得机器人能够进入电梯,如果机器人仍然无法进入电梯,则退回起始位置,结束电梯呼叫任务并发送异常通知信息给管理人员。
[0124]
又比如,在另一个应用场景中,当机器人进入电梯,向电梯发送关门指令后,如果电梯门无法正常关闭,则在重复向电梯发送预设次数关门指令后,如果电梯门仍然无法关闭,则发送异常通知信息,通知管理人员电梯控制系统异常,等待救援。
[0125]
又比如,在另一个应用场景中,在到达目标楼层后,机器人长时间无法导航至目标地址,则退回到目标楼层的预定位置等待,并通知管理人员。
[0126]
在本技术实施例中,获取机器人的当前地址和目标地址,当前地址中包括当前楼层和当前地图,目标地址中包括目标楼层和目标地图;控制机器人行驶至当前楼层的第一预定位置后呼叫电梯,在机器人进入电梯后,根据机器人当前所在位置在当前地图中的位置信息,通过转换矩阵t计算机器人当前所在位置在目标地图中的位置信息,根据计算得到的位置信息,规划机器人到达目标地址的路径;在电梯到达目标楼层后,按照规划好的路径控制机器人行驶至目标地址,能够快速并准确地在目标地图中根据规划好的路径导航至目标地址,实现快速并精确定位导航的目的,并解决了slam算法中现有因电梯环境参考物有限而导致的位置偏差较大,无法精确定位导航的问题。
[0127]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0128]
基于上述实施例所提供的机器人跨楼层导航方法,本技术实施例进一步给出实现上述方法实施例的系统实施例。
[0129]
请参见图4,图4是本技术实施例提供的机器人跨楼层导航系统的示意图。包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,机器人跨楼层导航系统4包括:
[0130]
地址获取单元41,用于获取机器人的当前地址和目标地址,上述当前地址中包括当前楼层和当前地图,上述目标地址中包括目标楼层和目标地图,其中楼层与地图之间存在一一对应关系;
[0131]
第一控制单元42,用于控制机器人行驶至当前楼层的第一预定位置后呼叫电梯,上述第一预定位置为满足机器人与电梯或电梯组之间的距离条件的位置点;
[0132]
位置信息计算单元43,用于在机器人进入电梯后,根据第一位置信息,通过转换矩阵t计算第二位置信息,上述第一位置信息为机器人当前所在位置在当前地图中的位置信息,上述第二位置信息为机器人当前所在位置在目标地图中的位置信息;
[0133]
路径规划单元44,用于根据上述第二位置信息,规划机器人到达上述目标地址的路径;
[0134]
第二控制单元45,用于在电梯到达目标楼层后,按照规划好的路径控制机器人行驶至上述目标地址。
[0135]
在本技术的一些实施例中,上述位置信息计算单元43,包括:
[0136]
位置信息获取子单元,用于获取若干组第三位置信息,每组第三位置信息由第四位置信息和第五位置信息组成,上述第四位置信息为在电梯中的任意一点在当前地图中的位置信息,上述第五位置信息为上述第四位置信息中对应的点在目标地图中的位置信息;
[0137]
转换矩阵确定子单元,用于根据上述若干组第三位置信息组成的线性方程组,确定上述转换矩阵t,上述转换矩阵t为:
[0138][0139]
其中,θ是旋转角度,(x,y)是平移坐标。
[0140]
在本技术的另一些实施例中,上述位置信息计算单元43,包括:
[0141]
位置信息计算子单元,用于根据地图切换公式计算上述第二位置信息,其中,上述地图切换公式为:
[0142]
map2_elevator_id_a_pose=t*map1_elevator_id_a_pose
[0143]
其中,map2_elevator_id_a_pose为电梯中的a点在目标地图map2中的位置信息,也即第二位置信息;map1_elevator_id_a_pose为电梯中的a点在当前地图map1中的位置信息,也即第一位置信息;
[0144]
位置信息初始化子单元,用于根据上述第二位置信息进行位置初始化,将机器人的位置信息更新为上述第二位置信息。
[0145]
在本技术的另一些实施例中,上述第一控制单元42,包括:
[0146]
电梯查找子单元,用于查找与机器人距离最近的电梯或电梯组;
[0147]
第一位置选择子单元,用于当与机器人距离最近的电梯为单个电梯时,选择在该单个电梯的前面且在预设距离范围内的位置点作为第一预定位置;
[0148]
第二位置选择子单元,用于当与机器人距离最近的电梯为电梯组中的任意一个电梯时,选择在该电梯组前面的中间位置且在预设距离范围内的位置点作为第一预定位置。
[0149]
在本技术的另一些实施例中,上述第一控制单元42,包括:
[0150]
第一路径规划子单元,用于在当前楼层中存在多个电梯组时,规划机器人从当前地址到达与机器人距离最近的一个电梯组的路径;
[0151]
第二路径规划子单元,用于当路径规划失败时,根据机器人与不同电梯组的距离远近,按照从近到远的距离,规划机器人从当前地址到达不同电梯组的路径,直至路径规划成功。
[0152]
在本技术的另一些实施例中,上述第一控制单元42,包括:
[0153]
用于向电梯或电梯组发送电梯呼叫请求信息,上述电梯呼叫请求信息中包括当前楼层和电梯组号的信息;
[0154]
电梯响应信息接收子单元,用于接收电梯发送的电梯响应信息,上述电梯响应信息中包括电梯号信息;
[0155]
电梯状态监控子单元,用于监控电梯状态直至上述电梯号对应的电梯打开电梯门;
[0156]
第一控制子单元,用于控制机器人行驶至上述电梯号对应的电梯的第二预定位置,并记录机器人在当前地图中的位置信息。
[0157]
在本技术的另一些实施例中,机器人跨楼层导航系统4还包括:
[0158]
异常事件处理单元,用于当发生异常事件时,选择异常事件对应的异常处理方法,控制机器人解决上述异常事件;
[0159]
异常通知信息发送单元,用于当机器人无法解决上述异常事件时,生成异常通知信息并发送。
[0160]
在本技术实施例中,获取机器人的当前地址和目标地址,当前地址中包括当前楼层和当前地图,目标地址中包括目标楼层和目标地图;控制机器人行驶至当前楼层的第一预定位置后呼叫电梯,在机器人进入电梯后,根据机器人当前所在位置在当前地图中的位置信息,通过转换矩阵t计算机器人当前所在位置在目标地图中的位置信息,根据计算得到的位置信息,规划机器人到达目标地址的路径;在电梯到达目标楼层后,按照规划好的路径控制机器人行驶至目标地址,能够快速并准确地在目标地图中根据规划好的路径导航至目标地址,实现快速并精确定位导航的目的,并解决了slam算法中现有因电梯环境参考物有限而导致的位置偏差较大,无法精确定位导航的问题。
[0161]
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0162]
图5是本技术实施例提供的机器人的示意图。如图5所示,该实施例的机器人5包括:处理器50、存储器51以及存储在存储器51中并可在处理器50上运行的计算机程序52,例如语音识别程序。处理器50执行计算机程序52时实现上述各个机器人跨楼层导航方法实施例中的步骤,例如图1所示的步骤101-105。或者,处理器50执行计算机程序52时实现上述各系统实施例中各模块/单元的功能,例如图4所示单元41-45的功能。
[0163]
示例性的,计算机程序52可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器51中,并由处理器50执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序52在机器人5中的执行过程。例如,计算机程序52可以被分割成地址获取单元41、第一控制单元42、位置信息计算单元43、路径规划单元44、第二控制单元45,各单元具体功能请参阅图1对应的实施例中地相关描述,此处不赘述。
[0164]
机器人可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是机器人5的示例,并不构成对机器人5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如机器人还可以包括输入输出机器人、网络接入机器人、总线等。
[0165]
所称处理器50可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0166]
存储器51可以是机器人5的内部存储单元,例如机器人5的硬盘或内存。存储器51也可以是机器人5的外部存储机器人,例如机器人5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器51还可以既包括机器人5的内部存储单元也包括外部存储机器人。存储器51用于存储计算机程序以及机器人所需的其他程序和数据。存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0167]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计
算机程序,计算机程序被处理器执行时可实现上述机器人跨楼层导航方法。
[0168]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行时实现可实现上述机器人跨楼层导航方法。
[0169]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0170]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0171]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0172]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1