基于Arduino葡萄套袋智能机器人的设计*

2018-06-21 06:01蒯苏苏沈志豪费铖邦朱明霞
精密制造与自动化 2018年2期
关键词:果袋飞轮套袋

蒯苏苏 沈志豪 王 震 谢 静 费铖邦 朱明霞

(1. 江苏大学机械工程学院 江苏镇江212013;2. 镇江市第一人民医院 江苏镇江212002)

国内外对于葡萄套袋机械的研制,是通过葡萄图像颜色特征分析,选取目标和背景灰度差异较大的色差图,分别采用人工阈值法和自动阈值法对其进行分割,运算量大,耗时多,目标识别在夜间无法进行。目前葡萄套袋机械的设计难点有:(1)对于(生长期)葡萄的识别难度大;(2)对于撑袋套袋过程缺乏灵活的结构。针对以上问题,根据文献蒯苏苏提出的 TRIZ效应理论,通过“Makeblock”机器人创意组件,创新设计搭建了Arduino智能型葡萄(生长)自动套袋机器人,白天黑夜均可识别葡萄串,并自动套袋[1-6]。

1 系统构成

Arduino葡萄套袋智能机器人主要有行走系统、机械系统和控制系统三部分组成。机器人样机采用“Makeblock”铝合金组件,独特的螺纹槽和孔的连接方式,搭建了一种Arduino葡萄套袋智能机器人,如图1所示。经过Arduino的开源电子平台设计新的运算程序,对机器人模式识别和自动套袋进行编程和创新。

1.1 行走系统

四轮履带式小车左前轮安装步进电机 M3,右前轮安装步进电机M4,电机驱动模块驱动小车按照指令运行。当小车左轮速度小于右轮速度时,左转; 当小车左轮速度大于右轮速度时,右转;当小车左轮速度等于右轮速度时,小车走直线。由于两个轮子在行进过程中,分别遇到的阻力不一样,两轮的转速会发生偏差,解决的方法是通过编码器、Arduino控制器和电机驱动模块、步进电机形成闭环控制系统,对电机驱动板的使能端口和转向端口进行设置,步进电机中的编码器反馈转速送入Arduino控制器中,控制器实时计算出两轮的转速差,设立一个PID比例算法,让转速慢轮子的电机功率值加大,从而消除车轮的转速差。

PID比例算式是:

PWM_3=(float)PWM_3+1.5(rpm_4—rpm_3)。算式中:rpm_4是步进电机M4的转速;rpm_3是步进电机M3的转速;PWM_3是步进电机M3的PWM功率值。

二轮步进电机的转速差乘以比例调节因子1.5,再叠加上一次PID计算得到的PWM_3,就得到了当前步进电机M3的PWM功率值PWM_3。如果步进电机M4转速rpm_4比步进电机M3转速rpm_3要低,则从算式中可以看到,会自动减小步进电机M3功率值 PWM_3,反之亦然,通过循环执行Arduino程序中PID算式,便可达到两个步进电机转速一致的目的。当小车避障时,用超声波传感器检测到机器人接近了相关障碍物体10 cm时,自动调整方向,避障或绕障行走,使小车执行前进、后退、左转、右转、停止和速度切换动作,实现机器人自移动功能。

图1 葡萄(生长)套袋智能机器人

葡萄串模式识别,根据TRIZ理论对效应不足的完整模型,通过“物~场”分析的一般解法来解决,如图2所示。S1—小车,S2—葡萄,F1—步进电机的电能,为了使(小车)S1在(步进电机)F1驱动行走时,(感知葡萄)S2,从 100个科学效应中选用 E85—形变和E89—压电效应,插进一个物质 S3—薄膜,并增加另一个场 F2—触动传感器开关信号的电能,来提高有用的效应,去感知S2(葡萄)。

图2 加入物S3和场F2

当S1(小车)由F1(步进电机)驱动行走时,S3(薄膜)触碰到葡萄时产生很小的力,发生形变,改变物体空间性质,薄膜背面的触动传感器被外力触发,产生正压电效应,F2(触动传感器)发出开关信号,用一个条件判断

