[发明专利]一种基于OpenCV视觉处理的Tripod机器人控制方法在审
申请号: | 202110776152.0 | 申请日: | 2021-07-08 |
公开(公告)号: | CN113524180A | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 鲁可;石庆升 | 申请(专利权)人: | 河南工业大学 |
主分类号: | B25J9/16 | 分类号: | B25J9/16;G06T7/60;G06T7/73;G06T7/90 |
代理公司: | 郑州天阳专利事务所(普通合伙) 41113 | 代理人: | 蔡文雅 |
地址: | 450001 河南省郑*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 opencv 视觉 处理 tripod 机器人 控制 方法 | ||
1.一种基于OpenCV视觉处理的Tripod机器人控制方法,其特征在于,1)通过摄像头获取几何体的图像,进行图像处理,当外环上几何体的朝向与内圆几何图形孔位的朝向一致,夹角θ=0°,所以不用考虑Tripod旋转的角度,通过颜色和形状的识别得出外环上三种不同颜色的圆、三角形、五角星,利用外环各个几何体的中心点到内环中心点的线段,求各个线段与水平方向的夹角,用公式x=180cosθ,y=180sinθ.,求出各个几何体的实际坐标,将相同颜色的几何体预放在内圆相对应的位置上,然后进行路径选择,设计最优抓取顺序,得出一条最短路径,然后把这把相应的信息传给Tripod机器人,Tripod开始按照优化的路径进行抓取动作;
2)当外环可以旋转,此时,几何体的朝向与内圆几何图形孔位的朝向有一定夹角,通过图像处理,计算出外环每个几何体与内圆相对应的几何体之间的夹角θ,并把各个角度随颜色、形状、坐标、一起传给Tripod机器人,在步骤1)的基础上进行相应角度的旋转,从而准确的放进目标位置。
2.根据权利要求1所述的基于OpenCV视觉处理的Tripod机器人控制方法,其特征在于,具体包括以下步骤:
1)图像获取
利用Opencv提供cvCreateCameraCapture()函数从摄像头中捕获图像,使用cvSaveImage来保存捕获的图像,供后续处理使用;
2)图像处理
①灰度及平滑度处理
由于拍摄图像时受自身质量和环境因素的影响,拍摄的图像中难免会有噪声或失真,而进行平滑处理则能减少图像上的噪声或失真,平滑处理需要用到一个滤波器,而常用的滤波器有归一化滤波器、中值滤波器、高斯滤波器、双边滤波器,高斯滤波在保留信号的条件下减少噪声,但是,高斯滤波会磨平边缘,而双边滤波能够提供一种不会将边缘的平滑掉的方法,因此先用cvCvtColor()函数对图片进行灰度处理,然后利用cvSmooth()函数对灰度图片进行双边滤波;
②阈值处理
处理图像时受各种条件的限制和干扰,图片的灰度值往往与实际景物不完全匹配,这将直接影响到图片的后续处理,为了辨识和分析目标,需要将它们分离提取出来,在此基础上才可能对目标进一步利用,利用cvThreshold函数可以增强灰度的变化范围、丰富灰度层次,达到增强图像的对比度和分辨率效果,理想状态下,背景与对象之间的灰度差异很大,利用图像的灰度特征来选择一个或多个最佳灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将对应的像素根据比较结果分到合适的类别中;
阈值化的表示如下:
经多次调试,本发明选取的阈值范围为(30,255);
thresh是阈值,这里thresh=30;
max val是灰度最大值,这里max val=255;
dst(x,y)、src(x,y)代表某一点像素的值;
③腐蚀和膨胀
腐蚀和膨胀是基本的形态学操作,广泛应用于:(1)消除噪声,(2)分割独立的图像元素,以及连接相邻的元素,(3)寻找图像中的明显的极大值区域或极小值区域,
腐蚀的原理:将图像A与任意形状的内核B进行卷积,而内核B中有一个可定义的锚点,通常定义为内核中心点,进行腐蚀操作时,将内核B划过图像,提取内核B覆盖区域的最小像素值,并代替锚点位置的像素,这样会使图像中的亮度区域被隔离且缩小,
腐蚀公式为:
erode(x,y)代表某一点的像素值;
min src(x+x’,y+y’)代表锚点范围内像素最小值;
膨胀的原理:将图像A与任意形状的内核B进行卷积,而内核B中有一个可定义的锚点,通常定义为内核中心点,进行膨胀操作时,将内核B划过图像,提取内核B覆盖区域的最大像素值,并代替锚点位置的像素,这样会使图像中的亮度区域得到拓展和连接,
膨胀公式为:
dilate(x,y)代表某一点的像素值;
max src(x+x’,y+y’)代表锚点范围内像素最大值;
④图像矫正
由于摄像头广度角及安装位置的限制,无法对圆盘进行垂直拍摄,为了拍摄到完整的图片,摄像头的光轴与拍摄的圆盘有一定的倾斜角,无法直接在倾斜的图片上进行角度识别,因此需要对图片进行矫正,比较常用的矫正方法有:仿射变换cvWarpAffine()、透视变换cvWarpperspective()方法,透视变换方法主要依据摄像机成像原理,实现图像校正,比起仿射变换的2*3的映射矩阵,透视变换3*3的映射矩阵具有更大的灵活性与更为准确的优点:仿射变化只能把矩形矫正为平行四边形,而经过2次透射变化却可以将原图片矫正为任意的四边形,使用范围更广;
⑤透视变换
根据透视变换原理,已知变换对应的几个点就可以求取变换矩阵,OpenCV提供了一个方便的函数cvGetsperspectiveTransform(),可以通过对应点列表计算3×3变换矩阵,在得出变换矩阵之后,使用cvWarpPersPective()函数对整幅源图像进行透视变换,得到正投影下的目标图像,并把目标图像保存下来,方便后续使用;
3)图形特征形状识别
①圆的识别
霍夫圆变换检测圆是在图像中检测圆的一种方法,函数是cvHoughCircles,其具有简单、高效及其准确等诸多优点而被广泛的应用,数学原理如下:
根据极坐标,圆上任意一点的坐标可以表示为如上形式,所以对于任意一个圆,假设中心像素点p(x0,y0),像素点已知,圆半径已知,则旋转360由极坐标方程可以得到每点上的坐标;
②三角形的识别
OpenCV中提供一个轮廓提取函数,即是cvFindContours,一个轮廓一般对应一系列的点,也就是图像中的一条曲线,在OpenCV中用序列CvSeq来存储轮廓信息;
当进行形状分析时,需要使用多边形逼近一个轮廓,使得顶点数目变少,OpenCV中函数cvApproxPoly可以实现这个功能,根据三角形三个顶点、三条边的特点,再加上判断三角形的面积来过滤cvApproxPoly逼近的结果,得到三角形的轮廓,在得到三角形轮廓后,使用轮廓矩CvMoments计算三角形的重心
③五角星的识别
轮廓提取及轮廓逼近与三角形的识别相同,但这里利用五角星10个顶点、十条边的特点,再加上判断五角星的面积来过滤cvApproxPoly()逼近的结果,得到五角星的轮廓,在得到五角星的轮廓后,同样使用CvMoments()计算五角星的重心,即中心点;
4)图形特征颜色识别
图像处理中经常要进行颜色空间的转换,摄像头采集的图像颜色空间通常是RGB模型,而HSV模型是一种直观的颜色模型,更易于分辨颜色分量,当用于指定的颜色分割时,能减少光照强度带来的影响;
OpenCV提供RGB颜色空间转换到HSV的函数,即cvCvtColor()函数,RGB到HSV的转换如下:设(r,g,b)分别是一个颜色的红、绿、蓝的坐标,e=min(r,g,b),则计算
v=max(r,g,b), (3-5)
v代表明度、s代表饱和度、h代表色调;
在形状识别中,得到圆、三角形、五角星的像素坐标,然后使用CV_IMAGE_ELEM函数读取这三种形状的像素坐标,进行颜色空间转换的计算,得出h、s、v的值,接着判断这三个值是否符合设定的颜色区域值,从而筛选出想要的橙色、黄色和蓝色,经过多次测试,选定的橙色、黄色和蓝色的范围分别是(0,40),(40,70),(180,230);
5)图形特征角度识别
①圆的角度
由于外环上抓取的圆不需要旋转或者转动任意角度就可以放在内圆中,所以圆的角度不用考虑;
②三角形的角度
在三角形的识别中,根据得到的三角形的轮廓,对存储这3个顶点坐标的pt[3]数组按点的纵坐标y由大到小进行排序,得到新的点序列数组pt[3];
求取向量和x轴正方向的夹角θ的余弦值,即
如果θ<90°,Tripod的旋转轴顺时针旋转θ角度;
如果θ>90°,Tripod的旋转轴逆时针旋转(180°-θ)角度;
③五角星的角度
在五角星的识别中,根据得到五角星的轮廓,对存储这10个顶点坐标的pt[10]数组按点的纵坐标y由大到小进行排序,得到新的顶点序列数组pt[10];(1)当有四个顶点的y值相等时,即是图中第一种情况,此时,比较pt[1]、pt[2]、pt[3]和pt[4]这四个点的x值,找出其中x值最小的点,假设设此点为p,然后求取向量和x轴正方向的夹角θ的余弦值,即
如果θ<90°,Tripod的旋转轴顺时针旋转θ角度;
如果θ>90°,Tripod的旋转轴逆时针旋转(180°-θ)角度;
(2)当10个顶点的y值都不同时,即是图中第二种和第三种情况。求取向量和x轴正方向的夹角θ的余弦值,即
(3)如果θ<90°,Tripod的旋转轴顺时针旋转θ角度;
如果θ>90°,Tripod的旋转轴逆时针旋转(180°-θ)角度;
6)坐标定位
利用外环各个几何体的中心点到内环中心点的线段,求各个线段与水平方向的夹角θ,因为整个圆盘直径为180mm,用公式x=180cosθ,y=180sinθ.,可求出各个几何体的实际坐标;
7)路径优化
①从外到内:因为需要把颜色相同的几何体放在一起,经过推算,内环共有36种摆放方式,当外环几何体位置相对固定后,摆放的方式确定一种后,各个几何体从从外环起始点到内环目标点的距离就已经确定,这时会得出一个距离之和Out_In_distance,所以36种情况对应36个Out_In_distance,通过冒泡排序,能够得到一个最小的Out_In_distance,此时可以根据最小的0ut_In_distance,确定摆放方式;
②从内到外:普通的贪心算法,只能实现局部最优,所以在抓取的时候,使用优化的贪心算法,包括以下步骤:
1:冒泡排序,去抓取几何体到目标点距离最小的几何体;
2:抓取后,给内环各个集合体卡槽中心点到该几何体外环坐标的距离赋个很大值,如10000,即把抓取过的点剔除,防止动作重复;
3:把第一个放置到目标位置后,计算该几何体中心点到剩余8个几何体的距离,并把各个距离加上与其对应的Out_In_distance得到8个距离和,然后比较8个距离和,去抓距离和最短的那个几何体;
4:重复步骤2,直至完全把几何体全部放进对应的位置;
8)通讯、抓取
采用TCP/IP通讯,发送一个202字节的数据帧,根据通讯需要,定义一个结构体All_Move_Data,the_last_Data数据包用于存放起始校验码和抓取各几何体的起点、终点、角度值,构造一个通讯函数Communication(),以端口12000和IP地址10.86.13.236与VNC-Viewer服务器连接,并将the_last_Data数据包传给Tripod机器人,之后机器人按照优化的路径进行拾取与放置动作。
3.根据权利要求1或2所述的基于OpenCV视觉处理的Tripod机器人控制方法,其特征在于,所述的摄像头为D-202高清摄像头模组硬件30万像素USB免驱微型监控模块,分辨率640*480。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河南工业大学,未经河南工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110776152.0/1.html,转载请声明来源钻瓜专利网。