货架检测方法及装置、电子设备、存储介质
文献发布时间:2023-06-19 12:13:22
技术领域
本发明涉及移动机器人的货架检测技术,尤其涉及一种货架检测方法及装置、电子设备、存储介质。
背景技术
近年来,移动机器人在工业领域的飞速拓展,有力地推动了工业4.0的进程。移动机器人与工业机器人相比,更具备灵活性,可以在一定的场景环境中自主完成作业,极大地解放了生产力,因此在制造业、物流行业等领域有极高的应用价值。
移动机器人在进行任务操作时,比如在仓库中进行物体搬运,移动机器人需要在变换的环境中精确地知道自身在当前环境的位置,从而能够准确地执行任务。并且,移动机器人还需要准确确定货架的位置及位姿等信息,以便能准确对货架进行相关运算作业等。
目前在确定货架位置及位姿的技术方案中,利用货架腿上反射激光的特征点确定是否位于货架腿上,而金属货架腿上往往会有很多干扰离散点,这会被误认为不是货架特征从而误认为未检测到货架腿。由于干扰点的存在,估算的货架中心与实际存在偏差,无法保证移动机器人能准确举起货架实际中心位置,移动机器人无法准确进入货架一侧进行相关作业。
发明内容
本发明提供一种货架检测方法及装置、电子设备、存储介质,以至少解决现有技术中存在的以上技术问题。
本发明一方面提供一种货架检测方法,所述方法包括:
移动机器人确定到达货架识别区域后,进行激光扫描,获取反射激光的点云数据;
基于货架的尺寸对所述点云数据进行过滤,并对过滤后的所述点云数据进行聚类;
基于货架的尺寸及其预置的位姿信息,对聚类后的所述点云数据进行过滤;
基于过滤的点云数据聚类形成的点云簇确定货架的第一朝向;将货架腿上的点云数据作为观测值,基于所述货架的第一朝向确定货架腿的第一中心坐标;
依次遍历所有的货架腿,以至少两个货架腿为一组,分别确定其中满足货架尺寸的货架腿组,作为候选货架腿组;
在所述候选货架腿组中选择与预设货架坐标之差值小于第一设定阈值的货架腿组,利用所选择的货架腿组中的货架腿的第二中心坐标作为观测值,基于所述第一中心坐标估算货架的第三中心坐标和第二朝向;
依据扫描激光的相关位置参数以及所述移动机器人的当前位姿,将货架的所述第三中心坐标转换到世界坐标系下,得到检测的目标点位置;
所述移动机器人切换为里程计导航模式,并依据所述目标点位置驶入货架下方,举起货架并将货架运输至目的地。
可选地,所述举起货架并将货架运输至目的地之前,所述方法还包括:
开启所述移动机器人的上视相机,扫描货架上的识别码,通过检测所述上视相机相对于所述识别码的相对位姿,调整所述移动机器人的位置,直到所述相对位姿小于第二设定阈值,停止所述移动机器人的位置调整并记录该相对位姿,调用工作台举起货架。
可选地,所述基于货架的尺寸对所述点云数据进行过滤,包括:
确定激光点云与预设货架中心的距离大于第一设定距离时,删除该点云数据。
可选地,所述对聚类后的所述点云数据进行过滤,包括:
在聚为一类的点云簇中,距离最远的两个点的距离大于第二设定距离时,删除该点云簇;或
在聚为一类的点云簇中,点云的数量小于第一预设数量或大于第二预设数量时,删除该点云簇;或
在聚为一类的点云簇中,获取每点云簇的第四中心坐标,判断该第四中心坐标与货架的预设中心位置之间的距离第三设定距离时,删除该点云簇。
可选地,所述以至少两个货架腿为一组,分别确定其中满足货架尺寸的货架腿组,作为候选货架腿组,包括:
在四个不同的货架腿中任选三个为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系;
若四个不同的货架腿中的任三个货架腿满足实际货架腿的位置关系,则该四个货架腿为货架的四条腿;
继续遍历除所确定的四条货架腿之外的货架腿,以三个货架腿为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系,该组中的三个货架腿为货架的三条腿;
继续遍历除所确定的四条、三条货架腿之外的货架腿,以两个货架腿为一组,确定两货架腿之间的距离与货架实际长度之差小于第三设定阈值时,进行货架朝向及货架中心坐标的估算及校验,校验通过确定该组中两个货架腿满足实际货架腿的位置关系,该组中的两个货架腿为货架的两条腿。
可选地,所述基于过滤的点云数据聚类形成的点云簇确定货架的第一朝向,包括:
判断每个点云簇中的点云数量超过第三预设数量时,对该点云簇进行主成分分析PCA分解,求出货架在激光坐标系下朝向的初值,作为货架的第一朝向;
当检测到点云簇中的点云数量小于第三预设数量,则利用货架腿中的两货架腿之间的长度与货架的实际长度或实际宽度接近程度确定货架的第一朝向。
本发明另一方面提供一种货架检测装置,所述装置包括:
第一获取单元,用于确定到达货架识别区域后,进行激光扫描,获取反射激光的点云数据;
聚类单元,用于基于货架的尺寸对所述点云数据进行过滤,并对过滤后的所述点云数据进行聚类;
过滤单元,用于基于货架的尺寸及其预置的位姿信息,对聚类后的所述点云数据进行过滤;
第一确定单元,用于基于过滤的点云数据聚类形成的点云簇确定货架的第一朝向;将货架腿上的点云数据作为观测值,基于所述货架的第一朝向确定货架腿的第一中心坐标;
第二确定单元,用于依次遍历所有的货架腿,以至少两个货架腿为一组,分别确定其中满足货架尺寸的货架腿组,作为候选货架腿组;
估算单元,用于在所述候选货架腿组中选择与预设货架坐标之差值小于第一设定阈值的货架腿组,利用所选择的货架腿组中的货架腿的第二中心坐标作为观测值,基于所述第一中心坐标估算货架的第三中心坐标和第二朝向;
第二获取单元,用于依据扫描激光的相关位置参数以及所述移动机器人的当前位姿,将货架的所述第三中心坐标转换到世界坐标系下,得到检测的目标点位置;
控制单元,用于将所述移动机器人切换为里程计导航模式,并依据所述目标点位置驶入货架下方,举起货架并将货架运输至目的地。
可选地,所述控制单元,还用于:
在举起货架并将货架运输至目的地之前,开启所述移动机器人的上视相机,扫描货架上的识别码,通过检测所述上视相机相对于所述识别码的相对位姿,调整所述移动机器人的位置,直到所述相对位姿小于第二设定阈值,停止所述移动机器人的位置调整并记录该相对位姿,调用工作台举起货架。
可选地,所述聚类单元,还用于:
确定激光点云与预设货架中心的距离大于第一设定距离时,删除该点云数据。
可选地,所述过滤单元,还用于:
在聚为一类的点云簇中,距离最远的两个点的距离大于第二设定距离时,删除该点云簇;或
在聚为一类的点云簇中,点云的数量小于第一预设数量或大于第二预设数量时,删除该点云簇;或
在聚为一类的点云簇中,获取每点云簇的第四中心坐标,判断该第四中心坐标与货架的预设中心位置之间的距离第三设定距离时,删除该点云簇。
可选地,所述第二确定单元,还用于:
在四个不同的货架腿中任选三个为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系;
若四个不同的货架腿中的任三个货架腿满足实际货架腿的位置关系,则该四个货架腿为货架的四条腿;
继续遍历除所确定的四条货架腿之外的货架腿,以三个货架腿为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系,该组中的三个货架腿为货架的三条腿;
继续遍历除所确定的四条、三条货架腿之外的货架腿,以两个货架腿为一组,确定两货架腿之间的距离与货架实际长度之差小于第三设定阈值时,进行货架朝向及货架中心坐标的估算及校验,校验通过确定该组中两个货架腿满足实际货架腿的位置关系,该组中的两个货架腿为货架的两条腿。
可选地,所述第一确定单元,还用于:
判断每个点云簇中的点云数量超过第三预设数量时,对该点云簇进行主成分分析PCA分解,求出货架在激光坐标系下朝向的初值,作为货架的第一朝向;
当检测到点云簇中的点云数量小于第三预设数量,则利用货架腿中的两货架腿之间的长度与货架的实际长度或实际宽度接近程度确定货架的第一朝向。
本发明另一方面提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现所述的货架检测方法的步骤。
本发明再一方面提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现所述的货架检测方法的步骤。
本发明不需要提前限制激光扫描范围,即使激光器偏置,也能正确地估算货架中心;本发明也不需要识别货架腿特征,通过对激光点云先聚类后剔除的方法,并将打在货架腿上的点云作为观测值来构建误差方程求解出货架腿中心,并结合候选货架腿的数量,设计不同的货架中心方法,保证了当出现误检测、货架腿被遮挡1至2条以及有多个货架放在一起时,都能准确地筛选出目标货架的货架腿,从而保证识别到正确的货架并计算出货架中心,准确对其作业。本发明同时能检测出货架的朝向,保证移动机器人按照要求的方向从货架的一侧进入到货架下方,且对货架识别失败有尝试机制。本发明在识别出货架中心位置后,切换成里程计导航方式,避免在对接时激光受到干扰后引入定位误差。移动机器人结合上视相机,能使移动机器人举起货架时尽量靠近货架的正中心位置。上视相机不仅起到记录移动机器人相对货架位置的作用,同时利用上视相机识别货架背面的二维码做相对导航,调整移动机器人位姿,使移动机器人尽量靠近货架中心,排除了因为检测货架腿有干扰点对货架中心位姿估计的影响,从而保证后续货架搬动到另一个目标点过程中,减少货架遇障的风险。同时通过上视相机,保证移动机器人进入到货架下方后能调整到相对货架的朝向。
附图说明
图1示出了本发明实施例的货架检测方法的流程图;
图2示出了本发明实施例的移动机器人的整体结构示意图;
图3示出了本发明实施例的货架模型的示意图;
图4示出了本发明实施例的货架检测方法的具体实现示意图;
图5示出了本发明实施例的货架检测装置的组成结构示意图;
图6示出了本发明实施例的电子设备的结构图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例的货架检测方法的流程图,如图1所示,本发明实施例的货架检测方法包括以下处理步骤:
步骤101,移动机器人确定到达货架识别区域后,进行激光扫描,获取反射激光的点云数据。
本发明实施例中,在移动机器人导航中,移动机器人内部存储有拓扑地图,用于标记移动机器人的移动路线以及移动机器人所需要经过和到达的目标点,同时会标记出货架区,表示需要将货架搬运到该理想位置;在货架检测时,移动机器人先通过里程计和激光雷达进行导航,让移动机器人到达货架识别准备点。其中,里程计能够初步估算出移动机器人角度和距离的变化量,常见的有轮式编码器,从而能够根据前后时刻的位姿变化量和前一时刻的位姿来估计出当前时刻机器人的位姿。二维激光雷达能够获取二维平面信息的传感器,用于检测周围环境的二维平面轮廓信息。其中,能通过导航激光准确地检测到货架腿后,估算出货架中心的真实位置,并利用里程计导航方式精确找到货架目标点附近举起货架。
步骤102,基于货架的尺寸对所述点云数据进行过滤,并对过滤后的所述点云数据进行聚类。
本发明实施例中,确定激光点云与预设货架中心的距离大于第一设定距离时,删除该点云数据。也就是说,当确定激光点云中点云与其他点云之间的距离过大时,明显不是货架腿上反射的激光点云,而可能是干扰点云,可以将其删除。
对过滤后的点云数据进行聚类处理,即将可能构成货架的点云作为一类进行聚合,以方便确定出货架。
步骤103,基于货架的尺寸及其预置的位姿信息,对聚类后的所述点云数据进行过滤。
本发明实施例中,在聚为一类的点云簇中,距离最远的两个点的距离大于第二设定距离时,删除该点云簇;或
在聚为一类的点云簇中,点云的数量小于第一预设数量或大于第二预设数量时,删除该点云簇;或
在聚为一类的点云簇中,获取每点云簇的第四中心坐标,判断该第四中心坐标与货架的预设中心位置之间的距离第三设定距离时,删除该点云簇。
步骤104,基于过滤的点云数据聚类形成的点云簇确定货架的第一朝向;将货架腿上的点云数据作为观测值,基于所述货架的第一朝向确定货架腿的第一中心坐标。
其中,基于过滤的点云数据聚类形成的点云簇确定货架的第一朝向,包括:判断每个点云簇中的点云数量超过第三预设数量时,对该点云簇进行主成分分析PCA分解,求出货架在激光坐标系下朝向的初值,作为货架的第一朝向;当检测到点云簇中的点云数量小于第三预设数量,则利用货架腿中的两货架腿之间的长度与货架的实际长度或实际宽度接近程度确定货架的第一朝向。
步骤105,依次遍历所有的货架腿,以至少两个货架腿为一组,分别确定其中满足货架尺寸的货架腿组,作为候选货架腿组。
确定出候选货架腿组,具体包括:在四个不同的货架腿中任选三个为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系;
若四个不同的货架腿中的任三个货架腿满足实际货架腿的位置关系,则该四个货架腿为货架的四条腿;
继续遍历除所确定的四条货架腿之外的货架腿,以三个货架腿为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系,该组中的三个货架腿为货架的三条腿;
继续遍历除所确定的四条、三条货架腿之外的货架腿,以两个货架腿为一组,确定两货架腿之间的距离与货架实际长度之差小于第三设定阈值时,进行货架朝向及货架中心坐标的估算及校验,校验通过确定该组中两个货架腿满足实际货架腿的位置关系,该组中的两个货架腿为货架的两条腿。
步骤106,在所述候选货架腿组中选择与预设货架坐标之差值小于第一设定阈值的货架腿组,利用所选择的货架腿组中的货架腿的第二中心坐标作为观测值,基于所述第一中心坐标估算货架的第三中心坐标和第二朝向。
本发明实施例中,当确定出候选货架腿组后,再基于候选货架腿来验证该货架的中心坐标,以确定是否接近货架的预设货架中心,进一步确定该货架腿组是否为实际的货架。
步骤107,依据扫描激光的相关位置参数以及所述移动机器人的当前位姿,将货架的所述第三中心坐标转换到世界坐标系下,得到检测的目标点位置。
本发明实施例中,当确定出货架腿组为实际的货架腿后,将该货架的中心坐标转换到世界坐标系中,以便移动机器人能根据其坐标移动至相应位置,对其进行搬移等操作。
步骤108,所述移动机器人切换为里程计导航模式,并依据所述目标点位置驶入货架下方,举起货架并将货架运输至目的地。
本发明实施例中,在移动机器人背起货架行走过程中,通过激光导航估计移动机器人位姿,叠加上移动机器人相对于识别码相对变化量,保证移动机器人在移动过程中能让货架跟巡理想的路线,在放下货架时,也能将货架放在理想的目标点上。本发明实施例中,识别码可以是二维码。
以下通过具体示例,进一步阐明本发明实施例的技术方案的本质。
本发明实施例的货架检测方法,能够基于里程计、激光传感器和先验地图而估计移动机器人的位姿,在进行货架对接时,先检测满足条件的所有货架腿,再根据货架腿估算货架中心位置并将其位置转换到世界坐标系下,然后移动机器人切换成里程计导航方式进入货架下方,在快到货架中心时,移动机器人打开上视相机,扫描检测贴在货架下方的识别码如二维码,当检测到二维码时,切换成二维码导航方式,保证移动机器人能够到达的货架中心位置,而成功举起货架。
图2示出了本发明实施例的移动机器人的整体结构示意图,如图2所示,本发明实施例的移动机器人为基于里程计和2D激光雷达传感器的机器人,主要包括移动地盘、2D激光雷达传感器和上视相机。移动地盘包括运动控制器、电机、电池、嵌入式计算机、里程计等。该移动机器人能够在基于仓储环境下生成的二维栅格地图中进行高精度定位。该地图包括货架、工作台、房屋支撑架以及需要搬运的货物等部件。所述移动机器人使用里程计估计出机器人运动的改变量,同时使用2D激光雷达扫描环境轮廓。而在机器人进入货架前,会在货架识别准备点进行货架识别,检测到货架中心位置,切换成里程计模式走入货架下方,再利用上视相机扫描货架下方的二维码,让移动机器人走到货架正下方成功举起货架。而对应的货架模型如图3所示,其中货架零度方向由货架背面贴的二维码的方向来决定。
图4示出了本发明实施例的货架检测方法的具体实现示意图,以下结合图4所示的处理流程,详细阐述本发明实施例的货架检测的具体实现步骤:
进行货架腿的检测,进行货架腿中心以及货架朝向的估计。
在机器人导航中,会有拓扑地图,用于标记移动机器人的移动路线以及机器人所需要经过和到达的目标点,同时会标记出货架区,表示需要将货架搬运到该理想位置;则在货架检测时,机器人先通过里程计和激光雷达进行导航,让移动机器人到达货架识别准备点;紧接着上层下发货架腿的长l
读取2D激光点云,对激光点云进行预处理。首先,在激光雷达坐标系下,将所有点云进行过滤,当检测到激光点云与预设货架中心P的距离大于一定距离d1(比如d1设置为两倍货架最长边),则将该点云进行剔除,认为该点云不是打在货架腿上的点。然后对点云进行聚类,从索引为0的点云开始遍历,当相邻两个激光点云距离小于一定阈值(比如货架腿的两倍最长边)时,认为该两个点云是打在同一类物体上,聚成一类,直到碰到不满足条件的相邻点云,认为不再是一类点云,进行下一次聚类。
由于货架腿一般是金属材质,一般激光打在货架腿上有很多干扰点,不排除干扰点的影响,会导致估算的位置偏离实际货架中心太远,没法保证移动机器人举在货架的中心,甚至移动机器人在进入货架下方后扫不到货架背面的二维码。此时要判断聚成一类的点中,距离最远的两个点的距离是否大于一定阈值(比如5倍的货架腿最长边),若大于该值,认为不是打在货架腿上的点云簇,或者是干扰太大货架腿点云簇,则直接删除该点云簇。同时判断每点云簇中点云的数量是否满足一定数量要求,货架腿的粗细有限,打在货架腿上的点云数量不可能太多也不能过少,将不满足数量要求的聚类点云进行删除;求取每个点云簇的中心坐标值ci,判断该中心坐标值与网络下发或配置的理想货架中心位置P之间的距离是否小于d1,将距离大于d1点云簇删除。则保留下来的点云簇是可能是检测到的货架腿。
判断每个点云簇中的点云数量是否够多,如超过6个点云等,若足够多,则对该点 云簇进行主成分分析(PCA,Principal Component Analysis)分解,求出货架在激光坐标系 下朝向的初值。具体方式如下:
对
将
若d
限制
假设要估计的货架腿中心坐标为c
ei = si((p
其中,si为每个观点点云在残差项中的权重,将打在货架腿上的所有点云的观测构建的误差方差,进行非线优化求解,即可求出每个候选货架腿的中心坐标和货架朝向。
对候选货架腿进行筛选,利用正确的货架腿求解出货架中心。
在货架对接环境中,往往存放的不止一个货架,移动机器人会检测到多个货架腿,而货架被人工放置时有不同程度的倾斜或偏离库位点,同时,由于环境中物体的遮挡,经常检测不出一个货架的四条货架腿,此时对货架腿进行检测,筛选出正确的货架腿求取货架中心。具体步骤为:
依次遍历所有的货架腿,以四个不同的货架腿为一组,意味着此次能同时检测到四个货架腿(l
C
同时,标记对应的三个货架腿分为为货架的下左、下右和上左。若li3在线段下方,则货架的中心坐标更新为:
C
同时,标记对应的三个货架腿分为为货架的上左、上右和下左。
其中,Ci为本组货架腿估算的货架腿中心;P
货架的朝向估计值用下左、下右或者上左、上右货架腿坐标来估计,此组案例中朝向估计值为:
R=
用类似的方法校验(li1,li2,li4)、(li2,li3,li4)和(li1,li3,li4),若该三组都通过校验,则认为这四个货架腿是货架的四条腿,记录下来,并更新该组货架中心的估计值,如式12所示。下次遍历候选货架腿集合的货架腿,若四个货架腿已经是一组被记录过则直接跳过,加快搜索速度。
C
继续遍历候选货架腿中的货架腿,此时以其中的三个货架腿为一组,若三个货架腿的id是上述一组四个货架腿的子集,则直接跳过。否则将这三个货架腿作为一组进行存储记录。判断其中两个货架腿(t
继续遍历候选货架腿中的货架腿,以其中两个货架腿为一组,若两个货架腿的id(rk1、rk2)在上面一组四个货架腿或者一组三个货架腿的子集,则直接跳过。否则判断着两个货架腿的长度是否和货架长度相近,若相近,货架朝向估计值为:
若预设的货架中心在rk1、rk2组成线段的上方,则货架中心估计值为:
C
并标记两个货架腿为下左和下右,否则货架中心估计值为:
C
标记两个货架腿为上左和上右。若两个货架腿的距离与货架的宽相近,则货架朝向估计值为:
若预设的货架中心在rk1、rk2线段的右方,则货架中心估计值为:C
标记两个货架腿为上左和下左,否则货架中心估计值为:
Ck = (p
标记两个或阿基退为上右与下右。若两个货架腿的距离与货架的斜长相近,则货架朝向估计值为:
此时货架中心估计值为:
C
限制货架角度在正负180度之间,判断上述若干组货架腿估算出来的货架中心,将离预设货架中心最近的货架腿id保存,并记录货架腿的数量。针对货架腿数量为2的情况,由于货架偏置的程度较大,仅仅依赖预设货架位置相对货架腿线的相对位置关系,可能会计算出错误的货架位置,实际位置在该线段的对称位置。因此移动机器人在对接货架过程中,要隔一段时间或者一段距离继续识别,保证候选货架腿有三个来确保货架位置估算的准确性;或者当移动机器人运行到目标点时,一直未扫描到货架下方的二维码,则退到货架识别点重新开始货架识别,去往目标点时,再次未扫描到二维码,则去往另一个对称位置。
假设需要求解货架中心为C,其初值是上述求取的估计值。记保留下来一组的货架腿id是id0,id1,id2,id3,假设四个id分别对应货架的下左,下右,上右和上左(也可能id中只有三个货架腿或者两个货架腿,以四个货架腿为例),则id0构建的误差方程为:
u
u
其对应的误差项为:
e
e
其中,cx、cy和
移动机器人的货架对接。
在求出货架中心后,将货架中心通过激光相关的外部参数以及机器人当前位姿转换到世界坐标系下,得到检测的目标点Z,然后移动机器人切换成里程计导航模式,并进入到货架下方,在快要到目标点Z时,打开上视相机寻找货架下方的二维码。由于货架腿一般是金属材质,一般激光打在金属货架腿上时,会有干扰点,导致估算的货架中心有偏差,此时,当上视相机扫到货架背面的二维码时,通过检测相机相对于二维码的相对位姿,调整移动机器人的位置,保证该相对位姿小于一定阈值,停止移动机器人调整并记录该相对位姿,认为移动机器人到达货架中心的正下方,举起货架。在移动机器人背起货架行走的过程中,通过激光导航估计的机器人位姿,叠加上移动机器人相对于二维码相对变化量,保证移动机器人移动过程中能让货架跟巡理想的路线,在放下货架时,也能将货架放在理想的目标点上。
本发明不需要提前限制激光扫描范围,即使激光器偏置,也能正确地估算货架中心;本发明也不需要识别货架腿特征,通过对激光点云先聚类后剔除的方法,并将打在货架腿上的点云作为观测值来构建误差方程求解出货架腿中心,并结合候选货架腿的数量,设计不同的货架中心方法,保证了当出现误检测、货架腿被遮挡1至2条以及有多个货架放在一起时,都能准确地筛选出目标货架的货架腿,从而保证识别到正确的货架并计算出货架中心,准确对其作业。本发明同时能检测出货架的朝向,保证移动机器人按照要求的方向从货架的一侧进入到货架下方,且对货架识别失败有尝试机制。本发明在识别出货架中心位置后,切换成里程计导航方式,避免在对接时激光受到干扰后引入定位误差。移动机器人结合上视相机,能使移动机器人举起货架时尽量靠近货架的正中心位置。上视相机不仅起到记录移动机器人相对货架位置的作用,同时利用上视相机识别货架背面的二维码做相对导航,调整移动机器人位姿,使移动机器人尽量靠近货架中心,排除了因为检测货架腿有干扰点对货架中心位姿估计的影响,从而保证后续货架搬动到另一个目标点过程中,减少货架遇障的风险。同时通过上视相机,保证移动机器人进入到货架下方后能调整到相对货架的朝向。
图5示出了本发明实施例的货架检测装置的组成结构示意图,如图5所示,本发明实施例的货架检测装置包括:
第一获取单元50,用于确定到达货架识别区域后,进行激光扫描,获取反射激光的点云数据;
聚类单元51,用于基于货架的尺寸对所述点云数据进行过滤,并对过滤后的所述点云数据进行聚类;
过滤单元52,用于基于货架的尺寸及其预置的位姿信息,对聚类后的所述点云数据进行过滤;
第一确定单元53,用于基于过滤的点云数据聚类形成的点云簇确定货架的第一朝向;将货架腿上的点云数据作为观测值,基于所述货架的第一朝向确定货架腿的第一中心坐标;
第二确定单元54,用于依次遍历所有的货架腿,以至少两个货架腿为一组,分别确定其中满足货架尺寸的货架腿组,作为候选货架腿组;
估算单元55,用于在所述候选货架腿组中选择与预设货架坐标之差值小于第一设定阈值的货架腿组,利用所选择的货架腿组中的货架腿的第二中心坐标作为观测值,基于所述第一中心坐标估算货架的第三中心坐标和第二朝向;
第二获取单元56,用于依据扫描激光的相关位置参数以及所述移动机器人的当前位姿,将货架的所述第三中心坐标转换到世界坐标系下,得到检测的目标点位置;
控制单元57,用于将所述移动机器人切换为里程计导航模式,并依据所述目标点位置驶入货架下方,举起货架并将货架运输至目的地。
作为一种实现方式,所述控制单元57,还用于:
在举起货架并将货架运输至目的地之前,开启所述移动机器人的上视相机,扫描货架上的识别码,通过检测所述上视相机相对于所述识别码的相对位姿,调整所述移动机器人的位置,直到所述相对位姿小于第二设定阈值,停止所述移动机器人的位置调整并记录该相对位姿,调用工作台举起货架。
作为一种实现方式,所述聚类单元51,还用于:
确定激光点云与预设货架中心的距离大于第一设定距离时,删除该点云数据。
作为一种实现方式,所述过滤单元52,还用于:
在聚为一类的点云簇中,距离最远的两个点的距离大于第二设定距离时,删除该点云簇;或
在聚为一类的点云簇中,点云的数量小于第一预设数量或大于第二预设数量时,删除该点云簇;或
在聚为一类的点云簇中,获取每点云簇的第四中心坐标,判断该第四中心坐标与货架的预设中心位置之间的距离第三设定距离时,删除该点云簇。
作为一种实现方式,所述第二确定单元54,还用于:
在四个不同的货架腿中任选三个为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系;
若四个不同的货架腿中的任三个货架腿满足实际货架腿的位置关系,则该四个货架腿为货架的四条腿;
继续遍历除所确定的四条货架腿之外的货架腿,以三个货架腿为一组,判断该组中存在两货架腿之间的距离与货架实际长度之差是否小于第三设定阈值,小于第三设定阈值时,判断该组中是否存在两货架腿之间的距离与货架实际宽度之差小于第四设定阈值,若存在,则判断长度所在的两货架腿与宽度所在的两货架腿是否垂直,若垂直,则判断长度及宽度构成的三角形斜边是否与货架的实际斜边长之差小于第五设定阈值,小于第五设定阈值时,对三个货架腿对应的货架中心坐标进行校验,校验通过确定三货架腿满足实际货架腿的位置关系,该组中的三个货架腿为货架的三条腿;
继续遍历除所确定的四条、三条货架腿之外的货架腿,以两个货架腿为一组,确定两货架腿之间的距离与货架实际长度之差小于第三设定阈值时,进行货架朝向及货架中心坐标的估算及校验,校验通过确定该组中两个货架腿满足实际货架腿的位置关系,该组中的两个货架腿为货架的两条腿。
作为一种实现方式,所述第一确定单元53,还用于:
判断每个点云簇中的点云数量超过第三预设数量时,对该点云簇进行主成分分析PCA分解,求出货架在激光坐标系下朝向的初值,作为货架的第一朝向;
当检测到点云簇中的点云数量小于第三预设数量,则利用货架腿中的两货架腿之间的长度与货架的实际长度或实际宽度接近程度确定货架的第一朝向。
在示例性实施例中,第一获取单元50、聚类单元51、过滤单元52、第一确定单元53、第二确定单元54、估算单元55、第二获取单元56和控制单元57等可以被一个或多个中央处理器(CPU,Central Processing Unit)、图形处理器(GPU,Graphics Processing Unit)、基带处理器(BP,Base Processor)、应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、数字信号处理器(Digital Signal Processor,DSP)、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述实施例的货架检测方法的步骤。
在本公开实施例中,图5示出的货架检测装置中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
下面,参考图6来描述根据本申请实施例的电子设备11。
如图6所示,电子设备11包括一个或多个处理器111和存储器112。
处理器111可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备11中的其他组件以执行期望的功能。
存储器112可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器111可以运行所述程序指令,以实现上文所述的本申请的各个实施例的验证方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备11还可以包括:输入装置113和输出装置114,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置113可以包括例如键盘、鼠标等等。
该输出装置114可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置114可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备11中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备11还可以包括任何其他适当的组件。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
- 货架检测方法及装置、电子设备、存储介质
- 货架物量检测方法、装置、电子设备及货架