OpenOrienteering / mapper

OpenOrienteering Mapper is a software for creating maps for the orienteering sport.
https://www.openorienteering.org/apps/mapper/
GNU General Public License v3.0
394 stars 105 forks source link

Xiaomi Mi9: not work compass indicator and floating GPS position #1338

Open Dostapo opened 4 years ago

Dostapo commented 4 years ago
  1. In Mapper version dev v20190820.3 compass indicator not stable and always moves by cycle with jerks. In stable version 0.8.4 it is all right.

  2. Smartphone Xiaomi Mi9 has very nice dowble GPS (6-8 meters accuracy), but when OOM work, after 10-20 minutes currennt position float from true GPS position up to 20-30 meters. When I toggle off and immediately toggle on "Location display toggle" button, GPS position set correctly (jump to true position). It may be, for solving this problem, periodically (1 time per minute) do refresh GPS position by toggle off/on algorithms? This problem in both versions: stable version 0.8.4 and dev v20190820.3

Operating System: Android 9 Smartphone: Xiaomi Mi9

dg0yt commented 4 years ago
  1. In Mapper version dev v20190820.3 compass indicator not stable and always moves by cycle with jerks. In stable version 0.8.4 it is all right.

I would be curious to know if this happens also with dev v20190608.1. This release included the latest sensors backend from Qt, but did not yet target Android API level 28. (Please remember to backup map projects from Android/data/org.openorienteering.mapper.dev in case of an uninstall or downgrade.)

  1. Smartphone Xiaomi Mi9 has very nice dowble GPS (6-8 meters accuracy), but when OOM work, after 10-20 minutes currennt position float from true GPS position up to 20-30 meters. When I toggle off and immediately toggle on "Location display toggle" button, GPS position set correctly (jump to true position). It may be, for solving this problem, periodically (1 time per minute) do refresh GPS position by toggle off/on algorithms? This problem in both versions: stable version 0.8.4 and dev v20190820.3

Does this also occur with other apps? Is this a real offset, or just a lack of frequent position updates? Does switching device location settings between "High accuracy" and "Device only" make a difference?

Operating System: Android 9 Smartphone: Xiaomi Mi9

Dostapo commented 4 years ago
  1. I was wrong about the first problem. When I reinstall stable version 0.8.4 OOM, the compass also stopped working :( It stably shows an arbitrary wrong direction. I don't know, maybe it's a smartphone firmware problem.

  2. I try to test GPS long time in other apps. While I've only used the OOM. This is a real shift with a track's drawing. When I toggle off/on "Location display toggle" button, cursor GPS really jump to the new true position. After some time (10-20 min) this effect is repeated stably.

In our area outside the city mobile networks are not available, so I only use GPS mode "Device only", therefore mode "High accuracy" doesn't make sense.

dg0yt commented 4 years ago

I was wrong about the first problem. When I reinstall stable version 0.8.4 OOM, the compass also stopped working :( It stably shows an arbitrary wrong direction. I don't know, maybe it's a smartphone firmware problem.

I cannot see why reinstalling 0.8.4 should have any effect on its behaviour.

I try to test GPS long time in other apps. While I've only used the OOM. This is a real shift with a track's drawing. When I toggle off/on "Location display toggle" button, cursor GPS really jump to the new true position. After some time (10-20 min) this effect is repeated stably.

Is the recorded GPX data shifted, too? GH-1325 reports a GPS offset, too, but I couldn't really reproduce this so far.

jmacura commented 4 years ago

Very interesting. I guess problem No. 2 is related to the change I have mentioned in the #1035 (https://medium.com/@sjbarbeau/dual-frequency-gnss-on-android-devices-152b8826e1c), but it could be the bug in the firmware as well...

Dostapo commented 4 years ago

Yes, the recorded GPX data shifted. That's possible, GH-1325 reports a GPS offset describes a similar problem. A part of my map with track: GPS-issue

dg0yt commented 4 years ago

Yes, the recorded GPX data shifted.

The received location data (latitude, longitude) goes to the GPX file without any modifications. If it is wrong in the GPX file, we must be receiving wrong data from Android.

yevhenmazur commented 4 years ago

I also have Xiaomi Mi9 and can confirm the compass issue, but not the floating GPS. I use 'High accuracy' option in Location settings.

lpechacek commented 4 years ago

Smartphone Xiaomi Mi9 has very nice dual-frequency GPS (6-8 meters accuracy), but when OOM work, after 10-20 minutes current position float from true GPS position up to 20-30 meters. When I toggle off and immediately toggle on "Location display toggle" button, GPS position set correctly (jump to true position).

I'd suspect some power saving features to kick in. Smartphones tend to save energy and I wouldn't be surprised if the GNSS receiver cut on accuracy when reception conditions are good. For example my phone (Google Pixel 2) tracks all four GNSS constellations but after it realizes that the accuracy is within about 10 range, it restricts itself to tracking only GPS+GLONASS. At this point I'd recommend:

1) Test with Sean Barbeau's GPSTest first. The application shows which constellations are being tracked, what are the receiver's accuracy estimates and the latest version also provides accuracy test function. The test would provide answer whether the observed drift is specific for OO Mapper or whether it's generated by the device.

2) As an experiment the new Android 9 developer option "Force GNSS measurements" can be tried out. The option description says "Track all GNSS constellations and frequencies with no duty cycling" which might be equivalent to switching tracking off and on regularly. However, there is little information about that this option does, therefore this point is merely a wild suggestion. :)

