掌桥专利:专业的专利平台
掌桥专利
首页

目标对象的定位方法及装置、电子设备、存储介质

文献发布时间:2023-06-19 11:19:16


目标对象的定位方法及装置、电子设备、存储介质

技术领域

本申请涉及机器人技术领域,特别涉及一种目标对象的定位方法及装置、电子设备、计算机可读存储介质。

背景技术

随着机器人越来越普及,机器人被越来越广泛的应用在各种场景中。尤其是AGV(Automated Guided Vehicle自动导引运输车)类运输机器人,在物资搬运及垃圾运输等领域应用中应用越来越广泛。

一般地,运输机器人运输物资或者垃圾时,货箱或者垃圾桶直接放置在机器人上进行运输,从而需要AGV小车驶入货箱或者垃圾桶的底部。因此,需要将AGV小车跟货箱或者垃圾桶进行对准,目前,一般采用二维码的方式或者二维码辅助导向机构来进行对准,但是在无辅助设施时,则无法进行对准。

发明内容

本申请实施例提供了一种目标对象的定位方法,用以提高对准成功率。

本申请实施例提供了一种目标对象的定位方法,所述方法包括:

获取激光雷达的第一点云数据以及深度相机采集的深度信息;

将所述深度信息投影到激光雷达坐标系下,获得第二点云数据;

分别对所述第一点云数据和第二点云数据进行直线检测,获得对应的多条第一直线段以及多条第二直线段;

根据所述第二直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界。

在一实施例中,所述根据所述第二直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界的步骤包括:

获取所述深度相机采集的标定图案的图像信息;

将标定图案的图像信息转换到机器人坐标系下,获得标定图案的坐标位置;

利用所述标定图案的坐标位置,从多条所述第二直线段中选取所述目标对象的目标直线段;

根据所述目标直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界。

在一实施例中,所述利用所述标定图案的坐标位置,从多条所述第二直线段中选取所述目标对象的目标直线段的步骤包括:

根据所述标定图案的坐标位置,预估所述目标对象的目标边在机器人坐标系下的理论坐标;

将所述理论坐标分别与多条所述第二直线段的实际坐标进行比较,选取实际坐标与所述理论坐标之间的差异小于预设值的第二直线段作为目标直线段。

在一实施例中,所述根据所述目标直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界的步骤,包括:

根据任一所述平行线的第一终点坐标和第二终点坐标,计算所述目标直线段的起点坐标与所述第一终点坐标之间第一距离,以及,所述目标直线段的终点坐标与所述第二终点坐标之间的第二距离;

若所述第一距离和第二距离均小于第一阈值,确定所述平行线与所述目标直线段属于所述目标对象的边界。

在一实施例中,在所述根据所述第二直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界的步骤之前,在所述分别对所述第一点云数据和第二点云数据进行直线检测,获得对应的多条第一直线段以及多条第二直线段的步骤之后,还包括步骤:

根据每条所述第一直线段在机器人坐标系的起点坐标和终点坐标,通过计算每条所述第一直线段的斜率,筛选出所述起点坐标和终点坐标均在预设范围内,且斜率相同的两条所述第一直线段作为一组所述平行线。

在一实施例中,所述根据所述第二直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界的步骤包括:

根据多条所述第一直线段中包含的平行线,分别计算每组所述平行线的端点与每条所述第二直线段的端点之间的距离,将所述距离小于第二阈值的平行线和第二直线段作为所述目标对象的边界。

在一实施例中,所述根据多条所述第一直线段中包含的平行线,分别计算每组所述平行线的端点与每条所述第二直线段的端点之间的距离,将所述距离小于第二阈值的平行线和第二直线段作为所述目标对象的边界的步骤包括:

根据任一所述平行线的第一终点坐标和第二终点坐标,计算每条所述第二直线段的起点坐标与所述第一终点坐标之间第一距离,以及,每条所述第二直线段的终点坐标与所述第二终点坐标之间的第二距离;

