发明名称 变电站巡检机器人定位方法及定位装置
摘要 本发明涉及变电站智能巡检技术领域,是一种变电站巡检机器人定位方法及定位装置,前者包括第一步建立坐标系,第二步计算里程计的定位结果,第三步计算移动机器人的位姿,第四步修正定位结果;后者包括驱动机器人运动的轮式平台、机器人运动控制器、编码器、通信模块、摄像机和云台,轮式平台沿圆周等间距安装有三个全向轮,三个全向轮上各安装有一个编码器,云台底部设有支撑轴,支撑轴固定安装在轮式平台上,摄像机安装在云台的顶部。本发明采用编码器与二维码方式相结合定位,即使在二维码有障碍物遮挡的情况下仍然可以知道移动机器人的位置。变电站巡检机器人使用二维码的定位方法,在室内与室外环境下都可以使用。
申请公布号 CN106323294A 申请公布日期 2017.01.11
申请号 CN201610961927.0 申请日期 2016.11.04
申请人 新疆大学 发明人 袁亮;侯爱萍;刘祖兵;姜道伟;罗高;巨刚;蒋伟;何巍
分类号 G01C21/20(2006.01)I 主分类号 G01C21/20(2006.01)I
代理机构 乌鲁木齐合纵专利商标事务所 65105 代理人 董燕;周星莹
主权项 一种变电站巡检机器人定位方法,其特征在于包括以下步骤:第一步,建立坐标系,建立世界坐标系OXYZ,二维码坐标系o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>,摄像机坐标系o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>,云台a部分坐标系o<sub>3</sub>x<sub>3</sub>y<sub>3</sub>z<sub>3</sub>,云台b部分坐标系o<sub>3</sub>x<sub>4</sub>y<sub>4</sub>z<sub>4</sub>和机器人坐标系o<sub>5</sub>x<sub>5</sub>y<sub>5</sub>z<sub>5</sub>;第二步,计算里程计的定位结果M<sub>1</sub>,对移动机器人进行运动学建模,使用三轮全向轮移动机器人作为移动平台,XOY为世界坐标系,xoy为机器人坐标系,移动机器人的三个轮子分别标记为i,j,k,三个轮子各自的线速度分别为V<sub>i</sub>,V<sub>j</sub>,V<sub>k</sub>,在机器人坐标系中,移动机器人在X轴和Y轴两个坐标上的速度分别为v<sub>x</sub>,v<sub>y</sub>,方向与坐标轴方向相同,机器人自身旋转的角速度为ω,R为轮子到机器人中心点O的距离;在世界坐标系中机器人沿两坐标轴的速度分别为V<sub>X</sub>,V<sub>Y</sub>,通过分析可得在机器人坐标系中根据机器人三个全向轮的线速度可以计算出机器人的速度为:<maths num="0001"><math><![CDATA[<mrow><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>v</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><msub><mi>v</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mi>&omega;</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mfrac><mn>2</mn><mn>3</mn></mfrac></mtd><mtd><mrow><mo>-</mo><mfrac><mn>1</mn><mn>3</mn></mfrac></mrow></mtd><mtd><mrow><mo>-</mo><mfrac><mn>1</mn><mn>3</mn></mfrac></mrow></mtd></mtr><mtr><mtd><mi>0</mi></mtd><mtd><mrow><mo>-</mo><mfrac><msqrt><mn>3</mn></msqrt><mn>3</mn></mfrac></mrow></mtd><mtd><mfrac><msqrt><mn>3</mn></msqrt><mn>3</mn></mfrac></mtd></mtr><mtr><mtd><mfrac><mi>1</mi><mrow><mi>3</mi><mi>R</mi></mrow></mfrac></mtd><mtd><mfrac><mi>1</mi><mrow><mi>3</mi><mi>R</mi></mrow></mfrac></mtd><mtd><mfrac><mi>1</mi><mrow><mi>3</mi><mi>R</mi></mrow></mfrac></mtd></mtr></mtable></mfenced><mo>*</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>V</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>V</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><msub><mi>V</mi><mi>k</mi></msub></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001144297050000011.GIF" wi="526" he="372" /></maths>机器人坐标系与世界坐标系的夹角为φ,由机器人坐标系中的速度可以计算得到在世界坐标系下的速度为:<maths num="0002"><math><![CDATA[<mrow><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>V</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><msub><mi>V</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mi>&omega;</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&phi;</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&phi;</mi></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>&phi;</mi></mrow></mtd><mtd><mrow><mi>cos</mi><mi>&phi;</mi></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>*</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>v</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><msub><mi>v</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mi>&omega;</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001144297050000012.GIF" wi="571" he="228" /></maths>移动机器人的初始姿态为(x<sub>0</sub>,y<sub>0</sub>,φ<sub>0</sub>),Δt时间后移动机器人的姿态为(x<sub>1</sub>,y<sub>1</sub>,φ<sub>1</sub>),计算公式如下:<maths num="0003"><math><![CDATA[<mrow><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>x</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>&phi;</mi><mn>1</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mrow><mi>&Delta;</mi><mi>t</mi></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>&Delta;</mi><mi>t</mi></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mi>&Delta;</mi><mi>t</mi></mrow></mtd></mtr></mtable></mfenced><mo>*</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>V</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><msub><mi>V</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mi>&omega;</mi></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>x</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><msub><mi>&phi;</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001144297050000013.GIF" wi="565" he="223" /></maths>因为移动机器人在地面运动,移动机器人的位姿用M<sub>1</sub>表示为:M<sub>1</sub>=(x<sub>1</sub>,y<sub>1</sub>,φ<sub>1</sub>)<sup>T</sup>第三步,通过二维码图像计算移动机器人的定位结果M<sub>2</sub>,包括以下步骤:(1)通过图像处理,读取二维码的信息,包括以下步骤:(a)相机拍照,(b)灰度化,(c)二值化,(d)形态学滤波,(e)边缘检测,(f)霍夫直线变换,(g)透视变换,(h)二维码信息读取;(2)通过二维码计算摄像机坐标系o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>相对于二维码坐标系o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>的旋转矩阵<img file="FDA0001144297050000029.GIF" wi="58" he="63" />以及平移矩阵P<sub>12</sub>,计算方法如下:二维码贴在x<sub>1</sub>o<sub>1</sub>y<sub>1</sub>平面中,z<sub>1</sub>轴垂直于墙面向外,移动机器人相机镜头的朝向为z<sub>2</sub>轴,镜体方向为x<sub>2</sub>轴,图像信息位于x<sub>2</sub>o<sub>2</sub>y<sub>2</sub>坐标中;设边AO长度为length<sub>AO</sub>,边A<sub>1</sub>O<sub>1</sub>的长度为<img file="FDA0001144297050000021.GIF" wi="212" he="79" />标定时假设当物体距离相机距离为1m时,实际中物体的长度和图像中物体长度的比为m,相机与二维码之间的距离计算公式如下:<maths num="0004"><math><![CDATA[<mrow><mi>l</mi><mo>=</mo><mfrac><mrow><msub><mi>length</mi><mrow><mi>A</mi><mi>O</mi></mrow></msub></mrow><mrow><msub><mi>length</mi><mrow><msub><mi>A</mi><mn>1</mn></msub><msub><mi>O</mi><mn>1</mn></msub></mrow></msub></mrow></mfrac><mo>*</mo><mi>m</mi></mrow>]]></math><img file="FDA0001144297050000022.GIF" wi="334" he="135" /></maths>已知二维码张贴高度h,移动机器人高清摄像机距离二维码的长度为l,则:<maths num="0005"><math><![CDATA[<mrow><mi>&gamma;</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mfrac><mi>h</mi><mi>l</mi></mfrac></mrow>]]></math><img file="FDA0001144297050000023.GIF" wi="253" he="118" /></maths>在世界坐标系中∠AOB=90°在相机坐标系中∠A<sub>1</sub>O<sub>1</sub>B<sub>1</sub>=θ,o<sub>2</sub>X<sub>2</sub>y<sub>2</sub>z<sub>2</sub>相对于o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>绕z轴旋转‑90°,然后在z<sub>1</sub>轴方向不再转动,在移动机器人运动和相机云台运动过程中,相对于z<sub>1</sub>轴不再旋转,只相对于x<sub>1</sub>轴和y<sub>1</sub>轴转动,绕x<sub>1</sub>转动用θ<sub>x</sub>表示,绕y<sub>1</sub>轴用θ<sub>y</sub>表示。o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>中的坐标在o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>坐标中如下表示:<maths num="0006"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow></mrow></mtd></mtr><mtr><mtd><mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001144297050000024.GIF" wi="2045" he="223" /></maths><maths num="0007"><math><![CDATA[<mrow><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>x</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>z</mi><mn>1</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mi>M</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>*</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><msub><mi>x</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>z</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mo>-</mo><mi>&Delta;</mi><mi>x</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>&Delta;</mi><mi>y</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>&Delta;</mi><mi>z</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0001144297050000025.GIF" wi="442" he="223" /></maths>其中<maths num="0008"><math><![CDATA[<mrow><mi>L</mi><mo>*</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&beta;</mi><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><mi>l</mi><mo>*</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&gamma;</mi><mo>*</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&alpha;</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup></mrow></msqrt></mrow>]]></math><img file="FDA0001144297050000026.GIF" wi="693" he="79" /></maths><maths num="0009"><math><![CDATA[<mrow><mi>&alpha;</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mfrac><msqrt><mrow><msup><mrow><mo>(</mo><mi>L</mi><mo>*</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&beta;</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mi>h</mi><mn>2</mn></msup></mrow></msqrt><mrow><mi>l</mi><mo>*</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&gamma;</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001144297050000027.GIF" wi="579" he="150" /></maths> Δz=h Δx=l*sinα Δy=l*cosα 3个未知数θ<sub>x</sub>,θ<sub>y</sub>和β,需要3个方程,则OA,OB在x<sub>1</sub>o<sub>1</sub>y<sub>1</sub>平面中可表示为:<maths num="0010"><math><![CDATA[<mrow><mover><mrow><mi>O</mi><mi>A</mi></mrow><mo>&RightArrow;</mo></mover><mo>=</mo><mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mo>,</mo><mover><mrow><mi>O</mi><mi>B</mi></mrow><mo>&RightArrow;</mo></mover><mo>=</mo><mrow><mo>(</mo><mi>c</mi><mo>,</mo><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001144297050000028.GIF" wi="541" he="71" /></maths> 在o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>坐标系中:<maths num="0011"><math><![CDATA[<mrow><mover><mrow><mi>O</mi><mi>A</mi></mrow><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><msub><mi>y</mi><mn>2</mn></msub><msub><mi>z</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mi>T</mi></msup><mo>*</mo><mi>M</mi><mo>+</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mi>&Delta;</mi><mi>x</mi></mtd></mtr><mtr><mtd><mi>&Delta;</mi><mi>y</mi></mtd></mtr><mtr><mtd><mi>&Delta;</mi><mi>z</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001144297050000031.GIF" wi="654" he="227" /></maths><maths num="0012"><math><![CDATA[<mrow><mover><mrow><mi>O</mi><mi>B</mi></mrow><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><msub><mi>y</mi><mn>2</mn></msub><msub><mi>z</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>(</mo><mi>c</mi><mo>,</mo><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mi>T</mi></msup><mo>*</mo><mi>M</mi><mo>+</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mi>&Delta;</mi><mi>x</mi></mtd></mtr><mtr><mtd><mi>&Delta;</mi><mi>y</mi></mtd></mtr><mtr><mtd><mi>&Delta;</mi><mi>z</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001144297050000032.GIF" wi="662" he="230" /></maths><maths num="0013"><math><![CDATA[<mrow><mover><mrow><mi>O</mi><mi>A</mi></mrow><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><msub><mi>y</mi><mn>2</mn></msub><msub><mi>z</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>*</mo><mover><mrow><mi>O</mi><mi>B</mi></mrow><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><msub><mi>y</mi><mn>2</mn></msub><msub><mi>z</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001144297050000033.GIF" wi="1085" he="81" /></maths><img file="FDA0001144297050000034.GIF" wi="437" he="103" />在z<sub>2</sub>方向为0<maths num="0014"><math><![CDATA[<mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>=</mo><mfrac><mrow><mover><mrow><msub><mi>O</mi><mn>1</mn></msub><msub><mi>A</mi><mn>1</mn></msub></mrow><mo>&RightArrow;</mo></mover><mo>*</mo><mover><mrow><msub><mi>O</mi><mn>1</mn></msub><msub><mi>B</mi><mn>1</mn></msub></mrow><mo>&RightArrow;</mo></mover></mrow><mrow><mo>|</mo><msub><mi>O</mi><mn>1</mn></msub><msub><mi>A</mi><mn>1</mn></msub><mo>|</mo><mo>*</mo><mo>|</mo><msub><mi>O</mi><mn>1</mn></msub><msub><mi>B</mi><mn>1</mn></msub><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001144297050000035.GIF" wi="1213" he="150" /></maths>z<sub>2</sub>轴与x<sub>1</sub>轴之间的夹角为<img file="FDA0001144297050000036.GIF" wi="74" he="67" /><maths num="0015"><math><![CDATA[<mrow><msup><mrow><mo>(</mo><msub><mi>cos&theta;</mi><mrow><msub><mi>z</mi><mn>1</mn></msub><mi>x</mi></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mi>cos&beta;</mi><mn>2</mn></msup><mo>+</mo><msup><mi>cos&gamma;</mi><mn>2</mn></msup><mo>=</mo><mn>1</mn></mrow>]]></math><img file="FDA0001144297050000037.GIF" wi="611" he="78" /></maths>其中r已知,<img file="FDA0001144297050000038.GIF" wi="71" he="63" />可用β表示;根据z<sub>2</sub>轴在o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>坐标系中的向量得到关于β的方程;<maths num="0016"><math><![CDATA[<mrow><msup><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mi>T</mi></msup><mo>*</mo><mi>M</mi><mo>+</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mi>&Delta;</mi><mi>x</mi></mtd></mtr><mtr><mtd><mi>&Delta;</mi><mi>y</mi></mtd></mtr><mtr><mtd><mi>&Delta;</mi><mi>z</mi></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mrow><mo>(</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&beta;</mi><mo>,</mo><mi>c</mi><mi>o</mi><mi>s</mi><mo>(</mo><mrow><mn>90</mn><mo>-</mo><mi>&gamma;</mi></mrow><mo>)</mo><mo>,</mo><msub><mi>cos&theta;</mi><mrow><msub><mi>z</mi><mn>1</mn></msub><mi>x</mi></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001144297050000039.GIF" wi="1492" he="227" /></maths>联立方程(1)(2)(3)可求得θ<sub>x</sub>,θ<sub>y</sub>,和β,得到o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>到o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>的转换矩阵<img file="FDA00011442970500000310.GIF" wi="89" he="70" />以及平移矩阵P<sub>12</sub>;(3)各个坐标系之间旋转矩阵与平移矩阵的计算:在世界坐标系中,设定二维码的位置为(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>),二维码坐标系o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>相对于世界坐标系OXYZ的平移矩阵为P<sub>O1</sub>的计算如下:P<sub>01</sub>=(X<sub>1</sub>,Y<sub>1</sub>,Z<sub>1</sub>)<sup>T</sup>二维码坐标系的三个坐标轴与世界坐标系的三个轴之间的夹角组成的3×3的矩阵,各个夹角所对应的余弦值所组成的矩阵为二维码坐标系o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>相对于世界坐标系OXYZ的旋转矩阵为<img file="FDA00011442970500000311.GIF" wi="88" he="77" />如下:<maths num="0017"><math><![CDATA[<mrow><mmultiscripts><mi>R</mi><mprescripts/><mn>1</mn><mi>O</mi></mmultiscripts><mo>=</mo><mfenced open = "|" close = "|"><mtable><mtr><mtd><mrow><mover><msub><mi>x</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>X</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd><mtd><mrow><mover><msub><mi>y</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>X</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd><mtd><mrow><mover><msub><mi>z</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>X</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd></mtr><mtr><mtd><mrow><mover><msub><mi>x</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>Y</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd><mtd><mrow><mover><msub><mi>y</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>Y</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd><mtd><mrow><mover><msub><mi>z</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>Y</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd></mtr><mtr><mtd><mrow><mover><msub><mi>x</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>Z</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd><mtd><mrow><mover><msub><mi>y</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>Z</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd><mtd><mrow><mover><msub><mi>z</mi><mn>1</mn></msub><mo>&RightArrow;</mo></mover><mo>*</mo><mover><msub><mi>Z</mi><mi>O</mi></msub><mo>&RightArrow;</mo></mover></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA00011442970500000312.GIF" wi="710" he="277" /></maths>移动机器人各个坐标系相对于相邻的坐标系的旋转角度以及平移距离在移动机器人系统均已知,其他坐标系的旋转矩阵以及平移矩阵也按照上述方法来计算;二维码坐标系o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>相对于世界坐标系OXYZ有平移,相对于Z轴旋转,旋转矩阵为<img file="FDA0001144297050000041.GIF" wi="83" he="79" />平移矩阵为P<sub>O1</sub>;摄像机坐标系o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>相对于二维码坐标系o<sub>1</sub>x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>为平移和旋转,旋转矩阵为<img file="FDA0001144297050000042.GIF" wi="81" he="74" />平移矩阵为P<sub>12</sub>;云台a部分坐标系o<sub>3</sub>x<sub>3</sub>y<sub>3</sub>z<sub>3</sub>相对于摄像机坐标系o<sub>2</sub>x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>只是相对于x<sub>2</sub>轴的平移,旋转矩阵为<img file="FDA0001144297050000043.GIF" wi="82" he="82" />平移矩阵为P<sub>23</sub>;云台a部分坐标系o<sub>3</sub>x<sub>3</sub>y<sub>3</sub>z<sub>3</sub>相对于云台b部分坐标系o<sub>3</sub>x<sub>4</sub>y<sub>4</sub>z<sub>4</sub>只是相对于z<sub>3</sub>轴的旋转,所以他们共用一个坐标系原点o<sub>3</sub>,旋转矩阵为<img file="FDA0001144297050000044.GIF" wi="88" he="74" />平移矩阵为P<sub>34</sub>;移动机器人坐标系o<sub>5</sub>x<sub>5</sub>y<sub>5</sub>z<sub>5</sub>相对于云台b部分坐标系o<sub>3</sub>x<sub>4</sub>y<sub>4</sub>z<sub>4</sub>只是相对于轴方向的平移和旋转,并且在云台b部分的坐标系o<sub>3</sub>x<sub>4</sub>y<sub>4</sub>z<sub>4</sub>下,移动机器人的坐标为<sup>4</sup>O<sub>5</sub>;(4)通过旋转矩阵与平移矩阵计算移动机器人的位姿:通过计算表示出云台b部分坐标系相对于世界坐标系的旋转矩阵为<img file="FDA0001144297050000045.GIF" wi="250" he="63" />平移矩阵为P<sub>O1</sub>+P<sub>12</sub>+P<sub>23</sub>+P<sub>34</sub>,移动机器人坐标系原点O<sub>5</sub>就是移动机器人的位置;根据坐标系变换规则,可以计算出移动机器人位置:<maths num="0018"><math><![CDATA[<mrow><msub><mmultiscripts><mi>O</mi><mprescripts/><none/><mi>O</mi></mmultiscripts><mn>5</mn></msub><mo>=</mo><mmultiscripts><mi>R</mi><mprescripts/><mn>1</mn><mi>O</mi></mmultiscripts><mmultiscripts><mi>R</mi><mprescripts/><mn>2</mn><mn>1</mn></mmultiscripts><mmultiscripts><mi>R</mi><mprescripts/><mn>3</mn><mn>2</mn></mmultiscripts><mmultiscripts><mi>R</mi><mprescripts/><mn>4</mn><mn>3</mn></mmultiscripts><msub><mmultiscripts><mi>O</mi><mprescripts/><none/><mn>4</mn></mmultiscripts><mn>5</mn></msub><mo>+</mo><msub><mi>P</mi><mrow><mi>O</mi><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>P</mi><mn>12</mn></msub><mo>+</mo><msub><mi>P</mi><mn>23</mn></msub><mo>+</mo><msub><mi>P</mi><mn>34</mn></msub><mo>=</mo><msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FDA0001144297050000046.GIF" wi="1509" he="71" /></maths>移动机器人坐标系相对于世界坐标系沿着Z轴方向旋转,<img file="FDA0001144297050000047.GIF" wi="270" he="63" />就是移动机器人坐标系相对于世界坐标系的旋转矩阵,通过旋转矩阵,可以计算出移动机器人坐标系相对于世界坐标系的夹角θ,移动机器人的位姿用M<sub>2</sub>矩阵表示为:M<sub>2</sub>=(x,y,θ)<sup>T</sup>第四步,二维码定位数据对里程计定位结果修正,使用二维码的定位结果来修正里程计的数据,则:M<sub>1</sub>=M<sub>2</sub>=(x,y,θ)<sup>T</sup>。
地址 830049 新疆维吾尔自治区乌鲁木齐市天山区延安路1230号新疆大学机械工程学院