胡勇兵,黄 达,李金刚
(中国水产科学研究院渔业机械仪器研究所,上海 200092)
中国是世界第一水产养殖大国,陆基工厂化养殖作为工业化程度最高的一种先进养殖模式,虽在国内起步较晚,但无论是技术还是在产业应用上均取得了长足进步[1]。工厂化养殖鱼池规格大小一般有边长3.75 m 的方切角池或直径6 m的圆形池,采用易清洗的玻璃钢材料。鱼池清洗工作主要在三个时间节点:养鱼前、分池倒池阶段和养鱼结束。现阶段传统的清洗方式是养殖员工手持板刷清刷或者高压水枪冲洗,劳动强度大,效率低。因此,开发一种满足于水产养殖过程中进行自动清洗池底的智能化装备[2-4],对于提高工厂化养殖效率,提升系统自动化和智能化水平具有现实意义。
目前,国内外针对鱼池的清洗设备还没有相关研究,但是地面清刷装备取得不错的研究进展,已有相关产品投入实际使用。欧美日韩等发达国家的电器制造商抓住了传统机械和控制感应单元结合的潮流,推出了一系列智能清洁机器人[5-6]。美国的iRobot 公司推出了Roomba 系列机器人,配备多种传感器探测环境,瑞典伊莱克斯公司的三叶虫是最早使用超声波导航技术的智能吸尘器,这两款都采用随机碰撞的方式来进行路径规划[7]。英国Dyson公司研发了DC06 清洁机器人[8],以内螺旋方式清扫,能够自主避开障碍物。浙江大学等高校[9-10]最早研制智能清洁机器人,通过超声波传感器对环境进行学习,采用随机清扫和局部覆盖的清扫方式。国内市场主要品牌有KV8 和科沃斯系列[11],主要以红外线障碍感应系统为基础的随机碰撞寻路系统,清扫模式有区域螺旋清扫模式和直线S型行走模式。
笔者根据以上背景和国内外水下清洗装备发展现状的分析,结合工厂化养殖模式设计了基于STM32 的鱼池清刷机器人,该机器人通过STM32控制器、传感器、电机和电源等模块来实现自主清扫任务。目前样机进行了鱼池工况作业,能够实现速度调节和避障转弯,在路径规划方面采用内螺旋路径算法完成了全覆盖清扫实验。
鱼池清刷机器人总体设计分为机械结构设计、控制系统硬件设计和软件设计。结构设计包括机器人本体、行走机构、清扫机构、密封舱等结构。控制系统硬件设计采用模块化思想,以STM32 单片机为主控模块,电源模块为整个系统提供能源,电机驱动模块执行动作,传感器模块采集数据信息,通信模块实现信息交互。控制系统软件设计主要是驱动程序设计、路径规划算法及上位机软件的操作。鱼池清刷机器人控制部分设计流程如图1所示。
图1 机器人控制部分设计流程图Fig.1 design flow chart of robot control part
根据室内工厂化养殖车间的技术规程,结合养殖鱼池的工作环境,确定设计应满足的主要技术指标如表1所示。
表1 主要技术指标Tab.1 Main technical indicators
鱼池清刷机器人主要包括机器人车体、履带行走机构、清洗刷以及电子舱等。考虑到水下工作环境以及配合其它零件的安装专门设计了铝合金制车体,履带和清洗刷都由直流电机控制,电子舱安装在车体上方,用来放置电源、控制器等电子元器件。鱼池清刷机器人车体平稳安装,各零件水密封等级达到设计要求。
控制器模块是整个系统的决策中心,接收各类传感器采集的数据信息,经过计算处理后向各模块发送信息指令,从而控制机器人完成清扫任务。考虑到路径规划算法的复杂性及运算速度问题,本系统采用STM32F103 微控制器,与相关外围电路组成主控模块。该控制器是基于ARM架构的32位Cortex-M3内核,主频为72 MHz,外设接口丰富,稳定性高,可以精确与其他模块进行通信,配合PWM 技术、路径规划算法保证机器人在运动过程中的智能可控性和良好的清扫效果。
电源模块为整个系统提供能源,保障电机、传感器、控制器等模块正常工作。本次设计选用额定电压为12 V,容量为12 000 mAh 的锂电池组,由于清扫机构的电机耗能较大,直接由电源供电,驱动电路和传感器采用5 V 直流供电,主控制器采用3.3 V 供电。在直流电机上加入LM2577 自动升降压模块及LM2596 稳压模块,保证所有模块供电正常。
超声波测距原理[12]是传感器发射超声波时开始计时,碰到障碍物立即返回,接收器收到信号停止计时,测距流程如图2所示。超声波在空气中的传播速度为V,计时器收发信号时间差为T,通过公式S=V*T 计算出发射点到障碍物的距离。机器人在清扫过程中避障转弯、路径选择都需要传感器采集的数据来判断调整。本次设计采用HC-SR04超声波模块,包括超声波发射器、接收器与控制电路,可提供2 cm~400 cm 的非接触式距离感测功能,测距精度可达到3 mm,符合设计要求。
图2 超声波测距流程图Fig.2 Ultrasonic ranging flow chart
鱼池清刷机器人软件系统设计分为控制程序设计和上位机软件两部分。
本方案中机器人控制程序包括驱动避障程序和路径规划算法程序。电机驱动程序控制机器人的动作,传感器采集数据协助机器人避障转弯,算法程序负责机器人路径优化。清扫任务的主程序流程图如图3所示。
图3 内螺旋清扫流程图Fig.3 Internal spiral cleaning flow chart
3.1.1 驱动避障程序
机器人上电后,STM32 控制器初始化各模块,控制电机按照超声波识别的数据经过计算处理后,开始巡线运动,当传感器发出提醒信号时,机器人执行避障转弯,恢复巡线运动。在此运动过程中,鱼池机器人需要具备转向和调速的功能,同时能够提前感知池壁的位置,实现避障转弯。直流电机的转速与PWM 的周期和占空比有关,因此,本文使用STM32 控制器的定时器产生脉冲信号调节电机速度,利用左右轮速度差实现转向,PWM 信号配置如图4 所示。同时机器人采用超声波测距避障,传感器采集环境信息,通过收发信号确定时间差来测距,实现避障功能。
图4 PWM 信号配置Fig.4 PWM signal configurationt
3.1.2 路径规划算法
路径规划是基于感知的工作环境信息,按照一定的优化指标,从起始点到目标点的无碰撞路径规划[13]。本方案中的环境信息已知,去实现机器人行走路径的最大覆盖率和最小重复率。在理想状态下,已知的环境信息只有池壁需要避障转弯,因此,机器人可以采用内螺旋“回”字型路径执行清刷任务。清刷机器人从鱼池边界处开始工作,采用沿边学习的路径算法,沿池壁运动一圈后向内圈行走,循环向内圈行进并标记所走过的路径,直至全部清扫完毕自动返回起始点。
上位机软件是用MATLAB 的GUI 界面编写,主要用来控制机器人的动作和清扫作业的控制,与STM32 主控芯片实现数据共享,数据的传输由串口通信来实现,能够实时显示机器人运动状态和进行路径规划的仿真测试。上位机的用户操作界面具有良好的人机交互性,操作简单便捷,极大提高效率,降低硬件测试平台开发的难度[14]。
为了验证系统的功能和可靠性,在中国水产科学研究院渔业机械仪器研究所如东试验基地的养殖车间里进行样机试验,选择长为3.75 m ×宽3.75 m的平底方形养殖鱼池,池底清洗面积约为12.9m2。试验样机车体尺寸为长0.4 m× 宽 0.3 m × 高0.15 m,如图5所示进行池底清刷试验。样机测试在自动运行模式下,通过设置不同的起点,进行6组清刷试验,主要测试样机是否达到技术指标要求及其控制性能。
图5 样机实验Fig.5 Prototype experiment
本次试验主要是观察机器人在池底的清刷效率,通过以下两个因素进行评价:覆盖率和重复率。在样机实际清扫过程中,由于速度调节、转弯精度、清扫模式以及机械系统等存在误差,会出现一些遗漏和重复的问题。在养殖车间的鱼池环境中,通过6 组池底清刷试验的数据,如表2所示,测得机器人主要运动技术指标如下:行走速度均值为11.15 m/min,工作时间约为15 min,清扫速度能达到1 m2/min。清刷机器人在鱼池环境中覆盖率能达到85%以上,重复率最高为8.89%,机器人的行走速度会影响清刷效率,但基本能够达到所要求的清扫效果。鱼池清刷机器人在清扫任务完成后可以自动返回初始位置,验证了内螺旋式路径规划方法是可行的。
表2 清刷试验设计及结果Tab.2 brush test design and the result
本设计中的鱼池清刷机器人选用STM32 单片机为主控制器,结合PWM信号调制和超声波传感器实现机器人驱动和避障,选用内螺旋路径规划算法实现最大覆盖率和最小重复率,达到最佳清刷效果,替代了人工操作,实现了自动化清扫。经实验证明,系统运行正常且满足预期效果,在水产养殖中能够实现高效智能的清扫任务,为工厂化养殖中的智能化清洗装备提供有效参考,具有应用前景。现阶段设计的鱼池清刷机器人在已知环境信息中工作,未来打算向未知动态环境去展开研究。