Closed emiltin closed 9 years ago
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.
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?
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.
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].
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.
thanks for the osmbonuspack hint
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
One thing that is missing for online turn-by-turn navigation is to specify in which direction to start.
Don't we already tell the direction in which start (e.g. "head south onto B29") ?
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.
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?
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?
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.
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).
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.
@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
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.
that's true... ;)
All these methods usually don't scale.
@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.
@hkrishna have you considered opening tickets here at the bug tracker for all the osrm related issues you have identified?
@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?
@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" :(
Thank you for the link. Sorry, our app works only in Denmark.
closing as this was more of a discussion.
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?