本申请属于服务机器人地图构建技术领域,尤其涉及一种语义地图构建方法、装置、机器人及存储介质。
背景技术:
随着机器人技术的发展和人工智能研究的不断深入,服务机器人逐渐发成人类生活中不可或缺的角色,功能越来越智能化,广泛应用在餐饮、货物运输等领域中。在实际的一些应用场景中,机器人基于其自主定位导航功能,能够到达地图上指定的位置提供服务,但机器人的服务离不开导航地图。故在机器人的全局定位和导航过程中,导航地图起到至关重要的作用。为了保证机器人导航顺利进行(任意指定起点和终点),需要构建一个比较完备的地图。同时地图语义信息对导航规划、机器人服务管理是不可缺少的。
然而,现有机器人导航地图构建需要较多人工标注添加语义,比如需要标注客房位置、迎宾位置等服务点在地图上,而酒店有一般都有很多客房,如若使用人工标注,会因工作量大,导致标注速度低,且出现位置信息标注的偏差。
技术实现要素:
本申请实施例提供了一种语义地图构建方法、装置、机器人及存储介质,可以解决传统人工标注导航地图,效率低、精确度差的问题。
第一方面,本申请实施例提供了一种语义地图构建方法,应用于机器人,所述方法包括:
接收用户发送的行进指令信息,并根据所述行进指令信息控制所述机器人行进;
采集目标区域的空间信息构建空间地图;
采集并识别解析所述目标区域内语义对象的空间语义信息;
获取采集所述空间语义信息时的时间信息,并根据所述时间信息确定时间最邻近的关键帧;
根据所述关键帧,将所述空间语义信息标注至所述空间地图;
检测是否接收到结束建图的信息,若是,则形成带语义的导航地图,若否,则继续控制所述机器人行进,采集所述目标区域的图像和空间语义信息以继续构建所述空间地图。
第二方面,本申请实施例提供了一种语义地图构建装置,所述装置包括:
行进控制模块,用于接收用户发送的行进指令信息,并根据所述行进指令信息控制机器人行进;
地图构建模块,用于采集目标区域的空间信息构建空间地图;
语义解析模块,用于采集并识别解析所述目标区域内语义对象的空间语义信息;
确定模块,用于获取采集所述空间语义信息时的时间信息,并根据所述时间信息确定时间最邻近的关键帧;
标注模块,用于根据所述关键帧,将所述空间语义信息标注至所述空间地图;
地图形成模块,用于检测是否接收到结束建图的信息,若是,则形成带语义的导航地图,若否,则继续控制所述机器人行进,采集所述目标区域的图像和空间语义信息以继续构建所述空间地图。
第三方面,本申请实施例提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:本申请可以解决传统人工标注导航地图,效率低、精确度差的问题,从而提高服务机器人现场部署上线工程效率,提高工程效率,减轻工程人员工作量,降低服务运营成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的语义地图构建方法的流程示意图;
图2是本申请一实施例提供的语义地图构建装置的手机的结构示意图;
图3是本申请一实施例提供的机器人的结构示意图;
图4是本申请一实施例提供的机器人与工勘模块配合使用的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的语义地图构建方法可以适用于服务机器人。在实际应用中,在进行机器人的自主导航时,离不开导航地图。导航地图提供了服务机器人路径规划、行走避障的基础,对像扫地机这样的服务机器人,解决行走问题就基本够用了。但是对于像酒店服务机器人、医院服务服务机器人,为方便进行服务管理,还需要地图上具有必要的语义信息。因此,快速构建语义地图对服务机器人非常重要。但现有服务机器人导航地图构建需要较多人工标注,比如需要标注客房位置、迎宾位置等服务点在地图上,而酒店有一般都有很多客房,如若使用人工标注,会因工作量大,导致标注速度低,且出现位置信息标注的偏差。
为此,本申请提供的一种语义地图构建方法,可以解决传统人工标注导航地图,效率低、精确度差的问题。
下面结合具体实施例,对本申请提供的语义地图构建方法进行示例性的说明。
参见图1,本申请一实施例所提供的语义地图构建方法的示意性流程图。本实施例中语义地图构建方法的执行主体为机器人,所述机器人包括工勘辅助模块和建图模块,所述工勘辅助模块利用采集单元(如深度摄像头)可获取视觉图像和深度信息图像,所述建图系统利用距离传感器(如激光雷达)采集数据构建空间地图。该方法包括:
s101:接收用户发送的行进指令信息,并根据所述行进指令信息控制所述机器人行进。
在该实施例中,所述机器人扫描构建目标区域的空间地图时,预先接收用户从控制终端发送的行进指令信息,以根据所述行进指令信息控制所述机器人进行所述目标区域的空间信息的获取。所述行进指令信息可以包括语音行进指令和无线遥控行进指令。
s102:采集目标区域的空间信息构建空间地图。
在该实施例中,所述机器人可以通过激光雷达精确测量与所述目标区域周围物体的距离信息,并利用激光雷达采集数据构建空间地图。所述空间地图可以为2d平面地图也可以是3d立体地图。所述空间信息可以为所述目标区域内的物体的分布图像。
s103:采集并识别解析所述目标区域内语义对象的空间语义信息。
在该实施例中,所述机器人通过所述工勘辅助模块的采集单元,获取所述目标区域中的视觉图像和深度信息图像,同时识别所述目标区域内语义对象的空间语义信息。所述空间语义信息包括文字信息、空间距离信息中的一种或多种,其中,所述空间距离信息包括水平距离和垂直距离。
s104:获取采集所述空间语义信息时的时间信息,并根据所述时间信息确定时间最邻近的关键帧。
在该实施例中,所述机器人的所述建图模块接收所述工勘辅助模块发送的空间语义信息,同时确定采集所述空间语义信息时的时间信息,并确定所述时间信息之前的若干个关键帧,并将所述时间信息与采集的每一关键帧的时间信息进行差运算,确定最邻近的关键帧,从而进一步地与所述建图模块采集的图像信息与所述空间语义信息进行关联,以便于后续使用该地图进行导航。
s105:根据所述关键帧,将所述空间语义信息标注至所述空间地图。
在该实施例中,根据所述关键帧,确定所述关键帧在所述空间地图中的坐标位置,进而在利用识别到的空间语义信息的空间距离信息,将所述空间语义信息标注于所述地图上。
s106:检测是否接收到结束建图的信息,若是,则形成带语义的导航地图,若否,则继续控制所述机器人行进,采集所述目标区域的图像和空间语义信息以继续构建所述空间地图。
在该实施例中,所述结束建图的信息可以为所述用户通过终端设备发送的停止建图的指令信息,或是所述机器人经过设定的规划路径返回至出发点时的触发信息,或是所述机器人通过所述工勘辅助模块中的采集单元确认所述机器人行进至了所述目标区域的边缘,且表示所述目标区域的建图完成。
在一实施例中,为了便于采集的所述空间语义信息均为有效的,所述工勘辅助模块可设置启动场景识别,比如当所述采集单元识别到时酒店前台、客房门口时,确认识别到目标场景,才开始对所述目标场景中的语义信息进行识别,解析所述目标场景中有效的语义信息标注至所述空间地图中,以避免导航时出现错误或非必要的导航指示。
示例的,本申请另一实施例提供的一种语义地图构建方法,主要涉及对所述目标区域进行场景识别的过程。该方法包括:
通过深度学习神经网络对所述目标区域进行目标识别,以确认所述目标区域中是否存在目标场景。
若存在所述目标场景,则响应识别并采集解析所述目标场景内语义对象的空间语义信息。
在该实施例中,所述场景识别可通过所述深度学习神经网络进行训练实现。所述目标场景可以为酒店前台、客房门口、乘客电梯等等。其中,对所述目标区域进行场景识别时,如指定对某一语义对象进行语义提取,则当通所述深度学习神经网络对所述目标区域识别到存在所述语义对象的目标场景时,才开始进行语义提取,比如指定只对客房门牌进行语义提取,就可以启用客房门口场景识别,当没有发现客房门口时,不做语义提取,可以进一步简化语义建图的复杂度,提高工程效率。
在一实施例中,当识别到语义对象时,随着机器人运动跟踪所述语义对象,且当所述语义对象的中心点与所述采集单元的距离最小时,获取所述语义对象的水平距离和垂直距离,并标注所述空间地图中,以便于在后续导航时,所述机器人可以快速地确认所述语义对象,进而提供服务。
本申请实施例提供了一种语义地图构建方法,主要涉及计算所述语义对象与所述机器人的采集单元的最近距离的过程。所述方法包括:
所述采集并识别解析所述目标区域内语义对象的空间语义信息时,还包括:
当识别到所述语义对象时,顺序检测获取所述语义对象与所述机器人的n个距离,n≥0,n为整数。
在该实施例中,通过所述机器人上的所述采集单元计算其与所述语义对象的距离,以便于判断并计算所述采集单元与所述语义对象的最近距离。
根据所述n个距离,确定第n-1个的距离是否大于第n个的距离,以确定所述采集单元与所述语义对象的距离从逐渐减少至刚开始增大的时间点。
若第n-1个的距离小于第n个的距离,则确定获取所述第n-1个的距离的时间点为所述语义对象与所述机器人最接近的时刻,并计算得到所述语义对象与所述机器人之间的水平距离和垂直距离。
可选的,所述计算得到所述语义对象与所述机器人之间的水平距离和垂直距离后,包括:识别解析所述语义对象,得到文字信息;将所述文字信息、所述水平距离和所述垂直距离构成空间语义信息;工勘辅助模块可将所述空间语义信息发送给建图模块,标注在所述空间地图上。
其中,通过测定所述工勘辅助模块的每个采集单元与机器人地面投影中心点的空间位置关系,该空间位置关系用于计算采集单元局部坐标系到机器人坐标系的三维空间变换,该变换在建图过程中用于把采集单元测算的目标坐标(如门牌号)变换到机器人坐标系。
在一实施例中,当所述空间地图为平面地图时,根据所述关键帧将所述语义对象的文字信息和水平距离信息标注至所述平面地图。
在一实施例中,当所述空间地图为立体地图时,根据所述关键帧将所述语义对象的文字信息、水平距离信息和垂直距离信息标注至所述立体地图。
在一实施例中,如图4所示,所述工勘辅助模块在现场勘察建图的时候使用,且所述工勘辅助模块使用时可固定于机器人的外侧,所述工勘辅助模块与机器人的建图模块之间具有数据通信连接,配合一起完成空间语义地图的构建。
其中,工勘辅助模块具有可拆装的特点,在建图完成后所述工勘辅助模块可取下来安装于其他机器人之上。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的语义地图构建方法,图2示出了本申请实施例提供的语义地图构建装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图2,所述装置包括:行进控制模块100、地图构建模块200、语义解析模块300、确定模块400、标注模块500、地图形成模块600。
所述行进控制模块,用于接收用户发送的行进指令信息,并根据所述行进指令信息控制机器人行进。
所述地图构建模块,用于采集目标区域的空间信息构建空间地图。
所述语义解析模块,用于采集并识别解析所述目标区域内语义对象的空间语义信息。
所述确定模块,用于获取采集所述空间语义信息时的时间信息,并根据所述时间信息确定时间最邻近的关键帧。
所述标注模块,用于根据所述关键帧,将所述空间语义信息标注至所述空间地图。
所述地图形成模块,用于检测是否接收到结束建图的信息,若是,则形成带语义的导航地图,若否,则继续控制所述机器人行进,采集所述目标区域的图像和空间语义信息以继续构建所述空间地图。
图3为本申请一实施例提供的机器人的结构示意图。如图3所示,该实施例的机器人3包括:至少一个处理器30(图3中仅示出一个处理器)、存储器31以及存储在所述存储器31中并可在所述至少一个处理器30上运行的计算机程序32,所述处理器30执行所述计算机程序32时实现上述任意各个方法实施例中的步骤。
所述机器人3可包括但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是机器人3的举例,并不构成对机器人3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所述处理器30可以是中央处理单元(centralprocessingunit,cpu),该处理器30还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31在一些实施例中可以是所述机器人3的内部存储单元,例如机器人3的硬盘或内存。所述存储器31在另一些实施例中也可以是所述机器人3的外部存储设备,例如所述机器人3上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器31还可以既包括所述机器人3的内部存储单元也包括外部存储设备。所述存储器31用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口、装置或单元的间接耦合或通讯连接,可以是电性、机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
1.一种语义地图构建方法,应用于机器人,其特征在于,所述方法包括:
接收用户发送的行进指令信息,并根据所述行进指令信息控制所述机器人行进;
采集目标区域的空间信息构建空间地图;
采集并识别解析所述目标区域内语义对象的空间语义信息;
获取采集所述空间语义信息时的时间信息,并根据所述时间信息确定时间最邻近的关键帧;
根据所述关键帧,将所述空间语义信息标注至所述空间地图;
检测是否接收到结束建图的信息,若是,则形成带语义的导航地图,若否,则继续控制所述机器人行进,采集所述目标区域的图像和空间语义信息以继续构建所述空间地图。
2.如权利要求1所述的语义地图构建方法,其特征在于,所述采集并识别解析所述目标区域内语义对象的空间语义信息,还包括:
通过深度学习神经网络对所述目标区域进行目标识别,以确认所述目标区域中是否存在目标场景;
若存在所述目标场景,则响应识别并采集解析所述目标场景内语义对象的空间语义信息。
3.如权利要求1所述的语义地图构建方法,其特征在于,所述采集并识别解析所述目标区域内语义对象的空间语义信息时,还包括:
当识别到所述语义对象时,顺序检测获取所述语义对象与所述机器人的n个距离,n≥0,n为整数;
根据所述n个距离,确定第n-1个的距离是否大于第n个的距离;
若第n-1个的距离小于第n个的距离,则确定获取所述第n-1个的距离的时间点为所述语义对象与所述机器人最接近的时刻,并计算得到所述语义对象与所述机器人之间的水平距离和垂直距离。
4.如权利要求3所述的语义地图构建方法,其特征在于,所述计算得到所述语义对象与所述机器人之间的水平距离和垂直距离后,包括:
识别解析所述语义对象,得到文字信息;
将所述文字信息、所述水平距离和所述垂直距离构成空间语义信息;
将所述空间语义信息进行空间变换,标注在所述空间地图上。
5.如权利要求1所述的语义地图构建方法,其特征在于,所述空间语义信息包括文字信息、空间距离信息中的一种或多种,其中,所述空间距离信息包括水平距离和垂直距离。
6.如权利要求5所述的语义地图构建方法,其特征在于,当所述空间地图为平面地图时,根据所述关键帧将所述语义对象的文字信息和水平距离信息标注至所述平面地图。
7.如权利要求5所述的语义地图构建方法,其特征在于,当所述空间地图为立体地图时,根据所述关键帧将所述语义对象的文字信息、水平距离信息和垂直距离信息标注至所述立体地图。
8.一种语义地图构建装置,其特征在于,所述装置包括:
行进控制模块,用于接收用户发送的行进指令信息,并根据所述行进指令信息控制机器人行进;
地图构建模块,用于采集目标区域的空间信息构建空间地图;
语义解析模块,用于采集并识别解析所述目标区域内语义对象的空间语义信息;
确定模块,用于获取采集所述空间语义信息时的时间信息,并根据所述时间信息确定时间最邻近的关键帧;
标注模块,用于根据所述关键帧,将所述空间语义信息标注至所述空间地图;
地图形成模块,用于检测是否接收到结束建图的信息,若是,则形成带语义的导航地图,若否,则继续控制所述机器人行进,采集所述目标区域的图像和空间语义信息以继续构建所述空间地图。
9.一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
技术总结