基于线结构光扫描的长圆柱形物体三维识别与定位方法与流程

文档序号:12591092阅读:来源:国知局

技术特征:

1.一种基于线结构光扫描的长圆柱形物体三维识别与定位方法,用于实现料箱中长圆柱形物体位置的测量,其特征在于,包括以下步骤:

利用线结构光测量传感器对料箱中的长圆柱形物体以固定步长分m次进行轴向扫描,得到m个剖面的结构光测量数据;

对每个剖面的结构光测量数据分别进行数据分割,使得属于同一物体的数据分割在一段圆弧中;

对每段分割数据进行圆弧拟合,得到圆心坐标;

根据同一物体上的圆弧应满足的约束条件,匹配m个剖面的圆弧圆心;

利用线性插值算法计算长圆柱形物体的三维坐标;

确定抓取的物体标号。

2.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述m的设定个剖面基本能覆盖整个长圆柱形物体的轴向,需要根据实际情况自行确定。

3.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述线结构光测量传感器所投射的射线是1个。

4.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述数据分割过程中,同一段圆弧的数据点应该同时满足以下条件:

|xi-xi-1|+|zi-zi-1|<k1 (1)

|zi-zi-5|<k2 (2)

(zi-10-zi≤k3)||(zi+10-zi≤k3) (3)

其中,(xi,zi)为结构光测量数据在第i点处x、z方向上的坐标值,(xi-1,zi-1)为结构光测量数据在第i-1点处x、z方向上的坐标值,zi-5、zi-10、zi+10分为结构光测量数据在第i-5、i-10、i+10点处z方向上的坐标值,k1、k2、k3是预设常数。

5.根据权利要求4所述的基于线结构光扫描的长圆柱形物体三维识别与定位方 法,其特征在于,所述数据分割后排除满足以下条件的结构光测量数据的干扰:

<mrow> <mo>|</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>-</mo> <msubsup> <mi>z</mi> <mi>m</mi> <mo>*</mo> </msubsup> <mo>|</mo> <mo>&gt;</mo> <msub> <mi>k</mi> <mn>4</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>|</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>-</mo> <msubsup> <mi>z</mi> <mi>n</mi> <mo>*</mo> </msubsup> <mo>|</mo> <mo>&lt;</mo> <msub> <mi>k</mi> <mn>5</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

其中,(xi,zi)为结构光测量数据在第i点处x、z方向上的坐标值,为圆弧上最后一点的结构光测量数据,k4、k5是预设常数,且存在k4<k5

6.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述进行圆弧拟合要求同一段圆弧上数据的点数同时满足以下条件:

n>r/Tsample (6)

n<2*r/Tsample (7)其中,n为同一段圆弧上数据的点数,r为圆弧半径,Tsample为结构光分辨率。

7.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述圆弧拟合采用高斯-牛顿迭代法进行,目标函数为:

f(x0,z0)=(x-x0)2+(z-z0)2-r2 (8)

其中,x、z为圆弧上的数据点坐标,x0、z0为圆弧圆心坐标,即为待求参数,其求解过程如下:

第一步:设置x0、z0的初始值

<mrow> <msubsup> <mi>x</mi> <mn>0</mn> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> </msubsup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>z</mi> <mn>0</mn> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> </msubsup> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </munder> <msub> <mi>z</mi> <mi>k</mi> </msub> <mo>-</mo> <mi>r</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>

其中,xk为圆弧上x方向上的第k个数据,n为圆弧上的数据量,zk为圆弧上数据z方向上的最大值,r为圆弧半径;

第二步:对函数f(x0,z0)求二阶偏导数,即

<mrow> <msub> <mi>b</mi> <mn>11</mn> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mo>&CenterDot;</mo> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>b</mi> <mn>21</mn> </msub> <mo>=</mo> <msub> <mi>b</mi> <mn>12</mn> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mo>&CenterDot;</mo> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>z</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>b</mi> <mn>21</mn> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>z</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mo>&CenterDot;</mo> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>z</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>

同时令

