weisongwen / UrbanLoco

UrbanLoco: A Full Sensor Suite Dataset for Mapping and Localization in Urban Scenes
https://advdataset2019.wixsite.com/urbanloco
401 stars 37 forks source link

How to implement spp (Single point positioning) based on /GNSS topic in UrbanLoco Dataset? #20

Open chenwx63 opened 2 years ago

chenwx63 commented 2 years ago

Dear author, I am grateful for your outstanding contribution to open-source dataset sharing. But I still meet some problems in implementing SPP and other positioning algorithms based on your Dataset which GNSS raw data is stored in /GNSS topic. Some details are as follows:

  1. I can not match the proper satellites from your dataset, you distinguish different satellites using "field.GNSS_RawsXX.prn_satellites_index", are they multi-system or single system.

  2. I Noticed that satellites' coordinates are given in your dataset, I tried to find every satellites in this day's all-system orbits files, but unfortunately I failed. It seems like there is not any matched satellite according to the Ephemeris files downloaded from the IGS website. Therefore, I am curious about how you record the satellites' coordinates in your observation and if I do something wrong about the satellites' matching.

  3. When I try to ignore the satellites matching and implement spp algorithm only rely on observation in /GNSS topic, and I use the first position in topic "bestpos" as the approximate initial value, I find that the difference between distance between satellite and receiver and pseudorange is too large (we have already taken clock bias and other errors into consideration ). So I am still confused about the satellites' coordinates presented in ./GNSS.

  4. Finally, I still want to post a question about units of variables, I suppose the unit of err_tropo and err_iono is "(m)", but I am a little confused about the unit of "sat_clk_err", generally speaking we will regard it as "10E(-6) s", but if we do so, this error seems to be too large, for the reason that it should multiply a "c" (light velocity) .

Thanks for your time to read. I am looking forward to your reply.

weisongwen commented 2 years ago

Hi @chenwx63 ! Sorry for the delayed reply as I am really holding back by the recent funding proposal. for your question, my answer is listed below (feel free to let me know if there is anything unclear):

Q1: for those satellite id 0~34, it is GPS satellites. For those >34, it is BDS.

Q2: you can directly use the satellite position encoded in the topic /GNSS_ which is decoded from the satellite ephemeris data.

Q3: you issue should be from the clock bias, the satellite clock bias should be already removed from the pseudorange measurements (you can quickly take a look). moreover, the satellite clock bias is in the unit of meters.

Q4:refer to Q3.

Let me know if you get any updates :-)

if you still cannot solve it, I could provide a short code for you to implement the SPP.

you may also wish to refer to our GraphGNSSLib!

Best, Weisong,