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

turn-by-turn navigation? #440

Closed
emiltin opened this issue Sep 26, 2012 · 25 comments
Closed

turn-by-turn navigation? #440

emiltin opened this issue Sep 26, 2012 · 25 comments

Comments

@emiltin
Copy link
Contributor

emiltin commented Sep 26, 2012

how suited would OSRM be for implementing turn-by-turn GPS navigation?

online mode:
the mobile device would connect to a server when recomputing routes, and pull maps via a tile server.

offline mode:
osrm would run on the mobile device, and the map would also be stored on the device in some form.

thoughts?

@UmpPCPL
Copy link

UmpPCPL commented Sep 28, 2012

Online:
It is not very well suited now. Quality of "directions" is very basic.
Dennis goal was to have working routing first.
This goal is now achieved in my opinion.
I dont know if Dennis wants to work on "turn-by-turn" now
It is not one day quick fix.

Example of route. We all will agree that it is not what
average user would need.
http://map.project-osrm.org/1q5

Offline:
I think engine is too big to fit mobile device.

@emiltin
Copy link
Contributor Author

emiltin commented Sep 28, 2012

yes, quality of instructions can use more work, especially if used for turn-by-turn.

for devices, you mean the binary is too big, or it uses too many resources?

@UmpPCPL
Copy link

UmpPCPL commented Sep 28, 2012

I thought about memory footprint of osrm-routed
and size of data for it.
OSRM map data cannot (?) be used for map display.
It doubles storage requirement for mobile device.

@DennisOSRM
Copy link
Collaborator

The quality of routing instructions is on the list of to-dos with high priority. I believe to have an elegant solution laid out in mind, but it is still a Small Matter Of Programming[tm].

@MKergall
Copy link

MKergall commented Oct 1, 2012

For Online mode, there is osmbonuspack: an android library using osmdroid for displaying OSM map tiles, and using OSRM to get routes and turn-by-turn info.
The demo app. (osmbonuspackdemo) is not a GPS navigator (route recomputing is done on request, not automatically), but quite close.

@emiltin
Copy link
Contributor Author

emiltin commented Oct 1, 2012

thanks for the osmbonuspack hint

@UmpPCPL
Copy link

UmpPCPL commented Oct 3, 2012

Hi
As first step I would like to suggest to remove instructions when
only name of road is changed and there is no intersection.
http://osrm.at/1rU
Michal

@DennisOSRM
Copy link
Collaborator

One thing that is missing for online turn-by-turn navigation is to specify in which direction to start.

@DennisSchiefer
Copy link

Don't we already tell the direction in which start (e.g. "head south onto B29") ?

@tyrasd
Copy link
Contributor

tyrasd commented Oct 8, 2012

I think the other Dennis meant to force the direction of the route to start with: If you are already driving northwards on B29 and set a destination which is behind you, the router should not simply say "head south on B29", but at least "make a U-turn on B29 if possible, then head south" or, better calculate a better (hopefully u-turn free) route, incorporating the start direction.

Currently this behavior could be simulated by placing a via point just next to the start point in the appropriate direction.

@mjoris
Copy link

mjoris commented Oct 16, 2012

I don't think there is a one-size-fits-all approach for routing instructions.

(1) When to generate an instruction
For example, a road name change currently is an important incentive to generate an instruction. Others might prefer an instruction each time the path passes a junction to which a higher-class road is connected. (This supposes an ordering of highway types.)
(2) How to represent the instruction semantically
(3) Landmarks
It would be interesting to integrate landmarks into instructions, like 'At the big white statue, turn left.'
See for instance http://people.eng.unimelb.edu.au/winter/pubs/winter09routing.pdf
This would also enable route planning in cycle node networks, which have physical numbered signs. http://wiki.openstreetmap.org/wiki/Cycle_routes#Tagging_Cycle_Node_Networks

Maybe this is off-topic, but what would you think about scriptable instructions?

@emiltin
Copy link
Contributor Author

emiltin commented Oct 16, 2012

