发明内容
本发明提供一种一维场景下的心跳定位方法、装置和系统,本发明简化了一维场景下的定位方式,借助心跳信号帧实现了定位,无需传统测距方式进行多次tag和anchor之间的交互的步骤,简单方便。
为解决上述技术问题,本发明提供技术方案如下:
一方面,本发明提供一种一维场景下的心跳定位方法,包括:
步骤1:获取被测终端在t1时刻的位置;
步骤2:接收所述被测终端发送的第一心跳帧和第二心跳帧,以及发送所述第一心跳帧和第二心跳帧的时刻t1和t3,记录接收到所述第一心跳帧和第二心跳帧的时刻t2和t4;
步骤3:计算t1时刻到t3时刻被测终端运动的距离L,其中:
L=C*[(t4–t2)–(t3–t1)];
步骤4:根据被测终端在t1时刻的位置和t1时刻到t3时刻被测终端运动的距离L,计算得到被测终端在t3时刻的位置。
进一步的,所述步骤2包括:
步骤21:接收所述被测终端在t1时刻发送的第一心跳帧,并记录接收到所述第一心跳帧的时刻t2;
步骤22:接收所述被测终端在t3时刻发送的包括t1时刻信息的第二心跳帧,并记录t1和接收到所述第二心跳帧的时刻t4;
步骤23:接收所述被测终端在t5时刻发送的包括t3时刻信息的第三心跳帧,并记录t3和接收到所述第三心跳帧的时刻t6。
进一步的,所述步骤1包括:
步骤11:接收被测终端发送的第一请求帧;
步骤12:等待时间间隔后,向所述被测终端发送第一回复帧;
步骤13:接收第二请求帧,所述第二请求帧是所述被测终端接收所述第一回复帧,并等待时间间隔后发送的;
步骤14:接收所述第二请求帧后立即向所述被测终端发送第二回复帧;
步骤15:向所述被测终端发送时间戳回复帧,以使所述被测终端计算range1;所述range1为所述被测终端发送所述第一请求帧时的距离,所述时间戳回复帧包括和为收到所述第二请求帧和发送所述第一回复帧的时间间隔,其中:
为所述被测终端收到所述第一回复帧和发送所述第一请求帧的时间间隔;
为所述被测终端收到所述第二回复帧和发送所述第二请求帧的时间间隔;
步骤16:接收所述被测终端发送的range1;
步骤17:根据range1,计算得到被测终端在t1时刻的位置,其中t1时刻为所述被测终端发送所述第一请求帧的时刻。
进一步的,所述步骤15进一步为:向所述被测终端发送时间戳回复帧,以使所述被测终端计算range1、range2和range3;
所述range1为所述被测终端发送所述第一请求帧时的距离,所述range2为所述被测终端接收所述第一回复帧时的距离,所述range3为所述被测终端发送所述第二请求帧时的距离,其中:
range2=(4range-range1-range3)/2
所述步骤16进一步为:接收所述被测终端发送的range1、range2和range3;
所述步骤17进一步为:根据range1、range2或range3,计算得到被测终端在t1时刻的位置,其中t1时刻为所述被测终端发送所述第一请求帧的时刻,或者t1时刻为所述被测终端接收所述第一回复帧的时刻,或者t1时刻为所述被测终端发送所述第二请求帧的时刻。
另一方面,本发明提供一种定位基站,包括:
位置获取模块,用于获取被测终端在t1时刻的位置;
接收和记录模块,用于接收所述被测终端发送的第一心跳帧和第二心跳帧,以及发送所述第一心跳帧和第二心跳帧的时刻t1和t3,记录接收到所述第一心跳帧和第二心跳帧的时刻t2和t4;
距离计算模块,用于计算t1时刻到t3时刻被测终端运动的距离L,其中:
L=C*[(t4–t2)–(t3–t1)];
位置计算模块,用于根据被测终端在t1时刻的位置和t1时刻到t3时刻被测终端运动的距离L,计算得到被测终端在t3时刻的位置。
进一步的,所述接收和记录模块包括:
第一心跳帧接收单元,用于接收所述被测终端在t1时刻发送的第一心跳帧,并记录接收到所述第一心跳帧的时刻t2;
第二心跳帧接收单元,用于接收所述被测终端在t3时刻发送的包括t1时刻信息的第二心跳帧,并记录t1和接收到所述第二心跳帧的时刻t4;
第三心跳帧接收单元,用于接收所述被测终端在t5时刻发送的包括t3时刻信息的第三心跳帧,并记录t3和接收到所述第三心跳帧的时刻t6。
进一步的,所述位置获取模块包括:
第一请求帧接收单元,用于接收被测终端发送的第一请求帧;
第一回复帧发送单元,用于等待时间间隔后,向所述被测终端发送第一回复帧;
第二请求帧接收单元,用于接收第二请求帧,所述第二请求帧是所述被测终端接收所述第一回复帧,并等待时间间隔后发送的;
第二回复帧发送单元,用于接收所述第二请求帧后立即向所述被测终端发送第二回复帧;
时间戳回复帧发送单元,用于向所述被测终端发送时间戳回复帧,以使所述被测终端计算range1;所述range1为所述被测终端发送所述第一请求帧时的距离,所述时间戳回复帧包括和为收到所述第二请求帧和发送所述第一回复帧的时间间隔,其中:
为所述被测终端收到所述第一回复帧和发送所述第一请求帧的时间间隔;
为所述被测终端收到所述第二回复帧和发送所述第二请求帧的时间间隔;
距离接收单元,用于接收所述被测终端发送的range1;
位置计算单元,用于根据range1,计算得到被测终端在t1时刻的位置,其中t1时刻为所述被测终端发送所述第一请求帧的时刻。
进一步的,所述时间戳回复帧发送单元进一步用于:向所述被测终端发送时间戳回复帧,以使所述被测终端计算range1、range2和range3;
所述range1为所述被测终端发送所述第一请求帧时的距离,所述range2为所述被测终端接收所述第一回复帧时的距离,所述range3为所述被测终端发送所述第二请求帧时的距离,其中:
range2=(4range-range1-range3)/2
所述距离接收单元进一步用于:接收所述被测终端发送的range1、range2和range3;
所述位置计算单元进一步用于:根据range1、range2或range3,计算得到被测终端在t1时刻的位置,其中t1时刻为所述被测终端发送所述第一请求帧的时刻,或者t1时刻为所述被测终端接收所述第一回复帧的时刻,或者t1时刻为所述被测终端发送所述第二请求帧的时刻。
再一方面,本发明提供一种一维场景下的心跳定位系统,包括被测终端和上述的定位基站。
本发明具有以下有益效果:
本发明简化了一维场景下的定位方式,借助心跳信号帧实现了定位,无需传统测距方式进行多次tag和anchor之间的交互的步骤,简单方便。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
一方面,本发明提供一种一维场景下的心跳定位方法,用于定位基站,如图1所示,包括:
步骤1:获取被测终端在t1时刻的位置。t1时刻即为初始时刻,为被测终端进入某个定位基站测距范围的时刻,此时,可以通过各种定位算法,获得被测终端在t1时刻的位置,用坐标表示。t1时刻后,不再通过传统的定位算法重复定位获得被测终端的坐标,而是启动心跳定时装置,执行下面的步骤。
步骤2:接收被测终端发送的第一心跳帧和第二心跳帧,以及发送第一心跳帧和第二心跳帧的时刻t1和t3,记录接收到第一心跳帧和第二心跳帧的时刻t2和t4。
步骤3:计算t1时刻到t3时刻被测终端运动的距离L,其中:
L=C*[(t4–t2)–(t3–t1)]。
本步骤需要用到以下测距定理:tag在t1时刻发出第一心跳帧请求,anchor在t2时刻收到;tag再次在t3时刻发出第二心跳帧请求,anchor在t4时刻收到。t1、t3和t2、t4分别为tag和anchor本地时钟读取的时刻。那么t1和t3时刻之间,tag相对于anchor运动的距离为:C*[(t4–t2)–(t3–t1)]。且TAG和anchor之间无需进行时间同步。C为光速。
本测距定理证明如下:如图2所示,假设tag和anchor的时钟误差为E,那么t1时刻,tag和anchor的距离为C*(t2–t1-E);同样,t3时刻,tag和anchor的距离为C*(t4–t3-E)。因此t1和t3时刻的距离之差为前两者之差,也即:C*[(t4–t2)–(t3–t1)]。跟时钟误差E无关,也即tag和anchor之间无需进行时间同步。
步骤4:根据被测终端在t1时刻的位置和t1时刻到t3时刻被测终端运动的距离L,计算得到被测终端在t3时刻的位置。由于是一维定位,只要知道了在t1时刻的位置以及t1时刻到t3时刻运动的距离L,即可计算出t3时刻的位置。
以此类推,还可以计算出后续的t5、t7......的位置,一直到测终端离开某个定位基站测距范围,进入下一个定位基站,再重复上述步骤。
本发明简化了一维场景下的定位方式,借助心跳信号帧实现了定位,无需传统测距方式进行多次tag和anchor之间的交互的步骤,简单方便。
本发明步骤2涉及和定位基站的通信过程,可以使用各种方法实现,优选的,步骤2包括:
步骤21:接收被测终端在t1时刻发送的第一心跳帧,并记录接收到第一心跳帧的时刻t2。被测终端在t1时刻发送第一心跳帧,并记录发出该第一心跳帧的时刻t1,定位基站接收到第一心跳帧后,记录接收到第一心跳帧的时刻t2。
步骤22:接收被测终端在t3时刻发送的包括t1时刻信息的第二心跳帧,并记录t1和接收到第二心跳帧的时刻t4。一段时间后,被测终端在t3时刻发送第二心跳帧,并记录发出该第二心跳帧的时刻t3,并且被测终端将发送第一心跳帧的时刻t1包含在第二心跳帧中,一并发送到定位基站,定位基站接收到第二心跳帧后,记录接收到第二心跳帧的时刻t4。
步骤23:接收被测终端在t5时刻发送的包括t3时刻信息的第三心跳帧,并记录t3和接收到第三心跳帧的时刻t6。再一段时间后,被测终端在t5时刻发送第三心跳帧,并记录发出该第三心跳帧的时刻t5,并且被测终端将发送第二心跳帧的时刻t3包含在第三心跳帧中,一并发送到定位基站,定位基站接收到第三心跳帧后,记录接收到第三心跳帧的时刻t6。
以此类推,被测终端一直发送心跳帧,每次心跳帧报告上次发送心跳帧的具体时刻给anchor。Anchor也会记录每次心跳帧的收到时刻。
本发明中,被测终端在t1时刻的位置可以通过各种方法获得,例如SDS测距(ranging protocol symmetric double-sided ranging protocol,对称双侧测距协议)。
SDS测距的无线电波交互情形如图3所示:
tag向anchor发送RFRAMEreq1(第一请求帧);
anchor接收到RFRAMEreq1,并等待固定时长后,向tag发送RFRAMErep1(第一回复帧);
tag接收RFRAMErep1,并记录收到RFRAMErep1和发送RFRAMEreq1的时间间隔,记为
tag在等待固定时长后向anchor发送RFRAMEreq2(第二请求帧);
anchor接收RFRAMEreq2,并计算收到RFRAMEreq2和发送RFRAMErep1的时间间隔,记为
anchor向tag发送Time-stamp Report(时间戳回复帧),Time-stampReport中带有和的值;
计算Tag与anchor的距离,其中距离为:
SDS测距限制在于,只考虑了静止场景下的tag测距,也即tag静止时候才能有效。tag高速运动的场景下,SDS测距测出的其实是tag多次发送请求帧时刻距离的平均值。举例来说,假若tag以300公里时速运动,大约是83.3米/秒的速度运动。假设和均为100ms,那么图1位置2和3处的距离已经变化了8.33米,位置1和2处的距离变化大约也是8.33米(由于还得加上两个距离测距所耗费的时间Tt)。也就是说,SDS测距测得的距离其实是:位置1、3和2个位置2这4个距离值的平均值,使得测量结果不准确。
本发明对其进行优化,如图4所示:
被测终端(tag)和定位基站(anchor)之间通过无线电波进行测距,优选使用UWB无线电波,UWB时间能够精确到纳秒级别,测距精度能够达到厘米级别。无线电波通过网卡发送和接收,网卡包括MAC(物理接口收发器)和PHY(以太网媒体接入控制器)。
步骤11:接收被测终端发送的第一请求帧。
本步骤中,被测终端的MAC向被测终端的PHY发送数据请求(Data Request)指令,被测终端的PHY接收到数据请求指令后,向定位基站发送第一请求帧(1FRAMEreq),并记录发送第一请求帧的时刻。
定位基站的PHY接收到第一请求帧后,向定位基站的MAC发送数据指示(DataIndication)指令,并记录收到第一请求帧的时刻。
步骤12:等待时间间隔后,向被测终端发送第一回复帧。
定位基站的MAC收到数据指示指令后,等待一段时间(不是),向定位基站的PHY发送数据请求指令,定位基站的PHY接收到数据请求指令后,向被测终端发送第一回复帧(1FRAMErep,ACK),记录发送第一回复帧的时刻,并向定位基站的MAC发送数据确认指令(Data Confirm),发送第一回复帧的时刻与收到第一请求帧的时刻的差值即为
步骤13:接收第二请求帧,第二请求帧是被测终端接收第一回复帧,并等待时间间隔后发送的。
被测终端的PHY接收到第一回复帧后,向被测终端的MAC发送数据指示(DataIndication)指令,并记录接收到第一回复帧的时刻。
被测终端的MAC收到数据指示指令后,等待一段时间(不是),向被测终端的PHY发送数据请求指令,被测终端的PHY接收到数据请求指令后,向定位基站发送第二请求帧(2FRAMEreq),并记录发送第二请求帧的时刻,发送第二请求帧的时刻与接收到第一回复帧的时刻的差值即为。
定位基站的PHY接收到第二请求帧后,并记录接收到第二请求帧的时刻。
步骤14:接收第二请求帧后立即向被测终端发送第二回复帧。
定位基站的PHY接收到第二请求帧后,立即向被测终端发送第二回复帧(2FRAMErep,ACK),并记录发送第二回复帧的时刻刻(同时也是接收到第二请求帧的时),以使被测终端的PHY接收第二回复帧并记录接收到第二回复帧的时刻。
步骤15:向被测终端发送时间戳回复帧,以使被测终端计算range1;range1为被测终端发送第一请求帧时的距离,时间戳回复帧包括和为收到第二请求帧和发送第一回复帧的时间间隔,其中:
为被测终端收到第一回复帧和发送第一请求帧的时间间隔;
为被测终端收到第二回复帧和发送第二请求帧的时间间隔。
定位基站的PHY接收到第二请求帧后,向定位基站的MAC发送数据指示指令,定位基站的MAC收到数据指示指令后,于任意时间内向定位基站的PHY发送数据请求指令,定位基站的PHY收到数据请求指令后,向被测终端发送时间戳回复帧(Time-stamp Report,ACK),记录发送时间戳回复帧的时刻,同时向定位基站的MAC发送数据确认指令。
被测终端的PHY接收到时间戳回复帧后,向被测终端的MAC发送数据指示指令,以使被测终端计算其与定位基站的距离。
被测终端根据前述步骤得到的各个参数计算出向定位基站发送第一请求帧时与定位基站的精确距离range1,具体的原理详述如下:
由上述可知,SDS测距测得的距离range其实是:位置1(向定位基站发送第一请求帧时与定位基站的距离,range1)、位置3(向定位基发送第二请求帧时与定位基站的距离,range3)和两个位置2(接收第一回复帧时与定位基站的距离,range2)这四个距离值的平均值,即:
通过数学方法,我们可以得到range1和range3的关系定理如下:
定理一:
证明:是被测终端在位置1和3发出第一请求帧和第二请求帧的时间间隔,是定位基站收到第一请求帧和第二请求帧的时间间隔。如果被测终端静止不动,那么这两个时间间隔应该相等,也即距离差为0。如果被测终端运动,则这两个时间间隔之差不为0,那么该差值乘以光速应该为被测终端在位置1和3的距离之差。得证。
定理二:
证明:由于定位基站收到第二请求帧立即回复第二回复帧,相对于光速来说,被测终端的运动速度可以忽略不计,据此知道此时被测终端的距离为得证。
因此,将定理二代入定理一,即可得到:
步骤16:接收被测终端发送的range1。
步骤17:根据range1,计算得到被测终端在t1时刻的位置,其中t1时刻为被测终端发送第一请求帧的时刻。知道range1后,又已知定位基站的坐标和一维场景的形状(轨道和巷道等),就可以计算出range1对应的时刻被测终端的坐标。另外,我们此时取时刻t1为range1对应的时刻,后续的时刻在t1时刻上依次间隔一定的时间间隔。
与现有技术相比,本发明能够精确地测量被测终端高速运动时与定位基站的距离,尤其适合矿井和轨道交通这种被测终端始终在快速运动的场景。
作为本发明实施例的一种改进,还可以计算range2和range3,具体的,步骤15进一步为:向被测终端发送时间戳回复帧,以使被测终端计算range1、range2和range3。
range1为被测终端发送第一请求帧时的距离,range2为被测终端接收第一回复帧时的距离,range3为被测终端发送第二请求帧时的距离,其中:
range2=(4range-range1-range3)/2
为了测量出range2,我们需要引出定理三:
定理三:则range2=(4range-range1–range3)/2。
由于range=(range1+2range2+range3)/4,所以上式得证。
由定理一至定理三,可以计算出range1、range2和range3。本发明实施例能够计算出被测终端处于多个位置时与定位基站的距离,使得定位更精确。
相应的步骤16进一步为:接收被测终端发送的range1、range2和range3。
步骤17进一步为:根据range1、range2或range3,计算得到被测终端在t1时刻的位置,其中t1时刻为被测终端发送第一请求帧的时刻,或者t1时刻为被测终端接收第一回复帧的时刻,或者t1时刻为被测终端发送第二请求帧的时刻。
本发明实施例能够计算出被测终端处于多个位置时与定位基站的距离,使得定位更精确。
另一方面,本发明提供一种定位基站50,如图5所示,包括:
位置获取模块51,用于获取被测终端在t1时刻的位置;
接收和记录模块52,用于接收被测终端发送的第一心跳帧和第二心跳帧,以及发送第一心跳帧和第二心跳帧的时刻t1和t3,记录接收到第一心跳帧和第二心跳帧的时刻t2和t4;
距离计算模块53,用于计算t1时刻到t3时刻被测终端运动的距离L,其中:
L=C*[(t4–t2)–(t3–t1)];
位置计算模块54,用于根据被测终端在t1时刻的位置和t1时刻到t3时刻被测终端运动的距离L,计算得到被测终端在t3时刻的位置。
本发明简化了一维场景下的定位方式,借助心跳信号帧实现了定位,无需传统测距方式进行多次tag和anchor之间的交互的步骤,简单方便。
本发明接收和记录模块涉及和定位基站的通信过程,可以使用各种方法实现,优选的,接收和记录模块包括:
第一心跳帧接收单元,用于接收被测终端在t1时刻发送的第一心跳帧,并记录接收到第一心跳帧的时刻t2;
第二心跳帧接收单元,用于接收被测终端在t3时刻发送的包括t1时刻信息的第二心跳帧,并记录t1和接收到第二心跳帧的时刻t4;
第三心跳帧接收单元,用于接收被测终端在t5时刻发送的包括t3时刻信息的第三心跳帧,并记录t3和接收到第三心跳帧的时刻t6。
以此类推,被测终端一直发送心跳帧,每次心跳帧报告上次发送心跳帧的具体时刻给anchor。Anchor也会记录每次心跳帧的收到时刻。
本发明中,被测终端在t1时刻的位置可以通过各种方法获得,例如SDS测距(ranging protocol symmetric double-sided ranging protocol,对称双侧测距协议)。本发明对其进行优化,包括:
第一请求帧接收单元,用于接收被测终端发送的第一请求帧;
第一回复帧发送单元,用于等待时间间隔后,向被测终端发送第一回复帧;
第二请求帧接收单元,用于接收第二请求帧,第二请求帧是被测终端接收第一回复帧,并等待时间间隔后发送的;
第二回复帧发送单元,用于接收第二请求帧后立即向被测终端发送第二回复帧;
时间戳回复帧发送单元,用于向被测终端发送时间戳回复帧,以使被测终端计算range1;range1为被测终端发送第一请求帧时的距离,时间戳回复帧包括和为收到第二请求帧和发送第一回复帧的时间间隔,其中:
为被测终端收到第一回复帧和发送第一请求帧的时间间隔;
为被测终端收到第二回复帧和发送第二请求帧的时间间隔;
距离接收单元,用于接收被测终端发送的range1;
位置计算单元,用于根据range1,计算得到被测终端在t1时刻的位置,其中t1时刻为被测终端发送第一请求帧的时刻。
与现有技术相比,本发明能够精确地测量被测终端高速运动时与定位基站的距离,尤其适合矿井和轨道交通这种被测终端始终在快速运动的场景。
作为本发明实施例的一种改进,还可以计算range2和range3,具体的,时间戳回复帧发送单元进一步用于:向被测终端发送时间戳回复帧,以使被测终端计算range1、range2和range3;
range1为被测终端发送第一请求帧时的距离,range2为被测终端接收第一回复帧时的距离,range3为被测终端发送第二请求帧时的距离,其中:
range2=(4range-range1-range3)/2
距离接收单元进一步用于:接收被测终端发送的range1、range2和range3;
位置计算单元进一步用于:根据range1、range2或range3,计算得到被测终端在t1时刻的位置,其中t1时刻为被测终端发送第一请求帧的时刻,或者t1时刻为被测终端接收第一回复帧的时刻,或者t1时刻为被测终端发送第二请求帧的时刻。
本发明实施例能够计算出被测终端处于多个位置时与定位基站的距离,使得定位更精确。
再一方面,本发明提供一种一维场景下的心跳定位系统,如图6所示,包括上述定位基站50和被测终端90。
本发明简化了一维场景下的定位方式,借助心跳信号帧实现了定位,无需传统测距方式进行多次tag和anchor之间的交互的步骤,简单方便。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。