一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于激光雷达的库位检测方法与系统与流程

2022-11-09 22:49:24 来源:中国专利 TAG:


1.本发明涉及amr搬运领域,尤其涉及一种基于激光雷达的库位检测方法与系统。


背景技术:

2.自主移动机器人(automated mobile robot,简称amr),是指装备有自动导航和感知系统,沿规划好的线路自动行驶,如果行驶线路上有障碍物,并具有绕障功能。amr在工业应用中不需要驾驶员,一般采用蓄电池作为其动力来源,通过激光、视觉等传感器感知周边环境,并通过工控机和电控系统来控制其行进路线和行为。amr系统与其他人工物流系统相比,具有环境适应性强、自动化程度高、工作时长不受限等优点,对企业提高生产效率、降低生产成本有着重要意义。
3.当前的仓储调度系统会告诉amr搬运机器人取货或卸货指令,但不会告诉amr哪个区域有货。如果来实现上述目的,需要在仓库部署大量的传感器(例如相机)进行人工或自动监测仓库的状态。这对企业来说需要投入大量成本对现有仓库进行施工改造和后期维护。
4.因此近几年随着amr传感器配置的提高,出现了很多机遇amr自身传感器检测库位的方法。一种是基于rgb-d深度相机检测库位是否可用,该方案中tof相机的rgb容易受光线的影响,尤其是在强光、弱光、明暗相间的场景下,容易产生误检,导致库位检测失败。而且rgb-d相机的检测距离有限,只能检测5米内的库位是否可用,当库位较深时,无法检测库位深处是否有货物,因此使用范围有限。另一种类为采用单线激光雷达,无法区正在库位中作业的行人或车辆与货物的差异,因此当库位有正在作业的车辆时,此方法会误识别为货物进行取货,可能会引发安全事故。


技术实现要素:

5.本发明针对当前amr搬运机器人在取货和卸货时遇到的库位识别系统中存在的不足,提出了基于3d激光雷达识别库位方法与系统。
6.该方法步骤如下:
7.步骤1:接收外部依赖信息,包括激光雷达点云、库位信息、取卸货指令;所有数据接收完成后进行步骤2。
8.步骤2:库位列信息初始化根据接收的库位列信息,每一列均生成一个库位列。
9.步骤3:点云过滤为滤掉无效的点云,以加快后续步骤的处理效率。进行点云过滤,包含边界点云过滤、自车点云过滤、地面点云过滤和离散点云过滤;经过过滤后的点云用于检测库位中是否有货,及是否有行人或车辆等异常障碍物。
10.步骤4:设定异常高度阈值,本专利采用的是3d激光雷达,具有高度信息。检测到列内有高于异常高度阈值的点云,则判断为列内有异常障碍物,将当前列信息发送给调度系统并进行播报,检测到列内没有高于异常高度阈值的点云,则进行步骤5;
11.步骤5:直到车辆到达发送列信息位置d时,进行置信度判断,设置列可用置信度m,
取货阶段,如果当前列的置信度大于可用置信度m,当前库位列可用,将列信息发送给调度信息,车辆到当前列进行取货;卸货阶段,当前列的置信度小于可用置信度m,当前库位列可用,将列信息发送给调度信息,车辆到当前列进行卸货。
12.步骤6:如果当前列不可用,则进入下一列并返回步骤3,直到车辆与最后一列的列首距离小于d时,车辆到达最后一列;如果最后一列可用,车辆到最后一列取货或卸货,如果最后一列不可用,取货阶段,发送返回待命点信号,车辆返回待命点;卸货阶段,车辆停在最后一列附近,并播放语音,提示人工移除货物,当工作人员移除库位中货物时,发送可用列信息,进行卸货。
13.进一步地,所述库位列信息初始化具体步骤为:
14.从仓储调度系统接收的列信息包含列个数、列起点、列终点、货物宽度w和长度h、取卸货指令信息,根据这些信息生成多个四边形和车辆坐标系,车辆坐标系为沿车头向前为y轴,与车头方向的切向方向向右为x轴。
15.取货阶段:设列起点a(x0,y0),列终点b(x1,y1),终点到起点的单位向量v(x,y),v的两个法向量分别为v1(-y,x)、v2(y,-x),列宽w,形成的四边形为a0a1b1b0,四边形的四个顶点分别为:
16.a0.x=x0 (-y*w/2)
ꢀꢀ
a0.y=y0 (x*w/2)
17.a1.x=x0 (y*w/2)
ꢀꢀ
a1.y=x1 (-x*w/2)
18.b0.x=x0 (-y*w/2)
ꢀꢀ
b0.y=y0 (x*w/2)
19.b1.x=x0 (y*w/2)
ꢀꢀ
b1.y=x1 (-x*w/2)
20.卸货阶段:卸货阶段只看列首是否有货;因此检测区域的起点为列起点a(x0,y0),检测区域的终点到起点的距离为一个货物的长度h,即终点b(x1,y1),终点到起点的单位向量v(x,y),v的两个法向量分别为v1(-y,x)、v2(y,-x),列宽w,形成的四边形为a0a1b1b0,四边形的四个顶点分别为:
21.x1=x0 (-x*h)
ꢀꢀ
y1=y0 (-y*h)
22.a0.x=x0 (-y*w/2)
ꢀꢀ
a0.y=y0 (x*w/2)
23.a1.x=x0 (y*w/2)
ꢀꢀ
a1.y=x1 (-x*w/2)
24.b0.x=x0 (-y*w/2)
ꢀꢀ
b0.y=y0 (x*w/2)
25.b1.x=x0 (y*w/2)
ꢀꢀ
b1.y=x1 (-x*w/2)
26.进一步地,所述点云过滤模块包含边界过滤、自车过滤、地面过滤、离散点过滤;
27.所述边界点云过滤为过滤边界以外的点云,边界的设置要能够覆盖到库位区域;
28.所述自车点云过滤为过滤掉打在自车身上的点云;
29.所述地面点云过滤为过滤掉打在地面上的点云,
30.所述离散点过滤为以任意点p为圆心,r为半径,假如剩余点到点p的距离小于r的个数为n,如果n小于设定的阈值,则认为点p属于离散点,需要滤除。
31.进一步地,所述发送列信息位置d为预设的车辆停止时,3d激光雷达最下面一根线束打在列首时的距离。
32.本发明提供了一种基于激光雷达的库位检测系统,所述系统包括:数据接收模块、数据发送模块、库位列信息初始化模块、点云过滤模块和库位识别模块;
33.所述数据接收模块是基于网络接收本系统的外部依赖信息,包括接收激光雷达点
云、库位信息和取卸货指令;
34.所述数据发送模块用于基于网络发送程序中的中间结果和库位检测结果;
35.所述库位列信息初始化模块根据数据接收模块接收到库位列信息,生成库位列,用于后续的点云过滤;
36.所述点云过滤模块为滤掉无效的点云,以加快后续步骤的处理效率;
37.所述库位识别模块是基于3d线激光雷达检测当前列是否有货及异常障碍物。
38.该发明的有益效果:
39.该方法不仅不受光线影响,而且还能识别库位中正在作业的行人或车辆等其它异常障碍物。本系统复用amr车身的激光雷达,无需改造现有仓库,通过使用本发明,能够大大提高货物的搬运效率与能够有效杜绝安全事故的发生。
附图说明
40.图1为一示例性实施例提供的基于激光雷达的库位检测方法的流程示意图;
41.图2为一示例性实施例提供的基于激光雷达的库位检测的库位列示意图;
42.图3为一示例性实施例提供的基于激光雷达的库位检测的车体坐标系示意图;
43.图4为一示例性实施例提供的基于激光雷达的库位检测的四边形示意图;
44.图5为一示例性实施例提供的基于激光雷达的库位检测的体素集合示意图;
45.图6为一示例性实施例提供的基于激光雷达的库位检测的取货流程示意图;
46.图7为一示例性实施例提供的基于激光雷达的库位检测的3d激光雷达扫描示意图。
具体实施方式
47.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
48.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
49.本方法实施例提供了一种基于激光雷达的库位检测方法,该方法工作的时序如图1所示,详细步骤如下:
50.步骤1:基于网络接收外部依赖信息,包括接收激光雷达点云、库位信息、取货指令或卸货指令。这些数据的接收为串联关系,所有数据接收完成后才进行库位检测。
51.步骤2:库位列信息初始化根据接收到库位列信息,在车体坐标系下生成如图所示的多个库位列,用于后续的点云过滤;本方法将库位区域等分为多列,需要每列的列首、列尾坐标、列宽等信息,该信息从调度系统获取,如图2所示。
52.车辆坐标系的定义为:为沿车头向前为y轴,与车头方向的切向方向向右为x轴,如图3所示。
53.该方法基于列管理的思想进行取卸货,即取货阶段:从列首到列尾依次取货,卸货阶段:从列尾到列首依次卸货。因此两个阶段的检测区域是不一样的,取货阶段,检测区域为从列首到列尾,卸货阶段,检测区域为列首附近。
54.取货阶段:取货阶段需要确认库位列内是否有货,因此生成的库位列长度是从列首到列尾。设列起点a(x0,y0),列终点b(x1,y1),终点到起点的单位向量v(x,y),v的两个法向量分别为v1(-y,x)、v2(y,-x),列宽w,形成如图4所示的四边形为a0a1b1b0,四边形的四个顶点计算方式如公式1所示。
[0055][0056]
卸货阶段:卸货阶段只需确认列首是否闲置,因此生成的库位列长度是一个货物的长度。设列起点a(x0,y0),检测区域的终点到起点的距离为一个货物的长度h,即终点b(x1,y1),终点到起点的单位向量v(x,y),v的两个法向量分别为v1(-y,x)、v2(y,-x),列宽w,形成如图4所示的四边形a0a1b1b0,四边形的四个顶点计算方式如公式2所示。
[0057][0058]
步骤3:点云过滤为滤掉无效的点云,以加快后续步骤的处理效率。包含过滤打在自车身上的点云、步骤2中生成库位列以外的点云、打在地面上的点云和离散的点云。经过过滤后的点云用于检测库位中是否有货,及是否有行人或车辆等异常障碍物。
[0059]
所述边界过滤为库位列以外的点云,即过滤四边形a0a1b1b0以外的点云。四边形a0a1b1b0四个顶点坐标分布为a0(x
11
,y
11
),a1(x
22
,y
22
),b1(x
33
,y
33
),b0(x
44
,y
44
)。经自车过滤后的任意点云pt(x
55
,y
55
)。设向量与向量的叉积dot0、向量与向量的叉积dot1、向量与向量的叉积dot2、向量与向量的叉积dot3。如果dot0*dot1*dot2*dot3>0,则认为点pt在四边形a0a1b1b0内,需要保留;如果dot0*dot1*dot2*dot3≤0,则说明点pt在四边形a0a1b1b0外,需要滤除。其中向量外,需要滤除。其中向量的计算如公式3所示。叉积dot0、dot1、dot2、dot3的计算如公式4所示。
[0060][0061][0062]
所述自车过滤为过滤掉打在自车身上的点云,将边界过滤和自车过滤后的点云集合为pointclouda;
[0063]
所述地面过滤为过滤掉打在地面上的点云,采用降维的方法过滤打在地面上的点云,将3d点云(x,y,z)降到二维(d,z),d为点云到雷达的距离d=sqrt(x2 y2),z为点云高度。
[0064]
步骤

