Navigateur pour piétons

image



Nous construisons des sentiers de randonnée le long des sentiers, à travers des portes et avec la possibilité de prendre un raccourci à travers la cour depuis avril 2017. Plus récemment, nous avons ajouté un navigateur à part entière pour les piétons à 2GIS - avec un mode virage par virage et la voix des points importants sur l'itinéraire.



Sous la coupe se trouve une histoire sur la façon dont nous voulions résoudre ce problème rapidement, en nous appuyant sur l'expertise en navigation pour les voitures, et en conséquence, nous avons proposé de nouveaux scénarios, nous nous sommes battus pour la taille des bases et avons appris à donner les instructions correctes. .



De nouveaux scénarios



Nous avions prévu de régler le problème «dans quelques semaines» en modifiant légèrement la logique des manœuvres automobiles. Pour les premiers tests, nous avons réalisé un montage avec le doublage des manœuvres au pied, "enroulé" sur les algorithmes de navigation automobile. Le résultat était incroyable.



J'ai tracé un itinéraire depuis chez moi et j'ai mis mon téléphone dans ma poche. Concentré uniquement sur le guidage vocal. Quand j'ai réalisé que je commençais à errer inutilement et que les invites vocales ne faisaient que m'éloigner du point final, j'ai décidé de reconstruire l'itinéraire. Lorsque le problème s'est répété pour la huitième fois, il est devenu clair que nous avions une énorme couche de travail à faire.



Les instructions vocales sont basées sur le scénario de leur utilisation. Le modèle de scénario standard indique comment exactement un piéton s'approche d'une intersection, à quelle vitesse il se déplace et où il ira plus tard. Les instructions automobiles n'ont pas fonctionné, les conditions de leur reproduction étant trop différentes de celles des piétons. C'est banal - la vitesse d'un piéton est plusieurs fois inférieure, ce qui affecte le moment de la voix de la manœuvre.



Dans le même temps, il est important de prendre en compte les nuances: passages pour piétons, feux de signalisation, portails, escaliers, passages souterrains et souterrains, car les informations sur ces objets aident un piéton à se repérer plus rapidement.



Nous avons rassemblé et décrit de nouveaux scénarios pratiques et formulé de nouvelles règles pour qu'à l'approche d'un passage souterrain nous disions «Descendez dans le passage souterrain», et pas seulement «Traversez la route».



Ancien algorithme



La qualité de l'itinéraire dépend directement de l'exhaustivité des données utilisées pour construire l'itinéraire: connaissance de base du graphe routier, de l'emplacement des bords et de leurs attributs supplémentaires.



L'exhaustivité des données se fait en deux étapes: d'abord, nous collectons des informations, puis nous les améliorons à l'aide d'algorithmes de pré-calcul.



Sur la base des informations de base, les algorithmes peuvent enrichir les connaissances sur le graphique avec des attributs supplémentaires, par exemple des instructions de voiture.



Ainsi, pour les itinéraires en voiture, nous générons à l'avance toutes les options possibles pour traverser une intersection, et pour chaque option, nous calculons l'instruction requise et y ajoutons des attributs. Cette approche présente un certain nombre d'avantages:



Vérifiabilité



Même au stade du pré-calcul, vous pouvez implémenter divers algorithmes pour vérifier les cas courants. Les instructions correctement calculées et vérifiées ne changeront plus. Cela permet de vérifier l'exactitude des instructions reçues avant de livrer les données et les algorithmes à l'utilisateur.



Mise à jour des données



Les données de l'application 2GIS sont mises à jour séparément de l'application elle-même. Et nous les publions plus souvent que les modifications des algorithmes de nos bibliothèques pour téléphones mobiles - cela permet de corriger ou d'ajouter des instructions sans attendre les versions de l'application.



Efficacité de l'algorithme de pré-génération



L'algorithme pour émettre des instructions le long de la route se résume en fait à comparer les instructions déjà dans la base de données pour tous les bords qui composent la route et à les transmettre à l'utilisateur. En utilisant l'algorithme, c'est beaucoup plus facile et plus rapide que d'analyser les situations possibles au moment de l'exécution et de générer des instructions à partir de celles-ci.



Mais il y a deux gros inconvénients: cette approche vous oblige à allouer des ressources supplémentaires pour stocker de nouvelles informations et crée une dépendance à la mise à jour des paquets de données. Si les données ne sont pas mises à jour ou ne sont pas là, l'utilisateur n'a pas accès à la fonctionnalité même s'il dispose d'un algorithme.



Nouvel algorithme



Même au stade de la création du premier prototype, nous avons vu qu'en raison des instructions aux piétons, la taille de la base locale utilisée pour trouver des itinéraires augmentait. En moyenne, le paquet de routage a augmenté de 20% - c'est un montant inacceptable, car cela entraînera une augmentation de la taille des bases de données hors ligne sur les téléphones de notre public.



Par rapport aux intersections de voitures, les passages pour piétons offrent beaucoup plus d'options pour le passage. Une intersection standard a 56 options de marche, en fonction de la position des points de départ (8 côtés de l'intersection) et de fin (7 côtés). Et dans chaque version - jusqu'à trois manœuvres piétonnes.



image



