WIP #002 (WORK IN PROGRESS)
How Waze determines turn / keep / exit maneuvers
Gestion des instructions de navigation
Vous trouverez une description sensiblement plus simple de ce sujet dans le Guide des intersections. Des informations complémentaires sur les calculs d'itinéraires sont disponibles dans la rubrique "Manière dont Waze calcule les itinéraires".
Le contenu original de cet article, fourni par le staff de Waze, montrait quelques légères imprécisions et était difficilement compréhensible. Il a été remplacé, en version originale, le 22 juin 2014. Ceci est sa traduction et adaptation à la France.
Définitions
Pour permettre d'expliquer l’algorithme, nous devons nommer chaque segment de route qui est connecté à l'intersection (encore appelée jonction). Ce sont des noms subjectifs relatifs au segment par lequel on arrive sur l'intersection et celui par lequel l'itinéraire calculé par Waze prévoit de nous mener une fois qu'on a atteint cette intersection.
Considérez l'intersection comme étant au centre.
- Sin : Nom du segment par lequel l'itinéraire vous fait arriver sur l'intersection.
- Sout : Nom du segment par lequel l'itinéraire vous emmène une fois que vous aurez dépassé cette intersection. Cela peut être n'importe lequel parmi les autres segments qui sont connectés à cette intersection et qui sont nommé, ci-dessous, S1, S2, S3, S4, etc.
- S1, S2, S3, S4, etc : Nom de chaque segments connectés à cette intersection, (en incluant Sout). Les noms sont donnés consécutivement, S1, S2, … Sn aussi nombreux soient-ils. L'un d'entre eux sera forcément Sout.
- Suite Logique : Un des segments partant de l'intersection sera considéré comme la Suite Logique du segment par lequel on est arrivé sur cette intersection. Il s'agit du segment que Waze considère comme étant le chemin évident pour un conducteur à qui on aurait indiqué de "continuer" sa route sans changer de direction. Ce segment recevra une instruction "Continuer", qui est ignorée par l'application mobile. Les critères permettant à Waze de déterminer la Suite Logique sont expliqués plus bas.
- Routes Principales : fait référence aux 3 types de routes les plus importantes : Freeway , Major Highway et Minor Highway .
- angle d'un segment : C'est l'angle géométrique formé entre ce segment et le segment d'origine Sin. Une route parfaitement droite avec une intersection en son milieu aura un angle de 0°. L'angle augmente au fur et à mesure qu'on s'oriente d'un côté ou de l'autre. Un changement de direction parfait à gauche ou à droite devrait être de 90°. Un demi-tour représenterait 180°.
(un angle inférieur à 45.04° donnera une instruction "Restez à ..." alors qu'un angle supérieur à 45.14° donnera une instruction "Tournez à ...").- En termes techniques: L'angle géométrique formé entre d'une part le segment linéaire situé entre le dernier nœud de géométrie de Sin et le nœud de l'intersection et d'autre part le segment linéaire situé entre le nœud de l'intersection et le premier nœud de géométrie de Sx constitue l'angle complémentaire de l'angle du segment Sx.
Angles | ||
---|---|---|
Angles Standards | Angle de 37° | 90° par les noeuds de géométrie |
- Rond-point normalisé : il s'agit d'un rond-point qui respecte toutes les conditions suivantes:
- il est composé de Quatre (4) nœuds d'intersection ou moins,
- Toutes les sorties (du point de vue de celui qui arrive Sin) forment un angle normalisé.
- un Angle Normalisé fait 0° ou 90° de part et d'autre, ±15°. (Voir les angles des ronds-points pour davantage de détails)
- Rond-point non-normalisé : il s'agit d'un rond-point qui respecte au moins une des conditions suivantes:
- il est composé de Cinq (5) nœuds d'intersection ou plus,
- Au moins une des sorties (du point de vue de celui qui arrive Sin) forme un angle non-normalisé..
- un Angle non-normalisé fait autre chose que 0° ou 90° de part et d'autre, ±15°. (Voir les angles des ronds-points pour davantage de détails)
Suite Logique
Pour déterminer si Sout est dans la continuité 'évidente' de Sin, Waze procède ainsi:
- Si l'angle entre Sin et Sout est inférieur à 45.04°, alors Sout est considéré comme la Suite Logique sauf à ce que l'une des conditions ci-dessous interfère:
- Il y a un autre segment (S1, S2,... Sn) dont l'angle est inférieur à 45.04° et dont le nom et le type de route correspond mieux à Sin que Sout ne le fait. (en d'autre terme, il a le même nom et le même type que Sin tandis que Sout n'a rien de commun; il a le même nom que Sin tandis que Sout a un nom différent; il a le même type que Sin tandis que Sout est d'un type différent). Le nom du segment est plus important que son type.
- Il y a un autre segment (S1, S2,... Sn) dont l'angle est inférieur à 45.04° et qui a le même nom et le même type de route que Sout.
Si Sout est déterminée comme étant la Suite Logique, Waze ne donnera aucune instruction pour se diriger vers ce segment.
Exceptions
Lorsque plusieurs segments avec un angle inférieur à 45.04° repartent d'une intersection, cela peut aboutir à avoir des instructions pour chaque segment ou pour aucun d'entre eux. Certaines de ces situations sont listées ci-dessous:
- Si parmi les segments qui repartent avec un angle inférieur à 45.04°, aucun ne se distingue en ayant une meilleure correspondance en termes de nom de route ou de type de route, alors une instruction sera générée pour chacun d'entre eux. Cela s'applique également pour ceux qui forment un angle de 0° avec Sin. (Ceci est notamment abordé sur les segments de guidage.)
- Il n'y a pas forcement toujours une Suite Logique à Sin:
- Quand Sout a le même nom et le même type de route que Sin, mais que dans le même temps un autre segment parmi S1, S2,... Sn a lui aussi le même nom et le même type de route, alors aucun d'entre eux ne sera considéré comme la Suite Logique.
- Les segments repartant de l'intersection avec un angle inférieur à 45.04° et pour lesquels il existe une restriction de tourner lorsqu'on vient de Sin ne sont pas considérés comme faisant partie des S1, S2,... Sn et ne sont donc pas considérés par l'algorithme pour déterminer la Suite Logique, même s'ils forment un angle de 0° avec Sin.
- L'absence volontaire de nom sur un segment (du fait de la case "sans" cochée en face de son nom) est pris en compte par l'algorithme de détermination de la Suite Logique. ainsi deux segments volontairement sans nom sont considérés comme ayant le même nom, même s'ils hériteront de noms différents dans le Text-To-Speech (TTS).
L'algorithme
La description ci-dessous est valable pour un changement de direction vers la droite, dans les pays où la conduite est à droite (comme c'est le cas en France). Les changements de direction vers la gauche sont symétriques à ceux vers la droite.
L'algorithme va parcourir une liste de conditions, par itérations successives. Dès qu'une des condition est vérifiée, l'instruction associée est déterminée et l'algorithme s'arrête.
La liste des conditions
- Si l'intersection n'a que 2 segments, l'instruction est 'Continuer'.
Dans sa conception actuelle, l'application Client mobile ne donne pas cette instruction. - Si Sout a été identifié comme la Suite Logique de Sin (cf. les explications sur la Suite Logique plus haut), alors l'instruction est 'Continuer', ce qui implique que le conducteur ne changera pas de direction (et donc continue sa route en passant l'intersection).
Dans sa conception actuelle, l'application Client mobile ne donne pas cette instruction. - Si l'angle de Sout et supérieur à 45°, l'instruction est 'Tournez à Droite'.
- C'est la raison pour laquelle on part du principe que sur les Routes Principales ( freeways , major highways et minor highways ), l'angle des changements de direction est inférieur à 45° (pas de virage sec sur ces routes ou le débit de circulation est important). Par conséquent, vous n'avez jamais d'aménagement sous la forme d'une "sortie" avec un tel angle et donc l'instruction dans ce cas serait "Tournez à droite" et non pas "Sortez à droite".
- Si Sin est une Route Principale ( FW , MH , mH ) et Sout n'est pas une Route Principale, l’instruction est 'Sortez à Droite'.
- Si Sin est une ramp et Sout n'est ni une Route Principale (ni FW , ni MH et ni mH ) ni une ramp alors l'instruction est 'Sortez à Droite'.
- NOTE: Dans les pays où la conduite est à droite, comme la France, il n'y a pas de "Sortie à Gauche".
- Si aucune des conditions ci-dessus n'est vérifiée, alors l'instruction est 'Restez à Droite'.
Organigramme de l'algorithme
Voici l'organigramme logique partant de l'intersection et parcourant (toutes) les configurations possibles en couvrant tous les scénarios. Il aboutit à toutes les instructions possibles de navigation. Cet organigramme inclus les ronds-points et est adapté aux pays où la conduite est à droite, comme la France.
Considérations particulières
[******* NDLT : paragraphe ci-dessous non traduit du fait de l'incompréhension sémantique. à investiguer]
- The direction of a turn which is less than 45.04° is measured relative to the other segments at the junction less than 45.04°.
- Une intersection avec 2 segments dont l'angle fait moins que 45.04° génèrera une instruction 'Restez à Droite' pour le segment de droite, même si celui-ci est situé à gauche du prolongement de Sin.
- Une intersection avec 2 segments dont l'angle fait moins que 45.04° génèrera une instruction 'Restez à Droite' pour le segment de droite, même si celui-ci est situé à gauche du prolongement de Sin.
[***************]
- Quand il y a plus de 2 segments dont l'angle fait moins de 45.04°, seul celui situé le plus à gauche aura une instruction 'Reste à Gauche'. Tous les autres auront une instruction 'Restez à Droite'.
- Si le segment le plus à gauche chevauche un autre segment alors il obtiendra lui aussi une instruction 'Restez à Droite'.
- S'il n'y a que 2 segments dont l'angle fait moins de 45.04° et qu'ils se chevauchent, alors aucun d'entre eux n'aura d'instruction.
- Dans certains cas, bien qu'une intersection possède plus de 2 segments, le serveur de calcul des itinéraires ne considérera comme valide que deux d'entre eux et par conséquent l'instruction sera "Continuez" (qui rappelons-le, est ignorée par l'application mobile). Ceci se produit lorsque certain changement de direction au niveau de l'intersection sont restreint; Le serveur de calcul d'itinéraire ignore ces segments dans sa recherche de Suite Logique.
- Au moment de la rédaction ci-dessus, ni l'auteur, ni personne impliqué autour de ce sujet n'ont jamais fait l'expérience de cette situation, à moins que le segment qui fait l'objet d'une restriction de tourner fasse un angle inférieur à 45.04°.
- Les changements de direction peuvent être restreint ou non. Dans certaines situations particulières, vous ne serez pas en mesure de voir ces restrictions dans WME (on parle alors de reverse connectivity ou RevCons). Il existe des scripts tiers qui permettent d'afficher ces situations (et certains permettent même de les corriger facilement).
- La version initiale de cet article faisait mention d'un comportement spécial nommé "Intersections verrouillées". Dans l'exemple ci-dessous, en supposant que l'intersection est "verrouillée", lorsqu'on se dirige vers le sud, le changement de direction à droite sera considéré comme un "Continuez" car le serveur de calcul d'itinéraire n'a pas d'autres possibilité et qu'il n'y a donc qu'un seul segment Sout possible.
- Si l'intersection n'était pas verrouillée, Waze générerait certainement une instruction "Tournez à Droite". Se diriger à contre-sens sur un segment en sens unique est considéré comme une importante pénalité tel que le serait un changement de direction à gauche alors que ce n'est pas autorisé. Néanmoins, cela resterait une possibilité et c'est pour cela que le serveur de calcul d'itinéraire proposerait une instruction "Tournez à Droite".
- Ceci pourrait porter à confusion, surtout du fait qu'il n'y a pas d'indication visible, pour le moment, sur la verrouillage ou non d'une intersection.
- Ni l'auteur, ni personne impliqué autour de ce sujet n'ont jamais rencontré d'intersection "verrouillée" qui ne suivrait pas l'algorithme présenté plus haut sur la détermination des instructions..