*基于项目:第七届全国大学生工程实训大赛
本文引用地址:作者简介:李泽科(1999—),男,汉族,甘肃天水,本科生,专业,机械设计制造及其自动化。
通讯作者简介:陈越超(1987—),男,汉族,吉林长春,硕士,研究方向:检测技术及仪器。
水下管道巡检机器人是水下作业中必不可少的设备,它在很大程度上帮助人类完成了一系列复杂的工作,提高了工作效率,解决了安全问题。但是,目前水下管道巡检机器人实现的功能并不完善,为了解决准确循迹以及标记管道泄露和腐蚀位置问题,设计了一款用于水下管道智能巡检机器人,它主要具有准确循迹、识别与检测功能,可以解决上述问题。本设计能够在水下完成操作,当水下机器人船身出现倾斜,会通过姿态传感器反馈到主控板,显示当前机器人的姿态状况。在下潜和上升过程中,通过水压传感器进行水压检测,在此过程中感知被测量的信息,并根据一定的规律转换成可用信号;在水下管道检测中,能够发现管道表面腐蚀的地方并进行标记,以便修复管道;在行走过程中,可对水下垃圾进行抓取回收,实现水下环境的清理与保护。
1 系统方案设计
本设计主要由2 块 单片机作为主控板,分别接收OpenMV、水压传感器和姿态传感器的数据和信息,以及控制电机的转动和标志物的识别。启动电源之后,循迹模块和识别模块开始工作,利用水压传感器与姿态传感器实时检测水压和水下机器人的姿态状况。本设计能够更好地进行水下管道检测,提高工作效率且便于操作。系统设计框图如图1所示。
图1 系统设计
2 系统硬件设计分析
2.1 主控板的选用
本设计选用Arduino Mega2560 作为主控板;核心电路板设计采用USB 接口,操作简单。在烧制程序时,可直接利用USB 接口下载程序。此外,主控板具有2 种供电模式:USB 直接供电或利用电池外部供电。与其他主控板不同,其I/O 接口较多,包括16 位PWM 输入口在内有54 位数字I/O 口,其处理器核心为ATmega2560。此外,Arduino Mega2560 已发展到最新版,在前2 版的基础上又增加了SDA、SCL(位置在AREF 的左侧),作用于接口I2C 处。而shield 可利用IOREF 接口提供一个电压参考,在串口的设计上,ATmega2560 内置的4 路UART 可以实现与外部的串口通信,并且USB 上的虚拟串口可以通过 ATmega16U2去访问串口0 实现。
2.2 循迹以及识别模块
在本设计中采用OpenMV 作为循迹和标志物识别的主要模块。其具有较强的处理功能,能在水中敏锐地识别出管道,通过PID 算法可以精准的识别出管道路线,并识别标志物所在的位置。其所有引脚均可承受5 V 电压,输出电压为3.3 V,在运行时可工作的范围为-20 ~ 70 ℃。
2.3 水压传感器
在本系统中为了去实时的检测水压状况而采用M10深度传感器,此传感器具有高分辨率,而且内部设有高分辨率的I2C 接口MS5837 压力传感器;此传感器设有VCC( 红线)、SCL( 绿线)、SDA(白线)、GED(黑线)4 个引脚,用于连接深度传感器解算板,读取深度传感器的测量信息及其修正系数;并与主控板形成串口输出。
2.4 姿态传感器
本系统利用JY90X 传感器检测机器人在水下的姿态状况。水下机器人通过读取传感器的三轴加速度、三轴角速度、三轴磁场的原始数据,将数据实时反馈到主控板,然后使用自主研发的姿态动力学核心算法,通过结合高动态卡尔曼滤波融合算法表示机器人在水中行走时稳定的三轴姿态角度。此外,传感器采用高密度4 层板设计,小巧方便;并且6 轴或9 轴算法可自由切换,同时可外接GPS 模块,实时定位水下机器人的位置。
2.5
本设计采用L298N 作为电机驱动模块,如图2 所示。该电机驱动模块内部包含4 通道逻辑驱动电路,它是一种两相和四相电机的专用驱动器。电机可由L298N 直接控制,而电机正反转的驱动可通过主控芯片I/O 输入对其控制电平进行设定,操作步骤简洁,稳定性良好,可以满足直流电机的大电流驱动条件。1 个L298N 模块可同时控制2 个直流减速电机的不同动作,在6 ~ 46 V的电压范围内,提供2 A 的电流,且具有过热自断和反馈检测功能。在本设计中主要利用L298N 控制6 个直流电动机来实现巡检机器人的前进、转弯及上下运动,使巡检机器人实现循迹及深水区浅水区检测的功能。
图2 L298N电路原理
3 软件分析
3.1 及其控制
由于在水中要适应多种复杂的环境,在本设计中,水下机器人要按照要求通过指定的线路,这就要求水下机器人具有精准的前进方向。所以通过PID 控制回路算法保证水下机器人在前进过程中能够沿着要求的线路航行,并完成任务,以提高工作效率。主控板通过接受姿态传感器的数据反馈,进而控制电机速度。当水下机器人偏离管道,控制器发出指令信息,调节前进方向,使之回到主管道。
4 程序设计
本系统利用不同语言对不同模块编程。主程序部分利用特有编程软件Arduino 编程,使编译环境更加简单、方便,各种功能的调用十分便捷,各种库函数的调用也十分方便。OpenMV机器视觉模块利用Python 编程软件,通过程序控制OpenMV 机器视觉模块将采集到的视觉信息显示到电脑上。然后调节PID 算法使OpenMV 模块传回的信息更加精确。
本系统程序设计包含主程序部分、L298N 电机驱动子程序和OpenMV 循迹物块识别子程序。开始先进行系统初始化,然后按下开始按键,整个系统进入工作状态,接着调用OpenMV 子程序使水下机器人寻找到指定线路,然后开始循迹。在前进过程中,利用水压传感器检测水压,同时根据姿态传感器检测机器人的姿态状况及时调整方向,通过PID 算法控制L298N 电机驱动实现机器人的前进、转弯。在循迹行走中,OpenMV 子程序实时将外界信息传递给主控板,巡检机器人在检测到不同标志物时通过三色LED 小灯进行不同显示。当识别的物体为正方形时,LED 小灯显示为绿色;当物体为圆形时LED 小灯显示为红色。程序框图如图3 所示。
图3 程序框图
5 结束语
随着社会的进步与发展,水下巡检机器人在未来应用会非常广泛,在水中作业方面将起到很大作用。本文主要研究水下机器人的控制系统,获取相应的结论:水下机器人的行走及物块识别都需要依靠智能控制进行反馈;在很大程度上解决了水中作业的问题,降低了工人巡检的难度,提高了工作效率。
参考文献:
[1]史志晨.水下作业机器人声呐图像目标跟踪研究及水面监控系统设计[D].镇江:江苏科技大学,2020.
[2]徐敬成.无刷直流电机远距离调速控制系统研究[D].株洲:湖南工业大学,2019.
[3]宋滨鹄.基于视频的多目标识别研究[D].天津:天津科技大学,2017.
[4]赵开理.基于单片机设计直流电机控制系统[D].南京:南京邮电大学,2017.
[5]王萧.基于嵌入式Linux的水中机器人设计[D].天津:天津大学,2014.
[6]陈吕洲.Arduino程序设计基础[M]北京:北京航空航天大学出版社,2014.
[7]赵加敏,徐玉如,雷磊.用于水下机器人智能路径规划的仿真器的建立[J].系统仿真学报.2004(11):2448-2450.
[8]成巍,苏玉民,秦再白,等.一种仿生水下机器人的研究进展[J].船舶工程.2004(1):5-8.
[9]张露凝,于洋,张航,等.水下机器人检测系统在北京市南水北调工程的应用[J].北京水务,2020(6):31-37.
[10]张兴兴,王伟,陈世明,等.基于人工侧线的相邻仿生机器鱼感知研究[J].测控技术,2016(10):33-37.
(本文来源于《电子产品世界》杂志2022年1月期)
相关文章