maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   [Announce] modRana: a flexible GPS navigation system (https://talk.maemo.org/showthread.php?t=58861)

MartinK 2011-01-12 00:27

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by Mentalist Traceur (Post 916535)
Any chance of MoNav Daemon integration? (I WILL read this thread all the way through when I have time, but I don't now.)

...

So, HAS MoNav routing been implemented already, and I just missed it, or is it planned and likely to actually come soon?

Thanks for finding monav, I was not yet aware it has been already packaged for Maemo! :) It also looks like that since mid-December, the routino offline routing software is available as a package.

I have made a quick investigation and the situation looks like this:

Monav
  • is described as extremely fast on its website
  • can do driving directions
  • looks like it can do address2address routing from off-line data - but I haven't yet tested this
  • according to this tutorial, Marble can download preprocessed per-country routing data - but even after looking at Marble source code, I haven't been able to find where this data actually comes from :D
  • the OSM data -> routing data processing is desribed as "time consuming and requires larger amounts of memory" + runs only on x86-64
  • looks like there is no command line interface or python bindings for Monav and although it can run as a (Qt)service, the only interface is from C++ (this is how Monav is used by Marble)

Routino
  • has a nice command line interface
  • both routing and data processing tools are available for Maemo - so complete onboard-processing would be doable - but probably only usable for smaller areas - larger areas would probably need to be preprocessed on a PC
  • generates driving directions in many languages + supplies routing metadata (so it would be possible to display a turn-type dependent icon like most car nav systems do)
  • supports quite a few modes of travel (car, motorcycle, foot, horse, bicycle, large lorry,...) and other parameters, like shortest vs quickest route, weight and speed restrictions, etc.
  • looks like it can only do point to point routing at the moment
  • can directly generate GPX tracklogs that include turn descriptions

So unless someone can has hack a Python-accessible interface for Monav & find where its routing data data is hidden, I think I'll integrate Routino :)

Quote:

Originally Posted by woody14619 (Post 917104)
@eachna: There's a tool that changes the default action for several things contact based, including what launches when you press a contact web-link and/or address. I'm not sure modRana can take a target address via command line. If it could, and maybe do a route-from-here-to-poi, that would make it nicely integrated.

It currently only takes a device identifier, but something like a --route_from_address or --add_as_poi parameters could certainly be added.

Quote:

Originally Posted by woody14619 (Post 917104)
Martin: Maybe a pop-up with a drop-down list of the possible categories would be more user-friendly and/or more in-line with expectations for input? It's a small UI change, but I think it will make POI more intuitive for most newcomers.

Yeah, it's currently really quite confusing. I'll trigger a notification after entering the select-category menu - but the pop-up category selector might be a better midterm solution - more consistent with the pop-up entry boxes.

BTW, any word on progress with the tile server ? :)

earthwings 2011-01-12 19:46

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by MartinK (Post 918293)
Monav
  • is described as extremely fast on its website

It is. You won't notice much of a difference between routino and monav for short routes (<5 km). For larger ones, routino becomes unusable quickly (it will take minutes to calculate a route), while monav is able to calculate large routes (several hundred kilometers) in seconds, often less.

Quote:

Originally Posted by MartinK (Post 918293)
Monav
  • can do driving directions
  • looks like it can do address2address routing from off-line data - but I haven't yet tested this

Only the client application does that currently, not the routing-daemon of monav (MoNavD). Marble implements driving directions itself, feel free to take our code (we ship a simple command line application to calculate driving directions and the code is easily taken apart from the rest).

Note that monav-routing-daemon only contains the routing daemon, not the client application of monav. Nevertheless please vote for it to make sure it finds its way into extras :)

Quote:

Originally Posted by MartinK (Post 918293)
Monav
  • according to this tutorial, Marble can download preprocessed per-country routing data - but even after looking at Marble source code, I haven't been able to find where this data actually comes from :D

That's because it's not directly in the code. Marble downloads http://edu.kde.org/marble/newstuff/maps-monav.xml which contains the URLs to the country maps. They're hosted on my private server. Feel free to use these maps for testing purposes, but don't publish any code downloading them without my permission. I have to pay for the bandwidth ;-)

Quote:

Originally Posted by MartinK (Post 918293)
Monav
  • the OSM data -> routing data processing is desribed as "time consuming and requires larger amounts of memory" + runs only on x86-64

Yes, though preprocessing the country maps used in Marble (300 countries, 10 GB data) took not more than 12 hours. I think it's faster than routino even.

Quote:

Originally Posted by MartinK (Post 918293)
Monav
  • looks like there is no command line interface or python bindings for Monav and although it can run as a (Qt)service, the only interface is from C++ (this is how Monav is used by Marble)

There is a test application in monav which is quite easily extended to output (nearly) the same information as routino. That's how I integrated it in Marble originally before the Qt service approach existed.