Et les intersections piétonnes elles-mêmes, en raison de toute la variété des chemins piétonniers et de leurs intersections dans le graphique, sont bien plus nombreuses que celles des automobiles. Compte tenu du fait que nous n'avons remarqué une croissance qu'au stade initial de l'élaboration des instructions et qu'il y avait encore de nombreux cas non résolus, la tendance était effrayante.



Pour cette raison, nous avons abandonné l'idée de pré-calculer les consignes aux piétons et déplacé la logique de leur génération vers le runtime. S'il y a Internet, les instructions sont calculées sur nos serveurs, et s'il n'y a pas d'Internet ou si la réponse du serveur n'a pas respecté le délai d'expiration, alors sur l'application mobile. En fait, nous avons réécrit l'algorithme à partir de zéro.



Nous sommes devenus moins dépendants de la version des données. Et en combinaison avec le fait que la plupart des scripts sont construits via notre serveur en ligne, il est devenu possible d'affiner rapidement l'algorithme pour tous les utilisateurs à la fois.



Nouvelles instructions



Je répète que les allées piétonnières traversant les intersections sont beaucoup plus variables que celles des automobiles.



image

Chaque intersection est l'occasion de changer de tracé.



Au stade de l'élaboration des instructions, nous avons été confrontés au problème de leur présentation compacte, sans ambiguïté et opportune. L'astérisque à la tâche a été ajouté par le fait que le téléphone peut être dans la poche et que l'utilisateur ne voit pas la ligne de guidage et les flèches. Vous ne pouvez vous concentrer que sur le guidage vocal. De plus, un piéton, contrairement à une voiture, peut facilement faire demi-tour à presque n'importe quel angle dans une zone très étroite. Et il est important d'expliquer à une personne aussi précisément que possible comment et où exactement traverser la route, tourner ou descendre.



image



Au début, j'ai fait le tour et j'ai noté les erreurs. Parfois, je passais les intersections plusieurs dizaines de fois pour comprendre quelles pouvaient être les options. Puis ils ont fait un émulateur, sur lequel ils ont lancé un piéton virtuel, et ont écouté ce qui lui était exprimé et à quel moment.



Nous avons vérifié la voix des chemins forestiers, des chemins de cour, des passages à travers de larges intersections, des passages pour piétons non réglementés et réglementés avec des feux de signalisation.



L'expérience pratique recueillie a été analysée, discutée, divisée en groupes d'améliorations, unies par des solutions communes. Pour chacun d'eux, des scénarios algorithmiques ont été inventés.



image



À ce stade, on s'est rendu compte que les instructions à un seul composant, telles que les instructions automobiles, ne suffisaient pas - dans les itinéraires de marche, deux instructions séparées étaient si proches qu'en raison d'un GPS inexact, elles pouvaient sembler hors du temps et dérouter une personne.



Nous avons fait des instructions vocales composites pour nous orienter avant la transition, dans quelle direction aller après celle-ci.



Du point de vue de l'utilisateur, une telle instruction n'est pas différente de celle habituelle pour l'automobile. Ainsi, la phrase "Tourner à gauche, puis tourner à droite après 100 mètres" pour une voiture est composée de deux instructions à un composant

«Tourner à gauche» + «après 100 mètres, tourner à droite». Et pour les piétons, la phrase pour traverser la route «Tourner à gauche au passage pour piétons puis tourner à droite» est tout à fait une instruction.



En fait, de telles instructions sont des paquets d'instructions de virage élémentaires, mais sous la forme d'une seule instruction orale. Cette approche a permis d'augmenter considérablement le contenu de l'information et la commodité de la maintenance en arrière-plan. Surtout lors de la traversée d'intersections non triviales.



image

Au passage pour piétons le plus proche, tournez à gauche,

et immédiatement après le passage à niveau, tournez à droite





Quoi d'autre



Géo-positionnement «Tuning»



Les itinéraires piétonniers comprennent souvent des passages relativement peu profonds - les bords du graphique. Et dans des conditions urbaines, lorsque le signal est instable et / ou masqué par des gratte-ciel, des erreurs de positionnement peuvent interférer avec le calcul correct des instructions et le guidage le long de l'itinéraire. Afin de ne pas jeter accidentellement le point actuel de l'autre côté de la rue, nous avons légèrement "réglé" l'algorithme - nous prenons en compte les nuances de l'erreur et ajustons l'algorithme pour tracer la route jusqu'à 30 mètres.



Vibro



Le guidage vocal est la solution lorsque le téléphone est dans votre poche. Mais afin d'éviter la situation où la voix ne sera pas entendue dans une ville bruyante, nous avons ajouté une vibration, qui est déclenchée avec la voix agissant avant la manœuvre souhaitée. Le modèle de vibration lui-même était différent de celui habituel lors de la communication dans un messager.



Qu'est-il arrivé



En conséquence, la première version publique du navigateur pour piétons nous a pris environ six mois. Il est désormais disponible en version 2GIS pour iOS et Android.



Nous avons fait un excellent travail, mais nous sommes nous-mêmes bien conscients que nous avons raté des options délicates. Envoyez via l'application mobile les cas que nous avons montrés et exprimés de manière incorrecte - chacun sera pris en compte et pris en compte dans l'algorithme.



All Articles