本发明属于视觉领域,具体地说是以机械臂为研究对象,基于立体视觉技术,提出一种基于视觉的机械臂避障方法。
背景技术:
为了满足多自由度机械臂在工艺操作、起重运输、器材维修、航天和医疗各个领域里的自适应工作,尤其在井下探测、废墟中人员的搜救等狭小有限的空间中作业,配备相应的传感器已成为当前热点。
基于机械臂的多关节特性,单一的红外和超声波传感器在机械臂上应用较少。由于视觉传感器的稳定性优于红外,精度优于超声波,势场较激光更广并且采集的图像信息更直接丰富,相比其他传感器更适用于对机械臂障碍的检测。
在视觉系统中,其中双目立体视觉较单目而言,能够直接模拟人类双眼获得图像信息的过程,继而获得深度或远近的环境信息;较多目视觉,但是成本低、计算量小、稳定性好。因此本发明使用双目摄像机进行工作环境的图像采集。
技术实现要素:
针对上述问题,本发明的目的在于提供一种基于双目立体视觉的机械臂障碍检测方法,该方法能够准确地得到障碍物信息,确保机械臂能够准确躲避障碍物。而在采集图像进行图像处理时,由于sift算法具有较强的匹配能力,在物体辨识、机器人地图感知与导航、3d模型建立、影像缝合、影像追踪和动作比对领域都有广泛的应用。
但是在进行图像处理时,使用sift算法在进行特征点提取时,由于所使用的dog算子具有很强的边缘响应。这会导致提取的特征点里混有很多边缘响应点,使sift算法的稳定性降低,不利于后续的匹配及障碍物三维信息的提取,因此提出一种基于视觉的机械臂避障方法,提高检测障碍物的精度,使机械臂有效地避开障碍物,完成工作任务。
本发明为实现上述目的所采用的技术方案是:一种基于视觉的机械臂避障方法,包括以下步骤:
步骤1:在机械臂末端安装双目摄像机和视频采集卡,建立世界坐标系;
步骤2:获取双目摄像机的内部和外部参数;
步骤3:通过双目摄像机对机械臂工作环境进行图像采集,获得工作环境的两幅平面灰度图像;
步骤4:根据桶形畸变矫正原理分别对两幅平面灰度图像进行畸变矫正;
步骤5:对矫正后的两幅图像分别进行基于sift算法的特征点提取;
步骤6:对矫正后的两幅图像分别进行基于小波变换的边缘点提取;
步骤7:分别对两幅图像均进行特征点和边缘点对比,剔除不稳定特征点;在两幅图像中将剩余的特征点进行匹配,得到匹配对;
步骤8:获取随机匹配对的均方根误差数据;
步骤9:根据步骤1至7获取环境中障碍物的三维坐标信息,控制机械臂躲避障碍物完成工作。
所述双目摄像机的内部参数的获取采用棋盘格法;所述双目摄像机的外部参数的获取采用棋盘格法并且以左摄像机为原点建立世界坐标系。
所述基于sift算法的特征点提取包括以下步骤:
构建尺度空间;
检测尺度空间的极值点;
精确极值点,得到特征点;
计算特征点幅值大小和方向;
根据特征点的幅值大小和方向生成特征点描述子。
所述基于小波变换的边缘点提取包括以下步骤:
对矫正后的图像进行尺度变换,分别得到垂直方向和水平方向的高频细节分量;
获取小波变换系数的幅角;
获取小波变换系数的模值;
获取局部模极大值;
对获得的边缘图像进行阈值处理,得到阈值处理后的边缘图像。
所述进行特征点和边缘点对比,剔除不稳定特征点包括以下步骤:
将特征点的坐标进行取整,与边缘点进行坐标比较;若相同,即剔除该特征点;若不同,则保留该特征点。
本发明具有以下有益效果及优点:
本发明方法中,通过对矫正的图像进行小波变换的边缘提取,然后将获得的边缘点与特征点对比,剔除其中不稳定的特征点,提高算法的精确性、鲁棒性、抗噪性。对比过程中,将特征点的坐标取整,并进行有序地排列,边缘点也进行有序地排列,这样在提高算法性能的基础上尽可能减少算法的运行时长以保证机械臂有效地躲避障碍物。
附图说明
图1为本发明实施的方法流程图;
图2为本发明具体实施方式的流程示意图;
图3为本发明实验平台操作流程框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施案例对本发明作进一步详述。
本发明主要针对使用现有的sift算法提取特征点时存在边缘响应的缺陷进行改进,具体地说,边缘信号的不稳定使sift在提取特征点时混有很多边缘响应点,这不利于特征点的匹配以及三维坐标信息的获取。针对这一不足,我们使用小波变换进行算法的改进。
如图1所示,本发明提供一种基于视觉的机械臂避障方法,包括:
步骤1,在机械臂末端安装双目摄像机和视频采集卡,建立世界坐标系;
步骤2,获取双目摄像机的内部和外部参数(内部参数包括焦距与像元尺寸的比值和中心点坐标,外部参数包括旋转矩阵r和平移矩阵t);
步骤3,通过双目摄像机对机械臂工作环境进行图像采集,获得两幅工作环境平面灰度图像;
步骤4,根据桶形畸变矫正原理分别对两幅平面灰度图像进行畸变矫正;
步骤5,对两幅矫正后的图像分别进行基于sift算法的特征点提取;
步骤6,对两幅矫正后的图像分别进行基于小波变换的边缘点提取;
步骤7,对两幅图像进行特征点和边缘点对比,分别剔除不稳定点;完成特征点匹配;
步骤8,获取匹配对的均方根误差,数值越小,证明实施的方法越好;
步骤9,按照本发明方法获取环境中障碍物的三维坐标信息,控制机械臂躲避障碍物的工作。
本发明的上述方法通过机械臂末端安装的双目摄像机及视频采集卡进行图像采集,获得两幅工作环境的平面灰度图像,并对其进行畸变矫正。对矫正后的两幅图像使用sift算法进行特征提取,针对sift算法存在的边缘响应,使用小波变换对其进行改进。这样让sift提取的特征点更加精确、稳定,有利于后续的特征点匹配及三维坐标信息的提取。
上述的图1所示方法在具体实现时,还可以在机械平台上对双目检测装置进行布置和安装,如图3所示,机械平台包括:双目摄像机、视频采集卡、计算机(安装好系统软件)、七自由度机械臂等;
其中,上述步骤5具体实现时,可包括:
构建尺度空间;
检测尺度空间的极值点;
精确极值点,得到特征点;
计算特征点幅值大小和方向;
根据特征点的幅值大小和方向生成特征点描述子。
其中,上述步骤6具体实现时,可包括:
对矫正后的图像进行尺度变换,得到垂直方向和水平方向的高频细节分量;
获取小波变换系数的幅角;
获取小波变换系数的模值;
获取局部模极大值,将幅角划分为4个方向分别为0°或180°、90°或270°、45°或225°、135°或315°。将求出幅角的大小与上述的方向进行比较,然后将各自的模图像分别沿各自最接近的相角方向求出模局部最大值,生成边缘图像;
对获得的边缘图像进行阈值处理。
下面具体说明本发明的一种基于双目视觉的机械臂避障方法的实施例。
如图3所示:将障碍物随意放置于机械臂工作路径上,使用机械臂末端的双目摄像机对工作环境进行拍摄,经由视频采集卡传送到计算机上。在计算机的存储介质中存储所述工作环境的平面灰度图像,并利用采集到的图像数据进行处理、计算、分析,并将结果存储并确保机械臂躲避障碍完成指定任务。
具体地,在对图像处理方面,使用sift算法进行图像的特征提取,保留特征点。针对sift算法存在的边缘响应的不足,这里采用基于小波变换的方法给予改进,对矫正后的图像进行边缘提取,保留其边缘点。将特征点和边缘点进行对比,如图2所示,具体步骤包括:
步骤一:将特征点按横坐标从小到大进行排列,若横坐标相等的特征点,再根据纵坐标大小进行排列,记为集合e={(xe1,ye1),…(xek,yek),…(xekmax,yekmax)}(k=1……kmax),其中kmax表示k的最大值,即特征点的总数;边缘点也进行如此的排列,并将横坐标相等的边缘点按纵坐标从小到大的顺序放入集合cm中(m=1,2,……max),记为e={cm,…,cmmax},其中mmax表示m的最大值,即集合的总数,ecmi表示集合中的第i个边缘点(i=1,2,……max);
步骤二:1)将第一个特征点e1与集合c1中的第一个边缘点进行横坐标比较,即f1=xe1-xecmi(i=1)。若f1>0,则与下一个集合c2中的第一个边缘点进行上述的比较,直到最后一个集合结束比对;2)若f1=0,则继续与c1集合中的每一个边缘点进行纵坐标比较,即f2=ye1-yecmi(i=1),若f2=0,则去除该特征点,若f2≠0,则继续与此集合的其他边缘点进行比较,若此集合中的边缘点均是f2≠0,则保留该特征点,否则去除该特征点;3)若f1<0,则保留该特征点;
步骤三:1)将下一个特征点与前一个特征点进行横坐标比对,即p1=xek+1-xek。若p1=0,则根据上一个特征点的比较结果来决定去留,若上一个特征点去除,则找到相对应的集合cm,并与其中的边缘点进行横纵坐标的比较判断是否保留,若上一个特征点保留,则重复步骤二中的内容;2)若p1≠0,则直接重复步骤二中的内容。
综上,本发明的检测方法主要有二个关键内容。一方面,由于采用的sift算法提取图像特征点会混有很多边缘响应点,针对这一不足,采用小波变换对其进行改进。
由于小波变换具有良好的局部化特性,并且根据实际情况,可以自动调节时频窗口。而且比较适用于展现夹带在正常信号中的瞬间反常现象,即边缘检测。因此在边缘检测中通过不同尺度的变换,可以获得很好的边缘检测图像。具体地说,包括:
对图像进行尺度变换,分别得到垂直方向和水平方向的高频细节分量;
获取小波变换系数的幅角;
获取小波变换系数的模值;
获取局部模极大值,将幅角划分为4个方向分别为0°或180°、90°或270°、45°或225°、135°或315°。将求出幅角的大小与上述的方向进行比较,然后将各自的模图像分别沿各自最接近的相角方向求出模局部最大值,生成边缘图像;
对获得的边缘图像进行阈值处理。
另一方面,在进行特征点和边缘点的对比过程中,为使在提高性性能的基础上尽可能的减少算法的运行时间。采用有序排列和集合方式的方法加快对比的过程。具体地说,包括:
将特征点和边缘点进行排序和集合处理;
根据比较结果对特征点作出保留或剔除的结果;
最终根据前面特征点的状态判断集合中的其余特征点的保留或剔除。
本发明的优点与积极效果为:
1.本发明所使用的方法克服了sift算法在提取特征点上的边缘响应缺陷。提取特征点精度高,稳定性好,抗噪能力强。
2.本发明所使用的方法在保证提取特征点精度高,稳定性好,抗噪能力强的基础上尽可能的缩短算法的运行时间。确保后续机械臂及时得到障碍物信息进行躲避。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。