发明名称 一种多特征点位置姿态冗余解算方法
摘要 本发明属于物体位置姿态测量技术领域,具体涉及一种多特征点位置姿态冗余解算方法。方法以特征点在视觉测量系统中的三维坐标为输入条件,获取数据后通过计算特征点到空间虚拟点的距离寻找匹配点对,若所有特征点均能找到匹配点对,则直接进行去重心化操作;若无法找到匹配点对,则该点被自动舍弃,记录匹配点对个数,动态调整后续算法数据入口大小,由剩余点解算该时刻的姿态位置信息;完成匹配后,通过去重心化实现平移信息和旋转信息的分离,单独解算旋转矩阵。本发明解决了物体空间位置姿态测量的六自由度解算问题,提高算法精度的同时使算法保持较高的实时性能。
申请公布号 CN104424382A 申请公布日期 2015.03.18
申请号 CN201310367522.0 申请日期 2013.08.21
申请人 北京航天计量测试技术研究所;中国运载火箭技术研究院 发明人 孙增玉;梁雅军;宋金城;郭磊;刘柯;陈晓晖
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 核工业专利中心 11007 代理人 高尚梅
主权项 一种多特征点位置姿态冗余解算方法,其特征在于:根据刚体变换原理,物体姿态变化时物体上的点坐标满足: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>&beta;</mi><mi>cos</mi><mi>&gamma;</mi></mtd><mtd><mo>-</mo><mi>cos</mi><mi></mi><mi>&alpha;</mi><mi>sin</mi><mi>&gamma;</mi><mo>+</mo><mi>sin</mi><mi></mi><mi>&alpha;</mi><mi>sin</mi><mi></mi><mi>&beta;</mi><mi>cos</mi><mi>&gamma;</mi></mtd><mtd><mi>sin</mi><mi></mi><mi>&alpha;</mi><mi>sin</mi><mi>&gamma;</mi><mo>+</mo><mi>cos</mi><mi></mi><mi>&alpha;</mi><mi>sin</mi><mi></mi><mi>&beta;</mi><mi>cos</mi><mi>&gamma;</mi></mtd></mtr><mtr><mtd><mi>cos</mi><mi></mi><mi>&beta;</mi><mi>sin</mi><mi>&gamma;</mi></mtd><mtd><mi>cos</mi><mi></mi><mi>&alpha;</mi><mi>cos</mi><mi>&gamma;</mi><mo>+</mo><mi>sin</mi><mi></mi><mi>&alpha;</mi><mi>sin</mi><mi></mi><mi>&beta;</mi><mi>sin</mi><mi>&gamma;</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi></mi><mi>&alpha;</mi><mi>cos</mi><mi>&gamma;</mi><mo>+</mo><mi>cos</mi><mi></mi><mi>&alpha;</mi><mi>sin</mi><mi></mi><mi>&beta;</mi><mi>sin</mi><mi>&gamma;</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>&beta;</mi></mtd><mtd><mi>sin</mi><mi></mi><mi>&alpha;</mi><mi>cos</mi><mi>&beta;</mi></mtd><mtd><mi>cos</mi><mi></mi><mi>&alpha;</mi><mi>cos</mi><mi>&beta;</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>&prime;</mo></msubsup><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>y</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>z</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mo>,</mo><msubsup><mi>P</mi><mn>2</mn><mo>&prime;</mo></msubsup><mrow><mo>(</mo><msubsup><mi>x</mi><mn>2</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>y</mi><mn>2</mn><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>z</mi><mn>2</mn><mo>&prime;</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>&prime;</mo></msubsup><mrow><mo>(</mo><msubsup><mi>x</mi><mi>n</mi><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>y</mi><mi>n</mi><mo>&prime;</mo></msubsup><mo>,</mo><msubsup><mi>z</mi><mi>n</mi><mo>&prime;</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>&Sigma;</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>&Sigma;</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>&Sigma;</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>&prime;</mo></msup><mo>-</mo><msup><msub><mi>x</mi><mi>c</mi></msub><mo>&prime;</mo></msup></mtd><mtd><msup><msub><mi>y</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>y</mi><mi>c</mi></msub><mo>&prime;</mo></msup></mtd><mtd><msup><msub><mi>z</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>z</mi><mi>c</mi></msub><mo>&prime;</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>&prime;</mo></msup><mo>-</mo><msup><msub><mi>x</mi><mi>c</mi></msub><mo>&prime;</mo></msup></mtd><mtd><msup><msub><mi>y</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>y</mi><mi>c</mi></msub><mo>&prime;</mo></msup></mtd><mtd><msup><msub><mi>z</mi><mi>i</mi></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>z</mi><mi>c</mi></msub><mo>&prime;</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>步骤四:实现多点间的平差优化。
地址 100076 北京市丰台区南大红门路1号