gpsd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Duplicate or near-duplicate messages on u-blox M8


From: Luke Hutchison
Subject: Duplicate or near-duplicate messages on u-blox M8
Date: Wed, 26 Feb 2020 02:33:31 -0700

I'm having an issue with the u-blox M8 GPS receiver with gpsd. I followed the advice in the gpsd FAQ and reported a bug through the web form, but figured I'd post the same info here since that form says submitters will probably not get a response.

The u-blox M8 device delivers location updates to gpsd clients roughly twice per second, but each update comes in clusters of two or three update messages (i.e. twice a second, either two or three updates all show up in the GPS client -- xgps or cgps -- in quick succession). These messages are near-duplicates, except that the altitude seems to swing up and down.

Here is an example of output captured from the cgps display:

{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:39.000Z","leapseconds":18,"ept":0.005,"lat":40.599341900,"lon":-111.887235800,"alt":1353.380,"epx":12.712,"epy":19.020,"epv":8.782,"track":149.2327,"speed":0.102,"climb":-0.077,"eps":-0.07,"epc":41.86,"ecefx":-1808240.49,"ecefy":-4501036.72,"ecefz":4129610.54,"ecefvx":0.07,"ecefvy":-0.02,"ecefvz":-0.11,"ecefpAcc":12.06,"ecefvAcc":0.88,"eph":8.259,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:40.000Z","leapseconds":18,"ept":0.005,"lat":40.599341398,"lon":-111.887233819,"alt":1351.587,"epx":12.712,"epy":19.020,"epv":8.782,"track":115.5019,"speed":0.101,"climb":-0.057,"eps":0.86,"epc":41.86,"ecefx":-1808240.36,"ecefy":-4501036.84,"ecefz":4129610.52,"ecefvx":0.09,"ecefvy":-0.02,"ecefvz":-0.07,"ecefpAcc":12.11,"ecefvAcc":0.86,"eph":8.259,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:40.000Z","leapseconds":18,"ept":0.005,"lat":40.599341400,"lon":-111.887233800,"alt":1353.421,"epx":12.712,"epy":19.020,"epv":8.850,"track":149.2327,"speed":0.100,"climb":-0.057,"eps":-0.04,"epc":41.86,"ecefx":-1808240.36,"ecefy":-4501036.84,"ecefz":4129610.52,"ecefvx":0.09,"ecefvy":-0.02,"ecefvz":-0.07,"ecefpAcc":12.11,"ecefvAcc":0.86,"eph":8.260,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:41.000Z","leapseconds":18,"ept":0.005,"lat":40.599340695,"lon":-111.887230748,"alt":1351.525,"epx":12.712,"epy":19.020,"epv":8.850,"track":108.3470,"speed":0.307,"climb":-0.010,"eps":0.77,"epc":41.86,"ecefx":-1808240.12,"ecefy":-4501036.94,"ecefz":4129610.42,"ecefvx":0.25,"ecefvy":-0.16,"ecefvz":-0.08,"ecefpAcc":12.16,"ecefvAcc":0.77,"eph":8.260,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:41.000Z","leapseconds":18,"ept":0.005,"lat":40.599340700,"lon":-111.887230700,"alt":1353.357,"epx":12.712,"epy":19.020,"epv":8.919,"track":149.2327,"speed":0.308,"climb":-0.010,"eps":-0.10,"epc":41.86,"ecefx":-1808240.12,"ecefy":-4501036.94,"ecefz":4129610.42,"ecefvx":0.25,"ecefvy":-0.16,"ecefvz":-0.08,"ecefpAcc":12.16,"ecefvAcc":0.77,"eph":8.270,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:41.000Z","leapseconds":18,"ept":0.005,"lat":40.599340700,"lon":-111.887230700,"alt":1353.357,"epx":12.712,"epy":19.020,"epv":8.919,"track":149.2327,"speed":0.308,"climb":-0.010,"eps":-0.10,"epc":41.86,"ecefx":-1808240.12,"ecefy":-4501036.94,"ecefz":4129610.42,"ecefvx":0.25,"ecefvy":-0.16,"ecefvz":-0.08,"ecefpAcc":12.16,"ecefvAcc":0.77,"eph":8.270,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:42.000Z","leapseconds":18,"ept":0.005,"lat":40.599340758,"lon":-111.887228685,"alt":1351.609,"epx":12.712,"epy":19.020,"epv":8.919,"track":112.5599,"speed":0.237,"climb":0.076,"eps":0.65,"epc":41.86,"ecefx":-1808239.98,"ecefy":-4501037.06,"ecefz":4129610.48,"ecefvx":0.16,"ecefvy":-0.19,"ecefvz":-0.02,"ecefpAcc":12.15,"ecefvAcc":0.65,"eph":8.270,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:42.000Z","leapseconds":18,"ept":0.005,"lat":40.599340800,"lon":-111.887228600,"alt":1353.439,"epx":12.712,"epy":19.020,"epv":8.917,"track":149.2327,"speed":0.237,"climb":0.076,"eps":-0.09,"epc":41.86,"ecefx":-1808239.98,"ecefy":-4501037.06,"ecefz":4129610.48,"ecefvx":0.16,"ecefvy":-0.19,"ecefvz":-0.02,"ecefpAcc":12.15,"ecefvAcc":0.65,"eph":8.250,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:43.000Z","leapseconds":18,"ept":0.005,"lat":40.599341244,"lon":-111.887227302,"alt":1351.792,"epx":12.712,"epy":19.020,"epv":8.917,"track":315.1995,"speed":0.084,"climb":0.069,"eps":0.82,"epc":41.86,"ecefx":-1808239.91,"ecefy":-4501037.20,"ecefz":4129610.64,"ecefvx":-0.06,"ecefvy":0.01,"ecefvz":0.09,"ecefpAcc":12.13,"ecefvAcc":0.82,"eph":8.250,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:43.000Z","leapseconds":18,"ept":0.005,"lat":40.599341300,"lon":-111.887227300,"alt":1353.626,"epx":12.712,"epy":19.020,"epv":8.910,"track":149.2327,"speed":0.085,"climb":0.069,"eps":0.06,"epc":41.86,"ecefx":-1808239.91,"ecefy":-4501037.20,"ecefz":4129610.64,"ecefvx":-0.06,"ecefvy":0.01,"ecefvz":0.09,"ecefpAcc":12.13,"ecefvAcc":0.82,"eph":8.230,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:43.000Z","leapseconds":18,"ept":0.005,"lat":40.599341300,"lon":-111.887227300,"alt":1353.626,"epx":12.712,"epy":19.020,"epv":8.910,"track":149.2327,"speed":0.085,"climb":0.069,"eps":0.06,"epc":41.86,"ecefx":-1808239.91,"ecefy":-4501037.20,"ecefz":4129610.64,"ecefvx":-0.06,"ecefvy":0.01,"ecefvz":0.09,"ecefpAcc":12.13,"ecefvAcc":0.82,"eph":8.230,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:44.000Z","leapseconds":18,"ept":0.005,"lat":40.599343038,"lon":-111.887230044,"alt":1351.943,"epx":12.712,"epy":19.020,"epv":8.910,"track":307.0338,"speed":0.333,"climb":0.043,"eps":0.83,"epc":41.86,"ecefx":-1808240.12,"ecefy":-4501037.10,"ecefz":4129610.89,"ecefvx":-0.21,"ecefvy":0.19,"ecefvz":0.18,"ecefpAcc":12.13,"ecefvAcc":0.83,"eph":8.230,"sep":40.850}
{"class":"TPV","device":"/dev/ttyUSB0","status":2,"mode":3,"time":"2020-02-26T07:40:44.000Z","leapseconds":18,"ept":0.005,"lat":40.599343100,"lon":-111.887230100,"alt":1353.773,"epx":12.712,"epy":19.020,"epv":8.905,"track":149.2327,"speed":0.338,"climb":0.043,"eps":0.20,"epc":41.86,"ecefx":-1808240.12,"ecefy":-4501037.10,"ecefz":4129610.89,"ecefvx":-0.21,"ecefvy":0.19,"ecefvz":0.18,"ecefpAcc":12.13,"ecefvAcc":0.83,"eph":8.230,"sep":40.850}