:基于3d雷达特性生成n个体素集合s,每个体素集合包含m个体素。本专利使用3d雷达扫描一周为360
°
,即生成n=360个体素集合,每个体素的步长step=0.1,如图5所示的体素。
[0065]
步骤

:将pointclouda中的所有点云投影到对应的体素中,投影的过程即为降维:将点云(x,y,z)降到二维(d,z)。在投影的过程中记录每个体素中z值最小的(d,z)对,并存入对应体素集合最小高度点对队列s
min(d,z)

[0066]
步骤

:对每个s的最小高度点对队列s
min(d,z)
拟合直线z=k*d b,k为路面的坡度,b为常数。
[0067]
步骤

:基于拟合的直线判断点到路面的高度,如果高度小于高度阈值0.1米,则该点是路面点,否则为障碍物点。
[0068]
步骤

:重复步骤

和步骤

,直到计算完所有体素集合,即完成过滤打在地面上的点云,经地面过滤后的点云集合为pointcloudb。
[0069]
所述离散点过滤;以任意点p为圆心,r为半径,假如剩余点到点p的距离小于r的个数为n,如果n小于5,则认为点p属于离散点,需要滤除。具体步骤如下:
[0070]
假设经边界过滤、自车过滤和地面点云过滤保留下来的所有点云集合为pointcloudb,首先对pointcloudb构建二叉树,本方法使用的是kd-tree;
[0071]
本方法使用的3d激光雷达,有x、y、z两个维度,首先计算pointcloudb中点云在x方向、y方向、z方向的方差,并确定方差最大的维度,假设方差最大的维度在x方向。然后找出维度x上所有数据项的中位数xa,按xa划分数据集,一分为二,记这两个数据子集为sa,sb。建立树节点,存储这次划分的情况,即记录划分的维度x以及中位数xa。
[0072]
对sa,sb重复进行以上的划分,并且将新生成的树节点设置为上一次划分的左右
子节点;
[0073]
递归地进行以上两步,直到不能再划分为止。
[0074]
从pointcloudb选择任意点p,从kd-tree的根结点开始检索,计算点p与kd-tree的结点距离,如果距离小于r=0.05米,则与点p距离小于r的个数n递增,直至达到kd-tree的叶子结点,如果n<5,则认为点p属于离散点,需要滤除;当n≥5时,点p保留。重复此步骤,直到pointcloudb内所用点云都参与计算,即完成了离散点过滤。
[0075]
步骤4:库位识别,本方法是基于3d激光雷达检测当前列是否有货及异常障碍物。
[0076]
本方法为从近及远循序检测每列是否可用,例如取货阶段的时序如图6所示,卸货时序与取货相似。
[0077]
本方法基于高度信息判断列中是否有行人或车辆等异常障碍物,判断方法为:设定异常高度阈值h=1.5米,本方法采用的是3d激光雷达,具有高度信息。
[0078]
如果检测到列内有障碍物,判断列内是否有高于h的点云,如有,说明列内行人或车辆异常障碍物,将当前列不可用信息发送给调度系统,车辆停在当前列附近,同时播报移除异常障碍物语音信息,直到异常障碍物移除后,车辆继续行驶;否则认为列内有货,当前列可用的置信度加1。
[0079]
步骤5:直到车辆到达发送列信息位置d时,进行置信度判断,如图7所示,d为车辆停止时,3d激光雷达最下面一根线束打在列首时的距离。设列可用置信度为m=10,取货阶段,如果当前列的置信度大于可用置信度m,当前库位列可用,将列信息发送给调度信息,车辆到当前列进行取货;卸货阶段,当前列的置信度小于可用置信度为m,当前库位列可用,将列信息发送给调度信息,车辆到当前列进行卸货。
[0080]
步骤6:如果当前列不可用,则进入下一列并返回步骤3,直到车辆与最后一列的列首小于距离小于d时,车辆到达最后一列;如果最后一列可用,车辆到最后一列取货或卸货,如果最后一列不可用,取货阶段,发送返回待命点信号,车辆返回待命点;卸货阶段,车辆停在最后一列附近,并播放语音,提示人工移除货物,当工作人员移除库位中货物时,发送可用列信息,进行卸货;
[0081]
本发明实施例提供的一种基于激光雷达的库位检测系统,该系统包括:数据接收模块、数据发送模块、库位列信息初始化模块、点云过滤模块和库位识别模块;
[0082]
所述数据接收模块是基于网络接收本系统的外部依赖信息,包括接收激光雷达点云、库位信息和取卸货指令;
[0083]
所述数据发送模块用于基于网络发送程序中的中间结果和库位检测结果;
[0084]
所述库位列信息初始化模块根据数据接收模块接收到库位列信息,生成库位列,用于后续的点云过滤;
[0085]
所述点云过滤模块为滤掉无效的点云,以加快后续步骤的处理效率;
[0086]
所述库位识别模块是基于3d线激光雷达检测当前列是否有货及异常障碍物。
[0087]
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方
案保护的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献