基于改进SIFT算法的机械臂识别抓取研究
2022-09-19汪洋王黎明薛毓铨韩力春
汪洋,王黎明,薛毓铨,韩力春
(海军工程大学电气工程学院,湖北武汉 430033)
0 前言
海洋蕴藏着丰富的资源,许多国家把战略重点放在海洋的开发和利用上。在开发海洋资源的各种技术中,水下机器人技术脱颖而出。水下机器人的类型分为有线遥控水下机器人(ROV)和无缆水下机器人(AUV)。美国华盛顿大学应用物理实验室研制出首个无人无缆潜水器CURV1,该潜水器在海底发现氢弹,轰动全球。1986年,日本海洋科技中心研制出无人驾驶潜艇,它可以潜入世界上最深的马里亚纳海沟。2012年,中国制造的蛟龙号创下了7 062 m的潜水纪录,在海洋科学调查方面领先世界。
在图像识别方面,对于两幅静态图像,MORAVEC使用角点检测算法比较图像中像素,进行模板匹配。HARRIS和STEPHENS提出了角点检测算子来提取图像的特征点,与MORAVEC的角点算子方法相比,它具有亮度不变性和尺度不变性等良好的性质,但计算速度较慢、抗噪声能力较差,在尺度变化大、亮度低等条件下难以进行图像识别。在此基础上,LOWE提出尺度不变特征(Scale-Invariant Feature Transform,SIFT)算法,该算法采用金字塔分层方式,提取尺度、位置、旋转不变特征量信息。冯亦东和孙跃提出了以SURF 特征提取为基础,对图像进行最近邻查找的图像匹配算法,在不同条件下可以达到快速识别的效果。
在水下目标识别方面,史廷彦和赵书斌以目标角点和不变性特征为依据,通过神经网络分类器对目标进行分类识别。IBARRA等采用Canny算子提取边界信息,对目标位置进行定位。该算法仅适用于已知目标信息的定位方法。
本文作者选取适当的方法,对海参进行识别定位。用D-H方法对机械臂进行运动建模,控制其末端执行器到达指定位置并做出相应动作,实现对海参的识别定位抓取。
1 系统模块
系统模块包括图像识别定位系统、机械臂抓取作业系统和控制系统。机械臂系统构成如图1所示。
图1 机械臂系统构成
1.1 图像识别定位系统
水下机器人移动至合适位置后进行抓取作业前,水下机器人通过图像识别模块完成对海参的识别。
图像识别模块由计算机和摄像头连接组成。计算机可实时传输摄像头拍摄到的图像,使用OpenCV中SIFT算法对海参进行识别,调整与优化参数,排除其他干扰因素,提高识别效果,并使用黑色方框标注识别出的海参,通过相应的计算可对海参进行空间位置定位。
1.2 机械臂抓取作业系统
抓取作业模块机械臂的关节由步进电机组成,抓取作业模块由Arduino单片机控制。机械臂获取海参图像信息后,经计算得到机械臂各个关节需要转动的角度。通过引脚高低电平变化控制机械臂各个关节的运动,使末端执行器到达指定位置。由PWM波控制舵机控制机械爪抓取。在末端执行器放置超声波模块,通过超声波模块测距,根据得到的距离进行反馈控制。
1.3 控制系统
水下机器人的识别系统、机械系统及其他部件由控制系统直接控制,控制系统采用多分布式控制。上层计算机作为主控计算机,进行图像处理、识别定位、运算等。下层由Ardunio控制,根据机械臂结构特点选择不同功能的模块并采用合适的算法进行控制,确保机械臂各个关节精准运动,保证机械臂满足实际抓取作业要求。
2 目标识别与定位
2.1 目标识别
在实际应用中,基本的图像灰度变化和视角变换等都基于特征匹配方法的不确定因素,导致常见的匹配算法如模板匹配包含大量的误匹配点,因此匹配精度比较低。海参模板匹配识别效果如图2所示。
图2 海参模板匹配识别效果
当背景简单时,对位置1、2、3的识别效果较好。转动图中海参,可以看到对位置4的识别存在误差。为解决这一问题,将SIFT算法提取图像特征点与FLANN(Fast Library for Approximate Nearest Neighbors) 匹配算法相结合,提出图像识别方法。SIFT算法是一种局部特征提取算法,旋转、尺度、亮度保持不变,在噪声等因素的影响下仍能保持良好的匹配效果。FLANN算法是一组用于最近邻搜索的算法,利用欧氏距离计算并匹配图像中最接近的点。欧氏距离计算公式为
(1)
由式(1)可知,值越小, 这些特征点对之间的距离越近, 说明匹配图片相似程度越高。
由图3可知:在海参放置在不同位置、方向且海参大小不同的条件下,该算法均可以识别出海参。
图3 海参SIFT算法识别
2.2 识别海参图像框校正
图3(b)(c)中识别的图像框存在倾斜情况,原因是模板图片和识别图片中海参的位置发生改变,且摄像头拍摄到的图片相对倾斜,导致图像框扭曲为平行四边形。对此情况做出如下调整:图片倾斜时对应的中心位置不会改变,由SITF算法和FLANN算法结合计算得到四边形4个顶点,以平行四边形的中心位置为依据,调整图像框后的识别效果如图4所示。
图4 调整图像框后海参识别结果
将识别到的海参所处中心位置按照相应的比例转化为实际位置的坐标,便于后续进行抓取工作。
3 机械臂的运动学建模
本文作者以三自由度机械臂为研究对象。该机械臂是一个串联式机械臂,底座安装在水下机器人上,末端安装机械爪如图5所示。机械臂大臂和小臂由关节连接,电机驱动各关节转动,控制机械臂运动,使机械爪到达所需位置。
图5 机械臂模型
3.1 基于D-H方法的机械臂运动建模
利用D-H算法建立基于机械手正逆运动学模型,描述机械臂关节角度与机械臂末端执行器位置之间的映射关系,建立机械臂末端状态与关节角度之间的关系。机械臂参数如表1所示。
表1 机械臂参数
3.1.1 正运动学分析
机械臂的每个关节由表示,将关节矩阵相乘,计算出末端变换矩阵为
==
(2)
3.1.2 逆运动学分析
给定位置,分别求出机械臂关节转动角度:
=
(3)
=
(4)
3.2 平面二连杆机械臂运动学推导
实验为定向抓取,验证可简化为平面二连杆机械手的运动学计算。平面二连杆模型如图6所示。
图6 平面二连杆模型
3.2.1 正运动学分析
根据几何关系,可推导出机械臂末端位置与关节变量之间的关系,得到平面二连杆机械手的正运动学方程。
3.2.2 逆运动学分析
通过求解机器人给定位置各关节的转角,推导出平面双连杆机械手的逆运动学方程。在给定一个目标点(,)和2个连杆的长度、时,、就是平面两连杆机械手逆运动学方程的解:
(5)
(6)
计算得到的角度可用于验证D-H算法的准确性。
4 实验验证分析
采用图像识别算法对海参图像进行识别,并将计算得到的位置发送给机械臂,超声波传感器模块测量距离并传输至计算机端,当末端执行器机械爪到达指定位置时,Arduino控制舵机转动实现对海参的抓取作业,如图7所示。同时,在程序中设置机械爪舵机旋转角度和夹取速度,确保可以在指定的时间内完成海参抓取动作且不对海参品质造成较大影响。
图7 海参抓取实验
设定10组理论条件下机械臂可以到达的位置,通过编写程序控制步进电机转动,使机械臂的末端执行器到达设定的位置并计算误差,结果如表2所示。
表2 机械臂末端坐标 单位:cm
由表2可知:平均误差为2.4 mm,误差较小,可以认为机械臂在实际应用中可达到指定位置。
5 结论
本文作者在自主研发的机械臂系统平台上,采用SIFT+FLANN的图像识别融合算法,进行图像框的矫正,提高了系统目标识别的准确率。同时,基于D-H参数法,建立了机械臂模型,并在此基础上进行运动学分析,实现系统优化控制。结合定向抓取控制实验,通过相机定位获取海参的位置信息,当机械臂接收目标物位置信息后,机械臂对海参进行抓取。所提方法可提高系统识别算法准确性和控制系统的有效性,为机械臂控制研究提供参考。