自动巡检机器人故障检测系统
2022-08-25王轶默黄凯垚
王轶默,黄凯垚
(东南大学自动化学院,江苏南京 211189)
0 引言
随着科技的不断进步,各机械自动化水平在逐渐提高,无人值守现象也越发普遍。发电机是电力系统的关键所在,加强对发电机的巡检尤为重要。传统人工巡检方式所耗费的高成本已无法满足当前发电机巡检需求。随着人工智能技术的快速发展,智能巡检机器人的应用越来越广泛,机器人巡检已成为当下主要的巡检方式。与传统人工巡检相比,智能巡检具有操作灵活、不受外界天气影响等优点。此外,巡检机器人可携带多种传感器,可在任何恶劣天气下实现发电机测温、缺陷检测、开关状态监控等日常巡检,便于及时发现发电机的事故和问题,排除大面积断电等安全隐患。目前,主流的巡检机器人采用人工远程控制的方法进行巡检,但是位于极地等极端环境恶劣之处往往信号较差、通信成本较高、时延较大,难以满足长时间远程操控的需求。同时,在巡检时经常会遇到环境昏暗、能见度较低的情况。因此,针对极端场景下的巡检机器人设计依然面临诸多应用难题。
故障检测方法设计是巡检机器人的核心,传统的故障诊断方法主要有两种:基于数学模型的方法和基于数据驱动的方法[1-2]。随着计算机技术与硬件设备的发展,传统基于经验的故障诊断方法已不再适用。基于物理数学模型的故障诊断方法虽然应用比较广泛,但该类方法仅针对单一问题进行建模分析,忽略了故障间的潜在关联。例如,一台发电机组在运行过程中由于振动而导致一颗螺丝脱落,而这可能带来多种潜在后果,如电流电压和输出功率异常等,这时仅凭借独立的参数指标很难分析得到造成该问题的真正原因。随着计算机技术的不断发展,大量数据驱动的故障诊断方法被应用于故障诊断。现代故障诊断方法可分为定性分析方法与定量分析方法,如图1 所示。其中,定量分析方法又可进一步分为基于解析模型的方法,具有代表性的方法包括机器学习类方法[3]、多元统计分析类方法、信号处理类方法、信息融合类方法和粗糙集方法等。
Fig.1 Fault diagnosis methods图1 故障诊断方法
1 相关研究
随着近代机器学习与深度学习的兴起,大量机器学习及神经网络方法在故障诊断中表现优异,其核心思想是利用系统在正常和各种故障情况下的历史数据训练神经网络或是分类器,再利用训练完成的神经网络或是分类器对未知状态下的数据进行判别(预测),从而达到智能检测的目的。文献[4]首先利用神经网络对旋转机械故障进行诊断,但是需要大量样本进行训练。考虑到故障诊断的特殊性,即待检测对象绝大多数时间工作在正常情况下,极少时间处于异常状态下运行,且一些异常情况可能难以采集样本,这就导致了样本数量少、正负样本不均衡的问题。已有研究并没有对上述问题进行深入思考。文献[5]首先将支持向量机引入故障诊断中,以应对小样本与样本不均衡的问题,并与神经网络方法作比较。除SVM(支持向量机)外,针对该问题的主流解决方法还包括:小样本学习(Few-Shot Learning)与利用生成对抗网络(GAN)对数据进行扩充。小样本学习的经典方法有元学习(Meta Learning)和孪生网络(Siamese Network)等。文献[6]使用孪生网络对西储大学轴承数据进行故障诊断,并且与SVM、WDCNN等算法作比较。
本文提出一种可应用于极地严寒场景下的自动巡检机器人故障诊断系统。该系统采用无控制情况下自动常规检测与特殊情况下远程控制相互协同的控制策略,以应对极地区域网络状况差、通信费用高的问题。具体而言,机器人会定时按照路线到达指定位置进行巡检,通过视觉算法判断其工作状态。若工作在正常状态下就将结果保存在本地;若出现故障且故障为已知故障中的一种,此时会将该故障类型返回给远程主机;若出现故障但该故障并非为常见故障中的一种,此时系统将切换到远程操控状态下,由技术人员操控机器人以获取故障更清晰的图片。针对故障检测中样例较少与正负样本不均衡的问题,采用孪生网络与专家知识相结合的方法,提炼专家知识并判断发电机易出现故障的区域与故障类型,再与孪生网络相结合,经实验验证,该方法具有较好的鲁棒性。
2 系统组成
本文设计了可灵活应用于各类自动巡检机器人的智能故障检测系统。该系统首先对巡检专业人士知识经验进行分析,总结出发电机组易发生故障的区域与故障类型;其次对故障样例进行采样,制作故障原型,将易发生故障的位置设为机器人巡检路上的检查点。机器人可利用其自动定位与导航的功能沿着巡检路线进行巡逻,并在检查点处停下完成对指定区域的检测,判定其工作状态是否正常。若机器人发现电机工作存在异常,便首先判断是否为常见故障中的一种,若该故障并非是常见故障,则将其判定为特殊情况,此时便会切换到远程控制模式,技术人员通过网络远程控制机器人对该部位进行更进一步的检测,图像将会实时传递到控制端,以供专业人员进行判断。
由于设备可能出现故障的地方较多,故相比于使用固定相机对设备进行拍摄采样,使用巡检机器人对设备进行拍照灵活性更好,在遇到突发情况时可以通过远程操控及时获得故障点的高清照片。在远洋、极地等通信成本较高、通信环境较差的地方,将实时的视频信息全部传递回远程端需要较高的通信成本,且存在着较大时延,并不适用于实际生产。针对该现象,本文提出在远端边缘设备上对机器人获取到的图片作先行处理,如果设备工作正常或处于已知故障中的一种,仅需将该条文字信息传送给远程控制端。通过边缘设备对信息的先行处理可以极大减小通信成本,也加强了该系统在恶劣通信环境下的鲁棒性。在系统正常工作的大部分时间里,该系统都处于完全自主的工作状态下,无需人工操作。
该系统工作流程主要分为4 部分:建图、设置检查点、自动巡检以及状态检测,如图2所示。
3 系统功能模块
Fig.2 System workflow图2 系统工作流程
该系统主要由机器人模块、边沿设备模块与软件模块3 个部分构成。其中,机器人模块的主要作用是移动到指定位置拍摄待检测部位的照片,边缘设备模块完成对机器人的控制和设备状态检测。软件模块则包含了机器人建图与导航算法及状态检测算法,上述所有算法均部署在边缘设备中。系统工作时,首先通过边缘设备中部署的建图算法完成对工作环境的扫描与建图,然后可调用边缘设备中部署的导航算法控制机器人到达指定地点,拍摄待检测部位的图像,并将该图像存储下来,以供状态检测算法使用。检测算法通过机器人拍摄到的图像判断系统工作状态,并将判断结果传递给远程主机,可通过判断结果选择是否进入远程操作状态。
3.1 机器人模块
该系统使用Turtlebot3 作为移动机器人,选取ROS 作为软件系统平台,NVIDIA Jetson Nano 作为机器人控制与图像处理部分[7]。Turtlebot3 具有自主建图、定位与导航的功能,故其能在陌生的环境下工作。Turtlebot3上也可搭载各种传感器如摄像头、温度传感器、音频传感器等,有助于高效完成对不同指标的监测,模块设计的核心为基于视觉的故障诊断。考虑到该巡检机器人的工作空间较为狭窄,因此不再使用Turtlebot3 原装的普通轮胎,而是使用麦克纳姆轮。麦克纳姆轮为瑞典麦克纳姆公司的专利,它克服了传统机械结构的缺点,将车轮的移动方式变成了全方位移动的全新模式,这样使得其可以在狭小的空间中也能自如地移动。
Turtlebot3 是较为常见的一种机器人模型,在许多仿真环境中也有着其对应的模型,Turtlebot3 拥有Burger、Waffle、Waffle_pi 等型号,本文选取Waffle_pi 作为巡检机器人。为适应极地等特殊的工作环境,在实现过程中进行了改装,其具体参数如表1所示。
Turtlebot3 原厂所采用的激光雷达为360 Laser Distance Sensor LDS-01,其量程为120~3 500mm,分辨率为±15mm,扫描速度为300±10rpm。由于机器人定位的准确程度与状态诊断的准确率密切相关,故设计时将其替换为精度更高的A1 激光雷达。其测量半径为0.15~12m,采样频率为8K,扫描频率为5.5Hz,角度分辨率为1°,测距精度在3m 内达到了实际距离的1%,在3~5m 内为实际距离的2%,在5~12m 内为实际距离的2.5%。相比于原始激光雷达有着更高的精度与扫描速度。
Table 1 Parameters of the Waffle_pi表1 Waffle_pi参数
所选取的深度相机型号为Astra Pro,其共有3 种分辨率可选,可用于三维重建、SLAM 等,通过USB 与核心板相连接,可以在Rviz中显示深度相机的点云图。
3.2 边缘设备模块
Turtlebot3 控制模块可在树莓派与NVIDIA Jetson Nano之间选择,该边缘设备不仅需要控制机器人的移动,同时还需要通过检测算法对设备的运行状态进行判断,考虑到算力问题,选择Jetson Nano 作为核心板,Nano 最大的特色就是包含了一块128 核Maxwell 架构的GPU 与A57 的CPU。Jetson Nano 的具体参数如表2所示。
Table 2 Parameters of Jetson Nano表2 Jetson Nano参数
NVIDIA 公司也提到使用kernel auto-tuning、dynamic tensor memory、layer fusion 和quantization(FP16/INT8)等方法以加速网络执行效率。根据NVIDIA 官方给出的部分模型在使用TensorRT 下的帧率可以看出,Jetson Nano 可以应用于移动场景下。Jetson Nano 的深度学习表现如图3所示。
3.3 软件模块
软件部分主要分3 个部分:扫描建图、定位导航与状态检测,如图4 所示。扫描建图是将周围的环境转换成地图的形式存储下来;定位导航则是根据地图以及激光雷达判断自己的位置并导航到指定目的地;状态检测根据深度相机所传输的画面判断发电机的工作状态。
Fig.3 Deep learning performance of Jetson Nano图3 Jetson Nano的深度学习表现
Fig.4 Software modules图4 软件模块
扫描后创建的地图中设置了3 个目的地,模拟为发电机组待检测的3 个模块,通过深度相机完成对发电机组的状态监测。
3.3.1 扫描建图
通过调用ROS 的map_server 包所提供的节点以yaml文件与image 文件的形式存储地图,yaml 文件存储了路径、分辨率、原点等参数。打开地图后,使用roslaunch 命令调用gmapping 包根据激光数据使用粒子滤波算法完成地图构建,通过turtlebot3_teleop_key 以使用键盘控制机器人的移动,此时Rviz 中会显示已扫描部分,控制机器人将整个环境扫描一遍即可获得地图。
3.3.2 定位导航
通过ROS 的amcl包实现移动机器人定位,amcl采用自适应(或KLD 采样)的蒙特卡罗定位方法,根据已有地图使用粒子滤波器跟踪一个机器人的姿态。导航则是通过ROS 提供的move_base 包进行实现,主要包括两个部分:①全局路径规划(Global Planner):根据给定的目标位置进行总体路径的规划;②本地实时规划(Local Planner):根据附近的障碍物进行躲避路线规划。给出目的地坐标,利用move_base 包即可自动规划路径并避障到达目的地。
3.3.3 状态监测
通过设计孪生网络(Siamese Network)实现故障检测,孪生网络主要结构如图5 所示。具体而言,所设计网络通过构建端到端的特征匹配网络结构,将深度相机获取到的图像与故障原型进行匹配,借此判断当前状态是否存在异常。与目前小样本学习网络相比,所设计的网络优势是将元学习与特征匹配整合成一个可以联合学习的网络,仅仅利用少量样本便可让网络具有自我学习能力。
Fig.5 Main structure of siamese network图5 孪生网络主要结构
通过孪生网络的主干网络功能进行特征提取,各种神经网络都可以使用,本文使用的神经网络是VGG16。图片在经过主干网络特征提取之后,就会获得提取之后的多维特征向量,通过flatten 的方式将其平铺聚合为一维向量,在双支路网络结构中,网络输出最终将获得两个一维的特征向量。计算这两个一维向量之间的距离,并进行两次全连接,再将其输入到Sigmoid 函数中,便得到这两张图片的相似度(位于0-1区间)[8]。
4 实验分析
机器人导航建图环节在Gazebo 中的仿真情况如图6所示。
Fig.6 Gazebo navigation simulation图6 Gazebo中导航仿真
Gazebo 是一个开源的机器人仿真工具,里面包含有各种经典机器人的模型,其中就包含有Turtlebot3。机器人在实际环境中运行情况如图7所示。
Fig.7 Robot operation in the real environment图7 机器人在实际环境中运行情况
在状态检测算法上,将常规方法即均值哈希算法[9]、差值哈希算法[10]、感知哈希算法[11]、三直方图[12]与单通道直方图[13]等5 种方法相结合与孪生网络进行了对比,如表3、图8 所示。并且,按照样本数由少到多比较了SVM、孪生网络与经典识别算法Yolov5 之间的性能,观测这3 种方法在小样本情况下的效果。
Table 3 Performance comparison between classical recognition algorithm and siamese network表3 经典识别算法与孪生网络性能比较
Fig.8 Accuracy comparison between classical recognition algorithm and siamese network图8 经典识别算法与孪生网络准确率比较
5 种方法融合是指使用上述5 种方法进行联合判断,其具体思想如下:均值哈希算法、差值哈希算法和感知哈希算法都是值越小,相似度越高,取值为0~64,即汉明距离中,64位的hash 值有多少不同。三直方图和单通道直方图的值为0~1,值越大,相似度越高。为了能够统一量级,将前三者的值除以64,这样其值便分布在0~1 区间,再用1减去该值,便使得其单调性与后两者一致。若这5 种方法中有3 种方法的相似度大于0.5,则认为这两张图片是一类的。
通过上述图表发现,单独使用这5 种传统方法进行检测时的正确率都不高,而使用5 种方法相融合进行判断的正确率则略有提升,但其正确率仍仅为55.6%。而孪生网络能在仅有36 张训练样本的情况下就能达到94.4%的正确率,相比于传统方法表现优异。
基于单通道直方图即灰度直方图的效果较差,其原因是该方法是基于灰度图像的灰度分布值判断图像相似度,该方法并不涉及图像中的内容,两张灰度分布接近但是内容毫不相关的图像在该方法的评判下会取得较高的相似度,这显然是不合理的。基于三通道直方图的相似度比较,效果较差的原因与单通道直方图类似,三通道直方图的不同之处在于其只是将HSV 三空间的分布进行了比较,但其仍然可能存在将两张颜色分布类似但内容毫不相关的图片误判成一张的情况。
均值哈希算法的具体思路是将灰度图像与均值相比从而得到64 位哈希值进行相似度比较,其缺点是图片内容不能有变化,例如在非待检测部位出现一些噪声或者拍摄视角发生了旋转或者移动,会导致哈希值的较大变化,故该方法鲁棒性较差。差值哈希算法与均值哈希算法十分类似,只是在计算哈希值时选择的方法不同,其也具有鲁棒性较差的缺点。
感知哈希算法采用离散余弦变换(DCT)进行降频,再计算哈希值。相比于均值哈希算法与差值哈希算法更为强健,对图片的修改较为宽容,鲁棒性稍强。从结果上看,感知哈希算法的正确率也高于均值哈希算法与差值哈希算法。
测试SVM、孪生网络和Yolov5 在小样本情况下的表现如表4、图9所示。
Table 4 Comparison of algorithm performance in the case of small samples表4 小样本情况下算法性能比较 %
Fig.9 Comparison of algorithm accuracy in the case of small samples图9 小样本情况下算法准确率比较
由以上图表可以发现,SVM 在样本数极少情况下(如9张与18 张时)表现出的正确率较高,但是随着样本数的增加,孪生网络的正确率迅速超过了SVM,并在训练样本数为45 张之后取得了在测试集上100%的正确率。同时,可以发现,在物体识别领域应用广泛的Yolov5 算法在小样本情况下表现不佳,在45 张训练样本时只取得了27.8%的正确率。
支持向量机(SVM)在小样本情况下表现较好的原因与其算法本身有关,SVM 本身模型为一个线性分类器(线性可分的情况下),并不像深度学习的神经网络那样,有着复杂的多层网络结构,需要使用预训练权重初始化各层网络,并利用大量的有标签数据进行训练数,并利用反向传播不断修正。而SVM 则不同,其模型参数少,即使遇到线性不可分的情况,也可以利用核函数将其映射到高维空间,使之变成线性可分的。SVM 的最大间隔与最优分割超平面只与支持向量有关,这就导致SVM 仅需少量的支持向量即可,其余大量数据(非支持向量)对于模型参数的确定是冗余的,这就较好地解释了图9 中SVM 在小样本下正确率较高的原因。而Yolov5 是十分典型的神经网络算法,其在样本较少时显然具有较差的准确率。
孪生网络通过共享权重的主干网络提取出图片特征,通过特征向量判断相似度。在分类样本的监督学习下,孪生网络会最大化不同类别的表征,并最小化相同类别的表征[8]。由于采集了各可能故障的样例,故使用孪生网络在小样本情况下能取得较好的结果。
通过上述各算法之间的性能比较,可以得出以下结论:虽然孪生网络在样本数量极少的情况下逊色于SVM 与融合的传统方法,但是随着训练样本的增加,孪生网络的性能迅速提升,能够在小样本时取得十分优异的表现,并较为圆满地完成任务。
5 结语
自动巡检机器人以Turtlebot3 为原型,针对其特定工作对其进行了部分改装升级,使用NVIDIA Jetson Nano 作为控制与运算模块,使用孪生网络作为其检测算法。通过控制机器人沿巡检路线进行巡检,可以较好地判断出发电机的运行状态,在小样本情况下有着较好的表现。并且,能够在特殊情况下远程控制并将图像传递至电脑终端,实现其在极地或远洋等极端情况下的自动巡检功能。采用自动巡检与远程操控相互切换的两种模式,在通信成本高、通信环境恶劣的极地远洋环境下相比于实时监控的方法鲁棒性更强,具有一定的商业价值与战略意义。