Quote:

Originally Posted by MartinK (Post 918293)
Routino
  • has a nice command line interface
  • both routing and data processing tools are available for Maemo - so complete onboard-processing would be doable - but probably only usable for smaller areas - larger areas would probably need to be preprocessed on a PC

Yes, I don't think you want your phone to do preprocessing.

Quote:

Originally Posted by MartinK (Post 918293)
Routino
  • generates driving directions in many languages + supplies routing metadata (so it would be possible to display a turn-type dependent icon like most car nav systems do)
  • supports quite a few modes of travel (car, motorcycle, foot, horse, bicycle, large lorry,...) and other parameters, like shortest vs quickest route, weight and speed restrictions, etc.
  • looks like it can only do point to point routing at the moment
  • can directly generate GPX tracklogs that include turn descriptions

You can feed it multiple points, just increase the --lonN and --latN parameters, e.g.
Code:

--lon0=.. --lat0=.. --lon1=.. --lat1=.. --lon2=.. --lat2=..
for three points.

MartinK 2011-01-15 17:30

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by earthwings (Post 918956)
Only the client application does that currently, not the routing-daemon of monav (MoNavD).

Well, if the addresses are already present in the processed data (or the preprocessor can generate such files) it really should be also accessible from the daemon. Maybe submitting a feature request for this is in order ?
There is already a ticket regarding the routing daemon/CLI interface.

Quote:

Originally Posted by earthwings (Post 918956)
That's because it's not directly in the code. Marble downloads http://edu.kde.org/marble/newstuff/maps-monav.xml which contains the URLs to the country maps. They're hosted on my private server. Feel free to use these maps for testing purposes, but don't publish any code downloading them without my permission. I have to pay for the bandwidth ;-)

Thanks!
Modrana.org is already hosted by the nice people from our faculties NLP laboratory, I'd guess It might be possible to also host the map data there - provided I ask them nicely enough :)

Quote:

Originally Posted by earthwings (Post 918956)
There is a test application in monav which is quite easily extended to output (nearly) the same information as routino. That's how I integrated it in Marble originally before the Qt service approach existed.

Nice, I'll look at it. :)

Quote:

Originally Posted by earthwings (Post 918956)
Yes, I don't think you want your phone to do preprocessing.

ModRana also works on Linux PCs, so a nice unified GUI for the monav/routino/etc preprocessor would be usable there.
Something like:
  • select an area from map or a bounding box around some point/city/etc.
  • download OSM data for the area
  • process the data to a selected output format
  • enable easy and efficient updating of already created routing data
Once you have the data processed, it can be moved to your mobile device...maybe even automatically ? Well, I might be thinking a little too far ahead :D

MartinK 2011-01-16 21:15

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by zimon (Post 918289)
That "log a track" was under the track which came from route (current route). When the route-track was followed, the log-track was only visible on some corners where there was GPS accuracy errors.Toggle would be nice to have the current log-track top most or bottom most.

BTW, there are currently 3 features that draw tracks on the map:
  • navigation - draws current route in blue color with yellow dots that represent turns
  • logging trace thats is drawn while logging is on (can be turned off) - light blue by default, but can be changed
  • drawing of saved tracklogs - multiple tracklogs can be displayed simultaneously, colors are chosen sequentially from a distinct colors set


Quote:

Originally Posted by zimon (Post 918289)
I don't know if it is just me, but whole tracklogs thing seems rather messy UI-wise. There is "tracklogs" and "log a track" buttons in main menu, and behind "log a track" there is "tools" which then has "all tracks visible", "visible toggle", "set active" and so on - but what track for example is concerned with that "set active", the last one which was selected from "tracklogs" menu or the current one which is logging?

"set active" is used for setting an active track for the various info widgets (time to start/destination, route profile, etc.) and will be going away once the widgets are clickable.
But yeah, it is still messy - for example the "all tracks visible" should be really somewhere else, not in the tools submenu of every tracklog. I am thinking about sticking a "dashboard" menu behind the current tracklog button, with buttons like:
  • list tracklogs - the current tracklog list
  • list visible tracklogs - show a list of tracklogs that are currently being drawn on the map
  • show all on map - will show up only if some tracklogs are not visible
  • clear all from map - will show up only if some tracklogs are visible

Quote:

Originally Posted by zimon (Post 918289)
What about this reroute "button" occupying so big area of the map when routing is active? Is rerouting needed so often it needs to be there, or could it be behind the [route info]-button, so one could more easily pan the map and not accidentally hit reroute?

It has been done like the to enable easy rerouting while driving - after missing an exit, etc. I'm going to implement automatic rerouting (just checking if you are inside a corridor around the route and trigger rerouting if you get outside of it) but I'll add a "reroute by taping the nav. info box" toggle in the meantime. :)

Quote:

