主权项 |
一种多特征点位置姿态冗余解算方法,其特征在于:根据刚体变换原理,物体姿态变化时物体上的点坐标满足:P<sub>i</sub>'=R*P<sub>i</sub>+t其中R为旋转矩阵,t为平移矩阵;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>b</mi><mn>11</mn></msub></mtd><mtd><msub><mi>b</mi><mn>12</mn></msub></mtd><mtd><msub><mi>b</mi><mn>13</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>21</mn></msub></mtd><mtd><msub><mi>b</mi><mn>22</mn></msub></mtd><mtd><msub><mi>b</mi><mn>23</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>31</mn></msub></mtd><mtd><msub><mi>b</mi><mn>32</mn></msub></mtd><mtd><msub><mi>b</mi><mn>33</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>R</mi><mi>z</mi></msub><msub><mi>R</mi><mi>y</mi></msub><msub><mi>R</mi><mi>x</mi></msub></mrow>]]></math><img file="FDA0000370077260000011.GIF" wi="600" he="231" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mi></mi><mi>β</mi><mi>cos</mi><mi>γ</mi></mtd><mtd><mo>-</mo><mi>cos</mi><mi></mi><mi>α</mi><mi>sin</mi><mi>γ</mi><mo>+</mo><mi>sin</mi><mi></mi><mi>α</mi><mi>sin</mi><mi></mi><mi>β</mi><mi>cos</mi><mi>γ</mi></mtd><mtd><mi>sin</mi><mi></mi><mi>α</mi><mi>sin</mi><mi>γ</mi><mo>+</mo><mi>cos</mi><mi></mi><mi>α</mi><mi>sin</mi><mi></mi><mi>β</mi><mi>cos</mi><mi>γ</mi></mtd></mtr><mtr><mtd><mi>cos</mi><mi></mi><mi>β</mi><mi>sin</mi><mi>γ</mi></mtd><mtd><mi>cos</mi><mi></mi><mi>α</mi><mi>cos</mi><mi>γ</mi><mo>+</mo><mi>sin</mi><mi></mi><mi>α</mi><mi>sin</mi><mi></mi><mi>β</mi><mi>sin</mi><mi>γ</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi></mi><mi>α</mi><mi>cos</mi><mi>γ</mi><mo>+</mo><mi>cos</mi><mi></mi><mi>α</mi><mi>sin</mi><mi></mi><mi>β</mi><mi>sin</mi><mi>γ</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>β</mi></mtd><mtd><mi>sin</mi><mi></mi><mi>α</mi><mi>cos</mi><mi>β</mi></mtd><mtd><mi>cos</mi><mi></mi><mi>α</mi><mi>cos</mi><mi>β</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000370077260000012.GIF" wi="1604" he="228" /></maths>其中α,β,γ分别为绕x,y,z轴的旋转角;<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>t</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mi>t</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>t</mi></msub></mtd></mtr><mtr><mtd><msub><mi>z</mi><mi>t</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000370077260000013.GIF" wi="243" he="205" /></maths>x<sub>t</sub>,y<sub>t</sub>,z<sub>t</sub>分别为沿x,y,z轴的平移量;该方法包括如下步骤:步骤一:获取初始点坐标:获取物体上特征点的三维坐标,特征点的个数大于3个,设T<sub>1</sub>时刻测得的N点坐标分别为:P<sub>1</sub>(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>),R<sub>2</sub>(x<sub>2</sub>,y<sub>2</sub>,z<sub>2</sub>)......P<sub>n</sub>(x<sub>n</sub>,y<sub>n</sub>,z<sub>n</sub>),T<sub>2</sub>时刻测得的N点坐标分别为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>P</mi><mn>1</mn><mo>′</mo></msubsup><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mo>′</mo></msubsup><mo>,</mo><msubsup><mi>y</mi><mn>1</mn><mo>′</mo></msubsup><mo>,</mo><msubsup><mi>z</mi><mn>1</mn><mo>′</mo></msubsup><mo>)</mo></mrow><mo>,</mo><msubsup><mi>P</mi><mn>2</mn><mo>′</mo></msubsup><mrow><mo>(</mo><msubsup><mi>x</mi><mn>2</mn><mo>′</mo></msubsup><mo>,</mo><msubsup><mi>y</mi><mn>2</mn><mo>′</mo></msubsup><mo>,</mo><msubsup><mi>z</mi><mn>2</mn><mo>′</mo></msubsup><mo>)</mo></mrow><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><msubsup><mi>P</mi><mi>n</mi><mo>′</mo></msubsup><mrow><mo>(</mo><msubsup><mi>x</mi><mi>n</mi><mo>′</mo></msubsup><mo>,</mo><msubsup><mi>y</mi><mi>n</mi><mo>′</mo></msubsup><mo>,</mo><msubsup><mi>z</mi><mi>n</mi><mo>′</mo></msubsup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000370077260000014.GIF" wi="1160" he="83" /></maths>步骤二:特征点匹配:该匹配过程采用计算特征点到空间虚拟点的距离实现:设T<sub>1</sub>时刻空间虚拟点P<sub>c</sub>(x<sub>c</sub>,y<sub>。</sub>,z<sub>c</sub>),取<img file="FDA0000370077260000015.GIF" wi="951" he="117" />分别计算N个点到P<sub>c</sub>的距离|P<sub>1</sub>P<sub>c</sub>|、|P<sub>2</sub>P<sub>c</sub>|......|P<sub>n</sub>P<sub>c</sub>|;设T<sub>2</sub>时刻空间虚拟点P<sub>c</sub>’(x<sub>c</sub>’,y<sub>c</sub>’,z<sub>c</sub>’),取<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msup><msub><mi>x</mi><mi>c</mi></msub><mo>,</mo></msup><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><msubsup><mi>Σ</mi><mn>1</mn><mi>n</mi></msubsup><msup><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo></msup><mo>,</mo></mrow>]]></math><img file="FDA0000370077260000016.GIF" wi="408" he="130" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msup><msub><mi>y</mi><mi>c</mi></msub><mo>,</mo></msup><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><msubsup><mi>Σ</mi><mn>1</mn><mi>n</mi></msubsup><msup><msub><mi>y</mi><mi>i</mi></msub><mo>,</mo></msup><mo>,</mo></mrow>]]></math><img file="FDA0000370077260000017.GIF" wi="417" he="117" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msup><msub><mi>z</mi><mi>c</mi></msub><mo>,</mo></msup><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><msubsup><mi>Σ</mi><mn>1</mn><mi>n</mi></msubsup><msup><msub><mi>z</mi><mi>i</mi></msub><mo>,</mo></msup><mo>,</mo></mrow>]]></math><img file="FDA0000370077260000018.GIF" wi="411" he="117" /></maths>分别计算N个点到P<sub>c</sub>'的距离|P<sub>1</sub>’P<sub>c</sub>’|、|P<sub>2</sub>’P<sub>c</sub>’|......|P<sub>n</sub>’P<sub>c</sub>’|;将|P<sub>1</sub>’P<sub>c</sub>’|与|P<sub>1</sub>P<sub>c</sub>|、|P<sub>2</sub>P<sub>c</sub>|......|P<sub>n</sub>P<sub>c</sub>|分别进行比较,距离相同或相差小于误差限的点视为匹配点对,若无匹配点对,则舍弃该特征点;将匹配好的特征点按照统一的顺序进行排列,后续计算过程依次读取即可;步骤三:去重心化:物体姿态变化时物体上的点坐标满足:P<sub>i</sub>'=R*P<sub>i</sub>+t (1)上式对上述虚拟点亦成立,则:P<sub>c</sub>’=R*P<sub>c</sub>+t (2)式(1)减去式(2)得:P<sub>i</sub>’‑P<sub>c</sub>’=R*(P<sub>i</sub>‑P<sub>c</sub>) (3)N点联立后可得方程组:<maths num="0008" id="cmaths0008"><math><![CDATA[<msup><mfenced open='[' close=']'><mtable><mtr><mtd><msup><msub><mi>x</mi><mn>1</mn></msub><mo>′</mo></msup><mo>-</mo><msup><msub><mi>x</mi><mi>c</mi></msub><mo>′</mo></msup></mtd><mtd><msup><msub><mi>y</mi><mn>1</mn></msub><mo>′</mo></msup><mo>-</mo><msup><msub><mi>y</mi><mi>c</mi></msub><mo>′</mo></msup></mtd><mtd><msup><msub><mi>z</mi><mn>1</mn></msub><mo>′</mo></msup><mo>-</mo><msup><msub><mi>z</mi><mi>c</mi></msub><mo>′</mo></msup></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msup><msub><mi>x</mi><mi>i</mi></msub><mo>′</mo></msup><mo>-</mo><msup><msub><mi>x</mi><mi>c</mi></msub><mo>′</mo></msup></mtd><mtd><msup><msub><mi>y</mi><mi>i</mi></msub><mo>′</mo></msup><mo>-</mo><msup><msub><mi>y</mi><mi>c</mi></msub><mo>′</mo></msup></mtd><mtd><msup><msub><mi>z</mi><mi>i</mi></msub><mo>′</mo></msup><mo>-</mo><msup><msub><mi>z</mi><mi>c</mi></msub><mo>′</mo></msup></mtd></mtr></mtable></mfenced><mi>T</mi></msup>]]></math><img file="FDA0000370077260000021.GIF" wi="832" he="238" /></maths><maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>b</mi><mn>11</mn></msub></mtd><mtd><msub><mi>b</mi><mn>12</mn></msub></mtd><mtd><msub><mi>b</mi><mn>13</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>21</mn></msub></mtd><mtd><msub><mi>b</mi><mn>22</mn></msub></mtd><mtd><msub><mi>b</mi><mn>23</mn></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mn>31</mn></msub></mtd><mtd><msub><mi>b</mi><mn>32</mn></msub></mtd><mtd><msub><mi>b</mi><mn>33</mn></msub></mtd></mtr></mtable></mfenced><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mn>1</mn></msub><mo>-</mo><msub><mi>x</mi><mi>c</mi></msub></mtd><mtd><msub><mi>y</mi><mn>1</mn></msub><mo>-</mo><msub><mi>y</mi><mi>c</mi></msub></mtd><mtd><msub><mi>z</mi><mn>1</mn></msub><mo>-</mo><msub><mi>z</mi><mi>c</mi></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mi>c</mi></msub></mtd><mtd><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mi>c</mi></msub></mtd><mtd><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>z</mi><mi>c</mi></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow>]]></math><img file="FDA0000370077260000022.GIF" wi="1224" he="229" /></maths>即:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msubsup><mi>L</mi><mi>n</mi><mi>T</mi></msubsup><mo>=</mo><mi>R</mi><mo>*</mo><msubsup><mi>L</mi><mn>1</mn><mi>T</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000370077260000023.GIF" wi="1064" he="89" /></maths>步骤四:实现多点间的平差优化。 |