0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Vision Board的巡检除冰机器人

RT-Thread官方账号 ? 2025-02-25 18:31 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

介绍一下这个项目的基本情况,这个项目是关于电力高架线巡检的,主要任务就是负责巡检和除冰,巡检的主要内容就是看看线路的情况,有没有比较基本的故障,比如接地短路,断线故障,或者是一些个杂物等等,有了杂物之后通过机械臂进行清楚或一些其他处理,同时需要对线网的外观进行一些检测,看看有没有一些特别明显的熔断或者破损情况,由于这个机器人是在线上行进的,所以对比传统的线下人工巡检,从细节上讲,机器人的摄像头应该能更好的更清楚的发现一些问题,除了这两种功能以外,我还打算用Vision Board尝试一下用它检测线路上的结冰图像,主要用的就是tflite,和openmv的开发方式,基于RT-Thread为底层的micropython固件,由于项目本身的原因,对于Vision Board的使用主要集中在应用开发方面,包括线路识别,线路细节识别,杂物识别,结冰情况识别以及一些通信外设的使用,还有就是关于板子上自带的WiFi模块的图传功能,这也是项目本身需要的。

a0390b3c-f363-11ef-9434-92fbcf53809c.png

线路识别的基础就是看摄像头能不能识别出来高架线,对于直接架在线路上的机器人来说,摄像头所捕捉到的线路还是比较大的,所以Vision Board的板载摄像头应该是够的,为了简单起见,我先使用了openMV的程序,里面有比较方便的线路识别程序。

经过几次尝试,我感觉这个程序还是比较符合我的预期。

a0562974-f363-11ef-9434-92fbcf53809c.pnga08032f0-f363-11ef-9434-92fbcf53809c.png

线段的起始位置点坐标,在实际运行的时候,其实并不需要这些坐标,因此要把代码中的打印删除,只需要保留一个判断存在不为空的语句就可以了。

这个功能最主要的目的是用来判断线路的断线或者短路情况,有时直接看照片会比较模糊,如果加上这样的线标在图片上,有助于观察线路的情况,比如出了断线或者短路接地等纵向或者横向故障,标出来就更一目了然了。

a0952548-f363-11ef-9434-92fbcf53809c.png

a0a9a298-f363-11ef-9434-92fbcf53809c.png

经过调试,发现识别线路在0.5mm左右感觉识别的效果最好

a0c9479c-f363-11ef-9434-92fbcf53809c.png

对于整体是有很多线段那种情况,我感觉实际应用工程中,如果讲摄像头云台调转到比较近的地方,基本上不需要识别出那么多的线段,最多也就两三条,如果是多分裂导线那么也就四五条的样子,Vision Board 的openmv固件几乎支持所有的基本识别函数,我用了另一个识别“线”的文件或者是函数,但是发现他是用来寻找直线的,而且必须最好是那种贯穿的直线,所以对于本项目那种需要识别出线段的情况其实不是很合适,一方面场景不对,另一方面用处不太合适,但是并不是是说这个板子识别的慢,我针对这个函数特意检测了一个电脑屏幕那样的,发现速度还是非常可观的,足以证明只要用好这个板子,可以胜任很多工作。

还有一个主要的功能是结冰识别和杂物识别,由于Vision Board 能使用Tflite这样的工具,我尝试能不能把他们放在一起进行识别,感觉这样是对芯片能力的一种考验吧。电力巡检常见的两种杂物,容易挂在线路上的,主要是塑料袋和鸟巢,因为数据集比较特殊,没有什么现成的数据集可以用,所以从百度上找了一些,看了几千张图片,发现符合我要求的并不多,感觉更对算法和芯片的能力提出了要求,因为之前我用k210弄的数字识别,相当不理想,这回看看瑞萨的怎么样(他甚至没有什么专门的神经网络硬件加速单元)

先放上点数据集的图,转换的时候有水印,但是最后发现一点也不影响。

a0dd6790-f363-11ef-9434-92fbcf53809c.png

a0f731d4-f363-11ef-9434-92fbcf53809c.pnga114b34e-f363-11ef-9434-92fbcf53809c.png

用的是这个网站,感觉比k210的要好的多,不用排队,功能也强很多。

a1424f34-f363-11ef-9434-92fbcf53809c.png

直接搜完注册就能用,没有什么门槛,也不收费,就是界面全是英文的,我当时是看的哔站上的这个up主的视频,我觉得非常好。

直接跟着操作就可以了,简直可以称得上是保姆级教程,有一点要提的是,图片的扩展名需要是一样的,我图方便就用的那种在软件商店里面下载的格式转换器,虽然有一点水印,但是最后的结果感觉几乎没有什么影响。

以下是我训练的一些配置:

a1544d9c-f363-11ef-9434-92fbcf53809c.png

这个部分在原来的视频当中没有出现,因为他视频里面选的是H7内核的那个,现在更新上来了,网站里已经有了配置,我是这么填的,感觉没出现什么错误,其他的都很正常。

a16a90f2-f363-11ef-9434-92fbcf53809c.png

a17c08d2-f363-11ef-9434-92fbcf53809c.pnga18a964a-f363-11ef-9434-92fbcf53809c.pnga1a29ee8-f363-11ef-9434-92fbcf53809c.pnga1bb2e9a-f363-11ef-9434-92fbcf53809c.pnga1cb7c82-f363-11ef-9434-92fbcf53809c.png

之后是测试结果

a1d701d8-f363-11ef-9434-92fbcf53809c.png

可以看到它在检测鸟巢的时候准确率还是很好的,整体是在80-90%左右,刷新的很快,截图的时候就恰好是这个准确度,反正k210是达不到这个效果。

a1e8f4f6-f363-11ef-9434-92fbcf53809c.png

这是在识别结冰线路的时候的数据,准确度还是可以的。

a21596be-f363-11ef-9434-92fbcf53809c.png

由于我想收集和训练的数据其实是那种挂在高架线上的垃圾袋,为啥电力巡检有的时候要看这个,是因为有的时候,塑料袋加上雨天,可能会导致绝缘子闪络甚至击穿,或者是那种非永久性的短路,比如一重合闸就又好了,但是这些虽然听起来离谱,但是实际上确实要处理的,否则继保一跳闸,还是得去清理。找遍了网上发现复合要求的感觉不多,陆续在几个网站上看了几千张,几乎很少有那种“标准数据集”,只好用这些“飞舞的垃圾袋”代替,准确率也是很高的。

在识别到结冰图像的时候,我在Vision Board设置了一个引脚用来和电机控制板通信,之前想用串口来着,但是感觉一是不需要那么复杂的逻辑,还有就是要考虑到在高压电场和电晕放电下的对通信线路的干扰肯定会不小,所以定义了一个引脚,检测到结冰图片的时候,低电平,未检测到的时候就是默认高电平,这样抗干扰会好一些。

a23bfc3c-f363-11ef-9434-92fbcf53809c.pnga24eb5e8-f363-11ef-9434-92fbcf53809c.png

下面是识别的完整代码

# Edge Impulse - OpenMV Image Classification Exampleimport sensor, image, time, os, tf, uos, gcfrom pyb import Pinsensor.reset() # Reset and initialize the sensor.sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)sensor.set_windowing((240, 240)) # Set 240x240 window.sensor.skip_frames(time=2000) # Let the camera adjust.#定义标志位引脚p_out = Pin(("GPIO_25",508), Pin.OUT_PP)net = Nonelabels = Nonetry: # load the model, alloc the model file on the heap if we have at least 64K free after loading net = tf.load("trained.tflite", load_to_fb=uos.stat('trained.tflite')[6] > (gc.mem_free() - (64*1024)))except Exception as e: print(e) raise Exception('Failed to load "trained.tflite", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')try: labels = [line.rstrip('\n') for line in open("labels.txt")]except Exception as e: raise Exception('Failed to load "labels.txt", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')clock = time.clock()while(True): clock.tick() img = sensor.snapshot() # default settings just do one detection... change them to search the image... for obj in net.classify(img, min_scale=1.0, scale_mul=0.8, x_overlap=0.5, y_overlap=0.5): print("**********\nPredictions at [x=%d,y=%d,w=%d,h=%d]" % obj.rect()) img.draw_rectangle(obj.rect()) # This combines the labels and confidence values into a list of tuples predictions_list = list(zip(labels, obj.output())) for i in range(len(predictions_list)): print("%s = %f" % (predictions_list[i][0], predictions_list[i][1])) if predictions_list[2][1] >= 0.9: p_out.value(0) else: p_out.value(1)#print(clock.fps(), "fps")————————————————版权声明:本文为RT-Thread论坛用户「单片机单片魂」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://club.rt-thread.org/ask/article/d32afe940776f36e.html

最后要提一点的是,这个Vision Board的micro python库是基于RT-Thread的mpy固件,其中一些外设是做了适配的,这需要去看原来编译固件的时候的c的代码,其中一些细节,比如GPIO的名称,里面会有。

最后完成的整体图:

a25e0f7a-f363-11ef-9434-92fbcf53809c.pnga26c5aa8-f363-11ef-9434-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Boards
    +关注

    关注

    0

    文章

    4

    浏览量

    10355
  • Vision
    +关注

    关注

    1

    文章

    201

    浏览量

    18888
  • 除冰机器人
    +关注

    关注

    0

    文章

    2

    浏览量

    1641
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    labview接收运动的巡检机器人采集回来的数据,用什么东西好阿

    labview接收运动的巡检机器人采集回来的数据,距离比较长,感觉用蓝牙不太好,求助
    发表于 05-19 14:45

    【TL6748 DSP申请】变电站巡检机器人

    其他部件做实验和测试。项目描述:我所做的变电站巡检机器人目前的机械设计已经完成,设计是3独立驱动轮的机器人,控制较复杂,初步设计想法是采用DSP作为电气设计的主控板,主要控制3个驱动轮电机和一个云台的俯仰角步进电机。
    发表于 09-10 11:16

    【testo 红外热像仪申请】变电站巡检机器人

    申请理由:因为的变电站巡检机器人项目,主要是依靠云台上的红外热像仪对变电站内的设备进行测温,并将测得的数据回传到后台进行分析,看到该款热像仪,希望可以申请到,可以进行二次开发,然后架在云台上,配合
    发表于 12-02 15:50

    激光导航AGV底盘定制 巡检机器人,服务机器人,智慧物流搬运AGV

    的合作。公司致力于各类移动机器人产品的研发与销售,如餐饮机器人巡检机器人,安防机器人等各类移动机器人
    发表于 06-10 14:24

    【NanoPi NEO Plus2开发板试用申请】巡检机器人项目

    项目名称:巡检机器人项目试用计划:申请理由:本人目前从事机器人嵌入式软件开发,公司现在有多款巡检机器人,但是目前大部分都是使用昂贵的工控机作
    发表于 08-24 13:38

    NI VISION机器人做引导

    NI VISION机器人做引导怎么样实现手眼标定好像没有像其他视觉类似的函数...哪位大侠可以指点一二谢谢了
    发表于 04-09 15:35

    水下机器人制作需要实现哪些功能呢

    工程训练综合能力大赛——水下机器人管道巡检组赛后总结前言一、水下机器人管道巡检组内容简述二、功能实现1.巡检管道2.识别吸附物总结前言前段时
    发表于 01-11 06:51

    智慧安防篇之:安防巡检机器人

    当年日渐下滑的安防市场,激活了一系列的机器人创新。 在近些年的发展中,我国的安防机器人已经从单一的巡逻,发展到集监控、侦察、排爆、武装打击于一体的多功能综合安防巡检机器人。应用领域也从
    发表于 04-19 14:19

    如何实现拥有强悍功能智能巡检机器人

    今天小编就为大家介绍一种用于替代人工对设备进行检查和维护的特种机器人——智能巡检机器人机器人大致可分为工业机器人、服务
    发表于 04-12 15:49

    智能巡检机器人的工作原理

    随着智慧园区的不断升级,智能巡检机器人广泛应用于国内各个厂房及园区巡检,那么智能巡检机器人是如何来工作的呢?其实主要是依靠红外照相机安装在
    的头像 发表于 11-05 09:57 ?1.4w次阅读

    智能巡检机器人的作用

    在“机器代人”政策的大面积推行下,智能巡检机器人领域迎来了发展的春天,从移动方式来看,巡检机器人可以分为挂轨式
    发表于 11-23 16:55 ?2479次阅读

    国辰的智能巡检机器人有哪些?

    巡检机器人属于特种机器人类目,是用于替代人工对设备进行检查和维护的机器人,主要分为轮式巡检机器人
    的头像 发表于 12-12 16:57 ?4223次阅读

    巡检机器人替代传统人工巡检,智能巡检机器人5G工业路由器应用

    在5G无线通信、人工智能、物联网、云计算、大数据、电力等前沿技术的高度融合下,以替代人工巡检为目的的电力智能巡检机器人应运而生。随着智能化时代的迅速发展,人工智能技术、自动识别技术以及机器人
    的头像 发表于 06-01 09:41 ?1544次阅读
    <b class='flag-5'>巡检</b><b class='flag-5'>机器人</b>替代传统人工<b class='flag-5'>巡检</b>,智能<b class='flag-5'>巡检</b><b class='flag-5'>机器人</b>5G工业路由器应用

    巡检机器人有哪些功能和作用?

    在当今的科技时代,各行各业都在不断寻求创新和高效的解决方案。在这个背景下,巡检机器人应运而生,成为了众多领域的新兴力量。那么,巡检机器人有哪些功能和作用呢?
    的头像 发表于 04-08 10:35 ?2360次阅读
    <b class='flag-5'>巡检</b><b class='flag-5'>机器人</b>有哪些功能和作用?

    巡检机器人的分类和种类有哪些

    在科技日新月异的今天,巡检机器人已经成为自动化巡检领域的得力助手,它们凭借着高效、精准和全天候的工作能力,逐渐在各个领域崭露头角。从轨道巡检到轮式巡逻,从防爆检测到管道巡查,
    的头像 发表于 05-20 17:22 ?1499次阅读
    <b class='flag-5'>巡检</b><b class='flag-5'>机器人</b>的分类和种类有哪些