发明名称 工业生产中的碳碗中心和导槽定位装置及其定位方法
摘要 本发明提出一种工业生产中的炭碗中心和导槽定位装置及其定位方法,应用于工业中炭块清理。定位装置包括串口通信模块、图像采集模块、图像处理模块和摄像头,串口通信模块用于通信,机械手臂控制系统发出采集信号后,图像采集模块控制摄像头进行炭碗图像采集,图像处理模块对采集的图像进行处理得到炭碗圆形参数和导槽角度这些数据,机械手臂控制系统根据这些数据定位机械手臂进行炭块清理。所述的定位方法,将采集的图像进行噪声滤波、高通滤波,将获取的边缘图像做拟合,得到炭碗圆形参数,在对圆形做径向投影、滤波后得到导槽角度。本发明实现了炭碗中心的确定和导槽角度的确定,为机械手臂提供了定位参数,能够提高炭块清理的工作效率。
申请公布号 CN102303314B 申请公布日期 2013.07.24
申请号 CN201110127863.1 申请日期 2011.05.17
申请人 北方工业大学 发明人 王一丁;崔家礼;李克峰
分类号 B25J9/10(2006.01)I;B25J13/00(2006.01)I;B25J19/02(2006.01)I;B25J19/00(2006.01)I;G06T7/00(2006.01)I;C25C3/12(2006.01)N 主分类号 B25J9/10(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 1.一种工业生产中的碳碗中心和导槽定位方法,其特征在于,该定位方法基于一种工业生产中的碳碗中心和导槽定位装置:该定位装置包括串口通信模块、图像采集模块、图像处理模块和摄像头;所述的串口通信模块接收机械手臂控制系统传送来的图像采集信号,并将该信号发送给图像采集模块,所述的图像采集模块收到图像采集信号后,控制摄像头进行碳碗图像的采集,并实时将采集的每张图像传送给图像处理模块;所述的图像处理模块对接收到的每张图像进行处理,具体处理过程是:首先对图像滤除光斑,再采用高斯滤波器做噪声滤波得到初始图像,再对初始图像分别做0度、45度、90度和135度的高通滤波,然后取四个高通滤波结果的平均值,得到一幅边缘图像,对边缘图像作拟合得到碳碗的圆形参数包括:圆心坐标和半径,根据得到圆形,获取初始图像的投影函数,对该投影函数进行滤波器滤波求极大值点,得到导槽在碳碗圆形所在的图像坐标系中相对于圆心的导槽角度,图像处理模块将从每张图像中得到的碳碗的圆形参数和导槽角度,通过串口通信模块发送给机械手臂控制系统;所述的碳碗中心和导槽定位方法的具体步骤如下:步骤一、机械手臂控制系统发出图像采集信号给串口通信模块,串口通信模块将接收到图像采集信号发送给图像采集模块;步骤二、机械手臂控制系统控制机械手臂移动,使机械手臂位于要拍摄的碳碗的正上方,然后图像采集模块控制摄像头采集碳碗图像,并将采集的碳碗图像传送给图像处理模块;步骤三、图像处理模块对接收到的原始图像进行处理:(1)对原始图像进行滤除光斑处理得到图像I:首先以图像左上角的点作为坐标原点(0,0),水平方向作为X轴,竖直方向作为Y轴建立坐标系,然后确定滤除光斑的阈值T:<maths num="0001"><![CDATA[<math><mrow><mi>T</mi><mo>=</mo><mi>max</mi><mo>{</mo><mi>t</mi><mo>:</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>t</mi></mrow><mn>255</mn></munderover><mi>H</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>></mo><mn>0.07</mn><mo>}</mo></mrow></math>]]></maths>H(i)表示灰度值为i的像素在整幅图像中所占的比例,i=0,1,…255,t表示某一个灰度值;最后对原始图像的像素逐列进行扫描,如果某个像素I(i,j)的值大于T,则令该像素的值为其上一个像素的灰度值,如果该像素为第一行像素,则令该像素的灰度值为阈值T;(2)采用高斯滤波器G(x,y)做噪声滤波得到初始图像I'=I*G;(3)对初始图像I'做0度,45度,90度和135度的高通滤波,然后对上述的四个高通滤波的滤波结果求平均,得到一幅边缘图像I<sub>e</sub>;(4)对边缘图像I<sub>e</sub>做拟合,得到碳碗圆形的参数:<maths num="0002"><![CDATA[<math><mrow><mi>Q</mi><mrow><mo>(</mo><mi>&beta;</mi><mo>,</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>r</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>M</mi></munderover><msub><mi>I</mi><mi>e</mi></msub><mrow><mo>(</mo><mi>y</mi><mo>+</mo><mrow><mo>(</mo><mi>r</mi><mo>-</mo><mi>i</mi><mo>)</mo></mrow><mo>*</mo><mi>sin</mi><mrow><mo>(</mo><mi>&beta;</mi><mo>)</mo></mrow><mo>,</mo><mi>x</mi><mo>+</mo><mrow><mo>(</mo><mi>r</mi><mo>-</mo><mi>i</mi><mo>)</mo></mrow><mo>*</mo><mi>cos</mi><mrow><mo>(</mo><mi>&beta;</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mi>M</mi></mrow><mn>0</mn></munderover><msub><mi>I</mi><mi>e</mi></msub><mrow><mo>(</mo><mi>y</mi><mo>+</mo><mrow><mo>(</mo><mi>r</mi><mo>-</mo><mi>i</mi><mo>)</mo></mrow><mo>*</mo><mi>sin</mi><mrow><mo>(</mo><mi>&beta;</mi><mo>)</mo></mrow><mo>,</mo><mi>x</mi><mo>+</mo><mrow><mo>(</mo><mi>r</mi><mo>-</mo><mi>i</mi><mo>)</mo></mrow><mo>*</mo><mi>cos</mi><mrow><mo>(</mo><mi>&beta;</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>,</mo><msub><mi>y</mi><mn>0</mn></msub><mo>,</mo><msub><mi>r</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>arg</mi><mi>max</mi></mrow><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>r</mi><mo>)</mo></mrow></munder><munder><mi>&Sigma;</mi><mi>&beta;</mi></munder><mi>abs</mi><mrow><mo>(</mo><mi>Q</mi><mrow><mo>(</mo><mi>&beta;</mi><mo>,</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>r</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths>其中,Q(β,x,y,r)表示边缘图像I<sub>e</sub>在以(x,y)为圆心,r为半径的圆的角度β方向上,内外各M个像素的差,角度β为圆心(x,y)与所取的像素的连线到X轴正方向的顺时针角度,M为一个正整数,表示在碳碗圆形内或者圆形外所取的像素的个数,(x<sub>0</sub>,y<sub>0</sub>,r<sub>0</sub>)为所要求得的碳碗圆形的圆心(x<sub>0</sub>,y<sub>0</sub>)和半径r<sub>0</sub>;(5)在初始图像I'上,取得到的碳碗的圆形的内外各Z个像素,做径向投影,得到投影函数P(θ):<maths num="0005"><![CDATA[<math><mrow><mi>P</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mi>Z</mi></mrow><mi>Z</mi></munderover><msup><mi>I</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>y</mi><mn>0</mn></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>r</mi><mn>0</mn></msub><mo>-</mo><mi>i</mi><mo>)</mo></mrow><mo>*</mo><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>,</mo><msub><mi>x</mi><mn>0</mn></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>r</mi><mn>0</mn></msub><mo>-</mo><mi>i</mi><mo>)</mo></mrow><mo>*</mo><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths>将得到的投影函数P(θ)通过滤波器滤波得到<img file="FDA00003031491700025.GIF" wi="138" he="83" />对信号<img file="FDA00003031491700026.GIF" wi="110" he="85" />求极大值点,得到在碳碗圆形所在的图像坐标系中导槽相对于圆心的导槽角度θ<sub>0</sub>:<maths num="0006"><![CDATA[<math><mrow><msub><mi>&theta;</mi><mn>0</mn></msub><mo>=</mo><munder><mrow><mi>arg</mi><mi>max</mi></mrow><mi>&theta;</mi></munder><mover><mi>P</mi><mo>~</mo></mover><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></math>]]></maths>步骤四、将得到的所有碳碗的圆形参数和导槽角度发送给串口通信模块,然后判断对碳块的四个碳碗是否都进行了采集,若不是,转步骤二执行,若是,执行下一步;步骤五、串口通信模块将接收到的碳碗的圆形参数和导槽角度发送给机械手臂控制系统,机械手臂控制系统根据收到的数据控制机械手臂进行碳块清理。
地址 100041 北京市石景山区晋元庄路5号