PHew! - finally finished my experiments with RRLP. Full details at www.genesysguru.com
In summary:
range error=ephemURA of xx.0 (xx) doesn't fit in (0,15)
The problem seems to be that SV accuracy in metres is being used as the URA index. The confusion arises due to differences between the Receiver Independent Exchange Format (RINEX) 2.10 format and Interface Specification IS-GPS-200 (http://www.gps.gov/technical/icwg/). IS-GPS-200 section 20.3.3.3.1.3 states: ”SV Accuracy - Bits 13 through 16 of word three shall give the URA index of the SV. The URA index (N) is an integer in the range of 0 through 15.”
RRLP server needs to be modified to support RINEX and specifically to add a mapping from SV accuracy to URA index. For now I changed line 1084 in rrlpserver.erl to assume a URA index of 6 e.g. SV accuracy in the range 13.65 – 24 metres:
stuff("ephemURA", nmth(7,1,Tokens), AdjustTable),
Change to:
stuff("ephemURA", “6” , AdjustTable),
With Control.Call.QueryRRLP.Early OpenBTS option configured a crash occurs.
OpenBTS: ../CommonLibs/Vector.h:189: void Vector<T>::copyToSegment(Vector<T>&, size_t, size_t) const [with T = char, size_t= unsigned int]: Assertion `base+span<=other.mEnd' failed.
Hence the solution for now is to unconfigure this option:
unconfig Control.Call.QueryRRLP.Early
It looks at though the Almanac file downloaded from http://www.navcen.uscg.gov/?pageName=currentAlmanac&format=yuma is saved into /tmp/almanac as HTML rather than plain text:
As a quick fix I changed my Almanac URL:
config GSM.RRLP.ALMANAC.URL http://celestrak.com/GPS/almanac/Yuma/almanac.yuma.txt
My final configuration options are:
config GSM.RRLP.ACCURACY 40 config GSM.RRLP.ALMANAC.ASSIST.PRESENT 1 config GSM.RRLP.ALMANAC.URL http://celestrak.com/GPS/almanac/Yuma/almanac.yuma.txt config GSM.RRLP.EPHEMERIS.ASSIST.COUNT 3 config GSM.RRLP.EPHEMERIS.REFRESH.TIME 0.5 config GSM.RRLP.RESPONSETIME 6
Hope this helps!
I'm moving on to experiments with Uplink-Time Difference of Arrival (U-TDOA) methods for locating mobile devices with a bit of GSM burst data analysis , Complex Event Processing (CEP) and data correlation thrown in …. I call this Mobile Fingerprinting … lets see!
Regards Craig
Hi Craig,
On Tue, Apr 9, 2013 at 12:44 AM, Craig Reading craig.reading1@gmail.com wrote:
PHew! - finally finished my experiments with RRLP. Full details at www.genesysguru.com
Your blog seems down - gives me 500/503 errors.
In summary:
range error=ephemURA of xx.0 (xx) doesn't fit in (0,15)
The problem seems to be that SV accuracy in metres is being used as the URA index. The confusion arises due to differences between the Receiver Independent Exchange Format (RINEX) 2.10 format and Interface Specification IS-GPS-200 (http://www.gps.gov/technical/icwg/). IS-GPS-200 section 20.3.3.3.1.3 states: ”SV Accuracy - Bits 13 through 16 of word three shall give the URA index of the SV. The URA index (N) is an integer in the range of 0 through 15.”
RRLP server needs to be modified to support RINEX and specifically to add a mapping from SV accuracy to URA index. For now I changed line 1084 in rrlpserver.erl to assume a URA index of 6 e.g. SV accuracy in the range 13.65 – 24 metres:
stuff("ephemURA", nmth(7,1,Tokens), AdjustTable),
Change to:
stuff("ephemURA", “6” , AdjustTable),
With Control.Call.QueryRRLP.Early OpenBTS option configured a crash occurs.
OpenBTS: ../CommonLibs/Vector.h:189: void Vector<T>::copyToSegment(Vector<T>&, size_t, size_t) const [with T = char, size_t= unsigned int]: Assertion `base+span<=other.mEnd' failed.
Hence the solution for now is to unconfigure this option:
unconfig Control.Call.QueryRRLP.Early
It looks at though the Almanac file downloaded from http://www.navcen.uscg.gov/?pageName=currentAlmanac&format=yuma is saved into /tmp/almanac as HTML rather than plain text:
As a quick fix I changed my Almanac URL:
config GSM.RRLP.ALMANAC.URL http://celestrak.com/GPS/almanac/Yuma/almanac.yuma.txt
My final configuration options are:
config GSM.RRLP.ACCURACY 40 config GSM.RRLP.ALMANAC.ASSIST.PRESENT 1 config GSM.RRLP.ALMANAC.URL http://celestrak.com/GPS/almanac/Yuma/almanac.yuma.txt config GSM.RRLP.EPHEMERIS.ASSIST.COUNT 3 config GSM.RRLP.EPHEMERIS.REFRESH.TIME 0.5 config GSM.RRLP.RESPONSETIME 6
Hope this helps!
Sounds great. Could you document this at the OpenBTS wiki?
I'm moving on to experiments with Uplink-Time Difference of Arrival (U-TDOA) methods for locating mobile devices with a bit of GSM burst data analysis , Complex Event Processing (CEP) and data correlation thrown in …. I call this Mobile Fingerprinting … lets see!
Looking forward to hear more about your results here - this sounds like an interesting area to explore. I see many applications where this would be useful. E.g. we're working with volunteering organization which search people in woods in Northern Russia - every year hundreds of people get lost. :(
-- Regards, Alexander Chemeris. CEO, Fairwaves LLC / ООО УмРадио http://fairwaves.ru