若所述第一距离和第二距离均小于第二阈值,确定所述平行线与所述第二直线段属于所述目标对象的边界。

在一实施例中,所述方法还包括:

将属于所述边界的平行线的中点坐标作为机器人导航目标点,以供机器人根据所述机器人导航目标点进行导航。

本申请实施例提供了一种目标对象的定位装置,所述装置包括:

数据获取模块,用于获取激光雷达的第一点云数据以及深度相机采集的深度信息;

数据转换模块,用于将所述深度信息投影到激光雷达坐标系下,获得第二点云数据;

直线检测模块,用于分别对所述第一点云数据和第二点云数据进行直线检测,获得对应的多条第一直线段以及多条第二直线段;

边界确定模块,用于根据所述第二直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界。

本申请实施例还提供了一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述任意一种目标对象的定位方法。

本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述任意一种目标对象的定位方法。

本申请上述实施例提供的技术方案,根据激光雷达的第一点云数据进行直线检测获得第一直线段,根据深度相机对应的第二点云数据进行直线段获得第二直线段,通过计算第一直线段中包含的平行线的端点与第二直线段的端点之间的距离,从而可以确定属于目标对象的边界的平行线和直线段,便于在搬运目标对象时进行对准,本申请在无二维码和辅助导向机构的前提下也能定位目标位置,大大提高了对准成功率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的目标对象的定位系统的框图;

图2是本申请实施例提供的电子设备的结构示意图;

图3是本申请实施例提供的目标对象的定位方法的流程示意图;

图4是本申请一实施例示出的霍夫直线检测的原理示意图;

图5是图3对应实施例中步骤S340的细节流程图;

图6是本申请一实施例示出的目标对象的示意图;

图7是本申请一实施例提供的目标对象的边界的示意图;

图8是图5对应实施例中步骤S3344的细节流程图;

图9为本申请一实施例示出的一种目标对象的定位装置的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图1为本申请实施例提供的目标对象的定位系统的框图。如图1所示,该定位系统100可以应用于运输机器人,搬运目标对象。该定位系100统可以包括激光雷达101、深度相机102以及中控平台103。激光雷达101和深度相机102连接中控平台103。激光雷达101的点云数据以及深度相机102采集的深度信息可以传输至中控平台103,从而中控平台103可以执行本申请下述实施例提供的方法,确定目标对象的位置。

图2是本申请实施例提供的电子设备的结构示意图。该电子设备200可以作为上述中控平台103,该电子设备200可以用于执行本申请实施例提供的目标对象的定位方法。如图2所示,该电子设备200包括:一个或多个处理器202、一个或多个存储处理器可执行指令的存储器204。其中,所述处理器202被配置为执行本申请下述实施例提供的目标对象的定位方法。

所述处理器202可以是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备200中的其它组件的数据进行处理,还可以控制所述电子设备200中的其它组件以执行期望的功能。

所述存储器204可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的目标对象的定位方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

在一实施例中,图2所示电子设备200还可以包括输入装置206、输出装置208以及数据采集装置210,这些组件通过总线系统212和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备200的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备200也可以具有其他组件和结构。

所述输入装置206可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置208可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置210可以采集对象的图像,并且将所采集的图像存储在所述存储器204中以供其它组件使用。示例性地,该数据采集装置210可以为摄像头。

在一实施例中,用于实现本申请实施例的目标对象的定位方法的示例电子设备200中的各器件可以集成设置,也可以分散设置,诸如将处理器202、存储器204、输入装置206和输出装置208集成设置于一体,而将数据采集装置210分离设置。

图3是本申请实施例提供的目标对象的定位方法的流程示意图,如图3所示,该方法包括以下步骤S310-步骤S350。

步骤S310:获取激光雷达的第一点云数据以及深度相机采集的深度信息。

