发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种行走机器人及应用于行走机器人的地图处理方法。
第一方面,本申请实施例提供了一种应用于行走机器人的地图处理方法,包括:
获取行走机器人对运行环境进行扫描得到的全局地图;
按照预设的地图切分策略将所述全局地图切分为多个局部地图;
确定各个所述局部地图与位置信息之间的对应关系;所述位置信息用于表征各个所述局部地图在所述全局地图中的位置;
按照所述位置信息分别将各个所述局部地图存储在对应的存储空间中。
可选的,如前述的处理方法,还包括:
确定所述运行环境中发生更新的更新位置区域;
在所述局部地图中确定所述更新位置区域对应的待更新局部地图;
获取所述行走机器人对目标区域进行扫描得到的候选局部地图;所述目标区域包括所述更新位置区域;
在所述候选局部地图中确定与所述待更新局部地图对应的目标地图;
根据所述对应关系确定所述待更新局部地图对应的目标位置信息;
将所述目标地图存入所述目标位置信息对应的所述存储空间中,并对所述待更新局部地图进行删除。
可选的,如前述的处理方法,所述在所述候选局部地图中确定与所述待更新局部地图对应的目标地图,包括:
获取所述待更新局部地图的边缘图像信息;
在所述候选局部地图中匹配得到与所述边缘图像信息对应的目标边缘图像信息;
根据所述目标边缘图像信息以及位于所述目标边缘图像信息中的内部图像信息得到所述目标地图。
可选的,如前述的处理方法,所述确定所述运行环境中发生更新的更新位置区域,包括:
获取所述行走机器人对目标行动区域进行静止障碍物识别得到的障碍物识别信息;
根据所述障碍物识别信息,确定目标局部地图中实际可行走区域;所述目标局部地图为所述目标行动区域对应的地图;
在所述实际可行走区域与所述目标局部地图中预设可行走区域之间的交并比小于预设下限阈值时,判定所述目标行动区域为所述更新位置区域。
可选的,如前述的处理方法,还包括:
生成用于调取地图的地图调取请求;
根据所述地图调取请求,从各个所述存储空间中调取得到各个局部地图;
按照所述对应关系确定各个所述局部地图对应的位置信息;
根据所述位置信息将各个所述局部地图进行拼接得到所述全局地图。
可选的,如前述的处理方法,所述按照预设的地图切分策略将所述全局地图切分为多个局部地图,包括:
确定所述行走机器人的扫描半径;
以所述扫描半径的n倍为边长对全局地图进行矩形切割,得到多个所述局部地图;其中,n为大于等于1的整数。
可选的,如前述的处理方法,所述确定各个所述局部地图对应的位置信息,包括:
确定各个所述局部地图之间的位置关系;
根据预设的编码策略,并按照所述位置关系分别对各个所述局部地图进行编码,得到与各个所述局部地图对应的编码信息。
可选的,如前述的处理方法,所述按照所述位置关系分别将各个所述局部地图存储在对应的存储空间中,包括:
确定分配给各个所述局部地图的所述存储空间;
确定各个所述存储空间的存储位置信息;
根据各个所述局部地图对应的编码信息,得到所述存储位置信息与编码信息之间的映射关系。
第二方面,本申请实施例提供了一种行走机器人,包括:
获取模块,用于获取对运行环境进行扫描得到的全局地图;
切分模块,用于按照预设的地图切分策略将所述全局地图切分为多个局部地图;
对应模块,用于确定各个所述局部地图与位置信息之间的对应关系;所述位置信息用于表征各个所述局部地图在所述全局地图中的位置;
存储模块,用于按照所述位置信息分别将各个所述局部地图存储在对应的存储空间中。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现如前述任一项所述的处理方法。
第四方面,本申请实施例提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前述任一项所述的处理方法。
本申请实施例提供了一种行走机器人及应用于行走机器人的地图处理方法,其中方法包括:获取行走机器人对运行环境进行扫描得到的全局地图;按照预设的地图切分策略将所述全局地图切分为多个局部地图;确定各个所述局部地图与位置信息之间的对应关系;所述位置信息用于表征各个所述局部地图在所述全局地图中的位置;按照所述位置信息分别将各个所述局部地图存储在对应的存储空间中。本申请实施例提供的上述技术方案与现有技术相比具有如下优点:可以对行走机器人运行的全局地图按照一定的规则进行切割划分成多个局部地图,机器人存储每个划分后的局部地图和各个地图的位置信息即可,便于之后对局部地图进行更改替换时,无需对整个运行环境重新进行扫描,可以有效提高处理效率。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种应用于行走机器人的地图处理方法,包括如下所述步骤S1至S4:
步骤S1.获取行走机器人对运行环境进行扫描得到的全局地图。
具体的,运行环境可以是预设的,使行走机器人在其中执行任务的环境。其中扫描得到的全局地图可以是:通过设于行走机器人上的激光雷达等装置对环境进行扫描得到的地图信息,且全局地图包括运行环境中的所有区域。
可选的,行走机器人可以是用于进行商品配送的室内配送机器人、自动送货机器人以及引导机器人等等。如图6所示,其中一种室内配送机器人可以采用激光雷达进行地图信息的采集;可选的激光雷达可以设置两个,分别为第一激光雷达11和第二激光雷达12,分别设于运送机器人前端和后端;此外,也可根据实际每个激光雷达的检测范围设置更多的激光雷达,以采集得到更多方位和角度的信息。此外,为了便于进行充电,可以将充电接口设于机器人的正后方,且可以采用接触式充电接口,以便于接通和断开;在机器人的托架上方,还可以设置置物架14,置物架14可以设有一层或多层,且置物架各层的高度可以根据具体情况进行设定。进一步的,还可以设置用于紧急制动的急停按钮13,且急停按钮13可以设于运送机器人的表面,例如图中所示运送机器人头部的侧面,以便于被触及,并触发相应的开关;进一步的,为了防止急停按钮被误触,可以将急停按钮设于一凹陷与运送机器人表面的凹槽中。一般的,运送机器人的底部设有行动轮,且行动轮与电机连接,用于在电机的驱动下转动,以带动行走机器人行走。
步骤S2.按照预设的地图切分策略将全局地图切分为多个局部地图。
具体的,地图切分策略是将全局地图进行切分的策略;进一步的,可以是按照固定尺寸形状对全局地图进行切分,也可以是按照具体区域(例如:每家店铺划为一个区域、每条街道划为一个区域等等);局部地图则是有全局地图划分的到的每个最小单位地图;进一步的,所有局部地图整合后可以得到全局地图。
其中一种可选的切分方法可以是:
确定行走机器人(例如:激光雷达)的扫描半径d;
以扫描半径的n倍为边长(n×d)对全局地图进行矩形切割,得到多个局部地图;其中,n为大于等于1的整数。
步骤S3.确定各个局部地图与位置信息之间的对应关系;位置信息用于表征各个局部地图在全局地图中的位置。
具体的,可以是在全局地图的中确定各个与局部地图对应的填充区域。同时,由于全局地图是由各个局部地图组合而成的,只要各个具体地图按照切分前的排列方式进行组合,即可得到全局地图;因此,位置信息也可以是用于表征各个局部地图之间的相对位置关系。
步骤S4.按照位置信息分别将各个局部地图存储在对应的存储空间中。
具体的,在存储时,可以将信息存储在机器人本地的存储介质上,例如硬盘、闪存等等;且在存储时,可以在存储介质中划分得到用于存储局部地图的局部地图存储空间以及用于存储地图映射关系的映射关系存储空间;其中地图映射关系可以是:局部地图的存储位置与位置信息之间的对应关系。举例来说,在调用其中一个局部地图M1时,可以确定全局地图中局部地图M1的位置信息m1,然后按照映射关系存储空间中的映射关系确定与该位置信息m1对应的存储位置add1,进而在局部地图存储空间中的存储位置add1调取得到局部地图M1。
综上所述,采用本实施例中的方案可以对行走机器人运行的全局地图按照一定的规则进行切割划分成多个局部地图,机器人存储每个划分后的局部地图和各个地图的位置信息即可,便于之后对局部地图进行更改替换时,无需对整个运行环境重新进行扫描,可以有效提高处理效率。
在一些实施例中,如前述的处理方法,还包括如下所述步骤S5至S8:
步骤S5.生成用于调取地图的地图调取请求。
具体的,一般地图存储于特定的存储空间中,当行走机器人开始行走前,需要从存储空间中调取地图以进行导航;因此,为了实现调取,需要生成地图调取请求,以实现上述目的。
步骤S6.根据地图调取请求,从各个存储空间中调取得到各个局部地图。
具体的,一般情况下都是获取全局地图,因此地图调取请求是用于请求调取得到所有局部地图的请求信息,然后从存储有各个局部地图的存储空间中调取得到各个局部地图。
步骤S7.按照对应关系确定各个局部地图对应的位置信息。
具体的,由于对应关系表征的是各个局部地图与位置信息之间的关系;其中一种可选的实现方式可以是,在切分得到各个局部地图时,即确定各个局部地图对应的位置信息,并通过位置信息对该局部地图进行命名或编码,以达到建立对应关系的目的。
步骤S8.根据位置信息将各个局部地图进行拼接得到全局地图。
具体的,由于采用不同的位置信息计算策略得到的位置信息是不同的,因此在得到位置信息时,可以按照位置信息计算策略对位置信息进行解析,以得到各个局部地图之间的相对位置关系或者各个局部地图在全局地图中的位置信息。
本实施例其中一种可选的实现方式可以是:将全局地图按照分割为形状大小一致的若干多个矩形;然后按照编码策略对各个局部地图进行编码,例如采用坐标的编码方式,以一按照预设规则选定的点(可以是地图中的某一定点(例如:地图的左上角);也可以是某一特定地点(例如:机器人充电桩))作为原点,其中一种编码方式可以是横向为x轴(由左至右递增),纵向为y轴(由上至下递增),则将第n+1行m+1列的局部地图编码为(xn,ym);因此;在获取全局地图时,可以先确定编码为(x0,y0)的第一行一列的局部地图,然后在其右方拼接上编码为(x1,y0)的第一行二列的局部地图,在其下方拼接上编码为(x0,y1)的第二行一列的局部地图……按此递归,即可拼接得到全局地图。
此外,也可采用其他的编码方式,只需在复原时,按照对应的编码策略进行复原即可。
如图2所示,在一些实施例中,如前述的处理方法,还包括如下所述步骤A1至A6:
步骤A1.确定运行环境中发生更新的更新位置区域。
更新位置区域为行走机器人的运行环境中,发生更新变化的区域,例如:在原来的某一空地上新建了一家店铺,或者摆放了一个货架,或者拆了一家店铺等等导致环境中可行动区域发生变化的情况。
其中,更新位置区域可以是各个发生更新的局部地图对应的区域,举例的:当更新位置区域为区域q时,则区域q也是对应的区域地图的完整区域;此外,更新位置区域也可以是仅对应于发生更新的位置区域,举例的:当更新位置区域为区域q时,则区域q可以是对应的区域地图的完整区域Q中的发生更新的区域。
步骤A2.在局部地图中确定更新位置区域对应的待更新局部地图。
具体的,由于存在多个局部地图,且本实施例中的方法并不对全局地图进行更新,因此需要确定更新位置区域对应的是其中的哪一个局部地图,以对该区域对应的地图实现准确的更新。
待更新局部地图则为所有局部地图中与更新位置区域对应的一个或多个局部地图。
当更新位置区域只存在于包括一个局部地图时,则需对一个局部地图都进行更新,当更新位置区域涉及多个局部地图时,则需对多个局部地图都进行更新。
步骤A3.获取行走机器人对目标区域进行扫描得到的候选局部地图;目标区域包括更新位置区域。
其中,扫描得到的候选局部地图可以是:通过设于行走机器人上的激光雷达等装置对目标区域进行扫描得到的地图信息。由于,在对地图进行更新时需要对图像进行剪切,因此且目标区域包括更新位置区域中的所有区域。
进一步的,为了便于对整个待更新局部地图进行替换,待更新局部地图对应的区域包含于目标区域中;因此,候选局部地图包括待更新局部地图。
步骤A4.在候选局部地图中确定与待更新局部地图对应的目标地图。
具体的,由于需要对待更新局部地图进行更换,因此,需要在候选局部地图中选择得到待更新局部地图对应的部分图像。
可选的,可以通过人工切割的方式,在候选局部地图中切割得到待更新局部地图对应的部分图像(即:目标地图),也可以通过图像识别的方式,在候选局部地图中自动识别得到与待更新局部地图对应的目标地图。
步骤A5.根据对应关系确定待更新局部地图对应的目标位置信息。
具体的,目标位置信息即为待更新局部地图的位置信息;也就是说,本步骤是用于根据对应关系得到获取待更新局部地图的目标位置信息。
步骤A6.将目标地图存入目标位置信息对应的存储空间中,并对待更新局部地图进行删除。
具体的,由前述实施例中步骤S4可知,是按照位置信息分别将各个局部地图存储在对应的存储空间中。因此,通过目标位置信息可以定位得到用于存储待更新局部地图对应的存储空间,进而可以将目标地图存入该存储空间中;由于地图更新之后,历史地图便无法再用于导航了,因此对其进行删除,以减少对存储空间的占用。
如图3所示,在一些实施例中,如前述的处理方法,所述步骤A4在候选局部地图中确定与待更新局部地图对应的目标地图,包括如下所述步骤A41至A43:
步骤A41.获取待更新局部地图的边缘图像信息。
具体的,待更新局部地图是发生更新的区域对应的局部地图,由于一般情况下不会发生更新的区域正好与待更新局部地图一致的情况。因此,一般情况下,更新后的目标地图的边缘会存在与待更新局部地图的边缘一致或部分一致的图像。
在此实施例中边缘图像信息可以是与该局部地图的边缘距离在预设距离范围内(例如:5像素内,或1cm内等等)的图像信息。
步骤A42.在候选局部地图中匹配得到与边缘图像信息对应的目标边缘图像信息。
具体的,可以是将边缘图像信息在局部地图中进行匹配,当边缘图像信息对应的区域未发生变化时,则可以在局部地图中匹配到完全一致的目标边缘图像信息,当边缘图像信息对应的区域发生部分变化时,则可以将在局部地图中匹配到的匹配程度最高的图像信息作为目标边缘图像信息。
步骤A43.根据目标边缘图像信息以及位于目标边缘图像信息中的内部图像信息得到目标地图。
具体的,由于目标边缘图像信息是由图像的边缘得到的图像,因此其是一个中空,边缘具有一定宽度的封闭的图像(例如:长方形的框图),在得到目标边缘图像信息之后,即可得到位于目标边缘图像信息内部的图像信息;进而可以根据目标边缘图像信息以及位于目标边缘图像信息中的内部图像信息得到目标地图;其中一种可选的实现方法可以是:根据目标边缘图像信息的外边框对候选局部地图进行剪切得到目标地图。
综上所述,采用本实施例中的方法可以自动剪切得到目标地图,无需人工进行地图的剪切,可以有效降低用人成本,并提高地图的更新效率。
如图4所示,在一些实施例中,如前述的处理方法,所述步骤A1确定运行环境中发生更新的更新位置区域,包括如下所述步骤A11至A13:
步骤A11.获取行走机器人对目标行动区域进行静止障碍物识别得到的障碍物识别信息。
具体的,目标行动区域可以是行走机器人在行走状态下将要运行的目标区域。由于在位置更新后,一般发生变化的都是固定不可自主移动的静止物体,例如:墙面、桌子等等。而该类物体可以通过障碍物识别的方式进行识别得到,且行走机器人可以是在平时运行状态下对目标行动区域进行静止障碍物识别得到的障碍物识别信息。
步骤A12.根据障碍物识别信息,确定目标局部地图中实际可行走区域;目标局部地图为目标行动区域对应的局部地图。
具体的,可选的,在每个局部地图中可以标注有可行走区域以及障碍物区域。
当得到障碍物识别信息之后,便可确定目标局部地图中不可行走的区域,进而可以得到实际可行走区域。
步骤A13.在实际可行走区域与目标局部地图中预设可行走区域之间的交并比小于预设下限阈值时,判定目标行动区域为更新位置区域。
具体的,由于目标局部地图中预设有可行走区域,因此可以在目标局部地图中提取得到可行走区域对应的图像信息I;同时,可以得到实际可行走区域对应的图像信息II;然后对两个图像进行重叠,判断两者的交并比,为了避免因为障碍物识别信息的不准确性,因此设定预设下限阈值以避免检测的准确度导致的交并比计算误差;当两者的交并比小于下限阈值(例如:0.8)时,则说明两者的可行走区域存在20%的差异,因此可以说明目标行动区域发生了更新,因此判定目标行动区域为更新位置区域。
在一些实施例中,如前述的处理方法,步骤S3确定各个局部地图对应的位置信息,包括如下所述步骤S31和S32:
步骤S31.确定各个局部地图之间的位置关系。
也就是说,确定每个局部地图相邻的其他局部地图的信息;举例来说,当每个局部地图都是形状大小一致的矩形图像时,只要确定其上下左右的其他局部地图即可得到各个局部地图之间的位置关系。
步骤S32.根据预设的编码策略,并按照位置关系分别对各个局部地图进行编码,得到与各个局部地图对应的编码信息。
具体的,编码信息是能够表征不同局部地图之间位置关系的信息;编码策略则是用于得到编码信息的具体的实现策略。
本实施例其中一种可选的实现方式可以是:在将全局地图按照分割为形状大小一致的若干多个矩形之后;然后按照如下所述的编码策略对各个局部地图进行编码。
例如采用坐标的编码方式,以左上角为原点,横向为x轴(由左至右递增),纵向为y轴(由上至下递增),则将第n+1行m+1列的局部地图对应的编码信息记为(xn,ym);因此可以得到各个局部地图对应的编码信息。
同样采用坐标的编码方式,但以左下角为原点,横向为x轴(由左至右递增),纵向为y轴(由下至上递增),也将第n+1行m+1列的局部地图对应的编码信息记为(xn,ym);因此可以得到各个局部地图对应的编码信息。
此外,也可采用其他的编码方式,只需在复原时,按照对应的编码策略进行复原即可。
在一些实施例中,如前述的处理方法,所述步骤S4按照位置关系分别将各个局部地图存储在对应的存储空间中,包括如下所述步骤S41至S43:
步骤S41.确定分配给各个局部地图的存储空间。
步骤S42.确定各个存储空间的存储位置信息。
步骤S43.根据各个局部地图对应的编码信息,得到存储位置信息与编码信息之间的映射关系。
具体的,由于各个局部地图可以通过编码信息进行区分,因此确定分配给各个局部地图的存储空间,可以是确定分给给不同的编码信息的局部地图的存储空间,存储位置信息可以在每次分配存储空间的时候得到;因此可以根据各个局部地图对应的编码信息,得到存储位置信息与编码信息之间的映射关系。
如图7所示,其中一种应用例为:
步骤T1.使行走机器人扫描并建立得到工作区域的全局地图,通常以机器人充电桩位置为全局地图坐标原点;
步骤T2.将行走机器人扫描出的全局地图以坐标原点,以激光雷达扫描半径d的整数倍n为边长(n×d)对全局地图进行矩形切割,得到多个矩形区域;
步骤T3.对切割的按照规则将给每个矩形区域进行编码(xn,yn);
步骤T4.存储划分后的局部地图和对应的编码(xn,yn),建立局部地图和编码(xn,yn)之间的地图映射关系,并存储于存储空间中;同时还存储有地图衔接关系,用于确定各个局部地图的拼接顺序;
步骤T5.当行走机器人在启动初始化时,先启动引导程序对存储空间进行读取,然后读取地图映射关系,按照地图映射关系对各个局部地图进行读取,并按照编码关系复原全局地图;
步骤T6.行走机器人初始化完成按照复原的全局地图进行导航定位。
如图5所示,根据本申请另一方面的一个实施例,本申请实施例还提供了一种行走机器人,包括:
获取模块1,用于获取对运行环境进行扫描得到的全局地图;
切分模块2,用于按照预设的地图切分策略将全局地图切分为多个局部地图;
对应模块3,用于确定各个局部地图与位置信息之间的对应关系;位置信息用于表征各个局部地图在全局地图中的位置;
存储模块4,用于按照位置信息分别将各个局部地图存储在对应的存储空间中。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图8所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
上述电子设备提到的总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。