Originally Posted by zimon (Post 918289)
One more thing which I now remembered:
When log-tracking is turned on, but GPS-position hasn't not yet got, it draws the track log starting from the center of the country you are in. eCoach had this same problem few versions back but they fixed it.

I think I can check the accuracy of the GPS lock so this should be quite easy to fix.

Quote:

Originally Posted by zimon (Post 918289)
Any info or idea (yet) what these GLIB warnings are, which are flooding dmesg?

Code:

Jan 12 02:21:11 Nokia-N900 python2.5[16693]: GLIB WARNING ** default - Trying to register gtype 'LocationGPSDeviceSet' as enum when in fact it is of type 'GFlags'
Jan 12 02:21:29 Nokia-N900 last message repeated 15 times
Jan 12 02:21:30 Nokia-N900 [1325]: GLIB DEBUG default - location-sb: fix status changed: 3->2
Jan 12 02:21:31 Nokia-N900 [1325]: GLIB DEBUG default - location-sb: fix status changed: 2->3
Jan 12 02:21:32 Nokia-N900 python2.5[16693]: GLIB WARNING ** default - Trying to register gtype 'LocationGPSDeviceSet' as enum when in fact it is of type 'GFlags'
Jan 12 02:21:42 Nokia-N900 last message repeated 9 times
Jan 12 02:21:42 Nokia-N900 [1325]: GLIB DEBUG default - location-sb: fix status changed: 3->2
Jan 12 02:21:43 Nokia-N900 [1325]: GLIB DEBUG default - location-sb: fix status changed: 2->3
Jan 12 02:21:44 Nokia-N900 python2.5[16693]: GLIB WARNING ** default - Trying to register gtype 'LocationGPSDeviceSet' as enum when in fact it is of type 'GFlags'


Id guess that this might be caused by the Python bindings for liblocation - modRana uses the liblocation bindings basically per the maemo wiki example.
You might want to try check if AGTL also causes this - it is IMHO written in Python so it is probably also using the same bindings for liblocation as modRana and might thus trigger the same issue.

I haven't been able to reproduce it myself yet - but I have only tested indoors so far - not outside with real GPS lock.

freebsd 2011-01-17 09:58

Re: [Announce] modRana: a flexible GPS navigation system
 
Hello,

My modRana installation is giving this error to me

Code:

Traceback (most recent call last):
  File "modrana.py", line 471, in <module>
    program = GuiBase(device)
  File "modrana.py", line 409, in __init__
    self.mapWidget.loadModules('modules') # name of the folder with modules
  File "modrana.py", line 109, in loadModules
    a = __import__(deviceModuleName[0:-3])
  File "/opt/modrana/modules/device_modules/device_n900.py", line 24, in <module>
    import dbus.glib
ImportError: No module named dbus.glib

can somebody indicate what libs are missing ?
this is just stderr output, stdout was too much to paste here, and most likely reduntant, but you can ask

MartinK 2011-01-17 10:28

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by freebsd (Post 922149)
Hello,

My modRana installation is giving this error to me

Code:

Traceback (most recent call last):
  File "modrana.py", line 471, in <module>
    program = GuiBase(device)
  File "modrana.py", line 409, in __init__
    self.mapWidget.loadModules('modules') # name of the folder with modules
  File "modrana.py", line 109, in loadModules
    a = __import__(deviceModuleName[0:-3])
  File "/opt/modrana/modules/device_modules/device_n900.py", line 24, in <module>
    import dbus.glib
ImportError: No module named dbus.glib

can somebody indicate what libs are missing ?
this is just stderr output, stdout was too much to paste here, and most likely reduntant, but you can ask

Try to install the python-dbus package. Looks like I forgot to include it as a dependency... :)

freebsd 2011-01-17 17:33

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by MartinK (Post 922167)
Try to install the python-dbus package. Looks like I forgot to include it as a dependency... :)

that solved the issue indeed, thanks

slender 2011-01-17 17:42

Re: [Announce] modRana: a flexible GPS navigation system
 
Is it possible to make modrana check _before_ main prog is run that if internet connection and gps is up if not then let user select internet connection and start gps and agps or just skip. And then start main app.

woody14619 2011-01-18 20:39

Re: [Announce] modRana: a flexible GPS navigation system
 
Quote:

Originally Posted by MartinK (Post 918293)
BTW, any word on progress with the tile server ? :)

Over the break my home furnace imploded and I spent much of the time dealing with getting that installed. I did get some progress done, but not enough to even get a running sample on my machine. :( But am still working on it!

kattyjames111 2011-01-19 10:42

Re: [Announce] modRana: a flexible GPS navigation system
 
That is a cool feature. I just love it as i have been looking for it from so long. Great work done. Really appreciative.


All times are GMT. The time now is 04:19.

vBulletin® Version 3.8.8