L’app Transit suit votre position dans le métro sans GPS
(blog.transitapp.com)- Dans les tunnels, même lorsque GPS, réseau cellulaire et Wi‑Fi sont coupés, un trajet GO de Transit peut désormais continuer à afficher une position estimée, le nombre de stations restantes et l’ETA
- Le principe consiste à utiliser les signaux de vibration de l’accéléromètre du téléphone pour déterminer si l’utilisateur se trouve dans un train en mouvement, puis à combiner cela avec la dernière position confirmée et les horaires du train
- L’équipe de Transit a collecté des données étiquetées manuellement sur des centaines de trajets et dans plusieurs villes ; dans le métro de New York City, elle a parcouru toutes les lignes en enregistrant les vibrations des trains, escalators et ascenseurs
- Le modèle final de prédiction de position, The Mixer, estime correctement la position actuelle avec une probabilité de 90 % et, lors des premiers tests, a permis de détecter 1,5 million de stations souterraines sur environ 400 000 trajets
- Les deux modèles sont compressés en petits fichiers et exécutés sur le téléphone, ce qui permet un comptage des stations hors ligne ; les données de vibration ne sont pas envoyées aux serveurs de Transit
Pourquoi il est difficile de se localiser sous terre
- Dans les tunnels de métro, de metro ou d’U-Bahn, le service cellulaire, le Wi‑Fi et le GPS ne fonctionnent souvent pas de manière fiable
- Jusqu’ici, pour savoir à quelle station on s’arrêtait ou consulter son ETA sous terre, il fallait s’en remettre aux panneaux sur les quais, aux annonces en station ou aux écrans numériques à bord
- Plutôt que de construire des satellites GPS capables de traverser le sol, Transit prédit la position d’un train dans un tunnel grâce aux motifs de vibration du téléphone
Les informations affichées dans un trajet GO
- L’utilisateur n’a qu’à lancer un trajet GO dans Transit
- Il peut le faire directement depuis l’écran de détail d’une ligne
- Il peut aussi le lancer depuis un itinéraire planifié
- Même sans connaître les coordonnées GPS, l’app affiche les informations suivantes
- La position estimée sur la carte
- Un compte à rebours du nombre de stations restantes
- Un ETA mis à jour
Étape 1 : classifier les déplacements à bord du train
- Quand on entre dans un tunnel où le GPS fonctionne mal, il faut d’abord déterminer si l’utilisateur se trouve dans un train en mouvement
- Stephen, employé de Transit, a enregistré les données de l’accéléromètre de son téléphone pendant ses trajets vers le bureau de Montréal, puis a étiqueté chaque segment du parcours
- Le moment où il commençait à marcher
- Le moment où il descendait les escaliers
- Le moment où il attendait sur le quai
- Le moment où le train démarrait et s’arrêtait
- Les données d’accélération sont organisées selon une approche inspirée de la transformée de Fourier, puis converties en données fréquentielles
- Dans un train en mouvement, le téléphone vibrait à environ 5 Hz, contre environ 2 Hz pendant la marche
- À cause du bruit aléatoire et des fréquences harmoniques, les simples motifs ne suffisaient pas : il fallait un modèle de machine learning capable de classifier les types de mouvement, ainsi qu’un grand volume de données d’entraînement
Étape 2 : collecter les données de référence
- L’équipe de Transit a étiqueté des données issues de centaines de trajets et de dizaines de villes afin de créer un modèle généralisé capable d’identifier un « train en mouvement », quel que soit le type de train ou de voie
- Étienne et Elijah ont collecté des données de vibration dans le métro de New York City, le réseau souterrain le plus populaire dans l’app
- Munis d’un iPhone, d’un Android et d’une MetroCard, ils ont pris les bus et trains de la MTA pendant une semaine en étiquetant chaque étape de leurs trajets
- L’objectif était de trouver des indices permettant de distinguer les vibrations à bord d’un train des autres vibrations présentes dans les stations
- Ils sont montés et descendus par escalators et ascenseurs, en annotant jusqu’aux moments d’arrêt
- Du Bronx à Brighton Beach, en passant par le Manhattan Bridge, le Williamsburg Bridge et le Canarsie Tunnel, ils ont emprunté toutes les lignes du métro new-yorkais
Étape 3 : entraîner le classificateur de mouvement
- À partir des données de capteurs nettoyées et traitées, le motion classifier a été entraîné à distinguer « train en mouvement » et « pas un train en mouvement »
- Le modèle reçoit des données de capteurs non étiquetées et estime si le téléphone se trouve dans un train en mouvement, un train à l’arrêt, en marche à pied ou dans un escalator
- Transit compare cette estimation à la ground truth produite par annotation manuelle, puis ajuste la logique pour améliorer la précision des prédictions
- Après ces ajustements, le modèle est devenu capable de déterminer si l’utilisateur se trouve réellement dans un train en mouvement, ou si seul son téléphone est en train de vibrer
Étape 4 : le modèle de prédiction de position The Mixer
- Une fois le mouvement détecté, il faut prédire où se trouve précisément le train de l’utilisateur
- Le dernier modèle, The Mixer, calcule la position actuelle en pondérant les éléments suivants
- La prédiction du type de mouvement, c’est-à-dire si l’utilisateur se trouve ou non dans un train en mouvement
- La dernière position confirmée de l’utilisateur
- Le caractère récent ou ancien de cette dernière position confirmée
- Les horaires du train
- The Mixer prédit correctement la position actuelle avec une probabilité de 90 %
- Dans l’exemple d’un trajet en RER à Paris, des mises à jour de position intermittentes arrivent dans les sections souterraines via le GPS et le scan Bluetooth/Wi‑Fi ; ces mises à jour corrigent les prédictions de position sous terre dans les zones sans connexion
- Lorsque l’utilisateur remonte à la surface et entre dans une zone couverte par le service cellulaire, l’app réutilise la position GPS standard
Fonctionnement hors ligne et confidentialité
- Une fois la prédiction de position possible, l’ETA de l’utilisateur peut être mis à jour même sous terre
- Le comptage des stations fonctionne sans dépendre d’un GPS instable ni de la consultation des écrans à bord
- Le comptage des stations fonctionne entièrement hors ligne
- Le motion classifier et The Mixer sont compressés en petits fichiers et exécutés sur le téléphone
- Les données de vibration ne sont pas envoyées aux serveurs de Transit
- Pas de suivi
- Pas de cookies
- Les données de vibration restent sur l’appareil de l’utilisateur
Mode d’emploi et ampleur des premiers tests
- L’utilisateur cherche son métro, ouvre Transit et lance son trajet avec GO pour voir les stations défiler une à une dans le compte à rebours
- Pendant les premiers tests, Transit a pris en charge la détection d’environ 1,5 million de stations souterraines sur près de 400 000 trajets
- La navigation étape par étape de GO était déjà utilisée par des millions de voyageurs en surface dans plus de 600 villes
- Depuis le lancement de GO Bike le mois dernier, les cyclistes utilisent aussi GO
- Grâce à cette fonctionnalité, les usagers des trains souterrains peuvent davantage faire confiance à GO, même dans les zones où la connexion est mauvaise
- L’app est disponible sur la page de téléchargement de Transit
1 commentaires
Avis sur Hacker News
Il y a une dizaine d’années, j’avais lu un billet de blog de la société française snips : l’app détectait, grâce au capteur de pression atmosphérique, le moment où le train entrait en station ou en sortait.
Quand un train entre dans un tunnel entre deux stations, ou en sort, il se produit une hausse/baisse brutale de la pression atmosphérique, ce qui donnerait un signal assez net.
Retrouvé : https://medium.com/snips-ai/underground-location-tracking-3e...
Ces tubes peuvent détecter une brusque hausse de pression pour savoir si une porte est en train de coincer la main de quelqu’un, et servent aussi à réduire l’effet de « bang » provoqué par la différence de pression à l’entrée dans un tunnel.
Tous les téléphones n’en ont pas, et la qualité des mesures varie beaucoup selon les modèles. Par exemple, sur certains appareils, il suffisait de tenir le téléphone comme si on le serrait pour que les valeurs s’emballent.
Transit n’a pas non plus l’autorisation de lire le capteur de pression, et pour notre usage il était difficile de justifier la demande de cette permission.
Mais il semble que la précision dépendait du fait que le courant du réseau électrique soit continu ou alternatif, et même de l’âge des voitures.
Le bâtiment était terminé mais pas exploité, si bien que pendant près de dix ans, la compagnie ferroviaire régionale a dû faire circuler des trains à l’intérieur et à l’extérieur du bâtiment.
Vraiment génial.
Je travaille justement en ce moment sur un projet d’enregistrement sonore du London Underground qui passe sous moi.
On entend très distinctement la Northern Line passer sous nos pieds, et elle est à moins de 30 m de profondeur.
Je suis devenu obsédé par l’idée de capter le son des trains qui passent avec des enregistrements basse fréquence de haute qualité. Je ne sais pas pourquoi, mais ça ne me sort pas de la tête.
Par exemple, il y a deux tunnels, un vers le nord et un vers le sud, et je me demande s’il serait possible de distinguer leurs signatures sonores respectives en les corrélant aux données réelles de TfL.
Plus intéressant encore : pourrait-on « attraper » les véhicules de maintenance qui circulent sous nous après la fin du service ?
Je ne sais pas trop quoi faire de plus avec ce projet, mais je suis fasciné par l’idée de capturer le son de cette présence presque évanescente, comme une créature à demi réelle, qui se déplace sous moi.
Je m’intéresse aux vibrations haute fréquence extrêmement faibles émises par des objets du quotidien au repos, donc mon objectif est probablement presque inverse. Je n’ai pas encore beaucoup avancé pour trouver des capteurs.
J’aimerais avoir un vibromètre laser Doppler, mais c’est cher.
Je vais essayer de retrouver qui c’était.
[0] https://lamont.columbia.edu/
Je ne sais pas si c’était un reste de son venant d’une issue de secours sur le trottoir, ou si le sol résonnait comme une cloche.
Je voulais aussi prendre un instant pour dire à quel point j’ai aimé le ton conversationnel de l’article.
Même quand il entrait dans des explications assez détaillées, comme les graphiques de fréquences, c’était agréable à lire. J’ai lu la version anglaise.
La personne qui l’a écrit a vraiment fait un excellent travail.
Transit App est une petite pépite.
« Classificateur », c’est presque attendrissant. C’est frappant qu’ils aient écrit tout l’article sans jamais employer le mot IA.
Certaines villes installent des balises BLE dans les tunnels pour diffuser la position, puis utilisent le signal de la balise la plus forte pour déterminer l’emplacement actuel.
Cette approche a l’air intéressante, puisqu’elle permet de faire ça sans installer de matériel.
Mais pour être juste, ces écrans se trompent ridiculement souvent et font défiler des messages inutiles du type « n’oubliez pas vos bagages », si bien qu’il faut attendre environ 20 secondes pour voir l’information voulue. Dans un train, c’est terriblement mauvais.
On pourrait probablement mieux suivre la progression entre deux stations en détectant la signature d’accélération de chaque tronçon de voie.
Surtout si la voie n’est pas parfaitement droite et plate ; ça ressemble aux premiers systèmes de navigation automobile avant le GPS. À l’époque, ils utilisaient la navigation à l’estime et corrigeaient la dérive en faisant correspondre la forme du trajet mesuré aux données cartographiques.
Une méthode plus fiable pourrait être d’utiliser l’accéléromètre pour identifier les caractéristiques de la voie : pente, virage, irrégularités, ou une combinaison de tout cela.
Le son dans les virages, les changements d’ambiance aux jonctions de tunnels, etc., pourraient aussi servir. L’accélération intégrée donne la vitesse du train, donc elle est utile avec d’autres entrées.
Collecter des signatures serait génial, mais ce serait un travail énorme pour couvrir largement les villes et les téléphones. Des entreprises comme Google ou Apple ont peut-être les données et les moyens, mais une petite entreprise a peu de chances d’y parvenir.
Il y a un bourdonnement très distinctif, lié à la vitesse de rotation des roues. J’avais autrefois bricolé un compteur de vitesse rudimentaire avec une SFT, de la détection de pics et du filtrage de Kalman.
En tant qu’utilisateur de Transit, merci d’avoir créé une appli aussi géniale ; ça a toujours été l’un des plus gros irritants
Et pas seulement avec Transit : c’était pareil avec n’importe quelle appli prenant en charge la navigation en transports en commun, Apple Maps compris
Je me doutais bien que quelqu’un travaillait dessus, mais lire le niveau de réflexion et de détail mis dans la conception fait vraiment du bien. C’était un effort énorme
L’équipe de Transit peut être fière d’avoir résolu l’une de ces petites grandes frustrations des applis de transport en commun
Vraiment excellent. Comme je prends souvent le BART, je me suis toujours dit qu’il serait amusant de créer un classificateur de position basé sur les grincements différents selon l’endroit du tunnel
Mais utiliser les données de l’accéléromètre semble beaucoup plus pratique
On pourrait enregistrer le bruit du train qui roule pour déterminer le mouvement, mais les utilisateurs soupçonneraient l’appli de les écouter
En plus du machine learning, est-ce que ça ne serait pas beaucoup mieux avec de la navigation à l’estime à partir de l’accéléromètre et du gyroscope ?
Dans un train en mouvement, on contraindrait le déplacement à suivre le tracé connu du tunnel et, quand le départ du train est détecté, on contraindrait l’utilisateur à se trouver dans le rectangle d’arrêt du train
Ou bien, même avec ces informations supplémentaires, le matériel des smartphones est-il trop imprécis ?
Le gyroscope seul fonctionne très bien sur de courts trajets, mais devient quasiment inutile dans les longues courbes douces. Les gyroscopes MEMS dérivent pas mal en quelques dizaines de secondes
Si l’on peut faire de la fusion de capteurs avec le magnétomètre et l’accéléromètre, le problème est moindre, mais dans un train rapide, les accélérations, les freinages et les forces en courbe rendent difficile la détection du « bas ». Je ne sais pas non plus à quel point une boussole fonctionne bien dans un tunnel de métro
Ma seule expérience est avec une appli d’« horizon artificiel » dans un avion, et là, l’accéléromètre était totalement inutile pour trouver le « bas ». Une seule manœuvre à plusieurs G et l’horizon ne savait plus du tout quel était l’angle de tangage. Avec un environnement magnétique bruité et le GPS coupé, on ne sait pas non plus dans quelle direction on va
Cela dit, la navigation à l’estime est généralement très imprécise ; donc, si l’on reconnaît que la personne est montée dans un train, on peut savoir précisément où se trouve le train et améliorer fortement la précision
Si l’utilisateur reste suffisamment immobile debout ou assis à chaque arrêt du train, on pourrait corriger le biais de l’IMU, mais la navigation à l’estime dériverait quand même beaucoup, à mon avis
Il suffit d’estimer la vitesse actuelle par rapport à l’historique et de prédire l’heure d’arrivée. Mieux vaut donc se concentrer sur la vitesse plutôt que sur l’accélération
J’ai essayé cette fonction la semaine dernière dans le métro de New York. Je ne savais pas que c’était une nouveauté
L’idée est excellente, mais chez moi ça n’a pas fonctionné : l’appli indiquait que le train avait plusieurs stations de retard par rapport à sa position réelle