张惠莹 , 杨秀芳 , 吴忠林 , 王 伟 , 许小龙 , 刘 冰 , 侯文斌 , 闫 鑫
(扬州工业职业技术学院,江苏 扬州 225127)
2020 年全国两会上,习近平总书记用“金扁担”来比喻农业现代化。随着农业现代化进程的推进,设施农业的育苗环节也迎来了新的发展契机,出现了通信、电子、机械等领域的新技术[1]。在农业发达国家,大型移栽设备得到了广泛应用[2-3],我国在移苗移栽设备方面也进行了大量研究,涵盖了自主移动温室机器人[4],导轨移动的串联、并联和混联构型的移栽机械臂等[5-7]。
课题组研发了一款用于科研及高附加值经济作物育苗的小型温室智能移苗移栽机器人,如图1 所示。机器人可根据需要移动至作业位置,末端预留安装工具的接口,除移苗移栽外,还可完成喷药、灌溉等任务,具有灵活的适应性。
图1 智能移苗移栽机器人
小车底盘由麦克纳姆轮、编码器电机、霍尔编码器及五路红外循迹模块组成。沿着预定轨迹,实现自主行走功能。
麦克纳姆轮结构紧凑,运动灵活,是一种很成功的全方位轮。在中心轮圆周方向又布置了一圈独立的、倾斜角度(45°)的行星轮,这些成角度的行星轮把中心轮的前进速度分解成X 和Y 两个方向,实现前进及横行。将四个这种新型轮子进行组合,可以更灵活方便地实现全方位移动功能。如图2 所示,四个麦克纳姆轮分别连接到电机上,进行独立控制。机器人可以像四个普通车轮一样前进、后退和旋转。
图2 麦克纳姆轮
电机参数如表1 所示。
表1 电机参数
开环控制由于电机差异及环境影响,只能实现粗略的运动模型控制。闭环控制与开环控制相比,更精确。将解算的电机驱动赋值为电机的目标速度,电机通过PID 控制实现目标速度跟随控制。图3 为四个编码器电机的控制策略。
图3 编码器电机的控制策略
小车采用增量式输出的霍尔编码器。编码器有AB 相输出,所以不仅可以测速,还可以辨别转向[8]。根据图4 可知,只需给编码器电源5 V 供电,在电机转动的时候即可通过AB 相输出方波信号。编码器自带了上拉电阻,所以无需外部上拉,就可以直接连接到单片机I/O 口读取。
图4 霍尔编码器
循迹模块可以实现机器人在白色的地板上根据黑色的线路行驶,采用的方法为红外线探测法。红外线探测法,就是利用红外线在不同颜色的物体上具有不同的反射强度的特点[9]。因为白色反射所有光,黑色吸收所有光。所以机器人在行驶的过程中向地面发射红外线时,红外线光遇到白色物体时便会被反射,反射出来的光会被装在机器人上的传感器所接收;遇到黑色的物体时,红外线光便会被吸收。单片机接收以是否收到反射光来判断和确定机器人的位置和行驶路线。五路红外循迹模块如图5 所示。
图5 五路红外循迹模块
机器人的执行机构由云台、机械爪、舵机、导轨滑台模组、喷雾器、视觉识别系统等组成。
如图6 所示,课题组选用旋转云台与总线舵机配合,完成机械臂圆周范围的运动。
图6 云台和机械爪
舵机是一种带有输出轴的小型伺服电机。当控制信号发送至伺服器时,输出轴可相应地转至指定位置,轴的角度位置随着控制信号的改变而改变。舵机广泛应用于日常生活中的遥控飞机、遥控汽车、机器人等领域。
总线舵机是舵机派生出来的一种特殊舵机。单总线回读数字舵机采用单总线通信方式,内部装有主控芯片,完成了对 PWM 的内部控制,具有角度回读、多角度工作模式切换功能。并采用了简单的控制方式,仅用一条指令,用户就能实现对舵机的控制。与传统舵机相比,其内部的组成结构和工作原理基本相同,主要区别在于总线舵机之间可以串联,最多可使255 个舵机级联。
结合本课题设计的具有视觉识别功能的机械臂的结构特点、工作环境、目标物的尺寸重量等多方面因素,本课题选取ZX20S 智能串行总线舵机作为驱动模块,尺寸如图7 所示。其中,一个总线舵机安装在云台处,用于负责机械臂整体圆周运动;一个总线舵机安装在机械臂Y 轴末端,用于负责末端执行器腕关节处转动;另一个总线舵机安装在末端执行器上,通过齿轮啮合控制末端执行器的开合以实现抓取。
图7 ZX20S 智能串行总线舵机
导轨滑台模组由两个导轨滑台组成,实现机械爪的上下和左右移动。图8 为其中一个导轨滑台三维模型,可以实现左右移动。
图8 导轨滑台
OpenMV 是一个机器视觉开发组件,使用Python编程,具有易使用、低成本的特点,可以帮助用户完成机器视觉应用,如测距、扫码识别等[10]。
具有视觉识别功能的机械臂视觉识别系统选用星瞳科技提供的OpenMV 机器视觉模块,如图9 所示。该机器视觉模块具有轻便小巧、功耗低、成本低等特点,以STM32H743II ARM Cortex M7 为处理器,具有480 MHz主频、1MB RAM、2 MB flash。所有的 I/O 引脚输出3.3 V,并且5 V 耐受。OpenMV4 H7 Plus 默认配置的OV5640 感光元件处理2 592×1 944(5MP)图像。在QVGA (320×240)及以下的分辨率时,大多数简单的算法可以运行(25~50)FPS。
图9 OpenMV 机器视觉模块
OpenMV 搭载了MicroPython 解释器,允许用户使用Python 对嵌入式系统进行编程。Python 简化了机器视觉算法的编程过程。OpenMV 能够实时显示图像,实时查看颜色直方图,通过代码可以使试验中识别数据的方面更加简洁与直观。
用户可以使用OpenMV 专用的IDE 进行编程,该软件配置了图像窗口,可以直接看到摄像头拍摄到的图像,图像窗口下的直方图包含了该图像的详细信息。使用OpenMV-IDE,实现了对图像的采集及失真校正和图像的处理及分析,完成了机械臂的视觉识别。
采用Python 编程调用图像处理的算法进行开发。OpenMV 机器视觉模块的程序设计前,预先将各幼苗种植时间进行分类记录,并利用相应软件生成对应QR 码。视觉模块工作时,采用视觉识别算法,获取QR 码对应幼苗的信息,通过模块内置系统的时间,与幼苗种植时间进行对比,判断该幼苗需进行移苗操作或是浇灌操作。图10 为智能机器人试验过程,按照黑色标记线进行循迹,通过执行机构完成了精准的移苗作业。
图10 智能机器人移苗作业
课题组设计了一款智能移苗移栽机器人,底盘主要实现循迹功能,由麦克纳姆轮、编码器电机、霍尔编码器及五路红外循迹模块组成。执行机构由云台、机械爪、舵机、导轨滑台模组、喷雾器与OpenMV视觉模块组成。机器人可根据需要移动至作业位置,末端预留安装工具的接口,除移苗移栽外,还可完成喷药、灌溉等任务,具有灵活的适应性。