具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在智能家居场景下,有的家庭中会使用多种不同功能的机器人进行服务,例如,清洁机器人可以帮助清洁家庭环境,娱乐机器人可以陪伴家庭成员进行娱乐,教育机器人可以帮助家庭成员进行学习,健康理疗机器人如足浴机器人等可以进行按摩足浴服务,本申请提供的方案,在智能家居场景下,各种智能家居设备可以实现网络通信和家庭范围内的数据共享,用户可以采用手机、平板电脑等用户终端对智能家居设备进行设置、管理和操作控制。
目前清洁机器人上设置的感知装置能够实现较高精度的建图和导航,例如,采用激光雷达、红外传感器、TOF(Time of flight,飞行时间)传感器、线激光传感器、超声波传感器以及摄像头等,对全屋进行环境探索,构建全局地图。
考虑到足浴机器人、娱乐机器人等具有不需要覆盖全屋行走来执行任务的工作特点,此类机器人可以仅需在机器人执行任务的活动范围内能够精准导航和避障,利用清洁机器人构建的精度较高的栅格地图,来辅助构建足浴机器人、娱乐机器人等类型机器人的地图。采用本申请方案提供的建图算法,能够在机器人具备较少的感知装置的情况下也能构建满足行走避障需求的地图,以此节省这类机器人的成本。
为了实现足浴机器人、娱乐机器人的地图构建,本申请的实施例提出的一种地图构建方法、装置、机器人及存储介质,以下将对这些实施例进行详细说明。
首先请参阅图1-图3,图1是本申请涉及的一种第二机器人的示意图,第二机器人100可以是清洁机器人,也可以是其他类型的机器人,第二机器人能够覆盖全屋进行建图,构建较高精度的地图,目前市面上家用清洁机器人的机身高度通常为10厘米左右,外径通常为几十厘米(例如30厘米),清洁机器人通常需要全屋行走,以进行全屋清洁,因此,第二机器人的第一工作区域范围通常为全屋,第二机器人上设有第二感知装置,第二感知装置包括以下多种传感器的组合:激光雷达10、红外传感器12、TOF传感器11、线激光传感器(未示出)、超声波传感器以及摄像头等,其中,部分传感器的数量可以为两个以上,可以设置在第二机器人上的不同位置,以进行环境探索。
图2是本申请涉及的一种第一机器人的示意图,第一机器人可以是娱乐机器人300,还可以是教育机器人、陪伴机器人等,本申请不作限制。图3是本申请涉及的另一种第一机器人的示意图,第一机器人可以是用于供用户享受泡脚和按摩等功能的足浴机器人200,足浴机器人200上设有泡脚腔,机身高度通常在40-60厘米,根据泡脚腔的深度不同,机身高度可能更高,第一机器人执行任务通常在客厅或卫生间或卧室中某些固定区域,也就是说,第一机器人执行任务的区域相对固定,仅需要经过房屋中的主干道等部分区域,例如,将足浴机器人的维护站设置在阳台(也可以设置在卫生间),足浴机器人执行任务时从维护站出发,行走至客厅沙发前面的空旷位置提供用户进行足浴按摩,足浴机器人的第二工作区域范围较小,一般为阳台、客厅和来往阳台与客厅之间行走所经过的区域,足浴机器人200上可设置第一感知装置,第一感知装置可包括TOF传感器20、激光雷达传感器21和线激光传感器22等,可选地,足浴器机器人200上还可设置其他传感器,例如超声波传感器等,本申请不作限制,具体实施中,第一机器人的高度、尺寸与第二机器人不同,因此,第一机器人上设置各个传感器的位置,以及传感器感知范围与第二机器人不同,例如,第一机器人的第一感知装置包括的传感器设置在较高的位置,可以检测较高的障碍物,相比于第一机器人,第二机器人上的第二感知装置可以采用性能较好的传感器,能够检测到更远的障碍物,还可在不同位置设置两个以上的传感器,以扩大检测范围,以及采用精度更高的避障算法,例如,基于遗传的避障算法,基于神经网络的避障算法等,第二机器人的多个传感器能够保证使第二机器人能够准确检测感知范围内的障碍物,第二机器人能够在全屋范围内检测更精准地检测障碍物信息;第一机器人和第二机器人能够通过的的区域也有不同,例如第二机器人机身高度较低,可以通过沙发、茶几、床底等区域,第一机器人机身高度较高,则仅能在较空旷的位置进行活动,遇到沙发、茶几、床时,为了避免发生碰撞需要进行避障,具体地,一种情况下,第二机器人的能够检测的高度较低,检测不到沙发或茶几的高度,不将沙发或茶几识别为障碍物,在行走时能够直接到达沙发或茶几下方进行清洁工作;另一种情况下,第二机器人能够检测到沙发或茶几,并将沙发或杀菌识别为悬空障碍物,可以评估悬空高度能否通过,并进行标记;而第一机器人机身高度较高,能够检测的高度也较高,第一机器人能够检测到沙发或茶几,由于第一机器人机身高度较高,不能从沙发或茶几下方通过,因此会将沙发或茶几作为普通的障碍物进行避障。
本方案中,清洁机器人、足浴机器人、娱乐机器人都处于智能家居环境下,相互之间通过家庭内部网络进行连通,清洁机器人能够将构建好的第一栅格地图传输至足浴机器人或娱乐机器人,或者,清洁机器人能够将构建好的第一栅格地图上传至用户终端应用程序,用户终端上与足浴机器人对应的应用程序可获取第一栅格地图,或者,不同机器人可以通过同一应用程序进行管理控制,进而可以实现不同机器人之间的地图兼容。
采用第二机器人创建全局的第一栅格地图,第二机器人能够针对全屋创建较准确的第一栅格地图,例如,第二机器人的第二感知装置能够检测更远范围的环境信息,部分感知装置的性能较高,检测精度高,如此,第二机器人能够创建较高精度且准确度高的第一栅格地图;根据第二机器人的第二机器人参数和第一机器人的第一机器人参数将第一栅格地图转换为第二栅格地图,实现第一机器人和第二机器人之间的地图兼容,然后,第一机器人将第二栅格地图进行修正,使得修正后的第二栅格地图能够适应第一机器人执行任务,例如,辅助第一机器人在较空旷区域进行行走,准确避开较高的障碍物;针对较低的障碍物,第一机器人可以依据第二栅格地图中由第二机器人生成的地图信息进行避障。
图4是本申请的一示例性实施例示出的地图构建方法的流程图。该方法可以应用于图1-图3所示的实施环境,并由图2或图3所示实施例环境中的第一机器人具体执行。而在其它的实施环境中,该方法可以由其它实施环境中的设备执行,本实施例不对此进行限制。
如图4所示,在一示例性实施例中,该地图构建方法可以包括步骤S101至步骤S103,详细介绍如下:
步骤S101,获取第二机器人创建的第一栅格地图,所述第一栅格地图为所述第二机器人构建的第一工作区域范围的全局地图。
具体实施中,用户可以操作用户终端上的应用程序向第二机器人发送第一建图指令;或者,用户可以操作第二机器人上的操作界面,向第二机器人发出第一建图指令;用户还可以操作用户终端上的应用程序向第一机器人发送指示第二机器人进行建图的第一建图指令,由第一机器人向第二机器人转发第一建图指令;或者,用户可以操作第一机器人上的操作界面,向第一机器人发送指示第二机器人进行建图的第一建图指令,由第一机器人向第二机器人转发第一建图指令。
进一步地,第二机器人可以根据第一建图指令在全屋范围内创建第一栅格地图。
在一些实施例中,第一机器人可以向第二机器人发送地图获取请求,获取来自第二机器人已经创建好的第一栅格地图。
一般来说,第二机器人在执行任务过程中,若环境发生变化,例如,障碍物位置发生移动,第二机器人可以根据检测到的环境信息对第一栅格地图进行更新,如此,可以保证第一栅格地图为最新的地图,能够保证地图准确性。
其中,第一栅格地图包含全屋范围各栅格的坐标和障碍物信息,障碍物信息具体可包括是否有障碍物,障碍物类型,障碍物高度等,此外,通过第一栅格地图能够对检测到的门槛、墙壁、不可达区域进行标记,不可达区域可以是大型家具放置的区域、楼梯区域等,在第一栅格地图中,第二机器人还可以根据检测到的墙壁信息进行房间划分。
其中,第一工作区域范围为第二机器人执行任务覆盖的区域范围,第一工作区域范围例如可以是全屋,例如,对于清洁机器人来说,清洁机器人需要进行全屋清洁。
步骤S102,根据所述第二机器人的第二机器人参数和第一机器人的第一机器人参数将所述第一栅格地图转换为第二栅格地图。
其中,第二机器人参数可包括第一栅格地图的第一栅格尺寸、第二机器人的最大外径、第二机器人的障碍物分类规则等;第一机器人参数可包括第一机器人的最大外径、第一机器人的障碍物分类规则等。
本申请中,由第二机器人创建的第一栅格地图难以直接应用在第一机器人上,需要将第一栅格地图转换为适应于第一机器人的第二栅格地图,具体地,在第一栅格地图包含的障碍物信息中,第二机器人检测到的墙壁、不可达区域的标记不变,可以根据障碍物高度和第二机器人对应的障碍物分类规则将障碍物信息进行重新设置,以使第一机器人能够基于第二栅格地图进行准确避障,例如,对于第二机器人,高度低于D1的障碍物为低矮障碍物,第二机器人可以跨越;对于第一机器人,高度低于D2(D1大于D2)的障碍物为低矮障碍物,第一机器人可以跨越,而高度大于D2,低于D1的障碍物不为低矮障碍物,第一机器人需要标记为一般障碍物,需要在实际执行任务时进行避障。
其中,第一机器人在行走过程中,第二栅格地图的精度越大,第一机器人根据第二栅格地图进行行走时的避障准确度越高,路径规划的准确度也越高,而机器人的最大外径不同,对应的栅格地图的精度需求也不同,因此,在构建栅格地图时,可以根据第一机器人的最大外径来设置第二栅格尺寸,使得第二栅格地图的第二栅格尺寸能够适应第一机器人最大外径对应的避障需求,以便于第一机器人进行避障、导航和路径规划。
步骤S103,获取所述第一机器人对应的第二工作区域范围;基于所述第一机器人的第一感知装置和所述第二工作区域范围对所述第二栅格地图进行修正,得到修正后的第二栅格地图,所述修正后的第二栅格地图用于所述第一机器人执行工作任务;其中,所述第一工作区域范围包括所述第二工作区域范围。
其中,第二工作区域范围是第一机器人执行任务覆盖的区域范围,第一机器人执行任务的区域通常是相对固定的区域,例如在客厅或卫生间或卧室等,第一机器人仅需要在房屋中主干道区域进行行走,例如,将足浴机器人的维护站设置在阳台,足浴机器人执行任务时从维护站出发,行走至客厅沙发前面的空旷位置提供用户进行足浴按摩,可见足浴机器人的第二工作区域范围较小,一般为阳台、客厅和来往两者之间行走所经过的区域;足浴机器人的维护站是指提供足浴机器人进行停靠、给足浴机器人进行充电、供水、排水、烘干等维护的装置,维护站通常设置在固定的位置,足浴机器人能够从维护站出发前往用户所在的区域执行任务,在执行任务完成后,足浴器回到维护站进行排水、烘干、杀菌等维护;针对第一机器人为娱乐机器人或教育机器人的场景,娱乐机器人或教育机器人通常也会在客厅、游戏房或卧室等一个或多个相对固定的区域进行活动,因此,本方案中,用户可以在第二栅格地图上设置第一机器人的维护站位置、以及第一机器人的作业区域,进而可以确定第一机器人对应的第二工作区域范围。
具体地,获取所述第一机器人对应的第二工作区域范围,第一机器人能够在出维护站时,通过第一感知装置检测维护站位置,并记录维护站位置;第一机器人可以通过在用户终端的应用程序界面上显示第二栅格地图,获取用户在应用程序界面显示的第二栅格地图设置第一机器人的作业区域;根据第一机器人的维护站位置、作业区域和第二栅格地图的地图信息进行算法分析,得到从第一机器人的维护站位置到作业区域的无障碍物区域,作为第二工作区域范围。
在获取第二工作区域范围后,可以针对第二栅格地图中的第二工作区域范围进行地图修正,本申请中,第一机器人上设有第一感知装置,第一感知装置能够感知第一高度范围的环境信息,例如,第一机器人上的第一感知装置能够感知较高的障碍物,例如,第一机器人能够感知沙发、茶几、桌子、椅子等较高的障碍物,并进行标记,以便于第一机器人对较高的障碍物进行避障,第二机器人检测到的高度低于第一机器人能够检测到的高度,因此,修正前的第二栅格地图中可能难以准确地呈现较高范围障碍物的信息;本申请通过第一机器人的第一感知装置对所述地图区域进行环境探索,得到环境探索信息,根据环境探索信息对第二工作区域范围的地图区域进行修正,得到修正后的第二栅格地图,具体地,可以根据环境探索信息对第二栅格地图中的障碍物信息进行修正,例如,修正前的第二栅格地图中,沙发、茶几不被标记为障碍物或被标记为能够通过的悬空障碍物;根据第一感知装置能够感知到沙发、茶几,第一机器人需要将沙发、茶几对应位置的栅格标记为不能通过的障碍物,以使第一机器人能够根据修正后的障碍物进行避障,又例如,第一机器人与第二机器人在不同时间进行建图,第二机器人进行行走时,目标障碍物的高度相比于第一机器人建图时发生变化,第一机器人可以根据第一感知装置检测到的变化后的障碍物高度对目标障碍物对应位置的栅格进行修正。
具体实施中,第一机器人可以基于第二工作区域范围对第二栅格地图进行修正,不需要对第二栅格地图中的全屋范围进行遍历和地图修正,仅需要对可能经过的区域对应的地图栅格进行地图修正,这样,既可以保证修正后第二栅格地图的准确性,也可以减少第一机器人的行走区域和计算量。
由上可知,在本实施例提供的方法中,第一机器人获取第二机器人创建的第一栅格地图,第一栅格地图为第二机器人构建的第一工作区域范围的全局地图;根据第二机器人的第二机器人参数和第一机器人的第一机器人参数将第一栅格地图转换为第二栅格地图,从而实现第一机器人与第二机器人之间的地图兼容,第一机器人可以利用第二机器人已经构建好的较高精度的第一栅格地图来构建适用于第一机器人的第二栅格地图,第一机器人不需要自身配置很多高性能的感知装置和高精度的建图算法,就能得到精度足够的第二栅格地图;进一步地,第一机器人获取对应的第二工作区域范围;基于所第一机器人的第一感知装置和第二工作区域范围对第二栅格地图进行修正,得到修正后的第二栅格地图,修正后的第二栅格地图用于所述第一机器人执行工作任务;其中,第一工作区域范围包括第二工作区域范围,如此,第一机器人将第二栅格地图修正为适应第一机器人进行路径规划的地图,提高第二栅格地图对于第一机器人的准确度,保证修正后的第二栅格地图满足第一机器人的行走避障需求。
可选地,在一些示例性实施例中,第二机器人参数包括第一栅格地图的第一栅格尺寸,第一机器人参数包括所述第一机器人的最大外径,上述步骤S102中,根据所述第二机器人的第二机器人参数和第一机器人的第一机器人参数将所述第一栅格地图转换为第二栅格地图,包括:
S21、根据所述第一机器人的最大外径确定所述第一机器人对应的第二栅格尺寸;
S22、若所述第一栅格尺寸与所述第二栅格尺寸不一致,则将所述第一栅格地图从所述第一栅格尺寸调整为第二栅格尺寸;
S23、根据所述第一栅格地图中第一栅格尺寸的栅格中的障碍物信息更新所述第二栅格尺寸的栅格中的障碍物信息,得到所述第二栅格地图。
其中,将第一栅格地图从第一栅格尺寸调整为第二栅格尺寸,可以根据第二栅格尺寸将第一栅格地图进行栅格划分,得到第二栅格尺寸的栅格,根据第一机器人的最大外径确定第二栅格尺寸,可以保证第二栅格地图的地图精度,使第二栅格地图便于第一机器人进行导航和路径规划。
具体地,第一机器人内可预先设置第一机器人的最大外径与栅格尺寸之间的对应关系,进而,可根据该对应关系确定第一机器人的最大外径对应的第二栅格尺寸。
进一步地,根据第一栅格地图中第一栅格尺寸的栅格中的障碍物信息更新第二栅格尺寸的栅格中的障碍物信息,其中,障碍物信息可包含以下信息:是否有障碍物、障碍物类型和障碍物高度等,通过对障碍物信息进行更新,使第二栅格地图中的障碍物信息能够适应于第一机器人的结构,可以使第一机器人根据第二栅格地图进行准确避障。
在本申请的另一实施例中,如图7和图8所示,上述步骤S23中,根据所述第一栅格地图中第一栅格尺寸的栅格中的障碍物信息更新所述第二栅格尺寸的栅格中的障碍物信息,得到所述第二栅格地图,包括:
A1、将所述第一栅格地图中第一栅格尺寸的栅格对应的墙壁、不可达区域标记进行保留;根据所述第一栅格地图中第一栅格尺寸的栅格的障碍物高度和所述第一机器人对应的障碍物分类规则将所述第二栅格尺寸的栅格中的障碍物分类进行更新,得到所述第二栅格地图。
其中,上述障碍物信息可包含以下信息:是否有障碍物、障碍物类型和障碍物高度等,具体地,在第二栅格地图中,可以将墙壁、不可达区域,低矮障碍物,沙发、凳子等进行标记,还可以设置可跨过障碍物或不可跨过障碍物的标记,针对可跨过障碍物,第一机器人可以通过加速、扭动等动作进行越障,针对不可跨过障碍物,第一机器人则可以进行避障。
具体实施中,考虑到第一机器人与第二机器人的结构存在区别,进行障碍物识别、避障和越障的识别能力、避障性能和越障行为存在差异,因此,第一机器人需要根据自身的障碍物分类规则对障碍物进行重新标记,对障碍物信息进行更新,使第二栅格地图中的障碍物信息能够适应于第一机器人的机身高度等尺寸参数,以保证第一机器人能够根据第二栅格地图进行准确、合理避障。
在本申请的另一实施例中,如图7所示,上述步骤A1中,根据所述第一栅格地图中第一栅格尺寸的栅格的障碍物高度和所述第一机器人对应的障碍物分类规则将所述第二栅格尺寸的栅格中的障碍物分类进行更新,包括:
A11、判定所述第二栅格尺寸的新栅格是否来自所述第一栅格尺寸的同一旧栅格;
A12、若是,则保留所述旧栅格对应的障碍物标记;
A13、若所述第二栅格尺寸的新栅格自至少两个所述第一栅格尺寸的不同旧栅格,则确定所述不同旧栅格中有障碍物标记和无障碍物标记的数量的比值;
A14、将所述不同旧栅格中有障碍物标记和无障碍物标记数量的比值与第一预设数值进行比较;若所述比值大于第一预设数值,则将所述第二栅格尺寸的新栅格标记为有障碍物,根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型;
A15、若所述比值小于所述第一预设数值,则将所述第二栅格尺寸的新栅格标记为无障碍物。
其中,考虑到第一栅格尺寸的旧栅格的障碍物信息可能存在差异,因此,在将栅格尺寸重新划分之后,原来的旧栅格可能发生合并或原来的旧栅格可能被重新分割,如图5所示,图5为地图的第二栅格尺寸大于第一栅格尺寸的演示示意图,实线所示的栅格为第二栅格尺寸的新栅格,虚线所示的栅格为第一栅格尺寸的旧栅格,第一机器人对应的第二栅格尺寸的新栅格大于第二机器人对应的第一栅格尺寸的旧栅格;如图6所示,图6为第二栅格尺寸小于第一栅格尺寸的地图演示示意图,实线所示的栅格为第二栅格尺寸的新栅格,虚线所示的栅格为第一栅格尺寸的旧栅格,第一机器人对应的第二栅格尺寸的新栅格小于第二机器人对应的第一栅格尺寸的旧栅格,针对来自同一旧栅格的障碍物信息,可以保留该旧栅格的障碍物标记作为新栅格的障碍物标记;针对来自不同旧栅格的障碍物信息,则可以根据旧栅格的障碍物标记和障碍物高度重新确定新栅格的障碍物信息,并根据第一机器人对应的障碍物分类规则对障碍物进行重新分类,以确保新栅格的障碍物信息的准确性。
具体地,执行步骤A13之后,可以将不同旧栅格中有障碍物标记和无障碍物标记的比值与第一预设数值进行比较,若栅格的尺寸变小,则将分割后的新栅格进行障碍物类别重新标记,首先,可以判定新栅格是否来自同一旧栅格,若是,则保留旧栅格对应的障碍物标记;若不来自同一旧栅格,则确定来自旧栅格的障碍物标记数量的比值,若有障碍物标记与无障碍物标记的数量的比值大于1:1,则标记为有障碍物,根据旧栅格中绝对值最大的障碍物信息和第二机器人对应的障碍物分类规则重新标记障碍物类型,例如,第一旧栅格中的障碍物高度为-3,第二旧栅格中的障碍物高度为2,第三旧栅格中的障碍物高度为2.5,则根据绝对值为3的旧栅格对应的障碍物信息和第二机器人对应的障碍物分类规则重新标记障碍物类型。
在本申请的另一实施例中,如图7所示,上述步骤A1中,本方法还包括:
A16、若所述比值等于第一预设数值,则判断所述第二栅格尺寸的新栅格是否邻近墙壁或属于不可达区域;
A17、若是,则将所述第二栅格尺寸的新栅格标记为有障碍物,根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型;
具体地,若第二栅格尺寸的新栅格邻近墙壁或属于不可达区域,可跳转至根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型的步骤。
A18、若否,则将所述第二栅格尺寸的新栅格标记为无障碍物。
其中,若不同旧栅格中有障碍物标记和无障碍物标记的比值,则可以进一步根据旧栅格中的墙壁、不可达区域等障碍物信息来评估新栅格是否邻近墙壁或不可达区域,进而可以根据墙壁或不可达区域的标记来判定新栅格是否标记为有障碍物,实际应用中,墙壁、不可达区域附近需要第一机器人进行避障,因此,通过设置上述障碍物信息的更新方式,可以保证第一机器人根据第二栅格地图进行导航和避障时,能够选择更加空旷、没有障碍物,远离墙壁、不可达区域的区域进行路径规划和行走。
举例说明,有障碍物标记与无障碍物标记数量的比值为1:1时,判断新栅格是否临近墙壁或不可达区域,若是,则判定为有障碍物信息,进一步重新进行障碍物类型标记,若新栅格不临近墙壁,则根据多个旧栅格和多个旧栅格邻近的旧栅格重新确定障碍物标记数量的新比值,若有障碍物标记与无障碍物标记的数量的比值小于1:1,则标记为无障碍物。
在本申请的另一实施例中,如图8所示,上述步骤A1中,在执行步骤A13之后,本方法还包括:
A21、若所述比值等于第一预设数值,判断第二栅格尺寸是否大于所述第一栅格尺寸;若所述第二栅格尺寸大于所述第一栅格尺寸,且步骤A13的所述比值等于第一预设数值,则根据所述不同旧栅格及其邻近的旧栅格的障碍物信息确定有障碍物标记和无障碍物标记的数量的新比值;若所述第二栅格尺寸不大于所述第一栅格尺寸,则跳转至判断第二栅格尺寸的新栅格是否邻近墙壁或不可达区域的步骤。
具体地,在确定新比值后,可跳转至将所述不同旧栅格中有障碍物标记和无障碍物标记的比值与第一预设数值进行比较的步骤。
A22、根据所述新比值确定所述第二栅格尺寸的新栅格的障碍物信息;
A23、若连续三次得到的所述障碍物标记和无障碍物标记的数量的比值均等于所述第一预设数值,则判断所述第二栅格尺寸的新栅格是否邻近墙壁或不可达区域;
A24、若是,则将所述第二栅格尺寸的新栅格标记为有障碍物,根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型;
A25、若否,则将所述第二栅格尺寸的新栅格标记为无障碍物。
本申请实施例中,考虑到若第二栅格尺寸大于第一栅格尺寸,第二栅格地图中的新栅格尺寸变大,可能存在比较多的新栅格来自不同的旧栅格,例如,新栅格由不同多个旧栅格合并,以及旧栅格被重新分割后,被分割的栅格重新组成新栅格,为了较为准确地判定新栅格的障碍物信息,可以继续重新判定障碍物标记和无障碍物标记的数量的比值,可以基于更多邻近的旧栅格的障碍物信息来确定新栅格的障碍物信息,若多次重新判定障碍物标记和无障碍物标记的数量的比值均等于第一预设数值,为了避免继续重新计算障碍物标记和无障碍物标记的比值,可以根据墙壁或不可达区域的标记来判定新栅格是否标记为有障碍物,可以保证第一机器人根据第二栅格地图进行导航和避障时,能够选择更加空旷、没有障碍物,远离墙壁、不可达区域的区域进行路径规划和行走。
举例说明,若栅格的尺寸变大,则将分割后的新栅格进行障碍物类别重新标注,首先,确定来自旧栅格的障碍物标记数量的比值,若有障碍物标记和无障碍物标记数量的比值大于1:1,则标记为有障碍物,若小于1:1则标记为无障碍物;若等于1:1,则根据多个旧栅格和多个旧栅格临近的旧栅格确定新的障碍物标记数量的比值;若三次新的障碍物标记数量的比值均为1:1,则判定旧栅格是否邻近墙壁;若是,则标记为有障碍物;若否,则标记为没有障碍物。
可选地,在一些示例性实施例中,上述步骤S103中,所述第二工作区域范围包括所述第一机器人的维护站区域和所述第一机器人的作业区域,所述基于所述第一机器人的第一感知装置和所述第二工作区域范围对所述第二栅格地图进行修正,得到修正后的第二栅格地图,包括:
S31、确定所述第二栅格地图中从所述维护站区域到所述作业区域能够通过的通过区域,其中,所述通过区域中的栅格为互相连通的非障碍物栅格,且各所述非障碍物栅格与最邻近障碍物栅格之间的距离大于第二预设数值;将所述维护站区域、所述作业区域和从所述维护站区域到所述作业区域的所述通过区域作为所述第二栅格地图中所述第一机器人需要探索的地图区域;
S32、通过所述第一机器人的第一感知装置对所述地图区域进行环境探索,得到所述环境探索信息,所述第一感知装置的感知高度范围与所述第二机器人的第二感知装置的感知高度范围不同;
S33、根据所述环境探索信息对所述地图区域进行修正,得到修正后的第二栅格地图。
其中,考虑到足浴机器人或娱乐机器人不需要进行全屋覆盖行走,因此,第一机器人进行地图修正时,不需要覆盖全屋进行走,对全局地图进行修正,仅需要对可能经过的区域进行地图修正,具体地,第一机器人可以根据维护站、作业区域的位置和第一机器人可能需要经过的区域地图修正,示例的,维护站设置在阳台或卧室,机器人可能进行服务的区域可能在卧室,起居室,书房等房间,具体会在较为空旷、宽敞的区域进行工作,因此,仅需要对从维护站位置到多个目标工作位置之间沿途经过的宽敞、空旷路径进行地图修正,从而保证机器人能够在后续工作时,能够在宽敞、空旷的过道经过,到达指定的目标工作位置,例如,如图9所示,图9为本申请提供的一种确定需要修正的地图区域的演示示意图,其中,R1-R10为第二栅格地图中标记的10个房间区域,其中,R2的一部分,R5和R7对应的灰色标记区域为需要进行修正的地图区域,第一机器人200从维护站A到达作业区域B执行任务。
具体实施中,通过确定第二栅格地图中互相连通的非障碍物栅格,并选择与最邻近障碍物栅格之间的距离大于第二预设数值的非障碍物栅格,可以使通过区域足够空旷,使第一机器人能够在较为空旷的区域进行活动,通过第一机器人对第二工作区域范围进行地图修正,可以保证第一机器人能够根据修正后的第二栅格地图进行准确地导航和避障。
请参阅图10,图10是图4所示实施例中基础上的另一个示例性实施例中的流程图。如图10所示,本方案详细介绍如下:
S801、获取第二机器人创建的第一栅格地图;
其中,所述第一栅格地图为所述第二机器人构建的第一工作区域范围的全局地图;
S802、根据所述第一机器人的最大外径确定所述第一机器人对应的第二栅格尺寸;
S803、若所述第一栅格尺寸与所述第二栅格尺寸不一致,则将所述第一栅格地图从所述第一栅格尺寸调整为第二栅格尺寸;
S804、将所述第一栅格地图中第一栅格尺寸的栅格对应的墙壁、不可达区域标记进行保留;
S805、根据所述第一栅格地图中第一栅格尺寸的栅格的障碍物高度和所述第一机器人对应的障碍物分类规则将所述第二栅格尺寸的栅格中的障碍物分类进行更新,得到所述第二栅格地图;
S806、确定所述第二栅格地图中从所述维护站区域到所述作业区域能够通过的通过区域;
其中,所述通过区域中的栅格为互相连通的非障碍物栅格,且各所述非障碍物栅格与最邻近障碍物栅格之间的距离大于第二预设数值。
S807、将所述维护站区域、所述作业区域和从所述维护站区域到所述作业区域的所述通过区域作为所述第二栅格地图中所述第一机器人需要探索的地图区域;
S808、通过所述第一机器人的第一感知装置对所述地图区域进行环境探索,得到所述环境探索信息;
其中,所述第一感知装置的感知高度范围与所述第二机器人的第二感知装置的感知高度范围不同。
S809、根据所述环境探索信息对所述地图区域进行修正,得到修正后的第二栅格地图。
本申请实施例中,通过将第一栅格地图从第一栅格尺寸调整为第二栅格尺寸,可以保证第二栅格地图的地图精度,使第二栅格地图便于第一机器人进行导航和路径规划,根据第一栅格地图中第一栅格尺寸的栅格的障碍物高度和第一机器人对应的障碍物分类规则将第二栅格尺寸的栅格中的障碍物分类进行更新,可以提高第二栅格地图中障碍物信息对于第一机器人的适配性,使第一机器人能够基于第二栅格地图进行准确避障,通过将维护站区域、作业区域和从维护站区域到作业区域的所述通过区域作为第二栅格地图中第一机器人需要探索的地图区域,第一机器人不需要对第二栅格地图中的全屋范围进行遍历和地图修正,仅需要对可能经过的区域对应的地图栅格进行地图修正,这样,既可以保证修正后第二栅格地图的准确性,也可以减少第一机器人的行走区域和计算量。
图11是本申请的一示例性实施例示出的一种地图构建装置1000的框图。如图11所示,该装置包括:
获取模块1001,用于获取第二机器人创建的第一栅格地图,所述第一栅格地图为所述第二机器人构建的第一工作区域范围的全局地图;
转换模块1002,用于根据所述第二机器人的第二机器人参数和第一机器人的第一机器人参数将所述第一栅格地图转换为第二栅格地图;
所述获取模块1001,还用于获取所述第一机器人对应的第二工作区域范围;
修正模块1003,用于基于所述第一机器人的第一感知装置和所述第二工作区域范围对所述第二栅格地图进行修正,得到修正后的第二栅格地图,所述修正后的第二栅格地图用于所述第一机器人执行工作任务;其中,所述第一工作区域范围包括所述第二工作区域范围。
该装置应用本申请提供的地图构建装置,通过获取第二机器人创建的第一栅格地图,根据第二机器人的第二机器人参数和第一机器人的第一机器人参数将第一栅格地图转换为第二栅格地图,从而实现第一机器人与第二机器人之间的地图兼容,第一机器人可以利用第二机器人已经构建好的较高精度的第一栅格地图来构建适用于第一机器人的第二栅格地图,第一机器人不需要自身设置很多高性能的感知装置和高精度的建图算法,就能得到精度足够的第二栅格地图;进一步地,第一机器人获取对应的第二工作区域范围;基于所第一机器人的第一感知装置和第二工作区域范围对第二栅格地图进行修正,得到修正后的第二栅格地图,修正后的第二栅格地图用于所述第一机器人执行工作任务;其中,第一工作区域范围包括第二工作区域范围,如此,第一机器人将第二栅格地图修正为适应第一机器人进行路径规划的地图,提高第二栅格地图对于第一机器人的准确度,保证修正后的第二栅格地图满足第一机器人的行走避障需求。
在另一示例性的实施例中,所述第二机器人参数包括所述第一栅格地图的第一栅格尺寸,所述第一机器人参数包括所述第一机器人的最大外径,转换模块1002,还具体用于根据所述第一机器人的最大外径确定所述第一机器人对应的第二栅格尺寸;若所述第一栅格尺寸与所述第二栅格尺寸不一致,则将所述第一栅格地图从所述第一栅格尺寸调整为第二栅格尺寸;根据所述第一栅格地图中第一栅格尺寸的栅格中的障碍物信息更新所述第二栅格尺寸的栅格中的障碍物信息,得到所述第二栅格地图。
在另一示例性的实施例中,转换模块1002,还具体用于将所述第一栅格地图中第一栅格尺寸的栅格对应的墙壁、不可达区域标记进行保留;根据所述第一栅格地图中第一栅格尺寸的栅格的障碍物高度和所述第一机器人对应的障碍物分类规则将所述第二栅格尺寸的栅格中的障碍物分类进行更新,得到所述第二栅格地图。
在另一示例性的实施例中,转换模块1002,还具体用于判定所述第二栅格尺寸的新栅格是否来自所述第一栅格尺寸的同一旧栅格;若是,则保留所述旧栅格对应的障碍物标记;若所述第二栅格尺寸的新栅格来自至少两个所述第一栅格尺寸的不同旧栅格,则确定所述不同旧栅格中有障碍物标记和无障碍物标记的数量的比值;若所述比值大于第一预设数值,则将所述第二栅格尺寸的新栅格标记为有障碍物,根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型;若所述比值小于所述第一预设数值,则将所述第二栅格尺寸的新栅格标记为无障碍物。
在另一示例性的实施例中,转换模块1002,还具体用于若所述比值等于第一预设数值,则判断所述第二栅格尺寸的新栅格是否邻近墙壁或不可达区域;若是,则将所述第二栅格尺寸的新栅格标记为有障碍物,根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型;若否,则将所述第二栅格尺寸的新栅格标记为无障碍物。
在另一示例性的实施例中,转换模块1002,还具体用于若所述第二栅格尺寸大于所述第一栅格尺寸,且所述比值等于第一预设数值,则根据所述不同旧栅格及其邻近的旧栅格的障碍物信息确定有障碍物标记和无障碍物标记的数量的新比值;根据所述新比值确定所述第二栅格尺寸的新栅格的障碍物信息;若连续三次得到的所述障碍物标记和无障碍物标记的数量的比值均等于所述第一预设数值,则判断所述第二栅格尺寸的新栅格是否邻近墙壁或不可达区域;若是,则将所述第二栅格尺寸的新栅格标记为有障碍物,根据所述不同旧栅格中绝对值最大的障碍物高度和所述第一机器人对应的障碍物分类规则确定所述第二栅格尺寸的新栅格的障碍物类型;若否,则将所述第二栅格尺寸的新栅格标记为无障碍物。
在另一示例性的实施例中,所述第二工作区域范围包括所述第一机器人的维护站区域和所述第一机器人的作业区域,修正模块1003,还用于确定所述第二栅格地图中从所述维护站区域到所述作业区域能够通过的通过区域,其中,所述通过区域中的栅格为互相连通的非障碍物栅格,且各所述非障碍物栅格与最邻近障碍物栅格之间的距离大于第二预设数值;将所述维护站区域、所述作业区域和从所述维护站区域到所述作业区域的所述通过区域作为所述第二栅格地图中所述第一机器人需要探索的地图区域;通过所述第一机器人的第一感知装置对所述地图区域进行环境探索,得到所述环境探索信息,所述第一感知装置的感知高度范围与所述第二机器人的第二感知装置的感知高度范围不同;根据所述环境探索信息对所述地图区域进行修正,得到修正后的第二栅格地图。
需要说明的是,上述实施例所提供的地图构建装置与上述实施例所提供的地图构建方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的地图构建装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种机器人,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得机器人实现上述各个实施例中提供的地图构建方法。
图12示出了适于用来实现本申请实施例的机器人的内部系统的结构示意图。需要说明的是,图12示出的机器人的内部系统1200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12所示,内部系统1200包括中央处理单元(CentralProcessingUnit,CPU)1201,其可以根据存储在只读存储器(Read-OnlyMemory,ROM)1202中的程序或者从储存部分1208加载到随机访问存储器(RandomAccessMemory,RAM)1203中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM1203中,还存储有系统操作所需的各种程序和数据。CPU1201、ROM1202以及RAM1203通过总线1204彼此相连。输入/输出(Input /Output,I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括按键、显示屏等的输入部分1206;包括诸如阴极射线管(CathodeRayTube,CRT)、液晶显示器(LiquidCrystalDisplay,LCD)等以及扬声器等的输出部分1207;包括硬盘等的储存部分1208;以及包括诸如LAN(LocalAreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入储存部分1208。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammableReadOnlyMemory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(CompactDiscRead-OnlyMemory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的地图构建方法。该计算机可读存储介质可以是上述实施例中描述的机器人中所包含的,也可以是单独存在,而未装配入该机器人中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的地图构建方法。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本申请的保护范围之内。