nice input @mjoris. interesting idea with landmarks, thanks for the link. do you think there are any useable data about landmarks already in osm?

bike routes often follow paths and trails without names. landmark might make sense here, but they would often have to be very local indeed. turn right after the bench, etc?

@emiltin
Copy link
Contributor Author

emiltin commented Oct 16, 2012

i think a scripting solution for generation instruction would make sense, as long as performance isn't affected too much. i assume it would have to run for each query, whereas the current lua stuff is only run during preprocessing.

@tyrasd
Copy link
Contributor

tyrasd commented Oct 16, 2012

Generally, its hard to tell what map features are significant enough to be a landmark (at least for car routing)... On the other hand, if one would do outdoor (hiking, mountain-biking, ...) routing, a large variety of things are very useful landmarks: guideposts, cairns, peaks, passes, lakes, streams/rivers, trees, buildings/shelters, ... This would also be a very context sensitive task to solve (e.g. a single house in a forest vs. a house in a city).

@mjoris
Copy link

mjoris commented Oct 16, 2012

thanks @emiltin

I was looking for landmarks for car routing and it isn't straightforward at all.
http://www.geosensor.net/papers/duckham10.JLBS.pdf
http://agile.gis.geo.tu-dresden.de/web/Conference_Paper/CDs/AGILE%202012/proceedings/posters/Poster_Nuhn_Generation_of_landmarks_from_3D_city_models_and_OSM_data_2012.pdf
The second authors match a 3D model with OSM ;-).

but i like the outdoor idea by @tyrasd . Some POI types might be "always usable" like guideposts for hiking.

@mjoris
Copy link

mjoris commented Oct 16, 2012

@emiltin i think that all the instructions are prepared during the contraction-phase. However there is a performance issue: if you generate too many instructions, the RAM required by osrm-routed increases drastically

@tyrasd
Copy link
Contributor

tyrasd commented Oct 16, 2012

Instructions wouldn't necessarily have to be loaded into the RAM: They could be served from hard disc/SSD, asynchronously after the route summary and geometry.

@mjoris
Copy link

mjoris commented Oct 16, 2012

that's true... ;)

@DennisOSRM
Copy link
Collaborator

All these methods usually don't scale.

@hkrishna
Copy link

@emiltin we have a working map app that implements turn by turn using OSRM (the android app connects to our osrm server when recomputing routes, and pull maps via our vector tile server). We've been road testing it over the last few weeks and its not too bad (hasn't made me drive off a bridge haha). But yeah, the quality of directions could use some improvement. I've been playing with the profiles trying to get the names/ref/highway information to a point where the text to speech doesn't blow up. In addition to that, we have a number of other routing related bugs which translates to osrm feature requests :)

I'd be happy to send you an APK if you wanna have a look at the app.

@DennisOSRM
Copy link
Collaborator

@hkrishna have you considered opening tickets here at the bug tracker for all the osrm related issues you have identified?

@emiltin
Copy link
Contributor Author

emiltin commented Sep 17, 2014

@hkrishna Thank you. We now also have apps for iOS and Android that uses OSRM. They're both open source, see https://github.com/ibikecph/ibikecph-android and https://github.com/ibikecph/ibikecph-app. Is your app open sourced?

@hkrishna
Copy link

@DennisOSRM I'll open tickets for issues we've identified and are currently not present in the bug tracker.

@emiltin Yes, our app is open sourced https://github.com/mapzen/mapzen-android-demo. It started as an opensciencemap's vtm fork. The tile service and geocoder it uses is also open. I downloaded your app from the app store but was unable to get it to route - kept saying "GPS Location not found" :(

@emiltin
Copy link
Contributor Author

emiltin commented Sep 17, 2014

Thank you for the link. Sorry, our app works only in Denmark.

@emiltin
Copy link
Contributor Author

emiltin commented Aug 7, 2015

closing as this was more of a discussion.

@emiltin emiltin closed this as completed Aug 7, 2015
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

8 participants