Skip to content

Latest commit

 

History

History
77 lines (40 loc) · 1.96 KB

螺栓松动检测项目.md

File metadata and controls

77 lines (40 loc) · 1.96 KB

[TOC]

螺栓松动检测项目

基本介绍

基本情况:风力发电机的塔筒部位和叶根部位有一圈螺栓,在安装时有划一条线(红色)。

环境条件:叶根处直径3m,螺栓平面上下平面皆有挡板,螺栓平面和相机近乎平视,。塔筒处直径4m,相机安装可以平视也可以俯视。

相关技术

  • 嵌入式边缘计算平台下的视觉算法开发
  • 进程间通信
  • 网络通信
  • ...

硬件准备

  • jetson nano 4GB
  • Basler 500wc
  • 伺服电机

系统流程

  • 驱动basler工业相机
  • 开启进程间通信
  • 开启外部网络通信
  • 获取系统时间
  • 检测算法获取每个螺栓和螺母的划线位置的差值,存入Init Hash Table
  • 进入每日循环
    • 检测算法检测差值减去初始位置求出delta,存入Date Hash Table
  • socket write传出Date Hash Table

算法方案

  • 进程间通信伺服电机置零位
  • 获取一帧图片,裁剪,预处理
  • 匹配模板
  • 裁剪出螺栓和螺母区域
  • FindColor
  • 分别计算螺栓螺母的points的x平均值
  • 计算螺栓螺母points.x平均值的差并返回。

难点总结

  • 摄像头为水平检测螺栓,螺栓上的划线为短线短组成,不连续
  • 使用直线拟合算法判断螺栓螺母的划线的角度和相对位置,性能很卡,而且帧间波动很大
  • 使用外接矩形算法逼近螺栓和螺母的划线区域,由于螺纹处划线只有螺纹外部有标记,为很小的段落组成,需要对螺栓处的识别到的小区域进行填充连接,再用外接矩形逼近。同样帧间波动很大;如果划线为蛇形则不好进行填充。
  • Jetson Nano gpio调用不支持c++,需要用python程序调用gpio资源控制伺服电机转动,同时需要进程间通信配合检测进程。

记录

  • c++ socket不能直接发送string,应该先转为char,再发送

像素分辨率x轴为0.1mm

周长206mm,0.1mm等价于:360度*0.1 / 206 = 0.175度