Un gps libre avec Navit
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
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.
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 :
cp -r /etc/navit/ ~/.navit/
Nous allons maintenant éditer le fichier XML est ajouté la carte dans la liste des cartes disponibles :
<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.)
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.
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.
$ crontab -e
Dans l’éditeur de texte qui s’ouvre, on va entrer notre tâche planifiée :
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).