Here are the lat, long and altitude fields extracted for easy plotting:

40.599341900 -111.887235800 1353.380
40.599341398 -111.887233819 1351.587
40.599341400 -111.887233800 1353.421
40.599340695 -111.887230748 1351.525
40.599340700 -111.887230700 1353.357
40.599340700 -111.887230700 1353.357
40.599340758 -111.887228685 1351.609
40.599340800 -111.887228600 1353.439
40.599341244 -111.887227302 1351.792
40.599341300 -111.887227300 1353.626
40.599341300 -111.887227300 1353.626
40.599343038 -111.887230044 1351.943
40.599343100 -111.887230100 1353.773

If you plot each of the three as a time series using a line plot, you will see that lat and long update "stepwise" -- the value will stay almost (but not exactly) the same between two or three updates, then will step up or down, then will go back to staying almost (but not exactly the same) for the next update. Meanwhile the altitude is oscillating up and down by a couple of meters every two or three updates.

I'm not the only one who ran into this sort of issue on the u-blox M8, although the proposed client patch does not address the underlying issue in gpsd:

https://github.com/swri-robotics/gps_umd/issues/14
https://github.com/ros-drivers/gps_umd/issues/3

Anyone have any ideas about this?

Here are two logs, one captured before gpsd had a chance to initialize the u-blox M8, and one captured after gpsd had run and initialized the device:

https://pastebin.com/ksneY0yz

reply via email to

[Prev in Thread] Current Thread [Next in Thread]