发明名称 一种基于LED照明的室内定位导航方法及装置
摘要 本发明提供了一种基于LED照明的室内定位导航方法,每个LED具有一个可编程的ID编码,各LED灯具有不同且唯一的发光功率变化形式,形成接收端可识别的可见数据光信号,以时分复用的形式将这些可编程的ID编码发射出去;接收端接收到的数据光信号进行解析,并计算接收到的来自不同LED灯的功率;根据定位算法测算出接收端的初始三维坐标,并通过非线性拟合算法对初始三维坐标进行修正;本发明还对应提供了用于该方法的室内定位导航装置,LED的亮暗变化肉眼无法识别,故同时建立LED照明系统;该方法在个别LED灯出现异常的情况下仍可为用户提供精度精确的定位服务,通过非线性拟合算法修正坐标,可保障厘米级的定位精确度。
申请公布号 CN105353347A 申请公布日期 2016.02.24
申请号 CN201510730659.7 申请日期 2015.10.30
申请人 中国地质大学(武汉) 发明人 王瑾;顾文君;周海莹
分类号 G01S5/16(2006.01)I 主分类号 G01S5/16(2006.01)I
代理机构 武汉华旭知识产权事务所 42214 代理人 刘荣;周宗贵
主权项 一种基于LED照明的室内定位导航方法,其特征在于,包括如下步骤:(1)对室内LED照明系统中的各LED灯进行编码,设置与各LED灯相对应的ID编码,ID编码由位置编码和识别码构成,其中位置编码为M位二进制字符串,位置编码与对应LED灯所在的三维空间坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>)相对应,识别码为N位二进制字符串,识别码中“1”表示亮,对应的LED灯发射功率为P<sub>1</sub>,“0”表示暗,对应发射功率为P<sub>2</sub>,P<sub>1</sub>:P<sub>2</sub>=10:6~10:9,各ID编码的识别码中“0”的个数相同,i、N和M均为正整数;(2)将各LED灯的ID编码以时分复用的形式加载到LED灯发射的光信号中,形成数据光信号;(3)接收端接收各LED灯的数据光信号,根据公式①计算接收的数据光信号所对应LED灯的功率P<sub>ri</sub>,公式①为:<img file="FDA0000835516320000011.GIF" wi="326" he="135" />①其中,α为设定的接收端内部接收电路的矫正系数,V<sub>i</sub>为接收端测得的对应LED灯的光电流转换电压,R是接收端内部接收电路的输出电阻,G是接收端内部接收电路的增益,<img file="FDA0000835516320000018.GIF" wi="54" he="55" />是设定的接收端的光电响应度;(4)计算接收的数据光信号所对应LED灯与接收端的估算垂直距离<img file="FDA0000835516320000012.GIF" wi="62" he="85" /><img file="FDA0000835516320000013.GIF" wi="228" he="95" />根据公式②计算接收的数据光信号所对应LED灯与接收端的估算空间距离<img file="FDA0000835516320000014.GIF" wi="78" he="87" />公式②为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mover><mi>d</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><msqrt><mfrac><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>*</mo><msup><msub><mover><mi>h</mi><mo>^</mo></mover><mi>i</mi></msub><mn>2</mn></msup><mo>*</mo><mi>A</mi><mo>*</mo><msub><mi>T</mi><mi>s</mi></msub><mo>(</mo><mi>&psi;</mi><mo>)</mo><mo>*</mo><mi>g</mi><mrow><mo>(</mo><mi>&psi;</mi><mo>)</mo></mrow><mo>*</mo><msub><mi>P</mi><mi>t</mi></msub></mrow><mrow><mn>2</mn><msub><mi>&pi;P</mi><mrow><mi>r</mi><mi>i</mi></mrow></msub></mrow></mfrac></msqrt></mrow>]]></math><img file="FDA0000835516320000015.GIF" wi="761" he="171" /></maths>  ②其中,m是LED灯的朗伯系数,ψ是LED灯入射光与探测器的角度,A是接收端光接收面的物理探测面积,A=5mm<sup>2</sup>~15mm<sup>2</sup>,T<sub>s</sub>(ψ)是接收端的传播系数,T<sub>s</sub>(ψ)=0~1,g(ψ)是接收端的电学增益,g(ψ)=1~10,P<sub>t</sub>为设定的LED灯的发射功率,<img file="FDA0000835516320000019.GIF" wi="62" he="77" />为接收端的估算高度,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mover><mi>Z</mi><mo>^</mo></mover><mn>0</mn></msub><mo>=</mo><mn>0</mn><mi>m</mi><mo>~</mo><mn>2.0</mn><mi>m</mi><mo>;</mo></mrow>]]></math><img file="FDA0000835516320000016.GIF" wi="326" he="79" /></maths>(5)计算接收的数据光信号所对应LED灯与接收端的估算水平距离<img file="FDA00008355163200000110.GIF" wi="62" he="76" />计算公式为<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mover><mi>r</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><msqrt><mrow><msup><msub><mover><mi>d</mi><mo>^</mo></mover><mi>i</mi></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mover><mi>h</mi><mo>^</mo></mover><mi>i</mi></msub><mn>2</mn></msup></mrow></msqrt><mo>;</mo></mrow>]]></math><img file="FDA0000835516320000017.GIF" wi="295" he="110" /></maths>(6)进行初步位置估算:a、当接收端接收到3个不在同一直线上的LED灯或4个以上LED灯的数据光信号时,选择接收的数据光信号功率强度最大的k个LED灯,k≥3,根据三角定位法计算初始三维坐标<img file="FDA0000835516320000021.GIF" wi="317" he="86" />初始三维坐标中<img file="FDA0000835516320000022.GIF" wi="70" he="78" />为步骤(4)中确定的接收端的估算高度,计算公式为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mover><mi>S</mi><mo>^</mo></mover><mo>=</mo><mrow><mo>&lsqb;</mo><mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mn>0</mn></msub><mo>,</mo><msub><mover><mi>Y</mi><mo>^</mo></mover><mn>0</mn></msub></mrow><mo>&rsqb;</mo></mrow><mo>,</mo><mover><mi>S</mi><mo>^</mo></mover><mo>=</mo><msup><mrow><mo>(</mo><mrow><msup><mi>A</mi><mi>T</mi></msup><mi>A</mi></mrow><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msup><mi>A</mi><mi>T</mi></msup><mi>B</mi><mo>,</mo></mrow>]]></math><img file="FDA0000835516320000023.GIF" wi="677" he="86" /></maths>其中:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>A</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd></mtr><mtr><mtd><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><msub><mi>y</mi><mi>k</mi></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000835516320000024.GIF" wi="484" he="230" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>B</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>(</mo><msubsup><mover><mi>r</mi><mo>^</mo></mover><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mover><mi>r</mi><mo>^</mo></mover><mn>2</mn><mn>2</mn></msubsup><mo>)</mo><mo>+</mo><mo>(</mo><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>2</mn><mn>2</mn></msubsup><mo>)</mo><mo>-</mo><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mtable><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr></mtable></mtd></mtr><mtr><mtd><mrow><mo>(</mo><msubsup><mover><mi>r</mi><mo>^</mo></mover><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mover><mi>r</mi><mo>^</mo></mover><mi>k</mi><mn>2</mn></msubsup><mo>)</mo><mo>+</mo><mo>(</mo><msubsup><mi>x</mi><mi>k</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>k</mi><mn>2</mn></msubsup><mo>)</mo><mo>-</mo><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000835516320000025.GIF" wi="828" he="270" /></maths>b、当接收端仅接收到3个共线的LED灯的数据光信号时,通过公式<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mo>(</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mn>0</mn></msub><mo>,</mo><msub><mover><mi>Y</mi><mo>^</mo></mover><mn>0</mn></msub><mo>)</mo><mo>=</mo><mo>(</mo><mo>(</mo><mrow><msub><mi>X</mi><mi>a</mi></msub><mo>+</mo><msub><mi>X</mi><mi>b</mi></msub></mrow><mo>)</mo><mo>/</mo><mn>2</mn><mo>,</mo><mo>(</mo><mrow><msub><mi>Y</mi><mi>a</mi></msub><mo>+</mo><msub><mi>T</mi><mi>b</mi></msub></mrow><mo>)</mo><mo>/</mo><mn>2</mn><mo>)</mo></mrow>]]></math><img file="FDA0000835516320000026.GIF" wi="722" he="78" /></maths>计算初始三维坐标<img file="FDA0000835516320000027.GIF" wi="325" he="84" />其中X<sub>a</sub>和Y<sub>a</sub>为方程组①的解,X<sub>b</sub>和Y<sub>b</sub>为方程组②的解,x<sub>2</sub>和y<sub>2</sub>分别为位于中间的LED灯的横坐标和纵坐标,方程组①和方程组②分别为:<maths num="0008" id="cmaths0008"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mn>2</mn><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><mn>2</mn><msub><mi>x</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mi>X</mi><mi>a</mi></msub><mo>+</mo><mrow><mo>(</mo><mrow><mn>2</mn><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><mn>2</mn><msub><mi>y</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mi>Y</mi><mi>a</mi></msub><mo>=</mo><msup><msub><mover><mi>r</mi><mo>^</mo></mover><mn>1</mn></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mover><mi>r</mi><mo>^</mo></mover><mn>2</mn></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>y</mi><mn>2</mn></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mi>y</mi><mn>1</mn></msub><mn>2</mn></msup></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mi>X</mi><mi>a</mi></msub><mo>-</mo><mrow><mo>(</mo><mrow><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mi>Y</mi><mi>a</mi></msub><mo>=</mo><msub><mi>x</mi><mn>1</mn></msub><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><msub><mi>x</mi><mn>2</mn></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000835516320000028.GIF" wi="1018" he="159" /></maths>  ①,<maths num="0009" id="cmaths0009"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mn>2</mn><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><mn>2</mn><msub><mi>x</mi><mn>3</mn></msub></mrow><mo>)</mo></mrow><msub><mi>X</mi><mi>b</mi></msub><mo>+</mo><mrow><mo>(</mo><mrow><mn>2</mn><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><mn>2</mn><msub><mi>y</mi><mn>3</mn></msub></mrow><mo>)</mo></mrow><msub><mi>Y</mi><mi>b</mi></msub><mo>=</mo><msup><msub><mover><mi>r</mi><mo>^</mo></mover><mn>3</mn></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mover><mi>r</mi><mo>^</mo></mover><mn>2</mn></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>y</mi><mn>2</mn></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mi>y</mi><mn>3</mn></msub><mn>2</mn></msup></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>3</mn></msub></mrow><mo>)</mo></mrow><msub><mi>X</mi><mi>b</mi></msub><mo>-</mo><mrow><mo>(</mo><mrow><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>3</mn></msub></mrow><mo>)</mo></mrow><msub><mi>Y</mi><mi>b</mi></msub><mo>=</mo><msub><mi>x</mi><mn>3</mn></msub><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>3</mn></msub><msub><mi>x</mi><mn>2</mn></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000835516320000029.GIF" wi="1030" he="159" /></maths>  ②;c、当接收端仅接收到2个LED灯的数据光信号时,计算初始三维坐标<img file="FDA00008355163200000210.GIF" wi="206" he="79" /><img file="FDA00008355163200000211.GIF" wi="101" he="85" />其中<img file="FDA00008355163200000212.GIF" wi="67" he="79" />和<img file="FDA00008355163200000213.GIF" wi="56" he="83" />为方程组③的解,方程组③为:<maths num="0010" id="cmaths0010"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mrow><mn>2</mn><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><mn>2</mn><msub><mi>x</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mn>0</mn></msub><mo>+</mo><mrow><mo>(</mo><mrow><mn>2</mn><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><mn>2</mn><msub><mi>y</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mover><mi>Y</mi><mo>^</mo></mover><mn>0</mn></msub><mo>=</mo><msup><msub><mover><mi>r</mi><mo>^</mo></mover><mn>1</mn></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mover><mi>r</mi><mo>^</mo></mover><mn>2</mn></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>y</mi><mn>2</mn></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mi>y</mi><mn>1</mn></msub><mn>2</mn></msup></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mrow><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mn>0</mn></msub><mo>-</mo><mrow><mo>(</mo><mrow><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow><msub><mover><mi>Y</mi><mo>^</mo></mover><mn>0</mn></msub><mo>=</mo><msub><mi>x</mi><mn>1</mn></msub><msub><mi>y</mi><mn>2</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><msub><mi>x</mi><mn>2</mn></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA00008355163200000214.GIF" wi="1019" he="161" /></maths>  ③;d、当接收端仅接收到1个LED灯的数据光信号时,则初始三维坐标<img file="FDA00008355163200000215.GIF" wi="293" he="79" /><img file="FDA00008355163200000216.GIF" wi="350" he="95" />其中x<sub>i</sub>和y<sub>i</sub>分别为该LED灯的横坐标和纵坐标;(7)对初始三维坐标<img file="FDA00008355163200000217.GIF" wi="294" he="79" />进行非线性拟合修正,得到修正坐标<img file="FDA00008355163200000218.GIF" wi="174" he="62" /><img file="FDA00008355163200000219.GIF" wi="764" he="87" />使用置信域方法对修正坐标(X,Y,Z)的坐标值进行修正迭代,直到非线性拟合算子<img file="FDA00008355163200000220.GIF" wi="53" he="76" />收敛,此时的修正坐标(X,Y,Z)即为定位坐标<img file="FDA0000835516320000031.GIF" wi="222" he="74" />非线性拟合算子<img file="FDA0000835516320000032.GIF" wi="52" he="81" />的计算公式为:<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><msub><mover><mi>S</mi><mo>~</mo></mover><mi>l</mi></msub><mo>=</mo><munder><mo>&Sigma;</mo><mi>i</mi></munder><msup><mrow><mo>(</mo><mi>F</mi><mo>(</mo><mrow><mi>X</mi><mo>,</mo><mi>Y</mi><mo>,</mo><mi>Z</mi><mo>;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>,</mo><msub><mi>z</mi><mi>i</mi></msub></mrow><mo>)</mo><mo>-</mo><msub><mover><mi>d</mi><mo>^</mo></mover><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>,</mo></mrow>]]></math><img file="FDA0000835516320000033.GIF" wi="683" he="116" /></maths>其中<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mi>F</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mi>Y</mi><mo>,</mo><mi>Z</mi><mo>;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>,</mo><msub><mi>z</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><mi>X</mi><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mi>Y</mi><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mi>Z</mi><mo>-</mo><msub><mi>z</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>,</mo></mrow>]]></math><img file="FDA0000835516320000034.GIF" wi="1123" he="95" /></maths>f、g和h均为随机整数,l为迭代次数,△为设定的增量;(8)将定位坐标<img file="FDA0000835516320000035.GIF" wi="198" he="78" />发送至用户,配合对应的室内地图进行导航。
地址 430074 湖北省武汉市洪山区鲁磨路388号