Point de non-basculement

En robotique, le point de non-basculement (ZMP, de l'anglais Zero-tilting Moment Point) d'un contact est un point dynamique caractéristique utilisé en locomotion, et plus particulièrement pour la locomotion des robots humanoïdes. Il représente les points dans l'espace où le moment des forces de contact a deux de ses trois coordonnées nulles, ce qui correspond à une condition de non-basculement par rapport à un plan (par exemple le plan du sol).

Définition et calcul

Le ZMP est issu des équations du mouvement de Newton-Euler, qui s'appliquent à tout système en mouvement dans l'espace. Celles-ci s'écrivent :

\begin{eqnarray} m \bfa_G & = & m \bfg + \bfF^c \\ \Ld_O & = & \overrightarrow{OG} \times m \bfg + \bfM^{c}_G \end{eqnarray}

\(m\) est la masse totale du robot, \(\bfg\) le vecteur gravité, \(G\) le centre de gravité du système, \(\bfa_G\) l'accélération du centre de gravité et \(\Ld_O\) le moment angulaire du système pris en un point \(O\) arbitraire, tandis que \(\bfF^c\) et \(\bfM^c\) désignent respectivement la résultante et le moment du torseur des forces de contact appliquées au système. Définissons le torseur inertiel, qui ne dépend que des accélérations du système :

\begin{eqnarray} \bfF^{gi} & = & m (\bfg - \bfa_G) \\ \bfM^{gi}_O & = & \overrightarrow{OG} \times m \bfg - \Ld_O \end{eqnarray}

Les équations de Newton-Euler s'écrivent alors de façon torsorielle comme \(\calT^{gi} + \calT^c = \boldsymbol{0}\). Le ZMP est un point \(Z\) de l'axe défini par

$$ \bfM^{gi}_Z \times \bfn = \boldsymbol{0} $$

\(\bfn\) désigne un vecteur normal (typiquement la normale au sol). Par rapport au moment en un autre point de référence, la partie gauche de cette équation devient :

\begin{eqnarray} \bfM^{gi}_Z \times \bfn & = & (\bfM^{gi}_O + \overrightarrow{ZO} \times \bfF^{gi}) \times \bfn \\ & = & \bfM^{gi}_O \times \bfn + (\overrightarrow{ZO} \cdot \bfn) \bfF^{gi} - (\bfF^{gi} \cdot \bfn) \overrightarrow{ZO} \\ \end{eqnarray}

en utilisant la formule de développement du double produit vectoriel. Supposons dans un premier temps que \(O\) et \(Z\) sont dans le même plan de normale \(\bfn\), de sorte que \(\overrightarrow{ZO} \cdot \bfn = 0\). On obtient alors, en injectant l'expression ci-dessus dans la définition du ZMP:

\begin{equation} \overrightarrow{OZ} \ = \ \frac{\bfn \times \bfM^{gi}_O}{\bfF^{gi} \cdot \bfn} \end{equation}

On utilise cette formule en pratique pour calculer le ZMP à partir de mesures par un capteur d'efforts ou une centrale inertielle.

Centre de pression

Le centre de pression ou COP (de l'anglais "Center Of Pressure") est un point dynamique caractéristique d'un contact. Contrairement au ZMP, qui est défini en fonction de toutes les accélérations du robot, le COP est une grandeur locale définie à partir des forces exercées à la surface d'un contact. Toutefois, lorsqu'il n'y a qu'un seul contact, ou que le robot marche sur un sol horizontal, le COP et le ZMP coïncident (Sardain et Bessonnet, 2004).

Considérons le cas où un pied du robot est en contact avec une surface plane :

La résultante \(\bfF^c\) des forces de contact exercées par l'environnement sur le robot à travers la surface peut se décomposer en deux termes :

  • la résultante \(\bfF^p = (\bfF^c \cdot \bfn) \bfn\) des forces de pression, ainsi que
  • la résultante \(\bfF^f = \bfF^c - \bfF^p\) des forces de frottement entre les deux surfaces. Ces forces sont tangentes à la surface \((\bfF^f \cdot \bfn = 0)\).

Ces résultantes sont la somme de forces infinitésimales exercées à chaque élément de surface \({\rm d}\calS\) de la surface de contact \(\calS\). En notant \(p(P)\) la pression en un point \(P \in \calS\) :

$$ \bfF^p = \int_{P \in \calS} p(P) {\rm d}\calS $$

Comme le pied du robot ne peut pas pénétrer à l'intérieur du sol, la pression est toujours une quantité positive (on parle d'« unilatéralité des contacts »). Il en résulte l'existence d'un centre de pression, c'est à dire un point où le moment des forces de pression s'annule complètement (de même qu'au point d'application d'une force celle-ci n'exerce aucun moment). Celui-ci est donné par :

\begin{eqnarray} \bfM^p_C & = & \boldsymbol{0} \\ \overrightarrow{OC} \times (\bfF^p \cdot \bfn) \bfn & = & - \bfM^p_O \\ (\bfF^p \cdot \bfn)\,\bfn \times \overrightarrow{OC} \times \bfn & = & -\bfn \times \bfM^p_O \end{eqnarray}

Les points \(O\) et \(C\) appartenant tous deux au même plan de normale \(\bfn\), on obtient ainsi :

$$ \overrightarrow{OC} = \frac{\bfM^p_O \times \bfn}{\bfn \cdot \bfF^p} $$

Par ailleurs, les forces de frottement étant parallèles à la surface de contact par définition, leur moment est aligné avec \(\bfn\), de sorte que la relation ci-dessus s'écrit également

$$ \overrightarrow{OC} = \frac{\bfM^c_O \times \bfn}{\bfn \cdot \bfF^c} $$

On reconnaît la formule du ZMP, appliquée cette fois-ci au torseur de contact (local) au lieu du torseur inertiel. Comme \(\calT^{gi} = -\calT^{c}\) par l'équation de Newton-Euler, les deux formules que nous avons établies montrent que le COP et le ZMP coïncident lorsqu'il n'y a qu'un seul contact (Sardain et Bessonnet, 2004).

La figure ci-dessus représente le centre de gravité \(G\), le centre de pression du contact pied-droit \(C\) ainsi qu'un ZMP \(Z\). Les points \(Z\) et \(C\) sont toujours alignés sur l'axe inertiel \(\Delta^{gi}\). Ce dernier ne passe pas nécessairement par le centre de gravité, à moins que le robot ne conserve son moment angulaire \((\Ld_G = \boldsymbol{0})\), qui est une hypothèse de travail courante en locomotion (Kajita et Tani, 1991).

Surface de sustentation

Tant que le contact avec la surface ne rompt pas, le centre de pression réside nécessairement à l'intérieur de la surface de contact \(\cal S\). En effet, le moment des forces des contacts peut être réécrit :

$$ \bfM^c_O = \int_{P \in {\cal S}} \overrightarrow{OP} \times p(P) \bfn {\rm d}{\cal S} $$

La formule du COP ci-dessus devient alors :

$$ \overrightarrow{OC} = \frac{\int_{P \in {\cal S}} p(P)\,\overrightarrow{OP}\,{\rm d}{\cal S}}{\int_{P \in {\cal S}} p(P) {\rm d}{\cal S}} $$

Ainsi, le COP est la moyenne des points de contacts pondérée par les pressions qui y sont exercées. Lorsqu'il franchit le bord de la zone \(\cal S\), le contact rompt et le pied du robot bascule. Pour éviter cela, les robots humanoïdes s'appliquent donc à maintenir leurs centres de pression à l'intérieur de ces zones pour chaque contact. Ce critère est une condition de non-basculement, et on parle alors de surface de sustentation pour désigner la zone \(\cal S\).

Cas particulier sur sol plat

Lorsque les deux pieds du robot sont en contact avec la même surface, la surface de sustentation \(\cal S\) devient l'enveloppe convexe de tous les points de contacts, c'est à dire l'ensemble des points situés « entre les deux pieds ». Cette surface permet de définir les pressions et frottements comme précédemment, et donc un centre de pression associé résidant à l'intérieur l'enveloppe \(\cal S\). Le COP et ZMP coïncidant alors, nous obtenons le critère de non-basculement :

Critère de non-basculement : pendant la marche sans basculement, le ZMP est situé à l'intérieur de la surface de sustentation, définie comme enveloppe convexe des points d'appui.

Ce critère est le plus fréquemment utilisé pour la marche des robots humanoïdes sur sol plat, c.f. par exemple (Kajita et al., 2003) et (Wieber, 2006). Il est à noter que ce critère fournit une condition nécessaire mais non suffisante à la stabilité contingère. Pour obtenir une réciproque suffisante, il faut lui adjoindre la condition complémentaire de non-glissement, tel que démontré dans cet article.

Pour aller plus loin

La zone de sustentation du ZMP peut être étendue au cas où le robot établit des contacts arbitraires avec son environnement. Cette généralisation est développée dans ce papier. Toutefois, la nature planaire de ces zones est assez mal adaptée à la locomotion multi-contact. C'est la raison pour laquelle un générateur de motif de marche ultérieur l'a généralisée en un cône 3D d'accélérations du centre de gravité.

Content on this website is under the CC-BY 4.0 license.