巡检机器人获取柑橘树上果实完整表面信息方法研究
2020-04-27熊龙烨张艺谭
王 毅 何 宇 王 恺 熊龙烨 王 卓 张艺谭
(重庆理工大学机械工程学院, 重庆 400054)
0 引言
随着科技的进步,巡检机器人已普遍使用。目前,市面上常见的巡检机器人分为电力巡检机器人和无人机巡检机器人两类。电力巡检机器人用于地面作业,但存在对于单个样本的巡检无法完全采集样本信息的缺点[1];无人机巡检机器人可用于低高空巡检作业,但在巡检作业过程中可能发生机械故障导致坠毁,目前无人机巡检技术尚未达到贴服于样本表面进行巡检[2]。在农业领域,巡检技术尚不成熟,目前用于农业巡检的方式主要采用无人机遥感监测,并对农业作物数据进行采集[3]。文献[4]提出采用四旋翼无人机对柑橘园进行实时巡检的巡检系统,通过上位机对无人机进行控制,完成果园巡检,但是采集到的数据并不能显示出其中某一个农作物的完整外表信息。随着精细化农业进程的不断深入,逐渐提出对单个农作物生长情况信息获取的要求[5-6],因此,通过机器人获取单个农作物完整表面信息,以监控农作物生长,具有十分重要的理论意义和现实意义。
通过巡检机器人获取单个农作物完整表面信息主要涉及障碍物感知及三维重建、机械臂的路径规划与避障算法等技术,但目前对巡检机器人进行技术集成并应用的研究却鲜见报道。文献[7]设计了一种检测农作物生长状况及环境温湿度的智能小车,通过树莓派将小车获取的环境温湿度及场景图像信息上传云端。在障碍物感知及三维重建方面,文献[8]提出一种基于深度信息分割聚类的草莓冠层结构形态三维重建算法,通过提取草莓冠层点云、改进密度聚类算法及Harris算子的多源图像融合算法,实现有颜色信息的草莓冠层结构形态重建。文献[9]通过树木局部点云分布密度分离枝干与树叶,采用水平集和最小二乘法提取枝干骨架点,通过采样方法提取冠层特征点,根据骨架点与特征点的拓扑结构对树木进行三维重建。在机械臂的避障算法方面,文献[10]通过对障碍物及机器人构型空间进行离线降维投影,获得先验知识,从而指导桥测试算法找到构型空间的正确窄通道,建立引导点,解决了RRT-connect算法求解窄通道路径时的难题。文献[11]对农业机器人采用模块化的设计理念,提出了一种机械臂,并配合喷涂式末端执行器对出现病虫害的葡萄藤进行精准喷洒农业。
本文基于现有的柑橘采摘机器人[12]技术,在对柑橘果实及枝干识别定位技术、机械臂避障运动控制技术集成的基础上,提出柑橘巡检机器人获取柑橘完整表面信息的方法,开发柑橘巡检机器人,以有效获取单个柑橘果实的完整表面信息。
1 材料与方法
巡检机器人要获得单个柑橘完整表面信息,首先需要相应的传感器为机器人提供柑橘果实及枝干的信息,再根据这些信息计算合适的机械臂运动路径并驱动机械臂以一定的姿态到达目标点进行拍摄。
1.1 柑橘果实及枝干的识别与定位
首先在室外采集大量的柑橘果实及枝干的图像,使用LabelMe为标记工具,对柑橘果实采用类圆形、对枝干采用分段式类长方形标记[13],其标记效果如图1所示。利用构建的Mask R-CNN[14]检测模型对其进行训练得到模型初始权重,然后对室内样本进行旋转和添加高斯、椒盐噪声等操作进行数据增强,最后通过迁移学习[15-16]的方法对室内的样本进行学习以保证模型得到充足有效的训练。
图1 标记效果图Fig.1 Label rendering
实验在Ubuntu 16.04系统中配置的TensorFlow平台下使用NVIDIA公司生产的GTX1080 GPU进行加速训练和测试,识别效果如图2所示。统计实验室环境下的50幅柑橘果实及枝干图像识别结果,平均识别准确率达96.82%,平均召回率达88.31%,单幅图像平均耗时8.2 s。
图2 柑橘果实及枝干识别效果Fig.2 Recognition of citrus fruits and branches
1.1.1相机标定
通过Kinect V2相机获取视场内目标物的三维信息,就是寻找二维像素点和三维空间点的映射关系[17]。对彩色镜头的相机标定,相机坐标系、像素坐标系以及世界坐标系的关系如图3所示。
图3 坐标系之间的关系Fig.3 Relationship between coordinate systems
点p1和点P的坐标均为相机坐标系下的坐标。由图3所构成的相似三角形可得到如下关系
(1)
最终标定结果为
(2)
完成Kinect V2相机内部参数标定后,将Kinect V2相机固定到巡检机器人的机械臂工作面一侧,通过对相机的水平角以及俯仰角进行调节,选取合适的位置固定。通过手眼标定对机械臂与Kinect V2相机相对位置进行定标[18-19]。
图5 柑橘果径统计图Fig.5 Statistical diagram of citrus fruit diameter
1.1.2柑橘果实及枝干的三维信息获取
基于Mask R-CNN模型识别的结果分别对柑橘果实及枝干进行最小外接矩和圆拟合处理并提取枝干的两端点及果实中心点像素坐标,通过映射的方法获得与之对应的深度,根据相机坐标系之间的转换关系完成像素坐标与世界坐标的转换,采用手眼标定得到柑橘果实及小段枝干在机器人世界坐标系与基坐标系之间的旋转及平移矩阵。对Mask R-CNN识别效果图进行预处理得到柑橘果实及枝干的特征点,其效果图如图4所示。再通过Kinect V2相机的深度图与彩色图的映射原理获得柑橘果实及枝干的三维信息,图4中的矩形边框长边为枝干生长方向,短边作为枝干的截面直径。柑橘果实的中心点在机器人世界坐标系下的坐标同样可以通过上述方法获得。
图4 三维信息获取效果图Fig.4 Effect of 3D information acquisition
1.2 机械臂拍摄位姿的确定
1.2.1柑橘果实基本情况与拍摄判定标准
对148组柑橘(脐橙)果实横纵径信息进行统计,统计结果如图5所示,果实的平均纵径为65.7 mm,平均横径为65.75 mm。可将柑橘果实视为直径为65 mm的球体。
通过对柑橘果实发生病虫害区域进行观察,发现病虫害多出现在果实中间部位,果蒂及果顶部位出现病虫害的几率要小得多,几种常见的柑橘果实病虫害如图6所示。
图6 柑橘果实病虫害区域统计Fig.6 Regional statistics of diseases and pests in citrus fruits
为了方便统计所获取的柑橘外表面信息,将柑橘外表面进行区域化划分,沿着柑橘外表面果顶到果蒂所画的线段记为经线,共计7条,经线将果实表面分为8份,与经线垂直的线段记为纬线,共计3条,经线与纬线将柑橘外表面分为32份,其中果蒂及果顶各8份,果实中间区域共16份。对所划分的区域进行编号,采用区域面积积分制对获取的柑橘图像区域进行统计,如图7所示,实验所用的柑橘果实横纵径比如表1所示。
图7 柑橘果实区域划分图Fig.7 Regional division of citrus fruits
实验对获取柑橘果实表面信息采用区域面积积分制,由于病虫害区域以果实中间部位为主,因此对于拍摄目标来说,果实中间部位为主要部位,果实果
表1 柑橘横纵径信息获取统计Tab.1 Statistics of citrus horizontal and vertical diameter information acquisition
蒂及果顶为次要部位,本文以柑橘果实中间单个数字区域记2分,果蒂及果顶的单个数字区域记1分,一个完整的柑橘果实表面共计48分,通过对所获取的单个数字区域的完整性进行判断,并与该区域的分值相乘,最后将所有的数字区域所得分累加与完整柑橘表面积分48分相除,得到获取的柑橘果实表面信息获取率。对所获取的单个数字区域通过人为判断的方式,所拍摄的单幅实例图和计分算法如图8和表2所示,记柑橘果实单个数字区域的1/6、2/6、3/6、4/6、5/6、1为该数字区域的完整性判断。
图8 柑橘拍摄实例Fig.8 Examples of citrus shooting
1.2.2拍摄位姿的选择
为了获取完整的单个果实表面信息,提出采用机械臂与CCD相机手眼结合的方式,通过对机械臂的运动控制,带动CCD相机以不同的位姿对柑橘果实进行拍摄。其拍摄示意图如图9所示。
表2 单幅实例柑橘图数字区域计分Tab.2 Digital area scoresheet of single example citrus pictures
图9 巡检拍摄示意图Fig.9 Patrol robot model1.柑橘果实 2.机械臂 3.拍摄相机
实验采用的拍摄工具为迈德威视公司MV-UBS300C型工业相机,其像元芯片尺寸为3.2 μm×3.2 μm,相机镜头焦距为6 mm,拍摄视场角为50°,果实与镜头的最佳距离为150~350 mm。结合柑橘果实尺寸,选取的拍摄距离为250 mm。
假定目标柑橘的横纵径为已测量柑橘的平均值,根据相机的视场角可以计算相机拍摄目标柑橘的目标区域的最大横向半径
d1=ltan(Fov/2)
(3)
式中l——相机与目标柑橘的实际距离
Fov——相机的视场角
由式(3)可得,d1为116.58 mm,大于柑橘的平均直径d,则所选取的相机与拍摄距离满足拍摄要求。
本文所选的拍摄位姿都在图9所示柑橘果实所在的行驶平面[20]上,提出3种拍摄方案,并采用手持相机进行拍摄的方式对3种拍摄方案进行验证:①采用2个拍摄位姿的对角拍摄,其拍摄方式及效果实例如图10所示。②采用间隔角为120°的3个拍摄位姿进行拍摄,其拍摄方式及效果实例如图11所示。③采用间隔角为90°的4个位姿进行拍摄,其拍摄方式及效果实例如图12所示。
图10 2个拍摄位姿及效果实例Fig.10 Two shooting positions and effect samples
图11 3个拍摄位姿及效果实例Fig.11 Three shooting positions and effect samples
图12 4个拍摄位姿及效果实例Fig.12 Four shooting positions and effect samples
1.3 实验平台搭建
1.3.1巡检机器人组成
所采用的柑橘巡检机器人由课题组自主研制,该机器人主要由AUBO-i5型机械臂、Komodo-02型履带式底盘、Kinect V2相机、迈德威视MV-UBS300C型工业相机、Dell Precision 3150型便携式计算机组成,巡检机器人外观如图13所示。
图13 巡检机器人外观图Fig.13 Outward appearance of inspection robot1.便携式计算机 2.巡检相机 3.机械臂 4.机器人外壳 5.Kinect V2相机 6.移动底盘
1.3.2巡检机器人仿真实验平台
本文主要在ROS平台下搭建巡检机器人仿真实验平台[21]。该平台集传感信息、运动控制、状态发布、节点通信等功能为一体,该平台上可以发布和提供各类功能包。
首先在Windows系统下通过SolidWorks绘制巡检机器人外观简化模型,再通过插件SW2URDF将绘制的简化模型转为URDF文件。在Linux系统下对生成的URDF文件进行MoveIt!配置,创建机械臂免碰撞矩阵,设置机器人基坐标,添加机械臂预设姿态,配置机械臂相关运动关节,最后生成巡检机器人的配置功能包。通过LAUNCH命令调用MoveIt!配置功能包内巡检机器人模型的LAUNCH文件,可实现巡检机器人模型在ROS所提供的RVIZ可视化界面中的显示。巡检机器人外观模型及简化后的机器人仿真界面如图14所示。
图14 巡检机器人外观模型及仿真界面Fig.14 Appearance model and simulation interface of patrol robot
1.3.3柑橘果实及枝干的重建效果
在简化后的机器人仿真界面对所得到的柑橘果实及枝干三维信息进行重建[22],Kinect V2相机获取的枝干重建效果图如图15a所示,在Rviz可视化界面对枝干及柑橘进行效果重建,以获得的柑橘果实的中心点三维信息为球心,建立一个半径为32.5 mm的类似于柑橘果实的球体模型。枝干重建采用分段重建的方式,以Mask R-CNN对枝干识别结果进行预处理后所得到的矩形框为基础,通过手眼标定后的Kinect相机给出每个矩形框的底部中心点和顶部中心点在机器人世界坐标系下的三维坐标,以及矩形框的短边长度作为重建信息,在ROS系统中采用四元数对圆柱体的描述方法,对识别出的柑橘果树枝干进行三维重建。其重建效果图如图15b所示。
图15 树枝重建效果图Fig.15 Branch reconstruction effect map
1.3.4实验室环境下柑橘表面信息获取流程
根据实验平台的实际情况,室内柑橘果实完整表面信息获取的实验流程如图16所示。首先由巡检机器人的视觉系统获取枝干障碍物及柑橘果实的位置信息,将信息汇总到规划场景中;然后通过读取柑橘果实位置信息对机械臂进行逆运动学算法求解;再将该解提供给RRT-connect算法作为机械臂关节规划目标,RRT-connect算法在节点扩展过程中调取碰撞检测插件对机械臂所规划的路径进行路径碰撞检测,并对该路径应用五次样条曲线进行路径平滑;最后通过CAN总线发送给机械臂驱动器,通过位置传感器确定机械臂将固定在末端的巡检相机送达拍摄位置后并反馈给ROS系统,同时通过节点通信的方式对巡检系统的工业相机发出拍摄指令,以完成巡检机器人的拍摄任务。
图16 获取柑橘果实完整表面信息流程图Fig.16 Flow chart of getting complete surface of citrus fruit
2 实验室环境下实验与结果分析
2.1 机械臂避障运动控制
将Kinect V2相机所获得目标物的信息全部加载进机器人规划场景内,先对机械臂求解达到柑橘果实位姿的逆解,再采用RRT-connect算法[23]为机械臂关节运动求解出一系列无碰撞平滑的连续运动的点。通过发布机械臂在运动过程中的运动状态,可以与巡检相机进行节点通信。即机械臂达到拍摄位姿时,巡检相机对目标柑橘进行拍摄。其实际拍摄位姿与仿真界面效果如图17~19所示。
图17 2个拍摄位姿实验及效果Fig.17 Two posture experiments and effects
图18 3个拍摄位姿实验及效果Fig.18 Three posture experiments and effects
图19 4个拍摄位姿实验及效果Fig.19 Four posture experiments and their effects
2.2 柑橘果实外表面处理
为实现巡检机器人获取完整的柑橘外表面信息,同时需要对巡检相机所获得的柑橘目标图像进行预处理。
本文通过颜色空间转换,将RGB颜色空间转换到HSV颜色空间[24],对转换后的柑橘图像进行阈值分割,对所获取的柑橘图像进行二值化、空洞填充、毛刺去除等处理[25],最终得到分割后的彩色图像。
在Linux系统下通过Qt与OpenCV结合,对巡检机器人巡检相机界面进行了开发。并在开发界面上实现相应的功能。巡检相机的界面如图20所示。
图20 巡检相机界面Fig.20 Diagram of inspection of camera interface
2.3 结果与分析
2.3.1目标物重建结果
采用Mask R-CNN对目标物进行识别,通过Kinect V2相机与识别效果的映射,得出目标物的三维信息,并在ROS平台上对获得的三维信息进行可视化重建,其效果如图21所示。
图21 三维重建可视化界面Fig.21 Visualization interface for 3D reconstruction
通过对所重建的枝干进行避障实验,避障成功率为81.61%,避障失败主要原因是Kinect V2相机与机械臂在进行手眼标定时,机械臂运动的坐标与所选取的标定坐标之间存在误差,导致获取枝干三维信息转换为机械臂世界坐标系下的坐标位置时提供的位置不准确,在Rviz可视化界面里重建障碍物与机器人的实际相对位置存在误差。从而导致机械臂避障运动规划时,机械臂与实际的障碍物发生碰撞,但仿真界面则未发生碰撞。
2.3.2巡检相机拍摄结果
本文采用机械臂与巡检相机结合的方式对目标柑橘进行巡检拍摄。对不同横纵径的柑橘果实以不同的位姿进行巡检拍摄,对所获取的柑橘图像外表面信息进行统计,3种拍摄方案的避障成功率以及柑橘表面信息获取率分别为:①通过2个拍摄位姿所获得1~4号柑橘表面信息获取率分别为83.83%、84.26%、86.78%、80.18%,柑橘表面信息平均获取率为83.76%,机械臂避障成功率为85.12%,机械臂运动规划平均耗时为55.32 s。②通过3个拍摄位姿所获得的1~4号柑橘表面信息获取率分别为94.12%、95.27%、96.83%、90.63%,柑橘表面信息平均获取率为94.21%,机械臂避障成功率为80.12%,机械臂运动规划平均耗时为86.57 s。③通过4个拍摄位姿所获得的1~4号柑橘表面信息获取率分别为96.82%、97.11%、98.25%、92.35%,柑橘表面信息平均获取率为96.13%,机械臂避障成功率为76.51%,机械臂运动规划平均耗时为104.21 s。
本次实验对柑橘果实外表面信息的获取所选取的柑橘果柄偏角[20]为0°,柄倾角为90°。对于柑橘果实的果蒂及果顶的图像获取有一定的影响,但总体来说,基本能够获取目标柑橘完整表面信息。2个拍摄位姿的方案所获取的柑橘图像有所欠缺,但运动耗时少及避障成功率高;3个拍摄位姿与4个拍摄位姿所获取的外表面信息相差不大,但3个位姿的拍摄方案的运动耗时少以及避障成功率高于4个位姿的拍摄方案,由此可得选择3个拍摄位姿的拍摄方案更加适宜巡检机器人用于获取柑橘完整表面信息。同时对相同拍摄方案而言,果实横纵径比越接近1的果实,所获取的外表面信息越完整。
3 结论
(1)提出的采用机械臂与相机结合的方法能够较完整地获取单个柑橘果实表面信息,为农业巡检机器人获取柑橘表面情况、监控柑橘生长及病虫害信息提供了一种方法。
(2)通过3种拍摄方案拍摄的结果统计,柑橘果实的横纵径比越接近1,拍摄所获取的柑橘外表面信息越完整。
(3)3种拍摄位姿方案中,采用3个拍摄位姿对柑橘果实进行拍摄,在保证获取柑橘表面完整率的同时可以获得较高的避障成功率和工作效率。