基于深度学习的智能果实采摘系统设计与实现_第1页
基于深度学习的智能果实采摘系统设计与实现_第2页
基于深度学习的智能果实采摘系统设计与实现_第3页
基于深度学习的智能果实采摘系统设计与实现_第4页
基于深度学习的智能果实采摘系统设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于深度学习的智能果实采摘系统设计与实现

0降低农业生产自动化、提高工作效率实现臂机械动作的控制以及果实空间坐标的定位是提取和实现的重要因素。随着现代科技的发展,智能识别算法、机械领域新技术也越来越多地应用到果蔬采摘设备设计中,这些新技术在提高农业生产自动化和智能化的同时,也降低了生产成本、提高了工作效率。目前,国内外学者对采摘设备进行了大量的研究和实验本文使用YOLOv4目标检测识别算法对果实进行像素定位和识别,训练多种果实的识别模型,并结合Android开发技术、服务器和网络通信技术,对多种果实进行智能识别及采摘,为降低机械臂逆运动学求解时的分析难度和计算量,通过降维方式进行机械臂逆运动学解算。1系统的全球设计1.1机械臂逆运动学解算和运动轨迹规划图1为果实采摘系统的连接及功能框图,系统中树莓派和手机端APP使用Socket通信协议与服务器进行连接,实现数据的互传。树莓派对实时图像拍摄和上传,完成机械臂逆运动学解算和运动轨迹规划,通过GPIO管脚与六自由度机械臂连接,输出控制信号,控制机械臂运动到指定位置,实现果实的采摘。服务器使用YOLOv4识别算法对树莓派上传的图像数据进行果实目标检测和像素定位,并对果实空间坐标进行解算,再将解算结果发送到树莓派。手机端APP可以实现与采摘设备的远程连接,控制采摘设备的启动和停止,可实时查看采摘设备的现场采摘视频,还可以通过手机端选择需要采摘的果实类型。1.2机械臂逆运动学制作系统的设计流程如图2所示。打开手机APP以及采摘设备开机上电,APP和采摘设备自动连接至服务器,服务器端将采摘设备的IP信息发送到手机APP,在APP选中IP地址即可进行采摘设备的连接。设备连接成功后,可通过手机APP对采摘设备进行远程控制,此时树莓派将采摘现场的实时图像上传至服务器进行图像识别和空间定位,而后服务器将空间定位坐标返回树莓派。树莓派根据空间坐标进行机械臂逆运动学解算和机械臂运动轨迹规划,最终由树莓派输出控制信号,控制机械臂进行果实采摘。采摘过程中,可以点击APP中的查看按钮查看采摘现场的实时视频。2采购系统臂设计2.1机械臂的导致果实采摘对果实进行采摘的是一个六自由度的机械臂,图3a为其实物图。该机械臂由6个6125型数字舵机构成旋转关节,单个舵机的扭矩为25kg·cm,6个舵机与其它金属零件组成机械臂。机械臂爪子部分可根据采摘不同的果实进行更换,这样可以使采摘机器人更好地完成果实采摘任务。当采摘的果实直径较小时,选用如图3b所示的开口较小的爪子进行采摘,该爪子最大的开口为55mm。果实直径较大时,选用如图3c所示的开口较大的爪子进行采摘,该爪子最大的开口为125mm。该机械臂参数见表1。2.2机械臂逆运动学应用机械臂的运动学分为正运动学和逆运动学两种。正运动学是设定好机械臂各个关节角,来实现机械臂的运动控制;逆运动学是已知一个在机械臂运动范围之内的空间坐标,根据已知的空间坐标来求解得到机械臂各个关节所需旋转的角度,最终控制机械臂运动到指定位置。在机械臂的实际运用中,更多的是实现机械臂的逆运动学求解。本文设计的采摘系统,通过图像识别算法来指定果实的空间坐标,进行机械臂逆运动学求解使机械臂运动到果实位置,最终实现采摘。机械臂的逆运动学求解,通常是在三维坐标系中实现。首先需要通过右手定则确定机械臂各个关节的正旋转方向。之后得到各个关节的旋转矩阵和平移矩阵,将旋转矩阵和平移矩阵相乘得到一个新的矩阵,该矩阵描述了机械臂末端在空间的坐标及姿态。通过该矩阵就能得到机械臂末端和各个关节间旋转角的关系,通过这个关系可实现机械臂的逆运动学求解。但是这需要进行大量的矩阵运算和三角函数运算,并且可能求得多个解,使得机械臂的逆运动学求解变得很复杂。为了降低运算量,该采摘系统中结合使用的机械臂,对机械臂各个关节进行拆分,最终通过二维坐标系实现机械臂逆运动学求解,大大简化了计算。2.2.1dh模型和坐标系的建立在分析机械手臂的运动过程时,需要先建立机械手臂中各个关节的坐标,图4a为根据DH模型建立的机械臂各个关节的坐标图2.2.2机械臂逆运动学建模为了提高机械臂控制的实时性,通过降低维度的方法来进行分析得到逆运动学求解。求解过程中,先将底部云台的旋转关节和控制末端机械爪转动及开合的关节去掉,这样就可以在XOY二维平面进行机械臂姿态的分析。如图5所示,在XOY二维平面中根据机械臂正运动学方程的DH表示法,建立图5中坐标系原点与机械臂末端的总变换矩阵为式中,式(1)表示机械臂末端位姿与各关节变量之间的关系,该式为正运动学方程。其中,连杆变换通式其中cθ式(2)表示机械臂末端连杆坐标系相对于机械臂的描述由式(2)可以得到机械臂末端的坐标为根据几何方法有由式(3)~(5)组成方程组即可求解得到图5所示的机械臂3个旋转关节的姿态,求解过程如下:将式(5)分别代入式(3)、(4)得为了方便计算,令化简式(6)、(7)有通过求解一元二次方程得由此求得θ由于该机械臂中控制爪子开合的关节和靠近爪子处的圆柱关节在转动过程中不会对机械臂末端的位置产生影响,本文求解机械臂逆运动学时,不对这2个关节进行求解。所以在求解出θ图6是完成了图4a机械臂坐标建立之后的ZOX平面图。通过该图进行求解得到机械臂底部舵机云台处旋转关节的姿态。根据给定坐标中的Z和X坐标即可得到θ完成了θ、θ2.3水果识别和空间坐标定位2.3.1模型训练过程实际采摘过程中,树莓派摄像头拍摄的视频图像中除了果实之外还有树叶、树枝和树干等其它非果实物体。如图7a所示,系统为了更好地在复杂环境中进行果实检测、识别以及像素定位,使用OpenCv计算机视觉和机器学习软件库来进行视频的处理,处理之后通过基于深度学习框架Darknet的YOLO进行模型训练时,对各种果实在无遮挡光照充足的条件下实景拍摄图像500幅,对每种果实的500幅图像进行4种处理方法,包括90°、180°和270°旋转以及进行X轴镜像处理,最终得到每种果实的训练数据集图像为2500幅,其中2000幅图像用来进行模型训练,500幅图像用来模型验证,训练集和验证集比例为4∶1。确定好训练集之后使用图像标注工具对图像中果实进行标注,并生成PASCALVOC格式的xml标注文件,生成的标记文件中使用了5个参数(class_fruit,x,y,w,h)对图像中的果实进行描述,class_fruit表示果实的种类,x和y表示果实在图像的中心坐标,w和h表示目标框的长和宽。之后,对YOLOv4中的配置文件进行修改。该项目中对配置文件的修改如下:batch(每一批训练的样本数量)为16,subdivisions(batch分割数量)为16,max_batches(迭代次数)为6000,steps(学习率)为4800、5400(0.8倍batch为4800,0.9倍batch为5400)。进行模型训练的硬件环境为Intel(R)Core(TM)i77700HQCPU2.80GHz(8CPUs)处理器,16GB运行内存,显存为8GB的GTX1080Ti显卡,软件环境为Ubuntu19.10操作系统。该系统训练了苹果、油桃、黄杏和李子4种果实的识别模型。训练好模型之后即可对树莓派上传的实时图像进行果实目标检测,检测之后输出图像中果实的置信度、种类以及像素点尺寸和中心像素位置,得到的像素尺寸和像素位置用于后期果实的空间坐标定位。图7b是识别后的图像,从图像中可以看到果实被蓝绿色边框框出,果实标签为“lizi”,置信度为100%。2.3.2图像距离转换得到果实空间坐标是实现果实采摘非常关键的步骤,该系统通过得到果实相对于摄像头的坐标来确定果实坐标,如图8所示。图中分别建立了果实和摄像头的XOY平面图和XOZ平面图,P表示摄像头拍摄到的图像,A表示果实,a表示果实A在图像中的尺寸,a在坐标定位中首先要得到图像中像素点与实际物体尺寸的转换关系,使用摄像头拍摄1元硬币的方式来得到转换比率,1元硬币的直径为3cm,在拍摄距离为1m时,其在图像中占163像素,得到转换比率k=163/3=54.3像素/cm。图中P根据单目摄像头测距原理,计算果实空间坐标中的x坐标,计算公式为式中D———果实与摄像头的相对距离P———果实在图像中占的像素数树莓派摄像头焦距F为543像素。如图8所示W=a确定果实A的空间坐标为(X2.4臂关节的负荷规划和采样控制2.4.1机械臂运动轨迹规划系统首先对果实空间坐标进行定位,然后进行逆运动学求解,之后再对机械臂的运动轨迹进行规划。系统中使用了五项式插值法对机械臂运动轨迹进行规划,该方法在得到机械臂各关节的起始角和停止角的前提下,可实现对角度、角速度和角加速度的约束。该方法的数学推导过程如下:在五项式插值法中设定了6个待定系数a在已知起始角和终止角的前提下,使用θ将式(15)代入式(14)求解得到各个系数为2.4.2速度和加速度的约束在完成五项插值法数学推导之后,通过Python编程语言编写五项式插值法程序。表2为电机运动角、角速度和角加速度的约束关系。运行程序之后得到图9所示的角度、角速度和角加速度随约束时间的变化曲线。通过曲线图可以看出电机旋转的角度和角加速度均随时间变化,这也意味着电机在旋转过程中处于平稳的转动状态,这样可以保证机械臂的关节电机在工作过程中损耗较小,且使得机械臂整体运动情况更加协调与稳定。2.4.3机械臂运动轨迹规划图10为采摘系统的单次采摘流程图,系统开始工作后,树莓派控制机械臂进入初始状态,同时树莓派拍摄图像并上传,在服务器中使用训练好的识别模型对果实进行识别,并根据空间坐标定位算法计算果实的空间坐标并返回到树莓派中。之后树莓派进行逆运动学解算,得到机械臂从初始状态运动到果实位置各个关节旋转的角度,并且根据旋转角使用五项式插值法进行运动轨迹规划。规划后树莓派输出对应的控制信号,控制机械臂运动以实现果实的采摘。采摘完成之后进行果实投放,最终机械臂回到初始状态,等待下一次采摘指令。在该系统中为了防止机械臂运动过快导致系统不稳定以及容易碰撞到果实,设定五项式插值法中进行运动轨迹规划的约束时间为5s。根据采摘流程图可以得到,进行一次果实采摘需要通过五项式插值法进行3次运动轨迹规划。设3次五项式插值法消耗的时间为T3机械采摘测试结果图11a为系统自动采摘李子的现场测试。测试中通过APP界面中的“设备管理”对采摘设备进行连接,图11b所示是在手机APP中选择采摘的果实为李子,点击确定按钮后采摘设备开始工作。与树莓派连接的摄像头进行视频拍摄并上传到服务器中,服务器调用训练好的李子识别模型对上传的视频进行识别并对果实进行空间位置定位,然后将识别结果返回树莓派,由树莓派控制机械臂进行采摘。当用户发送查看视频请求指令到服务器时,服务器将树莓派上传的原始视频提供到手机端进行显示。图11c为手机端APP查看到当前设备的IP、已采摘的果实数量、采摘的果实种类以及实时画面。表3为机械臂姿态解算测试结果,测试过程中通过树莓派将实时图像上传到服务器中,服务器中调用YOLOv4识别算法训练得到的识别模型对上传的图像进行果实目标检测以及像素定位,根据像素定位计算得出空间坐标,并将果实的空间坐标返回到树莓派中,树莓派根据接收到的空间坐标对机械臂进行逆运动学解算,对不同空间坐标实现机械臂逆运动学解算得到θ、θ表4为使用该果实采摘设备采摘不同类别果实的测试结果。此次采摘测试在光照充足的条件下,对无遮挡且果实生长稀疏的情况下进行采摘测试。测试过程中根据不同果实尺寸来选择爪子型号,对每种果实进行采摘测试的次数均为60次,在此基础上得到采摘过程中机械臂的最大和最小电流、完成不同种类果实的采摘总时间T表5为采摘系统的单次采摘时间,表中T表6为对不同种类果实训练后的模型进行测试的结果,每种果实的训练集图像均为2000幅,测试集图像为500幅,在Ubuntu19.10操作系统中使用GPU进行模型训练,用训练后的模型进行测试得到的各类平均精确率的平均值(mAP)、准确率、召回率和交并比(IOU)如表6所示。通过实际采摘测试,该采摘系统可以实现对苹果、油桃、黄杏、李子4种果实的自动采摘,系统工作稳定,但是目前系统设计与研究处于实验阶段,还有一些不足之处:(1)果实识别模型采用的数据集均是在光照充足的条件下拍摄的无遮挡果实图像,所以采摘系统目前只能在光照充足的条件下对无遮挡的果实进行采摘。如果需要设计更好的采摘系统,则需要更多情况下的果实实景图像来进行模型训练。(2)目前采摘系统中只是通过更改爪子型号来实现对直径较大和直径较小的果实进行采摘,由于爪子是金属类物体,采摘过程中会导致果实表皮受损,需要更换采摘和夹取方式来保护果实。(3)目前该系统是通过人工方式移动或安放采摘设备到某一个位置来进行采摘测试,而实际的采摘系统因根据不同种类水果的果树高度来设计采摘机械臂以及整个采摘系统。4机械装置的设计(1)基于树莓派、六自由度机械臂、手机APP、服务器设计了智能果实采摘系统。(2)相比于传统的水

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论