发明名称 一种基于视觉的管口空间位置定位方法
摘要 本发明提出一种基于视觉的管口空间位置定位方法,主要步骤包括:1)机器人手眼关系标定,多个坐标系的标定与转换,确定2D像素坐标与三维空间场景间的几何映射关系;2)获取冷凝器图像,管口图像点集的分割,拟合管口曲线,提取每个管口的中心像点;3)根据管口中心的像点及参数K、R、t,计算深度信息,进一步确定出管口空间实际位置。水下清洗机器人在启动高压喷水枪清洗管口时,使用该方法辅助其搜索及定位管口位置,实现机器人对管口自动定位及完成清洗工作。该方法可极大提高机器人对管口定位的准确性及机器人代替人类工作的自动化程度,提高机器人的作业性能和对环境的适应性。
申请公布号 CN101359400B 申请公布日期 2010.06.23
申请号 CN200810143231.2 申请日期 2008.09.17
申请人 湖南大学 发明人 王耀南;许海霞;朱江;余洪山;袁小芳;宁伟;陈维;孙程鹏;杨民生
分类号 G06T7/00(2006.01)I;G06K9/00(2006.01)I;G01C11/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 长沙市融智专利事务所 43114 代理人 颜勇
主权项 1.一种基于视觉的管口空间位置定位方法,采用装配了摄像机的机器人对需要清洗的冷凝管管口进行定位,其特征在于,包括以下步骤:1)离线标定机器人手眼关系R、t和摄像机内参数K;其中R为旋转关系,t为平移关系;2)通过摄像机获取管口图像,从图像中分离出管口并经拟合获取第i个管口中心像点坐标m<sub>i</sub>;其中i=1~n,n为总的管口数;3)根据机器人手眼关系R、t和摄像机内参数K以及管口中心像点坐标m<sub>i</sub>求得第i个管口的空间位置(X<sub>i</sub>,Y<sub>i</sub>);所述步骤1)中标定机器人手眼关系R、t的步骤为:A)精确控制机器人的机械手末端执行器做2次以上运动,机械手平台运动量记为Me,Me从光电编码器读出;B)机器人的摄像机运动量记为Mc,Mc的确定如下:摄像机对场景中具有直线的景物进行成像,空间景物直线Lc,及对应的像直线l,透视中心O位于同一平面π,取像直线方向<img file="F2008101432312C00011.GIF" wi="24" he="48" />及像直线的垂线<img file="F2008101432312C00012.GIF" wi="33" he="61" />作为平面π内的正交矢量基;空间景物直线Lc在平面π内的正交分解:<img file="F2008101432312C00013.GIF" wi="294" he="60" />以四元数表示<img file="F2008101432312C00014.GIF" wi="443" he="61" />线矩<img file="F2008101432312C00015.GIF" wi="223" he="59" />γ,β是正交分解的系数;P是空间景物直线Lc上的点;平台从位置A移动到B,移动前后分别提取图像中对应的直线l<sub>a</sub>,l<sub>b</sub>,其垂线分别为l<sub>a⊥</sub>,l<sub>b⊥</sub>,摄像机的运动量满足:<img file="F2008101432312C00016.GIF" wi="547" he="64" /><img file="F2008101432312C00017.GIF" wi="38" he="51" />是摄像机运动量Mc的双四元数表示;C)平台运动量Me与摄像机运动量Mc之间手眼关系满足:<img file="F2008101432312C00018.GIF" wi="326" he="68" /><img file="F2008101432312C00019.GIF" wi="37" he="50" />为平台运动量Me的双四元数表示;其中,双四元数手眼关系<img file="F2008101432312C000110.GIF" wi="27" he="48" />包含了旋转关系R和平移关系t,将上式化简整理为矩阵形式,最小二乘法求解双四元数手眼关系<img file="F2008101432312C00021.GIF" wi="54" he="53" />分解出旋转关系R和平移关系t;其中,<img file="F2008101432312C00022.GIF" wi="245" he="66" />分别为l<sub>a</sub>、l<sub>b</sub>和l<sub>b⊥</sub>的双四元数表示,<img file="F2008101432312C00023.GIF" wi="38" he="59" />为<img file="F2008101432312C00024.GIF" wi="39" he="50" />的共轭;<img file="F2008101432312C00025.GIF" wi="32" he="56" />为<img file="F2008101432312C00026.GIF" wi="31" he="53" />的共轭;所述步骤2)包括:A)聚类:运用均值平移算法对二值图像I的边缘数据点{x<sub>k</sub>}<sub>k=1</sub><sup>N</sup>进行聚类,收敛于聚类中心点x:公式<maths num="0001"><![CDATA[<math><mrow><msub><mi>f</mi><mi>&sigma;</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>s</mi></msubsup><msub><mi>&Sigma;</mi><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>&Element;</mo><msub><mi>set</mi><mi>j</mi></msub></mrow></msub><mi>&omega;</mi><mrow><mo>(</mo><msup><mrow><mo>|</mo><mo>|</mo><mfrac><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo><mi>x</mi></mrow><mi>&sigma;</mi></mfrac><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><msub><mi>x</mi><mi>k</mi></msub></mrow><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>s</mi></msubsup><msub><mi>&Sigma;</mi><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>&Element;</mo><msub><mi>set</mi><mi>j</mi></msub></mrow></msub><mi>&omega;</mi><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msup><mrow><mfrac><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo><mi>x</mi></mrow><mi>&sigma;</mi></mfrac><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mi>x</mi><mo>,</mo></mrow></math>]]></maths>式中,x<sub>k</sub>={u,v}是像点位置2D信息数据点;ω(·)是高斯核函数,σ是聚类带宽;N个数据点预划分在s个子集set<sub>j</sub>内,其中j=1,…,s,s在聚类过程中自动更新;B)起终点搜索:运用模板与当前块执行“与”运算,遍历当前点I(u,v)为边缘曲线点的所有点,若结果为2时,即ss为起点或终点,公式:<img file="F2008101432312C00028.GIF" wi="800" he="109" />式中tmp1是3×3元素为1的模板,I<sub>B</sub>是二值图像I的3×3当前检测块;符号“⊙”表示“与”运算;C)分割:在聚类数据块内进行连通域检测,标记出不同的管口点集,从每个起点或终点开始进行8邻域的连通域递归检测分割标记;检测标记det ect=(tmp2⊙I<sub>B</sub>(u,v));重复标记检测re_det ect=tmp2⊙mark<sub>B</sub>(u,v);得到连通边缘点标记<maths num="0002"><![CDATA[<math><mrow><mi>mark</mi><mo>=</mo><mi>det</mi><mi>ect</mi><mo>&CirclePlus;</mo><mi>re</mi><mo>_</mo><mi>det</mi><mi>ect</mi><mo>;</mo></mrow></math>]]></maths>式中tmp2是3×3中心元素为0,其它为1的模板,mark<sub>B</sub>是连通标记mark的当前块;符号<img file="F2008101432312C000210.GIF" wi="109" he="41" />表示“或”运算;D)将各聚类区域的每条连通线局部坐标转换到整个像平面的全局坐标,记为连通域C<sub>i</sub>(i=1,2,…);E)管口中心像点的提取整个视场内管口图像点集分割后,根据连通域C<sub>i</sub>(i=1,2,…)边缘点数据,采用最小二乘法、Hough变换进行二次曲线拟合,拟合为圆或椭圆,提取管口中心像点坐标m<sub>i</sub>;所述步骤3)为:任一点从空间场景物体坐标系X<sub>w</sub>到摄像机坐标系Y<sub>c</sub>的转换关系为:从空间场景物体坐标系到机器人坐标系的转换关系<sup>b</sup>T<sub>w</sub>,从机器人坐标系到机械手臂坐标系的转换关系<sup>e</sup>T<sub>b</sub>,从机械手臂坐标系到摄像机坐标系的手眼转换为<sup>c</sup>T<sub>e</sub>,则各坐标系转换关系X<sub>c</sub>=<sup>c</sup>T<sub>e</sub><sup>e</sup>T<sub>b</sub><sup>b</sup>T<sub>w</sub>X<sub>w</sub>,图像坐标系下的像点关系为λ<sub>i</sub>m<sub>i</sub>=KX<sub>c</sub>;λ<sub>i</sub>为深度;选机器人坐标系与空间场景物体坐标系为同一坐标系,<sup>e</sup>T<sub>b</sub>={R<sub>b</sub>,t<sub>b</sub>从光电编码器读取,R<sub>b</sub>,t<sub>b</sub>分别表示机器人机械臂在清洗中执行的旋转关系、平移关系,<sup>c</sup>T<sub>e</sub>={R,t}是手眼关系,则任一管口中心像点m<sub>i</sub>与其对应的空间坐标位置X<sub>wi</sub>之间存在关系:λ<sub>i</sub>R<sub>b</sub><sup>T</sup>R<sup>T</sup>K<sup>-1</sup>m<sub>i</sub>-R<sub>b</sub><sup>T</sup>(t<sub>b</sub>+R<sup>T</sup>t)=X<sub>wi</sub>;其中,R<sub>b</sub><sup>T</sup>R<sup>T</sup>K<sup>-1</sup>m<sub>i</sub>是一个三维列向量,其三个分量分别为a<sub>i</sub>,b<sub>i</sub>,c<sub>i</sub>;R<sub>b</sub><sup>T</sup>(t<sub>b</sub>+R<sup>T</sup>t)是一个三维列向量,其三个分量分别为t<sub>1</sub>,t<sub>2</sub>和t<sub>3</sub>;则深度<img file="F2008101432312C00031.GIF" wi="234" he="121" />其中Z为机器人坐标系原点到管口平面的距离,为已知量;管口的空间位置(X<sub>i</sub>,Y<sub>i</sub>)为<maths num="0003"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>X</mi><mi>i</mi></msub><mo>=</mo><msub><mi>a</mi><mi>i</mi></msub><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>-</mo><msub><mi>t</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>Y</mi><mi>i</mi></msub><mo>=</mo><msub><mi>b</mi><mi>i</mi></msub><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>-</mo><msub><mi>t</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math>]]></maths>
地址 410082 湖南省长沙市岳麓区岳麓山麓山南路2号