CN120004179A - 一种对齐方法、控制系统和搬运设备 - Google Patents
一种对齐方法、控制系统和搬运设备 Download PDFInfo
- Publication number
- CN120004179A CN120004179A CN202510127556.5A CN202510127556A CN120004179A CN 120004179 A CN120004179 A CN 120004179A CN 202510127556 A CN202510127556 A CN 202510127556A CN 120004179 A CN120004179 A CN 120004179A
- Authority
- CN
- China
- Prior art keywords
- stacking
- stacked
- pose
- controller
- stacking object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
- B66F9/0755—Position control; Position detectors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
- B66F9/07504—Accessories, e.g. for towing, charging, locking
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66F—HOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
- B66F9/00—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
- B66F9/06—Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
- B66F9/075—Constructional features or details
- B66F9/12—Platforms; Forks; Other load supporting or gripping members
Landscapes
- Engineering & Computer Science (AREA)
- Transportation (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Life Sciences & Earth Sciences (AREA)
- Geology (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本申请实施例公开了一种对齐方法、控制系统及搬运设备。主要技术方案包括:控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据;控制器从所述目标数据中提取所述第一堆叠对象的第一目标数据,以及所述第二堆叠对象的第二目标数据;所述控制器根据所述第一目标数据和所述第二目标数据,计算所述第一堆叠对象相对所述第二堆叠对象的相对位姿;所述控制器根据所述相对位姿,控制搬运设备运动,使所述第一堆叠对象与所述第二堆叠对象对齐。本申请通过同时获取并处理两个堆叠对象的目标数据来修正两个堆叠对象之间的相对位姿,从而显著提升了堆叠作业的准确性和效率。
Description
技术领域
本申请涉及仓储物流技术领域,特别是涉及一种对齐方法、控制系统和搬运设备。
背景技术
采用诸如AGV(automated guided vehicle,自动引导车)等搬运设备进行工作的系统具有高度无人化、自动化和智能化等优势,为诸如仓储、制造、物流等行业提升了生产效率和运营水平。作为其中一个比较典型的场景,搬运设备常常负责各种货物的搬运。在搬运的过程中不可避免地涉及到货物的码放,货物通常采用纸箱等进行包装,或者,采用料笼、木箱、塑料箱等进行存储。
基于空间利用率的考虑,搬运设备在搬运货物的过程中会涉及到诸如包装了货物的纸箱、料笼、木箱等堆叠对象的堆叠。考虑到稳定性的问题,需要搬运设备准确地将一个堆叠对象堆叠于另一个堆叠对象之上在此过程中,如果两个堆叠对象不能对齐,则可能会影响作业安全。
发明内容
本申请提供了一种对齐方法、控制系统和搬运设备,可以提升堆叠作业的准确性和效率。
本申请提供了如下方案:
根据第一方面,提供了一种对齐方法,包括:
控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据;
控制器从所述目标数据中提取所述第一堆叠对象的第一目标数据,以及所述第二堆叠对象的第二目标数据;
所述控制器根据所述第一目标数据和所述第二目标数据,计算所述第一堆叠对象相对所述第二堆叠对象的相对位姿;
所述控制器根据所述相对位姿,控制搬运设备运动,使所述第一堆叠对象与所述第二堆叠对象对齐。
可选地,所述控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠准备位置;
所述控制器通过第一传感器获取所述第二堆叠对象的第四目标数据;
所述控制器根据所述第四目标数据,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在第一预设阈值范围内。
可选地,所述控制器根据所述第四目标数据,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿在第一预设阈值范围内,包括:
所述控制器根据所述第四目标数据,确定所述第二堆叠对象的位姿;
根据所述第二堆叠对象的位姿,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在第一预设阈值范围内。
可选地,所述控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据,包括:
当所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠作业位置时,所述控制器通过第一传感器获取所述目标数据。
可选地,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠作业位置,包括:
控制所述搬运设备向所述第二堆叠对象运动,直至所述搬运设备的货叉在所述第二堆叠对象上的投影长度达到第一长度阈值。
可选地,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠作业位置,包括:
控制所述搬运设备向所述第二堆叠对象运动,直至所述搬运设备的第一传感器与所述第二堆叠对象在纵向的距离在第一预设距离内。
可选地,所述根据所述相对位姿,控制搬运设备运动,使所述第一堆叠对象与所述第二堆叠对象对齐,包括:
根据所述相对位姿,控制所述搬运设备运动,直至所述相对位姿在第二预设阈值范围内。
可选地,所述方法还包括:
当所述相对位姿不在所述第二预设阈值范围内时,所述控制器控制搬运设备调整位姿;
所述控制器通过第一传感器重新获取第一堆叠对象的目标数据,以及第二堆叠对象的目标数据;
所述控制器根据所述重新获取的目标数据,重新确定所述第一堆叠对象的位姿与第二堆叠对象的位姿之间的相对位姿。
可选地,所述控制搬运设备运动,包括:
当所述搬运设备与堆叠终点之间的纵向距离大于预设的距离阈值时,仅控制所述搬运设备的车体进行移动;
当所述搬运设备与所述堆叠终点之间的纵向距离不大于所述距离阈值时,控制所述搬运设备的车体进行移动的同时,控制所述货叉在横向移动。
可选地,所述控制所述搬运设备的车体进行移动的同时,控制所述货叉在横向移动,包括:
计算所述车体相对所述第二堆叠对象的横向误差,根据所述横向误差计算所述货叉的横向目标值;
计算所述车体相对所述第二堆叠对象的纵向误差,根据所述纵向误差控制所述车体移动,直至所述纵向误差在预设的纵向阈值范围内;同时,根据所述横向目标值,控制所述货叉在横向移动,使所述货叉相对所述第二堆叠对象的横向误差在预设的横向阈值范围内。
可选地,所述方法还包括:
实时获取所述搬运设备与所述堆叠终点之间的纵向距离,并根据所述纵向距离控制所述车体的运动速度和/或所述货叉的运动速度。
可选地,所述根据所述相对位姿,控制所述搬运设备运动,直至所述相对位姿在第二预设阈值范围内之后,所述方法还包括:
获取所述第一堆叠对象的当前位姿;
根据所述第一堆叠对象的当前位姿和所述第一堆叠对象的尺寸,确定所述第一堆叠对象的至少一个角点的坐标;
获取所述第二堆叠对象的当前位姿;
根据所述第二堆叠对象的当前位姿和所述第二堆叠对象的尺寸,确定所述第二堆叠对象的至少一个角点的坐标;
其中,所述第一堆叠对象的至少一个角点与所述第二堆叠对象的至少一个角点对应;
计算所述第一堆叠对象的至少一个角点与所述第二堆叠对象的至少一个角点的坐标差;
当所述坐标差在第三预设阈值范围内,确认所述第一堆叠对象和所述第二堆叠对象对齐成功;否则,确认所述第一堆叠对象和所述第二堆叠对象对齐失败。
可选地,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器根据所述第一堆叠对象与第二堆叠对象的当前相对位姿确定所述搬运设备的目标位姿;
所述控制器控制所述搬运设备运动,将所述搬运设备的位姿调整到所述目标位姿;
所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
根据所述重新获取的目标数据重新确定所述第一堆叠对象和所述第二堆叠对象的相对位姿;
根据所述重新确定的相对位姿,判断所述第一堆叠对象和所述第二堆叠对象是否对齐。
可选地,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器根据所述第一堆叠对象与第二堆叠对象的当前相对位姿确定所述搬运设备的目标位姿;
所述控制器控制所述搬运设备运动,将所述搬运设备的位姿调整到所述目标位姿;
所述控制器通过第一传感器重新获取所述第一堆叠对象的目标数据;
所述控制器根据所述重新获取的目标数据重新确定所述第一堆叠对象的位姿;
根据所述重新确定的第一堆叠对象的位姿和对齐失败时所述第二堆叠对象的位姿,重新确定所述第一堆叠对象和所述第二堆叠对象的相对位姿;
根据所述重新确定的相对位姿,判断所述第一堆叠对象和所述第二堆叠对象是否对齐。
可选地,所述控制器控制所述搬运设备运动,将所述搬运设备的位姿调整到所述目标位姿,包括:
所述控制器控制所述搬运设备运动至第一预设位置;
所述控制器控制所述搬运设备从所述第一预设位置运动至所述目标位姿对应的位置。
可选地,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
所述控制器控制所述搬运设备调整姿态,使所述第一堆叠对象和所述第二堆叠对象重新对齐。
可选地,在所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备搬运所述第一堆叠对象运动至堆叠准备位置;
所述控制器通过第一传感器获取所述第二堆叠对象的第四目标数据;
所述控制器根据所述第四目标数据确定所述第二堆叠对象的位姿;
所述控制器根据所述第二堆叠对象的位姿,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在所述第一预设阈值范围内。
可选地,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器控制所述搬运设备重新运动至所述堆叠作业位置,所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
所述控制器控制所述搬运设备调整姿态,使所述第一堆叠对象和所述第二堆叠对象重新对齐。
可选地,所述方法还包括:
统计所述对齐失败次数,当所述对齐失败次数大于第一预设次数时,输出报警提示。
可选地,所述第一堆叠对象与所述第二堆叠对象对齐之后,所述方法还包括:
控制所述搬运设备将所述第一堆叠对象堆叠在所述第二堆叠对象上。
可选地,所述控制所述搬运设备将所述第一堆叠对象堆叠在所述第二堆叠对象上之后,所述方法还包括:
判断所述第一堆叠对象是否成功堆叠在所述第二堆叠对象上。
可选地,所述判断所述第一堆叠对象是否成功堆叠在所述第二堆叠对象上,包括:
利用感知检测方式,确认所述第一堆叠对象相对于所述第二堆叠对象的感知堆叠状态。
可选地,所述判断所述第一堆叠对象是否成功堆叠在所述第二堆叠对象上还包括:
利用压感检测方式,确认所述第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态。
可选地,利用感知检测方式,确认所述第一堆叠对象相对于所述第二堆叠对象的感知堆叠状态,包括:
所述控制器通过第一传感器扫描所述第一堆叠对象和所述第二堆叠对象,得到所述第一堆叠对象和所述第二堆叠对象的堆叠区域的结构特征数据;
根据所述结构特征数据,确认所述第一堆叠对象相对于所述第二堆叠对象的感知堆叠状态。
可选地,利用压感检测方式,确认所述第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态,包括:
控制器通过第二传感器获取综合压力数据,根据所述综合压力数据确认所述第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态。
可选地,所述方法还包括:
当所述第一堆叠对象未成功堆叠在所述第二堆叠对象上,所述控制器控制所述搬运设备抬升所述第一堆叠对象;
所述控制器控制所述搬运设备将所述第一堆叠对象重新堆叠在所述第二堆叠对象上。
可选地,所述方法还包括:
当所述第一堆叠对象未成功堆叠在所述第二堆叠对象上,所述控制器控制所述搬运设备抬升所述第一堆叠对象;
所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
所述控制器控制所述搬运设备调整姿态,使所述第一堆叠对象和所述第二堆叠对象重新对齐;
所述控制器控制所述搬运设备将所述第一堆叠对象重新堆叠在所述第二堆叠对象上。
可选地,在所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备搬运所述第一堆叠对象运动至堆叠准备位置;
所述控制器通过第一传感器获取所述第二堆叠对象的第四目标数据;
所述控制器根据所述获取的第四目标数据,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在第一预设阈值范围内。
可选地,在所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备重新运动至所述堆叠作业位置。
可选地,所述方法还包括:
所述控制器统计未成功堆叠次数,当所述未成功堆叠次数大于第二预设次数时,输出报警提示。
可选地,所述方法还包括:
所述控制器统计所述对齐失败次数与未成功堆叠次数;
当所述对齐失败次数与所述未成功堆叠次数之和大于第三预设次数时,输出报警提示。
可选地,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠准备位置之前,所述方法还包括:
所述控制器控制所述搬运设备运动到取货位置;
所述控制器通过第一传感器获取所述第一堆叠对象的第三目标数据;
根据所述第一堆叠对象的第三目标数据,控制所述搬运设备运动,以获取所述第一堆叠对象;
所述控制器控制所述搬运设备搬运所述第一堆叠对象运动到堆叠准备区域。
可选地,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠准备位置,包括:
所述控制器在搬运过程中同时控制车身运动和所述第一堆叠对象的抬升。
根据第二方面,提供了一种控制系统,包括存储器和控制器,存储器用于存储程序指令,控制器用于执行程序指令,以实现上述第一方面中任一项所述的方法的步骤。
根据第三方面,提供了一种搬运设备,包括存储器和控制器,存储器用于存储程序指令,控制器用于执行程序指令,以实现上述第一方面中任一项所述的方法的步骤。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
本申请通过第一传感器获取两个堆叠对象的目标数据,控制器从目标数据中提取第一堆叠对象的第一目标数据和第二堆叠对象的第二目标数据,进而计算出第一堆叠对象相对于第二堆叠对象的相对位姿,并根据该相对位姿控制搬运设备运动,使第一堆叠对象和第二堆叠对象对齐。与现有方案相比,能够通过同时获取并处理两个堆叠对象的目标数据来修正两个堆叠对象之间的相对位姿,从而显著提升了堆叠作业的准确性和效率。
当然,本申请的任一发明并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的搬运设备的结构示意图;
图2为第一目标区域和第二目标区域的示意图;
图3为第三目标区域和第四目标区域的示意图;
图4为第五目标区域、第六目标区域、第七目标区域和第八目标区域的示意图;
图5为本申请实施例提供的第一堆叠对象和第二堆叠对象对齐的方法流程图;
图6为搬运设备搬运第一堆叠对象移动至堆叠作业位置的示意图;
图7为本申请实施例提供的计算第一堆叠对象相对第二堆叠对象的相对位姿的流程图;
图8为本申请实施例提供的分割图像的示意图;
图9为本申请实施例提供的脚杯和立柱的示意图;
图10为本申请实施例提供的第一目标区域和第二目标区域的示意图一;
图11为本申请实施例提供的第一目标区域和第二目标区域的示意图二;
图12为本申请实施例提供的第一堆叠对象和第二堆叠对象的边框线的示意图;
图13为本申请实施例提供的计算第一堆叠对象相对第二堆叠对象的相对位姿的流程图;
图14为本申请实施例提供的生成第一灰度图的示意图;
图15为本申请实施例提供的生成第二灰度图的示意图;
图16为本申请实施例提供的确定第一堆叠对象与第二堆叠对象之间的相对位姿数据的流程图;
图17为本申请实施例提供的第一灰度图的示意图;
图18为本申请实施例提供的第二灰度图的示意图;
图19为本申请实施例提供的确定第一堆叠对象与第二堆叠对象之间的相对位姿数据的流程图;
图20为本申请实施例提供的计算第一目标点和第二目标点的示意图;
图21为本申请实施例提供的不同视角下的第一目标点处箭头所指的方向和第二目标点处箭头所指的方向的示意图;
图22为本申请实施例提供的控制搬运设备运动的第二阶段的实现流程图;
图23为本申请实施例提供的第一堆叠对象和第二堆叠对象的角点示意图;
图24为本申请实施例提供的堆叠作业的全流程示意图;
图25为本申请实施例提供的堆叠状态确认方法的流程图;
图26为本申请实施例提供的堆叠成功的示意图;
图27为本申请实施例提供的堆叠失败的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。另外,本文中使用的术语“根据”不局限于只依据某一对象,例如根据A确定B,可以表示:根据A直接确定B,或者部分根据A确定B。
在相关技术中,主要是通过对下方堆叠对象的位姿进行检测来实现两个堆叠对象的堆叠,而这种方式会因上方堆叠对象取货位姿不准确、地面不平、里程计存在累积误差、搬运设备自身的误差等各方面的影响,导致两个堆叠对象在堆叠时不能完全对齐,影响作业安全。
有鉴于此,本申请提供了一种新的思路,提供了一种对齐方法、控制系统和搬运设备。
本申请实施例提供的方法可应用于如图1所示的搬运设备中,如图1所示,为本申请实施例提供的搬运设备的结构示意图,搬运设备1将第一堆叠对象A堆叠到第二堆叠对象B上,其中,搬运设备1包括搬运设备本体10、传感器30、堆叠执行部件20、控制器40和存储器50。该控制器40可以为搬运设备本体10上的控制主板、控制盒、控制单元、车载电脑、计算平台、平板电脑、计算机等起计算或控制作用的系统或设备,或本地服务器、云端服务器中起计算或控制作用的系统或设备,也可以为手持控制器、远程控制器等其他形态。本申请实施例中对此不做限定。
本申请实施例中涉及的搬运设备1可以是无人叉车、托盘搬运车、起重车、AGV(Automated Guided Vehicle,自动导引车)、AMR(Autonomous Mobile Robot,自主移动机器人)或人形机器人等,对应的堆叠执行部件20可以为货叉,机械臂等。
通常情况下,搬运设备1从RCS(Robot Control System,机器人控制系统)处接收搬运任务,接收到搬运任务后,可以通过自身的控制器40控制搬运设备1执行该搬运任务,比如控制搬运设备1首先移动到第一堆叠对象A处,利用堆叠执行部件20叉取第一堆叠对象A,再将第一堆叠对象A搬运到第二堆叠对象B附近,将第一堆叠对象A堆叠到第二堆叠对象B之上。
其中,RCS可以是集成在搬运设备1中,与搬运设备1构成一个整体,也可以是单独作为不同于搬运设备1的设备,如其可以为平板电脑、笔记本电脑、计算机(PersonalComputer,PC)、本地服务器、云端服务器等设备。本申请实施例中对此不做限定。
传感器30可以采用传感器模组的形式,可以包括用以采集点云数据的雷达,例如激光雷达,激光雷达可以安装在堆叠执行部件20上,便于采集点云数据,进一步地,激光雷达可以为三维激光雷达。还可以包括采集图像数据的相机,相机可以安装在堆叠执行部件20上,便于采集图像数据。也可以包括采集压力数据的压力传感器,压力传感器可以安装在堆叠执行部件20上。
存储器50主要用于存储传感器30采集的数据,比如点云数据、图像数据或压力数据。例如,存储器50可以为非易失性计算机存储介质。
下面针对本申请实施例涉及到的名词概念进行介绍。
堆叠,指将若干物体以一定的规则进行上下排列、堆放。
堆叠对象,指参与堆叠的物体,具体可以是货物本身、或有缠膜等简易包装的货物,也可以是可以容纳、承载货物的容器,例如料笼、木箱、塑料箱、托盘等。
堆叠过程:指搬运设备抬升第一堆叠对象,使第一堆叠对象移动并靠近第二堆叠对象,然后通过调整搬运设备姿态,将第一堆叠对象与第二堆叠对象对齐,进而将第一堆叠对象放于第二堆叠对象上,完成堆叠。
其中,第一堆叠对象,指位于上方的堆叠对象。第二堆叠对象,指位于下方的堆叠对象。
堆叠状态:是指在堆叠过程中,两个堆叠对象的相对位置状态。
对齐:指两个或多个堆叠对象,在垂直方向沿直线排列,且堆叠对象间,至少部分边框直线相平行或重合的状态。其中,垂直方向指搬运设备坐标系下的Z轴方向(即搬运设备的高度方向)。
第一堆叠对象,具有第一目标区域、第三目标区域、第五目标区域和第七目标区域,指第一堆叠对象上用于检测、分析的特定区域,比如第一堆叠对象的边框结构、脚杯、立柱、角结构等关键结构区域。
第二堆叠对象,具有第二目标区域、第四目标区域、第六目标区域和第八目标区域,指第二堆叠对象上用于检测、分析的特定区域,比如第二堆叠对象的边框结构、脚杯、立柱、角结构等关键结构区域。
还需要说明的是,在本申请实施例中,第二堆叠对象除了可以是货物或者容纳货物的容器,还可以作为堆叠基础的静止基座。
如图2所示,为第一目标区域和第二目标区域的示意图。其中,位于上方的堆叠对象A为第一堆叠对象,位于下方的堆叠对象B为第二堆叠对象,第一堆叠对象的底部结构区域为第一目标区域A1,第二堆叠对象的顶部结构区域为第二目标区域B2。
如图3所示,为第三目标区域和第四目标区域的示意图。其中,堆叠对象A为第一堆叠对象,堆叠对象B为第二堆叠对象,当控制器控制搬运设备运动到取货位置时,沿搬运设备的长度方向(也是搬运设备的行驶方向)观察,堆叠对象A的两侧结构区域(比如立柱和插孔等)为第三目标区域A3;当控制器控制搬运设备搬运第一堆叠对象至堆叠准备位置时,沿搬运设备的长度方向观察,堆叠对象B的两侧结构区域(比如立柱和插孔等)为第四目标区域B4。
如图4所示,为第五目标区域、第六目标区域、第七目标区域和第八目标区域的示意图。其中,位于上方的堆叠对象A为第一堆叠对象,位于下方的堆叠对象B为第二堆叠对象。第一堆叠对象底部的一侧结构区域为第五目标区域A5,底部的另一侧结构区域为第七目标区域A7,而第二堆叠对象顶部的一侧结构区域为第六目标区域B6,顶部的另一侧结构区域为第八目标区域B8。其中,第五目标区域A5与第七目标区域A7分别位于第一堆叠对象的相对两侧。第六目标区域B6与第八目标区域B8分别位于第二堆叠对象的相对两侧。堆叠过程,第一目标区域A5与第二目标区域B6位于同侧,第三目标区域A7与第四目标区域B8位于另一同侧。图4中(a)和(b)分别展示了两种不同目标区域配置方式。
另外,第五目标区域与第七目标区域也可以位于第一堆叠对象的相邻两侧,第六目标区域与第八目标区域也可以位于第二堆叠对象的相邻两侧。
需要说明的是,如图1,本申请实施例中,在以搬运设备1的几何中心为原点O的坐标系中,以搬运设备的前后行驶方向(即搬运设备本体10的纵向方向)为X轴,其中X轴正方向为远离搬运设备1的属具(如货叉)的方向,搬运设备1的横向方向为Y轴,Y轴的正方向垂直纸面向外(图中未示出),搬运设备1的高度方向为Z轴。
目标数据:指由第一传感器获取的堆叠对象的目标区域的数据,包括点云数据和/或图像数据等。
第一目标数据:是指由第一传感器获取的第一堆叠对象的第一目标区域的数据,包括点云数据和/或图像数据。第一目标数据可用于计算第一堆叠对象的位姿、堆叠状态等。
第三目标数据:是指由第一传感器获取的第一堆叠对象的第三目标区域的数据,包括点云数据和/或图像数据。第三目标数据可用于计算第一堆叠对象的位姿。
第五目标数据:是指由第一传感器获取的第一堆叠对象的第五目标区域的数据,包括点云数据、图像数据。第五目标数据可用于计算第一堆叠对象的位姿、堆叠状态等。
第七目标数据:是指由第一传感器获取的第一堆叠对象的第七目标区域的数据,包括点云数据和/或图像数据。第七目标数据可用于计算第一堆叠对象的位姿、堆叠状态等。
第二目标数据:是指由第一传感器获取的第二堆叠对象的第二目标区域的数据,包括点云数据和/或图像数据。第二目标数据可用于计算第二堆叠对象的位姿、堆叠状态等。
第四目标数据:是指由第一传感器获取的第二堆叠对象的第四目标区域的数据,包括点云数据和/或图像数据。第四目标数据可用于计算第二堆叠对象的位姿。
第六目标数据:是指由第一传感器获取的第二堆叠对象的第六目标区域的数据,包括点云数据和/或图像数据。第六目标数据可用于计算第二堆叠对象的位姿、堆叠状态等。
第八目标数据:是指由第一传感器获取的第二堆叠对象的第八目标区域的数据,包括点云数据和/或图像数据。第八目标数据可用于计算第二堆叠对象的位姿、堆叠状态等。
另外,在堆叠过程中,本申请实施例涉及到的位置如下:
取货位置:是指搬运设备叉取第一堆叠对象的位置;
堆叠准备区域:是指具有可供第一堆叠对象堆叠的第二堆叠对象的区域。
堆叠准备位置:是指到达堆叠作业位置之前的位置,在该位置搬运设备能够获取第二堆叠对象的位姿。
堆叠作业位置:是指搬运设备上的第一传感器可以同时获取第一堆叠对象与第二堆叠对象的目标数据的位置。
图5为本申请实施例提供的一种对齐方法流程图。如图5中所示,该方法可以包括以下步骤:
步骤501,控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据;
步骤502,控制器从目标数据中提取第一堆叠对象的第一目标数据,以及第二堆叠对象的第二目标数据;
步骤503,控制器根据第一目标数据和第二目标数据,计算第一堆叠对象相对第二堆叠对象的相对位姿;
步骤504,控制器根据相对位姿,控制搬运设备运动,使第一堆叠对象与第二堆叠对象对齐。
由上述流程可以看出,本申请通过第一传感器获取两个堆叠对象的目标数据,控制器从目标数据中提取第一堆叠对象的第一目标数据和第二堆叠对象的第二目标数据,进而计算出第一堆叠对象相对于第二堆叠对象的相对位姿,并根据该相对位姿控制搬运设备运动,使第一堆叠对象和第二堆叠对象对齐。与现有方案相比,能够通过同时获取并处理两个堆叠对象的目标数据来修正两个堆叠对象之间的相对位姿,从而显著提升了堆叠作业的准确性和效率。
下面结合实施例分别对上述流程中的各步骤以及能够进一步产生的效果进行详细描述。需要说明的是,本公开中涉及的“第一”、“第二”等限定并不具备大小、顺序和数量等方面的限制,仅仅用以在名称上加以区分,例如“第一堆叠对象”和“第二堆叠对象”用以区分两个堆叠对象,“第一目标数据”、“第二目标数据”和“第四目标数据”用以区分不同的目标数据,等等。
首先结合实施例对上述步骤501即“第一传感器获取第一堆叠对象和第二堆叠对象的目标数据”进行详细描述。
本申请实施例中,利用第一传感器来获取第一堆叠对象和第二堆叠对象的目标数据。具体的,当控制器控制搬运设备搬运第一堆叠对象移动至堆叠作业位置时,第一传感器对第一堆叠对象和第二堆叠对象进行采集,得到第一堆叠对象和第二堆叠对象的目标数据。
作为一种可实现的方式,控制器控制搬运设备搬运第一堆叠对象移动至堆叠作业位置,具体包括:
控制搬运设备向第二堆叠对象运动,直至搬运设备的货叉在第二堆叠对象上的投影长度达到第一长度阈值。
如图6所示,为搬运设备搬运第一堆叠对象移动至堆叠作业位置的示意图。其中,搬运设备的货叉在第二堆叠对象B上的投影长度d1达到第一长度阈值,此时搬运设备所处的位置就是堆叠作业位置。本申请实施例可将第一长度阈值设置为10厘米-30厘米。需要注意的是,本申请实施例中为了确保第一传感器可以处于最佳检测距离,从而保证在进入对齐阶段后搬运设备可以快速调整,从而提升对齐效率和精确度,本申请实施例将第一长度阈值设置在10厘米-30厘米内。在实际应用中,该第一长度阈值可以根据实际需求进行设置,本申请实施例对此不进行限制。
作为另一种可实现的方式,控制器控制搬运设备搬运第一堆叠对象移动至堆叠作业位置,具体包括:
控制搬运设备向第二堆叠对象运动,直至搬运设备的第一传感器与第二堆叠对象在纵向的距离在第一预设距离内。
仍以图6为例,搬运设备的第一传感器与第二堆叠对象在纵向的距离d2达到第一预设距离,此时搬运设备所处的位置就是堆叠作业位置。
当搬运设备到达堆叠作业位置时,进入对齐阶段,第一传感器开始采集第一堆叠对象和第二堆叠对象的目标数据,并根据采集的目标数据使第一堆叠对象与第二堆叠对象实现对齐。
本申请实施例中的第一传感器可包括雷达模组和/或相机(Camera)模组,其中雷达模组可以包括一个或多个雷达,这里的雷达可以为激光雷达,比如3D激光雷达,相机模组可以包括一个或多个相机。本申请实施例中对第一传感器的具体形式不做限制。
当第一传感器为3D激光雷达时,目标数据可以为点云数据,这些点云数据包含第一堆叠对象和第二堆叠对象的三维几何信息;当第一传感器为相机时,目标数据可以包含图像数据;当第一传感器为3D激光雷达和相机的组合时,目标数据则包含点云数据和图像数据。
进一步地,搬运设备在进入对齐阶段之前,还可以包括取货阶段和预对准阶段。
在取货阶段,控制器控制搬运设备运动到取货位置,第一传感器获取第一堆叠对象的第三目标数据,然后根据第三目标数据,控制搬运设备运动,以获取第一堆叠对象,然后控制搬运设备搬运第一堆叠对象运动到堆叠准备区域。具体的,可以搬运第一堆叠对象运动到第二堆叠对象前方,比如距离第二堆叠对象5米以内。
其中,控制器在搬运过程中可同时控制车身运动和第一堆叠对象的抬升。
在预对准阶段,控制器控制搬运设备搬运第一堆叠对象至堆叠准备位置,第一传感器获取第二堆叠对象的第四目标数据,再根据第四目标数据确定出第二堆叠对象的位姿,基于第二堆叠对象的位姿,控制搬运设备运动,使搬运设备相对第二堆叠对象的位姿误差在第一预设阈值范围内。
其中,搬运设备相对于第二堆叠对象的位姿误差是指搬运设备相对于第二堆叠对象在三维空间中的定位和方向。具体来说,它包括搬运设备和第二堆叠对象在Y方向上的坐标差值(Δy1)以及在Z方向上的旋转角度差值(Δθ1)。
可选地,第一预设阈值范围可以设置在Y轴的坐标差值在±10cm范围内,即-10cm<Δy1<10cm,在Z轴的旋转角度差值在±5°范围内,即-5°<Δθ1<5°。
需要说明的是,该阈值范围仅为举例,实际中可根据不同的堆叠对象和搬运设备进行调整。
下面结合实施例对上述步骤502即“控制器从目标数据中提取第一堆叠对象的第一目标数据,以及第二堆叠对象的第二目标数据”进行详细描述。
控制器获取目标数据后,需要从目标数据中提取第一堆叠对象的第一目标数据和第二堆叠对象的第二目标数据。
可选地,第一目标数据可以为第一堆叠对象第一目标区域中的数据,第二目标数据可以为第二堆叠对象第二目标区域中的数据。
第一目标区域指的是第一堆叠对象的底部堆叠结构,第二目标区域指的是第二堆叠对象的顶部堆叠结构。
以第一堆叠对象和第二堆叠对象均为料笼为例,由于料笼通常是框架结构,因此第一堆叠对象的底部堆叠结构指的是底部框架结构,第二堆叠对象的顶部堆叠结构指的是顶部框架结构。
此外,当第二堆叠对象是静态基座时,第二目标区域则指静态基座的顶面的边界线。
下面结合实施例对上述步骤503即“控制器根据第一目标数据和第二目标数据,计算第一堆叠对象相对第二堆叠对象的相对位姿”进行详细描述。
控制器从目标数据中提取出第一目标数据和第二目标数据后,即可根据第一目标数据确定出第一堆叠对象的位姿,以及根据第二目标数据确定出第二堆叠对象的位姿,进而通过比较第一位姿和第二位姿来计算它们之间的相对位姿。
作为一种可实现的方式,当第一传感器为3D激光雷达和相机的组合时,获取的第一堆叠对象和第二堆叠对象的目标数据包括第一堆叠对象的图像和点云,以及第二堆叠对象的图像和点云。
如图7所示,计算第一堆叠对象相对第二堆叠对象的相对位姿,可以按照如下方式实现:
步骤701:控制器获取第一堆叠对象的图像和点云,以及第二堆叠对象的图像和点云。
当控制器控制搬运设备搬运第一堆叠对象运动至堆叠作业位置,且控制搬运设备抬升第一堆叠对象,由雷达扫描到第一堆叠对象和第二堆叠对象以获取第一堆叠对象和第二堆叠对象的点云,并同时通过相机拍摄到第一堆叠对象和第二堆叠对象以获取第一堆叠对象和第二堆叠对象的图像。
考虑到同时通过相机和雷达拍摄和扫描到第一堆叠对象和第二堆叠对象时采集的图像和点云中存在畸变,本申请实施例中获取第一堆叠对象的图像和点云,以及第二堆叠对象的图像和点云时,可以具体包括:由相机获取第一堆叠对象的原始图像和第二堆叠对象的原始图像,以及由雷达获取第一堆叠对象的原始点云和第二堆叠对象的原始点云;根据预先标定好的相机内参对原始图像进行去畸变处理;将原始点云从雷达所在的坐标系转换至搬运设备所在的坐标系,并根据里程计信息和原始图像对应的时间戳,对原始点云进行去畸变处理;将去畸变后的图像和去畸变后的点云进行时间同步,得到时间同步的图像和点云。
在这里,原始图像对应的时间戳可为相机拍摄原始图像(即,第一堆叠对象的原始图像或第二堆叠对象的原始图像)时对应的时间戳。相机内参,也称为相机内部参数或固有参数,是描述相机内部属性的参数。这些参数包括焦距、主点(光学中心)坐标以及畸变系数(如k1,k2,k3表示径向畸变,p1,p2表示切向畸变),内参通常在相机标定时确定。
图像畸变主要是由于相机镜头的光学特性导致的。光线在经过镜头时,由于折射和制造工艺的限制,会产生径向畸变和切向畸变。径向畸变会使得图像中的直线变得弯曲,离图像中心越远的像素,失真越严重。切向畸变则是由于镜头和感光元件不完全平行而产生的。因此,通过预先标定好的相机内参对原始图像进行去畸变处理,得到去畸变后的图像。
原始点云中存在畸变是指雷达运动或外部因素导致的形状失真问题,里程计信息提供了雷达在采集原始点云时的运动信息,这些信息通常包括位置、速度和加速度等;接下来,根据图像的时间戳与里程计信息确定补偿变换矩阵;将补偿变换矩阵应用到原始点云中,以得到去畸变后的点云。
需要说明的是,里程计通过测量搬运设备的运动来估计其移动的距离,通常结合传感器数据来计算搬运设备的位置、速度和姿态等物理量。里程计可以设置在搬运设备的车轮附近,用于记录车轮转动的圈数从而估算移动的距离;上述里程计还可以设置在搬运设备的底盘中心。
步骤702:控制器从第一堆叠对象的图像中提取第一目标区域的第一目标图像数据,以及从第二堆叠对象的图像中提取第二目标区域的第二目标图像数据。
第一目标图像数据:是指第一传感器从第一堆叠对象的图像中提取第一目标区域的图像数据。第一目标图像数据可用于从所述第一堆叠对象的点云中提取与所述第一目标区域对应的第一目标点云数据。
第二目标图像数据:是指第一传感器从第二堆叠对象的图像中提取第二目标区域的图像数据。第二目标图像数据可用于从所述第二堆叠对象的点云中提取与所述第二目标区域对应的第二目标点云数据。
其中,第一堆叠对象的第一目标区域在图像中通常有一个边界,该边界将第一目标区域与图像中的其他部分分隔开,该第一目标区域描述了第一堆叠对象的部分形状、大小、位置和可能的纹理或颜色特征。第二堆叠对象的第二目标区域在图像中通常有一个边界,该边界将第二目标区域与图像中的其他部分分隔开,该第二目标区域描述了第二堆叠对象的部分形状、大小、位置和可能的纹理或颜色特征。
在一个示例中,控制器根据图像分割模型从第一堆叠对象的图像中提取第一目标区域的第一目标图像数据,以及从第二堆叠对象的图像中提取第二目标区域的第二目标图像数据;其中,图像分割是一个将图像划分为多个不相交区域的过程,每个区域对应于图像中的一个对象。图像分割方法可以包括阈值分割、边缘检测、区域生长、聚类、深度学习方法等方法的一种或多种。
在另一个示例中,控制器根据目标检测模型从第一堆叠对象的图像中提取第一目标区域的第一目标图像数据,以及从第二堆叠对象的图像中提取第二目标区域的第二目标图像数据。目标检测是在图像中识别和定位特定目标或对象的过程。目标检测方法主要是基于深度学习模型来实现。
本申请实施例可以使用图像分割或目标检测的方法,在图像中能够准确地确定第一堆叠对象的第一目标区域和第二堆叠对象的第二目标区域。
需要说明的是,在目标检测或图像分割过程中,通常会生成一个与图像大小相同的二值掩码(或称为掩模)。掩码中的每个像素值表示该像素是否属于第一堆叠对象或第二堆叠对象(通常为1表示属于,0表示不属于)。这个掩码可以用来提取第一堆叠对象的第一目标区域和第二堆叠对象的第二目标区域。
例如,相机采集到包含第一堆叠对象和第二堆叠对象的图像,经过图像分割后,分割结果可以如图8中所示,其中第一部分(蓝色部分)为第一堆叠对象的第五脚杯Aj5的至少部分区域和第三脚杯Aj3的至少部分区域,第二部分(红色部分)为第二堆叠对象的第六立柱Bj6的至少部分区域和第四立柱Bj4的至少部分区域。
在这里,可通过调整相机的数量和相机的朝向来改变在采集的图像上呈现的第一堆叠对象的脚杯的至少部分区域和第二堆叠对象的立柱的至少部分区域。
其中,脚杯是指安装在料笼底部的支撑部件,通常用于稳定料笼、承载重量,并保护料笼与地面直接接触。在工业、仓储和物流场景中,料笼(也称为周转笼或仓储笼)常配备脚杯来实现更好的移动性、堆叠性和耐用性。
其中,立柱是指料笼四周的垂直支撑结构,通常用于承载料笼的重量、固定笼体框架结构以及提供堆叠功能。立柱是料笼的核心部件之一,其设计对料笼的强度、稳定性和使用功能有直接影响。
本申请实施例中的第一目标区域至少包括:第一堆叠对象的脚杯、边框线等关键结构区域。第二目标区域至少包括:第二堆叠对象的立柱、边框线等关键结构区域。
在一个示例中,第一目标区域至少包括至少一个脚杯的至少部分区域,脚杯的至少部分区域可为全部或部分的脚杯对应的区域。第二目标区域至少包括至少一个立柱的至少部分区域,立柱的至少部分区域可为全部或部分的立柱对应的区域。
例如,第一堆叠对象为第一料笼,第二堆叠对象为第二料笼;第一目标区域,包括第一料笼的第一脚杯的至少部分区域和第三脚杯的至少部分区域;第二目标区域,包括第二料笼的第二立柱的至少部分区域和第四立柱的至少部分区域。
例如,第一目标区域,还包括第一料笼的第五脚杯的至少部分区域和第七脚杯的至少部分区域;第二目标区域,还包括第二料笼的第六立柱的至少部分区域和第八立柱的至少部分区域。下面结合图9、图10、图11对图2中的第一目标区域和第二目标区域分别进行详细描述。
在图9中,第一目标区域包括第一脚杯Aj1的至少部分区域、第三脚杯Aj3的至少部分区域、第五脚杯Aj5的至少部分区域和第七脚杯Aj7的至少部分区域;第二目标区域包括第二立柱Bj2的至少部分区域、第四立柱Bj4的至少部分区域、第六立柱Bj6的至少部分区域和第八立柱Bj8的至少部分区域。
在图10中,第一目标区域A1包括第一脚杯Aj1的至少部分区域和第三脚杯Aj3的至少部分区域;第二目标区域B2包括第二立柱Bj2的至少部分区域和第四立柱Bj4的至少部分区域。
在图11中,第一目标区域A1包括第五脚杯Aj5的至少部分区域和第七脚杯Aj7的至少部分区域;第二目标区域B2包括第六立柱Bj6的至少部分区域和第八立柱Bj8的至少部分区域。
在一个示例中,第一目标区域包括第一堆叠对象的至少一条边框线;第二目标图像区域包括第二堆叠对象的至少一条边框线。
例如,第一堆叠对象为第一料笼,第二堆叠对象为第二料笼;第一目标区域,包括第一料笼的第一边框线和第三边框线,第一边框线与第三边框线相交;第二目标区域,包括第二料笼的第二边框线和第四边框线,第二边框线与第四边框线相交。
例如,第一目标区域,还包括第一料笼的第五边框线和第七边框线,第五边框线与第七边框线相交;第二目标区域,还包括第二料笼的第六边框线和第八边框线,第六边框线与第八边框线相交。下面结合图12对图2中的第一目标区域和第二目标区域分别进行详细描述。
在图12中,第一目标区域A1包括第一边框线a11、第三边框线a13、第五边框线a15和第七边框线a17;其中,第一边框线a11和第三边框线a13相交,第三边框线a13与第五边框线a15相交,第五边框线a15和第七边框线a17相交,第七边框线a17和第一边框线a11相交。
第二目标区域B2包括第二边框线b22、第四边框线b24、第六边框线b26和第八边框线b28;其中,第二边框线b22和第四边框线b24相交,第四边框线b24和第六边框线b26相交,第六边框线b26和第八边框线b28相交,第八边框线b28和第二边框线b22相交。
需要说明的是,在图12中,本申请实施例中的第一目标区域A1位于第一堆叠对象A的底部,第二目标区域B2位于第二堆叠对象B的顶部。
步骤703:控制器基于第一目标图像数据,从第一堆叠对象的点云中提取与第一目标区域对应的第一目标点云数据;控制器基于第二目标图像数据,从第二堆叠对象的点云中提取与第二目标区域对应的第二目标点云数据。
其中,第一目标点云数据:是指传感器获取的第一堆叠对象的第一目标区域的点云数据。第一目标点云数据可用于计算第一堆叠对象的位姿、堆叠状态等。
第二目标点云数据:是指传感器获取的第二堆叠对象的第二目标区域的点云数据。第二目标点云数据可用于计算第二堆叠对象的位姿、堆叠状态等。
本申请实施例中控制器预先建立点云与图像的像素的对应关系,并基于该对应关系以及第一堆叠对象的第一目标区域和第二堆叠对象的第二目标区域,从第一堆叠对象的点云中提取与第一堆叠对象的第一目标区域对应的第一目标点云数据,以及从第二堆叠对象的点云中提取与第二堆叠对象的第二目标区域对应的第二目标点云数据。
本申请实施例在控制器基于第一目标图像数据,从第一堆叠对象的点云中提取与第一目标区域对应的第一目标点云数据;控制器基于第二目标图像数据,从第二堆叠对象的点云中提取与第二目标区域对应的第二目标点云数据之前,该方法还包括:
在控制器标定完相机和雷达后,基于第一目标图像数据,从第一堆叠对象的目标点云中提取与第一目标区域对应的第一目标点云数据,包括:
根据联合标定参数和第一目标图像数据,从第一堆叠对象的目标点云中提取与第一目标区域对应的第一目标点云数据;
基于第二目标图像数据,从第二堆叠对象的目标点云中提取与第二目标区域对应的第二目标点云数据,包括:
根据联合标定参数和第二目标图像数据,从第二堆叠对象的目标点云中提取与第二目标区域对应的第二目标点云数据。
在一个示例中,控制器预先对采集图像的相机和采集点云的雷达进行联合标定,得到联合标定参数。
在一个示例中,联合标定参数包括以下至少一项:相机的内参和外参,雷达到相机的外参,雷达到搬运设备的外参。
其中,相机的内参(Intrinsic Parameters)是指描述相机内部属性的参数,这些参数通常在相机标定时确定,并且在相机的使用过程中通常是保持不变的。内参主要包括以下几个方面:焦距(Focal Length)、主点(Optical Center)、畸变系数(DistortionCoefficients)和内参矩阵(Intrinsic Matrix)等。
相机的外参是描述相机在世界坐标系中的位置和姿态的参数。外参主要包括以下几个方面:旋转矩阵(Rotation Matrix)和平移向量(Translation Vector)等。
与相机内参不同,相机外参会随着相机在世界坐标系中的位置或拍摄时刻的变化而改变。例如在立体视觉中,如果有两个相机,当相机移动时,它们之间的相对位置和方向发生变化,这就会导致外参的变化。
雷达到相机的外参指的是确定雷达与相机之间的旋转和平移关系,使得它们的坐标系可以对齐。
雷达到搬运设备的外参,是指确定雷达与搬运设备(其车身作为参考坐标系,如上述的三维坐标系)之间的相对位置和方向关系。这种标定是确保雷达数据能够准确转换到三维坐标系中,从而实现精准的环境感知、定位导航和避障功能的关键步骤。
在联合标定参数包括相机的内参和外参,雷达到相机的外参和雷达到搬运设备的外参时,点云与像素的对应关系可通过如下公式表示:
Pimg=Timg·Tcamera-img·Tlidar-camera·T搬运设备-lidar·Pn
其中,搬运设备所在的坐标系下点云中点的坐标为Pn,图像(图像的格式可为.img)中像素的坐标为Pimg,相机内参为Timg,相机外参为Tcamera-img,雷达到相机的外参为Tlidar-camera,搬运设备到激光雷达的外参为T搬运设备-lidar。
步骤704:控制器根据第一目标点云数据确定第一堆叠对象的位姿,以及根据第二目标点云数据确定第二堆叠对象的位姿。
本申请实施例控制器从与第一堆叠对象的第一目标区域对应的第一目标点云数据中提取第一边框点云;以及,从与第二堆叠对象的第二目标区域对应的第二目标点云数据中提取第二边框点云;根据最小二乘法对第一边框点云进行拟合得到与第一堆叠对象对应的边框线方程,以及根据最小二乘法对第二边框点云进行拟合得到与第二堆叠对象对应的边框线方程;根据与第一堆叠对象对应的边框线方程确定第一堆叠对象的位姿,以及根据与第二堆叠对象对应的边框线方程确定第二堆叠对象的位姿。
在一个示例中,控制器根据RANSAC(Random Sample Consensus,随机样本一致性算法)或PROSAC(Progressive Sample Consensus,渐进一致采样)从与第一堆叠对象的第一目标区域对应的第一目标点云数据中提取第一边框点云;以及,根据RANSAC从与第二堆叠对象的第二目标区域对应的第二目标点云数据中提取第二边框点云;根据最小二乘法对第一边框点云进行拟合得到与第一堆叠对象对应的边框线方程,以及根据最小二乘法对第二边框点云进行拟合得到与第二堆叠对象对应的边框线方程;根据与第一堆叠对象对应的边框线方程确定第一堆叠对象的位姿,以及根据与第二堆叠对象对应的边框线方程确定第二堆叠对象的位姿。
在这里,根据RANSAC从与第一堆叠对象的第一目标区域对应的第一目标点云数据中提取第一边框点云可包括:
1)从与第一堆叠对象的第一目标区域对应的第一目标点云数据中随机选择一组点作为初始样本;2)使用初始样本估计模型(即提取边框点云的模型)的参数,该参数为第一堆叠对象的边框的顶点、边长、角度等参数;3)根据模型参数,将与第一堆叠对象的第一目标区域对应的第一目标点云数据中的其他点分类为内点(符合模型参数的点)和外点(不符合模型参数的点);4)重复上述随机采样、模型估计和内点外点分类的步骤,每次迭代都记录当前模型的内点数量;5)在所有迭代中,选择内点数量最多的模型作为最终的估计结果(即,第一堆叠对象的边框点云)。
需要说明的是,根据RANSAC或PROSAC从第二堆叠对象的第二目标区域对应的第二目标点云数据中提取第二边框点云的过程与根据RANSAC或PROSAC从第一堆叠对象的第一目标区域对应的第一目标点云数据中提取第一边框点云的过程,在此不再赘述。
接下来,根据最小二乘法对第一边框点云进行拟合,得到与第一堆叠对象对应的边框线方程,以及根据最小二乘法对第二边框点云进行拟合,得到与第二堆叠对象对应的边框线方程,可包括:
1)可针对第一堆叠对象和第二堆叠对象的外形选择合适的拟合模型,对于第一堆叠对象和第二堆叠对象的边框线方程,可采用直线拟合模型;2)分别确定第一堆叠对象的第一拟合模型的参数和第二堆叠对象对应的第二拟合模型的参数,如斜率和截距等参数;3)根据第一拟合模型和第一边框点云构建第一目标函数(即误差函数);以及根据第二拟合模型的参数和第二边框点云构建第二目标函数;其中,第一堆叠对象对应的目标函数表示对应的拟合模型与第一边框点云之间的偏差或距离,第二堆叠对象对应的目标函数表示对应的拟合模型与第二边框点云之间的偏差或距离;4)通过最小二乘法,分别求解使第一目标函数和第二目标函数达到最小值时的模型参数;其中,最小二乘法通过最小化所有第一边框线的点云到第一拟合模型的距离的平方和来找到最佳拟合,或通过最小化所有第二边框线的点云到第二拟合模型的距离的平方和来找到最佳拟合;5)求解第一目标函数的最小值,得到第一堆叠对象对应的边框线方程;以及求解第二目标函数的最小值,得到第二堆叠对象对应的边框线方程。
例如,本申请实施例中各边框点云的分布直接反映了堆叠对象的外形。例如,一个立方体的堆叠对象会产生一个具有六个矩形面的点云。
按照第一堆叠对象的外形(如矩形),第一边框点云、第三边框点云、第五边框点云和第七边框点云分布在第一堆叠对象对应的矩形面上;按照第二堆叠对象的外形,第二边框点云、第四边框点云、第六边框点云和第八边框点云分布在第二堆叠对象对应的矩形面上。
采用最小二乘法进行拟合对矩形面上分布的第一边框点云,得到第一边框线方程;采用最小二乘法进行拟合对矩形面上分布的第三边框点云,得到第三边框线方程;采用最小二乘法进行拟合对矩形面上分布的第五边框点云,得到第五边框线方程;采用最小二乘法进行拟合对矩形面上分布的第七边框点云,得到第七边框线方程。
采用最小二乘法进行拟合对矩形面上分布的第二边框点云,得到第二边框线方程;采用最小二乘法进行拟合对矩形面上分布的第四边框点云,得到第四边框线方程;采用最小二乘法进行拟合对矩形面上分布的第六边框点云,得到第六边框线方程;采用最小二乘法进行拟合对矩形面上分布的第八边框点云,得到第八边框线方程。
下面以第三边框点云为示例,采用最小二乘法进行拟合对矩形面上分布的第三边框点云,得到第三边框线方程。
例如,在矩形面上找到边框线方程y=mx+b,其中,m是斜率,b是截距,使得边框线方程尽可能接近矩形面上分布的第三边框点云。最小二乘法的目标是找到m和b的值,使得所有点(即,矩形面上分布的第三边框点云中的所有点)到边框线方程的垂直距离(即误差)的平方和最小;在所有点到边框线方程的垂直距离(即误差)的平方和最小,得到第三边框线方程。
需要说明的是,对于其他边框点云则可采用与第三边框点云相同的方式来确定其边沿线,在此不再赘述。
在一些实施例中,针对根据与第一堆叠对象对应的边框线方程确定第一堆叠对象的位姿,以及根据与第二堆叠对象对应的边框线方程确定第二堆叠对象的位姿,可以采用如下步骤:
以第一堆叠对象为例,
通过直线拟合算法得到的与第一堆叠对象对应的边框线方程可以包括四个边框线方程,分别为与第一边框线a11对应的第一边框线方程、与第三边框线a13对应的第三边框线方程、与第五边框线a15对应的第五边框线方程、与第七边框线a17对应的第七边框线方程。
根据四个边框线方程对应的直线之间的任一交点的坐标确定第一堆叠对象的位置信息,例如:根据第一边框线方程对应的第一边框线a11与第三边框线方程对应的第三边框线a13的交点坐标确定第一堆叠对象的位置信息;
或者,根据互相平行的两条直线得到中线方程,再根据中线方程对应的直线与其它边框线方程对应的直线的交点的坐标确定第一堆叠对象的位置信息,例如:根据第一边框线方程对应的第一边框线a11与第五边框线方程对应的第五边框线a15得到第一中线,再根据第一中线与第三边框线方程对应的第三边框线a13的交点的坐标确定第一堆叠对象的位置信息。
然后根据第一边框线方程对应的第一边框线a11、第三边框线方程对应的第三边框线a13、第五边框线方程对应的第五边框线a15、第七边框线方程对应的第七边框线a17的任意一条直线的角度确定第一堆叠对象的角度信息;
然后根据该位置信息和角度信息确定第一堆叠对象的位姿。
可以采用类似的步骤利用第二堆叠对象对应的边框线方程确定第二堆叠对象的位姿。
步骤705:根据第一堆叠对象的位姿和第二堆叠对象的位姿,计算第一堆叠对象相对第二堆叠对象的相对位姿。
其中,第一堆叠对象和第二堆叠对象的相对位姿是指第一堆叠对象与第二堆叠对象的位姿差值。具体来说,以本实施例的坐标系为例,它包括两个堆叠对象在X方向、Y方向上的坐标差值(Δx,Δy)以及在Z轴的旋转角度差值(Δθ)。
作为另一种可实现的方式,当第一传感器为3D激光雷达时,获取的第一堆叠对象和第二堆叠对象的目标数据包括第一堆叠对象的点云和第二堆叠对象的点云。
如图13所示,计算第一堆叠对象相对第二堆叠对象的相对位姿,可以按照如下方式实现:
步骤131:控制器获取第一堆叠对象和第二堆叠对象的目标点云。
搬运设备搬运第一堆叠对象运动至堆叠作业位置,搬运设备抬升第一堆叠对象,并通过其搭载的第一传感器扫描到第一堆叠对象和第二堆叠对象时,由第一传感器获取第一堆叠对象和第二堆叠对象的目标点云。
考虑到同时通过第一传感器扫描到第一堆叠对象和第二堆叠对象时采集的目标点云中存在畸变,本申请实施例中第一传感器获取第一堆叠对象和第二堆叠对象的目标点云还可以包括:搬运设备搭载的第一传感器采集第一堆叠对象的原始点云;将第一堆叠对象的原始点云从第一传感器所在的坐标系转换至搬运设备所在的坐标系,并根据搬运设备采集的里程计信息,对第一堆叠对象的原始点云进行去畸变处理,得到目标点云;以及
搬运设备搭载的第一传感器采集第二堆叠对象的原始点云;将第二堆叠对象的原始点云从第一传感器所在的坐标系转换至搬运设备所在的坐标系,并根据搬运设备采集的里程计信息,对第二堆叠对象的原始点云进行去畸变处理,得到目标点云。
第一堆叠对象和第二堆叠对象原始点云中存在畸变是指第一传感器运动或外部因素导致的形状失真问题,里程计信息提供了传感器在采集原始点云时的运动信息,这些信息通常包括位置、速度和加速度等;可根据里程计信息确定补偿变换矩阵;然后将补偿变换矩阵应用到原始点云中的每个点,以得到去畸变后的点云(即,第一堆叠对象的目标点云和第二堆叠对象的目标点云)。
本申请将第一传感器采集的原始点云从传感器所在的坐标系转换至搬运设备所在的坐标系,并根据里程计信息对原始点云进行去畸变处理,能够得到无畸变的目标点云。
步骤132:控制器根据第一堆叠对象的目标点云,确定对应第一堆叠对象的第一伪图;控制器根据第二堆叠对象的目标点云,确定对应第二堆叠对象的第二伪图。
其中,伪图指在计算机图像处理或计算机视觉领域中,由算法生成或通过某些特殊技术处理后的图像,它们可能不代表实际的图像数据,或与真实图像存在某种虚拟化或近似的关系。在某些情况下,伪图也可以指模拟图像或用来表示某种非真实世界场景的图像。
控制器将第一堆叠对象的目标点云和第二堆叠对象的目标点云中的各点,分别确定其在同一水平面(如XOY平面)上的投影点,这通常涉及将点云坐标从原始坐标系转换到XOY平面所在的坐标系,并保留二维位置信息(如X和Y坐标)。可选地,控制器将第一堆叠对象的目标点云作俯视投影在XOY平面上生成第一投影图(如图14中(a)的上图或下图所示),将第一投影图作为第一堆叠对象的第一伪图,以及将第二堆叠对象的目标点云作俯视投影在XOY平面上生成第二投影图(如图15中(a)的上图或下图所示),将第二投影图作为第二堆叠对象的第二伪图。其中,XOY平面中的“X”对应上述三维坐标系中的X轴;“O”对应上述三维坐标系中的原点O;“Y”对应上述三维坐标系中的Y轴。
如图14,在一些实施例中,控制器将第一堆叠对象的目标点云采用至少两个投影分辨率投影于XOY平面上,得到至少两个投影图(如图14中(a)),将第一堆叠对象的目标点云对应的至少两个投影分辨率的投影图缩放到统一大小并进行叠加,得到叠加后的投影图(如图14中(b)),将叠加后的投影图作为第一堆叠对象的第一伪图;采用同样的方式,控制器将第二堆叠对象的目标点云采用至少两个投影分辨率投影于XOY平面上,得到至少两个投影图(如图15中(a)),将第二堆叠对象的目标点云对应的至少两个投影分辨率的投影图缩放到统一大小并进行叠加,得到叠加后的投影图(如图15中(b)),将叠加后的投影图作为第二堆叠对象的第二伪图。
在一些实施例中,控制器将第一堆叠对象的目标点云采用至少两个投影分辨率投影于XOY平面上,得到至少两个投影图(如图14中(a)),将第一堆叠对象的目标点云对应的至少两个投影分辨率的投影图缩放到统一大小并进行叠加,得到叠加后的投影图(如图14中(b)),再将叠加后的投影图转换为第一灰度图(如图14中(c)),将第一灰度图作为第一堆叠对象的第一伪图;采用同样的方式,控制器将第二堆叠对象的目标点云采用至少两个投影分辨率投影于XOY平面上,得到至少两个投影图(如图15中(a)),将第二堆叠对象的目标点云对应的至少两个投影分辨率的投影图缩放到统一大小并进行叠加,得到叠加后的投影图(如图15中(b)),再将叠加后的投影图转换为第二灰度图(如图15中(c)),将第二灰度图作为第二堆叠对象的第二伪图。其中缩放到统一大小的目的是在叠加之前确保至少两个投影分辨率的投影图已经正确对齐,避免叠加后出现错位或重影现象。
其中,统一至少两个投影分辨率的伪图的大小可以为将各投影分辨率的伪图的大小缩放至指定大小。
可选地,统一至少两个投影分辨率的伪图的大小还可以为先确定至少两个投影分辨率的伪图中最大的伪图,将其他投影分辨率的伪图的大小统一为最大的伪图的大小。
需要说明的是,上述灰度图(即,第一灰度图和第二灰度图)中的像素值通常用于表示图像的明暗程度,即灰度值。灰度值越大,表示像素点越亮;反之,灰度值越小,表示像素点越暗。当我们将点云投影到像素内时,可以根据点云中各点的属性来调整像素的灰度值。
在控制器将第一堆叠对象的目标点云和第二堆叠对象的目标点云分别投影于XOY平面并转换为灰度图的过程中,可根据投影到该像素内的点云中各点的属性(如点的数量、点的强度、点与点的距离、点的角度和点云中点之间的高程差中的至少一项)来确定对应灰度图中的灰度值。
在控制器确定灰度值之后,根据各投影点的二维位置信息(X和Y坐标),在灰度图上找到对应的像素位置,并将确定得到的灰度值作为该像素位置处的像素值,重复上述过程,直到所有投影点都被处理完毕,从而生成完整的灰度图。
可选地,第一堆叠对象的目标点云采用的投影分辨率与第二堆叠对象的目标点云采用的投影分辨率可以相同,如第一堆叠对象的目标点云和第二堆叠对象的目标点云均采用5mm(毫米)/pixel(像素)、1cm(厘米)/pixel这两个投影分辨率。
例如,采用5mm/pixel、1cm/pixel将第一堆叠对象的目标点云投影于XOY平面上,生成对应第一堆叠对象的第一灰度图可包括以下步骤:
第一步:控制器将第一堆叠对象的目标点云以5mm/pixel、1cm/pixel投影于XOY平面上,生成与5mm/pixel对应的伪图与1cm/pixel对应的伪图(分别对应图14中(a)中的上图和下图)。其中,投影分辨率精度越高图像越清晰。另外,图14中(a)的上图和下图中的线条通常反映了第一堆叠对象在某一视角下(即,俯视图对应的视角下)的轮廓线或特征线。
第二步:控制器将与5mm/pixel对应的投影图与1cm/pixel对应的投影图缩放到统一大小并进行叠加,得到叠加后的投影图(如图14中(b)所示),再将叠加后的投影图转换为灰度图,得到对应第一堆叠对象的第一灰度图(如图14中(c)所示)。
第二灰度图的生成方式与第一灰度图类似。
需要说明的是,图14中的“O”对应上述三维坐标系中的原点O,“X”对应上述三维坐标系中的X轴,“Y”对应上述三维坐标系中的Y轴。
需要说明的是,在一些实施例中,每个投影分辨率的投影图都可分为3通道,其中第1通道采用投影到该像素内的点云中点的数量,点云的数量越多,像素值越高;第2通道采用点云与目标(即,堆叠对象的理论位置)的距离相对位姿数据生成,相对位姿数据越大,像素值越低;第3通道采用点云中点之间的高程差,在一定高度范围内,高程差越大,像素值越高。
本申请基于投影到该像素内的点云中点的数量、点的强度、点与点的距离、点的角度和点云中点之间的高程差中的至少一项,确定灰度图中的像素值,以使得灰度图中的像素值体现点云的多维属性,以提高从灰度图中确定边界线的准确度。
步骤133:控制器根据第一伪图和第二伪图,确定第一堆叠对象与第二堆叠对象之间的相对位姿数据。
根据第一堆叠对象的目标点云投影在水平面生成的第一伪图中提取边界、目标点等关键结构,确定第一堆叠对象的位姿;以及根据第二堆叠对象的目标点云投影在水平面生成的第二伪图中提取边界、目标点等关键特征,确定第二堆叠对象的位姿;根据第一堆叠对象的位姿和第二堆叠对象的位姿确定相对位姿数据。
本申请实施例中,控制器根据第一伪图和第二伪图,确定第一堆叠对象与第二堆叠对象之间的相对位姿数据,包括:
控制器确定第一伪图的边界线;控制器根据第一伪图的边界线确定第一伪图的目标点;控制器确定第二伪图的边界线;控制器根据第二伪图的边界线确定第二伪图的目标点;控制器根据第一伪图的边界线和第一伪图的目标点,以及第二伪图的边界线和第二伪图的目标点,确定第一堆叠对象与第二堆叠对象之间的相对位姿数据。
本申请实施例中的第一伪图的边界线可以为:第一堆叠对象的目标点云作俯视投影在XOY平面上生成第一投影图的边界线,如图14中(a)的上图或下图中的边界线(与矩形框的各条边对应);或,将第一堆叠对象的目标点云对应的至少两个投影分辨率的投影图缩放到统一大小并进行叠加后,得到的叠加投影图的边界线,如图14中(b)所示的图中的边界线(与矩形框的各条边线对应);或,第一灰度图的边界线,图14中(c)所示的图中的边界线(与矩形框的各条边对应)。
本申请实施例中的第二伪图的边界线可以为:将第二堆叠对象的目标点云作俯视投影在XOY平面上生成的第二投影图的边界线,图15中(a)的上图或下图中的边界线(与矩形框的各条边线对应);或,将第二堆叠对象的目标点云对应的至少两个投影分辨率的投影图缩放到统一大小并进行叠加后,得到的叠加投影图的边界线,如图15中(b)所示的图中的边界线(与矩形框的各条边线对应);或,第二灰度图的边界线,如图15中(c)所示的图中的边界线(与矩形框的各条边线对应)。
本申请实施例中通过概率霍夫变换直线检测算法从第一伪图和第二伪图中提取直线,进而确定第一伪图和第二伪图的边界线,能够在保证检测准确率的基础上,提高检测速度,降低计算资源的消耗。
可选地,第一伪图的边界线包括:第一伪图的第一边界线、第一伪图的第三边界线、第一伪图的第五边界线和第一伪图的第七边界线;
第二伪图的边界线包括:第二伪图的第二边界线、第二伪图的第四边界线、第二伪图的第六边界线和第二伪图的第八边界线。
本申请实施例中,控制器根据第一伪图的边界线确定第一伪图的目标点,包括:
控制器根据第一伪图的第三边界线和第一伪图的第五边界线,确定第一伪图的中线;将第一伪图的中线与第一伪图的第一边界线的交点,作为第一伪图的目标点;
控制器根据第二伪图的边界线确定第二伪图的目标点,包括:控制器根据第二伪图的第四边界线和第二伪图的第六边界线,确定第二伪图的中线;将第二伪图的中线与第二伪图的第二边界线的交点,作为第二伪图的目标点。
本申请实施例中可采用形状规则或形状不规则的堆叠对象来完成堆叠对象的堆叠。下面以形状规则的堆叠对象为例。
接上文,形状规则的堆叠对象的各边界线在伪图中存在平行或垂直的关系;基于此,本申请实施例中的第一伪图的第三边界线和第一伪图的第五边界线相互平行;第二伪图的第二边界线和第二伪图的第四边界线相互平行;第一伪图的第三边界线与第一伪图的第一边界线垂直,第一伪图的第五边界线与第一伪图的第一边界线垂直;第二伪图的第四边界线与第二伪图的第二边界线垂直,第二伪图的第六边界线与第二伪图的第二边界线垂直。
需要说明的是,第一伪图的目标点为第一伪图的第一边界线的中点;第二伪图的目标点为第二伪图的第二边界线的中点。
下面以第一伪图为第一灰度图,第二伪图为第二灰度图为示例进行详细描述。
在图16中,根据第一灰度图和第二灰度图,确定第一堆叠对象与第二堆叠对象之间的相对位姿数据,可包括以下步骤:
步骤161:控制器确定第一灰度图的边界线;
步骤162:控制器根据第一灰度图的边界线确定第一灰度图的目标点;
步骤163:控制器确定第二灰度图的边界线;
步骤164:控制器根据第二灰度图的边界线确定第二灰度图的目标点;
步骤165:控制器根据第一灰度图的边界线和第一灰度图的目标点,以及第二灰度图的边界线和第二灰度图的目标点,确定第一堆叠对象与第二堆叠对象之间的相对位姿数据。
在一个示例中,控制器通过概率霍夫变换直线检测算法提取第一灰度图的边界线,其中,第一灰度图的边界线至少包括第一灰度图的第一边界线、第一灰度图的第三边界线和第一灰度图的第五边界线;第二灰度图的边界线至少包括第二灰度图的第二边界线、第二灰度图的第四边界线和第二灰度图的第六边界线。
如图17,在一些实施例中,第一灰度图的边界线包括第一灰度图的第一边界线TC1、第一灰度图的第三边界线TC3、第一灰度图的第五边界线TC5和第一灰度图的第七边界线TC7。
在一些实施例中,第一灰度图的第三边界线TC3与第一灰度图的第五边界线TC5平行,第一灰度图的第一边界线TC1与第一灰度图的第七边界线TC7平行。
如图18,在一些实施例中,第二灰度图的边界线包括第二灰度图的第二边界线TB2、第二灰度图的第四边界线TB4、第二灰度图的第六边界线TB6和第二灰度图的第八边界线TB8。
在一些实施例中,第二灰度图的第四边界线TB4与第二灰度图的第六边界线TB6相互平行,第二灰度图的第二边界线TB2与第二灰度图的第八边界线TB8平行。
在一个示例中,控制器根据第一灰度图的边界线确定第一灰度图的目标点,包括:
在图17中,控制器根据第一灰度图的第三边界线TC3和第一灰度图的第五边界线TC5,确定第一灰度图的中线L1(黄色的虚线);将第一灰度图的中线L1与第一灰度图的第一边界线TC1的交点,作为第一灰度图的目标点Q1。
控制器根据第二灰度图的边界线确定第二灰度图的目标点,并将第二灰度图的目标点,包括:
在图18中,控制器根据第二灰度图的第四边界线TB4和第二灰度图的第六边界线TB6,确定第二灰度图的中线L2(黄色的虚线);将第二灰度图的中线L2与第二灰度图的第二边界线TB2的交点,作为第二灰度图的目标点Q2。
本申请实施例中可采用形状规则或形状不规则的堆叠对象来完成堆叠对象的堆叠。下面以形状规则的堆叠对象为例。
接上文,形状规则的堆叠对象的各边界线在灰度图中存在平行或垂直的关系;基于此,本申请实施例中的第一灰度图的第三边界线TC3和第一灰度图的第五边界线TC5相互平行;第二灰度图的第二边界线TB2和第二灰度图的第四边界线TB4相互平行;第一灰度图的第三边界线TC3与第一灰度图的第一边界线TC1垂直,第一灰度图的第五边界线TC5与第一灰度图的第一边界线TC1垂直;第二灰度图的第四边界线TB4与第二灰度图的第二边界线TB2垂直,第二灰度图的第六边界线TB6与第二灰度图的第二边界线TB2垂直。
在一个示例中,第一灰度图的目标点可为第一灰度图上的任一点,如第一灰度图的第一边界线TC1上的中点(如图17中的Q1)。第二灰度图的目标点可为第二灰度图上的任一点,如第二灰度图的第二边界线TB2的中点(如图18中的Q2)。本申请的相应附图中以中点为示例。
需要说明的是,步骤161~步骤162与步骤163~步骤1644并行执行;或先执行步骤163~步骤164,再执行步骤161~步骤162;或,先执行步骤161~步骤162,再执行步骤163~步骤164。
在一些实施例中,控制器根据第一灰度图的目标点Q1的位置信息和第一灰度图的中线L1的角度信息确定第一堆叠对象的位姿数据,控制器根据第二灰度图的目标点Q2的位置信息和第二灰度图的中线L2的角度信息确定第二堆叠对象的位姿数据,再对第一堆叠对象的位姿数据和第二堆叠对象的位姿数据做差值计算得到第一堆叠对象和第二堆叠对象的相对位姿数据。
在一些实施例中,公开了一种确定第一堆叠对象与第二堆叠对象之间的相对位姿数据的方法,具体步骤为:
控制器确定第一伪图的边界线;控制器从第一堆叠对象的目标点云中确定与第一伪图的边界线对应的第一堆叠对象的边界点云;控制器根据第一堆叠对象的边界点云,确定第一堆叠对象的第一目标点;控制器确定第二伪图的边界线;控制器从第二堆叠对象的目标点云中确定与第二伪图的边界线对应的第二堆叠对象的边界点云;控制器根据第二堆叠对象的边界点云,确定第二堆叠对象的第二目标点;控制器根据第一堆叠对象的边界点云和第二堆叠对象的边界点云确定第一堆叠对象与第二堆叠对象之间的相对角度差值;控制器根据第一目标点与第二目标点之间的相对位置差值以及相对角度差值确定第一堆叠对象与第二堆叠对象之间的相对位姿数据。
下面以第一伪图为第一灰度图,第二伪图为第二灰度图为例进行具体描述,如图19,确定第一堆叠对象与第二堆叠对象之间的相对位姿数据,可包括以下步骤:
步骤191:控制器确定第一灰度图的边界线;
步骤192:控制器从第一堆叠对象的目标点云中确定与第一灰度图的边界线对应的第一堆叠对象的边界点云;
步骤193:控制器根据第一堆叠对象的边界点云,确定第一堆叠对象的第一目标点;
步骤194:控制器确定第二灰度图的边界线;
步骤195:控制器从第二堆叠对象的目标点云中确定与第二灰度图的边界线对应的第二堆叠对象的边界点云;
步骤196:控制器根据第二堆叠对象的边界点云,确定第二堆叠对象的第二目标点;
步骤197:控制器根据第一堆叠对象的边界点云和第二堆叠对象的边界点云确定第一堆叠对象与第二堆叠对象之间的相对角度差值;
步骤198:控制器根据第一目标点与第二目标点之间的相对位置差值以及相对角度差值确定第一堆叠对象与第二堆叠对象之间的相对位姿数据。
需要说明的是,步骤191~步骤193与步骤194~步骤196并行执行;或先执行步骤194~步骤196,再执行步骤191~步骤193;或,先执行步骤191~步骤193,再执行步骤194~步骤196。
对于上述步骤192:控制器可根据第一投影关系,从第一堆叠对象的目标点云中确定与第一灰度图的边界线对应的第一堆叠对象的边界点云。
在这里,第一投影关系是指第一堆叠对象的目标点云与第一灰度图之间的关系。
对于上述步骤195:控制器可根据第二投影关系,从第二堆叠对象的目标点云中确定与第二灰度图的边界线对应的第二堆叠对象的边界点云。
在这里,第二投影关系是指第二堆叠对象的目标点云与第二灰度图之间的关系。
下面以第一灰度图的第一边界线TC1、第一灰度图的第三边界线TC3和第一灰度图的第五边界线TC5为示例,基于第一投影关系,以对应得到第一边界点云S1、第三边界点云S3和第五边界点云S5进行描述。
第一灰度图的第一边界线TC1(如图17中的TC1)、第一灰度图的第三边界线TC3(如图17中的TC3)、第一灰度图的第五边界线TC5(如图17中的TC5),分别基于上述第一投影关系,可确定与第一灰度图的第一边界线TC1对应的第一边界点云S1(如图20中的S1),与第一灰度图的第三边界线TC3对应的第三边界点云S3(如图20中的S3),以及与第一灰度图的第五边界线TC5对应的第五边界点云S5(如图20中的S5)。
下面以第二灰度图的第二边界线TB2、第二灰度图的第四边界线TB4和第二灰度图的第六边界线TB6为示例,基于第二投影关系,以对应得到第二边界点云T2、第四边界点云T4和第六边界点云T6进行描述。
第二灰度图的第二边界线TB2(如图18中的TB2)、第二灰度图的第四边界线TB4(如图18中的TB4)、第二灰度图的第六边界线TB6(如图18中的TB6),分别基于上述第二投影关系,可确定与第二灰度图的第二边界线TB2对应的第二边界点云T2(如图20中的T2),与第二灰度图的第四边界线TB4对应的第四边界点云T4(如图20中的T4),以及与第二灰度图的第六边界线TB6对应的第六边界点云T6(如图20中的T6)。
本申请实施例中各边界点云的分布直接反映了堆叠对象的几何形状。例如,一个立方体的堆叠对象会产生一个具有六个矩形面的点云。
在图20中,按照第一堆叠对象的几何形状(如矩形),第一边界点云S1、第三边界点云S3和第五边界点云S5分布在第一堆叠对象对应的矩形面上;按照第二堆叠对象的几何形状,第二边界点云T2、第四边界点云T4和第六边界点云T6分布在第二堆叠对象对应的矩形面上。
在图20中,采用最小二乘法进行拟合对矩形面上分布的第一边界点云S1,得到第一边沿线W1;采用最小二乘法进行拟合对矩形面上分布的第三边界点云S3,得到第三边沿线W3;采用最小二乘法进行拟合对矩形面上分布的第五边界点云S5,得到第五边沿线W5。
在图20中,采用最小二乘法进行拟合对矩形面上分布的第二边界点云T2,得到第二边沿线V2;采用最小二乘法进行拟合对矩形面上分布的第四边界点云T4,得到第四边沿线V4;采用最小二乘法进行拟合对矩形面上分布的第六边界点云T6,得到第六边沿线V6。
下面以第三边界点云S3为示例,采用最小二乘法进行拟合对矩形面上分布的第三边界点云S3,得到第三边沿线W3(在图20中是红色的线)。
例如,在矩形面上找到一条直线y=mx+b,其中,m是斜率,b是截距,使得这条直线尽可能接近矩形面上分布的第三边界点云S3。最小二乘法的目标是找到m和b的值,使得所有点(即,矩形面上分布的第三边界点云S3中的所有点)到直线的垂直距离(即误差)的平方和最小;在所有点到直线的垂直距离(即误差)的平方和最小,将确定的直线作为第三边沿线W3。
需要说明的是,对于其他边界点云则可采用与第三边界点云相同的方式来确定其边沿线,在此不再赘述。
本申请实施例中的第一目标点可为第一堆叠对象上的任一点,如第一堆叠对象的第一边沿线W1上的中点(如图20中的P1)。第二目标点可为第二堆叠对象上的任一点,如第二堆叠对象的第二边沿线V2的中点(如图20中的P2)。本申请的相应附图中以中点为示例。
在一个示例中,本申请实施例可采用如下方式确定第一目标点(如图20中的第一目标点P1),以及第二目标点(如图20中的第二目标点P2),具体地:
在图20中,控制器根据第一边界点云S1确定第一堆叠对象的第一边沿线W1;控制器根据第三边界点云S3确定第一堆叠对象的第三边沿线W3;控制器根据第五边界点云S5确定第一堆叠对象的第五边沿线W5;控制器根据第三边沿线W3和第五边沿线W5确定第一中线M1;控制器根据第一中线M1与第一边沿线W1确定第一目标点P1。
在图20中,控制器根据第二边界点云T2确定第二堆叠对象的第二边沿线V2;控制器根据第四边界点云T4确定第二堆叠对象的第四边沿线V4;控制器根据第六边界点云T6确定第二堆叠对象的第六边沿线V6;控制器根据第四边沿线V4和第六边沿线V6确定第二中线M2;控制器根据第二中线M2与第二边沿线V2确定第二目标点。
本实施例中所涉及的相对位姿数据包括相对位置差值和相对角度差值。该相对位置差值可根据第一目标点P1和第二目标点P2之间的位置差所确定。
下面详细描述确定相对角度差值的几种方式:
第一种方式:
控制器根据第一边沿线W1和第二边沿线V2之间的第一夹角,并根据第一夹角确定第一堆叠对象与第二堆叠对象之间的相对角度差值。
在图20中,第一夹角为三维坐标系中XOY平面上的角度,该第一夹角为第一边沿线W1和第二边沿线V2分别投影在XOY平面上形成的角度。
可选地,第一夹角还可以为:第三边沿线W3与第四边沿线V4之间的夹角;或,第五边沿线W5与第六边沿线V6之间的夹角;或,第七边沿线与第八边沿线之间的夹角。
第二种方式:
控制器计算第一中线M1和第二中线M2之间的第二夹角,并根据第二夹角确定第一堆叠对象与第二堆叠对象之间的相对角度差值。
在图20中,第二夹角为三维坐标系中XOY平面上的角度,该第二夹角为第一中线M1和第二中线M2分别投影在XOY平面上形成的角度。
第三种方式:
控制器计算第一中线M1和第二中线M2之间的第二夹角;
控制器计算第一边沿线W1和第二边沿线V2之间的第一夹角;
控制器根据第一夹角和第二夹角加权得到第一堆叠对象与第二堆叠对象之间的相对角度差值。
在图20中,根据第一中线M1与第二中线M2之间的第二夹角,以及第一边沿线W1与第二边沿线V2之间的第一夹角的加权得到相对角度差值;其中加权的比例分配可以根据实际情况进行调整,例如当第一边沿线W1和第二边沿线V2所对应的边界点云清晰度更高时,可提高第一夹角的加权比重。在图20中,角度差可通过上方箭头根部即第一目标点P1处箭头所指的方向与下方箭头根部即第二目标点P2处箭头所指的方向之间的差值得到。另外,图21中(a)~(c)采用与图20中不同的视角来表征第一目标点箭头所指方向和第二目标点箭头所指方向。
第四种方式:
控制器确定第一堆叠对象的第一角度值;
控制器确定第二堆叠对象的第二角度值;
控制器根据第一角度值和所述第二角度值的差值确定所述第一堆叠对象与所述第二堆叠对象之间的相对角度差值。
其中,控制器确定第一堆叠对象的第一角度值,可以是:
控制器根据第一边沿线W1的角度确定第一堆叠对象的第一角度值;或者
控制器根据第一中线M1的角度确定第一堆叠对象的第一角度值;或者
控制器根据第一中线M1的角度和第一边沿线W1的角度加权得到第一堆叠对象的第一角度值,其中加权比例可根据实际情况进行调整,例如,当第一边沿线W1对应的边界点云数据比较清晰时,可适当提高第一边沿线W1的角度加权比例。
类似地,控制器确定第二堆叠对象的第二角度值,可以是:
控制器根据第二边沿线V2的角度确定第二堆叠对象的第二角度值;或者
控制器根据第二中线M2的角度确定第二堆叠对象的第二角度值;或者
控制器根据第二中线M2的角度和第二边沿线V2的角度加权得到第二堆叠对象的第二角度值。其中加权比例可根据实际情况进行调整,例如,当第二边沿线V2对应的边界点云数据比较清晰时,可适当提高第二边沿线V2的角度的加权比例。
另外需要说明的是,第一堆叠对象的第一角度值与第二堆叠对象的第二角度值可根据实际情况进行灵活选择,例如:当第一堆叠对象的第一角度值是根据第一边沿线W1的角度确定时,第二堆叠对象的第二角度值可以根据第二中线M2的角度确定。
本申请实施例中的第一灰度图的边界线采用如下方式得到:控制器根据概率霍夫变换直线检测算法从第一灰度图中提取直线,并根据第一堆叠对象的尺寸从所提取的直线中确定第一灰度图的边界线;第二灰度图的边界线采用如下方式得到:控制器根据概率霍夫变换直线检测算法从第二灰度图中提取直线,并根据第二堆叠对象的尺寸从所提取的直线中确定第二灰度图的边界线。
在这里,概率霍夫变换直线检测算法(Probabilistic Hough Transform)通过在参数空间中随机选取边缘点的参数来减少计算量。
在直角坐标系中,第一灰度图的直线可以用极坐标表示为r=xcosθ+ysinθ,其中r是直线到原点的距离,θ是直线的方向角,第一灰度图的每个边缘点都会在参数空间中对应一条正弦曲线,这些曲线的交点表示通过这些点的直线,概率霍夫变换通过随机选择边缘点并计算其对应的参数空间曲线,然后寻找这些曲线的交点来确定直线参数。
在这里,第一堆叠对象的尺寸可包括长度、宽度和高度,将这些尺寸作为从所提取的直线中筛选和匹配直线的依据,以确定第一灰度图的边界线。
在本申请实施例中可以采用传统的概率霍夫变换直线检测算法从灰度图中提取直线,在第一堆叠对象和第二堆叠对象的构造简单、环境干扰少的场景下,也可以采用霍夫变换直线检测。
然而,为了适用具有较复杂构造的第一堆叠对象和第二堆叠对象,提高检测精度,本申请实施例中对概率霍夫变换直线检测算法进行了改进,具体地,控制器根据改进的概率霍夫变换直线检测算法从灰度图(即第一灰度图或第二灰度图)中提取直线可包括以下步骤:
控制器将灰度图中的像素点按照灰度值进行排序,得到像素序列集合,其中像素序列集合包括多个像素序列,每个像素序列包含对应同一灰度值的像素点;依据排序依次取出像素序列作为当前像素序列,在当前像素序列中随机选取像素点,以找到满足角度范围下概率最高的直线,且该直线上的像素点数量满足直线长度要求且灰度值之和最大;若找到的直线与已提取的直线之间的距离大于或等于最大直线间距阈值,则提取该直线,并将当前像素序列从像素序列集合中删除,继续将下一个像素序列作为当前像素序列,直至像素序列集合为空。
需要说明的是,上述角度范围、最大直线间距阈值和直线数量均可为概率霍夫变换直线检测算法在参数空间中所选取的直线参数。
其中,当前像素序列中的像素点:计算其对应的一系列直线参数(在极坐标系下为r和θ),并在参数空间中投票。角度范围来限制搜索的直线方向。角度范围的设定需要根据具体应用场景进行调整。
在一个示例中,直线的参数包括:像素距离分辨率、角度分辨率、角度范围、最小直线长度阈值、最大直线间距阈值和直线数量中的至少一项。
具体地,1)将灰度图中的所有像素点按灰度值从大到小进行排序,形成像素序列集合;2)按照灰度值从大到小的次序依次从像素序列集合中取出像素序列,并从该像素序列中随机取出像素点;3)在取出的像素点中找到满足角度范围下概率最高的直线,其直线上的像素个数满足直线长度阈值要求(例如上述的最小直线长度阈值)且灰度值之和最大;4)找到直线上所有的像素点,判断找到的直线与已提取的直线之间间隔是否满足最大直线间距阈值,不满足则回到2),满足则执行5);5)取出该直线,在待取出像素中去掉该直线上的像素点;6)判断像素序列集合中的所有像素点是否遍历完,若遍历完则返回取出的直线集合;若没有遍历完,则判断取出的直线数量是否满足要求,不满足则继续2),满足返回取出的直线集合。
需要说明的是,生成第二灰度图的边界线的方式与确定第一灰度图的边界线的方式相同,在此不再赘述。
下面结合实施例对上述步骤504即“控制器根据相对位姿,控制搬运设备运动,使第一堆叠对象与第二堆叠对象对齐”进行详细描述。
在本申请实施例中,一旦计算出第一堆叠对象和第二堆叠对象之间的相对位姿,就可以根据相对位姿控制搬运设备运动,直至相对位姿在第二预设阈值范围内。
可选地,第二预设阈值范围可以设置为:-5mm<Δx2<5mm,-5mm<Δy2<5mm,-0.5°<Δθ2<0.5°。需要说明的是,该阈值范围仅为举例,实际中可根据不同的堆叠对象和搬运设备进行调整。
进一步地,当相对位姿不在第二预设阈值范围内时,控制器控制搬运设备调整位姿;
控制器通过第一传感器重新获取第一堆叠对象的目标数据,以及第二堆叠对象的目标数据;
控制器根据重新获取的目标数据,重新确定第一堆叠对象的位姿与第二堆叠对象的位姿之间的相对位姿。
进一步地,在控制搬运设备运动的过程中,可以分成两个阶段:
第一阶段:当搬运设备和堆叠终点之间的纵向距离大于预设的距离阈值时,仅控制搬运设备的车体进行移动。
堆叠终点是指第一堆叠对象与第二堆叠对象对齐时搬运设备的位置。
此时仅利用车体底盘的运动来对X轴、Y轴的误差进行修正。
第二阶段:当搬运设备和堆叠终点之间的纵向距离不大于预设的距离阈值时,控制搬运设备的车体进行移动的同时,控制货叉在横向移动。
此时同时利用车体和货叉横向移动对X轴、Y轴的误差进行修正,货叉横向移动是指货叉在垂直于车体前进方向的方向,即Y轴方向左右移动。
可选地,距离阈值可以但不限于设置为15cm。
如图22所示,为本申请实施例提供的控制搬运设备运动的第二阶段的实现流程图。包括如下步骤:
步骤221:计算车体相对第二堆叠对象的横向误差,根据横向误差计算货叉的横向目标值;
本申请实施例中当搬运设备和堆叠终点之间的纵向距离小于15cm时,则进入控制搬运设备运动的第二阶段,此时利用第一传感器可以获取到车体的位姿和货叉的Y轴位置,将货叉的Y轴位置记为`forkY_current`。
基于车体的位姿和第二堆叠对象的第二位姿,可以得到车体相对第二堆叠对象的横向误差和纵向误差,将车体相对于第二堆叠对象的横向误差记为`dy`,进而计算出货叉的Y轴目标值`forkY_target=forkY_current+dy`。
这里的横向指的是搬运设备本体的横向方向,即Y轴方向。纵向指的是车体前后行驶方向,即X轴方向。
步骤222:计算车体相对第二堆叠对象的纵向误差,根据纵向误差控制车体移动,直至纵向误差在预设的纵向阈值范围内;同时,根据横向目标值,控制货叉在横向移动,使货叉相对第二堆叠对象的横向误差在预设的横向阈值范围内。
根据车体相对第二堆叠对象的纵向误差,控制车体进行移动。与此同时,根据计算出的横向目标值,控制货叉在横向移动。
重复执行上述车体移动和货叉横移的操作,直到车辆相对第二堆叠对象的纵向误差小于预设的纵向阈值,货叉相对第二堆叠对象的横向误差小于预设的横向阈值。这里货叉相对第二堆叠对象的横向误差为货叉的Y轴位置`forkY_current`与Y轴目标值`forkY_current`之间的误差。
可选的,纵向阈值范围可以但不限于设置在±3mm,横向阈值范围可以但不限于设置在±3mm。
另外,由于在对齐阶段需要较高的感知和控制精度,本申请实施例可以实时获取搬运设备与堆叠终点之间的纵向距离,并根据该纵向距离控制车体和/或货叉的运动速度。比如,当搬运设备与堆叠终点之间的纵向距离小于30cm时,车体的运动速度小于5cm/s,车体航向变化速度小于0.2rad/s,货叉横向移动速度小于5cm/s。
进一步地,当第一堆叠对象相对于第二堆叠对象的相对位姿在第二预设阈值范围内之后,为了确保对齐的精确性,本申请实施例还可以对第一堆叠对象和第二堆叠对象的对齐状态进行最终的判断和确认。
具体的,首先获取第一堆叠对象的当前位姿,再根据第一堆叠对象的当前位姿和第一堆叠对象的尺寸,确定第一堆叠对象至少一个角点的坐标;
获取第二堆叠对象的当前位姿,再根据第二堆叠对象的当前位姿和第二堆叠对象的尺寸,确定第二堆叠对象至少一个角点的坐标;
计算第一堆叠对象至少一个角点和第二堆叠对象至少一个角点的坐标差;
当坐标差在第三预设阈值范围内,确认第一堆叠对象和第二堆叠对象对齐成功;否则,确认第一堆叠对象和所述第二堆叠对象对齐失败。
需要说明的是,第一堆叠对象的至少一个角点与第二堆叠对象的至少一个角点对应。所谓对应,是指在第一堆叠对象与第二堆叠对象对齐时,彼此相邻。如图23所示,第一堆叠对象A包括第一角点D1、第三角点D3、第五角点D5和第七角点D7,第二堆叠对象B包括第二角点D2、第四角点D4、第六角点D6和第八角点D8。当第一堆叠对象A相对于第二堆叠对象B的相对位姿在第二预设阈值范围内时,此时第一角点D1和第二角点D2彼此相邻,第三角点D3和第四角点D4彼此相邻,第五角点D5和第六角点D6彼此相邻,第七角点D7和第八角点D8彼此相邻。
以确定第一堆叠对象四个角点的坐标和第二堆叠对象四个角点的坐标为例,在进行对齐状态的确认时,首先确定第一堆叠对象第一角点D1、第三角点D3、第五角点D5和第七角点D7的坐标;以及第二堆叠对象第二角点D2、第四角点D4、第六角点D6和第八角点D8的坐标;分别计算第一角点D1相对第二角点D2的第一坐标差,第三角点D3相对第四角点D4的第二坐标差,第五角点D5相对第六角点D6的第三坐标差,以及第七角点D7相对第八角点D8的第四坐标差;当第一坐标差、第二坐标差、第三坐标差和第四坐标差均在第三预设阈值范围内,确认第一堆叠对象和第二堆叠对象对齐成功;否则,确认第一堆叠对象和所述第二堆叠对象对齐失败。
可选地,第三预设阈值可以但不限于设置为:在X和Y方向上的坐标差均在-7mm至7mm内。
进一步地,考虑到第一堆叠对象和第二堆叠对象对齐失败,有可能是由于里程计信息的不准确导致的,因此本申请实施例进一步提出通过重新调整搬运设备的位姿来再次判断第一堆叠对象和第二堆叠对象是否对齐。
作为一种可实现的方式,当第一堆叠对象和第二堆叠对象对齐失败时,控制器根据第一堆叠对象和第二堆叠对象的当前相对位姿确定搬运设备的目标位姿;
控制器控制搬运设备运动,将搬运设备的位姿调整到目标位姿;
控制器通过第一传感器重新获取第一堆叠对象和第二堆叠对象的目标数据;
根据重新获取的目标数据重新确定第一堆叠对象和第二堆叠对象的相对位姿;
根据重新确定的相对位姿,判断第一堆叠对象和第二堆叠对象是否对齐。
作为另一种可实现的方式,当第一堆叠对象和第二堆叠对象对齐失败时,控制器根据第一堆叠对象与第二堆叠对象的当前相对位姿确定搬运设备的目标位姿;
控制器控制搬运设备运动,将搬运设备的位姿调整到目标位姿;
控制器通过第一传感器重新获取第一堆叠对象的目标数据;
控制器根据重新获取的目标数据重新确定第一堆叠对象的位姿;
根据重新确定的第一堆叠对象的位姿和对齐失败时第二堆叠对象的位姿,重新确定第一堆叠对象和第二堆叠对象的相对位姿;
根据重新确定的相对位姿,判断第一堆叠对象和第二堆叠对象是否对齐。
在上述两种实现方式中,控制器控制搬运设备运动,将搬运设备的位姿调整到目标位姿,具体包括:
控制器控制搬运设备从第一预设位置运动至目标位姿对应的位置。
这里的第一预设位置,是指距离第二堆叠对象相对预设距离的位置,预设距离可以灵活调整,比如设置为50cm。
进一步地,当第一堆叠对象和第二堆叠对象对齐失败时,本申请实施例还提出了对齐失败重试机制。
作为一种可实现的方式,当第一堆叠对象和第二堆叠对象对齐失败时,控制器控制搬运设备搬运第一堆叠对象重新运动至堆叠准备位置;
控制器通过第一传感器重新获取第二堆叠对象的第四目标数据;
控制器根据重新获取的第四目标数据确定第二堆叠对象的位姿;并根据第二堆叠对象的位姿控制搬运设备运动,使搬运设备相对第二堆叠对象的位姿误差在第一预设阈值范围内;
控制器通过第一传感器重新获取第一堆叠对象和第二堆叠对象的目标数据;
控制器控制搬运设备调整姿态,使第一堆叠对象和第二堆叠对象重新对齐。
在这种方式中,当第一堆叠对象和第二堆叠对象对齐失败时,可以控制搬运设备重新回到预对准阶段的开始位置,即堆叠准备位置,重新执行预对准阶段和对齐阶段的操作,以实现重新对齐。
作为另一种可实现的方式,当第一堆叠对象和第二堆叠对象对齐失败时,控制器控制搬运设备搬运第一堆叠对象重新运动至堆叠作业位置,并通过第一传感器重新获取第一堆叠对象和第二堆叠对象的目标数据;
控制器控制搬运设备调整姿态,使第一堆叠对象和第二堆叠对象重新对齐。
在这种方式中,当第一堆叠对象和第二堆叠对象对齐失败时,可以控制搬运设备重新回到对齐阶段的开始位置,即堆叠作业位置,重新执行对齐阶段的操作,以实现重新对齐。
在上述对齐失败重试机制中,重新预对准与重新对齐的过程与前述的预对准阶段和对齐阶段的实现原理相同,在此不再赘述。
进一步地,本申请实施例还可以包括:
统计对齐失败次数,当对齐失败次数大于第一预设次数时,输出报警提示。
通过上述机制,可以使得在对齐失败次数过多时,通过报警提示来提示用户进行干预,避免无效的对齐重试。
经过取货阶段、预对准阶段和对齐阶段后,本申请实施例还可以进一步包括堆叠阶段。
当第一堆叠对象与第二堆叠对象对齐之后,控制搬运设备将第一堆叠对象堆叠在第二堆叠对象上。
具体的,可以通过降低搬运设备的货叉高度,使第一堆叠对象堆叠在第二堆叠对象上。当第一堆叠对象成功堆叠在第二堆叠对象上时,控制器控制搬运设备执行结束堆叠操作,比如控制搬运设备执行出叉操作。
为了避免出现第一堆叠对象卡住或者部分堆叠的情况,本申请实施例还可以进一步确认第一堆叠对象相对第二堆叠对象的堆叠状态,以此来判断第一堆叠对象是否成功堆叠在第二堆叠对象上。
作为一种可实现的方式,可以利用感知检测方式,确认第一堆叠对象相对于第二堆叠对象的感知堆叠状态。
具体的,第一传感器扫描第一堆叠对象和第二堆叠对象,得到第一堆叠对象和第二堆叠对象的堆叠区域的结构特征数据;根据结构特征数据,确认第一堆叠对象相对于第二堆叠对象的感知堆叠状态。
作为另一种可实现的方式,还可以利用压感检测方式,确认第二堆叠对象相对于第二堆叠对象的压感堆叠状态。
具体的,第二传感器获取综合压力数据,根据综合压力数据确认第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态。这里的第二传感器可以是压感开关。
作为一种优选的方式,可以先利用感知检测方式确认第一堆叠对象相对于第二堆叠对象的感知堆叠状态,当感知堆叠状态为感知堆叠成功时,再利用压感检测方式确认第一堆叠对象相对于第二堆叠对象的压感堆叠状态,当压感堆叠状态为压感堆叠成功时,确认第一堆叠对象成功堆叠在第二堆叠对象上;当感知堆叠状态为感知堆叠失败时,或者压感堆叠状态为压感堆叠失败时,确认第一堆叠对象未成功堆叠在第二堆叠对象上。
此外,在进行感知堆叠状态和压感堆叠状态确认时,还可以监控堆叠状态确认的时间是否超过预设时间,如果在预设时间内没有确认出感知堆叠状态或压感堆叠状态,也可以控制搬运设备发送报警提示,这样可以避免在遇到特殊情况时陷入无限等待的状态。
进一步地,考虑到第一堆叠对象未成功堆叠在第二堆叠对象上,可能是由于在第二堆叠对象上存在明显的障碍物引起的,因此当第一堆叠对象未成功堆叠在第二堆叠对象上时,可以控制搬运设备抬升第一堆叠对象,抬升后该障碍物可能被移除,此时控制器再控制搬运设备将第一堆叠对象重新堆叠在第二堆叠对象上,进一步重新确认是否堆叠成功。
进一步地,当第一堆叠对象未成功堆叠在第二堆叠对象上时,本申请实施例还提出了堆叠失败时的堆叠失败重试机制。
作为一种可实现的方式,当第一堆叠对象未成功堆叠在第二堆叠对象上时,控制器控制搬运设备抬升第一堆叠对象;
控制器通过第一传感器重新获取第一堆叠对象和第二堆叠对象的目标数据;
控制器控制搬运设备调整姿态,使第一堆叠对象和第二堆叠对象重新对齐;
控制器控制搬运设备将第一堆叠对象重新堆叠在第二堆叠对象上。
在这种方式中,搬运设备的车体无需运动,只需要抬升第一堆叠对象,并通过第一传感器重新获取目标数据重新对齐和重新堆叠。
作为另一种可实现的方式,当第一堆叠对象未成功堆叠在第二堆叠对象上时,控制器控制搬运设备抬升第一堆叠对象;
控制器控制搬运设备搬运第一堆叠对象重新运动至堆叠准备位置;
控制器通过第一传感器重新获取第二堆叠对象的第四目标数据;
控制器根据重新获取的第四目标数据,控制搬运设备运动,使搬运设备相对第二堆叠对象的位姿误差在第一预设阈值范围内;
控制器通过第一传感器重新获取第一堆叠对象和第二堆叠对象的目标数据;
控制器控制搬运设备调整姿态,使第一堆叠对象和第二堆叠对象重新对齐;
控制器控制搬运设备将第一堆叠对象重新堆叠在第二堆叠对象上。
在这种方式中,控制搬运设备抬升第一堆叠对象之后,控制搬运设备重新回到预对准阶段的开始位置,即堆叠准备位置,重新执行预对准阶段、对齐阶段和堆叠阶段的操作,以实现重新对齐和重新堆叠。
作为另一种可实现的方式,当第一堆叠对象未成功堆叠在第二堆叠对象上时,控制器控制搬运设备抬升第一堆叠对象;
控制器控制搬运设备搬运第一堆叠对象重新运动至堆叠作业位置;
控制器通过第一传感器重新获取第一堆叠对象和第二堆叠对象的目标数据;
控制器控制搬运设备调整姿态,使第一堆叠对象和第二堆叠对象重新对齐;
控制器控制搬运设备将第一堆叠对象重新堆叠在第二堆叠对象上。
在这种方式中,控制搬运设备抬升第一堆叠对象之后,控制搬运设备重新回到对齐阶段的开始位置,即堆叠作业位置,重新执行对齐阶段和堆叠阶段的操作,以实现重新对齐和重新堆叠。
在上述堆叠失败重试机制中,重新预对准、重新对齐和重新堆叠的过程与前述的预对准阶段、对齐阶段和堆叠阶段的实现原理相同,在此不再赘述。
进一步地,本申请实施例还可以包括:
统计未成功堆叠次数,当未成功堆叠次数大于第二预设次数时,输出报警提示。
通过上述机制,可以使得在未成功堆叠次数过多时,通过报警提示来提示用户进行干预,避免无效的堆叠重试。
进一步地,本申请实施例还可以包括:
控制器统计对齐失败次数与未成功堆叠次数;
当对齐失败次数与未成功堆叠次数之和大于第三预设次数时,输出报警提示。
通过上述机制,可以使得在对齐失败次数和未成功堆叠次数的总和过大时,通过报警提示来提示用户进行干预,避免无效的重试。
本申请实施例提供了搬运设备在针对第一堆叠对象的取货阶段、以及针对第一堆叠对象和第二堆叠对象的预对准阶段、对齐阶段和堆叠阶段的全流程操作,确保了堆叠作业的精确性和效率。
下面以第一堆叠对象为A料笼、第二堆叠对象为B料笼为例对本申请实施例提出的方法进行详细阐述。
参考图24,为本申请实施例提供的堆叠作业的全流程示意图。本申请实施例提出的方法可以分为四个部分:取货阶段、预对准阶段、对齐阶段和堆叠阶段。
取货阶段
步骤2401,控制器控制搬运设备运动到取货位置,叉取A料笼;
步骤2402,控制器控制搬运设备搬运A料笼运动到堆叠准备区域。
首先控制器控制搬运设备运动到A料笼前,在移动过程中调用第一传感器进行A料笼的检测和位姿计算,并实时规划路径并控制搬运设备完成A料笼的叉取。
可选地,第一传感器可以为双激光雷达和双相机的架构,能够对A料笼的核心特征区域进行高密度检测,其检测密度达到原先单一激光雷达的两倍,从而使得积分时间缩短了一半,从而显著提升检测效率,使得整个取货过程可以在伺服模式下完成,即搬运设备在运动中连续检测A料笼的立柱或插孔等关键特征,无需停车,实现了边运动边检测的高效取货操作并运动到堆叠准备区域。
预对准阶段
步骤2403,控制器控制搬运设备搬运A料笼移动到堆叠准备位置。
步骤2404,控制器通过第一传感器获取B料笼的第四目标数据,并根据第四目标数据,确定B料笼的位姿。
步骤2405,控制器根据B料笼的位姿,控制搬运设备运动,使搬运设备相对B料笼的位姿误差在第一预设阈值范围内。
预对准阶段的目的是在进入对齐阶段前,确保搬运设备与B料笼基本对齐,减少进入对齐阶段时的大误差修正需求,提升整体效率和精度。
在预对准阶段,搬运设备载着A料笼运动到B料笼前,首先抬升货叉至最优检测高度,即堆叠准备位置,然后通过检测B料笼的立柱等特征,计算B料笼的姿态,并对车身进行调整,以完成预对准。此阶段中,控制器可以采用多种路径规划方式,确保车体在行进方向和旋转方向上基本对齐B料笼,同时采用前进和后退的路径规划策略来实现大误差修正。
需要说明的是,本申请实施例中从伺服预对准开始直到堆叠阶段以及整个重试过程中,第一传感器始终保持激活状态。控制器根据不同阶段采用不同的控制策略,以确保精度和稳定性。而在传统的堆叠作业方案中,搬运设备在叉取A料笼后会在运行一段距离后关闭第一传感器,导致最后一段距离的行驶过程缺乏感知支持(盲走),增加了误差的累积风险。
对齐阶段
步骤2406,控制器控制搬运设备搬运A料笼至堆叠作业位置;
具体的,控制搬运设备向B料笼运动,直至搬运设备与堆叠终点的纵向距离达到10-30cm。
步骤2407,控制器通过第一传感器获取A料笼和B料笼的目标数据,并从目标数据中提取A料笼的第一目标数据和B料笼的第二目标数据;
步骤2408,控制器根据第一目标数据和第二目标数据,计算A料笼相对B料笼的相对位姿;
步骤2409,控制器根据相对位姿,控制搬运设备运动,直至相对位姿在第二预设阈值范围内。
具体的,当搬运设备与堆叠终点之间的纵向距离大于15cm时,仅控制搬运设备的车体进行移动;
当搬运设备与堆叠终点之间的纵向距离不大于15cm时,控制搬运设备的车体进行移动的同时,控制货叉进行横向移动。
步骤2410,判断A料笼和B料笼是否对齐。
当判断出A料笼和B料笼对齐时,此时可以执行堆叠操作,执行步骤2411,当判断出A料笼和B料笼未对齐时,此时不可以执行堆叠操作,进入重试流程,执行步骤2417。重试流程可以返回到预对准阶段,也可以返回到对齐阶段。
具体的,可以按照如下方式判断A料笼和B料笼是否对齐:
根据相对位姿,确定A料笼的当前位姿;
根据A料笼的当前位姿和A料笼的尺寸,确定A料笼第一角点、第三角点、第五角点和第七角点的坐标;以及根据B料笼的当前位姿和B料笼的尺寸,确定B料笼第二角点、第四角点、第六角点和第八角点的坐标;
计算第一角点相对第二角点的第一坐标差,第三角点相对第四角点的第二坐标差,第五角点相对第六角点的第三坐标差,以及第七角点相对第八角点的第四坐标差;
当第一坐标差、第二坐标差、第三坐标差和第四坐标差均在第三预设阈值范围内,确认A料笼和B料笼对齐成功,可以执行堆叠操作;否则,确认A料笼和B料笼对齐失败,不可以执行堆叠操作。
在预对准阶段完成后,搬运设备会立即进入对齐阶段。此时,第一传感器的检测对象由预对准阶段的B料笼,切换为同时检测A料笼和B料笼的堆叠对齐面。通过这种双料笼同步观测,能够实时计算上下料笼之间的相对位姿,并将相对位姿传递给控制器以进行修正。整个过程模拟了类似人类的操作方式,不断修正堆叠中的位置偏差。
在对齐阶段,搬运设备依据第一传感器的反馈信息,持续调整车身和货叉,直至A料笼相对B料笼的相对位姿被修正至控制设定的阈值范围(即第一预设阈值)内(例如x,y方向的坐标差值在±5mm范围内,绕Z轴的旋转角度差值在±0.5°内)。当相对位姿达到设定要求后,第一传感器会进行最终的判断和确认,确保上下料笼的四个角点的坐标差符合预设的阈值范围((即第三预设阈值)(例如x,y方向的坐标差值均在±10mm以内),此时可以安全地降低货叉,完成堆叠操作。
若在修正过程中,未能达到设定的阈值,则会持续调整车辆与货叉,直到满足精度要求。如果在最终判断时,仍发现上下料笼的四个角点的坐标差不满足预设的阈值范围,则会启动对齐失败重试机制,进入重试流程以确保A料笼和B料笼能够对齐成功。这种重试机制旨在应对较大偏差的情况,通过多次调整和修正来提高对齐的成功率。
本申请实施例所采用的伺服闭环对齐技术,通过配置的第一传感器实现上下料笼的同步观测和控制修正。在整个流程中,第一传感器始终保持激活,实时监测料笼状态,并在感知和控制之间形成闭环反馈。这样可以有效地减少堆叠过程中各种误差的累积,例如地面不平导致的位姿偏差、门架的变形、取货时的感知和控制误差、里程计误差,以及堆叠过程中料笼在货叉上的滑动等问题。
堆叠阶段
步骤2411,控制搬运设备将A料笼堆叠在B料笼上。
步骤2412,判断A料笼是否成功堆叠在B料笼上,当判断出A料笼成功堆叠在B料笼上时,执行步骤2413,否则进入重试流程,执行步骤2414。该重试流程可以返回到预对准阶段,也可以返回到对齐阶段。
步骤2413,控制器控制搬运设备执行出叉操作。流程结束。
步骤2414,统计未成功堆叠的次数。
步骤2415,判断未成功堆叠的次数是否大于第二预设次数,当未成功堆叠的次数大于第二预设次数时,执行步骤2419,否则执行步骤2416。
步骤2416,控制器控制搬运设备抬升A料笼。如果返回预对准阶段,则返回执行步骤2403,如果返回对齐阶段,则返回执行步骤2406(如图24中虚线所示)。
步骤2417,统计对齐失败次数。
步骤2418,判断对齐失败次数是否大于第一预设次数,当对齐失败次数大于第一预设次数时,执行步骤2419,否则,如果返回预对准阶段,则返回执行步骤2403,如果返回对齐阶段,则返回执行步骤2406(如图24中虚线所示)。
步骤2419,输出报警提示。流程结束。
通过对整个堆叠过程的闭环控制,本申请实施例将堆叠误差简化为单次控制误差和单次感知误差的综合。大幅度提升了精度,不仅提高了堆叠的成功率,也降低了对料笼的容差要求,使整个堆叠过程更加高效且安全。
由于采用了闭环检测技术,本申请实施例中,即使在重试过程中上方料笼发生轻微滑动,也无需将料笼重新放置于地面再进行叉取,这大大简化了重试过程的复杂性,并提高了效率。重试机制的引入显著提高了堆叠的成功率,使其接近100%,从而有效确保了整个堆叠流程的稳定性和可靠性。
如图25所示,为本申请实施例提供的判断A料笼是否成功堆叠在B料笼上的具体实现流程图。图25所示流程是图24中的步骤2412的具体实现方式。具体包括:
步骤2501,控制器通过第一传感器采集点云数据,该点云数据为A料笼和B料笼的点云数据。
步骤2502,对点云数据进行预处理,包括对点云数据进行滤波处理,去除噪声点,保留其中的有效点云。
步骤25031,从预处理后的点云数据中提取A料笼第五目标区域的第五目标数据以及B料笼第六目标区域的第六目标数据。
在本申请实施例中,第五目标区域至少包括第一堆叠对象一侧底面横梁,第六目标区域至少包括第二堆叠对象一侧顶面横梁。
在堆叠过程中,沿X轴观察时,作为一种可实现的方式,如图4中(a)所示,第五目标区域包括第一堆叠对象左侧(或右侧)底面横梁,第六目标区域包括第二堆叠对象左侧(或右侧)顶面横梁;作为另一种可实现的方式,如图4中(b)所示,第五目标区域包括第一堆叠对象前侧(或后侧)底面横梁,第六目标区域包括第二堆叠对象前侧(或后侧)顶面横梁。
需要说明的是,这里的第五目标区域和第六目标区域只要满足分别位于第一堆叠对象和第二堆叠对象的同侧,且至少包括各自的底面横梁和顶面横梁即可,本申请实施例对其的具体位置并不进行限定。
具体的,控制器可以从存储器中获取预先存储的第一堆叠对象和第二堆叠对象的规格参数(比如尺寸、形状等信息),再根据规格参数,从目标数据中确定出第五目标区域的第五目标数据和第六目标区域的第六目标数据。
步骤25032,从预处理后的点云数据中提取A料笼第七目标区域的第七目标数据和B料笼第八目标区域的第八目标数据。
在本申请实施例中,第七目标区域至少包括第一堆叠对象一侧底面横梁,第八目标区域至少包括第二堆叠对象一侧顶面横梁。
其中,获取第七目标区域的第七目标数据,与上述获取第五目标区域的第五目标数据的方式相同,在此不再赘述。
获取第八目标区域的第八目标数据,与上述获取第六目标区域的第六目标数据的方式相同,在此不再赘述。
需要注意的是,第五目标区域和第七目标区域可以分别位于第一堆叠对象的相对两侧,也可以位于第一堆叠对象的相邻两侧;同理,第六目标区域和第八目标区域可以分别位于第二堆叠对象的相对两侧,也可以位于第二堆叠对象的相邻两侧。本申请实施例中,只要保证第五目标区域和第六目标区域位于同侧,第七目标区域和第八目标区域位于同侧即可。
步骤25041,根据第五目标数据,提取A料笼的第一边界,以及根据第六目标数据,提取B料笼的第二边界。
作为一种可实现的方式,本申请实施例中将第五目标数据和第六目标数据投影到二维平面上,得到第一投影图,再对第一投影图进行轮廓提取,得到第一堆叠对象的第一边界和第二堆叠对象的第二边界。
这里的二维平面,可以包括但不限于指在搬运设备的坐标系中,用于投影和分析目标数据的平面。
当第五目标区域包括第一堆叠对象左侧(或右侧)底面横梁,第六目标区域包括第二堆叠对象左侧(或右侧)顶面横梁时,这个二维平面是以搬运设备为中心的坐标轴中的XOZ平面,其中,X轴代表搬运设备的纵向方向(也是行驶方向),Y轴代表搬运设备的横向方向,Z轴代表搬运设备的高度方向。
当第五目标区域包括第一堆叠对象前侧(或后侧)底面横梁,第六目标区域包括第二堆叠对象前侧(或后侧)顶面横梁时,这个二维平面是以搬运设备为中心的坐标轴中的YOZ平面。
需要说明的是,投影方向并不限于垂直于XOZ方向和YOZ方向,其他任意垂直于Z轴的投影方向均可作为实施例的投影方向。
步骤25042,根据第七目标数据,提取A料笼的第三边界,以及根据第八目标数据,提取B料笼的第四边界。
该步骤的实现方式与步骤25041的实现原理相同,在此不再赘述。
步骤25051,根据第一边界与第二边界,计算A料笼和B料笼之间第一缝隙的宽度,将第一缝隙的宽度与第一阈值比较,以确认A料笼堆叠相对于B料笼的第一堆叠状态。
本申请实施例中,第一堆叠状态包括第一安全状态和第一不安全状态,其中第一安全状态指的是第一缝隙的宽度小于或等于第一阈值。
以图4中(a)的目标区域配置方式为例,对第一堆叠状态进行说明。
如图26所示,图26中(a)为第一堆叠状态为堆叠成功时的侧视图,根据第一堆叠对象A的第一边沿J1对应的第一边界和第二堆叠对象B的第二边沿J2对应的第二边界计算得到的第一堆叠对象A和第二堆叠对象B堆叠形成的缝隙宽度小于第一阈值;图26中(b)是对第一边沿J1和第二边沿J2进行投影得到的YOZ平面的投影图。
如图27所示,图27中(a)为第一堆叠状态为堆叠失败时的侧视图,根据第一堆叠对象A的第一边沿J1对应的第一边界和第二堆叠对象B的第二边沿J2对应的第二边界计算得到的第一堆叠对象A和第二堆叠对象B堆叠形成的缝隙宽度大于或等于第一阈值;图27中(b)是对第一边沿J1和第二边沿J2进行投影得到的YOZ平面的投影图。
具体的,根据第一边界和第二边界计算第一堆叠对象和第二堆叠对象之间第一缝隙的宽度时,如果第一边界和第二边界之间形成的缝隙的宽度不一致,则根据第一边界和第二边界之间形成的缝隙的最大宽度来确定第一缝隙的宽度。
需要说明的是,本申请实施例中的第一阈值可以是根据历史数据自动学习得到的,也可以是根据实际需求自行设置,本申请实施例中对此不进行限定。
步骤25052,根据第三边界与第四边界,计算A料笼和B料笼之间第二缝隙的宽度,将第二缝隙的宽度与第一阈值比较,以确认A料笼相对于B料笼的第二堆叠状态。
本申请实施例中,第二堆叠状态包括第二安全状态和第二不安全状态,其中第二安全状态指的是第二缝隙的宽度小于或等于第一阈值。
该步骤的实现方式与步骤25051的实现原理相同,在此不再赘述。
还需要说明的是,上述步骤25031和步骤25032、步骤25041和步骤25042、以及步骤25051和步骤25052可以是并列执行的步骤,也可以只执行步骤25031、步骤25041和步骤25051,或者只执行步骤25032、步骤25042和步骤25052。
步骤2506,根据第一堆叠状态和/或第二堆叠状态,确认A料笼相对于B料笼的感知堆叠状态。当感知堆叠状态为感知堆叠成功时,执行步骤2507,否则确认A料笼未成功堆叠在B料笼上。
该步骤中,当上述流程中只执行步骤25031、步骤25041和步骤25051时,则根据第一堆叠状态确认A料笼相对于B料笼的感知堆叠状态;当只执行步骤25032、步骤25042和步骤25052时,则根据第二堆叠状态确认A料笼相对于B料笼的感知堆叠状态;当并列执行步骤25031和步骤25032、步骤25041和步骤25042、以及步骤25051和步骤25052时,则根据第一堆叠状态和第二堆叠状态确认A料笼相对于B料笼的感知堆叠状态。
其中,根据第一堆叠状态和第二堆叠状态确认A料笼相对于B料笼的感知堆叠状态,具体包括:
当第一堆叠状态为第一安全状态,且第二堆叠状态为第二安全状态时,确认感知堆叠状态为感知堆叠成功;当第一堆叠状态为第一不安全状态和/或第二堆叠状态为第二不安全状态时,确认感知堆叠状态为感知堆叠失败。
也就是说,当第一缝隙的宽度小于或等于第一阈值,且第二缝隙的宽度小于或等于第一阈值时,确认感知堆叠状态为感知堆叠成功;当第一缝隙的宽度大于第一阈值,或第二缝隙的宽度大于第一阈值时,确认感知堆叠状态为感知堆叠失败。
步骤2507,由第二传感器获取综合压力数据,根据综合压力数据确认A料笼相对于B料笼的压感堆叠状态。当压感堆叠状态为压感堆叠成功时,确认A料笼成功堆叠在B料笼上;当压感堆叠状态为压感堆叠失败时,确认A料笼未成功堆叠在B料笼上。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
根据另一方面的实施例,提供了一种控制系统,执行以实现本申请实施例公开的任一种方法。
根据另一方面的实施例,还提供了一种搬运设备,执行以实现本申请实施例公开的任一种方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于堆叠对象的堆叠装置的实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的堆叠对象的堆叠装置的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现前述方法实施例中任一项所述的方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序产品的形式体现出来,该计算机程序产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (35)
1.一种对齐方法,其特征在于,包括:
控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据;
所述控制器从所述目标数据中提取所述第一堆叠对象的第一目标数据,以及所述第二堆叠对象的第二目标数据;
所述控制器根据所述第一目标数据和所述第二目标数据,计算所述第一堆叠对象相对所述第二堆叠对象的相对位姿;
所述控制器根据所述相对位姿,控制搬运设备运动,使所述第一堆叠对象与所述第二堆叠对象对齐。
2.根据权利要求1所述的方法,其特征在于,所述控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠准备位置;
所述控制器通过所述第一传感器获取所述第二堆叠对象的第四目标数据;
所述控制器根据所述第四目标数据,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在第一预设阈值范围内。
3.根据权利要求2所述的方法,其特征在于,所述控制器根据所述第四目标数据,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿在第一预设阈值范围内,包括:
所述控制器根据所述第四目标数据,确定所述第二堆叠对象的位姿;
根据所述第二堆叠对象的位姿,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在第一预设阈值范围内。
4.根据权利要求1所述的方法,其特征在于,所述控制器通过第一传感器获取第一堆叠对象和第二堆叠对象的目标数据,包括:
当所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠作业位置时,所述控制器通过所述第一传感器获取所述目标数据。
5.根据权利要求4所述的方法,其特征在于,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠作业位置,包括:
控制所述搬运设备向所述第二堆叠对象运动,直至所述搬运设备的货叉在所述第二堆叠对象上的投影长度达到第一长度阈值。
6.根据权利要求4所述的方法,其特征在于,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠作业位置,包括:
控制所述搬运设备向所述第二堆叠对象运动,直至所述搬运设备的第一传感器与所述第二堆叠对象在纵向的距离在第一预设距离内。
7.根据权利要求4所述的方法,其特征在于,所述根据所述相对位姿,控制搬运设备运动,使所述第一堆叠对象与所述第二堆叠对象对齐,包括:
根据所述相对位姿,控制所述搬运设备运动,直至所述相对位姿在第二预设阈值范围内。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述相对位姿不在所述第二预设阈值范围内时,所述控制器控制搬运设备调整位姿;
所述控制器通过所述第一传感器重新获取第一堆叠对象的目标数据,以及第二堆叠对象的目标数据;
所述控制器根据所述重新获取的目标数据,重新确定所述第一堆叠对象的位姿与第二堆叠对象的位姿之间的相对位姿。
9.根据权利要求1所述的方法,其特征在于,所述控制搬运设备运动,包括:
当所述搬运设备与堆叠终点之间的纵向距离大于预设的距离阈值时,仅控制所述搬运设备的车体进行移动;
当所述搬运设备与所述堆叠终点之间的纵向距离不大于所述距离阈值时,控制所述搬运设备的车体进行移动的同时,控制所述货叉在横向移动。
10.根据权利要求9所述的方法,其特征在于,所述控制所述搬运设备的车体进行移动的同时,控制所述货叉在横向移动,包括:
计算所述车体相对所述第二堆叠对象的横向误差,根据所述横向误差计算所述货叉的横向目标值;
计算所述车体相对所述第二堆叠对象的纵向误差,根据所述纵向误差控制所述车体移动,直至所述纵向误差在预设的纵向阈值范围内;同时,根据所述横向目标值,控制所述货叉在横向移动,使所述货叉相对所述第二堆叠对象的横向误差在预设的横向阈值范围内。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
实时获取所述搬运设备与所述堆叠终点之间的纵向距离,并根据所述纵向距离控制所述车体的运动速度和/或所述货叉的运动速度。
12.根据权利要求8所述的方法,其特征在于,所述根据所述相对位姿,控制所述搬运设备运动,直至所述相对位姿在第二预设阈值范围内之后,所述方法还包括:
获取所述第一堆叠对象的当前位姿;
根据所述第一堆叠对象的当前位姿和所述第一堆叠对象的尺寸,确定所述第一堆叠对象的至少一个角点的坐标;
获取所述第二堆叠对象的当前位姿;
根据所述第二堆叠对象的当前位姿和所述第二堆叠对象的尺寸,确定所述第二堆叠对象的至少一个角点的坐标;
其中,所述第一堆叠对象的至少一个角点与所述第二堆叠对象的至少一个角点对应;
计算所述第一堆叠对象的至少一个角点与所述第二堆叠对象的至少一个角点的坐标差;
当所述坐标差在第三预设阈值范围内,确认所述第一堆叠对象和所述第二堆叠对象对齐成功;否则,确认所述第一堆叠对象和所述第二堆叠对象对齐失败。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器根据所述第一堆叠对象与第二堆叠对象的当前相对位姿确定所述搬运设备的目标位姿;
所述控制器控制所述搬运设备运动,将所述搬运设备的位姿调整到所述目标位姿;
所述控制器通过所述第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
根据所述重新获取的目标数据重新确定所述第一堆叠对象和所述第二堆叠对象的相对位姿;
根据所述重新确定的相对位姿,判断所述第一堆叠对象和所述第二堆叠对象是否对齐。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器根据所述第一堆叠对象与第二堆叠对象的当前相对位姿确定所述搬运设备的目标位姿;
所述控制器控制所述搬运设备运动,将所述搬运设备的位姿调整到所述目标位姿;
所述控制器通过所述第一传感器重新获取所述第一堆叠对象的目标数据;
所述控制器根据所述重新获取的目标数据重新确定所述第一堆叠对象的位姿;
根据所述重新确定的第一堆叠对象的位姿和对齐失败时所述第二堆叠对象的位姿,重新确定所述第一堆叠对象和所述第二堆叠对象的相对位姿;
根据所述重新确定的相对位姿,判断所述第一堆叠对象和所述第二堆叠对象是否对齐。
15.根据权利要求13或14所述的方法,其特征在于,所述控制器控制所述搬运设备运动,将所述搬运设备的位姿调整到所述目标位姿,包括:
所述控制器控制所述搬运设备运动至第一预设位置;
所述控制器控制所述搬运设备从所述第一预设位置运动至所述目标位姿对应的位置。
16.根据权利要求12所述的方法,其特征在于,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器通过所述第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
所述控制器控制所述搬运设备调整姿态,使所述第一堆叠对象和所述第二堆叠对象重新对齐。
17.根据权利要求16所述的方法,其特征在于,在所述第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备搬运所述第一堆叠对象运动至堆叠准备位置;
所述控制器通过所述第一传感器获取所述第二堆叠对象的第四目标数据;
所述控制器根据所述第四目标数据确定所述第二堆叠对象的位姿;
所述控制器根据所述第二堆叠对象的位姿,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在所述第一预设阈值范围内。
18.根据权利要求12所述的方法,其特征在于,所述方法还包括:
当所述第一堆叠对象和所述第二堆叠对象对齐失败时,所述控制器控制所述搬运设备重新运动至所述堆叠作业位置,所述控制器通过所述第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
所述控制器控制所述搬运设备调整姿态,使所述第一堆叠对象和所述第二堆叠对象重新对齐。
19.根据权利要求12所述的方法,其特征在于,所述方法还包括:
统计所述对齐失败次数,当所述对齐失败次数大于第一预设次数时,输出报警提示。
20.根据权利要求12所述的方法,其特征在于,所述第一堆叠对象与所述第二堆叠对象对齐之后,所述方法还包括:
控制所述搬运设备将所述第一堆叠对象堆叠在所述第二堆叠对象上。
21.根据权利要求20所述的方法,其特征在于,所述控制所述搬运设备将所述第一堆叠对象堆叠在所述第二堆叠对象上之后,所述方法还包括:
判断所述第一堆叠对象是否成功堆叠在所述第二堆叠对象上。
22.根据权利要求21所述的方法,其特征在于,所述判断所述第一堆叠对象是否成功堆叠在所述第二堆叠对象上,包括:
利用感知检测方式,确认所述第一堆叠对象相对于所述第二堆叠对象的感知堆叠状态。
23.根据权利要求22所述的方法,其特征在于,所述判断所述第一堆叠对象是否成功堆叠在所述第二堆叠对象上还包括:
利用压感检测方式,确认所述第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态。
24.根据权利要求22所述的方法,其特征在于,利用感知检测方式,确认所述第一堆叠对象相对于所述第二堆叠对象的感知堆叠状态,包括:
所述控制器通过所述第一传感器扫描所述第一堆叠对象和所述第二堆叠对象,得到所述第一堆叠对象和所述第二堆叠对象的堆叠区域的结构特征数据;
根据所述结构特征数据,确认所述第一堆叠对象相对于所述第二堆叠对象的感知堆叠状态。
25.根据权利要求23所述的方法,其特征在于,利用压感检测方式,确认所述第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态,包括:
所述控制器通过第二传感器获取综合压力数据,根据所述综合压力数据确认所述第二堆叠对象相对于所述第二堆叠对象的压感堆叠状态。
26.根据权利要求21所述的方法,其特征在于,所述方法还包括:
当所述第一堆叠对象未成功堆叠在所述第二堆叠对象上,所述控制器控制所述搬运设备抬升所述第一堆叠对象;
所述控制器控制所述搬运设备将所述第一堆叠对象重新堆叠在所述第二堆叠对象上。
27.根据权利要求21所述的方法,其特征在于,所述方法还包括:
当所述第一堆叠对象未成功堆叠在所述第二堆叠对象上,所述控制器控制所述搬运设备抬升所述第一堆叠对象;
所述控制器通过所述第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据;
所述控制器控制所述搬运设备调整姿态,使所述第一堆叠对象和所述第二堆叠对象重新对齐;
所述控制器控制所述搬运设备将所述第一堆叠对象重新堆叠在所述第二堆叠对象上。
28.根据权利要求27所述的方法,其特征在于,在所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备搬运所述第一堆叠对象运动至堆叠准备位置;
所述控制器通过所述第一传感器获取所述第二堆叠对象的第四目标数据;
所述控制器根据所述获取的第四目标数据,控制所述搬运设备运动,使所述搬运设备相对所述第二堆叠对象的位姿误差在第一预设阈值范围内。
29.根据权利要求27所述的方法,其特征在于,在所述控制器通过第一传感器重新获取所述第一堆叠对象和所述第二堆叠对象的目标数据之前,所述方法还包括:
所述控制器控制所述搬运设备重新运动至所述堆叠作业位置。
30.根据权利要求27所述的方法,其特征在于,所述方法还包括:
所述控制器统计未成功堆叠次数,当所述未成功堆叠次数大于第二预设次数时,输出报警提示。
31.根据权利要求27所述的方法,其特征在于,所述方法还包括:
所述控制器统计所述对齐失败次数与未成功堆叠次数;
当所述对齐失败次数与所述未成功堆叠次数之和大于第三预设次数时,输出报警提示。
32.根据权利要求2所述的方法,其特征在于,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠准备位置之前,所述方法还包括:
所述控制器控制所述搬运设备运动到取货位置;
所述控制器通过所述第一传感器获取所述第一堆叠对象的第三目标数据;
根据所述第一堆叠对象的第三目标数据,控制所述搬运设备运动,以获取所述第一堆叠对象;
所述控制器控制所述搬运设备搬运所述第一堆叠对象运动到堆叠准备区域。
33.根据权利要求32所述的方法,其特征在于,所述控制器控制所述搬运设备搬运所述第一堆叠对象至堆叠准备位置,包括:
所述控制器在搬运过程中同时控制车身运动和所述第一堆叠对象的抬升。
34.一种控制系统,其特征在于,包括存储器和控制器,所述存储器用于存储程序指令,所述控制器用于执行所述程序指令,以实现权利要求1至33中任一项所述的方法。
35.一种搬运设备,其特征在于,包括存储器和控制器,所述存储器用于存储程序指令,所述控制器用于执行所述程序指令,以实现权利要求1至33中任一项所述方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510127556.5A CN120004179A (zh) | 2025-01-27 | 2025-01-27 | 一种对齐方法、控制系统和搬运设备 |
| US19/184,155 US12522485B1 (en) | 2025-01-27 | 2025-04-21 | Aligning method, controller, and material handling equipment |
| US19/184,329 US12528683B1 (en) | 2025-01-27 | 2025-04-21 | Aligning method, controller, and material handling equipment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510127556.5A CN120004179A (zh) | 2025-01-27 | 2025-01-27 | 一种对齐方法、控制系统和搬运设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120004179A true CN120004179A (zh) | 2025-05-16 |
Family
ID=95677088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510127556.5A Pending CN120004179A (zh) | 2025-01-27 | 2025-01-27 | 一种对齐方法、控制系统和搬运设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120004179A (zh) |
-
2025
- 2025-01-27 CN CN202510127556.5A patent/CN120004179A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7304961B2 (ja) | ボックスの検出 | |
| US9227323B1 (en) | Methods and systems for recognizing machine-readable information on three-dimensional objects | |
| CN109160452B (zh) | 基于激光定位和立体视觉的无人转运叉车及导航方法 | |
| JP6211734B1 (ja) | ステレオ処理及び構造化光処理の組み合わせ | |
| US9205562B1 (en) | Integration of depth points into a height map | |
| US20240051146A1 (en) | Autonomous solar installation using artificial intelligence | |
| US9327406B1 (en) | Object segmentation based on detected object-specific visual cues | |
| US9272417B2 (en) | Real-time determination of object metrics for trajectory planning | |
| US12269164B2 (en) | Method and computing system for performing robot motion planning and repository detection | |
| CN120107343A (zh) | 一种对齐状态确认方法、控制系统及搬运设备 | |
| JP7192706B2 (ja) | 位置姿勢推定装置 | |
| CN115289966A (zh) | 基于tof相机的货架检测定位系统及方法 | |
| CN120004179A (zh) | 一种对齐方法、控制系统和搬运设备 | |
| US12545563B1 (en) | Aligning method, controller, and material handling equipment | |
| US12528683B1 (en) | Aligning method, controller, and material handling equipment | |
| US12469143B1 (en) | Method for determining alignment state, controller, and material handling equipment | |
| JP2023124122A (ja) | 物品検出装置、物品検出方法、及び産業車両 | |
| CN120107342A (zh) | 一种对齐状态确认方法、控制系统及搬运设备 | |
| CN120122727A (zh) | 一种堆叠状态的确认方法、系统及设备 | |
| TW202528866A (zh) | 自動導引車的控制裝置以及控制方法 | |
| CN117416756A (zh) | 一种紧凑空间内基于多传感器融合的拆码垛引导方法 | |
| CN116342695A (zh) | 无人叉车放货检测方法及装置、无人叉车、存储介质 | |
| CN118864352A (zh) | 基于视觉的agv末端作业对象的高度测量及定位的方法 | |
| CN119832062A (zh) | 一种托盘检测方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |