APP下载

基于视觉识别的水面垃圾处理装置

2022-09-15崔志远曹文康张志高崔莹超孙乔宠

智能城市 2022年8期
关键词:云台舵机航行

崔志远 曹文康 张志高 崔莹超 孙乔宠

(河南科技大学机电工程学院,河南洛阳 471003)

1 系统总体设计

基于视觉识别的水面垃圾处理装置主要由主控芯片(Arduino Mega2560)、视觉识别模块、红外测距模块、机械臂控制系统、旋转云台系统组成。

系统硬件组成如图1所示。

图1 系统硬件组成

基于视觉识别的水面垃圾处理装置的主要功能包括自动航行、自主识别垃圾、机械臂辅助打捞。动力装置为位于尾部的双螺旋桨推动装置,以电机驱动螺旋桨旋转推动装置前进;依靠尾部的双螺旋桨速度差实现转弯。装置前部的红外测距模块可以实时检测装置与水岸的距离,与水岸的距离达到设定阈值时会自动转弯。动力装置辅以红外测距模块可以实现装置在预设航线上的自主航行。装置工作时,视觉识别模块不断对水面进行检测,OpenMv将识别的垃圾图像处理成字符串数据,通过串口发送给主控,主控向舵机发出动作组指令,控制机械臂抓取垃圾。

1.1 机械臂结构设计

机械臂结构采用由连杆机构并联而成的MK2型机械臂。

机械臂结构如图2所示。

图2 机械臂结构

机械臂结构的动力由3个舵机提供。动作依靠两个多连杆结构联动完成,左右两侧舵机控制机械臂的运动。机械臂左侧舵机和右侧舵机协同转动带动连杆运动,左右两侧舵机同时正转实现机械臂抬升,同时反转实现机械臂下降,左右两侧舵机转向相反可以实现机械臂前伸和回收,控制舵机转动的角度可以使机械臂处于任意姿态。

1.2 机械爪结构设计

机械爪结构由1个MG996舵机和两个齿轮转杆以及连接板组成,连接板用于连接机械臂左连杆和右连杆,转杆固定在MG996舵机上。装置待机时,机械爪处于闭合状态,能够减少占用空间;检测到垃圾时,机械爪完全张开,Arduino单片机控制机械臂伸展至垃圾旁边,由舵机旋转带动齿轮转杆向中部靠拢,完成对垃圾的抓取。由程序驱动机械臂将抓取到的垃圾放置在船里。完成抓取和放置动作后,主控继续执行下一条程序,机械爪恢复夹紧状态。

机械爪结构如图3所示。

图3 机械爪结构

基于视觉识别的水面垃圾处理装置工作环境位于水面,机械爪结构材料选用亚克力板,由非金属激光切割机加工而成。机械爪上的电子元器件由3D打印件包络,使用密封胶密闭。整机重量小、密封性好、绿色环保。

1.3 旋转云台设计

旋转云台主要由轴承、旋转台、舵机构成。轴承和旋转台间利用螺钉连接,舵机利用螺丝固定在轴承内圈处。云台主要承受机械臂总重造成的轴向力,轴承选择可以承受轴向载荷的深沟球轴承。工作时,舵机旋转带动轴承旋转,轴承带动机械臂往复转动。

旋转云台结构如图4所示。

图4 旋转云台结构

2 智能控制系统设计

2.1 单片机主控

主控采用Arduino Mega 2560单片机(MCU)。Arduino Mega 2560是基于ATmega 2560的微控制器,具有54路数字输入/输出端口(其中15个可以作为PWM输出)、16路模拟输入端口、4路UART串口、16 MHz运行频率、USB连接口、ICSP头和复位按钮。USB线通过板载转串口模块输入程序。与其他开发板相比,Arduino具有编程环境简便、开发资料齐全、开源性强等特点,可以降低软件编程部分的难度。因此,选用Arduino作为水面垃圾处理装置的主控。

2.2 视觉识别模块的设计

装置使用OpenMv机器视觉模块,以STM32F427为主控,集成OV7725摄像头芯片,在小巧的硬件模块上,利用C语言高效实现核心机器视觉算法,提供Python编程接口,使用者可以利用Python语言使用OpenMV提供的机器视觉功能。水面垃圾处理系统中,OpenMv被安装在机械臂上,随着机械臂转动不停巡视船身四周,发现水面上的垃圾时,OpenMv会将数据通过串口发送给Arduino单片机,Arduino单片机执行编程好的舵机动作组,控制机械臂拾取垃圾并放置在船上。