激光雷达是以发射激光束探测目标的方位、距离等特征量的雷达系统。其中,第一点云数据是指激光雷达的扫描数据,第一点云数据包括不同方位上的反射点与激光雷达坐标系的原点之间的方位角和距离。激光雷达坐标系是指以激光雷达所在位置为原点构建的极坐标系。

深度相机是指在传统相机的基础上添加了一个深度测量功能,也就是可以检测与目标之间的距离。深度相机可以是realsense(实感摄像头)。深度信息是指目标在深度相机坐标系下的位置坐标。

步骤S320:将所述深度信息投影到激光雷达坐标系下,获得第二点云数据。

第二点云数据是指基于深度相机采集的数据获得的目标在雷达坐标系的方位角和距离。在一实施例中,根据深度相机坐标系与激光雷达坐标系之间的映射关系,可以将深度相机坐标系下的深度信息映射得到激光雷达坐标系下的方位角和距离,得到第二点云数据。

步骤S330:分别对所述第一点云数据和第二点云数据进行直线检测,获得对应的多条第一直线段以及多条第二直线段;

其中,所述第一直线段从所述第一点云数据中检测得到,第二直线段从所述第二点云数据中检测得到。直线检测可以采用霍夫直线检测方法。如图4所示的直线可以表示成r=xcosθ+ysinθ,r是坐标系原点到直线的距离,θ是直线的垂直线和x轴的夹角。给定一个点(x

故可以统计第一点云数据中出现次数较大的(r,θ),将(r,θ)对应的直线作为检测到的第一直线段。统计第二点云数据中出现次数较多的(r,θ),将(r,θ)对应的直线作为检测到的第一直线段。r可以认为是距离,θ为方位角。故第一直线段可以认为是基于激光雷达的扫描数据检测到的直线段。第二直线段可以认为是基于深度相机采集的深度信息检测到的直线段。

在一实施例中,可以用第一直线段在机器人坐标系下的起点坐标和终点坐标表示第一直线段。可以用第二直线段在机器人坐标系下的起点坐标和终点坐标表示第二直线段。机器人坐标系是指以机器人中心为原点的坐标系。例如机器人正前方为x轴方向,左手方向为y轴方向,头部方向为z轴方向。机器人坐标系与激光雷达坐标系可以存在一个x轴的平移,即激光雷达坐标系的原点在机器人坐标系下为(x,0,0)。

步骤S340:根据所述第二直线段的端点与多条所述第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界。

其中,平行线包含相互平行的两条第一直线段。这两条平行的第一直线段又可以称为一组平行线。多条第一直线段中可以包含一组或多组平行线。如果某条第二直线段的端点与某组平行线的端点之间的距离小于阈值,可以认为该第二直线段与该组平行线属于目标对象的边界。将属于边界的平行线的中点坐标可以作为机器人导航目标点,以供机器人根据所述机器人导航目标点进行导航。

在一实施例中,多条第一直线段中包含的平行线可以通过以下方式获得:根据每条第一直线段在机器人坐标系的起点坐标和终点坐标,通过计算每条第一直线段的斜率,筛选出所述起点坐标和终点坐标均在预设范围内,且斜率相同的两条第一直线段作为一组所述平行线。

假设存在两条直线,起点分别为[x

其中,预设范围可以是机器人坐标系下的X轴[-0.5,2],Y轴[-1.0,1.0](单位M)。根据每条第一直线段的起点坐标和终点终点,可以找出处于该范围内所有的平行线,并记录平行线的起点坐标和终点坐标。其中,从上而下的直线段,上端可以认为是起点坐标,下端可以认为是终点坐标,但并不以此为限。

由于货箱一般会在机器人的前方,故本申请实施例通过限制坐标范围,从而可以剔除很多其他范围内不必要的干扰,还可以减小计算量,不用寻找所有激光雷达下的平行线。

在一实施例中,上述步骤S340可以分为有标定图案和无标定图案两种情况。

在有标定图案的情况下,如图5所示,上述步骤S340具体包括:

步骤S341:获取所述深度相机采集的标定图案的图像信息。

步骤S342:将标定图案的图像信息转换到机器人坐标系下,获得标定图案的坐标位置。

标定图案的坐标位置是指标定图案在机器人坐标系下的旋转量和位移,即T。标定图案相对机器人坐标系的旋转与位移可以通过获取深度相机采集的标定图案的图像信息。图像信息包含色彩信息(即RGB值)和深度信息(即标定图案相对深度相机的位置坐标)。对图像信息中包含的色彩信息进行阈值化,提取图像轮廓以及轮廓滤波;之后获取角点位置,对角点位置进行仿射变换。根据深度相机的相机坐标系与机器人坐标系之间的映射关系,将标定图案的图像信息(即仿射变换后的深度信息)转换到机器人坐标系下,获得标定图案的坐标位置。

图6是本申请一实施例示出的目标对象的示意图。如图6所示,标定图案51贴于目标对象50上。目标对象50可以是垃圾桶、货箱等等。标定图案51可以是二维码图案(例如aruco码)。标定图案51可以贴在货箱的固定位置,例如货箱前表面距离底边35cm处。在一实施例中,可以利用ros框架(分布式处理框架)中自带的aruco_ros算法实时获取标定图案相对机器人坐标系的旋转与位移。即

步骤S343:利用所述标定图案的坐标位置,从多条所述第二直线段中选取所述目标对象的目标直线段。

其中,目标直线段可以是目标对象的底边直线段或顶边直线段。

在计算得到标定图案的坐标位置后,由于已知标定图案贴在目标对象的固定位置,例如距离底边35cm处且位于货箱左右的中心。且标定图案贴于平面,不存在横滚角和俯仰角,故根据标定图案的坐标理论推算出标定图案下方的目标边(如货箱底边)相对于机器人坐标系的理论坐标为

其中,第二直线段的实际坐标可以包括第二直线段的中点坐标以及第二直线段的垂线角度。通过计算理论坐标L与某条第二直线段的实际坐标之间的差值的绝对值,如果差值的绝对值小于预设值,则认为该条第二直线段为目标直线段。目标直线段可以认为是货箱的底边所在直线段。在一实施例中,可以用目标直线段的起点坐标和终点坐标表示目标直线段。

步骤S344:根据所述目标直线段的端点与所述多条第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界。

其中,斜率相同的至少两条第一直线段可以认为是平行线。图7是目标对象的边界的示意图。从图7中可以看出,平行线的端点(A1、B1)与底边直线段的端点(A2、B2)之间的距离非常接近。在基于标定图案确定了目标直线段后,可以通过计算目标直线段的端点与某组平行线的端点之间的距离,如果距离小于阈值,则认为该组平行线与底边直线段一起构成了目标对象的边界。从而在搬运目标对象时,可以基于边界的位置进行对准。

在一实施例中,如图8所示,上述步骤S344具体包括:

步骤S3441:根据任一所述平行线的第一终点坐标和第二终点坐标,计算所述目标直线段的起点坐标与所述第一终点坐标之间第一距离,以及,所述目标直线段的终点坐标与所述第二终点坐标之间的第二距离。

其中,第一条直线和第二条直线平行,则这两条直线称为平行线。第一终点坐标是指第一条直线的下方的端点坐标。第二终点坐标是指第二条直线的下方的端点坐标。如图7中所示,A1的坐标可以认为是第一终点坐标,B1的坐标可以认为是第二终点坐标。A2的坐标可以认为是目标直线段的起点坐标,B2的坐标可以认为是目标直线段的终点坐标。

举例来说,假设目标直线段的起点坐标为[x

步骤S3442:若所述第一距离和第二距离均小于第一阈值,确定所述平行线与所述目标直线段属于所述目标对象的边界。

其中,第一阈值可以是0.1,若这组平行线就是需要找的,则存在第一距离

在确定了目标直线段的位置后,可以通过遍历所有的平行线,根据目标直线段的起点坐标和终点坐标去唯一确定一组平行线,与目标直线段一起构成目标对象的边界。之后,可以将属于边界的平行线的中点坐标作为机器人导航目标点进行导航。即将平行线的中点坐标作为目标点进行导航,例如机器人的机械臂可以与中点坐标进行对准,将中点坐标作为抓取点,抓取目标对象。

本申请实施例使用激光雷达的扫描数据进行对准,可以有效的解决深度相机视场角小、对准时存在盲区等问题。使用标定图案确定的目标直线段对激光雷达得到的平行线进行校验,可以避免周围环境相似特征的干扰,提高系统的鲁棒性。

在一实施例中,在无标定图案的情况下,则可以根据多条第一直线段中包含的平行线,分别计算每组平行线的端点与每条第二直线段的端点之间的距离,将所述距离小于第二阈值的平行线和第二直线段作为所述目标对象的边界。

其中,平行线的提取方式可以参见上文,在此不再赘述。由于无法通过标定图案的辅助来确定目标直线段,故需要遍历所有第二直线段和所有平行线,计算任一平行线的下方两个端点(A1、B1)与任一第二直线段起点(A2)、终点(B2)之间的距离。如果A1与A2之间的距离,B1和B2之间的距离,均小于阈值,则认为当前的平行线和第二直线段属于目标对象的边界,可以将此平行线的中点坐标作为机器人导航目标点进行导航。

举例来说,针对任一平行线和任一第二直线段,可以根据平行线的第一终点坐标[α

需要说明的是,在上述任一实施例中,满足第一距离和第二距离均小于第一阈值的平行线为多组的情况下,则根据预设规则筛选出一组平行线为所述目标对象的边界。在一示例中,预设规则为第一距离和第二距离的均值最小。在又一示例中,预设规则为第一距离或第二距离最小。根据第二阈值确定目标对象的边界时,如果存在多组满足第二阈值的平行线的情况下,确定目标对象的边界的实施方式与前文所述的相同或相似,在此不再赘述。

从上述实施例可知,标定图案与点云数据为松耦合关系,可以进行互相校验,但不绝对依赖,在缺乏标定图案时,也可基于激光雷达检测的平行线以及深度相机检测的直线段,确定目标对象的边界,算法的实用性很高。本申请实施例提供的定位方法抛弃了传统的只用aruco(二维码)导航或lidar(雷达)导航,将两者进行了融合定位,通过标定图案辅助确定目标直线段。多冗余对准设计,防止了单一传感器失效,导致无法对准的情况(如光照影响相机导致aruco检测失效)。本申请实施例提供的技术方案大大提高对准精度和成功率。

下述为本申请装置实施例,可以用于执行本申请上述目标对象的定位方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请目标对象的定位方法实施例。

图9为本申请一实施例示出的一种目标对象的定位装置的框图。如图9所示,所述装置包括:数据获取模块810、数据转换模块820、直线检测模块830以及边界确定模块840。

数据获取模块810,用于获取激光雷达的第一点云数据以及深度相机采集的深度信息;

数据转换模块820,用于将所述深度信息投影到激光雷达坐标系下,获得第二点云数据;

直线检测模块830,用于分别对所述第一点云数据和第二点云数据进行直线检测,获得对应的多条第一直线段以及多条第二直线段;其中,所述第一直线段从所述第一点云数据中检测得到,第二直线段从所述第二点云数据中检测得到;

边界确定模块840,用于根据所述第二直线段的端点与所述多条第一直线段包含的平行线的端点之间的距离,确定所述目标对象的边界。

上述装置中各个模块的功能和作用的实现过程具体详见上述目标对象的定位方法中对应步骤的实现过程,在此不再赘述。

在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 目标对象定位方法、装置、电子设备和存储介质
  • 目标对象定位方法、装置、电子设备和存储介质
技术分类

06120112879372