summaryrefslogtreecommitdiff
path: root/content/Informatique/2012-03-26-navit.rst
blob: c5d0d6d447853ddebc0fca395919fe8314c13252 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
.. -*- mode: rst -*-
.. -*- coding: utf-8 -*-

Un gps libre avec Navit
#######################

:date: 2012-03-26
:tags: Libre, DIY
:summary: |summary1| |summary2|
:logo: /images/navit.png

.. default-role:: literal

Depuis un peu plus d'un an maintenant, j'ai choisi d'utiliser Navit comme
logiciel de navigation. Dans ce billet, je propose de faire un petit retour
d'expérience sur ce logiciel et la manière de l'utiliser pour calculer les
trajets à l'aide d'un GPS.

Présentation
============

|summary1|

.. |summary1| replace::
    Navit est un logiciel de navigation, ce que l'on appelle souvent un
    « GPS ». Le logiciel fonctionne en mode déconnecté, c'est-à-dire qu'il a
    besoin de lire les cartes en local, mais ne nécessite aucune connexion
    réseau lors de la navigation. C'est un avantage qui lui permet de
    fonctionner sur des netbook sans clef 3G.

|summary2|

.. |summary2| replace::
    Et c'est là tout l'avantage par rapport à une solution de navigation
    intégrée : il permet de transformer n'importe quel netbook (voire
    smartphone) en une solution de navigation GPS gratuitement ! Par rapport
    aux GPS que l'on rencontre souvent en voiture, le coût est ridicule !

Fonctionnement
==============

À partir d'une connexion GPS intégrée (comme sur les smartphones) ou externe
(par USB), Navit va mettre à jour en temps réel l'affichage de la carte et le
calcul du trajet. La connexion gps est réalisée avec gpsd, capable de
réceptionner les données depuis la plupart des récepteurs gps. Je n'ai eu aucun
problème pour réaliser la connexion entre navit et gpsd, la carte commençant à
se déplacer toute seule une fois les leds du GPS indiquant qu'il s'était
synchronisé.

Navit n'intègre aucune carte : par contre l'application a la possibilité
d'utiliser les cartes dans les formats suivants :

* garmin (pas testé)
* reiserplan
* openstreetmap_ (voir plus bas)

Une caractéristique de navit est de ne pas présenter d'interface par défaut :
tout passe par des modules que l'on vient rajouter dans l'interface et qui
s'afficheront par-dessus la carte. Par exemple :

* Le nom de la rue sur laquelle on se trouve
* L'heure d'arrivée
* La vitesse
* La distance avant le prochain changement de route
* Une alerte quand on dépasse la vitesse autorisée
* etc.

Des configurations déjà prêtes sont disponibles sur le wiki et peuvent être
téléchargées. Cela permet d'adapter l'affichage en fonction du support sur
lequel l'application est lancée : sur un smartphone on privilégiera un
affichage en vertical avec moins de modules par rapport à un ordinateur.

Configuration
=============

Navit se base sur gpsd pour récupérer les données en provenance du récepteur.
Je ne rentre pas ici dans l'installation et la configuration de gpsd, et vous
renvoie vers la documentation de votre distribution pour le configurer.

.. Note::

    Il n'est pas nécessaire de disposer d'un récepteur GPS pour utiliser Navit.
    C'est alors à l'utilisateur de déplacer la carte pour suivre son trajet,
    mais en dehors de ce point, l'application se comportera de la même manière.

Nous allons ensuite télécharger notre première carte, en passant par le `Navit
planet extractor`_, qui propose de télécharger son jeu de carte sur internet :


.. Note::

    Notez l'url, nous allons la réutiliser plus tard !

La configuration de navit est disponible dans le répertoire /etc/navit/ .
Seulement, pour plus de commodité, nous allons la copier dans notre répertoire
utilisateur :

.. code-block:: console

    $ cp -r /etc/navit/ ~/.navit/

Nous allons maintenant éditer le fichier XML est ajouté la carte dans la liste
des cartes disponibles :

.. code-block:: xml

    <mapset enabled="yes">
        <map type="binfile" enabled="yes" data="${VOTRE/CHEMIN/VERS/carte.bin}"/>
    </mapset>

Si l'on souhaite intégrer plusieurs cartes, il faut insérer plusieurs fois ce
nœud XML.

Relançons maintenant navit, la carte devrait s'afficher ! (Il se peut que vous
ne voyiez rien car Navit n'est pas forcément positionné chez vous : on va donc
chercher dans les villes une proche de chez nous et choisir de l'afficher sur
la carte.)

.. image:: {filename}../images/Capture-Navit-e1332787251467.png
    :width: 400
    :class: center
    :alt:   menus de navit

On peut déjà commencer à calculer les trajets et essayer différents habillages.
Sur le wiki vous pouvez télécharger des thèmes déjà préparés qu'il suffit
d'installer.

