openbikesensor / OpenBikeSensor-Scripts

GNU Lesser General Public License v3.0
12 stars 7 forks source link

Auto-detect breaks/pauses #9

Open opatut opened 3 years ago

opatut commented 3 years ago

Sometimes I leave my device recording while I go into a store or similar.

It would be nice if we had some way of detecting this, because the GPS jitters around in the place I stopped (due to inaccuracy), and that accumulates a lot of incorrect mileage on the track that I don't like in the statistics.

Probably some moving window distance traveled/time formula could detect this, find the center of the points inside that timeframe, and clip everything from the entry to the exit of a radius around that point. This can become incredibly smart, but somethin stupid might do the trick for starters.

FlorusCiphersmith commented 3 years ago

Does anyone (@opatut) have a sample file which is affected by the GPS noise during a pause?

While testing a first implementation, I noticed that the files I used seem not to be affected. Indeed, there seems to be already a filter in action (on the GPS device?) which does the job well at the first glance - see the example below.

Or do we need additional filtering?

Date Time Millis Comment Latitude Longitude Altitude Course Speed HDOP Satellites
01.02.2021 07:40:55 5424030   48,678123 8,983156 452,5 292,01 10,59 1,09 7
01.02.2021 07:40:56 5425039   48,678143 8,983127 452,8 309,68 9,76 1,09 7
01.02.2021 07:40:57 5426045   48,678164 8,983111 452,8 326,37 9,41 1,09 7
01.02.2021 07:40:58 5427033   48,678187 8,983074 452,7 320,46 10,56 1,09 7
01.02.2021 07:40:59 5428041   48,678203 8,983031 452,7 308,73 11,13 1,09 7
01.02.2021 07:41:00 5429028   48,678203 8,983009 452,8 300,71 8,57 1,09 7
01.02.2021 07:41:01 5430038   48,6782 8,983009 452,6 300,71 2,85 1,09 7
01.02.2021 07:41:02 5431025   48,67821 8,982994 452,9 300,71 1,24 1,09 7
01.02.2021 07:41:03 5432087   48,678233 8,982957 454,7 300,71 0,3 1,09 7
01.02.2021 07:41:04 5433042   48,678241 8,98295 454,7 300,71 0,28 1,09 7
01.02.2021 07:41:05 5434040   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:06 5435024   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:07 5436030   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:08 5437036   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:09 5438028   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:10 5439038   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:11 5440024   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:12 5441032   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:13 5442039   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:14 5443024   48,678241 8,98295 454,7 300,71 0 1,09 7
01.02.2021 07:41:15 5444011   48,678241 8,98295 454,7 300,71 0 1,09 7
amandel commented 3 years ago

Since a while we tell the GPS Module that it should use the pedestrian profile for plausibility checks and filtering of movements. Likely this is what you observe.

From the spec: Pedestrian Applications with low acceleration and speed, e.g. how a pedestrian would move. Low acceleration assumed. MAX Altitude [m]: 9000, MAX Velocity [m/s]: 30, MAX Vertical Velocity [m/s]: 20, Sanity check type: Altitude and Velocity, Max Position Deviation: Small