使得扩展板上LED灯点亮,行走停止,S2—葡萄串目标定位。

当履带式小车前进时,薄膜表面探测识别触碰物体,移动中的薄膜触碰到物体产生动态应力。

模式识别时由于茎叶的重量很轻,对于薄膜产生的应力很弱小,薄膜背面的触动传感器不触发;而一串葡萄产生的应力相对较大,易于与茎叶区分;对于小概率会碰到树枝时,因为树枝的固定性,对于薄膜造成的应力会很大,以至于戳破薄膜,通过编程设置一个极限值来排除树枝的影响。当识别到葡萄串的时候,编写Arduino 的C语言程序:

控制RGB模块,设置LED模块连接到3号接口,设定红色数值(20)、绿色数值(150)、蓝色数值(255),延时等待0.5秒,LED灯灭,锁定目标,等待接下来的套袋工序的完成。

1.2 机械系统

套袋需要细分成四个过程:吸袋、撑袋、套袋、扎袋。二自由度飞轮摆杆滑块机构各构件尺寸如下:

构件1=85 mm、构件2=86 mm、构件3=160 mm、构件4=180 mm、飞轮5直径Φ50 mm、飞轮5与构件1之间机架距离CD=260 mm,如图3所示。

图3 二自由度飞轮摆杆滑块机构简图

图3中,设置构件1是0~60°摆动,飞轮5是0~90°转动。当飞轮5转动,构件4从水平位置吸住纸袋一侧转动,当构件4运动到垂直位置时,飞轮5停止转动,纸袋被吸盘A吸住;构件1逆时针转动,带动摆杆滑块机构运动,构件3移动到左端吸住纸袋另一侧,接着构件1顺时针转动60°,构件3移动到右端,纸袋被吸盘B吸住,纸袋撑开。

识别葡萄串目标定位的 LED灯点亮后,通过ArduinoStepper库函数控制电机转速,控制二自由度飞轮摆杆滑块机构运动。

构件4一侧的吸盘A由电机M1驱动飞轮5旋转一定角度后,延时等待,打开气泵电机M5控制气泵吸气口吸气,构件4向下固定位置吸取一个葡萄果袋。吸住套袋后,构件4上的吸盘A同套袋在电机M1控制下再回到竖直位置。电机M2转动,带动构件3一侧的吸盘B向构件4方向合拢,延时等待,打开气泵电机M6控制气泵吸气口吸气,使构件3一侧吸盘B吸住套袋,此时一对真空吸盘分别吸住套袋两侧。在吸盘保持吸住套袋的条件下,构件4静止,构件1在电机M2驱动下带动构件3向另一侧移动,吸盘B吸住果袋撑开,果袋张开面积最大时完成撑袋过程。接着保持一对吸盘的位置,将袋口对准葡萄串,完成套袋。

自动收扎套袋过程,用一只三自由度机械手拽拉果袋绳子扎袋(见图1)。机械手大臂处装有大臂电机M9、机械手腕处装有手腕舵机M8,机械手指处装有手指电机 M7,控制机械手大臂仰、俯;手腕仰、俯;手指张开、合拢六个动作,手指伸进绳圈,夹住绳子,手腕上仰,大臂后仰,拉出绳子,收缩果袋袋口,自动拽拉果袋绳子扎袋,同时控制气泵电机 M5、气泵电机 M6停止气泵吸气,使吸盘A、吸盘B松开果袋,完成自动套袋。机构回到初始位置待命,开始下一个目标识别。

1.3 控制系统

由模块化设计思想、任务要求及机器人工作的软硬体,设计了计算机、Arduino的开源电子平台,葡萄套袋智能机器人的控制系统总体框图见图4。

图4 控制系统总体框图

该控制系统由上位机和下位机二部分构成:上位机采用计算机,编写Arduino图形化程序,作为智能机器人的控制软件,下位机采用 Arduino微处理器来实现对葡萄套袋智能机器人的整体控制。有三种运行模式:(1)计算机在线控制机器人;(2)Arduino控制器控制机器人;(3)Andriod手机控制机器人。

