Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve arrival mathematics #3

Closed
marikavertzonis opened this issue Sep 21, 2016 · 12 comments
Closed

Improve arrival mathematics #3

marikavertzonis opened this issue Sep 21, 2016 · 12 comments

Comments

@marikavertzonis
Copy link
Collaborator

marikavertzonis commented Sep 21, 2016

Predictive filtering algorithms should be used to improve navigation and arrival mathematics. Consider Kalman filtering to improve arrival https://en.wikipedia.org/wiki/Kalman_filter

@marikavertzonis
Copy link
Collaborator Author

Before introducing complex calculations, basic arrival logic has been implemented. In version 1.0.85 ithe following logic is used, depending on which is reached first:

  • when the user gets with 20m of the target eg: this is most apparent if the device has gone to sleep and you wake the device, if it wakes and finds itself within 20m of the target, it will 'arrive', or,
  • relative to speed of travel using this equation: 3 * (currentSpeedFromDevice / 1.4). This assumes an average walking speed of 1.4 m/s and therefor if walking, you will see the arrival notification when you are 3 sec away from the target.

@marikavertzonis marikavertzonis changed the title Improve navigation and arrival mathematics Improve arrival mathematics Sep 29, 2016
@defiantgoat defiantgoat modified the milestone: Release 1.1 Jan 19, 2017
@marikavertzonis
Copy link
Collaborator Author

Now that the location accuracy is shown (as of 1.1) it seems odd that i 'arrive' when i get within 20m of the location, even when my location is being reported with an accuracy of 5m.
If horizontal accuracy is available, we should refine our arrival logic to take it into account. Something like:

Show as 'arrived' IF (2 x Horizontal Accuracy) < 20m.

2 x horizontal accuracy would allow for the worst case scenario that you are furthest away from the destination, within the horizontal accuracy. See below diagram for explanation
horizontalaccuracy

@defiantgoat
Copy link
Contributor

See #59. Arrival logic has been disabled for version 2.0. However, this can be revisited and finessed if arrival logic is re-enabled in the app.

@dominikargast
Copy link
Collaborator

Rev e10da17 should have been assigned to #31

dominikargast added a commit that referenced this issue May 31, 2018
dominikargast added a commit that referenced this issue May 31, 2018
@dominikargast
Copy link
Collaborator

@marikavertzonis I've reinstated arrival logic based on GPS accuracy. The current scheme is very simple and most likely needs to be improved. Feedback from real world usage is required.

Test with build 3.0.27

@IsmaelInRedlands
Copy link
Collaborator

IsmaelInRedlands commented May 31, 2018

Tested 3.0.27 today on iOS while riding a bicycle.
Two issues:

  • App believes destination has been reached while still away from it (too early).
  • App cleans up the destination set on arrival.

The video below shows the test. My destination was my red car. The app thought I had arrived when I was still about 100 meters away from the car.
Tested with built-in location (no GNSS receiver) but with a reported accuracy of around 6 meters

http://www.youtube.com/watch?v=2EfoFCXjN9k

@IsmaelInRedlands
Copy link
Collaborator

IsmaelInRedlands commented May 31, 2018

Two new tests on 3.0.27

While driving:

  • App thought I was at destination around 500m before I arrived.

While walking:

Some thoughts:

  • From the tests above it looks like the speed matters: Walking is reasonable, Bicyle arrives 100m before destination and by car 500m before destination.
  • I wonder why we consider speed at all. Even while driving my car I eventually reduce speed to walking speed when I am about to arrive to destination.
  • It feels to me like even in the walking test the app anticipated arrival way too early.
  • I will test next arrival with GNSS receiver.

dominikargast added a commit that referenced this issue Jun 1, 2018
dominikargast added a commit that referenced this issue Jun 1, 2018
@dominikargast
Copy link
Collaborator

@marikavertzonis @IsmaelInRedlands Arrival logic has been improved. Please test with build 3.0.28

@marikavertzonis
Copy link
Collaborator Author

Testing with 3.0.28 on ios (with external gps) and 3.0.29 on android (with internal position source). At walking pace, i 'Arrive' at a distance that corresponds with my accuracy (very nice). More testing tbc.

@IsmaelInRedlands
Copy link
Collaborator

3.0.28 Built-in GPS on iPhone. 2 Tests with car. Looking good.

@dominikargast
Copy link
Collaborator

@marikavertzonis @IsmaelInRedlands I've added some tweaks to the arrival logic:

  • A status message should appear if you reach your destination within the next 30 seconds at the current speed.
  • If you've arrived and start to move away from your destination again, guidance will resume.
  • If the compass is in use, a compass icon will appear in the top left corner (see Inform the user that the compass is being used #90).

Please test with build 3.0.31 and let me know if these features are useful/work as intended.

@dominikargast dominikargast removed their assignment Jun 6, 2018
@marikavertzonis
Copy link
Collaborator Author

Testing with 3.0.31 on iphone 8 and pixel 2 at walking and driving pace. the arrival details really pertain to walking pace. this is good. if you're driving, you stop when approaching the site and get out and walk the final part. If there are specific driving arrival requirements, these should be separated into a new issue (or perhaps added to #82)

In this build,

  • see 'approaching' message that corresponds to the expected arrival location
  • arrival symbol appears once you are within the reported accuracy of the device
  • if you then leave the arrival location, you get the 'approaching' messages again (but with increasing time and distance - as expected)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants