Mon poussinet s'est acheté une nouvelle voiture. Ou plus exactement, a remplacé un joujou, rouge de chez Honda, thermique et bruyant, par un autre joujou, blanc de chez Tesla, électrique et beaucoup moins bruyant et beaucoup plus Internet of Shit ; mais ce n'est pas mon propos ici d'en parler : le point de départ de ce que je veux dire ici, c'est que le nouveau joujou est assez long et large, et que la descente du parking de notre immeuble est compliquée.
Nous avons trois véhicules et trois places de parking (une achetée avec l'appartement et deux louées à des voisins). Ma moto, bizarrement, ne pose aucun problème pour monter et descendre au parking. Pour la Tuture préférée (qui fait censément 1.74m de large, et 4.15m de long dont 2.51m entre les essieux), le poussinet s'en sort bien (le plus souvent sans marche arrière), mais moi je n'ose pas trop essayer, et c'est d'ailleurs mon principal obstacle à circuler en voiture. Et pour le nouveau joujou (qui fait censément 1.85m de large, et 4.69m de long dont 2.83m entre les essieux), c'est beaucoup plus compliqué : à ce stade, à chaque fois que nous voulons entrer ou sortir du parking, je descends de la voiture, je passe devant, et j'indique au poussinet par des signes de main la distance à gauche et à droite (certes, le joujou a plein de capteurs, mais ils sont essentiellement inutiles dans ces circonstances, parce qu'ils passent juste leur temps à faire bip, et ne détectent pas forcément la « bonne » distance) : il arrive à sortir en une seule fois, mais pour rentrer dans le parking il faut trois ou quatre marches arrière (et la question de pourquoi ce n'est pas symétrique est une de celles que je veux discuter ici).
Pourtant, la descente du parking n'est pas si étroite : elle fait 2.67m de large au point le plus resserré que j'aie mesuré ; cette largeur est un peu stupidement grignotée par le fait qu'il y a des garde-corps (je ne sais pas comment les appeler : une sorte de marche ou de micro trottoirs de part et d'autre de la descente, au niveau du sol, large d'environ 15cm et haute d'environ autant), qui réduit l'espace disponible au niveau des roues à 2.38m au point le plus étroit. Mais bien sûr, la descente est courbe : entre la porte côté rue et la base de la rampe, il y a un changement de cap de 90° (on entre perpendiculairement à la rue Simonet, et on finit parallèlement à elle).
Géométriquement, si j'en crois les plans d'architecte de l'immeuble
que j'ai récupérés je ne sais plus comment, la forme est très simple
(cf. figure ci-contre) : prenez un quart de cercle de rayon 6.50m et
un autre de rayon 5.50m dont les centres sont décalés de 1.75m selon
chacun des axes du quart de cercle (donc à distance 1.75m×√2 ≈ 2.47m
l'un de l'autre), le centre du petit cercle étant évidemment plus
éloigné des arcs eux-mêmes que celui du grand cercle, et ensuite
prolongez tangentiellement chacune des deux extrémités de chacun des
deux arcs.
(En notation SVG
et en exprimant les distances en mètres : M 0.00 0.00 L 9.37
0.00 A 6.50 6.50 0 0 1 15.87 6.50 L 15.87 18.38
pour le bord
extérieur et M 0.00 2.75 L 7.62 2.75 A 5.50 5.50 0 0 1 13.12
8.25 L 13.12 18.38
pour le bord intérieur.) Ceci fait donc une
rampe dont la largeur est de (6.50m−5.50m)+1.75m = 2.75m dans ses
parties rectilignes, et de (6.50m−5.50m)+1.75m×√2 ≈ 3.47m dans sa
partie courbe, à quoi il faut retirer environ 15cm de garde-corps de
part et d'autre comme je l'ai expliqué ci-dessus. J'ai fait
apparaître sur la figure des rectangles à l'échelle du joujou du
poussinet, mais il n'est pas évident de le placer comme je viens de le
montrer (cf. plus loin). L'épaisseur des traits sur la figure est de
30cm (le milieu du trait est au niveau du mur lui-même, le bord
intérieur correspond à peu près au bord du garde-corps).
Bon, en plus, la rampe est bien sûr en pente (de 14.38% selon le plan d'architecte, l'hélice étant orientée à main gauche : sur le schéma ci-contre, la sortie côté rue est en bas de la figure, la base de la rampe côté parking est à gauche), mais je ne pense pas que ça joue énormément sur le problème géométrique que je vais évoquer. Par ailleurs, la construction de l'immeuble n'a pas respecté précisément les plans d'architecte et les arcs de cercle ont été approchés par des polygones, donc il y a trois ou quatre points anguleux sur le mur extérieur : je ne sais pas bien si ça joue dans l'explication de l'asymétrie ressentie entre montée et descente, je vais y revenir ; la largeur de la rampe, comme je l'ai dit plus haut, n'est, d'après mes mesures, pas tout à fait égale aux 2.75m contractuels de mur à mur, je l'ai déjà noté.
Mes lecteurs savent que j'aime faire des typologies, alors allons-y. Je peux distinguer trois niveaux au problème d'entrer ou sortir la voiture :
- La question purement géométrique (entrer ou sortir la voiture, en supposant une connaissance parfaite de ses dimensions, sa position, la forme de la rampe, etc., donc toutes les distances impliquées), que je vais elle-même ci-dessous subdiviser en trois.
- La complication supplémentaire que, assis à la place du conducteur, on voit mal ce qu'on fait, on évalue mal les distances, malgré les rétroviseurs et les diverses caméras de la Tesla, en tout cas, plus mal que quelqu'un qui se tient à distance et qui regarde la voiture de l'extérieur.
- La complication supplémentaire qu'une voiture n'avance pas exactement comme on veut (je parle du point de vue de la traction : je mets la question du rayon de braquage sur le chapeau géométrique) : ceci ne concerne pas la Tesla, dont le moteur électrique permet d'avancer aussi lentement qu'on veut, presque millimètre par millimètre, aussi bien en montée qu'en descente, mais le problème se pose avec une voiture thermique si on ne veut pas vitrifier l'embrayage en patinant trop longtemps.
Je veux surtout parler ici du (A), même si (B) et (C) sont aussi problématiques en pratique. Maintenant, même si je le simplifie à outrance en traitant la voiture comme un simple rectangle et en ramenant tout le problème dans le plan, ce que je vais faire, le (A) se subdivise lui-même en trois niveaux de difficulté :
- Il y a d'abord le problème le plus simple : peut-on déplacer un rectangle d'une certaine dimension d'une extrémité à l'autre de la rampe, en supposant qu'on puisse imprimer au rectangle n'importe quel mouvement continu ? Autrement dit, je permets à la voiture de tourner comme elle veut, y compris sur place sans bouger, en gros comme si elle était placée sur quatre roulettes capables de se mouvoir exactement comme on le souhaite, en gardant juste leurs distances constantes. Mathématiquement : si on appelle X l'espace des configurations d'un rectangle de taille fixée (disons, 4.69m×1.85m) dans le plan, cet espace X étant de dimension 3 (car on détermine la position du rectangle et son angle d'orientation), et U la partie de X correspondant aux rectangles qui sont contenus dans la rampe (i.e., les positions légitimes de la voiture), existe-t-il une courbe continue Γ à valeurs dans U qui relie un point situé sans ambiguïté d'un côté de la rampe à un autre situé sans ambiguïté de l'autre ? Ici il ne fait absolument aucun doute que la réponse est oui. Mais ce qui fait que ce problème est trop simpliste est qu'une voiture ne peut pas chasser : en vrai, on ne peut qu'avancer ou reculer avec un certain angle des roues avant.
-
Le deuxième niveau géométrique concerne la manœuvre d'une voiture un
peu plus réaliste : les roues arrière ne peuvent pas tourner, mais les
roues avant le peuvent. Voici comment je propose de le décrire
mathématiquement : si on appelle M le point de la voiture
située au milieu de l'axe des roues arrière, et P le point
situé au milieu de l'axe des roues avant (si bien que la
configuration Γ(t) de la voiture à un
instant t revient à se donner la
position M(t) et P(t) de
ces deux points), alors la contrainte que M
ne peut pas chasser
signifie que la droite MP (l'axe médian de la voiture) est toujours tangente à la courbe γ décrite par le point M (i.e., γ(t) := M(t) et γ(t) dirigée selon MP). Mais du coup, hors situation dégénérée, le mouvement de la voiture est complètement déterminé par la courbe γ parcourue dans le plan par le point M : en effet P est situé, à tout instant, sur la tangente à γ au point considéré, et à distance MP constante (la distance entre les essieux). La courbe γ tracée par le milieu M des roues arrière imprègne donc le mouvement général de la voiture, et se relève en une courbe Γ dans l'espace des configurations du rectangle (comme je viens de dire : l'angle d'orientation de Γ(t) est la tangente à γ en γ(t), et le point M est γ(t)). Le niveau géométrique numéro 2 est donc de trouver une courbe γ du point médian de l'axe des roues arrière dont le relèvement Γ à la configuration de la voiture, que je viens de définir, est complètement contenu dans l'espace U des configurations autorisées. La figure ci-contre, qui échoue de peu, montre que ce n'est pas facile : la courbe γ (ici un quart d'ellipse complété par deux segments de droite parallèles au côtés rectilignes de la rampe) y est tracée en pointillés, et différentes configurations Γ(t) de la voiture sont figurées en rouge : les contraintes ne sont pas violées de beaucoup, mais elles le sont (le rectangle mord sur les bords dont l'épaisseur représente les garde-corps). - Le troisième niveau géométrique ajoute la contrainte que le rayon de braquage de la voiture est limité : autrement dit, la courbe γ doit avoir en tout point un rayon de courbure supérieur à une certaine valeur minimale (quelque chose comme 5.9m pour la Tesla, mais ce n'est pas très clair à quel niveau cette valeur est mesurée). Sans cette contrainte, le problème est beaucoup plus facile : en effet, si la voiture peut braquer absolument n'importe comment, elle peut décrire un cercle infinitésimal autour d'un point, ce qui lui permet de se réorienter dans n'importe quelle direction en tournant autour de son point M, i.e., en pratique, le niveau (2) autorise la voiture à tourner sur place autour de son milieu des roues arrière (ce qui est certes plus contraint que (1) qui autorise absolument n'importe quel déplacement continu, mais tout de même irréaliste pour une voiture réelle).
Ajout () : Comme me le fait remarquer jonas en commentaire, j'ai oublié de donner une dimension essentielle : la distance entre les roues arrière et l'arrière de la voiture (qui est bien plus importante que l'écartement entre les roues) : pour mon petit jeu en JavaScript (cf. ci-dessous) je l'ai fait mesurer par le poussinet dans le cas de sa Tesla, et elle vaut 0.945m ; je n'ai pas la valeur correspondante pour la Tuture.
Bien sûr, à chacun des niveaux que je viens de définir (A1, A2, A3, B ou C), on peut chercher à accomplir quatre tâches :
- sortir la voiture du parking en marche avant,
- entrer la voiture dans le parking en marche avant,
- entrer la voiture dans le parking en marche arrière,
- sortir la voiture du parking en marche arrière.
Au niveau A (que ce soit A1, A2 ou A3), les deux premières devraient être rigoureusement identiques au deux dernières (il suffit de faire exactement la même courbe en sens inverse) : dans la réalité, elles semblent plus compliqués (même si nous n'avons pas vraiment essayé, des voisins l'ont fait et prétendent ne pas avoir réussi), ce qui suggère que la géométrie n'est pas tout.
En fait, au niveau A, si on ignore la pente de la rampe, toutes ces tâches sont identiques puisque la rampe possède, à la longueur près des bras rectiligne qui n'est manifestement pas importante, un axe de symétrie (la diagonale reliant les centres des deux arcs de cercle délimitant la partie coudée) : pourtant, en pratique, le poussinet arrive à sortir sa Tesla en une seule fois, sans faire de marche arrière locale, alors qu'il lui faut trois ou quatre marches arrière pour la rentrer (en allant généralement en marche avant). La raison pour cette rupture de symétrie nous échappe : je pense que c'est le manque d'information (i.e., le niveau B) qui joue, mais le poussinet pense plutôt que c'est parce que la rampe réelle ne correspond pas aux plans (les arcs de cercle ont été approchés par des polygones).
Quoi qu'il en soit, ceci soulève la question mathématiquement
intéressante suivante : peut-on concevoir une forme de rampe telle
qu'un véhicule (un rectangle se déplaçant comme dans le niveau A2
voire A3 ci-dessus), qui n'est capable d'aller qu'en marche avant,
puisse l'emprunter uniquement dans un sens et pas dans l'autre ?
Je ne sais pas ! (Du moins, je ne sais pas le prouver : je pense que
la réponse est oui
, dès que la voiture est assez allongée et
que ses roues arrière sont assez en arrière, en prenant pour rampe
justement la réunion de tous les rectangles décrits
par Γ(t) où Γ s'obtient en relevant,
comme décrit ci-dessus, une courbe γ qui fasse, disons, un
quart de cercle prolongé par deux segments tangents à lui.)
Ce qui est sûr, en revanche, c'est que même si les quatre tâches sont identiques pour des raisons de symétrie, les deux parties de la courbe, l'entrée dans le virage et la sortie du virage, ne le sont pas du tout : la difficulté se pose en sortie de virage, d'arriver à ne pas touche ni bord extérieur du virage avec l'avant de la voiture, ni le bord intérieur du virage avec la roue arrière. (C'est la raison pour laquelle je pense que la réponse à la question du paragraphe précédent est positive : si la rampe est plus large d'un côté du virage que de l'autre, on pourra plus facilement la parcourir, en marche avant, dans le sens du plus étroit vers le plus large que dans le sens inverse, et c'est possiblement l'explication de l'asymétrie dans notre parking si les plans d'architecte ne décrivent pas la réalité.)
J'ai fait un petit jeu idiot en JavaScript pour essayer de simuler la sortie de notre rampe de parking avec le joujou du poussinet (en prenant pour géométrie de la rampe celle des plans d'architecte, moins 15cm de bord sur les côtés à cause du garde-corps, et comme géométrie de la voiture les spécifications que le poussinet m'a trouvées à ceci près que j'ai un peu inventé le rayon de braquage). Pardonnez-moi une interface utilisateur très frustre (il n'y a que quatre touches : la flèche vers le haut fait de 5cm en marche avant, la flèche vers le droit fait 5cm en marche arrière, les flèches vers la gauche et la droite tournent les roues avant de 1° dans le sens correspondant (ou plus exactement, elles tournent l'angle de tangence au point P médian entre les roues avant) ; et la détection de non-collision est faite de façon sommaire en demandant au moteur SVG si quelques points sont bien situés dans la zone censément traversable : si vous voulez voir le code, il est ici (dans le HTML lui-même).
Il me semble qu'il est impossible, dans ce jeu, de se passer de marche arrière (avec marche arrière on s'en tire assez bien) : on se retrouve coincé dans une situation comme ci-contre (qui est SVG produit verbatim par mon petit moteur : je n'ai pas triché !). Mais, comme dans la vraie vie, ça se joue à vraiment pas grand-chose : si j'abrase ne serait-ce que quelques centimètres à chaque mur cela devient possible. Dans la vraie vie, comme je l'ai dit, le poussinet arrive à sortir son joujou sans marche arrière (mais avec mon aide), en revanche il en a besoin pour le rentrer : je n'explique pas plus l'asymétrie que la différence entre le jeu et la réalité (l'explication peut résider dans les approximations faites sur la géométrie ou dans le modèle lui-même en 2D avec un rectangle, je ne sais pas ce qui joue le plus).
Toujours est-il que réfléchir à ceci m'a aidé à comprendre un petit peu mieux pourquoi, quand on manœuvre dans une situation pareille, c'est la sortie de courbe qui pose problème (même si je serais encore incapable d'en fournir une explication mathématiquement satisfaisante), et pourquoi ce problème se manifeste sous la forme d'un conflit entre le côté extérieur de l'avant du capot et la roue arrière intérieure, et pourquoi faire une certaine distance en marche arrière aide, et aussi pourquoi le porte-à-faux aide à ce genre de manœuvres. Ceci étant, dans la pratique, je me sens toujours assez incapable de manœuvrer correctement, même la Tuture beaucoup plus facile que le nouveau joujou, dans cette descente.