关键词 料仓; 储料量; 激光雷达; 点云处理; 三维重建
中图分类号 TN958.98;S816 文献标识码 A 文章编号 1000-2421(2024)03-0293-09
大型饲料生产企业一般采用立筒仓储存生产用的谷物类原料[1-2]。目前,仓内储料量测量方法可以分为2 种,即直接测量方式和间接测量方式[3]。直接测量方式是利用压力传感器直接测得储料量质量。丁虹民[4]通过改进传感器的弹性应变体结构和封装形式,使粮食散料的分布式载荷转化成集中载荷进行测量,当储料量发生变化时,传感器的弹性变形会使得应变片阻值发生相应变化,以电信号反馈质量信息。刘世界[5]通过制作的三维力传感器测量装置仓壁与粮食之间正压力与相对静摩擦力的测试系统,结合粮仓底部压力的测量,实现储料量的质量测量。直接测量方式尽管测量手段简单,但适用于大型筒仓的大量程高精度的压力传感器成本较高;另一方面温度、湿度、恶劣天气影响等因素均会对传感器的测量精度产生影响,且需定期对压力传感器进行定期标定,测量过程复杂且精度不稳定。
间接测量方式是通过激光雷达扫描技术对储存物料进行扫描,获得储存物料的体积,结合物料容重确定储存物料质量。激光雷达扫描技术具有受光照影响小、分辨率高、扫描速度快等优点[6-8],受到研究者的广泛关注,如在家畜体尺测量、植物株高测量、树冠体积计算、土方量计算等[9-13]领域有着广泛的应用。在物料储料量测量方面,谢颖[14]、李鹏[15]、李凯[16]为实现对粮仓的储料量测量,开发了一种基于三维激光扫描的粮仓快速建模与储粮体积快速测量技术,实现了对粮仓储粮的快速高精度的测量。邵晴等[17]为实现仓储粮储量在线实时监测,开发了一种基于三维激光扫描技术的粮食储量在线监测系统,解决了仓储粮储量快速高精度测量的问题。间接测量方式需要根据不同的方式构建不同的运算方法,但其测试过程稳定,无需定期校准,对激光雷达合理的选型可良好控制成本,更有利于企业对料仓进行系统管理。
为探讨基于二维激光雷达扫描的储料量测量方法的可行性,本研究设计了一种基于二维激光雷达的储料量测量装置,利用二维激光雷达实现对物料的三维扫描,采集物料的三维点云数据并对三维点云进行处理,利用三维重建方法计算物料的体积,结合物料容重实现物料储料量自动测量,旨在为大型料仓的储料量测量提供技术支撑。
1 材料与方法
1.1 测量系统
1)测量装置结构。储料量测量装置整体结构如图1 所示。该装置由二维激光雷达、高精度伺服电机、直流电动推杆、驱动控制器、支架等组成。为了防止粉尘对测量设备的污染,在激光雷达下方设置防尘板。防尘板和测量模块均以电动推杆为执行元件,激光雷达通过L 型支座与伺服电机和电动推杆相连于装置内部上方。本装置采用RPLIDAR S1型二维激光雷达,其测量半径为40 m,测距分辨率为3 cm,测量精度为±5 cm。伺服电机采用国产RMD-S-5010 型,编码精度为16 bit,最小的可调节角度为0.01°。
2)扫描测量原理。激光雷达采用脉冲式测距技术,测距过程如下:由激光雷达发射窗口发出1 个持续时间极短的脉冲激光,被目标物体反射,发射脉冲激光信号被激光接收窗口中的光电探测器接收,通过计算激光发射和回波信号接收的时间间隔获得目标物体距离。激光雷达扫描过程沿顺时针方向旋转,旋转角度范围为0°~360°。在扫描过程中,由于每次扫描只能获得1 个平面内的距离信息,为了获取储存物料表面三维点云,通过伺服电机控制二维激光雷达的方位角,驱动二维激光雷达的旋转,实现二维激光雷达对仓内储存物料的全覆盖三维扫描。
激光雷达扫描获取的数据由被测距离值d、扫描角度α 和电机转动的方位角η 组成。采集到的信息为极坐标系下的数据,坐标系原点为测距核心的旋转中心,其发射窗口的正前方定义为坐标系的x 轴,x轴在横向扫描面内,y 轴在横向扫描内与x 轴垂直,z轴与横向扫描面垂直(图2)。图2 中,其中P 为扫描点,P’为扫描点在xOy 平面上的投影点。由此可得点云的三维坐标转换公式为:
式(1)中:d 为雷达与扫描点的距离值,mm;α 为激光雷达扫描的偏转角,(°);η 为伺服电机偏转的方位角,(°);H 为激光雷达距离地面的高度,3 600 mm。
3)控制系统。储料量测量控制系统主要包括Arduino UNO 开发板、四路5 V 继电器、按键模块、供电模块、串口通信转换器等。控制系统硬件连接图如图3 所示。控制系统主要包括激光雷达与伺服电机通信部分和推杆控制2 部分,实现对物料点云数据的采集、电动推杆伸缩等过程的控制。电动推杆控制部分主要由Arduino UNO 开发板、独立按键模块和继电器模块组成,Arduino 单片机连接继电器和独立按键模块,独立按键模块通过继电器控制电动推杆的伸缩动作。测量装置开启扫描前1 号电动推杆缩回,打开防尘板;2 号电动推杆推动激光雷达伸入仓内开启扫描,扫描结束后2 号电动推杆拉回激光雷达复位,1 号电动推杆伸出,关闭防尘板。激光雷达与伺服电机控制部分主要由激光雷达、伺服电机和PC 端组成,PC 端可以实时获取激光雷达的扫描数据、设备信息、设备健康状态,PC 端还可以给伺服电机发送控制指令,电机接收到指令后根据命令类型选择驱动方式,激光雷达和伺服电机通过PC 端进行串口通信,激光雷达在每个方位角完成扫描后,暂停扫描,立即通过PC 端向伺服电机发送控制指令,伺服电机继续旋转1 个方位角后,激光雷达继续开启扫描,重复以上动作直至伺服电机完成360°旋转。
1.2 试验材料
采用自主设计的储料量测量系统,以玉米为试验对象,通过小型料塔内玉米储料量测量验证试验,对料塔储料量测量方法的可行性及测量精度进行试验。测定玉米平均容重为735.90 kg/m3;料塔总体高度为3 m,总容量为2.8 m3,其中直体部分高度为0.68 m,上锥体部分为0.58 m,下锥体部分为1.74 m。试验测量现场如图4 所示。
1.3 试验方法
将玉米分9 次投入到料塔内,每次上料100 kg,共上料900 kg。采集不同储料量的玉米扫描数据,并对扫描数据坐标转换得到玉米的三维点云数据,对三维点云数据依次进行重叠点提取、直通滤波、欧式聚类分割、点云拼接等处理,采用三维重建方法计算不同储料量的玉米体积,并对基于三维重建的体积测量方法进行体积验证。验证过程如下:采用容量15 L 桶量取玉米,每次装料完成后用刮板将表面刮平,直至量取100 kg 玉米,并记录量取次数n。试验中最后1 次玉米取样时,玉米没有达到“满桶”,此时将桶内玉米表面刮平,在桶内沿玉米表面作标记线。玉米上料完成后,向桶内注水至桶内标记线位置,使用1 L 量筒确定桶内水的体积Vw,Vw 为最后1 次上料的玉米体积,则玉米总体积的计算公式为:
1.4 点云数据采集与处理
1)扫描数据采集。基于二维激光雷达和伺服电机开发的三维扫描系统在数据采集阶段采用脉冲测距方式获取料塔内物料表面的三维信息,点云数据采集流程如图5 所示。测量装置完成初始设定后,1号独立按键通过Arduino 单片机和继电器控制1 号电动推杆打开防尘板,2 号独立按键通过Arduino 单片机和继电器控制2 号电动推杆推动激光雷达和伺服电机伸入料塔中,激光雷达和伺服电机同步启动开始扫描,扫描结束后推杆控制雷达和防尘板复位。扫描示意图如图6 所示。扫描数据获取后保存进文件夹内,对扫描数据进行坐标转换获得料塔内物料点云的三维信息。
2)料塔内物料点云数据处理。①点云重叠点提取。测量设备由于位置、环境等因素带来的影响,无法精准控制激光雷达只获取物料表面的点云数据,获取到的点云数据还包含料塔壁点云。由于获取到的空料塔点云和储存物料的点云含有共同的重叠部分点云,需要将重叠部分进行对应索引提取。点云索引是2 片点云之间点的一一对应索引,若某一点在某一距离阈值领域内不止其本身一个点,则认为其有重复点[18]。点云索引将三维点云分割为多个子空间来实现空间三维点云的快速检索,从而实现对整体点云的重叠点提取。
②点云滤波。由于2 片点云之间是一一对应索引提取重叠点,未能完全对2 片点云重叠部分做到完全提取,故需要对重叠点提取后的点云进行滤波处理。目前常用的点云滤波方法:直通滤波(passthrough)、半径滤波(radius outlier removal)、条件滤波(conditional removal)、统计滤波(statistical outlieremoval)、体素滤波(voxel grid)等,考虑到后续的分割要求,直接采用直通滤波作为料塔物料点云滤波方法。直通滤波是滤波掉在某一维度方向上定值域内以外的点[19],指定一个维度以及该维度下的值域,遍历点云中的每个点,判断该点在指定维度上的取值是否在值域内,删除不在值域内的点,遍历结束后,留下的点即构成滤波后点云。
③点云分割。经过上述点云滤波后,进行基于kd-tree 最近邻搜索的欧式聚类处理直通滤波后的点云。kd-tree 是一种分k 维数据空间点的数据结构,其常用于多维空间中数据的搜索。kd-tree 的每个节点都是k 维的二叉树,本研究是三维点云,所以kd-tree中的k=3。从树的根节点到其子节点,根节点以x 轴值、子节点以y 轴值、孙节点以z 轴值、曾孙节点以x轴值、依此类推为关键值[20]。每个节点以关键值建立超平面,且超平面垂直于关键值所在的轴,将空间分为2 个部分,左侧的点由左子树表示,右侧的点由右子树表示。kd-tree 邻域搜索如图7 所示。
kd-tree 进行三维空间点的搜索时,从根节点开始以递归的方式向下沿着树进行搜索,搜索到某一节点到给定点的欧氏距离小于设定的最近邻域值则为最近邻点,则该点到给定点的距离为当前最小距离,同时沿着原搜索路径回退至根节点,若发现该点到某一点的距离小于当前最小距离,则继续搜索未曾访问的整个分支树,即时更新最近邻点直至所有的搜索完成,则kd-tree 最近邻搜索完成。
式(5)中:若D≤T,则认为此节点为目标点的最近邻点[20]。按照此方法对所有点云数据进行搜索,直至满足距离阈值的所有最近邻点搜索完毕。物体之间的距离通常可以表明点云是否属于同一物体,如果2 团点云之间最近的距离小于单个点云内部之间的距离,则可以通过欧式聚类分割算法将其分类。欧式聚类分割是对点云数据进行kd-tree 最近邻搜索,将所得最近的邻点归为一类,再将新生成的聚类之间进行欧氏距离计算和迭代,直至划分的聚类中任意2 个聚类之间的欧氏距离都大于设定的距离值,则完成欧式距离分割。
1.5 料塔内物料三维重建和储料量测量
1)物料三维重建。采用贪婪投影三角化算法(greedy projection algorithm)进行塔内储存物料的三维重建。贪婪投影三角化算法将三维点云投影到二维坐标平面内,采用基于Delaunay 的空间区域增长算法对平面内的点云进行三角化,从而获得各点的连接关系,选取1 个三角面作为初始曲面,沿着初始曲面不断扩张,最终形成完整的封闭三角网格曲面模型,实现塔内物料点云的三维重建[21]。
2)储料量测量与评价。针对三维重建后封闭图形体积的测量,类似于注水原理求取体积,通过虚拟化方式向三维封闭图形中注水,直至将其注满,注水体积即为料塔内物料体积[22],根据PCL(point cloudlibrary)点云库的vtkMassProperties 类实现对三维封闭图形的体积计算。
获得物料的体积后,依据物料的容重求得物料的质量,该质量即为扫描测量值。对样本数据的扫描测量值与实际值进行误差分析,使用绝对误差、平均绝对误差、相对误差、平均相对误差作为测量精度的评价指标。
2 结果与分析
2.1 激光雷达扫描数据与处理
为验证该测量方法的可行性,将试验对象分9 次投入料塔中,每次投入的质量为100 kg,共计投入900 kg。对料塔储存物料进行扫描时,首先获取空料塔原始点云,再分别获取不同投放量物料的原始点云,每组原始点云数据为料塔原始点云与物料表面原始点云的拼接点云,共获得了9 组原始点云数据,获得的原始点云如图8 所示(以200 kg 物料为例)。
设置索引距离为20 mm 提取点云重叠点,提取重叠点如图9 所示。从图9 可以明显地看出,原始点云经过重叠点提取后,2 片点云的重叠部分明显变得稀疏,非重叠部分点云密度没有变化,为后续的点云滤波提供了有效的前处理方法。
点云滤波采取直通滤波的方法,指定滤波z 轴上定值域内以外的点,对不同的点云数据选定最合适的定值域,点云滤波如图10 所示。从图10 可以看出,对提取重叠点后的点云进行直通滤波处理,有效滤掉了大部分无效料塔壁点云,避免了无效料塔壁点云对后续的欧式聚类分割造成影响。
由于点云由同一激光雷达获取,点云的疏密程度一致,在进行欧式聚类分割时给定距离阈值为15mm,欧式聚类分割后的点云如图11 所示。从图11可以看出,料塔点云和物料表面点云直通滤波后进行欧式聚类分割,将分割后的料塔点云和物料表面点云进行点云拼接,得到了比较完整的料塔内物料点云,为后续的三维重建提供了便利。
2.2 物料体积验证
9 组点云数据完成上述处理后,再使用贪婪投影三角化算法对点云进行三维重建得到点云的三维封闭图形。经过贪婪投影三角化的三维重建图像如图12 所示。采用自主设计的储料量测量系统测量9 组不同储料量的玉米体积,测量体积与实际体积进行对比分析,基于三维重建的体积验证结果如表1 所示。从表1 可知,基于三维重建方法的体积测量最大绝对误差为0.017 2 m3,最小绝对误差为0.001 6 m3,平均绝对误差为0.008 9 m3;最大相对误差为1.61%,最小相对误差为1.03%,平均相对误差为1.27%。结果表明,基于三维重建的体积测量方法获得的测量值与实际体积相差不大,体积测量效果较好,适用于料仓的储料量测量。
2.3 储料量测量评估
结合玉米的容重与体积确定玉米的质量,从而实现储料量的测量。其中,储料量实际值由人工测量测得,9 组扫描测量值为测量系统测得。试验结果的评价指标如表2 所示,通过对比发现,扫描测量值与实际值没有明显误差,扫描测量值与实际值相比最大的误差出现在第8 组试验中,绝对误差为14.98kg,相对误差为1.87%,最小误差在第2 组试验中,绝对误差为2.27 kg,相对误差为1.14%,9 组试验数据的平均绝对误差为8.05 kg,平均相对误差为1.52%,所有试验数据均符合料塔储料量测量要求。结果表明,基于激光雷达扫描的料塔储料量测量方法是可行的,具有较好的稳定性、较高的精度,能够满足生产实际需求。
3 讨论
本研究提出了一种方便、快捷、准确的基于二维激光雷达扫描的储料量测量方法。采用激光雷达扫描技术,设计了一种基于激光雷达扫描的储料量测量装置与系统,采用小型料塔对该装置的可行性与测量精度进行试验验证。利用该装置扫描仓内物料获取点云数据,对点云数据分别进行重叠点提取、滤波、分割和三维重建,计算仓内物料三维模型的体积,依据三维模型的体积与物料的容重得到物料质量。以玉米为试验对象,对该测量方法的可行性与测量精度进行验证,该测量方法的平均绝对误差为8.05 kg,平均相对误差为1.52%。研究结果表明,采用二维激光雷达扫描技术实现原料储料量的测量方法是可行的,该方法稳定性良好、测量精度高,测量结果满足储料量测量精度要求。基于二维激光雷达扫描的方法具有更高的精度和更快的测量速度,为实现大型料仓原料储料量的自动测量提供了一种新的方法和技术支撑。
本研究仅以小型料塔为验证对象,针对不同结构尺寸、不同原料的各种料仓内原料储料量测量还需进一步研究,更透彻挖掘激光扫描技术对仓内物料储料量测量的的适应性和广谱性,为实现各种不同结构、不同原料储料量快速、准确的智能测量提供理论依据与技术支撑。
(责任编辑:陆文昌)