HTH

Dostapo commented 4 years ago

Test with Sean Barbeau's GPSTest first.

  1. I always start work with "GPSTest" program. This is a good and useful program and It shows good results on my phone. MI 9 realy use L1 and L5 bands and has accuracy of 6-10 meters in difficult conditions.

As an experiment the new Android 9 developer option "Force GNSS measurements"

  1. I did not find a clear description of this function, but in my next fieldwork I try it. Thanks for idea!
Dostapo commented 4 years ago
  1. At the last weekend tested the work of GPS and observed the steady offset of GPS positions from the real after 5-7 minutes, and the further, the more :( The only solution was after 3-5 minutes to turn off the GPS-button in OOM and turn it on after a few seconds. Tested with a nice satellite template. I am saddened by this fact.

  2. "As an experiment the new Android 9 developer option "Force GNSS measurements" - no effect.

dg0yt commented 4 years ago

What I would like to understand:

lpechacek commented 4 years ago

At the last weekend tested the work of GPS and observed the steady offset of GPS positions from the real after 5-7 minutes, and the further, the more :( The only solution was after 3-5 minutes to turn off the GPS-button in OOM and turn it on after a few seconds. Tested with a nice satellite template. I am saddened by this fact.

Sadly, your repeated test did not take Mapper out of the equation. My proposal is to test receiver accuracy using the method described at https://medium.com/@sjbarbeau/measuring-gnss-accuracy-on-android-devices-6824492a1389, section A better way to measure accuracy. The outcome would at least partly answer Kai's second question in previous comment.

Dostapo commented 4 years ago
  • It happens on: Xiaomi Mi9, or all Android 9 devices?

I have only one Android 9 device - Xiaomi Mi9 and have not friends with Android 9 device for testing.

  • It happens with: Mapper (dev), or all apps?

I have long tested only OOM on Mi9, in the city and in the forest. In the city on open places GNSS long time work fine. Between buildings the situation is expected to worsen.

In the forest the situation is different: during deterioration of reception conditions, stably, after 3 minutes, starts the floating GPS-position. That is corrected by off / on the navigation button. Example: Issue2

But, in General, the accuracy is very good. If not for the need to constantly turn off /on the navigation button in the app ...

On next weekend I plan to test the GPS in apps "AlpenQuest" and "GPS Logger". After this experiment I will write the results.

My proposal is to test receiver accuracy using the method described at https://medium.com/@sjbarbeau/measuring-gnss-accuracy-on-android-devices-6824492a1389

I will also conduct this testing.

Dostapo commented 4 years ago

Last weekend I tested the work of three programs: Geotracker, Alpenquest and OOM in 2 modes. Real track is marked with a trail symbol. Testing took place in a sparse forest.

Issue3-geotracker
Issue3-alpenquest
Issue3-oom_std Issue3-oom_off_on

The last picture shows that OOM in off/on GPS mode (~40 sec on / 5 sec. off) works almost perfectly! I think it's specific firmware: when the app releases the GPS service, it gives a more accurate result the next time when access it from app. Therefore, the use of apps like "GpsLocker" leads to poor results because it keeps the GPS service in device running all the time (I've also tested this kind of apps collaboration).

If such a regime to implement in software, that would be great for my device, because the real accuracy in the forest is reached 4-7 meters, which is great!

dg0yt commented 4 years ago

Can you share GPX files? From the tracks' segment lengths, it seems to me that Mapper records positions much more frequent than the other apps. Maybe there is a "penalty" for that, and we need to explicitly set the update frequency.

Dostapo commented 4 years ago

Archive with 4 full tracks: https://drive.google.com/file/d/1pUhUh8VE2WkTD2-qtT_E57V9G9azCW8Z/view?usp=sharing

dg0yt commented 4 years ago

I'm curious if the issue is still present? There seems to be no other device that shows this behaviour.

Dostapo commented 4 years ago

Yes, compass indicator not work and floating GPS position. But I adapt: not use compass in phone and switch frequently GPS while drawing maps. My impression of Xiaomi Mi9: good smartphone, but bad for OOM :(19.04.2020, 07:47, "Kai Pastor" notifications@github.com: I'm curious if the issue is still present? There seems to be no other device that shows this behaviour.

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.