2.3 传感器模块设计

传感器模块主要采用E18-D80NK漫反射光电传感器,具有测距、计数、避障等功能。装置的传感器的有效识别距离为80 cm,响应时间小于2 ms,目标物体的颜色和反射光不会影响测距结果。为了实现测距和定位的功能,传感器被设置在船头左右舷处,左侧传感器用于检测船头到水岸的距离,右侧传感器用于记录当前位置。本系统与水岸距离达到传感器设定距离时,传感器信号接口处发生跳边沿电平,主控芯片通过驱动电路完成螺旋桨电机减速或停止转动以实现差速转弯的操作,存储在主控芯片内部的标志位数值进行自加1运算进行定位。

3 系统主程序设计

主程序中,识别到垃圾时,OpenMv与Arduino单片机通信,使其控制电机,舵机旋转以完成垃圾抓取功能。

主程序流程如图5所示。

图5 主程序流程

4 系统优化

4.1 旋转云台结构的优化

水面垃圾处理装置对垃圾的识别功能主要依靠OpenMv实现,但OpenMv的视野范围有限,不能有效识别视野盲区的垃圾[1]。为了保证装置可以无死角、无盲区地识别垃圾,在机械臂底座安装旋转云台,由舵机提供动力。工作中,主控芯片控制舵机以最大运动幅度进行往复运动,OpenMv跟随云台不断旋转,可以有效地识别分析旋转过程中扫过的地方。识别到垃圾时,主控芯片给舵机发出停止转动指令,此时OpenMv正对的地方为垃圾所在地,机械臂抓取时只需小幅度运动,能够减少机械臂运动的动作组。

4.2 机械臂结构的优化

机械臂需要频繁地完成抓取、放置动作,机械臂行动群过于复杂的情况下,生成冗余动作组,导致工作时间增加。为了使机械臂的抓持、放置动作最简化,采用多连杆结构并联的MK2机械臂[2-3]。该机械臂需要3个舵机,通过多个连杆机构的协调完成移动和所有的抓取、放置动作。与使用多个舵机串联连接的机械臂相比,舵机的数量减少,成本大幅降低,机械臂的动作组得到简化。

4.3 测距传感器的优化

船只航行过程中,接近岸边时需要及时拐弯。转弯不及时或提前转弯均会对水面垃圾清理工作带来影响。漫反射光电传感器可以实现准确判断并及时拐弯。为了应对实际工作过程中可能出现的一些情况,对传感器的测量值进行区分和优化。为传感器设定阈值及测量距离,传感器远离或匀速接近障碍物时,主控芯片等待接收传感器数据,传感器与障碍物的距离达到阈值时,触发下降沿中断,主控芯片接收中断,执行中断程序,计算从低于阈值到高于阈值的时间,反映传感器的灵敏度和误差情况。

装置在水面航行时不会始终保持匀速直线运动。根据船只在水面航行可能产生的情况进行3种试验,分别测试正常平稳航行、加速航行、减速航行的状况并得到返回数据,后续处理数据时,采用类似平均值滤波的办法滤去传感器自身的误差和试验过程中产生的环境因素误差。

不同航行情况下传感器返回的距离值如表1所示。

表1 不同航行情况下传感器返回的距离值 单位:cm

由表1可知,不同航行速度对应的距离变化不同,可以通过软件编程使装置在拐弯前判断自身所处的航行状态,精确地执行转弯动作。

5 结语

目前,许多水面垃圾清理作业依靠人工完成,传统的清洗方法耗费长、成本高、效率低。具有OpenMv、Arduino Mega 2560主控芯片且搭配漫反射光电测距模块和MK2型机械臂的基于视觉识别的水面垃圾处理装置具有自动巡航、垃圾识别和自动清洗功能,具有广阔的应用前景。

猜你喜欢

云台舵机航行
直升机某型舵机自动测试系统设计分析
到慧骃国的航行
帮我买云台
海洋美景
第六章 邂逅“胖胖号”
Help me buy a…Tripod head帮我买云台
基于STM32的无线FPV云台设计
基于dsPIC单片机的飞艇舵机控制实现
潜艇
当液压遇上悬臂云台 捷信GHFG1液压悬臂云台试用