赵科毅,张黎明,任书楠,徐善军,杜婧
(1.北京国电富通科技发展有限责任公司,北京 100070;2.国网电力科学研究院有限公司,南京 211106;3.国网天津市电力公司,天津 300010)
近年来,为了提升作业效率降低作业风险,电力作业机器人逐渐替代电力工人,完成各种电力作业任务[1~5]。在作业过程中,机器人需要准确检测环境中的作业目标。为此,机器人需要配备相应的传感器用于感知作业环境,例如单目相机[6],RGB-D相机[7]以及三维激光雷达[8,9]等。相较于视觉传感器,三维激光雷达能够大范围、高精度地获取周围环境的深度信息,且对光照变化较为鲁棒,在黑暗环境以及强日照下也能够完成正常作业,因此成为电力作业机器人的主要传感器。相较单线与多线机械旋转式激光雷达,固态激光雷达具有更高的点云密度与视场覆盖率,更适合电力作业机器人对作业环境以及作业目标的检测。
在电力系统的作业环境中,电力设备种类丰富,其中绝缘子是一项重要的检测目标,在配电、变电、输电场景中均有涉及。针对绝缘子的检测,已有多位国内外的学者进行了研究。文献[10]使用点云分割方法分割变电站3D点云,并利用点云主成分分析(PCA)与目标电力设备特征比对,成功从3D点云中提取出电线杆,变压器,绝缘子等物体。文献[11]首先利用点云的主方向分割环境点云,而后通过先验的绝缘子几何特征匹配点云片段,完成变电站内的绝缘子检测。此两项研究中的3D点云数据为使用激光雷达在不同位置对环境进行多次扫描后的合成点云,其中绝缘子以及其他电力设备的点云较为完整,可以直观地反映出其结构特征。文献[12]和文献[13]提出了利用深度学习的方法,通过RCNN神经网络识别巡检图像中的绝缘子。基于图像的绝缘子识别方法常应用于电力巡检任务,无法有效的提取处绝缘子在空间中的位姿信息。
在电力作业机器人对绝缘子目标进行作业的过程中,机器人的移动受到作业环境的限制,只能从单一的视角获取点云,只可以采集到绝缘子的部分边缘,且受位置与光照条件的影响,每个绝缘子被扫描到的表面点云都有所不同。针对此种点云数据的特点,基于完整形状特征提取的3D点云匹配方法并不适用。因此本文在点云中仅包含部分绝缘子特征的条件上,提出了一种基于特征提取在点云中检测定位绝缘子的方法。首先使用聚类方法提取出每一片绝缘子的表面点云,再通过计算其几何特征值并与待检测绝缘子参数进行比对筛选出有效结果。经过实验验证,该方法可以准确的从激光雷达点云中定位待作业绝缘子位姿。
经过对点云数据的观察分析,提出一系列处理方法在激光雷达点云中进行绝缘子检测定位,如图1所示,主要分为以下四个步骤:点云预处理、绝缘子片聚类、绝缘子片特征计算、绝缘子片筛选。点云预处理步骤主要作用为提取兴趣区(ROI)并去除扫描过程中产生的噪点,绝缘子片聚类步骤的主要作用为在绝缘子串点云中分离出各个绝缘子片的点云,绝缘子片特征计算步骤计算出每一组绝缘子片点云的几何特征,最后依据绝缘子的结构特点筛选出符合条件的绝缘子点云并得到其在激光雷达坐标系下的位姿。
图1 绝缘子检测定位步骤
依据机器人的工作区域进行ROI提取可以裁剪掉大量远距离无效点云,大大减少后续的点云处理计算量。由于固态激光雷达的工作原理,为了达到理想的扫描覆盖率,需要对扫描帧进行长时间的积分,因此最终的点云中尤其是扫描中心区域会有大量的重复点。使用PCL库中的体素过滤的方法处理点云,去除实体物体上的重复点。再通过欧式聚类以及外点去除的方法,去除绝缘子串边缘的噪点。如图2(a)所示,展示了固态激光雷达扫描积分后得到的原始点云,图2(b)为经过点云预处理后的点云可视化结果,可见点云预处理步骤可以将绝大部分扫描噪点去除,仅保留待检测的绝缘子串部分点云。
图2 点云预处理
由于在电力作业过程中,激光雷达仅能从单一视角扫描绝缘子串,因此点云中无法包含绝缘子片的完整形状。且绝缘子边缘部分由于反射原因会有部分噪点影响从点云中分离出各个绝缘子片点云。使用法向量过滤的方法,保留面向激光雷达的绝缘子片平面点云,并在此点云的基础上使用欧式聚类的方法提取出绝缘子片表面点云聚类。具体步骤为,计算预处理后点云P1的所有点的法向量N1=i=1,2...s},由于绝缘子串位于激光雷达前方,所以面向雷达的表面点云法向量的x分量小于0,筛选后得到点云P1x。通过欧式聚类分离出绝缘子片点云聚类Q1。
绝缘子片点云特征不仅可以用来判断该点云是否为绝缘子片,也可以得出其在激光雷达坐标系下的位姿。根据串式绝缘子单片为盘型的结构特点,选取点云特征值为边界拟合圆半径qr、圆心qc、边界所在平面法向量→qn,其中拟合圆半径与平面法向量的计算需要提取出绝缘子的边缘点云。
1.3.1 绝缘子边缘点云提取
由于激光雷达位于绝缘子串上方,且受到扫描角度的限制,仅能扫描到部分绝缘子片边缘表面点云,因此仅有点云的上边界属于真实绝缘子的边缘。因此几何特征的计算依赖于提取出绝缘子的边缘,具体提取步骤为:提取绝缘子点云qi的边界点云Pqb并投影至YZ平面,以最高点pzmax为种子分别沿Y+和Y-方向生长得到YZ平面上的上边界点云P'qbu,再从原点云Pqb中提取对应的点得到上边界点云Pqbu,如图3所示。
图3 绝缘子表面点云与上边界点云
1.3.2 绝缘子点云特征计算
使用随机采样一致性(Random Sample Consensus,RANSAC)算法拟合绝缘子边缘点云Pqbu所在平面,空间平面方程可表示为:
其中(a,b,c)即为该平面的法向量→qn,满足关系式:
将Pqbu变换至YZ平面,再以最小二乘法拟合绝缘子边缘的半径qr以及圆心qc',最后将qc'变换回边缘点云所在平面得到绝缘子片点云圆心位置qc。
绝缘子片点云筛选一方面要依据计算出的特征参数筛选出有效的绝缘子片点云,另一方面,根据绝缘子串两片为一组的结构特点,如图4所示,提取出距离合适的两片绝缘子片合并为一组绝缘子。
图4 目标绝缘子
依据单片绝缘子为盘型的结构特点,以及点云为正面表面的数据特征,拟定具体的绝缘子片点云筛选条件为:
1)绝缘子点云边缘半径qr∈[0.8R,R],R为绝缘子片实际半径,
2)以绝缘子圆心qc为中心原点,绝缘子直径2R为长和宽,绝缘子厚度D为深,绝缘子平面法向量为方向建立范围框,绝缘子点云qi中的点应有90%在该范围框内,如图5a所示。
完成筛选后,按照绝缘子圆心qc的X由近及远的顺序进行排序,得到绝缘子片点云簇Q2,并计算所有绝缘子片的中心位姿Hi,该位姿以从激光雷达坐标系到绝缘子中心坐标系变换的齐次矩阵表示,位姿变换的齐次矩阵表示为:
其中位移部分为绝缘子的圆心坐标qc,旋转矩阵Ri可以表示为:
遍历经过筛选的绝缘子片点云簇Q2,若相邻的两个绝缘子片点云圆心欧式距离小于阈值,则认定该两片绝缘子为一组绝缘子,并将较近的绝缘子片圆心位姿记为该组绝缘子的位姿,绝缘子片点云合并效果如图5b所示。
图5 绝缘子片点云筛选
固态激光雷达为机器人配备的LivoxMid-70,圆形视 场(FOV)为70.4°。实验环境包含室内场景与室外场景,两种场景环境结构大致相同,待检测绝缘子位于机器人前方,如图6所示,但光照条件差异较大。所有实验均在统一的计算平台下进行,CPU型号为i5-8250U,主频为1.6GHz,内存8GB,操作系统为Ubuntu16.04。为了达到最理想的点云密度与视场覆盖率,扫描积分时间为3s。室内与室外环境下分别采集测试点云20帧。
图6 作业场景示意图
2.2.1 算法对比
为了验证本文检测方法的有效性,将其与两种传统的在3D点云中进行物体检测的算法进行对比。其中,对比算法包括基于对应分组的绝缘子检测ID-CG(Insulator Detection based on Correspondence Grouping)[14]和基于正态分布配准的绝缘子检测ID-NDT(Insulator Detection based on Normal-Distributions Transform Registration)[15]。两种检测算法均以模板匹配为基础,ID-CG使用3D描述符进行点对点匹配得到当前场景中存在的模型实例及其6D位姿,ID-NDT则基于模板点云与目标点云整体正态分布优化匹配结果。由于实际扫描点云中得到的绝缘子局部点云形态各异,无法使用绝缘子模型作为模板,因此两种物体检测算法所参考的模板为从测试点云中人工选取的绝缘子外形较为完整的点云。同时扫描点云中存在多个绝缘子且距离较近,为了达到最优的模板匹配效果,目标点云为步骤2.2聚类后的各个绝缘子片点云。
对比结果如表1所示,基于模板匹配的物体检测算法的表现均不够理想。ID-CG算法在匹配时依赖模板与目标点云的3D描述因子,当目标点云与模板点云形状、密度差异较大时,无法完成匹配,因此召回率较低(图7a)。而IDNDT算法同样也存在模板点云与目标点云形态差异过大时会导致的匹配误差较大(图7b),同时由于目标点云的尺寸较小,所以在误差较大的情况下依然达到了NDT的收敛条件,并且该算法在此次实验的计算平台运行十分缓慢。本文提出的绝缘子特征计算方法则在准确率(图7c)与运行速度上更加适宜应用环境,可以满足机器人作业所需的实时性需求。
表1 绝缘子检测算法比对
图7 算法比对结果
2.2.2 室内外检测实验
在室内与室外的实验结果如表2所示,绝缘子检测的算法运行较为稳定(图8)。受室内外光照条件以及绝缘子与机器人相对位置关系的影响,随着距离的增加,绝缘子点云的密度越来越低,且会有更多的绝缘子表面收到遮挡,因此距离稍远处的绝缘子点云召回率较低。在实际应用中,由于远处绝缘子距离超出机器人作业范围,因此影响不大。对机器人作业更为关键的距离较近的绝缘子,检测比较稳定。由于在实际作业中,准确率会比召回率的优先级更高,因此在进行算法实践的时候牺牲了一部分召回率以保证高准确率。
图8 绝缘子检测实验
表2 绝缘子检测实验结果
针对电力机器人作业中面临的在单一视角激光雷达点云中检测定位绝缘子的问题,本文提出了一种基于特征提取在点云中检测定位绝缘子的方法。首先使用聚类的方法提取出每一片绝缘子的表面点云,再通过计算其几何特征值并与待检测绝缘子参数进行比对筛选出有效结果。经过室内与室外环境的实验验证,本文提出的方法可在算力相对较低的平台上完成检测,并满足电力作业需求的有效性与实时性,相较于传统的模板匹配算法更具有实用性。在未来的研究中,随着作业数据的不断积累,可考虑在电力机器人算力前提下,融入机器学习的手段来增强识别算法的鲁棒性。