机器人套袋流程框图如图5所示。用户通过计算机与 Arduino 通信,Arduino机器人使用的每个程序中,由Arduino的接口收集从数字量收到的数值,然后送到计算机,计算机把数值量的输出数值反馈传送到接口上,Arduino的微处理器接收来自计算机的程序指令,由程序自动打开或关闭相连的电机、步进电机、舵机。

图5 机器人套袋流程框图

2 程序设计

机器人控制系统软件设计,在搭建机器人硬件的基础上,按照功能要求,程序设计包括主程序、驱动程序、避障程序、支架平台升降程序、套袋程序以及机械手程序,实现高层次分级控制。

2.1 Arduino 单片机程序

(1)Arduino程序结构中没有main()函数,而是main()函数的定义隐藏在Arduino的核心库文件中。在进行Arduino开发上,一般不直接操作main()函数,而是使用setup()和loop()这两个函数。

(2)loop()函数是一个死循环,通常是在loop()函数中完成驱动各种模块和采集数据等功能。

(3)While“当”型循环,引入 millis()函数,不用占用CPU时间,对长程序非常有用。如延时可采用while(millis() < endTime)_loop() 语句。

2.2 系统程序

搭载在机器人上的电机 M10驱动丝杠螺母机构运动,丝杠螺母薄膜感应器上升,感知上方葡萄串时小车停止前进,进行模式识别后,丝杠螺母薄膜感应器下降30 mm;电机M11驱动同步齿形带运动,与同步齿形带一侧固结的支架升降平台开始上升30 mm,二自由度飞轮摆杆滑块机构与吸盘开始撑袋、套袋、机械手扎袋,相关程序见图 6。其中Arduino主程序、C语言头文件如下:

图6分别表示了模式识别程序、套袋程序、三自由度机械手扎袋程序和同步齿形带升降平台Arduino图形化程序。

图6 Arduino葡萄(生长)套袋智能机器人程序

3 结语

设计了基于Arduino葡萄套袋智能机器人,提出了各个功能模块的设计和具体实现方法,根据TRIZ效应理论E85—形变和E89—压电效应分析,葡萄模式识别通过薄膜触动传感器被外力触发,产生正压电效应,Arduino控制器上LED灯点亮,动态感知葡萄串。创新设计了二自由度飞轮摆杆滑块机构与一对吸盘吸住套袋,实现撑袋、套袋功能。结果表明,控制系统PID比例算法对小车直线运行稳定,实时性强,实现了智能机器人前进、避障、自动套袋等功能。以控制晶片的Arduino编写程式码,完成机械手臂俯、仰;机械手腕俯、仰;机械手指抓取、松开等功能,在机器人领域有较为广阔的应用前景,为研究智能机器人提供了重要的参考依据。

[1]西格沃特,诺巴克什,斯卡拉穆扎,著.自主移动机器人导论:2版 [M].李人厚,宋青松,译.西安:西安交通大学出版社,2013:70-120.

[2]徐丽明,葛晓棠,张铁中.水果果袋自动撑开机构的研究[J].农业工程学报,2007,23(4):138-143.

[3]蒯苏苏,马履中.TRIZ理论机械创新设计工程训练教程[M].北京:北京大学出版社,2011:95-235.

[4]陈吕洲. Arduino程序设计基础[M].2版.北京:北京航空航天大学出版社,2015:70-100.

[5]蒯苏苏,陈寒松,张文涛,等.一种自动取料平台及其运料方法:201510349755.[P].2015-06-23.

[6]刘灿.葡萄套袋机器人目标识别方法研究[D].杭州:浙江工业大学,2012.

猜你喜欢
果袋飞轮套袋
乐昌柰李“炼金术” 套袋果身价十倍
不同透光率果袋对黄冠梨鸡爪病发生的影响
不同果袋对苹果果实品质的影响
新型便携式果实套袋器的结构设计与应用
不同果袋对红色梨果实品质的影响
飞轮座注射模设计
柔性发动机用飞轮转动工装的设计及应用
盛花后45天套袋对苹果品质和防御病害最有利
轮峰推出两款飞轮新产品
套袋