Limitations
===========

Même si le logiciel est utilisable au quotidien, il n'est pas parfait. (Il
s'est cependant grandement amélioré dans ses dernières versions, je recommande
d'utiliser la version 0.5 qui corrige de nombreux soucis dans l'interface et la
consommation mémoire.)

* Une fâcheuse tendance de navit et de ne pas prendre en compte les limites
  géographiques des villes. En conséquence, la sélection de la destination
  à partir de la ville et des noms de rues n'est pas fiable : certaines
  rues n'apparaissent pas alors qu'elles sont enregistrées sur la carte, ou
  (plus grave), peut se tromper de ville. Il m'est déjà arrivé de me rendre
  à destination, dans la bonne rue, mais pas dans la bonne ville !

  J'ai maintenant pris l'habitude de n'entrer les destinations qu'à partir
  de la carte, et non pas à partir de l'index des rues.

* Par rapport aux solutions commerciales, capables d'afficher l'état du
  trafic, Navit est vraiment en retard. On peut résumer en disant qu'il
  s'agit davantage d'une carte interactive qu'une solution de guidage, il
  reste nécessaire de prévoir son trajet avant de partir.

* Un autre regret est de ne pas pouvoir sélectionner des « points de
  passage », pour affiner le trajet. La seule solution est de choisir
  préparer à l'avance dan les favoris les destinations et les faire évoluer
  au fur du trajet.

* Enfin, contrairement aux gps embarqués, on est dépendant de la qualité du
  support : si l'on dispose d'un portable avec écran brillant, on sera
  forcément gêné lors du suivi de la navigation.

.. image:: {filename}../images/Capture-Navit-1-e1332786990864.png
    :width: 400
    :class: center
    :alt: centre de Rennes


OpenstreetMap
=============

Impossible de parler de navit sans aborder openstreetmap ! Pour faire une
analogie, openstreetmap est à la cartographie ce que wikipédia est à
l'encyclopédie : une plateforme donnant à chacun le moyen la possibilité de
contribuer.

La navigation GPS est pour moi l'utilisation la plus pratique de ce service :
d'une part parce que les cartes sont libres, et d'autre part parce que cela
donne envie de contribuer à son tour : en rajoutant les feux aux carrefours,
les parkings, en fonction des différents trajets que l'on réalise; on voit à
l'utilisation les défauts sur les cartes, et une fois de retour chez soi, on
corrige la carte en fonction.

OpenstreetMap change très vite, et les cartes sont mises à jour en continu.
C'est pourquoi je vous propose d'automatiser le téléchargement de vos cartes.
Rien de mieux pour ça qu'une tâche dans un cron !

Vous vous souvenez de l'url que je vous avais demandé de noter dans un coin
tout à l'heure ? C'est maintenant qu'elle va être réutilisée.

.. code-block:: bash

    $ crontab -e

Dans l'éditeur de texte qui s'ouvre, on va entrer notre tâche planifiée :

.. code-block:: bash

    25  3   *   *   1   wget -O ~/sync/.navit/carte.bin ${url} > /dev/null 2>&1

Ainsi, la carte se mettra à jour automatiquement !

J'ai dit tout à l'heure qu'openstreetmap permettait à tout un chacun de
modifier les cartes, cela signifie que, comme wikipédia, la qualité des cartes
est inégale selon les endroits que vous visitez : il n'y a probablement pas de
problème dans une grande ville, mais cela risque d'être plus compliqué pour
retrouver le nom d'une rue dans un hameau ou un petit village. Dans ce cas,
n'hésitez pas à mettre à jour la carte ! (Ça n'est pas l'objet de l'article
ici, mais il existe de nombreux tutoriels pour vous expliquer comment faire.)

Conclusion
==========

J'ai parlé du coût de la solution au début de l'article : il s'agit du coût du
récepteur GPS. On peut en trouver par 30€ sur ebay, ce qui est investissement
suffisant pour se lancer (si l'on compare aux gps tactiles qui sont vendus en
supermarché).

Pour ma part, j'utilise un récepteur `ND100` de globalsat_.

Au final on dispose donc d'une aide à la navigation qui s'avère très pratique,
et assez amusante ! On a l'avantage de disposer de cartes gratuites et mises à
jour en permanence (même si la qualité laisse parfois à désirer), mais aussi de
ne pas dépendre d'un système fermé (il est possible de modifier les cartes à
l'aide de l'éditeur d'OpenstreetMap quand on rencontre des erreurs).

.. _`Navit planet extractor`: http://maps3.navit-project.org/
.. _openstreetmap: http://www.openstreetmap.org/
.. _globalsat: http://www.ebay.com/sch/?_nkw=globalsat%20nd%20100&clk_rvr_id=327330038890