基于机器视觉的导航方法、装置、电子设备及存储介质与流程

文档序号:28445883发布日期:2022-01-12 03:19阅读:78来源:国知局
基于机器视觉的导航方法、装置、电子设备及存储介质与流程

1.本发明涉及机器人控制领域,具体涉及一种基于机器视觉的导航方法、装置、电子设备及存储介质。


背景技术:

2.大部分传统的室内导航技术都依赖于在室内建立地图和标定特征点,建立地图费时费力同时在特征点发生变化时将会对地图的匹配及导航精度造成较大影响,例如在超市、商场这种场景下,货架中被经常性地放入或取出商品,其特征变化频繁且变化程度较大,以致机器人在导航过程地图匹配不上而发生飘逸,从而使机器人在导航过程中极为不稳定,因此在超市、商场中以传统的现有技术难以实现机器人导航。
3.因此,现有技术有待改进和发展。


技术实现要素:

4.本发明的目的在于提供一种基于机器视觉的导航方法、装置、电子设备及存储介质,无需建立地图和特征点,通过视觉识别控制机器人完成目标寻找和移动行驶,有效避免周边环境的变化影响机器人导航。
5.第一方面,本技术提供一种基于机器视觉的导航方法,应用于机器人的控制系统以使所述机器人在商场中行驶,其步骤包括:s1.获取目标商品的商品信息,所述商品信息包括类别信息、货架信息和目标商品名称;s2.根据所述类别信息控制所述机器人沿第一引导线在所述商场中移动并寻找到目标商品所在的第一区域;所述第一引导线设置在所述商场的各商品存放区域之间的通道上;s3.根据所述货架信息,控制所述机器人在所述第一区域内寻找所述目标商品所在的第一货架的位置;s4.根据所述第一货架的位置获取所述第一货架对应的第一过道的位置;s5.根据所述第一过道的位置控制所述机器人进入所述第一过道;s6.循环执行以下步骤:s61.获取所述第一过道路侧货架的货架图像;s62.从所述第一货架所在的所述货架图像中识别各商品的第二标签的第二标签信息;s63.在所述各商品的第二标签信息不包含所述目标商品名称的时候,根据所述货架图像控制所述机器人沿所述第一过道继续前进;s64.在所述各商品的第二标签信息包含所述目标商品名称的时候,退出循环。
6.通过视觉控制机器人移动并识别商场中的分类标签以寻得目标位置,降低了货架中商品变化对机器人导航的影响,有利于增加机器人导航的稳定性。
7.进一步的,步骤s61包括:在所述第一过道的两侧均有货架的时候,获取左侧货架图像和右侧货架图像;步骤s63包括:在所述第一过道两侧均有货架的时候,执行步骤:s631.根据所述左侧货架图像分离出左侧货架每层的第一横梁图像;s632.获取所有所述第一横梁图像的中心点坐标以计算所述机器人到所述左侧货架的第一距离;s633.根据所述右侧货架图像分离出右侧货架每层的第二横梁图像;s634.获取所有所述第二横梁图像的中心点坐标以计算所述机器人到所述右侧货架的第二距离;s635.根据所述第一距离和所述第二距离控制所述机器人沿所述第一过道直线行驶。
8.在商场中货架位置一般不会发生变动,通过左右两侧货架上的横梁图像控制机器人与货架之间的距离,使得机器人在移动时能够实现直线行驶,一方面有效避免机器人意外撞向货架,另一方面有利于提高机器人导航稳定性。
9.进一步的,步骤s632包括:根据以下公式计算所述第一距离:;;;;其中,为所述左侧货架中第层的所述第一横梁图像的中心点与所述机器人的距离,为所述机器人的横轴坐标,为所述机器人的纵轴坐标,为所述机器人的竖轴坐标,为所述左侧货架中第层的第一横梁图像的中心点的横轴坐标,为所述左侧货架中第层的第一横梁图像的中心点的纵轴坐标,为所述左侧货架中第层的第一横梁图像的中心点的竖轴坐标,为所述左侧货架中所述第一横梁的总数量,为所述左侧货架中第层的第一横梁与所述机器人之间的相对距离,为所述左侧货架中第1层的第一横梁与所述机器人之间的相对距离,为述左侧货架中第2层的第一横梁与所述机器人之间的相对距离,为所述左侧货架中第层的第一横梁与所述机器人之间的夹角,为所述左侧货架中第层的第一横梁图像的中心点的纵轴坐标,为所述左侧货架中第层的第一横梁图像的中心点的横轴坐标,为所述机器人到所述左侧货架的第一距离;
步骤s634包括:根据以下公式计算所述第二距离:;;;;其中,为所述右侧货架中第层的所述第二横梁图像的中心点与所述机器人的距离,为所述机器人的横轴坐标,为所述机器人的纵轴坐标,为所述机器人的竖轴坐标,为所述右侧货架中第层的第二横梁图像的中心点的横轴坐标,为所述右侧货架中第层的第二横梁图像的中心点的纵轴坐标,为所述右侧货架中第层的第二横梁图像的中心点的竖轴坐标,为所述右侧货架中所述第二横梁的总数量,为所述右侧货架中第层的第二横梁与所述机器人之间的相对距离,为所述右侧货架中第1层的第二横梁与所述机器人之间的相对距离,为右侧货架中第2层的第二横梁与所述机器人之间的相对距离,为所述右侧货架中第层的第二横梁与所述机器人之间的夹角,为所述右侧货架中第层的第二横梁图像的中心点的纵轴坐标,为所述右侧货架中第层的第二横梁图像的中心点的横轴坐标,为所述机器人到所述右侧货架的第二距离。
10.进一步的,步骤s635包括:根据所述第一距离和所述第二距离控制所述机器人沿所述第一过道的中线行驶。
11.控制机器人沿第一过道的中线行驶,有利于保证机器人能够获得完整的左右侧货架图像,避免机器人过于贴近其中一侧导致该侧部分商品的第二标签信息无法识别。
12.进一步的,步骤s631包括:根据预设的宽度阈值从左侧货架图像中识别出所述第一横梁;步骤s633包括:根据预设的宽度阈值从右侧货架图像中识别出所述第二横梁。
13.通过宽度从图像中辨别并提取出横梁,过滤掉竖梁对机器人控制的影响,有利于提高机器人导航的稳定性。
14.进一步的,步骤s61包括:在所述第一过道仅左侧或右侧有货架的时候,获取左侧货架图像或右侧货架图像;步骤s63包括:在所述第一过道仅左侧或右侧有货架的时候,执行步骤:
s636.根据所述左侧货架图像分离出左侧货架每层的第一横梁图像,或根据所述右侧货架图像分离出右侧货架每层的第二横梁图像;s637.获取所有所述第一横梁图像的中心点坐标以计算所述机器人到所述左侧货架的第一距离,或获取所有所述第二横梁图像的中心点坐标以计算所述机器人到所述右侧货架的第二距离;s638.根据所述第一距离或所述第二距离控制所述机器人沿所述第一过道直线行驶。
15.进一步的,步骤s2包括:s21.循环执行以下步骤:s211.获取设置在所述商场内的第一引导线的第一引导线图像;s212.根据所述第一引导线图像,控制所述机器人沿所述第一引导线行驶;s213.获取当前商品存放区域的用于记录商品类别的第一标签的第一标签图像;s214.从所述第一标签图像中识别出第一标签信息;s215.在当前商品存放区域的所述第一标签信息不包含所述类别信息时,控制所述机器人沿所述第一引导线行驶至下一个商品存放区域;s216.在所述机器人移动至所述第一标签信息包含所述类别信息的第一区域时,退出循环。
16.第二方面,本发明还提供了一种基于机器视觉的导航装置,应用于机器人的控制系统以使所述机器人在商场中行驶,所述基于机器视觉的导航装置包括:第一获取模块,用于获取目标商品的商品信息,所述商品信息包括类别信息、货架信息和目标商品名称;第一控制模块,用于根据所述类别信息控制所述机器人沿第一引导线在所述商场中移动并寻找到目标商品所在的第一区域;所述第一引导线设置在所述商场的各商品存放区域之间的通道上;第二控制模块,用于根据所述货架信息,控制所述机器人在所述第一区域内寻找所述目标商品所在的第一货架的位置;第二获取模块,用于根据所述第一货架的位置获取所述第一货架对应的第一过道的位置;第三控制模块,用于根据所述第一过道的位置控制所述机器人进入所述第一过道;执行模块,用于循环执行以下步骤:获取所述第一过道路侧货架的货架图像;从所述第一货架所在的所述货架图像中识别各商品的第二标签的第二标签信息;在所述各商品的第二标签信息不包含所述目标商品名称的时候,根据所述货架图像控制所述机器人沿所述第一过道继续前进;在所述各商品的第二标签信息包含所述目标商品名称的时候,退出循环。
17.机器人通过图像控制其移动,并通过视觉识别在商场中寻找目标商品,实现了无需在商场中建立地图和特征点完成机器人的导航,节省了地图建立的时间,增加了机器人导航的稳定性。
18.第三方面,本发明提供了一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述基于机器视觉的导航方法中的步骤。
19.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述基于机器视觉的导航方法中的步骤。
20.由上可知,本技术机器人能够从图像中准确识别出商场中分类标签和商品标签的文本信息,根据该信息控制机器人移动并寻得目标商品,相比于现有技术,本技术机器人导航不依赖于建立地图和标定特征点,因而周边环境的变化对机器人导航影响较小,从而大大提高机器人导航的稳定性。
21.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
22.图1为本技术实施例提供的基于机器视觉的导航方法的一种流程图。
23.图2为本技术实施例提供的基于机器视觉的导航装置的第一种结构示意图。
24.图3为本技术实施例提供的电子设备的结构示意图。
25.图4为本技术实施例中其中一种商场布局的俯视图。
26.图5为本技术实施例中单个商品存放区域的其中一种布局的俯视图。
27.标号说明:100、机器人;200、第一引导线;300、第一标签;400、第一区域;500、第二引导线;600、第一货架;700、第一过道;810、第一获取模块;820、第一控制模块;830、第二控制模块;840、第二获取模块;850、第三控制模块;860、执行模块;1101、处理器;1102、存储器;1103、通信总线。
具体实施方式
28.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
30.需要说明的是,下文中“前侧”指的是以机器人前进方向为参考的一侧,“后侧”指的是以机器人后退方向为参考的一侧。
31.还需要说明的是,下文中提及的坐标信息,均是基于以机器人为原点建立的空间坐标系,其中,若第一引导线和第二引导线为直线则以平行于第一引导线或第二引导线的
方向作为x轴,若第一引导线和第二引导线为曲线则以平行于第一引导线或第二引导线的切线方向作为x轴,在水平面上垂直于x轴方向的则为y轴,竖直垂直于水平面方向的则为z轴。
32.在实际应用中,为了方便顾客找到所需商品,商场都会对所有商品进行分类摆放并以区域划分,且各个区域上都会悬挂或张贴该区域商品的分类牌,例如生活用品区、家用电器区、熟食区等等;同时各个区域都会设置多个货架以供商品存放。
33.在某些实施例中,一种基于机器视觉的导航方法,应用于机器人的控制系统以使机器人在商场中行驶,其步骤包括:s1.获取目标商品的商品信息,商品信息包括类别信息、货架信息和目标商品名称;s2.根据类别信息控制机器人沿第一引导线在商场中移动并寻找到目标商品所在的第一区域;第一引导线设置在商场的各商品存放区域之间的通道上;s3.根据货架信息,控制机器人在第一区域内寻找目标商品所在的第一货架的位置;s4.根据第一货架的位置获取第一货架对应的第一过道的位置;s5.根据第一过道的位置控制机器人进入第一过道;s6.循环执行以下步骤:s61.获取第一过道路侧货架的货架图像;s62.从第一货架所在的货架图像中识别各商品的第二标签的第二标签信息;s63.在各商品的第二标签信息不包含目标商品名称的时候,根据货架图像控制机器人沿第一过道继续前进;s64.在各商品的第二标签信息包含目标商品名称的时候,退出循环。
34.在本实施例中,机器人的左侧、右侧和顶部均安装有摄像头,同时,商场中各个商品存放区域之间的过道均设置有第一引导线,第一引导线可以设置在商场的天花板上,机器人通过顶部的摄像头获取第一引导线图像,根据第一引导线图像识别出第一引导线的位置,控制机器人沿第一引导线行驶,从而使得机器人能够行驶至各个商品存放区域。
35.在某些实施例中,机器人也可以仅设置单个能够全方位转向的摄像头以获取所需的图像,但机器人需要时刻获取多个方向的图像,单个摄像头需要多次快速转动,其转动结构容易损坏。
36.实际使用时,用户向机器人输入目标商品名称(例如“汽水”),控制系统则根据该商品名称从预设的数据库中筛选出目标商品的商品信息(例如类别信息“饮品区”;货架信息“3号货架”;目标商品名称“汽水”),在目标商品被确定后,机器人则从预设的起点出发并沿第一引导线行驶。
37.进一步的,步骤s2包括:s21.循环执行以下步骤:s211.获取设置在商场内的第一引导线的第一引导线图像;s212.根据第一引导线图像,控制机器人沿第一引导线行驶;s213.获取当前商品存放区域的用于记录商品类别的第一标签的第一标签图像;s214.从第一标签图像中识别出第一标签信息;
s215.在当前商品存放区域的第一标签信息不包含类别信息时,控制机器人沿第一引导线行驶至下一个商品存放区域,并返回执行步骤s211;s216.在机器人移动至第一标签信息包含类别信息的第一区域时,退出循环。
38.机器人沿途行驶时从各个商品存放区域的第一标签图像(即分类牌图像)中识别出第一标签信息(即从图像中读取文本信息),通过与类别信息进行对比,若第一标签信息不包含类别信息的文本则可以判断为该目标商品不属于当前的商品存放区域,然后控制机器人继续沿第一引导线行驶,并返回步骤s211重新执行后续步骤,直至寻找到目标商品所在的第一区域后退出循环。
39.机器人通过顶部摄像头获取第一引导线的图像,并获取图像中心点的坐标信息,根据第一引导线的坐标信息计算机器人与第一引导线之间的偏差,根据该偏差调整机器人的行驶方向,避免机器人偏离第一引导线;在某些实施例中,根据以下公式1、公式2和公式3计算机器人与第一引导线之间的偏差:(公式1);(公式2);(公式3);其中,为第一引导线图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为第一引导线图像的中心点的横轴坐标,为第一引导线图像的中心点的纵轴坐标,为第一引导线图像的中心点的竖轴坐标,为机器人和第一引导线图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为机器人与第一引导线的偏差。
40.当机器人与第一引导线的偏差超出预设的第一阈值时,则控制机器人根据第一引导线图像以预设的第一角度调整机器人的行驶方向使得机器人靠近第一引导线,当机器人与第一引导线的偏差处于正常范围时,则回正机器人,机器人正常沿第一引导线行驶。
41.参考附图4和附图5,在实际应用时,各个商品存放区域的天花板上都设置有第二引导线500,从俯视图上观察,货架的两端各有一条第二引导线500,且第二引导线500垂直于货架设置,同时第二引导线500的长度大于该商品存放区域中的第一行货架到最后一行货架的距离;此外,第二引导线500的其中一端上规定为起点(一般以第二引导线500靠近第一行货架的一端作为起点),当机器人寻找到第一区域400后,通过摄像头识别第一区域400内的第二引导线500位置,并控制机器人移动至该第二引导线500的起点位置。
42.需要说明的是,因为第一区域中存在2条第二引导线,在机器人沿第一引导线移动至某个位置时可能同时识别到2条第二引导线,一方面可以通过分别计算2条第二引导线到机器人的距离,根据计算结果分辨出最接近机器人的第二引导线并控制机器人移动至该第
二引导线的位置上;另一方面可以人为设定当机器人同时识别到2条第二引导线时,则控制机器人移动至图像其中一侧(例如左侧或右侧)的第二引导线的位置上。
43.在某些可能的实施例中,可以通过在第二引导线的起点位置设置标志,机器人通过视觉识别该标志以确定第二引导线的起点位置。
44.在某些可能的实施例中,亦可以通过在各个货架上设置标号,例如第一行货架标号为“a”,则机器人可以通过视觉识别该标号以确定最靠近该第一行货架的第二引导线的端部为起点位置,若机器人所识别的标号并非为“a”,例如机器人行驶第一区域内的最后一行货架,此时机器人位于第二引导线的另一端,则控制机器人先沿第二引导线行驶,直至移动到标号为“a”的第一行货架,再重新以靠近第一行货架的第二引导线的端部作为起点沿第二引导线行驶。
45.进一步的,货架信息包括行号信息;步骤s3包括:s31.循环执行以下步骤:s311.获取设置在第一区域内的第二引导线的第二引导线图像;s312.根据第二引导线图像,控制机器人沿第二引导线行驶;s313.记录机器人在行驶过程中所经过的货架数量;s314.在所经过的货架数量和行号一致时,退出循环。
46.本实施例中,行号信息为包含目标商品位于第一区域中的第n个货架的信息;当机器人移动至第二引导线的起点位置后,通过图像识别技术控制机器人沿第二引导线行驶,每当机器人途经一个货架时,则控制系统累计记录所经过的货架数量,在所经过的货架数量为n时,则代表机器人当前位置所对应的第一货架中存放有目标商品。例如,控制系统所获取的货架信息中行数为3,而第一区域中按顺序布置有5行货架,则机器人在第二引导线起点出发,累计途经3个货架时,则停止沿第二引导线前进,当前位置的货架则为存放有目标商品的第一货架。
47.机器人通过顶部摄像头获取第二引导线的图像,并获取图像中心点的坐标信息,根据第二引导线的坐标信息计算机器人与第二引导线之间的偏差,根据该偏差调整机器人的行驶方向,避免机器人跑出第二引导线;在某些实施例中,根据以下公式4、公式5和公式6计算机器人与第二引导线之间的偏差:(公式4);(公式5);(公式6);其中,为第二引导线图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为第二引导线图像的中心点的横轴坐标,为第二引导线图像的中心点的纵轴坐标,为第二引导线图像的中心点的竖轴
坐标,为机器人和第二引导线图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为机器人与第二引导线的偏差。
48.当机器人与第二引导线的偏差超出预设的第二阈值时,则控制机器人根据第二引导线图像以预设的第二角度调整机器人的行驶方向使得机器人靠近第二引导线,当机器人与第二引导线的偏差处于正常范围时,则回正机器人,机器人正常沿第二引导线行驶。
49.在某些实施例中,通过在各个货架的两端设置标号,例如第一区域中有3个货架,分别标号为1号货架、2号货架和3号货架,当机器人进入第一区域时,可以通过图像识别出当前货架的标号并与行号信息进行对比,直至对比结果一致,则表示该标号的货架为第一货架。
50.需要说明的是,上述从第一引导线图像或第二引导线图像中识别出第一引导线或第二引导线为现有技术,在此不再赘述。
51.在某些实施例中,第一引导线和第二引导线亦可以设置在地面上,但设置在地面上容易被破坏,以致无法用于引导机器人行驶。
52.进一步的,货架信息还包括放置信息;步骤s4包括:s41.根据标识控制机器人移动至第一货架的前侧或后侧。
53.放置信息为包含目标商品位于第一货架前侧或后侧的信息。大部分商场内的货架前后两面都会存放有商品;机器人沿第二引导线移动到第一货架时,机器人位于第一货架的端部位置上,此时需要根据放置信息确定目标商品是位于第一货架前侧还是位于第一货架后侧才能够控制机器人向前转向进入货架前侧的过道中,还是向后转向进入货架后侧的过道中。
54.在实际应用中,大部分商场中位于同一个商品存放区域中的各个货架之间都留有足够宽的过道位置,且各个货架之间过道的宽度都相近,因此用户可以通过控制系统控制机器人以预设角度转向进入过道中。
55.在某些优选的实施例中,根据放置信息控制机器人前进一段距离或后退一段距离,该距离为预设的第三距离阈值,一般设置为第一过道宽度的一半,使得机器人能够移动至第一过道中线上,再控制机器人原地旋转90度,最后控制机器人直线行驶即可使机器人进入第一过道中;例如第一过道宽度为100cm,则第三距离阈值设定为50cm,放置信息记录目标商品位于第一货架的后侧,当机器人移动至第一货架位置时,机器人沿第二引导线后退50cm,然后原地旋转90度使得机器人朝向第一过道,最后控制机器人行驶进入第一过道。
56.实际应用中,货架上各个商品对应位置上都会设置有第二标签,第二标签一般包含商品的具体信息,例如商品的价格、商品的重量、商品的名称等。当机器人进入第一过道后,通过摄像头获取第一货架的货架图像并从货架图像中识别出各个商品的第二标签信息,将各个商品的第二标签信息逐一与目标商品名称进行对比,若当前位置所获得的货架图像中并不包含目标商品,则控制机器人继续沿第一过道行驶,直至找到目标商品在第一货架上的具体位置,完成导航任务。
57.为了进一步解释清楚,以下列举其中一种具体的实施方式:参考附图4,机器人100放置在商场中的预设起点,该商场包括4个商品存放区域,
机器人100获取目标商品的商品信息后沿第一引导线200开始移动,移动过程中识别出包含类别信息的第一标签300,因而确定第一区域400;参考附图5,假设第一区域400中存在4个货架,货架从下往上依次为:第一行货架、第二行货架、第三行货架和第四行货架,且目标商品在第二行货架前侧,则第二行货架为第一货架600,第二行货架与第三行货架之间的过道为第一过道700;机器人100从第一引导线200移动至第二引导线500的起点位置并沿第二引导线500行驶,根据货架信息确定第一货架600的位置,并控制机器人100转入第一过道700中,然后控制机器人100根据两侧货架的图像在第一过道700中直线行驶并识别第一货架600上各个商品的第二标签信息,直至找到目标商品。
58.需要说明的是,上述实施例中商品存放区域的划分和排布并非唯一,实际应用时可根据需求调整。
59.在某些可能的实施例中,机器人导航至目标商品位置目的在于将该目标商品补充到货架上,因而在机器人找到目标商品在第一货架上的具体位置时,控制机器人继续进行直线移动,直至目标商品位于图像正中心(即控制机器人与目标商品对齐)以方便机器人对目标商品进行补给。
60.在某些可能的实施例中,机器人导航至目标商品位置目的仅在于寻找到目标商品的具体位置,因而当机器人通过货架图像找到目标商品在第一货架上的具体位置时,机器人即可停止移动。
61.在某些实施例中,步骤s61包括:在第一过道的两侧均有货架的时候,获取左侧货架图像和右侧货架图像;步骤s63包括:在第一过道两侧均有货架的时候,执行步骤:s631.根据左侧货架图像分离出左侧货架每层的第一横梁图像;s632.获取所有第一横梁图像的中心点坐标以计算机器人到左侧货架的第一距离;s633.根据右侧货架图像分离出右侧货架每层的第二横梁图像;s634.获取所有第二横梁图像的中心点坐标以计算机器人到右侧货架的第二距离;s635.根据第一距离和第二距离控制机器人沿第一过道直线行驶。
62.实际应用中,货架内通过设置横梁将各个商品分层存放,横梁属于货架中的固定结构,其位置固定不变,通过控制横梁和机器人之间的距离,有利于避免机器人在移动过程中意外撞向货架。同时,因为商品经常被放入或取出,相比于以商品位置作为控制机器人移动的参考,利用位置固定不变的横梁作为参考更有利于增加机器人导航的稳定性。
63.在本实施例中,机器人在移动过程中时刻计算第一距离和第二距离,当机器人以某个方向发生偏移并超出允许的偏差时,该侧的距离变小,控制系统根据距离大小即可判断出机器人发生偏移的方向,从而控制机器人往反方向调整位置;例如第一距离变小而第二距离变大,则表明机器人即将撞向左侧货架,控制系统立即控制机器人以预设的偏转角调整机器人向右侧偏转,在第一距离和第二距离回归正常范围内后,则控制机器人回正,从而确保机器人能够保持在第一过道中直线行驶。
64.在某些实施例中,步骤s632包括:根据以下公式7、公式8、公式9和公式10计算第一距离:(公式7);(公式8);(公式9);(公式10);其中,为左侧货架中第层的第一横梁图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为左侧货架中第层的第一横梁图像的中心点的横轴坐标,为左侧货架中第层的第一横梁图像的中心点的纵轴坐标,为左侧货架中第层的第一横梁图像的中心点的竖轴坐标,为左侧货架中第一横梁的总数量,为左侧货架中第层的第一横梁与机器人之间的相对距离,为左侧货架中第1层的第一横梁与机器人之间的相对距离,为左侧货架中第2层的第一横梁与机器人之间的相对距离,为机器人和左侧货架中第层的第一横梁图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为左侧货架中第层的第一横梁图像的中心点的纵轴坐标,为左侧货架中第层的第一横梁图像的中心点的横轴坐标,为机器人到左侧货架的第一距离;步骤s634包括:根据以下公式11、公式12、公式13和公式14计算第二距离:(公式11);(公式12);(公式13);(公式14);其中,为右侧货架中第层的第二横梁图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为右侧货架中第层的第二横梁图像的中心点的横轴坐标,为右侧货架中第层的第二横梁图像的中心点的纵轴坐标,为右侧货架中第层的第二横梁图像的中心点的竖轴坐标,为右侧货架中
第二横梁的总数量,为右侧货架中第层的第二横梁与机器人之间的相对距离,为右侧货架中第1层的第二横梁与机器人之间的相对距离,为右侧货架中第2层的第二横梁与机器人之间的相对距离,为机器人和右侧货架中第层的第二横梁图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为右侧货架中第层的第二横梁图像的中心点的纵轴坐标,为右侧货架中第层的第二横梁图像的中心点的横轴坐标,为机器人到右侧货架的第二距离。
65.需要说明的是,第一横梁图像的中心点坐标和第二横梁图像的中心点坐标在摄像头拍摄图像时即可获得,此为现有技术,在此不再赘述。
66.进一步的,步骤s635包括:根据第一距离和第二距离控制机器人沿第一过道的中线行驶。
67.机器人与货架之间的距离会影响摄像头的成像效果,例如机器人距离货架太近,则有可能无法拍摄到每一层的商品,导致部分商品的第二标签信息无法被识别;又如机器人离货架太远,则图像中横梁显示较小,有可能无法准确获得横梁图像。
68.本实施例中,控制第一距离和第二距离保持相等,使得机器人能够沿过道中线行驶,确保两侧所获得的图像效果一致,避免影响其中一侧的图像识别。
69.在某些实施例中,步骤s631包括:根据预设的宽度阈值从左侧货架图像中识别出第一横梁;步骤s633包括:根据预设的宽度阈值从右侧货架图像中识别出第二横梁。
70.在实际应用中,商场中的货架一般以横梁作为分层,以竖梁分隔相邻的商品,而横梁主要用于承受整层商品的重量,而竖梁仅用于分隔相邻商品并不受力,因此横梁在设计时其宽度一般大于竖梁。
71.本实施例中,从货架图像中过滤掉小于宽度阈值的轮廓(即竖梁),保留各层横梁的图像,有效避免机器人错误地把竖梁识别为横梁,从而确保控制机器人移动的精准度。
72.在某些实施例中,步骤s61包括:在第一过道仅左侧或右侧有货架的时候,获取左侧货架图像或右侧货架图像;步骤s63包括:在第一过道仅左侧或右侧有货架的时候,执行步骤:s636.根据左侧货架图像分离出左侧货架每层的第一横梁图像,或根据右侧货架图像分离出右侧货架每层的第二横梁图像;s637.获取所有第一横梁图像的中心点坐标以计算机器人到左侧货架的第一距离,或获取所有第二横梁图像的中心点坐标以计算机器人到右侧货架的第二距离;s638.根据第一距离或第二距离控制机器人沿第一过道直线行驶。
73.参考附图4和附图5,当机器人100在第一行货架后侧过道或最后一行货架前侧过道行驶时,其过道仅有一侧存在货架,通过获取该侧货架图像并计算机器人100与货架之间的距离,通过该距离控制机器人100直线行驶,有利于避免机器人100意外撞向货架。
74.需要说明的是,上述步骤s637中,第一距离和第二距离的计算步骤与上述步骤s632和步骤s634相同,在此不再赘述。
75.进一步的,步骤s638包括:根据第一距离或第二距离控制机器人沿等效直线行驶,等效直线平行于第一过道且与左侧货架或右侧货架保持固定距离。
76.本实施例中,该等效直线与货架之间相距一定距离,该距离为预设的第四距离阈值,在机器人行驶时,控制所计算的第一距离或第二距离保持与第四距离阈值相同,从而控制机器人沿等效直线行驶。
77.需要说明的是,上述第一过道的中线和等效直线并非真实设置在商场上的实线标记,仅作为用于衡量机器人直线行驶的标准。
78.还需要说明的是,上述通过摄像头所获取的货架图像中的第二标签、横梁图像、第一引导线图像、第二引导线图像、第一标签图像均可以通过事先训练好的神经网络模型进行标定和分类;训练过程可以人工对各种图像进行标注,然后输入至yolov5中进行训练最后能够获得基于该图片数据集的神经网络模型。
79.在某些实施例中,机器人在整个导航过程中的速度采用梯形加减速模型进行控制,其步骤包括:获取目标点位置;根据目标点位置按以下公式15和公式16计算机器人的实时速度:(公式15);(公式16);其中,为目标点位置与机器人之间的距离,为机器人预设的最大速度,为预设的加速度,为时间变量,为预设的第五距离阈值,为机器人实际速度。
80.需要说明的是,梯形加减速模型为现有技术,在此不再赘述;上述目标点位置具体指第一标签位置、第二引导线起点、第二引导线终点等,例如在实际应用时,机器人识别出第一标签位置,则机器人需要移动该第一标签位置(目标点位置)上进行第一标签信息的识别。
81.请参照图2,图2是本技术一些实施例中的一种基于机器视觉的导航装置,应用于机器人的控制系统以使机器人在商场中行驶,该基于机器视觉的导航装置以计算机程序的形式集成在该基于机器视觉的导航装置的后端控制设备中,该基于机器视觉的导航装置包括:第一获取模块810,用于获取目标商品的商品信息,商品信息包括类别信息、货架信息和目标商品名称;第一控制模块820,用于根据类别信息控制机器人沿第一引导线在商场中移动并
寻找到目标商品所在的第一区域;第一引导线设置在商场的各商品存放区域之间的通道上;第二控制模块830,用于根据货架信息,控制机器人在第一区域内寻找目标商品所在的第一货架的位置;第二获取模块840,用于根据第一货架的位置获取第一货架对应的第一过道的位置;第三控制模块850,用于根据第一过道的位置控制机器人进入第一过道;执行模块860,用于循环执行以下步骤:获取第一过道路侧货架的货架图像;从第一货架所在的货架图像中识别各商品的第二标签的第二标签信息;在各商品的第二标签信息不包含目标商品名称的时候,根据货架图像控制机器人沿第一过道继续前进;在各商品的第二标签信息包含目标商品名称的时候,退出循环。
82.在某些实施例中,在第一控制模块820用于根据类别信息控制机器人沿第一引导线移动至对应的商品存放区域处;第一引导线设置在商场的各商品存放区域之间的通道上的时候,循环执行以下步骤:获取设置在商场内的第一引导线的第一引导线图像;根据第一引导线图像,控制机器人沿第一引导线行驶;获取当前商品存放区域的用于记录商品类别的第一标签的第一标签图像;从第一标签图像中识别出第一标签信息;在当前商品存放区域的第一标签信息不包含类别信息时,控制机器人沿第一引导线行驶至下一个商品存放区域;在机器人移动至第一标签信息包含类别信息的第一区域时,退出循环。
83.在某些实施例中,在第一控制模块820用于根据类别信息控制机器人沿第一引导线移动至对应的商品存放区域处;第一引导线设置在商场的各商品存放区域之间的通道上的时候执行:根据以下公式计算机器人与第一引导线之间的偏差:;;;其中,为第一引导线图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为第一引导线图像的中心点的横轴坐标,为第一引导线图像的中心点的纵轴坐标,为第一引导线图像的中心点的竖轴坐标,为机器人和第一引导线图像的中心点在水平坐标系上的投影点形成的射线与x轴之
间的夹角,为机器人与第一引导线的偏差。
84.在某些实施例中,货架信息包括行号信息;第二控制模块830用于在根据货架信息,控制机器人在第一区域内寻找目标商品所在的第一货架的位置的时候,循环执行以下步骤:获取设置在第一区域内的第二引导线的第二引导线图像;根据第二引导线图像,控制机器人沿第二引导线行驶;记录机器人在行驶过程中所经过的货架数量;在所经过的货架数量和行号一致时,退出循环。
85.在某些实施例中,第二控制模块830用于在根据第二引导线图像,控制机器人沿第二引导线行驶的时候执行:根据以下公式计算机器人与第二引导线之间的偏差:;;;其中,为第二引导线图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为第二引导线图像的中心点的横轴坐标,为第二引导线图像的中心点的纵轴坐标,为第二引导线图像的中心点的竖轴坐标,为机器人和第二引导线图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为机器人与第二引导线的偏差。
86.在某些实施例中,货架信息还包括放置信息;第二获取模块840用于在根据第一货架的位置获取第一货架对应的第一过道的位置的时候执行:根据标识控制机器人移动至第一货架的前侧或后侧。
87.在某些实施例中,执行模块860用于在获取第一过道路侧货架的货架图像的时候执行:在第一过道的两侧均有货架的时候,获取左侧货架图像和右侧货架图像;执行模块860用于在各商品的第二标签信息不包含目标商品名称的时候,根据货架图像控制机器人沿第一过道继续前进的时候执行:在第一过道两侧均有货架的时候,执行步骤:根据左侧货架图像分离出左侧货架每层的第一横梁图像;获取所有第一横梁图像的中心点坐标以计算机器人到左侧货架的第一距离;根据右侧货架图像分离出右侧货架每层的第二横梁图像;获取所有第二横梁图像的中心点坐标以计算机器人到右侧货架的第二距离;根据第一距离和第二距离控制机器人沿第一过道直线行驶。
88.在某些实施例中,执行模块860用于在获取所有第一横梁图像的中心点坐标以计算机器人到左侧货架的第一距离的时候执行:根据以下公式计算第一距离:;;;;其中,为左侧货架中第层的第一横梁图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为左侧货架中第层的第一横梁图像的中心点的横轴坐标,为左侧货架中第层的第一横梁图像的中心点的纵轴坐标,为左侧货架中第层的第一横梁图像的中心点的竖轴坐标,为左侧货架中第一横梁的总数量,为左侧货架中第层的第一横梁与机器人之间的相对距离,为左侧货架中第1层的第一横梁与机器人之间的相对距离,为左侧货架中第2层的第一横梁与机器人之间的相对距离,为机器人和左侧货架中第层的第一横梁图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为左侧货架中第层的第一横梁图像的中心点的纵轴坐标,为左侧货架中第层的第一横梁图像的中心点的横轴坐标,为机器人到左侧货架的第一距离;执行模块860用于在获取所有第二横梁图像的中心点坐标以计算机器人到右侧货架的第二距离的时候执行:根据以下公式计算第二距离:;;;;其中,为右侧货架中第层的第二横梁图像的中心点与机器人的距离,为机器人的横轴坐标,为机器人的纵轴坐标,为机器人的竖轴坐标,为右侧货架中第层
的第二横梁图像的中心点的横轴坐标,为右侧货架中第层的第二横梁图像的中心点的纵轴坐标,为右侧货架中第层的第二横梁图像的中心点的竖轴坐标,为右侧货架中第二横梁的总数量,为右侧货架中第层的第二横梁与机器人之间的相对距离,为右侧货架中第1层的第二横梁与机器人之间的相对距离,为右侧货架中第2层的第二横梁与机器人之间的相对距离,为机器人和右侧货架中第层的第二横梁图像的中心点在水平坐标系上的投影点形成的射线与x轴之间的夹角,为右侧货架中第层的第二横梁图像的中心点的纵轴坐标,为右侧货架中第层的第二横梁图像的中心点的横轴坐标,为机器人到右侧货架的第二距离。
89.在某些实施例中,执行模块860用于在根据第一距离和第二距离控制机器人沿第一过道直线行驶的时候执行:根据第一距离和第二距离控制机器人沿第一过道的中线行驶。
90.在某些实施例中,执行模块860用于在根据左侧货架图像分离出左侧货架每层的第一横梁图像的时候执行:根据预设的宽度阈值从左侧货架图像中识别出第一横梁;执行模块860用于在根据右侧货架图像分离出右侧货架每层的第二横梁图像的时候执行:根据预设的宽度阈值从右侧货架图像中识别出第二横梁。
91.在某些实施例中,执行模块860用于在获取第一过道路侧货架的货架图像的时候执行:在第一过道仅左侧或右侧有货架的时候,获取左侧货架图像或右侧货架图像;执行模块860用于在各商品的第二标签信息不包含目标商品名称的时候,根据货架图像控制机器人沿第一过道继续前进的时候执行:在第一过道仅左侧或右侧有货架的时候,执行步骤:根据左侧货架图像分离出左侧货架每层的第一横梁图像,或根据右侧货架图像分离出右侧货架每层的第二横梁图像;获取所有第一横梁图像的中心点坐标以计算机器人到左侧货架的第一距离,或获取所有第二横梁图像的中心点坐标以计算机器人到右侧货架的第二距离;根据第一距离或第二距离控制机器人沿第一过道直线行驶。
92.在某些实施例中,执行模块860用于在根据第一距离或第二距离控制机器人沿第一过道直线行驶的时候执行:根据第一距离或第二距离控制机器人沿等效直线行驶,等效直线平行于第一过道且与左侧货架或右侧货架保持固定距离。
93.在某些实施例中,该基于机器视觉的导航装置还包括:第三获取模块,用于获取目标点位置;计算模块,用于根据目标点位置按以下公式计算机器人的实时速度:
;;其中,为目标点位置与机器人之间的距离,为机器人预设的最大速度,为预设的加速度,为时间变量,为预设的第五距离阈值,为机器人实际速度。
94.请参照图3,图3为本技术实施例提供的一种电子设备的结构示意图,本技术提供一种电子设备,包括:处理器1101和存储器1102,处理器1101和存储器1102通过通信总线1103和/或其他形式的连接机构(未标出)互连并相互通讯,存储器1102存储有处理器1101可执行的计算机程序,当计算设备运行时,处理器1101执行该计算机程序,以执行上述第一方面的实施例的任一可选的实现方式中的基于机器视觉的导航方法,以实现以下功能:获取目标商品的商品信息,商品信息包括类别信息、货架信息和目标商品名称;根据类别信息控制机器人沿第一引导线在商场中移动并寻找到目标商品所在的第一区域;第一引导线设置在商场的各商品存放区域之间的通道上;根据货架信息,控制机器人在第一区域内寻找目标商品所在的第一货架的位置;根据第一货架的位置获取第一货架对应的第一过道的位置;根据第一过道的位置控制机器人进入第一过道;循环执行以下步骤:获取第一过道路侧货架的货架图像;从第一货架所在的货架图像中识别各商品的第二标签的第二标签信息;在各商品的第二标签信息不包含目标商品名称的时候,根据货架图像控制机器人沿第一过道继续前进;在各商品的第二标签信息包含目标商品名称的时候,退出循环。
95.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,执行上述第一方面的实施例的任一可选的实现方式中的基于机器视觉的导航方法,以实现以下功能:获取目标商品的商品信息,商品信息包括类别信息、货架信息和目标商品名称;根据类别信息控制机器人沿第一引导线在商场中移动并寻找到目标商品所在的第一区域;第一引导线设置在商场的各商品存放区域之间的通道上;根据货架信息,控制机器人在第一区域内寻找目标商品所在的第一货架的位置;根据第一货架的位置获取第一货架对应的第一过道的位置;根据第一过道的位置控制机器人进入第一过道;循环执行以下步骤:获取第一过道路侧货架的货架图像;从第一货架所在的货架图像中识别各商品的第二标签的第二标签信息;在各商品的第二标签信息不包含目标商品名称的时候,根据货架图像控制机器人沿第一过道继续前进;在各商品的第二标签信息包含目标商品名称的时候,退出循环。
96.其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory, 简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory, 简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory, 简称eprom),可编程只读存储器(programmable red-only memory, 简称prom),只读存储器(read-only memory, 简称rom),磁存储器,快闪存储器,磁盘或光盘。
97.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
98.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
99.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
100.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
101.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1