本发明涉及目标识别定位和机械臂运动学规划,具体涉及一种基于深度视觉传感器的目标识别方法和自主抓取机器人的结构设计。
背景技术:
对物体的抓取或操作是机械臂经常要执行的一项任务。对机器臂而言,对目标物体的识别与定位是其成功抓取目标物体的前提,然而一般的智能机器人并不能像人类那样可以在复杂环境中轻松识别并定位目标物体,通常是通过图像处理算法来提取物体特征,进行识别,但在复杂环境中对目标进行精确快速的识别一直是一项难题。
此外,传统机械臂通常按既定流程进行目标抓取工作,无法接受外界信息,当目标位置改变时便需要重新设定控制程序,影响了机械臂工作的效率。同时机械臂也不具备自主抓取功能。
技术实现要素:
发明目的:本发明的一个目的是提供一种基于深度视觉传感器的目标定位方法和装置,利用深度视觉传感器并配合优秀的处理算法,能够以较快的速度实现目标定位。
本发明的另一目的是提供一种自动抓取机器人,以克服传统机械臂无法自主抓取,需要重复编程的局限性。
技术方案:根据本发明的第一方面,提供一种基于深度视觉传感器的目标定位方法,包括以下步骤:
利用深度视觉传感器获取目标物体所在空间的场景图像;
对深度视觉传感器采集的具备深度信息的rgb图像各像素点的深度值进行筛选,选取深度值在有效识别深度区域内的像素点,形成深度分割后的图像;
对深度分割后的rgb图像进行灰度化、图像滤波、阈值分割得到各像素点具备深度信息的理想图像;
通过基于轮廓hu矩特征改进的模板匹配法,将需要抓取的目标模板与得到的理想图像进行遍历匹配,定位图像中的目标,得到目标在图像坐标系中的二维坐标;
通过目标各像素点具备的深度值结合提取的图像坐标系中的二维坐标,利用图像坐标系和世界坐标系变换的变化关系计算出目标的空间坐标。
根据本发明的第二方面,提供一种基于深度视觉传感器的目标定位装置,包括:
图像获取模块,利用深度视觉传感器获取目标物体所在空间的场景图像;
图像处理模块,对深度视觉传感器采集的具备深度信息的rgb图像各像素点的深度值进行筛选,选取深度值在有效识别深度区域内的像素点,形成深度分割后的图像;
特征提取模块,对深度分割后的rgb图像进行灰度化、图像滤波、阈值分割得到各像素点具备深度信息的理想图像;
识别定位模块,通过基于轮廓hu矩特征改进的模板匹配法,将需要抓取的目标模板与得到的理想图像进行遍历匹配,定位图像中的目标,得到目标在图像坐标系中的二维坐标;
坐标输出模块,通过目标各像素点具备的深度值结合提取的图像坐标系中的二维坐标,利用图像坐标系和世界坐标系变换的变化关系计算出目标的空间坐标。
根据本发明的第三方面,提供一种自动抓取机器人,包括如第二方面所述的目标定位装置、运动规划装置、执行装置,所述目标定位装置根据目标物体所在空间的场景图像通过计算得到目标在空间的三维坐标;所述运动规划装置从目标定位装置获得目标物体的空间坐标,进行运动学规划,向执行装置下发运动指令,所述执行装置接受运动指令并执行抓取任务。
进一步地,所述执行装置包括六自由度机械臂、机械臂控制器、关节伺服电机,所述运动规划装置利用获取的目标空间位置信息,在关节空间下对六自由度机械臂末端进行运动轨迹规划,所述机械臂控制器从运动规划装置接受运动指令,控制各关节伺服电机运动使机械爪运动到目标点,进行自主抓取,同时将自身位姿反馈给运动规划装置进行下一步规划。
有益效果:
1、本发明的目标定位方法通过深度分割减少无关背景信息的干扰,从而能够更快速、准确地识别目标物体。
2、本发明增加了机械臂的感知能力,根据目标点位自主规划运动轨迹,实现自主抓取工作范围内的目标物体,目标物体位置改变无需对运动轨迹重新编程。
附图说明
图1是本发明的系统总体结构图;
图2是本发明的视觉识别系统工作过程图;
图3是本发明的运动控制系统工作过程图;
图4是本发明的机械臂结构图;
图5是本发明的整个系统的软件节点结构图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
在一个实施例中,本发明的系统总体结构如图1所示,结构上主要分为上位机和底层硬件系统:
1)上位机是整个系统的控制中心,负责接受传感器的图像信息与机械臂位姿的反馈并进行图像处理、目标识别与定位、机械臂运动规划等任务,是一台具备优良运算能力的计算机。
2)底层硬件设备是整个系统的执行机构,其中包括负责采集目标的图片信息视觉传感器、负责完成抓取工作的机械臂、负责控制机械臂各关节电机运动的机械臂控制器以及控制器与上位机之间信息传递的通信模块。深度视觉传感器固定在机械臂空间坐标系的正对面,实现对场景中目标空间位置的定位功能以及对目标的自主抓取功能。机械臂结构需具备六自由度,满足机械臂末端可到达空间中任意一点。
本实施例中上位机实现目标定位装置、运动规划装置的计算和规划等功能,视觉传感器之外的硬件设备实现执行装置的执行功能。系统按功能可划分为视觉识别系统和运动控制系统:
1)视觉识别系统实现对目标物体的识别与定位,首先是对深度视觉传感器对采集到的图像进行图像处理,通过灰度化、滤波、阈值分割、深度分割一系列图像处理操作实现目标物体的特征提取;而后使用基于轮廓hu矩特征改进的模板匹配法对目标进行识别,提取目标抓取点位坐标,并结合深度视觉传感器获取的深度信息完成对目标物体的定位,工作过程如图2所示。
具体地,视觉识别系统工作过程如下:
a)对深度视觉传感器采集的具备深度信息的rgb图像各像素点的深度值进行筛选,选取深度值在有效识别深度区域内的像素点,形成深度分割后的图像;
深度视觉传感器采传输的图像信息包括各像素点的r、g、b值以及深度值,机器人工作区域为有效识别区域,该工作区域与视觉传感器的深度距离为有限区间,设置好工作区域的深度范围,通过各像素点的深度信息进行筛选,滤除大部分无关区域的像素信息,有效提高识别速率。
b)对深度分割后的rgb图像进行灰度化、图像滤波、阈值分割得到各像素点具备深度信息的理想图像,包括以下步骤:
rgb彩图图像信息复杂,不利于提取形态学特征,所以要进行图像处理操作:首先利用三通道加权灰度化法将rgb图像转化为灰度图像,通过灰度值可以较有效的分割目标以及提取目标物体特征。三通道加权灰度化公式如下:
gray=0.114b+0.587g+0.299r
其次对灰度化后的图像进行滤波,图像滤波主要目的是在尽可能保证图像原始细节的前提下抑制图中的干扰噪声,通过比较中值滤波、均值滤波、高斯滤波几种方法,针对本系统中值滤波后的图像在可在保留目标边缘特征的情况下最大程度的滤除图像中的干扰噪声;
最后对滤波后的图像进行阈值分割,阈值分割是依据某种准则将图像分割城不同区域再选取目标区域的过程,通过对常用的ostu分割法、最小误差法、迭代阈值法等方法进行比较,在本系统中ostu大津法将目标与背景成功分离,并且边缘轮廓干净清晰没有噪点。对深度分割后的rgb图像进行灰度化、图像滤波、阈值分割后得到各像素点具备深度信息的理想图像。
c)通过基于轮廓hu矩特征改进的模板匹配法,将需要抓取的目标模板与得到的理想图像进行遍历匹配,定位图像中的目标,得到目标在图像坐标系中的二维坐标;
基于轮廓特征的模板匹配法通过将设定好的目标模板在采集图像中遍历搜寻确认目标在图片中的位置,但匹配的相似度受目标在环境背景中摆放位置和角度的影响较大,为了克服这种缺点,本系统目标检测方法对目标的轮廓进一步提取其hu矩特征,hu矩特征具备伸缩、平移和旋转方面的不变性,通过对比模板轮廓的hu矩特征与被搜索图中轮廓hu矩特征的相似度来确定目标在理想图像中的位置,这种改进的模板匹配法可有效避免因物体摆放位置、角度与模板的差异造成的目标丢失问题。通过基于轮廓hu矩特征改进的模板匹配法,将需要抓取的目标模板与得到的理想图像进行遍历匹配,确定目标在理想图像中,定位图像中的目标,得到目标在图像坐标系中的二维坐标。
d)通过目标各像素点具备的深度值结合提取的图像坐标系中的二维坐标,利用图像坐标系和世界坐标系变换的变化关系计算出目标的空间坐标;
得到目标在图像坐标系的二维坐标只能反映目标在图片中的位置,机械臂需要的是目标在机械臂坐标系以及世界坐标系中的坐标,所以需要根据视觉传感器和机械臂在世界坐标系中的相对位置将图像坐标系下的二维坐标转换为在机械臂坐标系下的二维坐标,对视觉传感器使用张正友标定法获取相机内部参数,通过视觉传感器与机械臂的相对位置获取外部参数,转换公式如下所示:
即:
其中,物体在图片中的像素坐标为(u,v),现实世界中的物体点在世界坐标系中的坐标记为(xw,yw,zw);zc为图像坐标平面到物体的距离,也就是深度值;
通过目标各像素点具备的深度值zc结合提取的图像坐标系中的二维坐标(u,v),利用图像坐标系和世界坐标系变换的变化关系计算出目标的空间坐标(xw,yw,zw)。
2)运动控制系统获取目标点位坐标后在上位机实现对机械臂的运动学规划,上位机利用获取的目标空间位置信息,在关节空间下对六自由度机械臂末端进行运动轨迹规划,向下发送运动指令,底层硬件负责接受运动指令并执行机械臂抓取任务,使机械爪运动到目标点,进行自主抓取,同时反馈位姿给上位机以便进行下一步规划。本系统使用关节空间下五次多项式规划方法,提供视觉处理系统计算出的目标点三维坐标,在ros平台中运行规划算法即可计算出机械臂各关节角度、角速度、角加速度,形成运动轨迹,完成轨迹规划。因视觉识别系统实时更新视角范围内目标的位置,所以目标物体位置改变,输入机械臂抓取系统中的坐标也会随之改变,系统重新规划轨迹,无需重新编程,实现自主抓取功能。机械臂运动控制系统工作过程如图3所示,其中机械臂结构如图4所示,模仿人类手臂构造,1为基座关节、2为肩关节、3为肘关节、4为臂关节、5为腕关节、6为指夹关节,机械臂底座到夹取装置净高430mm,底座圆盘直径120mm。
以上过程通过ros平台进行开发和集成,各分系统的软件节点运行连接关系如图5所示。ros平台中有大量的节点、消息、服务、工具包以及库文件,文件系统实现了对这些代码的有效管理。本发明中视觉识别和机械臂运动规划涉及大量的软件节点,在ros可进行清晰明确的管理。由iai-kinect2节点控制视觉传感器初始化并采集图像,传递给cv_processing_location节点进行图像处理和目标识别输出目标坐标并传递给control_node控制节点,发布规划请求至move_group运动规划组节点,move_group节点发布关节轨迹信息至trajectory_client客户端下达给机械臂控制器,同时机械臂规划结果通过trajectory_client节点反馈给control_node控制节点;与此同时move_group节点发布关节轨迹信息至rviz仿真环境节点在ros进行机械臂模型同步展示,该模型同时robot_state_publisher状态发布节点接收机械臂反馈的状态信息,实现实物与仿真同步。