<mrow> <msub> <mi>B</mi> <mn>1</mn> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mrow> <mo>(</mo> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>-</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>14</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>B</mi> <mn>2</mn> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mfrac> <mrow> <mo>&part;</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>z</mi> <mn>0</mn> </msub> </mrow> </mfrac> <mrow> <mo>(</mo> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>-</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>

b11Δ1+b12Δ2=B1 (16)

b21Δ1+b22Δ2=B2 (17)

其中,fk为圆弧上第k个数据的目标函数值,Δ1、Δ2分别为圆心坐标的增量,根据式(16)、(17),可得:

<mrow> <msub> <mi>&Delta;</mi> <mn>1</mn> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>B</mi> <mn>1</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>22</mn> </msub> <mo>-</mo> <msub> <mi>B</mi> <mn>2</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>12</mn> </msub> </mrow> <mrow> <msub> <mi>b</mi> <mn>11</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>22</mn> </msub> <mo>-</mo> <msub> <mi>b</mi> <mn>21</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>12</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>18</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>&Delta;</mi> <mn>2</mn> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>B</mi> <mn>1</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>21</mn> </msub> <mo>-</mo> <msub> <mi>B</mi> <mn>2</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>11</mn> </msub> </mrow> <mrow> <msub> <mi>b</mi> <mn>12</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>21</mn> </msub> <mo>-</mo> <msub> <mi>b</mi> <mn>22</mn> </msub> <mo>&CenterDot;</mo> <msub> <mi>b</mi> <mn>11</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>

第三步:更新x0、z0,即:

<mrow> <msubsup> <mi>x</mi> <mn>0</mn> <mi>i</mi> </msubsup> <mo>=</mo> <msubsup> <mi>x</mi> <mn>0</mn> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <msub> <mi>&Delta;</mi> <mn>1</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>z</mi> <mn>0</mn> <mi>i</mi> </msubsup> <mo>=</mo> <msubsup> <mi>z</mi> <mn>0</mn> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <msub> <mi>&Delta;</mi> <mn>2</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo> </mrow> </mrow>

其中,分别为第i-1次迭代时的圆弧圆心坐标,分别为第i次迭代时的圆弧圆心坐标;

第四步:计算均方误差:

<mrow> <mi>M</mi> <mi>S</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>x</mi> <mn>0</mn> </msub> <mo>,</mo> <msub> <mi>z</mi> <mn>0</mn> </msub> </mrow> <mo>)</mo> <mo>-</mo> <msup> <mi>r</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>22</mn> <mo>)</mo> </mrow> </mrow>

如果MS<T,T为最大均方误差值,停止迭代,得到圆弧圆心坐标x0、z0;否则转到第二步。

8.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方 法,其特征在于,所述同一物体上的圆弧应满足的约束条件为:

<mrow> <mo>|</mo> <msub> <mi>x</mi> <mi>q</mi> </msub> <mo>-</mo> <msubsup> <mi>x</mi> <mi>p</mi> <mn>0</mn> </msubsup> <mo>|</mo> <mo>&lt;</mo> <msub> <mi>k</mi> <mn>6</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>23</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>|</mo> <msub> <mi>z</mi> <mi>q</mi> </msub> <mo>-</mo> <msubsup> <mi>z</mi> <mi>p</mi> <mn>0</mn> </msubsup> <mo>|</mo> <mo>&lt;</mo> <msub> <mi>k</mi> <mn>7</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>24</mn> <mo>)</mo> </mrow> </mrow>

其中,(xq,zq)为最后匹配的圆弧圆心坐标,为未匹配剖面的圆弧圆心坐标,k6、k7是预设常数。

9.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述匹配m个剖面的圆弧圆心后,该段圆弧对应的物体即为候选抓取物体。

10.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述利用线性插值算法计算长圆柱形物体的三维坐标,具体为:

已知物体抓取位置处的y值,计算离该值最近的两个剖面,得到相应剖面物体对应圆弧的圆心坐标(x1,z1)、(x2,z2),利用线性插值方法计算得到y值对应的x、z值分别为:

<mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mi>y</mi> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> <mrow> <msub> <mi>y</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mfrac> <mo>&CenterDot;</mo> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>27</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>z</mi> <mo>=</mo> <mfrac> <mrow> <mi>y</mi> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> <mrow> <msub> <mi>y</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mfrac> <mo>&CenterDot;</mo> <mrow> <mo>(</mo> <msub> <mi>z</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>z</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>z</mi> <mn>1</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>28</mn> <mo>)</mo> </mrow> </mrow>

其中,y1、y2分别为两个剖面对应的y值。

11.根据权利要求1所述的基于线结构光扫描的长圆柱形物体三维识别与定位方法,其特征在于,所述确定抓取的物体标号,具体为:

随机选择最上层可以抓取的物体,如果以下不等式成立:

那么标号为s的物体即为待抓取的物体;其中,rand()为随机数,分别为标号为s的物体两个抓取位置处对应的z值,分别为标号为k的物体两个抓取位置处对应的z值,m为候选抓取物体数目。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1