本发明涉及人工智能技术领域,特别涉及一种机器人自主定位方法和系统。
背景技术:
随着通信和电子等科技领域的发展,机器人从工业服务逐渐渗入到社会服务、医疗康复和家用等领域,但依然存在诸多技术瓶颈,其中一个亟待解决的问题是机器人的精准定位。定位是机器人对周围环境的物理空间感知能力,是机器人实现智能服务的基础,在实际的应用中机器人需要适应不同的作业场景,通过捕捉信息快速识别周边环境并做出精准定位。
目前主流的机器人定位的方法主要包括多传感器融合定位、激光雷达定位或视觉定位,但上述方法均存在一些问题。例如,多传感器融合定位方法中,不同性能的传感器的整合应用会带来偏差,难以应对机器人运行过程中的外参突变;激光雷达定位方法应用最广,但机器人开机时默认位置为建图的初始位置,需要人为调整,并且机器人在长时间运作中轮子的累计误差将导致定位偏离;视觉定位方法是一种较新的技术,利用视觉传感装置获取物体图像,对图像处理后获得物体的位置信息,但现有技术中的视觉定位技术对光照变化和场景动态变化等因素敏感,达不到精确定位的理想效果。
技术实现要素:
针对现有技术的上述问题,本发明的目的在于,提供一种机器人自主定位方法和系统,模仿人类视觉感知环境的方式,通过识别室内固定标识物达到定位目的。解决了上述定位方法中对光线敏感、运行累计误差和场景限制等问题,在实际应用中能自如应对场景的动态变化,同时也具备良好的稳定性。
本发明的具体技术方案如下:
一种机器人自主定位方法,包括:获取室内视频流数据,基于所述室内视频流数据构建网络数据集;采集包含固定标识物的第一图像组;利用训练好的预设孪生网络从所述网络数据集中获取与所述第一图像组匹配的第二图像组;匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;获取所述特征标识物的位置参数;基于所述特征标识物的位置参数计算机器人的位置;其中,所述固定标识物至少包括门、窗户、立柱、横梁和墙体。
具体地,所述获取室内视频流数据,基于所述室内视频流数据构建网络数据集,包括:获取包括彩色图像、深度图像和位姿参数的室内视频流数据;根据所述室内视频流数据构建室内三维地图和室内二维地图;匹配所述室内三维地图和室内二维地图的坐标系构建网络数据集;所述网络数据集包括彩色图像、深度图像、位姿参数、室内三维地图和室内二维地图。
具体地,所述匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;获取所述特征标识物的位置参数;包括:提取所述第一图像组和所述第二图像组中的、相匹配的两两图片对;通过预设语义分割网络对两两图片对进行语义分割,匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;提取所述特征标识物的像素点在室内二维地图中的位置坐标。
具体地,所述基于所述特征标识物的位置坐标计算机器人的位置,包括:基于所述特征标识物的像素点在室内二维地图中的位置坐标,得到所述特征标识物在世界坐标系中的位置坐标;获取机器人相对于所述特征标识物的方向参数;根据所述方向参数计算机器人到所述特征标识物的距离值;基于所述特征标识物在世界坐标系中的位置坐标和所述距离值,通过点到直线的距离公式计算机器人的位置。
具体地,所述基于所述特征标识物的位置坐标计算机器人的位置,还包括:如果单个所述特征标识物具有多个平面,则对单个所述特征标识物的进行平面分割;根据平面分割结果确定单个所述特征标识物的不同平面之间的分割线;根据所述分割线区分所述特征标识物的不同平面。
一种机器人自主定位系统,包括:图像采集单元,被配置为获取室内视频流数据,以及被配置为采集包含固定标识物的第一图像组;算法单元,被配置为基于所述室内视频流数据构建网络数据集;图像匹配单元,被配置为利用训练好的预设孪生网络从所述网络数据集中获取与所述第一图像组匹配的第二图像组;标识物定位单元,被配置为匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;以及被配置为获取所述特征标识物的位置参数;机器人定位单元,被配置为基于所述特征标识物的位置参数计算机器人的位置;其中,所述固定标识物至少包括门、窗户、立柱、横梁和墙体。
具体地,所述图像采集单元被具体配置为:获取包括彩色图像、深度图像和位姿参数的室内视频流数据;所述算法单元被具体配置为:根据所述室内视频流数据构建室内三维地图和室内二维地图;以及,匹配所述室内三维地图和室内二维地图的坐标系构建网络数据集;其中,所述网络数据集包括彩色图像、深度图像、位姿参数、室内三维地图和室内二维地图。
具体地,所述标识物定位单元包括:语义分割模块,被配置为提取所述第一图像组和所述第二图像组中的、相匹配的两两图片对;以及被配置为通过预设语义分割网络对两两图片对进行语义分割;标识物匹配模块,被配置为匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;坐标提取模块,被配置为提取所述特征标识物的像素点在室内二维地图中的位置坐标。
具体地,所述机器人定位单元包括:坐标计算模块,被配置为基于所述特征标识物的像素点在室内二维地图中的位置坐标,得到所述特征标识物在世界坐标系中的位置坐标;方向确定模块,被配置为获取机器人相对于所述特征标识物的方向参数;距离计算模块,被配置为根据所述方向参数计算机器人到所述特征标识物的距离值;位置计算模块,被配置为基于所述特征标识物在世界坐标系中的位置坐标和所述距离值,通过点到直线的距离公式计算机器人的位置。
具体地,所述机器人定位单元还包括:平面分割模块,被配置为:对具有多个平面的单个所述特征标识物的进行平面分割;根据平面分割结果确定单个所述特征标识物的不同平面之间的分割线;以及根据所述分割线区分所述特征标识物的不同平面。
采用上述技术方案,本发明所述的专利名具有如下有益效果:
本发明采用多模式融合的机器人自主定位方法和系统,通过预先构建网络数据集和识别室内的固定标识物进行机器人定位,利用语义分割技术精确定位,无需人工标记,机器人能够通过预设系统自主定位,智能化程度高。并且避免了场景中动态变化和光线强度对定位的影响,对硬件要求低,节省成本。此外,本发明采用的固定标识物存在于大部分的室内应用场景,因此能够应用于办公大楼、餐饮、家庭及工厂车间等场所,适用场景广泛,实用性强。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1本发明具体实施方式的机器人数据准备流程图;
图2本发明具体实施方式的机器人定位流程图;
图3本发明具体实施方式的距离计算辅助图;
图4本发明具体实施方式的另一距离计算辅助图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
机器人自主定位系统
一种机器人自主定位系统,包括:图像采集单元、算法单元、图像匹配单元、标识物定位单元和机器人定位单元;所述图像采集单元被配置为获取室内视频流数据,以及被配置为采集包含固定标识物的第一图像组;所述算法单元被配置为基于所述室内视频流数据构建网络数据集;所述图像匹配单元被配置为利用训练好的预设孪生网络从所述网络数据集中获取与所述第一图像组匹配的第二图像组;所述标识物定位单元被配置为匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;以及被配置为获取所述特征标识物的位置参数;所述机器人定位单元被配置为基于所述特征标识物的位置参数计算机器人的位置;其中,所述固定标识物至少包括门、窗户、立柱、横梁和墙体。
需要注意的是,所述固定标识物不限于上述种类,所述固定标识物是指室内的固定标志性建筑物,即室内的不可移动的,除损坏拆除外不会产生变化的固定建筑物。如此,无需采用人工标记的标识物进行定位,定位更加便捷和智能化。
其中,图像采集单元包括相机。
进一步地,所述图像采集单元被具体配置为:获取包括彩色图像、深度图像和位姿参数的室内视频流数据;所述算法单元被具体配置为:根据所述室内视频流数据构建室内三维地图和室内二维地图;以及,匹配所述室内三维地图和室内二维地图的坐标系构建网络数据集;其中,所述网络数据集包括彩色图像、深度图像、位姿参数、室内三维地图和室内二维地图。
如此,针对室内场景特征选用固定标识物作为参照物确定机器人位置,几乎不会受到场景的动态变化、差异性以及环境光线条件的影响。并且,通过自构建场景地图和固定标识物比对定位,降低机器人的硬件要求,节约机器人制造和运行成本。
例如在一个具体实施方式中,采用kinect相机采集室内视频流数据;采用rtabmap算法结合室内视频流数据得到每张图片对应的位姿和三维的点云图,构建室内三维地图;rtabmap算法运行的同时虚拟一个激光雷达(fakelaser),虚拟的激光雷达创建室内二维地图。
需要注意的是,所述图像采集单元中的相机类型不限于kinect相机,可以为任意能够获得彩色图像、深度图像和位姿参数的相机;所述算法单元采用的算法不限于rtabmap算法,也可以为gmapping算法等。
其中,所述预设孪生网络是预先经过训练的孪生网络,其训练方法包括:
步骤s110,初步训练,具体为利用通用图片数据库初训练待设孪生网络,得到初设孪生网络;
步骤s120,精准训练,具体为:
s121,将所述室内视频流数据中每张图像的像素点对应到世界坐标系;
s122,计算两两图像对应的距离;
s123,根据相似度阈值将每两两图像分为相似对和不相似对,并标记所述相似对和不相似对,生成训练数据集;
s124,利用训练数据集训练初设孪生网络,得到预设孪生网络。
例如在一个具体实施方式中,采用imagenet初训练待设孪生网络,所述待设孪生网络具体为resnet残差网络;利用相机坐标到世界坐标系的映射公式,将将所述室内视频流数据中每张图像的像素点对应到世界坐标系;通过在每张图像上下左右均匀提取1/5的像素点,采用欧氏距离计算两两图像对应的距离;设置相似度阈值为1.25将每两两图像分为相似对和不相似对,相似对标注为1,不相似对标注为-1,生成训练数据集;初设孪生网络作为基础网络提取训练数据集中两两图像的特征向量,在最后一层生成相似度损失函数,采用迁移学习方式进行网络训练,得到预设孪生网络。
需要注意的是,所述待设孪生网络不仅限于resnet残差网络。
进一步地,所述预设孪生网络从所述网络数据集中获取与所述第一图像组匹配的第二图像组,匹配到的第二图像组对应出室内二维地图或室内三维地图中的位置,完成粗略定位的步骤。
需要注意的是,所述预设孪生网络在所述网络数据集中获取与所述第一图像组匹配的相似图片作为第二图像组。所述第一图像组至少包括一张图片,且该图片中的固定标识物至少具有两个平面;或者所述第一图像组包括两张以上图片,从所述第一图像组中能够识别出至少两个固定标识物,根据至少两个固定标识物能够确定至少两个平面。例如获取第一图像组的拍摄方式可以是机器人相机旋转拍摄。
具体地,所述标识物定位单元包括:语义分割模块,被配置为提取所述第一图像组和所述第二图像组中的、相匹配的两两图片对;以及被配置为通过预设语义分割网络对两两图片对进行语义分割;标识物匹配模块,被配置为匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;坐标提取模块,被配置为提取所述特征标识物的像素点在室内二维地图中的位置坐标。
其中,至少确定一个特征标识物,且该特征标识物至少具有两个平面,即能够根据该特征标识物确定出至少两个二维映射平面,用于机器人位置的计算。或者,至少能够确定出两个特征标识物,通过至少两个特征标识物确定出至少两个二维映射平面,用于机器人位置的计算。
其中,所述预设语义分割网络可以是经过训练的语义分割网路,在一个具体实施方式中,该预设语义分割网络的训练方法包括:
s210,提取室内视频流数据中包括固定标识物的图像;
s220,将图像中的固定标识物分类标记,构建语义分割训练数据集;
s230,利用语义分割训练数据集训练初始语义分割网络,生成新的网络参数;
s240,根据新的网络参数生成预设语义分割网络。
例如在一个具体实施方式中,利用labelme软件标记图片中的固定标识物(门、窗户、横梁、立柱和墙等)语义分割训练数据集,采用初始语义分割(semantic-segmentation)网络重新训练得到新的网路参数,通过新的网路参数得到预设语义分割网络。
需要注意的是,也可以采用通用图片数据库中的、包含固定标识物的室内图像,生成语义分割训练数据集,如从imagenet数据库中提取。
具体地,所述机器人定位单元包括:坐标计算模块,被配置为基于所述特征标识物的像素点在室内二维地图中的位置坐标,得到所述特征标识物在世界坐标系中的位置坐标;方向确定模块,被配置为获取机器人相对于所述特征标识物的方向参数;距离计算模块,被配置为根据所述方向参数计算机器人到所述特征标识物的距离值;位置计算模块,被配置为基于所述特征标识物在世界坐标系中的位置坐标和所述距离值,通过点到直线的距离公式计算机器人的位置。
其中,方向参数包括机器人相对于固定标识物所在面的角度值。所述方向确定模块中包括陀螺仪等传感设备。
例如,通过上述方法确定出了一个具有两个平面的特征标识物,通过对含有该特征标识物图像的处理,得到两个基于特征标识物的不同平面的二维映射平面,以及两个平面在世界坐标系中的位置坐标;获取机器人相对于两个二维映射平面的第一角度值和第二角度值;根据该第一角度值和第二角度值,能够得到相应的第一距离值、第二距离值和两个平面的位置坐标,计算得出机器人的位置。
具体地,所述机器人定位单元还包括:平面分割模块,被配置为:对具有多个平面的单个所述特征标识物进行平面分割;根据平面分割结果确定单个所述特征标识物的不同平面之间的分割线;根据所述分割线区分所述特征标识物的不同平面。
在实际应用中,上述对包含多个平面的特征标识物的图像分割,可以是在预设语义分割网络已对包含特征标识物的图像预处理过的基础上进行,或者可以通过平面分割模块的预设算法对该图像预处理,该预处理包括用不同颜色标识该图像中的不同物体。
例如在一个具体实施方式中,所述特征标识物为具有多堵墙面的墙体,通过下述方式进行墙体分割:
i.首先采用优化着色方法结填充该特征标识物的深度图片的缺失值,得到特征深度图片;
ii.采用canny算子处理该特征深度图片的深度值;
iii.将墙面部分像素点中的突出线条部分作为墙体分割线。
机器人自主定位方法
一种机器人自主定位方法,包括:获取室内视频流数据,基于所述室内视频流数据构建网络数据集;采集包含固定标识物的第一图像组;利用训练好的预设孪生网络从所述网络数据集中获取与所述第一图像组匹配的第二图像组;匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;获取所述特征标识物的位置参数;基于所述特征标识物的位置参数计算机器人的位置;其中,所述固定标识物至少包括门、窗户、立柱、横梁和墙体。
具体地,所述获取室内视频流数据,基于所述室内视频流数据构建网络数据集,包括:获取包括彩色图像、深度图像和位姿参数的室内视频流数据;根据所述室内视频流数据构建室内三维地图和室内二维地图;匹配所述室内三维地图和室内二维地图的坐标系构建网络数据集;所述网络数据集包括彩色图像、深度图像、位姿参数、室内三维地图和室内二维地图。
具体地,所述匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;获取所述特征标识物的位置参数;包括:提取所述第一图像组和所述第二图像组中的、相匹配的两两图片对;通过预设语义分割网络对两两图片对进行语义分割,匹配所述第一图像组和第二图像组中相同的固定标识物,将相同的固定标识物作为特征标识物;提取所述特征标识物的像素点在室内二维地图中的位置坐标。
具体地,所述基于所述特征标识物的位置坐标计算机器人的位置,包括:基于所述特征标识物的像素点在室内二维地图中的位置坐标,得到所述特征标识物在世界坐标系中的位置坐标;获取机器人相对于所述特征标识物的方向参数;根据所述方向参数计算机器人到所述特征标识物的距离值;基于所述特征标识物在世界坐标系中的位置坐标和所述距离值,通过点到直线的距离公式计算机器人的位置。
具体地,所述基于所述特征标识物的位置坐标计算机器人的位置,还包括:如果单个所述特征标识物具有多个平面,则对单个所述特征标识物进行平面分割;根据平面分割结果确定单个所述特征标识物的不同平面之间的分割线;根据所述分割线区分所述特征标识物的不同平面。
例如,在一个具体实施方式中,参考图1-2,机器人的定位方法包括数据准备阶段和定位阶段。
所述数据准备阶段包括:机器人利用自带的相机开始数据采集,获取机器人工作区域的室内视频流数据,工作区域可以是办公大楼、餐饮、家庭及工厂车间等场所,根据室内视频流数据构建网络数据集;基于室内视频流数据生成初设孪生网络的训练数据集,利用该训练数据集训练初设孪生网络,得到预设孪生网络;以及,提取室内视频流数据中的包括固定标识物的图像,分类标记图像中的固定标识物,如门、窗户、立柱、横梁和墙面等,构建出语义分割训练数据集,利用语义分割训练数据集训练初始语义分割网络,得到预设语义分割网络;完成数据准备。
如此,通过简单的数据采集和处理,能够通过不易改变的固定标识物定位机器人,场景中的动态变化对定位的影响不大,室内的固定标识物通过语义分割自动识别无需人工标记,智能化程度高。
所述定位阶段包括粗略定位和精确定位。
其中,粗略定位的过程包括:机器人采集图像p1,预设孪生网络在网络数据集中匹配图像,若未匹配到相似的图像,则重新采集图像。若匹配到与p1类似的图片p2,则完成粗略定位的过程。
完成粗略定位后,利用预设语义分割网络将p1和p2语义分割,匹配到相同的固定标识物作为特征标识物;在p1中提取特征标识物在室内二维地图中的二维坐标;利用预设系统算法判断特征标识物中是否存在多个平面:即单个特征标识物中包含两个或两个以上平面,如包括多堵墙面的墙体,或者两个或两个以上的特征标识物处于不同的平面内,如获取到门和窗,且二者不在同一平面内;若否,则重新采集图片,至最终能够得到两个特征标识物所在的平面,或者得到一个具有至少两个平面的特征标识物;若是,则对多个平面进行平面分割,例如,对包括多堵墙面的墙体进行墙面分割;然后提取特征标识物的世界坐标系中的坐标;计算机器人到特征标识物平面的距离和方位;对应室内二维地图建立特征标识物的直线方程;通过点到直线距离公式计算机器人的位置;完成精确定位。
如此通过粗略定位和精确定位两个步骤最终确定机器人位置,节省了定位成本并提高了室内定位精度。
在一个具体实施例中,所述特征标识物为墙体,参考图3-4,图1中的点a、d、e、f、w、g、f和h在同一平面内,该平面为图像中特征标识物的一个面所在的的二维映射平面,c为机器人所在的位置。图中,θ1-相机摄像头的仰角,θ2-相机摄像头与墙面的角度,d-相机摄像头到墙面任意一点的距离,摄像头视角可实时获取,相机摄像头的视角参数:垂直方向43,水平方向57。求:摄像头到标识物的距离,所述距离计算模块采用的计算方法为,根据摄像头视角可以求出∠eco和∠ocf,根据下列方程式,求出x,既得到摄像头到特征标识物所在平面的距离。
d1=tan(θ2)*x
d2=x/cos(θ2)
d3=d2*tan(θ1)
d4=d2/cos(θ1)
d5=d2*tan(θ1+∠eco)
d6=(d2-x2-d52)1/2
d7=(d62+x2+d32)1/2
d8=d1+d6
d82=d42+d72-2d4d7cos(∠ocf)
进一步地,计算机器人位置的方法为:通过至少两个特征标识物所在二维平面的直线方程,或者是一个特征标识物中的至少两个二维平面的直线方程,利用点到直线的距离,计算机器人的位置,并将位置反馈给室内二维地图和三维地图,来最终确定机器人的位置。具体过程如下:
a)首先寻找至少两个特征标识物,或一个特征标识物的至少两个平面,计算特征标识物所在平面与机器人的距离l值,此l值即为前文所述的x。例如,机器人到两个平面的距离分别为l1和l2,或者机器人到三个平面的距离分别为l1,l2和l3。
b)构建特征标识物所在平面的二维方程表达式。通过室内二维地图中的特征标识物在世界坐标系中的位置信息,构建标识物的直线方程式:(y-y1)/(y1-y2)=(x-x1)/(x1-x2),其中(x1,y1),(x2,y2)是表示特征标识物平面的任意两个坐标,最终得到方程表达式ax+by+c=0。
c)利用点到直线的距离公式
其中,当只得到两个平面时,即只有两个距离值l1和l2时,计算机器人到特征标识物的两个平面包含的像素点的距离,通过距离最小判断最终机器人的位置。其过程为计算点到到两个平面的距离会求出4个x和4个y,其中一组x和y到这两个平面的任意像素点(点到点)的距离最小的,即为最终求得的机器人的坐标x和y。当得到大于两个平面时,则直接得到唯一的机器人坐标x和y。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。