Commande dynamique d’humains virtuels : équilibre robuste et gestion des tâches Thèse de Doctorat NS 287 NOTE SCIENTIFIQUE ET TECHNIQUE Commande dynamique d’humains virtuels : équilibre robuste et gestion des tâches Thèse de Doctorat Cyrille COLLETTE NS 287 février 2010 Institut national de recherche et de sécurité pour la prévention des accidents du travail et des maladies professionnelles Siège social : 30, rue Olivier-Noyer 75680 Paris cedex 14 • Tél. 01 40 44 30 00 • Fax 01 40 44 30 99 Centre de Lorraine : 1, rue du Morvan CS 60027 54519 Vandœuvre-les-Nancy cedex • Tél. 03 83 50 20 00 • Fax 03 83 50 20 97 Thèse de doctorat de l’Université paris vi Spécialité : mécanique - robotique Commande dynamique d’humains virtuels : équilibre robuste et gestion de tâches Proposée par : Cyrille Collette Pour obtenir le titre de docteur de l’Université paris vi Soutenance prévue le . . . . . . 2009 devant le jury proposé : Jean-Paul Laumond Franck Multon Xuguang Wang Philippe Bidaud Alain Micaelli Pierre Lemerle Directeur de recherche au laas-cnrs Maître de conférence à l’université de Rennes 2 Directeur de recherche lbmc, inrets Professeur à l’université Paris 6, isir Paris Directeur de recherche, cea/list Fontenay-aux-Roses Responsable du laboratoire msmp, inrs Vandœuvre Directeur de thèse Encadrant industriel Alain Micaelli Pierre Lemerle Rapporteur Rapporteur Examinateur Examinateur Directeur de Thèse Encadrant Résumé “Commande dynamique d’humains virtuels : équilibre robuste et gestion de tâches” Les simulateurs physiques ne disposent pas d’outils efficaces d’animation permettant à un humain virtuel de s’équilibrer et de réaliser des tâches, en interagissant avec son environnement. On propose une commande dynamique d’humains virtuels qui offre un cadre unifié où toutes les contraintes sont traitées simultanément : forces unilatérales de contact avec frottement, efforts bilatéraux de préhension et couples de commande. Afin d’assurer l’équilibre de l’humain virtuel dans une configuration de contact et de préhension non-coplanaires, les consignes de cette commande telle que la position du centre de masse sont déterminées statiquement. Ce dernier est stable et robuste à des perturbations. Pour augmenter l’autonomie de l’humain virtuel et enrichir ses comportements, un objectif se décompose en un ensemble d’actions élémentaires, se traduisant en critères et contraintes pour la loi de commande. D’autre part, les résultats de simulation sont validés à l’aide de campagnes d’essais réalisées sur des sujets humains. Enfin, la commande est appliquée au cas du renversement dynamique latéral de chariot de manutention dans le but d’obtenir un comportement prédictif de cariste. Mots Clés : Réalité Virtuelle, Mouvements d’Humains Virtuels autonomes, Contrôle d’équilibre dynamique, Posture robuste, Multi-contacts non coplanaires, Commande de la préhension, Contacts avec frottements secs. 3 Abstract “Virtual humans dynamic control : robust balance and task management” Physical simulators do not possess animation tools efficient enough to let a virtual human keep its balance and realize tasks while interacting in a very general way with its environment. We propose a dynamical controller of virtual humans which offers a unified framework where all the constraints are treated simultaneously : unilateral forces of contact with friction, bilateral grasping efforts and motor joint torques. In order to assure the virtual human’s balance in a noncoplanar contact and grasp situation, the controller’s commands such as position of center of mass are determined statically. Our virtual human is stable and robust to disturbance. To increase its autonomy and richness of behaviour, each goal is divided into a sequence of elementary actions, translated into criteria and constraints for the control. In addition, the results of the simulation were validated thanks to a trial campaign realized on human subjects. Eventually, this control is applied to the case of a powered industrial truck in lateral fall, so as to obtain a predictive model of the forklift operator’s behaviour. Keywords : Virtual reality, Virtual Human motion, Dynamic balance control, Robust posture, Multiple non-coplanar contacts, Grasp control, Frictional contacts. 5 Table des matières 1 Introduction 1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Problématiques scientifiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Présentation du plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 11 12 2 Description du modèle 2.1 Introduction . . . . . . . . . . . . 2.2 Modélisation de l’Humain Virtuel 2.3 Modèle dynamique . . . . . . . . 2.4 Modèles d’interaction . . . . . . . . . . . 15 17 17 18 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Définir et quantifier l’équilibre 3.1 Introduction . . . . . . . . . . . . . . . . . 3.2 Centre de Masse de consigne non robuste 3.3 Commande de posture robuste . . . . . . 3.4 Prise en compte de la posture de l’hv . . 3.5 Conclusion et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 29 31 36 41 44 4 Assurer l’équilibre 4.1 Introduction . . . . . . . . . . 4.2 L’algorithme de commande . 4.3 Mise en œuvre algorithmique 4.4 Justifications . . . . . . . . . 4.5 Résultats et discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 49 50 61 64 66 . . . . 77 79 80 88 91 5 Gestion de tâches 5.1 Introduction . . . . . . 5.2 Actions . . . . . . . . 5.3 Gestion des priorités . 5.4 Tâches de manutention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Validations 99 6.1 Matériels et méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.2 Résultats et discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7 7 Cariste 121 7.1 Problématique du cariste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.2 Commande du cariste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 7.3 Conclusion et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8 Conclusion et perspectives 145 8.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 8.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Annexes A Définition des variables . . B Formalisme mathématique C Simulation physique . . . D Paramétrage de l’hv . . . E Liste de publications . . . . . . . . . et rappels . . . . . . . . . . . . . . . . . . . . . . . . . . de mécanique . . . . . . . . . . . . . . . . . . . . . . . . 8 . . . . . . du solide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 155 159 165 169 171 CHAPITRE 1 Introduction 1.1 Contexte Le domaine de la simulation connaît une forte croissance. On le retrouve notamment dans des activités de conception (CAO), de formation, de loisir (jeux vidéos) (figure 1.1). Le développement des technologies informatiques permet d’accroître la complexité des simulations. Elles offrent une grande souplesse d’utilisation, à moindre coût. On s’intéresse à la simulation physique. L’objectif est de représenter en virtuel des environnements réels complexes. Les objets qui composent la scène sont soumis à la dynamique des systèmes contraints. Ils interagissent entre eux. Plusieurs simulateurs sont disponibles. On citera Open Dynamics Engine, Havok, Newton Game Dynamics, Bullet. Le champ d’application de ces simulateurs est très vaste. Par exemple, la réalité virtuelle utilise des simulateurs physiques pour des problématiques de prototypage virtuel, de dimensionnement de systèmes de sécurité. Certains simulateurs proposent quelques outils d’animation d’Humain Virtuel (hv). Ils sont limités et fastidieux à utiliser. L’hv est le plus souvent décrit comme un système poly-articulé rigide. On attend d’un hv qu’il agisse dans un environnement virtuel comme un humain dans le monde réel. On s’immergera d’autant plus à la simulation si le comportement de l’hv apparaît réaliste. Mais le réalisme graphique d’un comportement n’est pas le seul critère. Le réalisme physique d’un mouvement est la priorité. Un point fondamental est l’interaction de l’hv avec son environnement. Ainsi, soumis à une perturbation, l’hv doit avoir un comportement réactif pour retrouver son équilibre. Outre la gestion d’équilibre, on s’intéresse à la simulation d’activités physiques. L’hv interagit avec l’environnement, déplace des objets, réalise des tâches. Afin de traiter un large éventail de simulations, l’hv devra faire face à des situations imprévues. La description par l’utilisateur des comportements de l’hv doit être la plus simple et efficace possible. Ainsi, une grande importance est accordée à l’autonomie de l’hv. La génération de comportements d’hv autonomes, si elle offre beaucoup de liberté et de souplesse dans la mise en œuvre, présente également des difficultés d’ordre scientifique et technique. 9 (a) Modélisation d’une suspension avec catiar . (c) Simulation interactive de prototypage virtuel dédiée à l’industrie automobile. (b) Simulateur de conduite de chariot de manutention. (d) Jeu vidéo Grand Theft Auto 4r développé par Rockstarr Games. Figure 1.1 – Exemples d’utilisation de la simulation. 10 1.2 Problématiques scientifiques Les objectifs de cette thèse sont de prototyper des lois de commande permettant d’animer un hv. Deux applications sont abordées : l’équilibre robuste et la gestion de tâches de l’hv. Bien que présentées distinctement, il y a des connexions fortes entre ces deux problématiques, du point de vue de la méthode de commande, que l’on étudiera par la suite. On cherche à développer des outils facilement paramétrables pour commander un hv et à obtenir un comportement naturel en jouant sur peu de paramètres. 1.2.1 Équilibre robuste L’hv est soumis à une perturbation qui peut être de différentes natures. D’une part, un effort de perturbation est directement appliqué à l’hv. D’autre part, il peut s’agir aussi d’un mouvement de l’environnement avec lequel l’hv est en interaction. Une fois perturbé, l’hv doit retrouver son équilibre. On cherche à déterminer et à évaluer la qualité de la position d’équilibre à atteindre. De plus, le retour à l’équilibre nécessite le développement d’une méthode de commande. 1.2.1.1 Définir et quantifier l’équilibre On cherche à définir et à quantifier l’équilibre de l’hv dans un environnement complexe. On s’intéresse notamment aux configurations de contacts et de prises non coplanaires. On veut déterminer automatiquement et pour toutes les configurations de contacts et de prises, la meilleure position d’équilibre. Cette consigne se traduit à la fois en termes de configuration–posture à adopter mais aussi en termes d’efforts d’interaction avec l’environnement. Ainsi, l’hv se cramponne le plus efficacement sur son environnement. L’algorithme que nous proposons fournit également un indice de robustesse. D’autre part, on cherche à quantifier l’équilibre de l’hv. Ceci permet de définir l’état du système à chaque instant. La définition et la quantification de l’équilibre nécessitent de prendre en considération les contraintes liées au système étudié, à savoir les limites articulaires et d’actionnement, les limites des efforts que l’hv peut appliquer sur une prise saisie ainsi que le non-glissement des contacts. C’est un problème très complexe qui reste ouvert, et pour lequel on a fait des hypothèses simplificatrices. 1.2.1.2 Assurer l’équilibre L’objectif est d’atteindre la meilleure position d’équilibre définie précédemment. Pour y parvenir, on choisit de réaliser une commande en couple. Suite à une perturbation, deux méthodes complémentaires permettent d’assurer l’équilibre de l’hv : – réflexe “simple” : l’objectif est de mettre en œuvre un comportement autonome permettant de retrouver l’équilibre en conservant l’état de ses interactions avec l’environnement ; – réflexe “évolué” : l’objectif est de retrouver l’équilibre en changeant l’état de ses interactions avec l’environnement. On pourra enchaîner les comportements avec prises de décisions. Par exemple, l’hv peut reprendre son équilibre en s’appuyant sur un mur. 11 1.2.2 Réalisation de tâches La simulation d’activités physiques nécessite la mise en œuvre de comportements combinant gestion d’équilibre et réalisation de tâches. C’est le cas par exemple lorsque l’on entreprend de peindre un mur. L’hv doit tout d’abord atteindre et saisir le pinceau puis réaliser le mouvement de peindre. Parfois, la zone du mur à peindre est difficilement atteignable. Il peut alors s’aider de prises avec sa main libre pour atteindre la zone tout en conservant son équilibre. Pour réaliser la tâche de peindre, on doit générer un ensemble de comportements. Parfois, ces comportements sont incompatibles. Dans cet exemple, il s’agit d’atteindre la zone à peindre avec une main et la prise avec la main libre. Et pour cela, on préfère généralement réaliser en priorité la tâche qui garantira l’équilibre, c’est à dire atteindre la prise. Il faut donc mettre en œuvre une gestion des priorités entre ces comportements. L’objectif est de générer des comportements de réalisation de tâches de la façon la plus simple et la plus souple possible. Une grande importance est donnée à l’autonomie du système. La difficulté est de trouver les bonnes heuristiques permettant d’obtenir le comportement global désiré. La gestion des critères multi-objectifs est un point important dans la gestion des tâches. Parmi un ensemble d’actions à réaliser, la priorité d’exécution est accordée en fonction de l’importance de la tâche. On doit gérer les priorités entre des objectifs disjoints en exploitant au mieux les ressources du système. 1.3 Présentation du plan On présente dans le chapitre 2 une introduction aux modèles, notations et formulations. Les chapitres 3, 4 et 5 sont consacrés à la commande de l’hv. Le chapitre 3 traite de la définition et de la quantification de l’équilibre. Afin d’assurer l’équilibre de l’hv dans une configuration complexe de contacts et de prises, le Centre de Masse (CdM) est déterminé statiquement. La position du CdM stable, robuste à des perturbations est déterminée. Un critère de marge de stabilité permettant de quantifier l’équilibre est présenté. Dans le chapitre 4, on s’intéresse à assurer l’équilibre de l’hv. On aborde la formulation de la commande de l’hv permettant de calculer les couples d’actionnement. Les hypothèses pour la commande sont justifiées. Enfin, des résultats de simulations sont présentés. Le chapitre 5 traitera de la gestion de tâches. On traitera notamment les aspects programmation de tâches. L’objectif est de faire le lien entre un objectif global (ex : peindre) et sa traduction en termes de lois de commandes. Ainsi, on peut augmenter l’autonomie de l’hv et enrichir ses comportements. D’autre part, on propose une méthode numérique pour gérer les priorités entre les tâches (souvent conflictuelles). On présentera le cas d’application de l’hv manutentionnaire. Le chapitre 6 présente la confrontation entre la simulation et l’expérimentation. On détaille la campagne d’essais de validation réalisée sur des sujets humains à l’inrs. L’objectif est de comparer en termes d’efforts et de déplacements du CdM, l’expérimentation sur sujet et la simulation. Le chapitre 7 présente les premiers résultats de l’application de la loi de commande à la problématique du cariste. On traite des cas de renversement de chariot de plus en plus complexes. 12 On s’appuie sur des cas simples pour interpréter l’influence de certains paramètres de la simulation. Enfin, le comportement du cariste est enrichi par différentes stratégies de retenues. Le chapitre 8 revient sur les principales contributions scientifiques et les perspectives d’amélioration et d’application de la commande dynamique d’hv. 13 CHAPITRE 2 Description du modèle e chapitre présente la modélisation du problème. On décrit les hypothèses de travail et le C fonctionnement global d’une simulation. L’ hv est animé comme un robot. Les grandeurs physiques prises en compte pour modéliser un hv sous la forme d’un robot sont détaillées par la suite. Ce robot évolue dans un environnement virtuel dont les lois ainsi que leurs formalismes sont présentés. Enfin, l’interaction entre l’ hv et son environnement dans une simulation s’effectue par l’intermédiaire de contacts et d’efforts de préhension. On détaille les modèles d’interaction. 15 CHAPITRE 2. DESCRIPTION DU MODÈLE Sommaire 2.1 2.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modélisation de l’Humain Virtuel . . . . . . . . . . . . . . . . . . . . 2.2.1 Chaînes poly-articulées : robots, branches, corps . . . . . . . . . . . . . 2.2.2 Degrés de liberté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Paramétrage de l’hv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Modèle dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Modèles d’interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Liaison unilatérale : contact ponctuel avec frottement . . . . . . . . . . 2.4.1.1 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1.2 Commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Liaison bilatérale : torseur d’effort résultant d’un actionnement de préhension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 17 17 17 18 18 18 21 21 21 21 22 2.1. INTRODUCTION 2.1 Introduction Modèle rigide : l’hv est considéré comme un robot que l’on anime. C’est un système rigide poly-articulé fortement redondant (§ 2.2). Il possède un grand nombre de degrés de liberté (32 ddl). La base du robot est libre : aucune partie n’est encastrée. Chaque segment corporel est considéré comme rigide. L’interaction rigide sur rigide est à la fois suffisante et plus simple à modéliser en termes de loi de commande (§ 2.4). Actionnement articulaire : chaque articulation est modélisée de manière parfaite et peut être actionnée. La commande articulaire est la plus répandue. Par rapport à une modélisation musculaire, elle est plus simple et permet d’obtenir plus de résultats. L’expérience montre qu’une commande articulaire donne de bons résultats, proches de ceux obtenus par la prise en compte des muscles. Les modèles neuro-physiologiques ne sont pas considérés. L’actionneur est considéré parfait, et s’applique directement sur l’articulation puisqu’on s’intéresse uniquement à la simulation d’hv et non à l’actionnement d’un humanoïde. 2.2 Modélisation de l’Humain Virtuel 2.2.1 Chaînes poly-articulées : robots, branches, corps Un robot est une chaîne poly-articulée constituée de branches, elles-mêmes constituées de corps solides (figure 2.1(a)). Le premier corps d’une branche peut être lié rigidement à un corps d’une autre branche. Pour un robot (tel que l’hv), le corps racine est le premier corps de la première branche. La configuration complète du système est définie par la donnée de la position du corps racine (position et orientation) et des coordonnées articulaires des branches (figure 2.1(a)). (a) Le robot “hv” est constitué de six branches : tronc, tête, bras et jambes. Le thorax est le corps racine. Toutes les branches se greffent sur la branche tronc (carrés). (b) La position du corps racine Hracine est exprimée par rapport au repère de la scène Hscène . L’orientation de chaque liaison qi permet de définir la posture de l’hv. Figure 2.1 – L’hv est modélisé comme un système poly-articulé. 17 CHAPITRE 2. DESCRIPTION DU MODÈLE 2.2.2 Degrés de liberté Dans le simulateur utilisé, deux corps ne peuvent être reliés entre eux par une liaison pivot, glissière ou hélicoïdale. Pour réaliser une liaison rotule, on crée une chaîne de trois “corps”, qui constituent trois pivots centrés successifs. L’hv est composé uniquement de liaisons pivots. La réalité biomécanique des articulations (épaule, genou, etc) est simplifiée. Ainsi, on représente l’articulation de l’épaule comme une rotule. cou thorax - abdomen épaule coude poignet hanche genou cheville 2.2.3 3 ddl 3 ddl 3 ddl 2 ddl 2 ddl 3 ddl 1 ddl 2 ddl = 32 ddl Paramétrage de l’hv L’hv est paramétrable en fonction de la taille et de la masse. Plusieurs articles ont servi de références : – masses des segments corporels (annexe D : D. Miller et al. [MM75]) ; – géométries et calculs des inerties des segments corporels (annexe D : E.P. Hanavan [Han64]) ; – dimensions des segments corporels : • rayons : D. Miller et al. [MM75] ; • longueurs : W.T. Dempster et al. [DG67]. – limites articulaires (annexe D.2 : J.M. Chevalier [Che98]) ; 2.3 Modèle dynamique Le modèle dynamique inverse d’un robot s’écrit : M̃ (q) (Ṫ − G) + N (q, q̇) T = L τ + C t (q) W Voici le détail des notations : (2.1) − T : vecteur vitesse en coordonnées généralisées du robot. dim(T ) = (6 + nddl , 1) T = avec : Vracine q̇1 .. . q̇nddl (2.2) vracine : torseur cinématique absolu du corps racine de l’arborescence • Vracine = ωracine exprimé dans le repère de base de ce corps (formulation “corps” – voir [MLS94]) ; 18 2.3. MODÈLE DYNAMIQUE • q̇k−1 : vitesse articulaire du corps k par rapport au corps k − 1. − Ṫ : vecteur accélération en coordonnées généralisées du robot, dérivé de T. dim(Ṫ ) = (6 + nddl , 1) V̇racine q̈1 (2.3) Ṫ = .. . q̈nddl − τ : forces et couples articulaires. dim(τ ) = (nddl , 1) τ1 τ = ... τnddl (2.4) τ = τcommande + τbutée (2.5) avec : • τk−1 : forces ou couples articulaires appliqués par le corps k − 1 sur le corps k ; • τcommande : forces et couples articulaires de commande (chapitre 4) ; • τbutee : forces et couples articulaires dus aux butées articulaires qui limitent le mouvement. Note 1. Dans le cas présent, il n’y a que des couples articulaires car on ne modélise que des liaisons pivots. − W : torseurs d’efforts appliqués, sur chacun des corps qui constituent le robot, exprimés dans leurs repères de base respectifs (repère “corps”). dim(W ) = (6 + 6 nddl , 1) W = Wracine W1 .. . Wnddl W = Wcontact + Wliaison + Wperturbation (2.6) (2.7) avec : • Wcontact : torseur d’effort lié aux contacts ; • Wliaison : torseur d’effort lié aux liaisons viscoélastiques ; • Wperturbation : torseur d’effort lié à des perturbations extérieures. − C (q) : matrice de transformation entre l’espace des vitesses articulaires (“espace tangent exprimé par T ”) et l’espace des vitesses cartésiennes des corps (espace des torseurs cinématiques des corps, en formulation “corps” se3 (R) × . . . × se3 (R) = se3 (R)ncorps ). Cette jacobienne ne dépend que de la configuration articulaire du robot q. Son calcul est détaillé dans l’annexe B.5. Le modèle cinématique direct d’un robot s’écrit : Vracine Vracine V1 q̇1 = C (2.8) .. .. . . Vnddl q̇nddl 19 CHAPITRE 2. DESCRIPTION DU MODÈLE − Ċ (q, q̇) : la dérivée de la jacobienne C permet d’obtenir les accélérations des “corps” dans l’espace cartésien en fonction des accélérations articulaires. Cette jacobienne dépend de la configuration et de la vitesse articulaire du robot (q, q̇). V̇racine V̇1 .. . V̇nddl = C (q) Ṫ + Ċ (q, q̇) T (2.9) − M̃ (q) : matrice symétrique d’inertie en coordonnées généralisées. dim(M̃ ) = (6 + nddl , 6 + nddl ) M̃ (q) = C t (q) M C (q) (2.10) avec : • M : matrice d’inertie de tous les corps dans leur repère de base. dim(M ) = (6 + 6 nddl , 6 + 6 nddl ). M = Mracine 06,6 06,6 .. . M1 .. . ... .. . .. . 06,6 ... 06,6 avec : 06,6 .. . 06,6 Mnddl avec Mi = mi I3 03,3 03,3 ℑi (2.11) • mi : masse du corps i ; • ℑi : matrice d’inertie du corps i exprimée à son centre de masse et dans le repère de base. − L : matrice permettant d’exprimer τ en coordonnées généralisées. dim(L) = (6 + nddl , nddl ) L= 0(6,nddl ) Inddl (2.12) Note 2. Dans le cas d’un bras de robot, le corps racine est généralement fixé au sol. Dans le cas de l’ hv, le corps racine n’est pas fixé. Il est libre et on ne peut pas limiter son mouvement (τbutée ) ni le commander (τcommande ). − N (q, q̇) : matrice associée aux effets de Coriolis et centrifuges. − G : accélération de la pesanteur exprimée en coordonnées généralisées. G= 0 0 −g 03+nddl Par la suite, le modèle dynamique d’un robot s’écrit : M̃ (Ṫ − G) + N T = L τ + C t W 20 (2.13) (2.14) 2.4. MODÈLES D’INTERACTION 2.4 2.4.1 Modèles d’interaction Liaison unilatérale : contact ponctuel avec frottement (a) Cône exact / linéarisé. (b) Contraintes de non-glissement. Figure 2.2 – Cône de frottement linéarisé. 2.4.1.1 Simulation Le simulateur utilise des contacts ponctuels avec frottement. La loi de Coulomb modélise les forces de frottement qui s’opposent au glissement des surfaces en contact : kfct k ≤ µ fcn (2.15) avec : • fcn : force de contact normale ; • fct : force de contact tangentielle ; • µ : coefficient de frottement sec. Le contact est adhérent si la force de contact est à l’intérieur du cône de frottement. Si elle est sur le bord, il peut y avoir glissement. Cette inégalité est non linéaire. 2.4.1.2 Commande Pour un calcul plus rapide de la commande, il peut être intéressant detsimplifier ce modèle en facettisant par exemple le cône de frottement. Soit fc = fcx fcy fcz , une force de contact. Cette force est adhérente si elle est dans le cône de frottement discrétisé, c’est à dire la force de contact est dans le bon demi-espace formé par chacune des facettes (figure 2.2(b)). Exemple de discrétisation du cône (na = 4, nombre de facettes). Le repère de contact a → pour origine le centre du cône. La normale au contact est suivant l’axe − z . L’équation des plans de chaque facette, passant par l’origine, s’exprime très simplement. La distance de la force de contact à chaque plan s’écrit comme une combinaison linéaire des inconnues (fcx , fcy , fcz ). Enfin, la condition d’appartenance de la force de contact au cône s’exprime comme un ensemble de contraintes inégalités sur ces distances : 21 CHAPITRE 2. DESCRIPTION DU MODÈLE +fcx +f cx −fcx −fcx − fcy + µ fcz = 0 + fcy + µ fcz = 0 + fcy + µ fcz = 0 +1 +1 −1 −1 donc − fcy + µ fcz = 0 −1 +1 +1 −1 µ µ f ≥0 µ c µ (2.16) Lorsque la force de contact se situe en bordure du cône de frottement, il peut y avoir glissement. Afin de garantir l’adhérence dans tous les cas, la loi de commande utilise un coefficient de frottement légèrement inférieur à celui de la simulation. 2.4.2 Liaison bilatérale : torseur d’effort résultant d’un actionnement de préhension Afin que l’hv saisisse des prises ou des objets avec ses mains, un modèle de préhension est nécessaire. Dans un souci de simplification, la main n’est pas représentée sous la forme d’un système poly-articulé. On se contente de modéliser dans la simulation et la commande, un torseur d’effort résultant d’un actionnement de préhension. Il s’agit d’une liaison bilatérale. (a) Cube inclus dans une sphère. (b) Force ou moment contraint dans un cube. (c) Dodécaèdre inclus dans une sphère. Figure 2.3 – Saturation de la force et/ou du moment de préhension. La commande calcule explicitement les efforts résultant d’un actionnement de préhension. Avec une capacité d’actionnement limitée, l’hv ne peut appliquer que des efforts bornés. Idéalement, la saturation isotropique de l’effort de préhension est souhaitée. Mais c’est une contrainte non linéaire. Par simplification, on ne contraint que certaines directions de l’espace, ce qui revient à borner la force par un polytope, par exemple : un cube (figure 2.3(a)) ou un dodécaèdre (figure 2.3(c)) inclus dans la sphère. Ainsi, un ensemble de contraintes inégalités constituent la saturation de la force et du moment de préhension. Par exemple, la saturation de l’effort de préhension Wp dans un cube (figure 2.3(b)) revient à définir la norme de |Wp | comme étant : |Wp | ≤ Wpmax |fx | ≤ fxmax |fy | ≤ fymax |f | ≤ f max z z |mx | ≤ mmax x |my | ≤ mmax y |mz | ≤ mmax z Wp = 22 fx fy fz mx my mz Wpmax = fxmax fymax fzmax mmax x mmax y mmax z (2.17) Introduction à la commande Ce mini chapitre est une introduction aux chapitres 3, 4 et 5, consacrés à la commande de l’hv. Les deux problématiques principales traitées sont : A – Pour l’équilibre robuste, il s’agit de : 1 – Définir et quantifier l’équilibre : l’hv évolue dans un environnement complexe, avec des configurations de contacts et de prises non coplanaires. Définir la position d’équilibre d’un robot tel qu’un hv dans n’importe quelle configuration est un problème complexe, c’est pourquoi plusieurs simplifications sont effectuées. Tout d’abord, la nature et la position des interactions de l’hv avec l’environnement sont supposées connues. De plus, on se limite à déterminer un équilibre statique. Enfin, seule la stabilité du CdM de l’hv est étudiée. On fait abstraction de la cinématique. Finalement, l’objectif est la détermination de la position du CdM équilibrée en statique en fonction d’une configuration de contact et de prise connue. L’introduction des marges de stabilité permet de déterminer une position de CdM stable et robuste. La formulation et les justifications de cette approche sont détaillées dans le chapitre 3. 2 – Assurer l’équilibre : l’objectif est de déterminer les actions motrices permettant à l’hv d’atteindre la position d’équilibre précédemment calculée. La figure 2.4 présente une version très simplifiée du problème à traiter. Figure 2.4 – Première version de la boucle d’asservissement de la commande de l’hv. Lorsqu’un humain est perturbé, il cherche à s’équilibrer au mieux. Ce retour à l’équilibre n’est pas toujours aussi rapide que l’on souhaite et peut même s’avérer impossible. Il dépend notamment de ses prises sur l’environnement, de sa posture au moment de la perturbation, du revêtement du sol. Autant de considérations prises en compte dans la commande sous forme de critères de priorités variables. Le choix de l’ordre des priorités est justifié. Tout d’abord, lors d’une 23 reprise d’équilibre, il faut absolument garantir les interactions de l’hv avec l’environnement. Ses contacts ne doivent pas glisser ou être rompus, ce qui aggraverait sa perte d’équilibre. D’autre part, tout système mécanique, même déséquilibré, doit vérifier les lois de la physique. Le bilan des efforts s’appliquant sur l’hv doit être respecté. La prise en compte de la dynamique est un point clé pour obtenir un réalisme physique de la gestion d’équilibre. Sous respect de ces deux contraintes, l’hv tente d’atteindre du mieux possible sa position d’équilibre. Ces choix sont formalisés dans un problème d’optimisation sous contraintes : – Contraintes : • les interactions de l’hv doivent être maintenues ; • le bilan des efforts s’appliquant sur l’hv doit être respecté. – Optimisation : atteindre au mieux la position d’équilibre statique. La formulation est détaillée dans le chapitre 4. La commande, pour conserver l’équilibre, se décompose en deux grandes étapes successives (figure 2.5) : – “Calcul CdM consigne”, robuste par rapport à l’état des contacts (chapitre 3) ; – “Calcul couples d’actionnement” pour atteindre ce CdM de consigne (chapitre 4). Plus précisément, on calcule dans une première étape la position du CdM de consigne permettant à l’hv d’être équilibré en statique par rapport à la configuration des contacts et des prises. Dans cette étape, on ne tient pas compte de la configuration articulaire du robot, l’hv se réduisant à son CdM. Ces travaux ont été en partie traités dans la thèse d’Antoine Rennuit [Ren06]. Dans une deuxième étape, on asservit la position du CdM de l’hv vers le CdM de consigne calculé précédemment en prenant en compte la posture de l’hv. B – Gestions des tâches : Aux deux chapitres précédents viennent s’ajouter un troisième et dernier chapitre concernant la commande. Le chapitre 5 traite de la gestion des tâches, qui s’intègre à la commande de l’équilibre de l’hv. Pour augmenter l’autonomie de l’hv et enrichir ses comportements, un objectif global (exemple : peindre) est alors décomposé en un ensemble d’actions élémentaires se traduisant en critères et contraintes pour la loi de commande. La mise en œuvre de ces comportements ainsi que les aspects programmation sont présentés. Enfin, une gestion des priorités entre les tâches conflictuelles est proposée. Un graphique global du fonctionnement de la commande est présenté figure 2.6. Figure 2.5 – Schéma global des deux étapes de la commande. 24 Figure 2.6 – Schéma global de la commande. 25 CHAPITRE 3 Définir et quantifier l’équilibre l est difficile de définir et quantifier l’équilibre de l’humain virtuel dans une configuration I de contact et de préhension non-coplanaire. Un hv debout sur un sol plat doit avoir son CdM au centre du polygone de sustentation. Mais dans une configuration non-coplanaire, la localisation du CdM stable n’est pas évidente. Les objectifs de ce chapitre sont de déterminer automatiquement des consignes stables (localisation du CdM, efforts de précontraintes) permettant à l’ hv d’éventuellement se “cramponner” à son environnement. Afin d’évaluer la stabilité d’une posture, en terme de robustesse à des efforts de perturbation appliqués sur le CdM, un critère de marge de stabilité est présenté. En s’appuyant sur des résultats liés jusqu’alors à la manipulation (X. Zhu et al. [ZDL01] [ZDW03]), cette nouvelle formulation considère non pas une direction de perturbation mais un ensemble convexe de perturbations. 27 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE Sommaire 3.1 3.2 3.3 3.4 3.5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2.1 Définir l’équilibre . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2.2 Quantifier l’équilibre . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Contributions et positionnement . . . . . . . . . . . . . . . . . . . . . . 3.1.4 Présentation du plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Centre de Masse de consigne non robuste . . . . . . . . . . . . . . . . 3.2.1 Présentation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Contraintes égalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2.1 Statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2.2 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Contraintes inégalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3.1 Localisation du Centre de Masse . . . . . . . . . . . . . . . . . 3.2.3.2 Non-glissement des contacts . . . . . . . . . . . . . . . . . . . 3.2.3.3 Saturation des efforts de préhension . . . . . . . . . . . . . . . 3.2.3.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4.1 Centre de Masse désiré . . . . . . . . . . . . . . . . . . . . . . 3.2.4.2 Forces de contact désirées . . . . . . . . . . . . . . . . . . . . . 3.2.4.3 Efforts de préhension désirés . . . . . . . . . . . . . . . . . . . 3.2.4.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande de posture robuste . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Présentation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Introduction d’une marge de stabilité dans l’équation de la statique . . 3.3.3 Introduction de marges de stabilité dans les contraintes inégalités . . . . 3.3.4 Amplitude de perturbation maximale : formulation LP . . . . . . . . . . 3.3.5 Équilibre à volume de perturbation donné : formulation QP . . . . . . . 3.3.6 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prise en compte de la posture de l’hv . . . . . . . . . . . . . . . . . . 3.4.1 Introduction de marges de stabilité dans l’équation de la statique . . . . 3.4.2 Introduction de marges de stabilité dans les contraintes inégalités . . . . 3.4.3 Amplitude de perturbation maximale : formulation LP . . . . . . . . . . 3.4.4 Efforts de contact et efforts internes pour des perturbations admissibles : formulation QP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . 28 29 29 29 29 30 30 30 31 31 32 32 33 33 33 34 34 34 34 34 34 35 35 35 36 36 36 37 37 38 39 41 41 42 42 43 44 3.1. INTRODUCTION 3.1 Introduction 3.1.1 Problématique Les objectifs de ce chapitre sont multiples. Tout d’abord, déterminer la meilleure posture de l’hv en fonction d’une configuration de contacts avec frottement sec et de prises connue. Cette posture idéale est une consigne pour la commande (chapitre 4). De plus, le calcul d’efforts de précontrainte autorise l’hv à se cramponner à l’environnement. Ainsi, ces efforts permettent à l’hv de résister du mieux possible à un ensemble d’efforts de perturbation. Enfin, un critère de stabilité évalue la pertinence d’une posture. L’adhérence des contacts ainsi que les limitations d’actionnement de l’hv sont autant de contraintes à prendre en compte. 3.1.2 3.1.2.1 État de l’art Définir l’équilibre P. Bidaud et al. [BBM09] proposent une définition de l’équilibre de l’hv : "L’équilibre se définit par opposition à la chute ("perte d’équilibre"), état qui intègre également l’intention du sujet dans son activité physique. [. . . ] un certain nombre de moyens utilisables pour observer une instabilité (glissement ou décollement) des appuis avec l’environnement physique qui conduirait à une perte de contrôle de l’état postural pour des humains virtuels." Dans le cas multi-contacts coplanaires, les caractérisations les plus simples de l’équilibre sont basées sur l’appartenance d’un point d’intérêt particulier à une zone (à définir) de l’espace opérationnel. Les critères permettent de définir l’équilibre d’un hv lorsque ses deux jambes s’appuient sur un sol plat. Un système poly-articulé peut rester en équilibre statique si et seulement si la projection verticale de son Centre de Masse (CdM) est à l’intérieur du polygone de sustentation convexe formé par les points de contacts (R.B. McGhee et al. [MF68]). D’autre part, M. Vukobratovic et al. [VS74] introduisent le Zero Moment Point (zmp). Dans le cas de la marche bipède, les efforts inertiels et de Coriolis sont pris en compte. Ce point est défini comme étant l’unique point du plan où le moment du torseur des effets inertiels et de gravité exercés sur le système est normal au plan. Ces approches sont difficilement généralisables au cas multi-contacts non coplanaires. T. Bretl et al. [BRL03] [BLR05] ont traité le problème des multi-contacts non coplanaires dans le cas d’un robot constitué de trois membres. Le robot marche sur un terrain dénivelé non coplanaire, évitant la chute par la seule action de ses pieds. Le frottement sec est pris en compte. Il change ses appuis par des mouvements quasi-statiques. Pour planifier des mouvements sûrs, il est nécessaire de tester ces contraintes d’adhérence pour chaque posture possible à chaque pas de déplacement. Il existe des solutions : chercher explicitement les forces de contact pour chaque posture ou pré-calculer le polygone de support et vérifier que le CdM du robot lui appartient. Cette approche est la plus proche de la nôtre. Yizhar Or et Elon Rimon [OR06] [OR04] caractérisent l’équilibre robuste dans un environnement 3D sous gravité avec 3 contacts non coplanaires. La zone d’évolution du centre de masse est un prisme vertical convexe. Cette méthode n’est pas généralisable à n-contacts non coplanaires. H. Hirukawa et al. [HHH+ 06] proposent un critère de stabilité portant sur les contacts d’un robot humanoïde. La méthode vérifie s’il existe des forces de contact des pieds admissibles pour 29 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE des efforts appliqués au CdM du robot. Ce critère peut être utilisé pour déterminer la stabilité des contacts du pied lorsque le robot marche sur un terrain accidenté et/ou quand ses mains sont en contact avec l’environnement, avec une friction suffisante. Le critère proposé peut se substituer au zmp. Cependant cette approche est difficilement généralisable. K. Harada et al. [HKKH06] [HKF+ 07] travaillent sur l’équilibre dynamique d’un robot humanoïde durant les tâches de manipulation. Leur robot humanoïde pousse un objet mais leur formulation est difficilement généralisable. 3.1.2.2 Quantifier l’équilibre La robustesse peut être caractérisée par la plus “petite” perturbation permettant de déstabiliser l’hv. On s’intéresse à quantifier l’équilibre en terme de stabilité vis-à-vis d’un ensemble de perturbations. On considère souvent un sous-espace de perturbations simple à manipuler comme les hypersphères. M. Teichmann [Tei96] montre que cette quantification dépend des coordonnées choisies pour exprimer les efforts s’appliquant sur l’objet saisi. Il propose une métrique invariante pour évaluer la qualité d’une prise. X. Zhu et al. [ZDL01] [ZDW03] présentent une mesure de qualité pour une préhension à plusieurs doigts, qui mesure l’amplitude maximale pour un effort qui peut être compensé par la prise dans le cas le plus contraignant. Les directions de perturbations ne sont pas traitées simultanément mais successivement, en résolvant autant de problèmes de programmation linéaire que de perturbation. Bien que cette méthode caractérise la robustesse réalisable, elle ne donne pas la commande permettant de résister à un polytope de perturbations. 3.1.3 Contributions et positionnement En partant des travaux de X. Zhu et al. [ZDL01] [ZDW03], un calcul de stabilité adapté aux problématiques de l’hv a été développé. Il a l’avantage de prendre en compte un polytope de perturbation. Ainsi, un ensemble de directions de perturbation est traité simultanément et non chaque direction une à une. Plusieurs indicateurs de robustesse sont développés. Ils déterminent l’amplitude maximale du polytope compensable par des efforts admissibles. Un premier indicateur considère les limitations sur la zone d’appartenance du CdM. La détermination de la localisation du CdM robuste et des efforts de précontrainte permettent à l’hv d’adopter la meilleur commande pour résister à un ensemble de perturbations. Mais ce calcul ne considère pas les limitations motrices. La saturation des couples articulaires nécessite la connaissance de la posture de l’hv, qui est dans ce cas une inconnue. Prendre en compte comme inconnue à la fois les couples de saturation et la posture de l’hv constitue un problème fortement non linéaire. Un second indicateur de stabilité est alors présenté, considèrant les limitations d’actionnement avec pour pré-requis la connaissance de la posture de l’hv. 3.1.4 Présentation du plan Dans les § 3.2 et 3.3, l’hv est réduit à son CdM. Sa configuration n’intervient pas. Dans § 3.4, la configuration de l’hv est prise en compte et supposée connue. Dans le § 3.2, la position du CdM de consigne de l’hv, notée xconsigne , est calculé. À partir cdm d’efforts de contact désirés et d’une configuration de contact et prise connue, la position du CdM 30 3.2. CENTRE DE MASSE DE CONSIGNE NON ROBUSTE Figure 3.1 – Entrées et sorties du calcul de CdM de consigne. vérifie l’équilibre statique du système et l’adhérence des contacts. Cette méthode ne prend pas en compte les marges de stabilité. Donc le CdM de consigne est stable et admissible mais non optimisé pour être robuste à des perturbations extérieures. On optimise des critères plus relatifs à des forces de contact désirées. 3.2 3.2.1 Centre de Masse de consigne non robuste Présentation du problème L’hv est assimilé dans cette partie à un solide non articulé (CdM) soumis à l’accélération de pesanteur et aux efforts de contact. La configuration interne de l’hv n’est pas prise en compte. À partir d’une répartition des efforts de contact désirée, l’objectif est de déterminer la position du CdM équilibré statiquement dans le cas de plusieurs contacts coplanaires ou non coplanaires. Ainsi, un solide est considéré équilibré si : – l’équation de la statique est respectée ; – le CdM calculé est dans la zone désirée : la zone plausible de localisation du CdM est restreinte ; – ses contacts sont non glissants ; – ses efforts de préhension sont bornés. Les conditions d’équilibre précédemment énoncées doivent être respectées. Or, la répartition des efforts de contact désirée ne garantit pas forcément ces conditions d’équilibre et n’est par conséquence pas prioritaire. On formalise un problème d’optimisation sous contraintes de type QP (figure 3.1). 31 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE Les inconnues du système sont : – xconsigne cdm/scène : position du CdM de consigne exprimée dans le repère de la scène ; – fc : forces de contact ; – Wp : efforts de préhension. Wp (1) .. Wp = . Wp (np ) fc (1) .. fc = . fc (nc ) avec : Elles sont regroupées en un vecteur : xconsigne cdm/scène (3.1) Y1 = fc Wp • fc (i) : force du contact i – dim(fc (i)) = 3 ; • nc : nombre de contact pris en compte par la commande ; • Wp (i) : effort de préhension i – dim(Wp (i)) = 6 ; • np : nombre de torseur d’effort résultant d’un actionnement de préhension prise en compte par la commande. Dans le cas simple, lorsque l’hv est debout sur un sol plat, il applique le même effort sur chaque pied. La répartition des forces de contact est alors homogène entre les différents contacts pied gauche et pied droit. Ces efforts de contact désirés font partie du critère d’optimisation. La méthode d’optimisation mise en œuvre requiert la non-singularité de Q vis-à-vis des inconnues, par conséquent l’optimisation est également appliquée sur la position du CdM désirée exprimée dans le repère scène, notée xdes cdm/scène . Grâce aux priorités relatives aux différents critères d’optimisation, un fort poids est mis sur le critère des efforts de contact, ce qui revient finalement à calculer la position d’équilibre du CdM pour une répartition homogène des forces de contact. 3.2.2 Contraintes égalités Les contraintes égalités comprennent uniquement l’équation de la statique. 3.2.2.1 Statique On écrit l’équation de la statique d’un système soumis à la pesanteur et à des forces de contact. Le bilan des efforts est effectué au centre du repère scène. scène scène scène Wmasse + Wcontact + Wprehension =0 (3.2) avec : scène : efforts de gravité s’appliquant sur le solide hv ; • Wmasse scène : efforts de contact s’appliquant sur le solide hv ; • Wcontact scène : efforts de préhension s’appliquant sur le solide hv. • Wprehension scène en fonction de xconsigne , les notations présentées dans l’annexe B sont Pour exprimer Wmasse cdm/scène utiles : 32 3.2. CENTRE DE MASSE DE CONSIGNE NON ROBUSTE scène Wmasse −t → m− g 03,1 = Adscène H cdm " I3 = h consigne i xcdm/scène 0 0 0 0 0 0 = 0 −m g mg 0 0 0 03,3 # → m− g 03,1 I3 0 0 0 0 0 xconsigne + −m g 0 cdm/scène 0 0 0 0 0 = Excdm xconsigne cdm/scène + P (3.3) scène en fonction De même, il existe deux matrices permettant d’exprimer respectivement Wcontact scène de fc et Wprehension en fonction de Wp : ( 3.2.2.2 scène Wcontact = Efc fc (3.4) scène Wprehension = EW p W p Synthèse Finalement, l’équation 3.2 s’écrit : A Y + b1 = 0 1 1 avec 3.2.3 A1 = Excdm Ef c EWp (3.5) et b1 = P Contraintes inégalités Les contraintes inégalités comprennent : – la restriction de la zone du CdM ; – le non-glissement des contacts ; – la saturation des efforts de préhension. 3.2.3.1 Localisation du Centre de Masse Afin de ne pas chercher dans tout R3 , la zone plausible de localisation du CdM est restreinte. des/scène La position du CdM doit appartenir à un cube centré sur xcdm , ce qui se traduit par l’inégalité suivante : t des xmin 1 1 1 = x − δx cdm cdm/scène consigne max xmin avec (3.6) t cdm ≤ xcdm/scène ≤ xcdm xmax = xdes 1 1 1 cdm cdm/scène + δx et δx : distance maximale de déplacement du CdM par rapport au xdes cdm suivant une direction. 33 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE 3.2.3.2 Non-glissement des contacts Dans le § 2.4.1.2, la condition d’appartenance d’une force de contact au cône de frottement linéarisé s’exprime comme une contrainte inégalité Eci fc (i) + dci ≥ 0. La généralisation de cette contrainte au cas n-contacts s’exprime ainsi : (3.7) Ec fc + dc ≥ 0 3.2.3.3 Saturation des efforts de préhension Dans le § 2.4.2, la saturation de la force et du moment de préhension Wp dans les trois directions de l’espace revient à définir les contraintes inégalités suivantes : ( Wp ≤ Wpmax max |Wp | ≤ Wp donc (3.8) −Wp ≤ Wpmax 3.2.3.4 Synthèse En regroupant en un système les contraintes inégalités portant sur la localisation du CdM (équation 3.6), le non-glissement des contacts (équation 3.7) et la saturation de l’effort de préhension (équation 3.8), on obtient : C Y + d1 ≥ 0 1 1 avec 3.2.4 0 +I3 0 −I3 0 0 0 C1 = 0 Ec 0 0 +I(6 np ) 0 0 −I(6 np ) et (3.9) −xmin cdm +xmax cdm d1 = dc max +Wp +Wpmax Optimisation L’optimisation doit satisfaire trois critères : – atteindre la position désirée du CdM exprimé dans le repère scène ; – atteindre les efforts de contact désirés ; – atteindre les efforts de préhension désirés. 3.2.4.1 Centre de Masse désiré Dans la formulation du problème, la position du CdM doit être optimisée : xdes cdm/scène . À ce critère est associée une matrice de pondération qui s’écrit Qcdm = pcdm I3 avec pcdm un scalaire. En mettant un poids faible à ce critère par rapport aux autres critères, le problème se réduit à un système ayant en entrée des forces de contact désirées, et en sortie, une position de CdM de consigne. 3.2.4.2 Forces de contact désirées La répartition des forces de contact désirée intervient dans le vecteur fcdes . Pour une posture érigée, le poids de l’hv est distribué entre ses pieds gauche et droit. De même, si l’hv s’appuie sur un mur, les forces de contact de la main sont spécifiées dans ce vecteur fcdes . La 34 3.2. CENTRE DE MASSE DE CONSIGNE NON ROBUSTE matrice Qfc pondère les forces de contact désirées entre elles et par rapport aux autres critères de l’optimisation. 3.2.4.3 Efforts de préhension désirés Les efforts de préhension désirés sont spécifiés dans le vecteur Wpdes . Dans certains cas, ces efforts sont minimisés. Ainsi la position du CdM de consigne qui minimise les efforts de préhension est déterminée. La matrice QWp pondère les efforts de préhension par rapport aux différents critères. 3.2.4.4 Synthèse L’optimisation quadratique des critères évoqués s’exprime ainsi : arg min Y1 1 kY1 − Y1des k2Q1 2 avec Y1des 3.2.5 1 t 1 t = arg min Y1 Q1 Y1 − Y1t Q1 Y1des + Y1des Q1 Y1des 2 2 Y1 1 t t = arg min Y Q1 Y1 + Y1 r1 2 1 Y1 xdes Qcdm 0 cdm/scène des 0 Qfc et Q1 = = fc 0 0 Wpdes (3.10) 0 0 et r1 = −Q1 Y1des QWp Exemple xconsigne cdm/scène xdes cdm/scène fc (1) ≃ fcdes (1) fc (3) ≃ fcdes (3) fc (2) ≃ fcdes (2) xc (3) xc (2) xc (1) Figure 3.2 – Exemple de calcul de la position du CdM de consigne. L’axe z est vertical. Afin d’illustrer la formulation précédente, on étudie l’exemple d’un système à trois contacts coplanaires. La position du CdM désirée est indiquée sur la figure 3.2. La répartition des efforts 35 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE de contact désirés est la suivante : 2 et 3. fcdes 1 2 du poids du système sur le contact 1, et fcdes (1) = fcdes (2) fcdes (3) fcdes (1) = 0 0 fcdes (2) = 0 0 des fc (3) = 0 0 avec mg 2 mg 4 mg 4 1 4 sur les contacts t t (3.11) t Il n’y a pas de torseur d’effort résultant d’un actionnement de préhension dans cet exemple. Ainsi, la matrice de pondération est constituée d’une pondération du CdM et d’une pondération des forces de contact : Q1 = Qcdm 0 0 Qfc avec Qcdm = 1 I3 et Qfc = 1000 I9 (3.12) Dans cette partie, le CdM de consigne calculé est stable et admissible mais non optimisé pour être robuste à des perturbations extérieures. En partant de cette formulation, les marges de stabilité sont introduites dans la section suivante. 3.3 3.3.1 Commande de posture robuste Présentation générale À partir de la formulation du problème précédemment énoncé (§ 3.2), un critère de stabilité et des efforts de précontraintes sont calculés. Les marges de stabilité sont introduites comme un effort de perturbation ∆Wpert. qui est appliqué au CdM. Cet effort peut être décomposé en une amplitude λ et une direction normalisée ∆wpert. : ∆Wpert. = λ ∆wpert. . Pour une direction de perturbation ∆wpert. choisie, on détermine : – un critère de stabilité : dans le § 3.3.4, l’effort de perturbation admissible maximal est calculé. Il s’agit de l’amplitude maximale de perturbation λmax pour ∆wpert. donnée, qui peut être compensé par une variation d’efforts de contact et de préhension. Ce problème est mis sous la forme d’une optimisation LP ; – les efforts de précontraintes : dans le § 3.3.5, pour une perturbation admissible inférieure à λmax , la localisation du CdM, les efforts de contact et de préhension de précontrainte sont déterminés. Le problème est mis sous la forme d’une optimisation QP. A. Rennuit [Ren06] a précédemment étudié en partie cette problématique. 3.3.2 Introduction d’une marge de stabilité dans l’équation de la statique L’équation 3.2 de la statique peut s’écrire : Excdm xconsigne cdm/scène + Efc fc + EWp Wp + P = 0 (3.13) Une perturbation ∆Wpert. introduite dans l’équation 3.13 entraîne une variation d’efforts de contact et de préhension respectivement notée ∆fc et ∆Wp . Seules les perturbations compensées par un ensemble réalisable d’efforts de contact et de préhension sans que le CdM se déplace (∆xconsigne cdm/scène = 0) sont considérées. E1 ∆Y1 + ∆Wpert. = 0 (3.14) t avec E1 = Efc EWp et ∆Y1 = ∆fc t ∆Wp t . Pour les problématiques de l’hv, ce système (équation 3.14) est généralement sous-contraint donc il y a une infinité de solution ∆Y1 . 36 3.3. COMMANDE DE POSTURE ROBUSTE On choisit la solution du problème d’optimisation suivant : 1 arg min k∆Y1 k2S1 2 ∆Y1 tel que E1 ∆Y1 + ∆Wpert. = 0 ∆Y1 minimise une énergie potentielle. S1 est une matrice symétrique définie positive telle que S1−1 est homogène à une raideur. Elle peut être construite en utilisant une priorité entre les différentes forces musculaires d’effecteur. Le détail de la construction de cette matrice est laissé en perspective. On résoud analytiquement ce problème en annulant le lagrangien. ∆Y1 = −E1∗ ∆Wpert. E1∗ = S1−1 E1t E1 S1−1 E1t avec −1 (3.15) avec E1∗ une inverse généralisée de E1 . On définit aussi Ef∗c les premières 3 nc lignes de E1∗ et ∗ les dernières 6 n lignes de E ∗ . L’équation 3.15 s’écrit alors : EW p 1 p ( ∆fc = −Ef∗c ∆Wpert. (3.16) ∗ ∆Wp = −EW ∆Wpert. p ∗ ne sont pas les pseudo-inverses respectives de E Note 3. Attention, Ef∗c et EW fc et EWp . p 3.3.3 Introduction de marges de stabilité dans les contraintes inégalités Comme précédemment évoqué, l’introduction d’une perturbation ∆Wpert. dans l’équation de la statique entraîne une variation d’efforts de contact et de préhension respectivement notée ∆fc et ∆Wp . Les contraintes inégalités doivent être respectées. Les forces de contact fc + ∆fc sont adhérentes et les efforts de préhension Wp + ∆Wp sont bornés. En utilisant les changements de variable (3.16), les équations 3.7 et 3.8 s’écrivent dorénavant : ∗ E f − E ∆W + dc ≥ 0 c c pert. f c ∗ + W p − EW ∆Wpert. + Wpmax ≥ 0 (3.17) p − Wp − E ∗ ∆Wpert. + W max ≥ 0 Wp p Une originalité de cette approche est de considérer simultanément plusieurs perturbations : ∆wpert. peut être un vecteur comme dans le § 3.3.1, mais aussi une matrice composée de plusieurs directions de perturbation, formant un polytope de perturbation dans l’espace des torseurs d’effort. On peut choisir la forme de la perturbation, explorer certaines directions plutôt que d’autres, ou toutes les directions équitablement (∆wpert. = I6 ). Pour les contraintes inégalités, les perturbations les plus contraignantes, ligne par ligne, sont retenues. Le système 3.17 se réécrit : # Ec fc + dc − max Ec Ef∗c ∆Wpert. , ~0 ≥ 0 ∗ ~ + Wp + Wpmax − max EW ∆W , 0 ≥0 pert. p − Wp + W max + min E ∗ ∆Wpert. , ~0 ≥ 0 p Wp 3.3.4 " (3.18) ! Amplitude de perturbation maximale : formulation LP L’amplitude maximale de perturbation admissible est calculée en résolvant un problème d’optimisation sous contrainte de type LP. 37 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE Les inconnues du système sont : – λ : amplitude de perturbation ; – xconsigne cdm/scène : position du CdM de consigne exprimé dans le repère scène ; – fc : forces de contact ; – Wp : forces et couples de préhension. On les regroupe sous la forme d’un vecteur : λ xconsigne cdm/scène Y2 = f (3.19) c Wp L’équation de la statique exprimée en fonction des inconnues du problème Y2 constitue la contrainte égalité du système : A Y + b2 = 0 2 2 ( avec A2 = 0 Excdm Ef c EWp b2 = P (3.20) Aux contraintes inégalités énoncées (équation 3.18), on ajoute la contrainte sur la zone d’appartenance du CdM. L’ensemble des contraintes inégalité s’écrivent : C Y + d2 ≥ 0 2 2 (3.21) 0 0 + I3 0 0 0 − I3 0 ∗ ~ 0 Ec 0 − max Ec Efc ∆wpert. , 0 C2 = ∗ ∆w 0 0 0 + I6 np − max EW pert. , ~ p ∗ ∆w + min EW 0 0 0 − I6 np pert. , ~ p h i d = −xmin t xmax t d t W max t W max t t 2 c p p cdm cdm avec L’objectif est de calculer l’amplitude de perturbation λ maximale à l’aide de l’optimisation suivante : arg max (F2 Y2 ) Y2 avec F2 = 1 03+3 nc +6 np (3.22) Les équations (3.20), (3.21) et (3.22) constituent un problème de programmation linéaire. La solution λmax de ce problème est l’amplitude maximale admissible de perturbation pour l’ensemble de directions de perturbation choisies ∆wpert. . 3.3.5 Équilibre à volume de perturbation donné : formulation QP Dans ce paragraphe, l’amplitude de perturbation est connue et notée λ′ ∈ [ 0 , λmax ]. L’objectif est de calculer la position du CdM robuste à l’ensemble de perturbation ∆wpert. et les efforts d’interaction de précontrainte qui permettront à l’hv de se “cramponner” à l’environnement. 38 3.3. COMMANDE DE POSTURE ROBUSTE Les inconnues du système sont : – xconsigne cdm/scène : position du CdM de consigne exprimé dans le repère scène ; – fc : forces de contact ; – Wp : forces et couples de préhension. A Y + b3 = 0 3 3 C Y + d3 ≥ 0 3 3 On les regroupe sous la forme d’un vecteur : xconsigne cdm/scène Y3 = (3.23) fc Wp ( avec Excdm Efc EW p b3 = P + I3 0 0 − I3 0 0 Ec 0 C3 = 0 0 0 + I6 np 0 0 − I6 np avec − xmin cdm + xmax cdm − max Ec Ef∗c ∆wpert. , ~0 λ′ + dc d3 = ∗ ∆w ~0 λ′ , + Wpmax − max EW pert. p ∗ max + min EWp ∆wpert. , ~0 λ′ + Wp et A3 = (3.24) (3.25) Le problème énoncé est sous-contraint sauf si λ′ = λmax . Il y a beaucoup de solutions qui respectent ces contraintes. Ainsi, comme dans le § 3.2.4, les inconnues du système sont optimisées. La solution désirée est notée Y3des et la matrice Q3 est la pondération du système. arg min 12 kY3 − Y3des k2Q3 Y3 avec Q3 = diag(Qxcdm , Qfc , QWp ) h it Y3des = xdes t f des t W des t c p cdm (3.26) Le problème de programmation quadratique à résoudre est donc constitué des équations (3.24), (3.25) et (3.26). 3.3.6 Exemples Un cas d’étude illustre l’influence de différents paramètres du calcul de stabilité (figure 3.3). Il s’agit d’une configuration de contact simple : deux contacts ponctuels sur le sol et un contact ponctuel sur le mur. Sur chaque figure, la position du CdM et les forces de contact déterminées sans marge de stabilité sont indiquées en transparence. Le poids du système est réparti de manière homogène entre les deux contacts du sol. Le CdM se situe au milieu de ces deux contacts. À perturbations nulles, une force nulle est trouvée pour le contact sur le mur. Afin de considérer les marges de stabilité, on introduit deux formes de perturbation : à distribution isotropique et unilatérale. Tout d’abord, en réduisant le coefficient de frottement µ, l’amplitude de perturbation maximale diminue (figure 3.3(d)). De plus, lorsque l’effort de perturbation admissible introduit baisse (figure 3.3(e)), on obtient une position de CdM et des forces de contact plus réalisables. Par exemple, la force de contact appliquée sur le mur diminue et le CdM se rapproche de celui calculé sans prise en compte de la robustesse. 39 CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE (a) λ′ = λmax sans la contrainte xmin ≤ cdm xcdm ≤ xmax cdm (b) λ′ = λmax (c) λ′ = λmax (d) λ′ = λmax avec un plus petit µ (e) λ′ = λmax 2 (f) λ′ = λmax Figure 3.3 – Influences des différents paramètres dans le calcul de la marge de stabilité. (a) La posture de l’hv n’est pas robuste. (b) La posture de l’hv est robuste. Figure 3.4 – En atteignant une posture robuste, l’hv se cramponne sur ses prises. Il adopte une configuration répondant le mieux à toutes les directions de perturbation. 40 3.4. PRISE EN COMPTE DE LA POSTURE DE L’HV Enfin, le système résiste à des efforts de perturbation plus importants sans la contrainte de localisation du CdM (figure 3.3(a)). C’est une posture plus robuste. Mais la position du CdM solution est très éloignée de la position obtenue sans prendre en compte les marges de stabilité, ce qui pose des problèmes d’atteinte de la consigne. En effet, les limites articulaires de l’hv ainsi que la configuration des contacts et prises restreignent les mouvements. Il est difficile à priori de savoir si l’hv peut atteindre une position de CdM. Il est préférable de restreindre au préalable la localisation du CdM à une zone plausible. Jusqu’à présent, le CdM est une inconnue du problème. On calcule la position du CdM la plus robuste à des perturbations. Néanmoins, ces calculs ne permettent pas de prendre en compte les limitations d’actionnement de l’hv. Par exemple, les efforts de précontraintes ne sont pas forcément applicable par l’hv. Afin de considérer la saturation des couples d’actionnement, la posture de l’hv est prise en compte et fixe afin de formuler un problème linéaire. 3.4 3.4.1 Prise en compte de la posture de l’hv Introduction de marges de stabilité dans l’équation de la statique Pour la position courante de l’hv, l’amplitude de la perturbation admissible est calculée en prenant en compte les contraintes sur les couples d’actionnement. Le CdM est connu et fixe ainsi que toute la configuration de l’hv. En statique, l’équation de la dynamique se réduit à : L τ + Cct fc + Cpt Wp + M̃ G = 0 (3.27) Une perturbation ∆Wpert. introduite dans l’équation 3.27 entraîne une variation des couples articulaires, d’efforts de contact et de préhension respectivement notée ∆τ , ∆fc et ∆Wp . On considère le système rigide : il n’y a pas de variation de configuration mais uniquement d’efforts. E2 ∆Y2 + ∆Wpert. = 0 (3.28) t avec E2 = L Cct Cpt et ∆Y2 = ∆τ t ∆fc t ∆Wp t . Comme dans le § 3.3.2, ce système (équation 3.28) est généralement sous-contraint donc il y a une infinité de solutions ∆Y2 . On choisit la solution suivante : ∆Y2 = −E2∗ ∆Wpert. E2∗ = S2−1 E2t E2 S2−1 E2t avec −1 (3.29) avec E2∗ une inverse généralisée de E2 . On définit aussi Eτ∗ les nddl premières lignes de E2∗ , Ef∗c les ∗ les 6 n dernières lignes de E ∗ . L’équation 3.29 s’écrit alors : 3 nc lignes suivantes de E2∗ et EW p 2 p ∗ ∆τ = −Eτ ∆Wpert. ∆fc = −Ef∗c ∆Wpert. ∗ ∆Wp = −EW ∆Wpert. p (3.30) ∗ ne sont pas les pseudo-inverses de E , E Note 4. Attention, Eτ∗ , Ef∗c et EW τ fc et EWp respectip vement. L’effort de perturbation s’applique sur le CdM de l’hv et s’exprime ainsi : ∆Wpert. = M̃ 41 λ ∆wpert. 0nddl (3.31) CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE 3.4.2 Introduction de marges de stabilité dans les contraintes inégalités Comme dans le § 3.3.3, les contraintes inégalités doivent être respectées. Jusqu’à présent, il n’était pas possible de prendre en compte les limitations d’actionnement car la position du CdM faisait partie des inconnues du système. Le problème aurait été fortement non linéaire. Dans cette partie, la configuration de l’hv est figée et connue. Les limitations d’actionnement sont introduites sous la forme de contraintes inégalités. Les couples d’actionnement τ + ∆τ sont bornés. De plus, les forces de contact fc + ∆fc sont adhérentes et les efforts de préhension Wp + ∆Wp sont bornés. En utilisant les changements de variable (équation 3.30), les contraintes inégalités s’écrivent : + (τ − Eτ∗ ∆Wpert. ) − τ min ≥ 0 − (τ − Eτ∗ ∆Wpert. ) + τ max Ec fc − Ef∗c ∆Wpert. + dc ∗ + W − E ∆W + Wpmax p pert. W p max − W − E ∗ ∆W p pert. + Wp Wp ≥0 ≥0 (3.32) ≥0 ≥0 On considère simultanément plusieurs directions de perturbations (∆wpert. ). Les contraintes inégalités sont réexprimées, en retenant ligne par ligne les perturbations les plus contraignantes. Le système 3.32 se réécrit : $ ~ + τ −τ − max ∆Wpert. , 0 ≥ 0 − τ + τ max + min Eτ∗ ∆Wpert. , ~0 ≥ 0 Ec fc + dc − max Ec Ef∗c ∆Wpert. , ~0 ≥ 0 max ∗ ~ ∆W , 0 ≥0 + W + W − max E p pert. p Wp − W + W max + min E ∗ ∆W 0 ≥0 p pert. , ~ p Wp ' min 3.4.3 Eτ∗ & (3.33) % Amplitude de perturbation maximale : formulation LP L’amplitude maximale de perturbation admissible est calculée en résolvant un problème d’optimisation sous contrainte de type LP. On les regroupe sous la forme d’un vecteur : λ τ (3.34) Y4 = fc Wp Les inconnues du système sont : – λ : amplitude de perturbation ; – τ : couple articulaire d’actionnement ; – fc : forces de contact ; – Wp : forces et couples de préhension. L’équation de la statique exprimée en fonction des inconnues du problème Y4 constitue la contrainte égalité du système : A Y + b4 = 0 4 4 ( avec 42 A4 = 0 L Cct Cpt b4 = M̃ G (3.35) 3.4. PRISE EN COMPTE DE LA POSTURE DE L’HV De même, l’équation 3.33 est exprimée en fonction de Y4 et constitue la contrainte inégalité du système : C Y + d4 ≥ 0 4 4 (3.36) ∗ ∆w ~ , 0 + Inddl 0 0 − max E pert. τ − Inddl 0 0 + min Eτ∗ ∆wpert. , ~0 − max Ec Ef∗c ∆wpert. , ~0 0 Ec 0 C4 = ∗ ∆w 0 + I6 np 0 0 − max EW pert. , ~ p ∗ ∆w + min EW 0 − I6 np 0 0 pert. , ~ p t d4 = τ maxt τ maxt dc t Wpmax t Wpmax t avec L’objectif est de calculer l’amplitude de perturbation λ maximale à l’aide de l’optimisation suivante : arg max (F4 Y4 ) Y4 avec F4 = 1 0nddl +3 nc +6 np (3.37) Les équations (3.35), (3.36) et (3.37) constituent un problème de programmation linéaire. La solution λmax de ce problème est l’amplitude maximale admissible de perturbation pour l’ensemble de directions de perturbation choisies ∆wpert. . 3.4.4 Efforts de contact et efforts internes pour des perturbations admissibles : formulation QP Dans ce paragraphe, l’amplitude de perturbation est connue et notée λ′ ∈ [ 0 , λmax ]. L’objectif est de calculer les efforts de contact et les efforts internes qui permettront à l’hv de se précontraindre sur l’environnement. Les inconnues du système sont : – τ : couple articulaire d’actionnement ; – fc : forces de contact ; – Wp : forces et couples de préhension. A Y + b5 = 0 5 5 C Y + d5 ≥ 0 5 5 On les regroupe sous la forme d’un vecteur : τ Y5 = fc (3.38) Wp ( avec avec A5 = L Cct Cpt b5 = M̃ G + Inddl − Inddl 0 C5 = 0 0 43 0 0 0 0 0 Ec 0 + I6 np 0 − I6 np (3.39) (3.40) CHAPITRE 3. DÉFINIR ET QUANTIFIER L’ÉQUILIBRE et + τ max + τ max d5 = + dc + Wpmax + Wpmax − max Eτ∗ ∆wpert. , ~0 λ′ + min Eτ∗ ∆wpert. , ~0 λ′ ∗ ~ − max Ec Efc ∆wpert. , 0 λ′ ∗ ∆w ~ − max EW , 0 λ′ pert. p ∗ ∆w + min EW 0 λ′ pert. , ~ p Le problème énoncé est sous-contraint sauf si λ′ = λmax . Il y a beaucoup de solutions qui respectent ces contraintes. Ainsi, comme dans le § 3.2.4, les inconnues du système sont optimisées. La solution désirée est notée Y5des et la matrice Q5 est la pondération du système. arg min 12 kY5 − Y5des k2Q5 Y5 Q5 = diag(Qτ , Qfc , QWp ) it h Y5des = τ des t f des t W des t c p avec (3.41) Le problème à résoudre est donc constitué des équations (3.39), (3.40) et (3.41). C’est un problème de programmation quadratique. 3.5 Conclusion et perspectives Section / Sous-Section Possibilités offertes par les différentes formulations 3.2 3.3.4 3.3.5 3.4.3 Type d’optimisation QP LP QP LP 3.4.4 QP hv réduit à CdM CdM CdM Posture connue non non c non d oui oui e non oui non non Posture a Posture b Permet de calculer xconsigne cdm Prise en compte de τ max oui non non non oui oui Calculer λmax f non oui non oui non Table 3.1 – Bilan du chapitre “Définir et quantifier l’équilibre”. a. b. c. d. e. f. La posture est imposée. La posture est imposée. Le CdM peut être imposé mais on préférera le calcul du § 3.4.3. Le CdM peut être imposé mais on préférera le calcul du § 3.4.4. Ne prend pas en compte le calcul des marges de stabilité ce qui est fait au § 3.3.5 Attention : les λmax ne sont pas comparables entre eux. Dans ce chapitre, des méthodes sont proposées pour déterminer de manière automatique la position du CdM de consigne, et évaluer la stabilité d’une posture pour n-contacts et prises non coplanaires. Le tableau 3.1 synthétise l’ensemble des formulations. On dresse maintenant les avantages et limites de cette approche. Il faut choisir pour une résolution simple entre : – posture fixe et traitement des limites de couples d’actionnement ; – position variable du CdM et pas de traitement des limites des couples d’actionnement. 44 3.5. CONCLUSION ET PERSPECTIVES Avantages de cette approche : – détermine automatiquement un CdM robuste à partir de n’importe quelle configuration de contact et de prise (non coplanaire) ; – fournir un critère de stabilité. Lorsque l’équilibre devient précaire, il faut changer la configuration des contacts : stratégies de reprise d’équilibre complexes. Limites de cette approche : – considère l’humain virtuel comme un système rigide, ce qui n’est pas le cas ; – le CdM calculé n’est pas forcément atteignable ; – compromis entre CdM de consigne et efforts de contact désirés. Dans ce chapitre, les efforts de perturbations sont compensés par une variation admissible des efforts d’interaction, et non par un déplacement du CdM. Considérer le système comme infiniment rigide est une hypothèse très restrictive. La détermination de la raideur articulaire, à partir d’une raideur sur le déplacement du CdM et d’une posture connues, est laissée en perspective. Ce calcul pourra être effectué dans l’hypothèse d’un petit déplacement autour de la position d’équilibre. 45 CHAPITRE 4 Assurer l’équilibre objectif de ce chapitre est de développer un modèle de mannequin actif autonome qui per- L’ met de simuler la gestion de l’équilibre. Perturbé, l’ hv cherche à atteindre une position d’équilibre supposée connue dans ce chapitre (calculée dans le chapitre 3 automatiquement). On présente ici une méthode pour déterminer la commande en couples. Lors d’une reprise d’équilibre, un certain nombre de règles et d’actions, de priorités variables, sont à effectuer. La commande fait des choix quant à ces priorités. Un cadre unifié où toutes les contraintes et objectifs sont traités simultanément est proposé. La mise en œuvre pratique de l’algorithme et le choix des heuristiques sont détaillés. Puis, on justifie la formulation du problème employée. Enfin, les premiers résultats de simulations sont présentés. Tout d’abord, on introduit une interaction (contact ou prise) de l’ hv avec l’environnement au cours de la simulation dans la loi de commande. Ainsi, les comportements de l’ hv sont considérablement enrichis. Ensuite, perturbé, l’ hv peut adopter un réflexe “simple”. Les perturbations importantes nécessitent la mise en œuvre de réflexes “évolués” tels que faire un pas de côté ou mettre les mains en avant pour se retenir sur un mur ou des prises. 47 CHAPITRE 4. ASSURER L’ÉQUILIBRE Sommaire 4.1 4.2 4.3 4.4 4.5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Contribution et positionnement . . . . . . . . . . . . . . . . . . . . . . . 4.1.3 Hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . L’algorithme de commande . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Présentation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Contraintes égalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1 Dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.2 Accélérations des contacts . . . . . . . . . . . . . . . . . . . . . 4.2.2.3 Accélération de préhension . . . . . . . . . . . . . . . . . . . . 4.2.2.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Contraintes inégalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3.1 Saturation des couples articulaires . . . . . . . . . . . . . . . . 4.2.3.2 Gestion des butées articulaires . . . . . . . . . . . . . . . . . . 4.2.3.3 Non-glissement des contacts . . . . . . . . . . . . . . . . . . . 4.2.3.4 Saturation des efforts de préhension . . . . . . . . . . . . . . . 4.2.3.5 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4 Critères à optimiser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4.1 Centre de Masse désiré . . . . . . . . . . . . . . . . . . . . . . 4.2.4.2 Posture désirée . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mise en œuvre algorithmique . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Accélération des contacts . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Critère à optimiser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Réglage des priorités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4 Réglage des gains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Justifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Unicité de l’accélération en coordonnées généralisées de l’hv . . . . . . . 4.4.2 Contraintes de complémentarité . . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Influences du nombre de ddl . . . . . . . . . . . . . . . . . . . . . . . . . Résultats et discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Introduction de nouvelles interactions dans le calcul de la commande . . 4.5.1.1 Appuyer sur le mur . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1.2 Poser le second pied . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1.3 Se lever . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.2 Réflexe “simple” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.2.1 Perturbation sans préhension . . . . . . . . . . . . . . . . . . . 4.5.2.2 Perturbation avec préhension . . . . . . . . . . . . . . . . . . . 4.5.3 Réflexe “évolué” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3.2 Appuyer avec les mains sur l’environnement . . . . . . . . . . 4.5.3.3 Saisir une prise . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3.4 Faire un pas de côté . . . . . . . . . . . . . . . . . . . . . . . . 4.5.4 Choix du réflexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 49 49 49 49 50 50 51 51 52 52 54 54 54 55 56 56 57 57 58 59 61 61 61 62 62 63 64 64 65 65 66 66 66 66 68 68 68 70 70 70 71 72 73 74 4.1. INTRODUCTION 4.1 4.1.1 Introduction État de l’art La commande dynamique permettant d’assurer l’équilibre est souvent dédiée à la problématique de la marche. Une partie de la communauté “Animation assistée par ordinateur” introduit de plus en plus de physique dans ses modèles comme C.K. Liu et al. [LP02] [LHP05], K. Yin et al. [YLvdP07] [YCBvdP08]. V.B. Zordan et al. [ZMCF05] s’intéressent à modifier des comportements de capture de mouvements pré-enregistrés pour traiter des situations nouvelles et imprévues comme une perturbation. A. Goswami (Honda Research Institute) et al. [PCDG06] [RCPG07] s’intéressent à la reprise d’équilibre d’un robot bipède suite à une perturbation. Cette approche permet de spécifier la position du pied permettant au robot de retrouver l’équilibre. Les auteurs proposent une méthode pour apprendre le point de capture ("Capture point"). Ils utilisent un modèle de pendule inverse avec roue libre afin de prendre en compte le moment angulaire. H. Diedam et al. [DDW+ 08] adaptent le positionnement des pieds lors de la marche à l’aide d’une prédiction sur le zmp. P.B. Wieber [Wie00] (inria) propose une formulation d’optimisation intéressante pour le problème de la marche d’un robot. Les forces de contact sont prises en compte dans la loi de commande. On a repris cette formulation générale pour nos développements, avec quelques différences. De même, les travaux de Y. Abe et al. [ASP07] se rapprochent des nôtres. Ils proposent une commande interactive multi-objectifs avec des contacts frottants mais ne considèrent pas la préhension ni l’équilibre robuste. 4.1.2 Contribution et positionnement On propose ici un cadre unifié où toutes les contraintes sont traitées simultanément : forces unilatérales de contact avec frottement, efforts bilatéraux de préhension et couples de commande. Les limitations d’actionnement sont prises en compte. On gère également les butées articulaires. La réaction de l’hv à une perturbation peut être “simple”. L’hv retouve l’équilibre en conservant ses interactions avec l’environnement. En utilisant les marges de stabilité pour la prise de décision, on réalise des réflexes “évolués” en changent les interactions de l’hv avec l’environnement. L’hv peut faire un pas de côté, s’aider d’une prise ou s’appuyer sur un mur pour retrouver son équilibre. Une gestion de la redondance articulaire simple et efficace permet à l’hv d’adapter sa posture automatiquement lorsque ses interactions évoluent. Un grand nombre de situations et de comportements sont traités en utilisant un même jeu de paramètres. On formalise un problème d’optimisation sous contraintes, avec une approche inspirée de P.B. Wieber [Wie00] et Y. Abe et al. [ASP07]. 4.1.3 Hypothèses de travail Par rapport à la technique de “computed torque” (J.Y.S. Luh et al. [LWP80], R.J. Anderson [And89]), on prend en compte des contraintes inégalités, comme par exemple la saturation des couples. Les méthodes de commande par inversion de modèle sont inadaptées. La prise en compte du modèle de contact dans la commande nécessite de résoudre des contraintes égalités, inégalités et de complémentarité. C’est un problème d’optimisation complexe qui pourrait être 49 CHAPITRE 4. ASSURER L’ÉQUILIBRE résolu par une méthode de Programmation Quadratique Séquentielle (SQP). Pour pallier à cette difficulté, on se contente de formuler un problème QP (§ 4.4.2). Bien que la résolution du problème détermine les efforts de contact, les accélérations et les couples internes, c’est bien uniquement ces derniers qui nous intéressent pour la commande de l’hv. 4.2 4.2.1 L’algorithme de commande Présentation du problème La commande calcule des couples à appliquer à toutes les articulations de l’hv. Afin que l’hv saisisse des prises ou des objets avec ses mains, un torseur d’effort résultant d’un actionnement de préhension est ajouté aux inconnues du système précédemment énoncé. Les inconnues du système sont donc : – τ : couples articulaires ; – Ṫ : accélérations articulaires ; – fc : forces de contact ; – Wp : efforts de préhension. Elles sont regroupés sous la forme d’un vecteur : τ Ṫ (4.1) Y = fc Wp Dans la suite de cette section 4.2, on formalise et complète les hypothèses de travail précédemment énoncé : Non-glissement des contacts : il intervient sur deux inconnues du problème : l’accélération des contacts, qui s’exprime en fonction de l’accélération articulaire à l’aide d’une jacobienne, et les forces de contact. Ces dernières doivent être dans le cône de frottement. C’est la deuxième condition qui garantit le non-glissement. Cette contrainte est non-linéaire. Or, on veut se ramener à un problème linéaire plus facile à résoudre. Pour cela, le cône de frottement est discrétisé (§ 2.4.1.2). Couples articulaires limités : les efforts exercés par l’homme sur l’environnement sont limités par sa force musculaire. La limitation musculaire est représentée dans la commande par une saturation des couples d’actionnement. Efforts de préhension limités : lorsqu’il saisit une prise, l’homme applique un effort pour s’aider à garder son équilibre, comme par exemple dans un bus. Dans la commande, afin de calculer correctement cet effort, l’accélération entre la main et la prise doit être nulle. Tant que la prise est saisie, les deux corps évoluent ensemble. Contrairement aux forces de frottements, les efforts de préhension sont bornés. Il reste à définir le moyen de retrouver une position d’équilibre. Accélération du CdM : en atteignant un CdM stable par rapport à la configuration de ses contacts et des prises saisies, l’hv trouve une position d’équilibre. Dans un système d’ordre 2, c’est l’accélération du CdM qu’il faut commander. Avec un correcteur proportionnel-dérivé, la position et la vitesse du CdM sont commandées par l’intermédiaire d’une accélération, s’asservissant sur des entrées de consigne. 50 4.2. L’ALGORITHME DE COMMANDE Tous ces choix sont formalisés sous la forme de contraintes égalités, inégalités et d’un critère à optimiser. Un schéma de synthèse est présenté figure 4.1. Figure 4.1 – Entrées et sorties de la commande d’hv autonome. 4.2.2 Contraintes égalités Les contraintes égalités comprennent : – l’équation de la dynamique ; – l’accélération des contacts ; – l’accélération de préhension. On les détaille dans la suite de cette section. 4.2.2.1 Dynamique L’équation de la dynamique de l’hv s’exprime ainsi : L τ − M̃ Ṫ + Cct fc + Cpt Wp − N T + M̃ G = 0 (4.2) avec : – Cct : matrice exprimant les forces de contact en coordonnées généralisées ; – Cpt : matrice exprimant les forces de préhension en coordonnées généralisées. Les efforts extérieurs appliqués à l’hv (C t W ) se décomposent dans la loi de commande en force de contact et effort de préhension : Cct fc + Cpt Wp . Les matrices C, M̃ et N sont des données connues du problème, tenues à jour par le simulateur utilisé. Ainsi, les matrices Cc et Cp sont déterminées à partir de la jacobienne C. Les matrices L et G sont connues et constantes. L’équation de la dynamique (équation 4.2) s’exprime facilement en fonction de l’inconnue Y : L −M̃ Cct Cpt Y + M̃ G − N T = 0 51 (4.3) CHAPITRE 4. ASSURER L’ÉQUILIBRE 4.2.2.2 Accélérations des contacts Dans cette partie, l’objectif est d’exprimer les conditions portant sur l’accélération des points de contact en fonction des inconnues du problème. On introduit les notations suivantes : consigne ac/contact (1) ac/contact (1) vc/contact (1) .. .. .. consigne = (4.4) vc = ac ac = . . . consigne ac/contact (nc ) vc/contact (nc ) ac/contact (nc ) avec : • nc : nombre de contacts dont l’accélération est prise en compte ; • vc/contact (i) : vitesse absolue du contact i exprimé dans le repère contact (dim vc/bd (i) = 3) ; • ac/contact (i) : accélération absolue du contact i exprimé dans le repère contact ; • aconsigne c/contact (i) : accélération absolue de consigne du contact i exprimé dans le repère contact. La contrainte portant sur l’accélération des points de contact est de la forme : ac = aconsigne c avec ∀i ∈ [1, nc ] , aconsigne c/contact (i) = 03,1 ac s’exprime en fonction des inconnues du système Y et plus particulièrement Ṫ : ( vc = Cc T ac = Cc Ṫ + Ċc T (4.5) (4.6) La matrice Cc , introduite dans le § 4.2.2.1, permet d’exprimer la vitesse des points de contact en fonction de T . Elle est construite à partir de la jacobienne C. La matrice Ċc est la dérivée de Cc . Grâce aux équations 4.5 et 4.6, Ṫ s’exprime en fonction de l’accélération de contacts de consigne : Cc Ṫ = aconsigne − Ċc T c Finalement, l’équation 4.7 s’écrit en fonction de l’inconnue Y : 0 Cc 0 0 Y + Ċc T − aconsigne =0 c 4.2.2.3 (4.7) (4.8) Accélération de préhension L’accélération de préhension permet de commander la main pour atteindre une prise, suivre une trajectoire ou un objet. Le repère de préhension est le repère “corps” de la main. Dans le cas de l’hv à 32 ddl, il s’agit du repère associé au CdM du corps. Alors que l’accélération des points de contact est asservie uniquement en position, l’accélération de préhension est asservie en position et orientation car il s’agit de corps. On introduit les notations suivantes : consigne ap/bd (1) vp/bd (1) ap/bd (1) consigne .. .. .. (4.9) = vp = ap = ap . . . consigne vp/bd (np ) ap/bd (np ) ap/bd (np ) 52 4.2. L’ALGORITHME DE COMMANDE avec : • np : nombre d’effecteurs dédiés à la préhension dont l’accélération est prise en compte ; • vp/bd (i) : vitesse absolue de préhension i exprimée dans le repère “corps” (dim vp/bd (i) = 6) ; • ap/bd (i) : accélération absolue de préhension i exprimé dans le repère “corps” ; (i) : accélération absolue de consigne de préhension i exprimé dans le repère “corps”. • aconsigne p/bd La troisième contrainte porte sur l’accélération des corps de préhension. Elle est de la forme : ap = aconsigne p (4.10) ap s’exprime en fonction des inconnues du système Y et plus particulièrement Ṫ : ( vp = Cp T ap = Cp Ṫ + C˙p T (4.11) La matrice Cp , introduite dans le § 4.2.2.1, permet d’exprimer la vitesse des corps de préhension en fonction de T . Elle est construite à partir de la jacobienne C. La matrice Ċp est la dérivée de Cp . Grâce aux équations 4.10 et 4.11, Ṫ s’exprime en fonction de l’accélération de préhension de consigne : − C˙p T (4.12) Cp Ṫ = aconsigne p L’accélération des corps de préhension de consigne peut être un asservissement en position et en vitesse vers une consigne (en translation et en rotation). La position de la main est définie par le repère homogène Hp/bd et la position de consigne est définie par le repère homogène consigne consigne Hp/bd . L’écart en orientation entre le repère de consigne Rp/bd et le repère courant Rp/bd t consigne Rp/bd (annexe B). On introduit les est mesuré par la partie antisymétrique de Rp/bd notation suivantes : ∆Xp/bd = consigne rp/bd − rp/bd ∆Rp/bd consigne Hp/bd = " avec h 1 ∆Rp/bd = 2 consigne consigne Rp/bd rp/bd 0 1 i # et consigne Rp/bd t Hp/bd = Rp/bd − Rp/bd t Rp/bd rp/bd 0 1 consigne Rp/bd (4.13) L’accélération de préhension de consigne s’écrit à l’aide d’un correcteur proportionnel-dérivé : consigne aconsigne = k ∆X + µ V − V (4.14) p p p/bd p/bd p p/bd avec : • aconsigne : accélération absolue de consigne des corps de préhension dans leur repère propre ; p • (kp , µp ) : gains de l’asservissement : raideur et amortissement pour l’accélération des corps de préhension ; 53 , CHAPITRE 4. ASSURER L’ÉQUILIBRE • Vp/bd : vitesse des corps de préhension dans le repère “corps” ; consigne • Vp/bd : vitesse de consigne des corps de préhension dans le repère “corps”. Finalement, l’équation 4.14 s’écrit en fonction de l’inconnue Y : 4.2.2.4 0 Cp 0 0 =0 Y + C˙p T − aconsigne p (4.15) Synthèse En regroupant en un système les contraintes égalités portant sur l’équation de la dynamique (équation 4.3), l’accélération des contacts (équation 4.8) et l’accélération de préhension (équation 4.15), on obtient : A Y + b = 0 avec 4.2.3 L −M̃ A = 0 Cc 0 Cp Cct Cpt 0 0 0 0 et (4.16) M̃ G − N T b = Ċc T − aconsigne c consigne C˙p T − ap Contraintes inégalités Dans le problème, plusieurs contraintes inégalités sont prises en compte. Tout d’abord, les couples de commande sont saturés pour représenter la limitation d’actionnement du robot. De plus, une deuxième contrainte inégalité provient des butées articulaires. En effet, on ne peut pas les ignorer pour le calcul des couples de commande, sous peine de trouver des couples moteur susceptibles de violer ces limites. La gestion des butées articulaires porte sur les accélérations articulaires et est expliqué au § 4.2.3.2. Pour garantir le non-glissement des contacts, il faut d’une part contraindre les efforts de contact dans le cône de frottement. Afin de formaliser un QP, cette contrainte est exprimée de manière linéaire, c’est pourquoi le cône de frottement est discrétisé. L’hv peut appliquer des efforts de préhension lorsqu’il a au préalable saisi une prise ou un objet. En théorie, l’actionnement articulaire, qui est saturé, limite indirectement les efforts applicables en bout de chaîne. Cependant, la saturation des couples est difficilement quantifiable et volontairement surestimée. Afin de remédier à cette mauvaise connaissance des couples d’actionnement maximaux, on sature également les efforts de préhension. En résumé, les contraintes inégalités comprennent : – la saturation des couples articulaires ; – la gestion des butées articulaires ; – le non-glissement des contacts ; – la saturation des efforts de préhension. 4.2.3.1 Saturation des couples articulaires On exprime cette contrainte de la manière suivante : 54 4.2. L’ALGORITHME DE COMMANDE τ min ≤ τ ≤ τ max ⇔ ( τ ≤ τ max τ ≥ τ min (4.17) Cette contrainte sur les couples moteurs (équation 4.17) s’exprime facilement en fonction de l’inconnue Y : −Inddl 0 0 0 +τ max Y + ≥0 (4.18) +Inddl 0 0 0 −τ min Note 5. Il est très difficile de trouver dans la littérature des données concernant les couples maximaux pour chaque articulation de l’homme. De plus, ces couples dépendent de différents paramètres, en particulier des angles articulaires. 4.2.3.2 Gestion des butées articulaires (a) Posture initiale. (b) Posture finale : la loi de commande gère les butées articulaires. La main gauche atteint la poignée en position et orientation. (c) Posture finale : la commande ne gère pas les butées articulaires. La main gauche n’atteint pas complètement la poignet. Figure 4.2 – Résultat de simulation. À partir d’une posture initiale, l’hv a pour consigne de saisir une prise avec sa main gauche. La gestion des butées articulaires permet à l’hv d’atteindre en position et orientation la cible. Une méthode simple permettant de prendre en compte les butées articulaires dans la commande est présentée (figure 4.2). À chaque instant, l’inégalité suivante doit être respectée : ∀i ∈ [0, nddl ] , qi ∈ qimin , qimax (4.19) Cette inégalité porte sur l’angle du ddl qi mais elle entraîne une inégalité sur l’accélération articulaire du ddl concerné, q̈i . En effet, qi s’obtient par intégration numérique à partir de q̈i . À un instant k de la simulation, l’accélération articulaire de l’instant k + 1 est obtenue à partir des schémas d’intégrations (annexe C.3) : qi (k + 1) = qi (k) + q̇i (k + 1) dt q̇i (k + 1) = q̇i (k) + q̈i (k + 1) dt ) qi (k+1) = qi (k)+q̇i (k)dt+q̈i (k+1)dt2 (4.20) =⇒ En remplaçant (4.20) dans (4.19), on obtient : 55 CHAPITRE 4. ASSURER L’ÉQUILIBRE qimin ≤ qi (k + 1) ≤ qimax q max − qi (k) − q̇i (k) dt q̈i (k + 1) ≤ i dt2 min q − qi (k) − q̇i (k) dt q̈i (k + 1) ≥ i dt2 =⇒ (4.21) La concaténation des nddl contraintes (4.21) donne la contrainte suivante : q max − q − q̇ dt Lt Ṫ ≤ dt2 min − q − q̇ dt Lt Ṫ ≥ q dt2 (4.22) Les contraintes sur les butées articulaires (équation 4.22) s’exprime en fonction de l’inconnue Y : 4.2.3.3 0 −Lt 0 0 0 +Lt 0 0 Y + " max q̇ dt + q −q− dt2 min q̇ dt − q −q− dt2 # ≥0 (4.23) Non-glissement des contacts La condition de non-glissement s’exprime comme un ensemble de contraintes inégalités. La force de contact calculée dans la commande doit être dans le demi-espace défini par chacune des facettes du cône de frottement. Ainsi, pour la k-ème force de contact, la condition de nonglissement est : ∀k ∈ [1, ncf ], ∀i ∈ [1, na ], Ecki fc (k) + dkci ≥ 0 (4.24) avec : • ncf : nombre de contacts établis ; • na : nombre de facettes du cône de frottement. Ecki fc (k) + dkci correspond à la distance entre fc (k) et la i-ème facette orientée. Une écriture plus synthétique de l’ensemble des contraintes de non-glissement est : Ec fc + dc ≥ 0 (4.25) Les contraintes sur les forces de contact (équation 4.25) s’expriment en fonction de l’inconnue Y : 0 0 Ec 0 Y + dc ≥ 0 (4.26) Note 6. Si les forces de contact s’expriment dans leur repère de contact respectif, dc = 0. 4.2.3.4 Saturation des efforts de préhension La saturation des efforts de préhension (chapitre 2.4.2) s’exprime ainsi : ( Wp ≤ Wpmax |Wp | ≤ Wpmax ⇔ −Wp ≤ Wpmax 56 (4.27) 4.2. L’ALGORITHME DE COMMANDE Soit npf , le nombre d’effort de préhension calculé, les contraintes (équation 4.27) s’expriment en fonction de l’inconnue Y : 4.2.3.5 0 0 0 −I6 npf 0 0 0 +I6 npf Y + +Wpmax +Wpmax (4.28) ≥0 Synthèse En regroupant en un système les contraintes inégalités portant sur la saturation des couples articulaires (équation 4.18), les limites articulaires (équation 4.23), les forces de contact (équation 4.26) et la saturation des efforts de préhension (équation 4.28), on obtient : C Y +d≥0 avec 4.2.4 C= −Inddl +Inddl 0 0 0 0 0 0 0 0 0 0 0 +Lt 0 0 −Lt 0 0 0 Ec 0 0 0 −I6 npf 0 0 +I6 npf (4.29) et +τ max −τ min + qmax −q−q̇ dt dt2 qmin −q− q̇ dt d= − dt2 dc +Wpmax +Wpmax Critères à optimiser Après avoir détaillé les contraintes, on s’intéresse à la définition du critère à optimiser. Il a pour rôle de permettre à l’hv d’atteindre une position d’équilibre connue (calculée dans le chapitre 3). Cette position est la position du CdM stable par rapport à la configuration des contacts et prises. En ce qui concerne les inconnues, l’accélération du CdM, qui s’exprime à l’aide d’une jacobienne en fonction de l’accélération en coordonnées généralisées de l’hv, est optimisée. L’accélération désirée du CdM est obtenue par un asservissement proportionnel-dérivé vers la position du CdM de consigne. (a) Avec le critère sur la posture. (b) Sans le critère sur la posture. Figure 4.3 – Optimisation de la posture de l’hv : influence de l’asservissement vers une posture de référence. 57 CHAPITRE 4. ASSURER L’ÉQUILIBRE En optimisant uniquement le CdM, l’hv peut adopter une grande variété de postures, à cause de la redondance articulaire. Afin de mieux maîtriser cette indétermination, un second critère, portant sur la posture, est ajouté (figure 4.3). Le critère final à optimiser est la somme de deux critères : – l’asservissement vers le CdM de consigne ; – l’asservissement vers une posture de référence. 4.2.4.1 Centre de Masse désiré La position du CdM est optimisée en minimisant l’écart entre l’accélération réelle du CdM noté acdm/bd et l’accélération désirée ades cdm/bd . Dans ce cas, le repère “corps” dans lequel est exprimé le CdM est le corps racine. ades cdm/scène avec : = kcdm consigne − x − v xconsigne + µ v cdm cdm/scène cdm/scène cdm/scène cdm/scène t des ades cdm/bd = Rracine acdm/scène (4.30) • (kcdm , µcdm ) : raideur et amortissement pour l’accélération du CdM ; • xconsigne cdm/scène : position du CdM de consigne, stable par rapport à la configuration des contacts (§ 3.2.1) ; consigne • vcdm/scène : vitesse du CdM de consigne. Il s’agit de la vitesse absolue de l’environnement en interaction avec l’hv lorsqu’il n’est pas perturbé. En générale, cette vitesse est nulle ; • Rracine : orientation du corps racine par rapport au repère scène. acdm/bd s’exprime en fonction des inconnues du système, c’est à dire Ṫ (annexe B.5.2) : ( vcdm/bd = Ccdm T (4.31) acdm/bd = Ccdm Ṫ + Ċcdm T avec : • Ccdm : matrice exprimant la vitesse du CdM en fonction des vitesses articulaires ; • Ċcdm : matrice dérivée de Ccdm . À l’aide de l’équation 4.31, le critère sur l’accélération du CdM s’écrit : 1 des 2 arg min kacdm/bd − acdm/bd kQcdm = . . . 2 Ṫ 1 des 2 arg min kCcdm Ṫ − acdm/bd − Ċcdm T kQcdm = . . . 2 Ṫ t t t des Ccdm Qcdm Ccdm Ṫ − Ṫ Ccdm Qcdm acdm/bd − Ċcdm T = ... 1 t Ṫ arg min 2 Ṫ 1 t t Ṫ Qcdm Ṫ + Ṫ rcdm = arg min 2 Ṫ avec : 58 (4.32) 4.2. L’ALGORITHME DE COMMANDE t • Qcdm = pcdm Ccdm I3 Ccdm ; t • rcdm = −pcdm Ccdm I3 ades − Ċ T ; cdm cdm/bd • pcdm : poids du critère accélération du CdM. 4.2.4.2 Posture désirée L’optimisation de la configuration de l’hv se compose en deux parties : le positionnement du thorax et une posture de référence. On exprime la consigne désirée en accélération du thorax à l’aide d’un asservissement en position et en vitesse vers une consigne (en translation et en rotation). L’écart de position s’écrit : ∆Xthorax/bd = 1 ∆Rthorax/bd = 2 avec des Hthorax/bd = des rthorax/bd − rthorax/bd ∆Rthorax/bd des Rthorax/bd des des Rthorax/bd rthorax/bd 0 1 t et (4.33) Rthorax/bd − Rthorax/bd Hthorax/bd = t des Rthorax/bd , Rthorax/bd rthorax/bd 0 1 avec : • Hthorax/bd : repère homogène définissant la position courante du thorax ; des • Hthorax/bd : repère homogène définissant la position désirée du thorax ; • bd : repère “corps”, ici le thorax. Après de nombreux essais, la configuration la plus réaliste est obtenue lorsque le thorax est au-dessus du CdM, à une hauteur constante (h) qui n’évolue pas au cours de la simulation. L’orientation du thorax doit être verticale. En fonction de la position des pieds, on calcule l’angle β, orientation du thorax suivant l’axe vertical. Ces heuristiques permettent de générer la configuration qui s’adapte automatiquement aux changements de l’environnement et aux configurations des s’écrit : de contacts et de préhensions. Hthorax/bd + cos(β) − sin(β) 0 xconsigne cdm/bd (1) + sin(β) + cos(β) 0 xconsigne des cdm/bd (2) (4.34) = Hthorax/bd 0 0 1 h 0 0 0 1 Dans la suite des calculs, on considère que le thorax est sur la première branche mais pas forcément le premier corps (corps libre qui ne peut pas être actionné). L’accélération désirée du thorax s’exprime alors : des ades (4.35) thorax/bd = kthorax ∆Xthorax/bd + µthorax Vthorax/bd − Vthorax/bd avec : • (kthorax , µthorax ) : raideur et amortissement de l’asservissement du thorax ; 59 CHAPITRE 4. ASSURER L’ÉQUILIBRE • Vthorax/bd : vitesse réelle du thorax ; des • Vthorax/bd : vitesse désirée du thorax. Avec la redondance, il est également nécessaire de donner une posture de référence pour tous les degrés de liberté. La posture initiale de l’hv au début de la simulation sert le plus souvent de référence. L’accélération articulaire désirée s’exprime alors : des des ades (4.36) ddl = kddl qddl − qddl + µddl q̇ddl − q̇ddl avec : • (kddl , µddl ) : raideur et amortissement de l’asservissement des ddl de l’hv ; des : configuration articulaire désirée ; • qddl des : vitesse articulaire désirée. • q̇ddl Finalement, les deux asservissements (équation 4.35) et (équation 4.36) sont regroupés en un seul, noté ades : Ṫ des athorax/bd (4.37) ades = Ṫ ades ddl L’accélération réelle de la configuration de l’hv s’écrit : aṪ = athorax addl avec avec : v = Cthorax T thorax athorax = Cthorax Ṫ + Ċthorax T addl = Lt Ṫ (4.38) • Cthorax : matrice constituée des 6 premières lignes de C, exprimant la vitesse du thorax en fonction de T ; • Ċthorax : matrice dérivée de Cthorax . Finalement, l’équation 4.38 s’écrit : Cthorax Ċthorax Ṫ + T aṪ = Lt 0 (4.39) = AṪ Ṫ + BṪ T À l’aide de l’équation 4.39, le critère sur l’accélération de configuration s’écrit : 1 des 2 arg min kaṪ − aṪ kQposture = . . . 2 Ṫ 1 des 2 arg min kAṪ Ṫ − aṪ − BṪ T kQposture = . . . 2 Ṫ 1 t t t t des Ṫ AṪ Qposture AṪ Ṫ − Ṫ AṪ Qposture aṪ − BṪ T = ... arg min 2 Ṫ 1 t t Ṫ QṪ Ṫ + Ṫ rṪ = arg min 2 Ṫ 60 (4.40) 4.3. MISE EN ŒUVRE ALGORITHMIQUE avec : • QṪ = AtṪ Qposture AṪ • rṪ = −AtṪ Qposture ades − B T Ṫ Ṫ 4.2.4.3 Synthèse Les deux optimisations sur Ṫ sont regroupées : – arg min 12 Ṫ t Qcdm Ṫ + Ṫ t rcdm Ṫ – arg min 12 Ṫ t QṪ Ṫ + Ṫ t rṪ Ṫ arg min 21 Ṫ t Q Ṫ + Ṫ t r avec 4.3 Ṫ Q = Qcdm + QṪ et (4.41) r = rcdm + rṪ Mise en œuvre algorithmique La formulation du problème a été présentée rigoureusement dans le paragraphe précédent. En pratique, des heuristiques, approximations et méthodes complémentaires sont nécessaires. 4.3.1 Accélération des contacts Contact i appartenant au mannequin ∆xic/contact Environnement Figure 4.4 – Distance au contact sphère/parallélépipède. Cette section présente une méthode de commande gérant les décollements de contact. Dans la simulation, les contacts peuvent être rompus. Ce comportement vient en partie du fait que les contacts sont rigides (sphère/plan). On distingue dans la loi de commande deux cas : – collision : dans la simulation, l’hv est en collision avec l’environnement (exemple : la sphère touche le plan). L’accélération de consigne de commande est nulle ; aconsigne c/contact (i) = 03,1 61 (4.42) CHAPITRE 4. ASSURER L’ÉQUILIBRE – non-collision : dans la simulation, l’hv n’est pas en collision avec l’environnement (figure 4.4). On asservit le contact vers l’environnement le plus proche avec un proportionneldérivé. consigne i (i) = k ∆x + µ v (i) − v (i) (4.43) aconsigne c c c/contact c/contact c/contact c/contact avec : • (kc , µc ) : raideur et amortissement pour l’accélération des corps contacts ; • ∆xic/contact : distance minimale entre la sphère et le plan exprimé dans le repère de contact. Les contacts vont toujours chercher à s’établir avec l’environnement le plus proche ; • vc/contact (i) : vitesse du contact i exprimée dans le repère contact ; consigne • vc/contact (i) : vitesse de consigne du contact i exprimée dans le repère contact. Dans la majorité des cas, l’environnement de l’hv est immobile. La vitesse de consigne est alors nulle. 4.3.2 Critère à optimiser La méthode d’optimisation que l’on a mise en œuvre requiert la non-singularité de Q vis-à-vis du vecteur des inconnues, par conséquent l’optimisation est également appliquée sur τ , fc et Wp . Il existe également une raison physique à cette optimisation, à savoir que l’on préfère le “moindre effort”, en particulier pour économiser les moteurs du robot. Ainsi, les critères de minimisation suivants sont effectués : – minimisation des couples articulaires : τ des = 0(nddl ,1) avec Qτ = pτ Inddl ; – minimisation des forces de contact : fcdes = 0(3 ncf ,1) avec Qfc = pfc I3 ncf ; – minimisation des efforts de préhension : Wpdes = 0(3 npf ,1) avec QWp = pWp I3 npf . L’équation 4.41 se complète donc en : arg min 12 Y t Q Y + Y t r avec 4.3.3 Qτ 0 Q= 0 0 Y 0 0 Qcdm + Qposture 0 0 Qfc 0 0 0 0 0 QWp et (4.44) −Qτ τ des +rcdm + r Ṫ r= −Qfc fcdes −QWp Wpdes Réglage des priorités À ce stade, le réglage des priorités est effectué par les valeurs relatives des poids de la matrice Q. Au § 5.3, on présente les grandes lignes d’une autre méthode qui s’apparente aux projecteurs dynamiques. Un poids très faible est affecté aux critères (τ des , fcdes , Wpdes ). Cependant, le poids est non nul pour des problèmes de convergence de l’algorithme sinon la matrice Q n’est pas symétrique définie positive. Un premier réglage des poids est proposé : pcdm > pposture ≫ pτ ≃ pfc ≃ pWp (4.45) L’hv doit atteindre son CdM de consigne pour conserver l’équilibre, ce qui explique que le critère d’optimisation du CdM est plus prioritaire que la posture. Si pτ , pfc ou pWp sont trop 62 4.3. MISE EN ŒUVRE ALGORITHMIQUE importants par rapport à pcdm et pposture , l’équilibre est gêné par les autres critères à satisfaire. Les hypothèses portant sur τ , fc et Wp ont été au préalable formalisés comme des contraintes. Le CdM et la configuration disposent en priorité de l’optimisation. Dans l’optimisation d’une posture, une pondération relative est effectuée entre d’une part la position–orientation du thorax et d’autre part la configuration articulaire. La position désirée du thorax est mise à jour au fur et à mesure de la simulation. Elle dépend du CdM de consigne, qui lui-même dépend de la configuration des contacts. Par contre, on choisit de ne pas mettre à jour la configuration articulaire désirée. C’est pourquoi une pondération relative plus forte est donnée au critère sur la position du thorax. En contrepartie, pour que le thorax puisse évoluer facilement, il est préférable de mettre une plus faible pondération sur les autres ddl. Sans cette pondération, la solution moyenne trouvée n’est pas satisfaisante. 0 Qthorax Qposture = pposture (4.46) 0 Qddl avec : • pposture : coefficient de pondération global de la posture ; • Qthorax : matrice de pondération relative des 6 ddl du thorax ; • Qddl : matrice de pondération relative des nddl . Enfin, on pondère aussi les degrés de liberté entre eux, ce qui influence le comportement du robot. Ainsi, les degrés de liberté avec une plus forte pondération atteignent en priorité leur consigne alors que les autres sont utilisés pour atteindre le CdM de consigne. 4.3.4 Réglage des gains La loi de commande contient de nombreux asservissements. La méthode présentée ici permet un premier réglage des gains. L’équation du mouvement d’un système du second ordre s’écrit : ẍ(t) + 2 ω0 ξ ẋ(t) + ω02 x(t) = 0 (4.47) avec : • ω0 rad.s−1 : pulsation propre non amortie ; • ξ : coefficient d’amortissement. La période propre T0 est la durée en secondes d’une oscillation du système : T0 = 2π ω0 (4.48) L’équation d’un système masse–ressort amorti (équivalent à un correcteur proportionnel dérivé) écarté de sa position d’équilibre est : m ẍ(t) + µ ẋ(t) + k x(t) = 0 avec : 63 (4.49) CHAPITRE 4. ASSURER L’ÉQUILIBRE • m [kg] : masse du système ; • k N.m−1 : raideur du système ; • µ N.s.m−1 : amortissement du système. Un régime apériodique critique (ξ = 1) est recherché. Ce régime correspond à la limite du régime apériodique sans dépassement. C’est le plus rapide des régimes sans dépassement. Les équations 4.47, 4.49 et ξ = 1 donnent : r k µ ω0 = = (4.50) m 2m Exemple d’application : détermination des asservissements pour l’accélération de consigne du CdM. Dans cet exemple, la masse de l’hv est de 70 kg. Une période propre de 2.5 s est suffisante. ( 4.4 4.4.1 k =m µ =2m 2π T0 2π T0 2 = 442 N.m−1 = 352 N.s.m−1 (4.51) Justifications Unicité de l’accélération en coordonnées généralisées de l’hv Problématique : dans le cas où tous les contacts sont établis et le restent dans la simulation, l’objectif de ce paragraphe est de démontrer que l’accélération en coordonnées généralisées du robot calculé dans la loi de commande correspond à celle se produisant dans la simulation sous l’effet de τ . Hypothèses : tout d’abord, on s’intéresse uniquement aux interactions unilatérales de type contact. Les torseurs d’effort résultant d’un actionnement de préhension ne sont pas pris en compte dans cette démonstration. La condition “contacts établis dans la simulation” se traduit par l’égalité suivante : (4.52) asimulation = 0 ⇐⇒ Cc Ṫ + Ċc T = 0 c avec Cc , la matrice exprimant les vitesses de contact en fonction de T . De plus, cette condition implique que des efforts de perturbation ne déstabilisent pas l’hv. Donc, du point de vue de la simulation, les efforts de perturbation n’interviennent pas dans l’équation de la dynamique qui s’écrit : M̃ Ṫ = L τ + Cct fcsimulation − N T + M̃ G Démonstration : M̃ est symétrique définie positive donc l’équation 4.53 s’écrit : Ṫ = M̃ −1 L τ + Cct fcsimulation − N T + M̃ G (4.53) (4.54) Ṫ est définie de manière unique si M̃ −1 Cct fcsimulation est définie de manière unique. En multipliant l’équation 4.54 par Cc , on obtient : Cc Ṫ = Cc M̃ −1 L τ + Cct fcsimulation − N T + M̃ G 64 (4.55) 4.4. JUSTIFICATIONS Soit Cc M̃ −1 Cct fcsimulation = Cc Ṫ − Cc M̃ −1 L τ + Cc M̃ −1 N T − M̃ G En remplaçant Cc Ṫ par −Ċc T , l’équation 4.56 s’écrit : Cc M̃ −1 Cct fcsimulation = −Ċc T − Cc M̃ −1 L τ + Cc M̃ −1 N T − M̃ G (4.56) (4.57) =ν avec ν : vecteur déterminé. L’équation 4.57 implique M̃ −1 Cct fcsimulation défini de manière unique. Par conséquence, Ṫ est définie de manière unique. Conclusion : Les efforts de contact calculés par la simulation peuvent être différents des efforts de contact calculés dans la loi de commande. Cependant, l’accélération Ṫ du robot calculée par la simulation est identique à celle calculé par le QP. Il y a unicité du mouvement de l’hv. 4.4.2 Contraintes de complémentarité En théorie, la relation entre la vitesse normale au contact et la force au contact est soumises aux contraintes de complémentarité suivantes : – maintien du contact : la vitesse normale au contact est nulle, une force au contact peut alors s’appliquer ; – rupture du contact : la vitesse normale au contact est non nulle, la force au contact doit être nulle. Or, les conditions de complémentarité sont difficiles à mettre en œuvre (convergence, temps de calcul . . . ) et ne sont pas prise en compte dans notre formulation de la commande. On gère explicitement la prise en compte des accélérations et des forces de contact à chaque instant k de la simulation. Dans la commande, on impose une accélération de contact nulle, évitant l’interpénétration, le glissement ou la rupture des contacts. Suite à une perturbation, une rupture de contact peut se produire. Dans ce cas, l’effort de contact n’est pas calculé par la loi de commande (tableau 4.1). Instant k−1 k Bloc simulation collision non-collision Bloc commande accélération contact (§ 4.3.1) force de contact nulle calculée non-nulle non-calculée Table 4.1 – Rupture d’un contact à l’instant k. Les inconnues de la commande s’adapte au nouvel état des contacts. 4.4.3 Influences du nombre de ddl L’hv 32 ddl (figure 4.5(a)) a été présenté dans le § 2.2.2. En pratique, on a aussi utilisé d’autres modélisations. L’hv 36 ddl (figure 4.5(b)) a 2 ddl supplémentaires à chaque clavicule, ce qui permet une mobilité de l’épaule. D’autre part, les dimensions, les masses et la position des liaisons cinématiques proviennent de HuMAns [INR06]. C’est ce mannequin qui est utilisé pour la reconstruction de mouvement du chapitre 6. Par construction, son corps racine est l’abdomen, ce qui a permis de tester le cas où le corps racine est un autre corps que le thorax. L’hv 49 ddl (figure 4.5(c)) est tiré d’un personnage fantaisiste. Sa colonne vertébrale est constituée de 4 liaisons rotules (succession de 3 liaisons pivots). Chaque ddl a des butées articulaires. De plus, 65 CHAPITRE 4. ASSURER L’ÉQUILIBRE (a) 32 ddl (b) 36 ddl (c) 49 ddl (d) 72 ddl Figure 4.5 – Les différents types d’hv. la cheville est dédoublée. Enfin, l’hv 72 ddl (figure 4.5(d)) est identique à l’hv 32 ddl, avec deux mains à 20 ddl. La commande s’arrête juste après les poignets, le mouvement des doigts est laissé à un simple contrôleur PD ou une commande de manipulation plus adapté. Dans tous les cas, on utilise les mêmes asservissements, les mêmes priorités et l’on a testé une large gamme de simulations. Les comportements obtenus sont similaires. 4.5 Résultats et discussions Les simulations ont été réalisées avec le moteur physique Arboris développé par Alain Micaelli 1 et Sébastien Barthélémy 2 en langage Matlabr . L’élaboration du modèle dynamique est tiré de Park [Par05] et le formalisme des contacts avec frottements secs s’inspire de L. Tong et M.Y. Wang [TW05]. 4.5.1 4.5.1.1 Introduction de nouvelles interactions dans le calcul de la commande Appuyer sur le mur Afin d’appliquer un effort sur un mur, l’hv atteint une posture et un CdM lui permettant d’être équilibré statiquement (figure 4.6). Il s’agit d’une tâche en multi-contacts non coplanaires. Les efforts de contact de la main sont ajoutés aux inconnues du problème. De plus, les contraintes portant sur ces efforts ainsi que sur l’accélération des contacts de la main sont ajoutés aux autres contraintes. 4.5.1.2 Poser le second pied Dans cet exemple, l’hv n’a qu’un pied au sol au début de la simulation (figure 4.7). Dans cette configuration, il n’est pas équilibré. Il atteint une posture stable en posant le second pied au sol. L’hv établie ses contacts sur l’environnement le plus proche et, en même temps, à atteindre son CdM de consigne. Celui-ci est calculé en considérant que l’hv repose sur ses deux pieds. En quelque sorte, l’hv anticipe son nouvel appui. Il est important de traiter ces deux aspects en même temps pour avoir un comportement stable. Note 7. Le calcul du CdM de consigne nécessite la connaissance des coordonnées des points de contact. Tous les contacts des pieds sont considérés comme établis dans ce calcul. Si ce n’est pas le cas dans la simulation, on utilise la projection du contact sur l’environnement (ici, un plan horizontal). 1. cea/list 2. isir 66 4.5. RÉSULTATS ET DISCUSSIONS CdM réel CdM consigne Force réelle Force de consigne Figure 4.6 – L’hv appuie sur le mur à l’aide de sa main. Figure 4.7 – L’hv pose le pied droit. 67 CHAPITRE 4. ASSURER L’ÉQUILIBRE 4.5.1.3 Se lever (a) (b) (c) (d) (e) Figure 4.8 – L’hv se lève. Dans l’exemple de la figure 4.8, on met en œuvre une loi de commande permettant à l’hv de se lever. On se contente d’assurer l’équilibre quasi-statique du mouvement qui se décompose en deux temps. Tout d’abord, le CdM de consigne est calculé uniquement avec les appuis des pieds. L’hv s’avance pour atteindre ce CdM de consigne (figure 4.8(b)). Puis, la contrainte sur l’accélération du contact des fesses est désactivée (figure 4.8(c)). L’hv peut alors se lever. L’introduction de nouvelles interactions dans la formulation de la loi de commande permet d’enrichir considérablement le comportement de l’hv. Ainsi, les interactions de l’hv avec l’environnement évoluent au cours de la simulation. Le chapitre 3 permet de mettre à jour la position du CdM de consigne, stable par rapport à la nouvelle configuration de contact ou de prise. À présent, pour ce qui est des réactions à des perturbations, l’hv peut adopter deux stratégies pour s’équilibrer, si la perturbation est : – faible : il s’équilibre à l’aide de ses contacts et de ses prises courants. On parle de réflexe “simple” ; – forte : il met en œuvre une stratégie de retenue où il change la position de ses contacts et de ses prises. On parle de réflexe “évolué”. 4.5.2 4.5.2.1 Réflexe “simple” Perturbation sans préhension Les perturbations s’appliquent sur un temps très court (100 ms), sur l’environnement de l’hv ou directement sur l’hv. S’il le peut, l’hv s’équilibre et atteint une nouvelle position d’équilibre. Dans l’exemple de la figure 4.9, l’hv subit un effort perturbateur au niveau de l’épaule. Cet effort est représenté par une flèche rouge. Dans les exemples des figures 4.10 et 4.11, c’est le sol qui est perturbé. La perturbation est une translation de 15 cm, en quelques dizaines de ms, avant de s’arrêter brutalement. Pendant le déplacement du support, l’hv applique tout son poids sur la jambe droite (figure 4.10). Une fois le mouvement du sol stoppé, son pied gauche glisse quelques instants. Puis, l’hv peut s’équilibrer. Dans l’exemple de la figure 4.11, pendant le déplacement du sol, l’hv lève légèrement l’avant des pieds. Comme la perturbation n’est pas explicitement connue par la loi de commande, il y a rupture de contact. 68 4.5. RÉSULTATS ET DISCUSSIONS (a) Équilibre (b) Perturbation (c) Fin perturbation (d) Gestion équilibre (e) Retour équilibre Figure 4.9 – Perturbation directement appliquée à l’hv. (a) Translation du support (b) Glissement du pied gauche (c) Fin perturbation (d) Gestion libre équi- (e) Retour équilibre Figure 4.10 – Perturbation de l’hv : déplacement médial / latéral du sol. (a) Translation support (b) Fin perturbation (c) Gestion équilibre (d) Retour équilibre Figure 4.11 – Perturbation de l’hv : déplacement postérieur / antérieur du sol. 69 CHAPITRE 4. ASSURER L’ÉQUILIBRE 4.5.2.2 Perturbation avec préhension Dans l’exemple de la figure 4.12, les efforts de préhension font partie intégrante des inconnues du système à résoudre. L’hv utilise cette prise pour s’aider à retrouver son équilibre. Suivant les sollicitations, l’hv tire, pousse ou applique un moment sur la prise. Figure 4.12 – Simulation du comportement d’un passager dans un bus. 4.5.3 4.5.3.1 Réflexe “évolué” Introduction Figure 4.13 – Réflexe “simple” : l’hv maintient ses pieds au sol. La perturbation ne peut pas être compensé avec cette configuration de contacts. L’hv pert l’équilibre. Lorsqu’il s’agit de mettre en œuvre un réflexe “simple”, le comportement de l’hv lors d’une perturbation consiste à maintenir ses contacts sur l’environnement et à atteindre son CdM de consigne. Cela peut donner un comportement insuffisant (figure 4.13). Si la perturbation est trop importante, l’hv ne parvient pas à retrouver son CdM de consigne et tombe en avant. Alors qu’il est naturel pour un humain de faire un pas en avant, la commande réalisée jusqu’à présent suppose que les pieds sont maintenus au sol. Pour que l’hv fasse un pas en avant (figure 4.14), 70 4.5. RÉSULTATS ET DISCUSSIONS Figure 4.14 – Réflexe “évolué” : la commande spécifie explicitement le mouvement du pied de l’hv. Ce dernier garde son équilibre. il faut le spécifier explicitement en déclenchant une suite d’actions. En utilisant l’indicateur de stabilité de l’hv (chapitre 3), la perte d’équilibre est caractérisée. On met en œuvre une stratégie permettant à l’hv de faire un pas en avant et de retrouver son équilibre. Mais ce réflexe n’est qu’une des nombreuses possibilités pour retrouver son équilibre. Dans ce chapitre trois réflexes “évolués” sont présentés : – appuyer avec les mains sur l’environnement ; – saisir une prise ; – faire un pas de côté. Avant la simulation, l’ensemble des réflexes possibles sont spécifiés. Une méthode permettant à la commande de choisir et d’appliquer le réflexe le plus pertinent est présentée § 4.5.4. 4.5.3.2 Appuyer avec les mains sur l’environnement CdM consigne CdM initial Vitesse CdM Forces contact Figure 4.15 – Un effort de perturbation est directement appliqué dans le dos de l’hv. Il retrouve son équilibre en s’appuyant sur un mur. La flèche verte représente la vitesse du CdM juste après la perturbation. Lorsque l’hv est poussé en direction d’un mur, ce réflexe lui permet de s’appuyer dessus. Par simplification, l’endroit du mur où l’hv pose la main est connu. Il est défini par l’utilisateur 71 CHAPITRE 4. ASSURER L’ÉQUILIBRE avant la simulation. La position du CdM de consigne est calculée en fonction de la nouvelle configuration de contact, à partir des forces de contact désirées des mains (normales au mur). Ainsi, l’hv freine son mouvement en basculant en direction du mur. Les marges de stabilité ne sont pas prises en compte. Une fois l’équilibre retrouvé, un mécanisme de retour à la position initiale se déclenche. La figure 4.15 illustre la position de l’hv en appui sur le mur. Sur le schéma, le CdM de consigne est plus proche du mur que le CdM initiale de l’hv, à l’instant de la perturbation. La vitesse du CdM est en direction du mur. Le CdM de consigne est équilibré statiquement et est sur le “chemin” qu’emprunte le CdM suite à la perturbation. 4.5.3.3 Saisir une prise CdM consigne CdM initial Vitesse CdM Forces contact et préhension Figure 4.16 – Un effort de perturbation est directement appliqué dans le dos de l’hv. Il retrouve son équilibre en s’aidant d’une prise. Sa main droite est confondue avec la prise sur l’image de droite. La flèche verte représente la vitesse du CdM juste après la perturbation. Très proche du réflexe précédent, la saisie d’une prise améliore les possibilités de retour à l’équilibre. En effet, si l’hv tombe en arrière, il peut s’aider d’une prise se situant devant lui pour retrouver son équilibre. Le CdM de consigne est déterminé en introduisant un effort désiré au niveau de la prise. La direction de cet effort correspond à la vitesse du CdM juste après la perturbation (figure 4.16). Bien que les aspects relatifs à la robustesse n’interviennent pas dans le calcul du CdM de consigne, ils sont utilisés pour caractériser l’état d’équilibre de l’hv et déclencher des réflexes “évolués”. Dans l’exemple de la figure 4.17, le sol bascule autour d’un axe, à vitesse constante (11 deg.s−1 ). Au début de la simulation, l’hv est debout et le caractère préhensif de ses mains n’est pas utilisé (figure 4.17(a)). L’équilibre est rompu pour une posture érigée sur deux pieds pour une inclinaison trop importante du sol. L’objectif de la commande d’hv est de conserver un équilibre robuste quand l’environnement change. Grâce aux prises, l’hv est capable de main72 4.5. RÉSULTATS ET DISCUSSIONS (a) angle = 0˚ (b) angle = 15˚ (c) angle = 25˚ (d) angle = 38˚ (e) angle = 43˚ Figure 4.17 – Exemple de gestion d’équilibre d’hv basé sur le calcul des marges de stabilité. Le sol bascule à une vitesse constante. On choisit une distribution de perturbations isotropique pour calculer λmax pour chaque système étudié. L’hv garde son équilibre en utilisant des prises avec ses mains. tenir son équilibre. À cette fin, les interactions de préhension de l’hv sont activées/désactivées dans la formulation de la loi de commande, tout au long de la simulation. Ce comportement est basé sur le calcul de robustesse qui donne une bonne caractérisation de la rupture d’équilibre. Pour la posture courante de l’hv, l’amplitude de l’effort de perturbation maximal (distribution isotropique) est calculée. Lorsque ce critère de stabilité est plus petit qu’une amplitude limite choisie, une action de rétablissement est déclenchée. Le graphique présente l’effort de perturbation maximal admissible, fonction de l’angle de renversement du sol. Les critères de stabilité étudié diminuent logiquement lorsque le renversement du sol augmente. Plusieurs systèmes sont étudiés simultanément : hv en interaction sur deux pieds, deux pieds et une main, deux pieds et deux mains. L’hv passe d’une configuration de prise à une autre dans le but de conserver une marge de stabilité minimum. Par exemple, sur la figure 4.17(c), angle=25˚, la marge de stabilité de l’hv en interaction sur deux pieds devient inférieure à la marge de stabilité minimum : déclenchement d’un changement de prise. L’hv utilise sa main gauche pour attraper une prise. Dans cette nouvelle configuration, la marge de stabilité est meilleure. L’hv converge donc vers une configuration d’équilibre plus stable. 4.5.3.4 Faire un pas de côté Effectuer un pas de côté est également un réflexe courant en cas de perte d’équilibre. Jusqu’à présent, une consigne de la commande était de maintenir les pieds au sol. Dans le réflexe proposé, il faut spécifier explicitement à l’hv de déplacer son pied en lui indiquant où le poser ainsi que la durée du pas. Il est préférable de positionner le pied dans la direction de la vitesse du CdM. Le comportement de l’algorithme s’observe sur deux cas de pertes d’équilibre (figure 4.18). 73 CHAPITRE 4. ASSURER L’ÉQUILIBRE (a) Perturbation vers l’avant gauche. (b) Perturbation vers l’arrière droit. Figure 4.18 – Suite à une perturbation, la direction du vecteur vitesse (flèche verte) du CdM (sphère rouge) permet de déterminer où poser le pied pour tenter d’équilibrer l’hv. La trajectoire du pied est alors calculée (tracée en bleu). En perspective, l’utilisation d’un algorithme de marche enrichirait le comportement de l’hv en proposant plusieurs pas. 4.5.4 Choix du réflexe Champs Description Exemple Nom Nom du réflexe Saisir une prise . . . Membre Le numéro de l’effecteur Main gauche, Pied droit . . . n˚env. Identification de l’environnement [n˚robot , n˚branche , n˚corps , n˚géométrie ] Distance Distance entre l’effecteur et sa cible 10 cm λmax Amplitude maximale de l’effort de perturbation 100 Table 4.2 – Caractéristiques communes d’un réflexe “évolué”. Au début d’une simulation, on définit l’ensemble des réflexes possibles (tableau 4.2). Au cours de la simulation, il faut définir le choix du réflexe le plus pertinent selon la perturbation. Les origines d’une perte d’équilibre sont nombreuses. On classe les déséquilibres en deux cas : – le déséquilibre provient d’une perturbation liée à l’environnement (déplacement du sol, choc d’un objet). La loi de commande stoppe toutes les tâches en cours, cela correspond à un comportement “intuitivement naturel”. Les tâches sont reprises après retour à l’équilibre ; – le déséquilibre provient de la réalisation d’une tâche par l’hv. Par exemple, en atteignant une cible trop loin, l’hv perd son équilibre (figure 4.20). On choisit alors uniquement les réflexes qui permettent de poursuivre la tâche et d’améliorer l’équilibre. Suite à cette première sélection de réflexes, on teste la pertinence des réflexes entre eux au regard des critères suivants : – angle CdM – cible : il s’agit de l’angle entre la vitesse du CdM à l’instant où l’on 74 4.5. RÉSULTATS ET DISCUSSIONS Figure 4.19 – Schéma de principe de la mise en œuvre de stratégie de reprise d’équilibre. déclenche le réflexe, et de la droite passant par la position du CdM courant et la cible. On s’intéresse ici à la capacité d’arrêter le mouvement du CdM par rapport à l’axe de la prise. La direction de la vitesse du CdM à l’instant où l’on déclenche le réflexe est une indication de la direction de la perturbation (qui n’est pas connue, à priori) ; – distance main – cible : il s’agit de la distance entre l’effecteur (main) et la cible, qu’il s’agisse d’un mur ou d’une prise. Ce critère permet d’étudier la faisabilité d’atteindre une cible. Si elle est trop loin, l’hv n’a pas le temps de l’atteindre convenablement. Pour chacun des critères étudiés, les réflexes sont alors classés. Les critères sont pondérés pour obtenir la meilleure stratégie. La figure 4.19 résume la mise en œuvre de réflexes “évolués”. Toutes les stratégies réflexes présentées ne sont que des ébauches, incomplètes, des réflexes de reprise d’équilibre possibles. On a décrit les principes ainsi que quelques tests sur des exemples concrets. 75 CHAPITRE 4. ASSURER L’ÉQUILIBRE Figure 4.20 – L’hv a pour objectif d’atteindre la sphère rouge, de la soulever et de la déplacer jusqu’à l’autre support. En voulant atteindre la sphère rouge, l’hv est déséquilibré vers l’avant. La perte d’équilibre provient de la tâche. La loi de commande sélectionne le réflexe qui consiste à saisir la prise avec la main gauche. L’hv retrouve son équilibre sans que les tâches ne soient interrompues. 76 CHAPITRE 5 Gestion de tâches e chapitre traite de la gestion des tâches. Un objectif se décompose en un ensemble d’actions C élémentaires se traduisant en critères et en contraintes pour la loi de commande. L’objectif est de faire le lien entre un objectif global spécifié par l’utilisateur (ex : peindre) et sa traduction automatique en termes de loi de commande. On définit des structures et des actions de base, qui permettent l’interface entre des objectifs globaux et la commande. Les structures mettent à jour la formulation de la loi de commande. Les actions caractérisent le comportement souhaité. Les tâches sont souvent conflictuelles et l’on propose une méthode numérique pour gérer les priorités entre les tâches. On peut ainsi réaliser des comportements complexes. Ainsi, l’ hv manutentionnaire déplace des charges lourdes plus ou moins guidées ou portées, dans un monde virtuel industriel complexe. 77 CHAPITRE 5. GESTION DE TÂCHES Sommaire 5.1 Introduction . . . . . . . . . . . . . . . . . . . 5.1.1 État de l’art . . . . . . . . . . . . . . . . . . 5.1.1.1 Génération de comportements . . . 5.1.1.2 Gestion des priorités . . . . . . . . . 5.1.2 Contribution et positionnement . . . . . . . . 5.2 Actions . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Présentation générale . . . . . . . . . . . . . 5.2.2 Détails des actions . . . . . . . . . . . . . . . 5.2.2.1 Génération de trajectoire . . . . . . 5.2.2.2 Saisir une prise ou un objet . . . . . 5.2.2.3 Appuyer sur l’environnement . . . . 5.2.2.4 Posture . . . . . . . . . . . . . . . . 5.2.3 Structures de base . . . . . . . . . . . . . . . 5.2.3.1 Contact . . . . . . . . . . . . . . . . 5.2.3.2 Préhension . . . . . . . . . . . . . . 5.3 Gestion des priorités . . . . . . . . . . . . . . 5.3.1 Présentation . . . . . . . . . . . . . . . . . . 5.3.2 Mise en œuvre . . . . . . . . . . . . . . . . . 5.4 Tâches de manutention . . . . . . . . . . . . . 5.4.1 Présentation du problème . . . . . . . . . . . 5.4.2 Synthèse des efforts de manutention . . . . . 5.4.2.1 Mouvement désiré . . . . . . . . . . 5.4.2.2 Forces de contact de consigne . . . . 5.4.3 Les différentes étapes de la commande . . . . 78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 79 79 80 80 80 82 82 84 84 84 84 84 87 88 88 89 91 91 92 93 94 94 5.1. INTRODUCTION 5.1 5.1.1 5.1.1.1 Introduction État de l’art Génération de comportements Une partie de la communauté de robotique humanoïde s’intéresse à la planification de tâches complexes. Celle-ci peut prendre en compte des contraintes au niveau des efforts et des déplacements [Esc08] [TGG07]. O. Stasse et al. [SEM+ 08] (Japanese–French Robotics Laboratory) présentent une tâche avec évitements de collisions et d’auto-collisions en temps réel du robot HRP-2. E. Yoshida et al. [YPL+ 08] font déplacer une boîte par pivotement en quasi-statique par le robot. L’Irisa développe un processus temps réel dédié à la planification du mouvement d’humanoïdes de synthèse dans des environnements contraints (TopoPlan – projet Bunraku). D’autre part, P. Faloustos et al. [FvdPT01] présentent un ensemble de lois de commande bas-niveau et de modes d’enchaînements pour animer des personnages. Chaque commande est spécifique d’une action élémentaire. Les travaux ont conduit au développement de l’outil Dance. Les problématiques de planification et de mode d’enchaînement de tâches ne seront pas abordées dans ce document. 5.1.1.2 Gestion des priorités Figure 5.1 – Cas de conflit entre deux tâches. Le squelette ne peut atteindre simultanément la position désirée du parapluie (en rose), et la poignée. Les tâches sont souvent conflictuelles (figure 5.1). Il n’est pas toujours possible de résoudre toutes les contraintes de manière simultanée. Dans la littérature, la priorité est traitée par les projections cinématiques ou dynamiques. Dans un contexte cinématique, le découplage de tâches a été appliqué à l’hv par P. Baerlocher et al. [BB04]. Ils proposent une commande de type cinématique inverse à multiples niveaux de priorités. Un nombre arbitraire de priorités entre les tâches à effectuer est fixé. Les auteurs décrivent un schéma de résolution efficace de ce problème de cinématique inverse. 79 CHAPITRE 5. GESTION DE TÂCHES Cette approche a été étendue au cas dynamique par L. Sentis et al. [SK04], [SK05], [SK06] et V. De Sapio [DKD06]. N. Mansard et al. [MK08] prennent en compte des contraintes unilatérales dans le calcul des projecteurs dynamiques. O. Khatib et al. [KWDS] proposent une méthode pour identifier les sous tâches caractéristiques des mouvements humains en analysant des comportements obtenus par capture de mouvements. Ces comportements sont alors incorporés dans la commande multi-tâches qui classe chaque tâche par priorité. En identifiant les caractéristiques du mouvement, les auteurs constituent ainsi une base des stratégies du mouvement humain, hiérarchisées par ordre de priorité suivant la tâche à effectuer. Enfin, S. Barthélemy et al. [BSB06] proposent d’utiliser la méthode des projecteurs entre des tâches hierarchisées pour établir le critère à optimiser dans un problème de type QP. C’est une méthode analytique. 5.1.2 Contribution et positionnement On propose une architecture simplifiée permettant de combiner quelques comportements élémentaires – la coordination est inspirée de Faloustos. Pour les priorités, on propose une alternative “numérique” aux projections. On propose une liste non exhaustive de comportements élémentaires. Ces comportements sont simples à mettre en œuvre. Ils dépendent d’un faible nombre de paramètres. Ils s’intègrent naturellement dans la loi de commande, qui permet déjà de gérer l’équilibre. L’hv réalise des tâches comme peindre ou déplacer des objets en combinant ces comportements élémentaires. Une gestion des priorités entre les tâches est également proposée. Il s’agit d’une méthode numérique qui est une alternative à la formulation analytique des projecteurs. Les comportements élémentaires développés, appelés “actions”, sont décrits dans le § 5.2. Le § 5.3 présente la méthode de gestion des priorités. Enfin, les premiers résultats de simulation d’hv manutentionnaire sont exposés dans le § 5.4. 5.2 5.2.1 Actions Présentation générale Ce chapitre propose une architecture de gestion de tâches et traite des aspects programmation. L’objectif est de doter l’hv d’un ensemble de comportements de base appelés par la suite “actions”. Une action est utilisée comme contrainte ou critère dans la loi de commande (chapitre 4) où elle s’intègre naturellement. Une action a un certain nombre de champs pré-requis définis dans le tableau 5.1. Avant chaque simulation, l’utilisateur définit les paramètres des actions qu’il souhaite voir réaliser par l’hv. Le champs “type” est détaillé ci-dessous. Il permet de choisir quand et comment une action s’exécute. On distingue trois types d’exécutions : “type = 1” ces actions nécessitent la fin de l’exécution d’une action précédente. Dans ce cas, l’action se déclenche lorsque l’action de “type = 1” précédente est réalisée. Une action se 80 5.2. ACTIONS Champs Description Exemples de valeurs Catégorie Grande catégorie d’action Tâche ou réflexe Nom Nom de l’action Génération de trajectoire, posture . . . Type Mode de déclenchement 1, 2 ou 3 Actif Déjà réalisé ou non booléen tinitial Temps de début de l’action Absolu ou relatif à un temps intermédiaire tfin Temps de fin de l’action tcourant Temps courant de l’action Absolu ou relatif ou ∞ Compris entre tinitial et tfin Table 5.1 – Identifiants communs à toutes les actions. termine lorsque sa durée est écoulée. Des enchaînements de tâches sont ainsi définis. Par exemple, pour générer un mouvement de va-et-vient entre deux configurations, on utilise des actions “postures-clés” de “type = 1”. Il suffit de spécifier la durée de chaque action pour pouvoir générer très simplement le mouvement ; “type = 2” ces actions s’exécutent à un instant donné, une seule fois. Ainsi, des paramètres peuvent être initialisés, des contraintes élémentaires activées ou désactivées. Par exemple, afin que l’hv lâche une prise, on désactive à un instant donné la contrainte de préhension dans la loi de commande. Une fois exécutée, une action de “type = 2” peut alors devenir de “type = 3” ; “type = 3” l’action est déclenchée à un instant, et reste activée pour une durée donnée. Par exemple, une génération de trajectoire se réalise en deux étapes. Afin de déterminer les paramètres d’interpolation, cette action est donc de “type = 2” pendant l’initialisation, puis elle devient de “type = 3” afin d’être exécutée tant que la trajectoire n’est pas entièrement parcourue. D’autre part, en complément du champs “type”, un certain nombre d’informations temporelles est nécessaire pour chaque action. Le début, la fin et/ou la durée d’une action doivent être spécifiés : – tinit : c’est l’instant où l’action est déclenchée. Pour les actions de “type = 2 ou 3”, c’est le temps absolu de la simulation. Pour les actions de “type = 1”, c’est la durée entre la fin de l’action précédente et le déclenchement de l’action suivante ; – tfin : c’est l’instant où l’action est arrêtée. Pour les actions de “type = 3”, c’est le temps absolu de la simulation. Pour les actions de “type = 1”, c’est la durée de l’action. Enfin, les actions de “type = 2” ne sont, par définition, exécutées qu’une seule fois, cette information n’est donc pas utilisée ; – tcourant : c’est le temps courant de l’action qui donne une indication sur son taux de réalisation. C’est une information utile lorsqu’une action est interrompue. On peut alors reprendre l’action où elle en est ou bien depuis son début. Enfin, une action est dite “Actif = 1” tant qu’elle n’a pas été commencée ou qu’elle a été commencée mais pas terminée. Une action est dite “Actif = 0” lorsqu’elle est terminée. On détaille à présent les quatres comportements de base implémentés, qui permettent de générer des comportements très variés. 81 CHAPITRE 5. GESTION DE TÂCHES 5.2.2 5.2.2.1 Détails des actions Génération de trajectoire La “génération de trajectoire” est une action qui permet de spécifier le mouvement d’un corps dans l’espace (main, pied . . . ). Cette action porte sur l’accélération d’un “corps”. Elle est utilisée comme une contrainte dans la loi de commande. Elle peut être employée pour la marche ou pour la saisie de prises ou d’objets. Les actions “génération de trajectoire” sont toujours de “type = 2”. Lors de l’initialisation, on s’assure que l’accélération du corps n’est pas surcontrainte (accélérations de contacts prises en compte par la loi de commande). Afin de déterminer l’accélération de consigne du corps, les consignes en positions (translation et rotation) et en vitesses (translation et rotation) peuvent être calculées de deux manières différentes : – soit les consignes définissent l’état final à atteindre pour le corps contrôlé ; cet état est une constante de SE(3) × se(3) et la commande est réalisée avec un correcteur PD vers cet état ; – soit les consignes définissent une trajectoire à suivre dans SE(3) × se(3), depuis un état initial jusqu’à un état final et la commande est réalisée avec un correcteur PD le long de cette trajectoire (figure 5.2). Pour les exemples traités, on a choisi une génération de trajectoire particulière mais la généralisation à des trajectoires plus complexes issues d’un planificateur par exemple ne pose pas de difficultés à priori. Les champs de base de l’action “génération de trajectoire” sont détaillés dans le tableau 5.2. Exemple : Peindre est une tâche complexe se décomposant en un enchaînement d’actions dont la “génération de trajectoire”. Pour atteindre le pinceau (figures 5.3(a) et 5.3(b)), le suivi de trajectoire vers la position finale de l’objet à saisir est une méthode possible. On peut ainsi spécifier un chemin qui évite la collision entre la main de l’hv et la table. La trajectoire est calculée en début d’action mais il est possible de la recalculer si nécessaire. Une fois le pinceau saisi, l’hv doit réaliser le mouvement de peindre (figures 5.3(c) et 5.3(d)). L’état final à atteindre par la main est spécifié (positions en translation et en rotation). En indiquant un ensemble d’objectifs clés, le mouvement de peindre est reproduit par l’hv. Figure 5.2 – Interpolation de type spline avec une configuration de passage. 82 5.2. ACTIONS Champs Description Exemple ActifṪ Désactiver/Activer le calcul de l’accélération de l’effecteur dans la loi de commande booléen n˚prehension Indice de l’effecteur 1 (main gauche) . . . (kp , µp ) Raideur et amortissement du correcteur PD de l’accélération de l’effecteur (permet de rigidifier sa prise) kp et µp ∈ M6,6 (R), symétrique définie positive tmilieu % de la durée totale de l’interpolation où intervient le passage intermédiaire 0.5 dmilieu % de la distance totale de l’interpolation où intervient le passage intermédiaire 0.5 dHmilieu Matrice de transformation qui positionne un repère de passage à partir de la position initiale de l’effecteur dHmilieu ∈ SE(3) Hinitial Repère initial de l’effecteur Hfin Repère de consigne final à atteindre par l’effecteur Hinitial ∈ SE(3) Vinitial Vitesse initiale désirée de l’effecteur Vfin Vitesse finale désirée de l’effecteur Hfin ∈ SE(3) Vinitial ∈ R6 Vfin ∈ R6 Table 5.2 – Champs de base de l’action “génération de trajectoire”. (a) (b) (c) (d) Figure 5.3 – Décomposition d’une tâche complexe (peindre) en un enchaînement d’actions. 83 CHAPITRE 5. GESTION DE TÂCHES 5.2.2.2 Saisir une prise ou un objet Cette action traite de la prise en compte d’un calcul d’effort au niveau d’un effecteur. L’acheminement de l’effecteur vers une cible s’effectue avec l’action décrite au § 5.2.2.1. Tant que la prise ou l’objet n’est pas atteint, la loi de commande ne calcule aucun effort de préhension. dmin indique la distance à partir de laquelle on considère que la cible est atteinte (tableau 5.3). Un modèle d’interaction de préhension est alors pris en compte à la fois dans la commande (calcul d’un effort de préhension) et dans la simulation (activation d’une liaison visco-élastique). Dans la loi de commande, l’accélération de l’effecteur doit être égale à l’accélération de la prise pour assurer le maintien correct de la saisie. Afin de soulever et déplacer un objet, l’actionnement de l’hv doit compenser la masse de l’objet. On fait l’hypothèse que la masse de l’objet est connue. Un effort de réaction de consigne est alors ajouté au bilan des efforts s’appliquant sur l’hv et est pris en compte par la loi de commande. Exemple : Un certain nombre de simulations utilisant l’action “saisir” sont présentées dans ce document. On détaille au § 4.5.2.2 la problématique du passager de bus. Dans un véhicule, l’hv saisit le volant et peut s’y accrocher (chapitre 7). 5.2.2.3 Appuyer sur l’environnement Cette action traite de l’activation ou désactivation de la prise en compte par la commande des contacts d’un effecteur (tableau 5.4). Les pieds interagissent toujours avec le sol par l’intermédiaire de contacts. De même, lorsque l’hv appuie sur un mur avec une main, c’est par l’intermédiaire de contacts. C’est, en général, une action de “type = 2”. 5.2.2.4 Posture L’action “posture” permet de changer la posture désirée. Grâce à un contrôle PD articulaire, la posture de l’hv converge vers sa nouvelle consigne. En donnant à chaque instant la position et la vitesse désirées de chaque articulation, l’hv peut rejouer un mouvement préenregistré. Contrairement à une approche simplement cinématique, le mouvement obtenu est soumis à toutes les contraintes du moteur physique. Par exemple, l’hv rejoue au mieux le mouvement préenregistré tout en conservant son équilibre en cas de perturbation. 5.2.3 Structures de base Deux structures de base permettent de faire le lien entre la commande, les marges de stabilité et des objectifs globaux de tâches. 5.2.3.1 Contact La structure “Contact” regroupe toutes les informations concernant les contacts de l’hv utilisées dans la loi de commande (tableau 5.5). La disposition des contacts sur l’hv est donnée. Il faut spécifier explicitement à quelle partie de l’environnement chaque contact de l’hv correspond. L’exemple suivant illustre l’utilisation de cette structure. L’hv a pour consigne de s’appuyer sur un mur. Au début de la simulation, l’hv a les bras le long du corps. Les contacts de sa main ne sont pas pris en compte dans la loi de commande. L’action “génération de trajectoire” est utile afin que l’hv amène sa main près du mur, avec la bonne orientation. À cet instant, les contacts de la main doivent être activés dans la commande afin que l’hv puisse appuyer sur le 84 5.2. ACTIONS Champs Description Exemple Actifsaisi Désactiver/Activer le calcul d’un effort de préhension dans la loi de commande booléen Actifms saisi Désactiver/Activer le calcul d’un effort de préhension pour la détermination CdM de consigne (fonction marge de stabilité) booléen n˚prehension Indice de l’effecteur 1 (main gauche) . . . dmin Distance à partir de laquelle la liaison visco-élastique est activée dans la simulation 1 cm Masse Masse de l’objet à compenser (dans marge de stabilité et la commande) 1 kg n˚ve Numéro de la liaison visco-élastique 1, 2 . . . Table 5.3 – Champs de base de l’action “saisir”. Champs Description Actifappuyer Désactiver/Activer le calcul d’une force de contact dans la loi de commande booléen Actifms appuyer Désactiver/Activer la prise en compte d’une force de contact désirée dans le calcul du CdM de consigne (fonction marge de stabilité) booléen n˚contact Numéro des contacts de la structure “contact” que l’on veut désactiver/activer. [1, 2, 3] Table 5.4 – Champs de base de l’action “appuyer”. 85 Exemple CHAPITRE 5. GESTION DE TÂCHES mur (Actiffc ). De plus, des efforts désirés s’appliquant au niveau de ces nouvelles interactions, peuvent être pris en compte dans le calcul du CdM de consigne (Actifms ). La détection de collision renseigne sur l’état d’interaction de l’hv avec l’environnement à l’aide du champs Actifcollision . Les informations sur le frottement sec de chaque contact (µcommande ), le repère de contact et les asservissements apparaissent aussi dans cette structure. Enfin, si l’hv doit appliquer un effort de consigne au niveau de sa main, on complète le champ fms c . Afin que cette consigne soit au mieux respectée, on pondère cette force de contact à la fois dans le calcul du CdM de consigne (Qfms ) c et dans le calcul de la commande (Qfc ). Champs Description Exemple Contact Identification du contact sur le robot hv [n˚rb , n˚br , n˚bd , n˚sh ] a Env. Identification du contact sur le robot environnement [n˚rb , n˚br , n˚bd , n˚sh ] µcommande Coefficient de frottement du contact dans la loi de commande (coefficient de sécurité, cf. § 2.4.1.2) ≤ µsimulation na Nombre de facettes du cône de frottement 4 ou 5 Actiffc Désactiver/Activer le calcul d’une force de contact dans la loi de commande booléen ActifṪ Désactiver/Activer le calcul de l’accélération du contact dans la loi de commande booléen Actifms Désactiver/Activer le calcul d’une force de contact dans le calcul du CdM de consigne (Marge de stabilité) booléen Actifcol. Considéré en collision ou non par la commande booléen xc/scène Coordonnées du contact sur le robot hv dans le repère scène xc/scène ∈ R3 xc/scène Coordonnées du contact sur le robot environnement dans le repère scène 3 xconsigne c/scène ∈ R Rc/scène Orientation du repère de contact dans le repère scène (kc , µc ) Raideur et amortissement du correcteur PD de l’accélération du contact Rc/scène ∈ SO(3) fc Force de contact calculée par la loi de commande fdes c Force de contact désirée (sortie du calcul du CdM de consigne, entrée du calcul des couples d’actionnement) fms c Force de contact de consigne (entrée du calcul du CdM de consigne) fcms ∈ R3 Qfc Poids du critère concernant la force de contact dans le calcul des couples d’actionnement Qfc ∈ M3,3 (R), symétrique définie positive Qfms c Poids du critère concernant la force de contact dans le calcul du CdM de consigne (marge de stabilité) Qms fc ∈ M3,3 (R), symétrique définie positive consigne kc et µc ∈ M6,6 (R), symétrique définie positive fc ∈ R3 fcdes ∈ R3 Table 5.5 – Champs de base de la structure “Contact”. a. rb : robot, br : branche, bd : corps, sh : géométrie 86 5.2. ACTIONS 5.2.3.2 Préhension La structure “Préhension” regroupe toutes les informations concernant la génération de trajectoire et les efforts des effecteurs terminaux de l’hv utilisés dans la loi de commande (tableau 5.6). On retrouve les gains des asservissements de suivis de trajectoire (kp , µp ), les informations de position courante et de consigne de chaque effecteur. On illustre le fonctionnement de cette structure dans le cas où l’hv a pour consigne de saisir une prise. Pour atteindre une prise, il faut s’assurer que les accélérations de contacts de la main ne sont pas contraintes dans la loi de commande. On retrouve ces informations dans le champs “n˚contact ”. Il faut activer la contrainte sur l’accélération de l’effecteur terminal (ActifṪ ). Les consigne consigne consignes de positions et de vitesses se situent dans les champs Hp/scène et Vp/scène . Enfin, lorsque l’hv a atteint sa cible et que sa main saisit la prise, il peut y exercer un effort (ActifWp ). Les informations concernant les efforts de préhension désirés et maximaux se retrouvent respectivement dans les champs Wdes et Wmax p p . Champs Description Exemple Nom Nom de l’effecteur ’main gauche’ . . . Préhension Identification de l’effecteur sur la structure arborescente du robot hv [n˚rb , n˚br , n˚bd , n˚sh ] Env. Identification de la prise sur la structure arborescente du robot environnement [n˚rb , n˚br , n˚bd , n˚sh ] n˚contact Numéros des contacts de la structure “Contact” située sur cet effecteur [1, 2, 3] ActifṪ Désactiver/Activer la contrainte sur l’accélération de l’effecteur terminal booléen ActifWp Désactiver/Activer le calcul d’un effort de préhension dans la loi de commande booléen Actifms Wp Désactiver/Activer le calcul d’un effort de préhension pour la détermination CdM de consigne (fonction marge de stabilité) booléen Actifve Numéro de la liaison visco-élastique dans la simulation, 0 si elle n’est pas activée 0, 1, 2 . . . Hp/scène Repère de préhension exprimé dans le repère scène Hp/scène ∈ SE(3) Hp/scène Repère de préhension de référence dans le repère scène consigne Hp/scène ∈ SE(3) Hfin p/scène Repère de préhension final à atteindre dans le repère scène fin Hp/scène ∈ SE(3) Repère de préhension exprimé par rapport au repère du corps de préhension géométrie Hp/bd ∈ SE(3) consigne géométrie Hp/bd 87 CHAPITRE 5. GESTION DE TÂCHES Vitesse de préhension (réelle) Vp/scène ∈ R6 Vp/scène Vitesse de préhension de consigne consigne Vp/scène ∈ R6 V̇p/scène Accélération de préhension calculée par la loi de commande V̇p/scène ∈ R6 V̇p/scène Accélération de préhension de consigne consigne ∈ R6 V̇p/scène (kp , µp ) Raideur et amortissement du correcteur PD de l’accélération de l’effecteur kp et µp ∈ M6,6 (R), symétrique définie positive Wp Effort de préhension calculé par la loi de commande W p ∈ R6 Wdes p Effort de préhension désiré (sortie de marge de stabilité, entrée de loi de commande) Wpdes ∈ R6 Wms p Effort de préhension de consigne (entrée de marge de stabilité) Wpms ∈ R6 Wmax p Effort de préhension maximal dans marge de stabilité et loi de commande [80; 80; 80; 40; 40; 40] Wsat p Effort de préhension limite au-delà duquel la liaison visco-élastique est rompue dans le simulateur 1.5 Wpmax Masse Masse de l’objet à compenser (cas d’une saisie d’objet) 10 kg QWp Poids du critère concernant l’effort de préhension dans le calcul des couples d’actionnement QWp ∈ M6,6 (R), symétrique définie positive QWdes p Poids du critère concernant l’effort de préhension dans le calcul du CdM de consigne (marge de stabilité) Qdes Wp ∈ M6,6 (R), symétrique définie positive Vp/scène consigne consigne Table 5.6: Champs de base de la structure “Préhension”. 5.3 5.3.1 Gestion des priorités Présentation La gestion des priorités entre les tâches (souvent conflictuelles) fait toujours l’objet de nombreuses recherches. La méthode la plus souvent utilisée est celle des projecteurs. Elle peut être utilisée dans une méthode de type “couple calculé” [SK04] ou dans le critère d’optimisation dans le cas d’une méthode d’optimisation sous contraintes [BSB06]. Dans la construction du critère à optimiser, un poids est affecté à chaque tâche en fonction de son importance. Par exemple, la réalisation de la tâche “atteindre le CdM de consigne” est 88 5.3. GESTION DES PRIORITÉS prioritaire par rapport à la tâche “atteindre la posture de référence”. Mais on obtient une solution moyenne qui ne permet pas d’avoir la certitude que la tâche la plus prioritaire est parfaitement réalisée. Une autre méthode est de ne pas traiter la tâche la plus prioritaire comme un critère à optimiser mais comme une contrainte. C’est l’option adoptée jusqu’à présent pour la commande du mouvement des effecteurs terminaux. Cette méthode a des limites : – l’équilibre n’est pas garanti car l’atteinte du CdM de consigne n’est pas prioritaire ; – la consigne de l’effecteur terminal n’est pas nécessairement réalisable. Traitée comme une contrainte égalité, il n’existe pas forcément de solution satisfaisant toutes les contraintes du problème d’optimisation quadratique. On propose ici de traiter toutes les tâches dans le critère d’optimisation (atteindre le CdM de consigne, mouvement des effecteurs terminaux, atteindre la posture de référence). Pour gérer les priorités entre les tâches, une approche alternative est présentée. Il s’agit d’une méthode numérique basée sur la résolution d’une succession de problème d’optimisation quadratique. Un premier QP est formulé et résolu pour la tâche la plus prioritaire. La solution ne réalise peut-être pas complètement la tâche mais s’en approche du mieux possible. La solution obtenue pour le premier critère est transformée en contrainte pour un second QP qui optimise un critère relatif à une tâche secondaire. On procède itérativement tant que le problème d’optimisation quadratique n’est pas surcontraint. Par rapport à la méthode “tout optimisation”, cette approche permet de hiérarchiser efficacement les tâches. C’est une méthode équivalente à l’utilisation de projecteurs pour construire le critère à optimiser. Ce principe est illustré par la suite à travers un exemple de gestion de priorité entre trois tâches. 5.3.2 Mise en œuvre On rappelle que dans notre loi de commande multi-objectifs, l’équilibre est toujours prioritaire sur les autres tâches. Dans l’exemple proposé, on souhaite que l’hv touche un objet matérialisé par une sphère rouge, en conservant l’état de ses interactions. Cette tâche est impossible à réaliser sans perdre l’équilibre. Les trois tâches constituant le critère multi-objectifs sont : – tâche 1 : garder l’équilibre – atteindre la position du CdM de consigne ; – tâche 2 : toucher une cible matérialisée par une sphère avec la main gauche ; – tâche 3 : ne pas s’éloigner d’une posture de référence – atteindre la posture initiale. La construction des trois problèmes successifs d’optimisation quadratique est présentée dans la figure 5.4. Les résultats de cette loi de commande sont présentés sur les figures 5.5. Une première simulation est effectuée en traitant la tâche 2 “toucher la cible” comme la tâche la plus prioritaire. La figure 5.5(a) illustre le résultat de cette loi de commande : l’hv atteint sa cible au détriment de son équilibre. La tâche 1 “garder l’équilibre” est dorénavant la tâche la plus prioritaire. Dans un premier temps, les butées articulaires ne sont pas prises en compte. Le résultat de cette commande est présenté sur la figure 5.5(b). En bout de course, l’accélération désirée de la main est non nulle car il existe une erreur non nulle en position. Plusieurs solutions sont possibles pour éviter les oscillations de la main : augmenter le poids de τ des , filtrer la solution. 89 CHAPITRE 5. GESTION DE TÂCHES (a) Priorité à l’atteinte de la sphère : perte d’équilibre. (b) Priorité à la conservation du CdM sans les butées. articulaires (c) Priorité à la conservation du CdM avec les butées articulaires. Figure 5.4 – Gestion de trois tâches à priorité décroissante. 90 Figure 5.5 – Différents ordres de priorité entre les tâches de conservation du CdM, de posture et d’atteinte de la sphère avec la main gauche. 5.4. TÂCHES DE MANUTENTION Enfin, les butées articulaires sont introduites et le résultat est présenté sur la figure 5.5(c). Une fois le mouvement de la main bloqué par les butées articulaires, il se peut que l’on ne trouve pas de solution au problème d’optimisation quadratique. Dans ce cas, on change la consigne de la main qui devient la position courante de la main. Cette approche permet de stabiliser le mouvement et d’obtenir une posture beaucoup plus réaliste car les butées articulaires sont prises en compte. 5.4 5.4.1 Tâches de manutention Présentation du problème (a) Déplacer une boîte. (b) Pousser une armoire. Figure 5.6 – Humain virtuel manutentionnaire. Les tâches de manutention ont été mises en œuvre par Chau-Thuan Huynh [Huy08], dans le cadre de son stage de fin d’études. En s’appuyant sur la commande exposée aux chapitres 3 et 4 ainsi que sur les possibilités d’action de l’hv présentées en début de ce chapitre, C.T. Huynh s’est intéressé à la commande d’hv manipulant des objets. Il s’est appliqué à commander un hv manutentionnaire qui déplace des charges lourdes plus ou moins guidées ou portées dans un monde virtuel industriel complexe. On calcule les efforts que les mains de l’hv doivent appliquer sur l’objet pour réaliser le mouvement souhaité à l’aide de l’équation de la dynamique de l’objet (§ 5.4.2, équation 5.1). De plus, il faut prendre en compte le non-glissement des contacts. Un problème d’optimisation sous contraintes est alors résolu avec pour inconnue les efforts que les mains de l’hv appliquent sur l’objet. Ces efforts deviennent alors des consignes pour la commande de l’hv (figure 5.7). Tout d’abord, le CdM de consigne, équilibré en statique, est calculé en tenant compte de l’objet manipulé (chapitre 3). De plus, dans le calcul des couples articulaires, les efforts de contact désirés des mains sont les efforts précédemment calculés. On leur affecte une priorité importante pour être réalisés dans le QP. Deux tâches de manutentionnaires ont été traitées. La première consiste à déplacer une boîte sur une table (figure 5.6(a)). La seconde tâche consiste à pousser une armoire (figure 5.6(b)). Dans les deux cas, l’hv contrôle la position de l’objet dans l’environnement. Les dimensions et la localisation des prises sur l’objet sont connues de l’hv. Il adapte sa posture et surtout la position 91 CHAPITRE 5. GESTION DE TÂCHES de son CdM automatiquement pour pouvoir compenser les efforts produits sur l’objet sans perdre l’équilibre. Figure 5.7 – Schéma-bloc décrivant la manipulation d’une boîte. 5.4.2 Synthèse des efforts de manutention Pour assurer le bon déroulement d’une tâche de manipulation, un soin particulier doit être apporté au calcul des consignes en efforts au niveau de l’interface entre les effecteurs terminaux de l’hv manutentionnaire et l’objet manipulé. En effet, ce sont principalement ces efforts, avec la gravité, qui déterminent le mouvement de l’objet manipulé, et donc la réussite ou non de la manipulation. La relation entre le mouvement de l’objet et les efforts de contact qui lui sont appliqués est l’équation de la dynamique de l’objet : (5.1) M̃box V̇box − G + Nbox Tbox = Wc→box + Wautres contacts→box Dans cette équation, V̇box est le torseur cinématique absolu de l’objet et Wc→box est le torseur résultant des efforts de contact de l’hv sur l’objet. Ces deux torseurs, ainsi que G et la matrice d’inertie généralisée M̃box , sont exprimés dans le repère propre de l’objet. Wautres contacts→box désigne le torseur des autres efforts de contact appliqué sur la box. Ils sont connus dans cette équation. Le torseur résultant des efforts de contact s’exprime en fonction des efforts fc (1), . . . , fc (nc ) appliqués à la surface de l’objet : si on suppose, comme d’habitude, que ces efforts sont écrits dans leurs repères de contact c1 , . . . , cnc respectifs, et en notant box le repère de l’objet, on peut écrire : Wc→box = nc X box Ad−t ci i=1 avec box Ad−t ci la matrice co-adjointe de box Ad−t ci = box H ci , fc (i) 03,1 (5.2) dont on rappelle l’expression : box R [rbox,ci ] 92 ci box R ci 03,3 box R ci (5.3) 5.4. TÂCHES DE MANUTENTION L’équation 5.2 se ré-écrit donc : Wc→box = box R [rbox,c1 ] c1 box R c1 = Cct fc box R ... cnc . . . rbox,cnc box Rcnc fc (1) .. . fc (nc ) (5.4) Dans le domaine de l’étude de la manipulation robotique, la matrice Cct est appelée “matrice de préhension”. En utilisant (5.1) et (5.4), on trouve donc la relation entre le mouvement de l’objet et les causes de ce mouvement, fc : M̃box V̇box − G + Nbox Tbox = Cct fc + Wautres contacts→box (5.5) des . Il faut donc dans C’est fc que l’on cherche, pour produire un certain mouvement désiré V̇box un premier temps spécifier le mouvement désiré (§ 5.4.2.1) puis dans un deuxième temps utiliser l’équation 5.5 pour en déduire les forces de contact adéquates à appliquer, fcconsigne (§ 5.4.2.2). Ces forces de contact sont ensuite traitées comme des consignes à atteindre au mieux dans le calcul de la commande de l’hv. 5.4.2.1 Mouvement désiré Le mouvement désiré de l’objet manipulé par l’hv est spécifié par l’utilisateur sous la forme d’une consigne de position dans SE(3) (position et orientation) et d’une consigne de vitesse dans se(3) (vitesse de translation et de rotation) : des Hbox = des des Rbox rbox 01,3 1 des ∈ se(3) Vbox ∈ SE(3) Ces consignes identifient soit un état final à atteindre dans SE(3) × se(3) pour l’objet, soit une trajectoire à suivre dans le même espace. Les écarts entre le mouvement et le mouvement désiré sont donc : ∆Xbox = −1 des − r rbox Rbox box ∆Rbox et avec [∆Rbox ] = 1 des t t des Rbox Rbox − Rbox Rbox 2 (5.6) des ∆Vbox = Vbox − Vbox −1 La matrice Rbox apparaissant dans l’expression de ∆Xbox est nécessaire car les vecteurs rbox des et rbox sont exprimés dans le repère de référence. Les trois autres écarts sont exprimés dans le repère propre à l’objet, repère dans lequel s’exprime également l’accélération du mouvement des : désiré, V̇box des V̇box = kbox ∆Xbox + µbox ∆Vbox (5.7) On asservit en effet le mouvement de l’objet manipulé sur les consignes dans SE(3) × se(3) à l’aide d’un correcteur proportionnel-dérivé. 93 CHAPITRE 5. GESTION DE TÂCHES 5.4.2.2 Forces de contact de consigne des de l’objet induit, avec l’équation 5.1, un torseur d’efforts de contact Le mouvement désiré V̇box désiré selon : des Wc→box = M̃box des − G + Nbox Tbox − Wautres contacts→box V̇box (5.8) Si ce torseur est effectivement appliqué à l’objet, l’équation 5.1 assure que l’objet adopte des , spécifiée au paragraphe précédent. En effet, si W des l’accélération V̇box = V̇box c→box = Wc→box , à des des car M̃ l’aide des équations 5.1 et 5.8, on obtient M̃box V̇box = M̃box V̇box soit V̇box = V̇box box est inversible. des = Wc→box . Comme les contraintes de nonL’objectif est de trouver les fc telles que Wc→box glissement portent sur les forces de contact fc , on ne peut pas simplement calculer une pseudo des n’est pas forcément atteignable. C’est pourquoi une inverse de Cct . De plus, la trajectoire V̇box des et méthode d’optimisation est mise en œuvre. On cherche à minimiser l’écart entre Wc→box Wc→box ; les inconnues recherchées sont les efforts de contact, fc : 1 1 t des 2 t arg min kWc→box − Wc→box kQbox = arg min Wc→box Qbox Wc→box + Wc→box rbox 2 2 fc fc (5.9) des avec rbox = −Qbox Wc→box , et d’après l’équation 5.4 : 1 t 1 des 2 t Qbox Wc→box + Wc→box rbox arg min kWc→box − Wc→box kQbox = arg min Wc→box 2 2 fc fc avec Qbox = Cc Qbox Cct (5.10) des rbox = Cc rbox = −Cc Qbox Wc→box et Au final, pour calculer les efforts de contact fc qui produisent le mouvement de manutention des , on minimise le critère précédent sous les contraintes de non-glissement des forces souhaité, V̇box de contact : ( 5.4.3 t t Qbox Wc→box + Wc→box rbox arg min 12 Wc→box fc Ec fc + dc ≥ 0 (5.11) Les différentes étapes de la commande Dans cette section, on détaille les différentes phases de la commande (figure 5.8). Il s’agit d’un schéma séquentiel des différentes étapes de la commande de l’hv. Chaque étape débute une fois la précédente terminée. Étape 1 – établissement des prises : l’utilisateur spécifie les positions de consigne des mains sur l’objet, par exemple, au milieu de deux faces opposées de la boîte. En utilisant l’action “Génération de trajectoire” (§ 5.2.2.1), les mains atteignent les positions des prises sur les objets. Étape 2 – activation des contacts : on active la prise en compte des contacts de la main dans la loi de commande. On utilise l’action “Appuyer sur l’environnement” (§ 5.2.2.3). La loi de commande peut calculer des efforts à appliquer sur l’objet. 94 5.4. TÂCHES DE MANUTENTION Figure 5.8 – Déroulement des tâches de manutention. Figure 5.9 – Équilibre de la boîte. 95 CHAPITRE 5. GESTION DE TÂCHES Étape 3 – appuyer / saisir : on s’intéresse au calcul des efforts des mains sur l’objet, avant de déplacer celui-ci. Du point de vue de la commande, une méthode consiste à augmenter progressivement la masse de l’objet. Mtcourant = Mbox tcourant − tdébut de tâche tfin de tâche − tdébut de tâche (5.12) Il faut considérer le frottement sec des contacts. Si l’objectif consiste à soulever un objet, on calcule l’effort tangent nécessaire (figure 5.9). Le non-glissement du contact impose d’exercer un certain effort normal de serrage. Si l’objectif consiste à pousser un objet, on calcule l’effort normal nécessaire (figure 5.10). Il faut dans ce cas prendre en compte le frottement entre l’objet et le sol. Les efforts entre les mains et l’objet interviennent dans le bilan des efforts s’appliquant à l’hv. En effet, on considère, dans le calcul du CdM de consigne, des efforts de contact désirés des mains sur l’objet. Par exemple, en tentant progressivement de soulever une boîte située devant lui, la position du CdM de consigne calculée recule afin de garantir l’équilibre statique de l’hv. En poussant une armoire, la position du CdM doit avancer vers l’objet. Étape 4 – déplacer l’objet : il s’agit de l’étape principale de la manutention. Elle s’appuie sur le bilan des efforts s’exerçant sur l’objet (§ 5.4.2.2). La donnée d’entrée de cette étape est le mouvement de l’objet désiré par l’utilisateur. À partir de l’accélération désirée, les efforts nécessaires de la main sur l’objet pour réaliser le mouvement souhaité, sont déterminés. Ces efforts entre les mains et l’objet étant pris en compte dans le calcul du CdM de consigne, on est assuré que l’hv conserve son équilibre. L’objectif de la commande d’hv est double : appliquer les efforts de contact de consigne et atteindre la position du CdM de consigne. On joue sur les priorités du critère d’optimisation pour atteindre ces objectifs. Étape 5 – relâcher l’objet : une fois que l’objet a atteint sa position finale, on relâche les efforts que l’hv applique sur l’objet. C’est le processus inverse de l’étape 3. Étape 6 – désactiver les contacts : on désactive la prise en compte des contacts de la main dans la loi de commande. On utilise l’action “Appuyer sur l’environnement” (§ 5.2.2.3). Figure 5.10 – Équilibre de l’armoire. 96 5.4. TÂCHES DE MANUTENTION Étape 7 – s’éloigner des prises : on utilise l’action “Génération de trajectoire” (§ 5.2.2.1) pour relacher les contraintes sur l’accélération des mains. L’hv retrouve alors sa posture de départ. 97 CHAPITRE 6 Validations e chapitre confronte la simulation et l’expérimentation sur des cas simples. Des campagnes C d’essais sur 4 sujets volontaires ont été réalisées à l’ inrs. Une partie des essais a pour objectif d’étudier et de comparer les postures adoptées à partir de consignes par les sujets et par l’ hv. Une autre partie a pour objectif d’étudier et de comparer les réflexes des sujets et de l’ hv. En tout, 4 type d’essais ont été effectués. Des capteurs d’efforts sont placées à chacune des interactions du sujet avec l’environnement : pieds et mains. Les mouvements des sujets sont également capturés. On effectue une reconstruction de mouvement afin de passer des coordonnées des marqueurs aux coordonnées articulaires du mannequin virtuel. Les conditions des essais sont simulées : la disposition de l’environnement ainsi que les mouvements du sol sont reproduits à l’identique en simulation. Le comportement de l’ hv est généré à l’aide des lois de commande précédemment présentées. L’ hv est entièrement autonome et n’utilise aucune donnée expérimentale. Enfin, les résultats issus des expérimentations sont confrontés aux résultats des simulations. On compare en particulier l’évolution du CdM et les efforts d’interactions. L’expérimentation nous permet d’ajuster les paramètres de la loi de commande pour que le comportement de l’ hv se rapproche de celui des sujets. On trouve ainsi des valeurs physiques pour ces paramètres, jusqu’à présent fixés arbitrairement. Ce travail constitue une première étape de validation. Outre les résultats des confrontations calculs/essais, il illustre une démarche complète de validation biomécanique qui peut être étendue à d’autre cas de simulation, dans le cadre de recherches ultérieures. 99 CHAPITRE 6. VALIDATIONS Sommaire 6.1 Matériels et méthodes . . . . . . . . . . . . . . . . . . 6.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 Instrumentation . . . . . . . . . . . . . . . . . . . . . 6.1.3 Sujets . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4 Description des essais . . . . . . . . . . . . . . . . . . 6.1.4.1 Essai 01 : consigne en effort . . . . . . . . . . 6.1.4.2 Essai 02 : perturbation latérale du support . 6.1.4.3 Essai 03 : atteindre une cible . . . . . . . . . 6.1.4.4 Essai 04 : perturbation latérale du support et 6.1.5 Pré-traitements . . . . . . . . . . . . . . . . . . . . . . 6.1.5.1 Synchronisation . . . . . . . . . . . . . . . . 6.1.5.2 Capture de mouvements viconr . . . . . . . 6.1.5.3 Plate-forme d’efforts . . . . . . . . . . . . . . 6.2 Résultats et discussions . . . . . . . . . . . . . . . . . . 6.2.1 Mise en œuvre des simulations . . . . . . . . . . . . . 6.2.2 Classification des résultats . . . . . . . . . . . . . . . . 6.2.3 Essai 01 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3.1 Préliminaires . . . . . . . . . . . . . . . . . . 6.2.3.2 Comparaison CdM . . . . . . . . . . . . . . . 6.2.3.3 Comparaison des efforts . . . . . . . . . . . . 6.2.3.4 Bilan . . . . . . . . . . . . . . . . . . . . . . 6.2.4 Essai 02 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.4.1 Préliminaires . . . . . . . . . . . . . . . . . . 6.2.4.2 Comparaison CdM . . . . . . . . . . . . . . . 6.2.4.3 Comparaison des efforts . . . . . . . . . . . . 6.2.4.4 Bilan . . . . . . . . . . . . . . . . . . . . . . 6.2.5 Essai 03 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.5.1 Analyse des résultats . . . . . . . . . . . . . 6.2.5.2 Comparaison des efforts . . . . . . . . . . . . 6.2.5.3 Bilan . . . . . . . . . . . . . . . . . . . . . . 6.2.6 Essai 04 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.6.1 Analyse des résultats . . . . . . . . . . . . . 6.2.6.2 Comparaison CdM . . . . . . . . . . . . . . . 6.2.6.3 Comparaison des efforts . . . . . . . . . . . . 6.2.6.4 Bilan . . . . . . . . . . . . . . . . . . . . . . 6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . préhension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 101 101 102 102 102 103 104 104 105 105 105 106 106 106 106 107 107 107 109 109 109 109 110 110 110 113 113 114 115 115 115 117 117 117 117 6.1. MATÉRIELS ET MÉTHODES 6.1 6.1.1 Matériels et méthodes Objectifs Quatre essais ont été réalisés sur des sujets humains pour confronter l’expérience aux simulations. Afin de minimiser la variabilité inhérente au comportement humain, on s’est intéressé à des cas simples, délimité par le protocole d’expérience. Pendant ces essais, les déplacements des sujets et les efforts qu’ils appliquent sur l’environnement ont été mesurés. Chaque essai a été réalisé trois fois par chaque volontaire pour tenir compte des dispersions souvent importantes dans le domaine biomécanique. La loi de commande contient de nombreux paramètres d’asservissements qu’il est difficile de quantifier. L’intérêt de confronter ce modèle de comportement à la réalité est aussi d’ajuster ces asservissements. 6.1.2 Instrumentation (a) Capteur ati. (b) Système viconr . (c) Banc vibratoire. Figure 6.1 – Instrumentation de la campagne d’essais. Les équipements se situent dans le laboratoire inrs/msmp 1 . Les efforts entre le sujet et l’environnement sont mesurés à l’aide de capteurs ati (figure 6.1(a)) : – interactions pieds : 2 capteurs Delta SI 660-60 (FXmax = FYmax = 660 N ; FZmax = 1980 N ; C max = 60 N.m−1 ) ; – interaction main : 1 capteur Delta SI 1500-240 (FXmax = FYmax = 1500 N ; FZmax = 3750 N ; C max = 240 N.m−1 ). Les déplacements du sujet sont mesurés à l’aide du système de capture de mouvement viconr (figure 6.1(b)). La reconstruction du mouvement permet d’obtenir les coordonnées articulaires de l’hv aux dimensions du sujet. Enfin, les perturbations du sol sont provoquées par un banc vibratoire (figure 6.1(c)) en régime transitoire. Après plusieurs essais, un profil de perturbation de 15 cm d’amplitude a été retenu (figure 6.3). Les fréquences d’échantillonnage des mesures sont données dans le tableau 6.1. 1. msmp : Modélisation des Systèmes Mécaniques et de Prévention à Vandœuvre 101 CHAPITRE 6. VALIDATIONS Système de mesure capteur d’efforts caméra viconr caméra vidéo Période d’ échantillonage 0.01 s 0.01 s 0.04 s Nbr 3 6 1 Table 6.1 – Systèmes de mesure. Nom du sujet alexandre cyrille jonathan laurent N˚ du sujet 1 2 3 4 moyenne Masse (kg) 77 75 80 75 76.75 Taille (m) 1.83 1.86 1.89 1.77 1.84 Table 6.3 – Déplacement du banc vibratoire lors des essais 02 et 04. Posture Réflexe Table 6.2 – Masses et tailles des sujets. 6.1.3 Sans préhension Essai 01 Essai 02 Avec préhension Essai 03 Essai 04 Table 6.4 – Objectifs de chaque essai. Sujets Quatre hommes, âgés de 25 à 40 ans, ont réalisé l’ensemble des 4 essais. La masse et la taille des sujets sont indiqués dans le tableau 6.2. 6.1.4 Description des essais Chaque essai a été effectué 3 fois par les 4 volontaires. La moitié des essais a pour but de caractériser une posture donnée, par les forces d’interaction entre le sujet et son environnement. L’autre moitié sert à mettre en évidence un comportement réflexe suite à une perturbation. Le traitement de la préhension étant un des points clés de la loi de commande, la moitié des essais met en jeu une prise pour le maintien de l’équilibre. L’objectif de chaque essai est résumé dans le tableau 6.4. Lors des essais 02 et 04, le banc vibratoire exécute une translation en suivant le profil de la figure 6.3. 6.1.4.1 Essai 01 : consigne en effort Dans l’essai 01 (figure 6.2), le sujet est en position debout, une main contre un appui vertical. Au début de l’essai, il n’applique aucun effort sur ce support. Il a pour objectif d’appliquer un effort de consigne à l’aide de sa main gauche. Un oscilloscope, placé en face du sujet, lui indique à chaque instant l’effort qu’il exerce sur ce support. La consigne de force de 120 N est aussi indiquée sur l’oscilloscope. Pour atteindre cette consigne, tout en gardant les deux pieds au sol, le sujet doit s’avancer pour garder son équilibre, qui dans ce cas, peut être considéré comme statique. Il a pour objectif d’atteindre cette consigne en quelques secondes (environs 5 s). Cet essai permet de connaître la validité du calcul de CdM de consigne ainsi que la validité de la gestion de la redondance. Dans le chapitre 3, la position du CdM de consigne stable est calculée pour une configuration de contact connue et des efforts de contact désirés (§ 3.2). En simulation, il s’agit d’imposer des efforts de contact au niveau de la main identiques aux efforts 102 6.1. MATÉRIELS ET MÉTHODES (a) Sujet (b) Reconstruction Figure 6.2 – Essai 01 : consigne en effort sur la main gauche. mesurés, pour observer la posture automatiquement adoptée par l’hv. On peut donc comparer la position du CdM, la posture globale et les efforts d’interaction, notamment au niveau des pieds. 6.1.4.2 Essai 02 : perturbation latérale du support (a) Sujet (b) Reconstruction Figure 6.3 – Essai 02 : perturbation du sujet dans le plan sagittal. Dans l’essai 02 (figure 6.3), le sujet est debout sur le banc vibratoire, les deux bras le long du corps. Le banc se translate avant d’arriver en butée et de s’arrêter brutalement. Le sujet est perturbé dans le plan sagittal. Il connaît la direction de la perturbation, ce qui influence son comportement. Cependant, il ne sait pas précisément quand celle-ci va se produire. Toutes les mesures ont été prises pour limiter les risques de chute de plain-pied : limitation des accélérations, déplacement raisonnable du sol, encadrement du sujet. Cet essai permet d’évaluer sur un cas simple le comportement réflexe de l’hv suite à une perturbation. L’expérimentation permet d’ajuster les paramètres de la loi de commande tel que le suivi du CdM de consigne, jusqu’alors défini arbitrairement. Un recalage est donc possible pour obtenir un temps de réponse à une perturbation et un retour à l’équilibre plus réaliste de l’hv. 103 CHAPITRE 6. VALIDATIONS 6.1.4.3 Essai 03 : atteindre une cible (a) Sujet (b) Reconstruction Figure 6.4 – Essai 03 : atteindre une cible en s’aidant d’une prise. Dans l’essai 03 (figure 6.4), le sujet est en position debout. Il ne doit pas déplacer ses pieds. Son objectif est de saisir avec sa main droite une balle située de son côté droit, en arrière. Celleci est trop éloignée pour être atteinte directement sous peine de perdre l’équilibre. Il saisit une prise avec sa main gauche située devant lui, sur sa gauche. En s’aidant de celle-ci, il peut alors se pencher pour atteindre la balle, tout en gardant son équilibre. Comme dans l’essai 01, il s’agit principalement de comparer les efforts d’interaction une fois l’objectif réalisé. Un problème se pose en simulation : générer le CdM de consigne sans connaître la consigne d’effort de la main gauche. Dans un premier temps, on peut contourner ce problème en utilisant comme donnée d’entrée de la simulation, la posture finale obtenue par la reconstruction du mouvement. L’intérêt de cet essai réside alors uniquement dans la comparaison des efforts d’interaction et enlève partiellement à la méthode ses propriétés de gestion autonome. Une autre solution est de laisser le CdM de consigne au dessus des pieds. Le CdM réel s’en éloigne pour permettre à la main gauche d’atteindre la cible, ce qui est traité comme une contrainte alors que la position du CdM est uniquement une consigne, qu’il n’est pas obligatoire de satisfaire. 6.1.4.4 Essai 04 : perturbation latérale du support et préhension Dans l’essai 04 (figure 6.5), le sujet est debout sur le banc vibratoire. Il saisit une prise avec sa main droite qui l’aide à garder son équilibre. Il s’agit alors du même protocole que dans l’essai 02. Le banc se translate avant d’arriver en butée et de s’arrêter brutalement. Le sujet est perturbé dans le plan sagittal. Comme dans l’essai 02, on ajuste les asservissements et priorités de l’algorithme de résolution du problème quadratique. D’autre part, on a observé dès les premiers essais que l’utilisation de la prise évolue considérablement au cours des essais chez un même sujet. Dans le premier essai, le sujet, probablement par appréhension, s’accroche de toutes ses forces à la prise pour conserver son équilibre. Dans les essais suivants, l’effort appliqué sur la prise diminue et est mieux réparti sur les pieds. Il est intéressant de comparer les essais 02 et 04. 104 6.1. MATÉRIELS ET MÉTHODES (a) Sujet (b) Reconstruction Figure 6.5 – Essai 04 : perturbation du sujet s’aidant d’une prise dans le plan sagittal. 6.1.5 6.1.5.1 Pré-traitements Synchronisation Les mesures de forces, mouvements et vidéos ont été synchronisées à l’aide d’un signal choc initial sur un des capteur ati, avec un marteau équipé de mires viconr . 6.1.5.2 Capture de mouvements viconr Figure 6.6 – Processus de reconstruction de mouvements de l’hv à partir des données viconr . Un marqueur doit être visible par au moins deux caméras pour permettre la détermination de ses 3 composantes spatiales. Au cours de la mesure, certains marqueurs peuvent être occultés quelques instants. Il faut alors les reconnaître lorsqu’ils apparaissent à nouveau. Une fois la mesure terminée, une étape de numérotation des marqueurs capturés est nécessaire. À la fin de cette étape, tous les marqueurs sont identifiés mais certaines acquisitions peuvent manquer suite à des occultations des mires. On réalise alors une interpolation pour obtenir les échantillons temporels manquants. D’autre part, un filtrage peut être effectué pour atténuer le bruit dû aux imprécisions de mesures. 105 CHAPITRE 6. VALIDATIONS On effectue alors la reconstruction des mouvements capturés sous Arboris. L’hv utilisé pour cette reconstruction à 36 ddl (données provenant de Humans [INR06]). À partir de la taille et de la masse des sujets, on calcule un facteur d’échelle qui permet d’obtenir la longueur, la masse et l’inertie de tous les segments corporels de leur avatar et la position des marqueurs viconr sur l’hv. Il ne reste plus qu’à faire coïncider les marqueurs de l’hv avec les données capturées pour chaque instant de l’essai réalisé. On obtient ainsi la position du corps racine ainsi que la configuration articulaire qui permet de définir complètement la posture de l’avatar. Cette opération est effectuée par un algorithme d’optimisation de type descente de gradient, en pondérant les marqueurs. Les mires sont placées sur des repères anatomiques du sujet. D’un sujet à l’autre, il est difficile de positionner précisément certaines mires. On affecte un poids différents aux marqueurs en fonction de la pertinence que l’on accorde à chaque mesure. La solution moyenne obtenue se rapproche de la configuration des marqueurs mesurée. Cette solution est satisfaisante, notamment au regard de l’exploitation que l’on fait de ces données : la reconstruction de mouvements est utilisée principalement pour obtenir la position du CdM et une allure de comportement (figure 6.6). Pour alléger la présentation des résultats, les articulations ne sont pas étudiées une à une. 6.1.5.3 Plate-forme d’efforts Des plaques ou poignées sont montées sur les capteurs d’effort. Dans les essais 02 et 04, un essai à vide (sans sujet) est effectué, afin d’obtenir la contribution dynamique des supports aux efforts mesurés. On retranche par la suite ces efforts à vide sur les essais effectués avec sujet. 6.2 6.2.1 Résultats et discussions Mise en œuvre des simulations Le même avatar (masses, dimensions) est utilisé à la fois pour les simulations et pour la reconstruction du mouvement. L’origine du repère scène de la simulation Arboris est confondue avec l’origine du repère viconr . L’environnement extérieur (prises, mur) est repéré et modélisé à l’échelle. Cet environnement intervient dans les calculs comme un robot commandé cinématiquement. Lors des essais 02 et 04, on commande cinématiquement en position et vitesse le sol afin de reproduire exactement le même mouvement de translation. Pour chaque essai, on effectue une simulation avec les caratéristiques corporelles de chaque sujet – soit un total de 16 simulations. Pour chaque simulation, la posture de référence de l’hv est la posture obtenue par reconstruction de mouvement. Pour chaque série, on choisit une posture initiale parmi les trois essais disponibles. Chaque simulation correspond donc à une série et peut être comparée avec les 3 essais effectués au cours de cette série. 6.2.2 Classification des résultats Essai n˚1 Essai n˚2 Essai n˚3 Simulation n˚1 Simulation n˚2 Figure 6.7 – Légende des couleurs pour les courbes. Les résultats sont présentés sous forme de courbes. Chaque essai étant réalisé 3 fois par sujet, on les représente par une couleur bleue de nuance différente. Les résultats des simulations sont représentés en rouge. Pour les essais 02 et 04, deux simulations sont réalisées avec des paramètres 106 6.2. RÉSULTATS ET DISCUSSIONS de loi de commande différents. Le code des couleurs employé est détaillé dans la figure 6.7. De plus, on trace le déplacement du CdM dans l’espace. Sa position initiale sera représentée par une sphère verte • et sa position finale par une sphère rouge •. 6.2.3 6.2.3.1 Essai 01 Préliminaires (a) Sujet 01 (b) Sujet 02 (c) Sujet 03 (d) Sujet 04 Figure 6.8 – Essai 01 : comparaison posture finale. Pour chaque sujet, la posture de gauche est le résultat de la simulation, la posture de droite est obtenue par reconstruction de mouvement. La position et l’effort de consigne de la main gauche sont fournis comme données d’entrée à la loi de commande. La main gauche de l’hv suit une trajectoire générée par interpolation pour atteindre le mur. On active alors les contacts de la main gauche à la fois dans le calcul des couples articulaires et du CdM de consigne. Dans ce dernier calcul, les forces de contact désirées sont de 120 N, correspondant ainsi à l’effort de consigne que doit appliquer le sujet sur le mur. Par conséquent, le CdM de consigne, calculé automatiquement, avance vers le mur. On se contente d’utiliser le calcul présenté § 3.2. Ce calcul ne prend pas en compte le critère de robustesse. L’hv adapte sa posture et se penche vers le mur. Dans la simulation, l’hv remonte les épaules et les bras en s’appuyant sur le mur. Ce phénomène n’a pas été constaté lors des essais (figure 6.8). En s’avançant, les sujets abaissent leur CdM. Or, ce phénomène naturel n’est pas pris en compte par la commande. La hauteur du CdM de consigne de l’hv reste constante. En s’avançant, l’hv compense donc en levant les épaules et les bras. Dans le chapitre 3, la hauteur du CdM n’est pas déterminée automatiquement en fonction de la configuration des contacts. Une idée est de s’assurer que la distance du CdM au pied reste constante. Lorsque le CdM avance, il s’abaisserait. Les sujets appuient progressivement sur le mur jusqu’à atteindre la consigne en effort de 120 N. L’effort de consigne de l’hv est un créneau d’amplitude 120 N. L’implémentation de la commande permettant à l’hv d’appuyer progressivement sur le mur jusqu’à l’effort de consigne est laissée en perspective. 6.2.3.2 Comparaison CdM Le déplacement du CdM de l’hv est comparable à celui des sujets (figure 6.9). Chez les sujets 01 et 03, la position du CdM de simulation est très proche de celle du CdM en pratique. Chez les sujets 02 et 04, la position mesurée du CdM est plus proche du mur que celle de l’hv. Dans la simulation, la position du CdM de consigne est calculée automatiquement uniquement à partir des positions et des efforts de consigne de la main gauche et des pieds. Ces résultats sont donc très 107 CHAPITRE 6. VALIDATIONS Figure 6.9 – Essai 01 : évolution dans le plan du CdM. Pour le sujet cyrille, deux essais sur trois sont exploitables. Pour le sujet jonathan, un seul des trois essais est utilisable. Unités : m. 108 6.2. RÉSULTATS ET DISCUSSIONS satisfaisants car on observe une bonne corrélation de la posture finale entre essai et simulation. La loi de commande peut donc effectivement prédire la posture à adopter pour appliquer une consigne désirée. La prise en compte des marges de stabilité pour la détermination du CdM de consigne pourrait prédire une position plus proche des sujets 02 et 04. 6.2.3.3 Comparaison des efforts ESSAI 01 Bilan Efforts (N) Pied Gauche − → → − X Y N. − → Z N. Pied droit → − → − X Y − → Z Main Gauche → − → − X Y N. − → Z Exp. +380 +088 +035 -368 +414 +047 -040 -408 +132 +036 +001 -127 Sim. +385 +085 +036 -374 +379 +048 -023 -374 +118 -004 +002 -118 Table 6.5 – Essai 01 : bilan de comparaison entre expériences et simulations des efforts. On indique la norme de l’effort (N.) puis les 3 composantes de l’effort. On observe une bonne corrélation entre les efforts issus de l’expérimentation et de la simulation (tableau 6.5). On relève un écart important des efforts de la main gauche tangents au → − → − − → mur. L’hv exerce sur le mur un effort très proche de la consigne ( Z ≃ 120 N, X ≃ Y ≃ 0 N). Les sujets appliquent le bon effort normal mais aussi de manière inconsciente un effort tangent → − ( X ≃ 36 N). 6.2.3.4 Bilan À partir d’un effort de consigne sur la main gauche, la loi de commande permet de prédire correctement la posture à adopter par l’hv. On observe une bonne adéquation en termes d’efforts d’interactions et de déplacement du CdM. Plusieurs modifications de la loi de commande permettraient sans doute d’améliorer l’adéquation du modèle à la réalité : – gérer la hauteur du CdM de consigne ; – calculer le CdM de consigne en introduisant un critère de stabilité ; – introduire progressivement l’effort de consigne de la main gauche. 6.2.4 6.2.4.1 Essai 02 Préliminaires (a) Sujet 01 (b) Sujet 02 (c) Sujet 03 (d) Sujet 04 Figure 6.10 – Essai 02 : comparaison des postures. Pour chaque sujet, la posture de gauche est le résultat de la simulation, la posture de droite est obtenue par reconstruction de mouvement. 109 CHAPITRE 6. VALIDATIONS La posture de référence de l’hv est choisie comme la posture initiale des sujets, obtenue par reconstruction des mouvements. Lors de l’initialisation de la commande, la répartition des efforts de consigne des contacts pieds/sol est calculée. Celle-ci permet d’équilibrer le CdM de la posture de référence. Les sujets ont leur poids réparti plus ou moins sur l’avant des appuis. Quelques simulations préliminaires montrent que l’asservissement sur le CdM est le facteur le plus important du comportement de l’hv. Afin d’ajuster la commande de l’hv aux essais sur sujets, deux simulations ont été réalisées par sujet, avec des asservissements différents concernant le mouvement du CdM : – simulation n˚1 : kcdm = 500 N.m−1 , µcdm = 250 N.s.m−1 .kg−1 ; – simulation n˚2 : kcdm = 500 N.m−1 , µcdm = 100 N.s.m−1 .kg−1 . La coordination posturale est assez différente entre l’hv et les sujets. Les asservissements et priorités liés à la posture n’ont pas été recalés. Dans notre validation, on s’est intéressé uniquement au recalage de l’asservissement du CdM. Cet asservissement influence le temps de réponse du système pour atteindre le CdM de consigne mais aussi le profil des efforts d’interaction de l’hv avec le sol. 6.2.4.2 Comparaison CdM On observe des comportements différents d’un sujet à l’autre (figure 6.11), notamment l’évolution postérieure/antérieure du CdM lors de la perturbation. L’hv conserve la même position de CdM dans l’axe postérieur/antérieur. En ce qui concerne les efforts, au début de l’essai, les sujets ont tendance à être plus en appui sur l’avant des pieds qu’à la fin de l’essai. Cette reconfiguration n’est pas constatée dans la simulation. L’évolution relative latérale du CdM en fonction du temps (figure 6.12) permet d’observer les temps de réponse des deux asservissements testés en simulation. À raideur égale, l’amortissement le plus faible donne le temps de réponse le plus court, ce qui peut provoquer la perte d’équilibre de l’hv. Par exemple, la simulation n˚2 du sujet 03 ne donne pas de retour à l’équilibre. Ceci est probablement du au fait que le sujet est initialement en appui sur la pointe des pieds, ce qui diminue la capacité de l’hv à retrouver l’équilibre dans la simulation. La région délimitée par les 2 simulations englobe (surtout suivant l’axe postérieur/antérieur) les résultats expérimentaux, ce qui est très satisfaisant. On observe un phénomène d’oscillation sur les courbes expérimentales, que l’on ne retrouve pas en simulation. Ce phénomène est plus ou moins atténué d’un sujet à l’autre. 6.2.4.3 Comparaison des efforts Le pic d’effort lors du déplacement du banc vibratoire est comparable entre simulation et expérimentation (figures 6.13 et 6.14). On observe un phénomène d’oscillations sur la mesure des efforts d’interaction du pied gauche et du pied droit avec le sol. La simulation n˚1 a une réponse trop amortie. Avec la simulation n˚2, on observe une première oscillation suite au pic d’effort comparable à l’expérimentation. En augmentant la raideur et/ou diminuant l’amortissement, il est probable que l’on observe d’autres cycles d’oscillations. Cependant, on se heurte à des problèmes de convergence. 6.2.4.4 Bilan Les deux simulations englobent la zone des essais aussi bien pour le déplacement du CdM que pour les efforts d’interactions. La simulation n˚2 permet d’obtenir une réponse plus fidèle à 110 6.2. RÉSULTATS ET DISCUSSIONS Figure 6.11 – Essai 02 : évolution absolue du CdM dans le plan. Pour le sujet jonathan, l’hv n’a pas retrouvé l’équilibre dans l’une des deux simulations. Unités : m. 111 CHAPITRE 6. VALIDATIONS Figure 6.12 – Essai 02 : évolution relative latérale (axe de la perturbation) du CdM en fonction du temps. La position du CdM est exprimée dans le repère attaché au sol en mouvement. Figure 6.13 – Essai 02 : évolution de la norme de la force du pied gauche. 112 6.2. RÉSULTATS ET DISCUSSIONS Figure 6.14 – Essai 02 : évolution de la norme de la force du pied droit. la réalité. En perspective, des essais complémentaires et des modifications de la loi de commande permettraient probablement d’améliorer encore la pertinence de notre modélisation : – tout d’abord, il faut mieux rendre compte du phénomène d’oscillation sur le déplacement du CdM et les efforts d’interaction. Le corps humain est une structure souple donc oscillante lorsque elle est soumise à une perturbation ; – la coordination posturale peut être également améliorée grâce au réglage les gains des asservissements et priorités des optimisations ; – enfin, suite à une perturbation, on pourrait redéfinir la position du CdM de consigne dans l’axe postérieur/antérieur, en s’appuyant sur les marges de stabilité. On améliorerait ainsi le retour à l’équilibre de l’hv. 6.2.5 6.2.5.1 Essai 03 Analyse des résultats Une première simulation a été effectuée en spécifiant uniquement les positions de la prise pour la main gauche et de la cible pour la main droite. Le résultat n’est pas concluant. En simulation, le CdM s’écarte très peu de sa position initiale (figure 6.6). En termes d’efforts, l’hv utilise très peu sa main gauche pour se maintenir (tableau 6.7). À l’opposé, les sujets reculent et s’aident de leur prise avec la main gauche pour atteindre la cible. Le CdM de consigne n’évolue pas au cours de la simulation. Contrairement à l’essai 01, l’effort de consigne de la main gauche est inconnu. Cet effort est difficilement quantifiable et dépend de la posture adoptée par le sujet pour atteindre la cible. Pour ce type de problème, la loi de 113 CHAPITRE 6. VALIDATIONS Efforts Pied Pied Main normés Gauche Droit Gauche Expérience 380 360 155 Simulation 360 380 25 Écart (%) 5 6 84 Table 6.7 – Essai 03 : comparaison entre expériences et simulations des efforts. Norme des efforts d’interactions appliqués en position finale en N. Table 6.6 – Essai 03 : évolution dans le plan du CdM sans l’indication de position du CdM finale. Unités : m. commande est inadaptée. Elle ne permet pas de prédire la posture à adopter et les efforts à appliquer pour que l’hv atteigne la cible. Pour aller plus loin dans l’expérimentation, on fait une hypothèse supplémentaire. La position finale du CdM est connue et provient de l’expérimentation. (a) Sujet 01 (b) Sujet 02 (c) Sujet 03 (d) Sujet 04 Figure 6.15 – Essai 03 : comparaison posture finale. Pour chaque sujet, la posture de gauche est le résultat de la simulation, la posture de droite est obtenue par reconstruction de mouvement. En spécifiant la posture initiale et le CdM final, l’évolution du CdM de l’hv est très corrélée avec celles des expérimentations. Les postures finales entre simulations et expérimentations sont très proches (figure 6.15). La redondance de la posture de l’hv est gérée par la commande. L’orientation du thorax est actualisée en fonction de la position des effecteurs. Il n’est pertinent que de comparer les efforts, puisque les CdM ont fait l’objet d’une hypothèse qui les rend “artificiellement” très proches. 6.2.5.2 Comparaison des efforts ESSAI 03 Bilan Efforts (N) Pied Gauche → − → − → − N. X Y Z N. Pied droit → − → − X Y − → Z Main Gauche → − → − − → N. X Y Z Exp. +349 -093 -052 +331 +379 -016 -046 -375 +128 +034 -072 +089 Sim. +357 -087 -040 +344 +422 -032 -054 -417 +142 +089 -110 +011 Table 6.8 – Essai 03 : comparaison entre expériences et simulations des efforts. On indique la norme de l’effort (N.) puis ses 3 composantes. Unité : N. 114 6.2. RÉSULTATS ET DISCUSSIONS On observe une bonne corrélation au niveau des efforts d’interaction des pieds (tableau 6.8). Les efforts de la main gauche sont comparables en norme mais pas en direction. La mauvaise estimation des couples et efforts de préhension de saturation peut être à l’origine de ces différences entre simulation et expérimentation. 6.2.5.3 Bilan Notre algorithme de commande ne permet pas de prédire la posture et les efforts d’interaction pour les tâches d’atteinte de cible. Sans information sur l’effort de consigne à exercer sur la prise, l’hv a un comportement différent de l’humain. En ajoutant une hypothèse très restrictive sur la position du CdM final de l’hv, on a comparé les efforts d’interactions. Il y a une mauvaise corrélation sur les efforts exercés par la main qui tient la prise gauche. L’étude de l’influence de la saturation des efforts de préhension sur cette corrélation est laissée en perspective. 6.2.6 6.2.6.1 Essai 04 Analyse des résultats (a) Sujet 01 (b) Sujet 02 (c) Sujet 03 (d) Sujet 04 Figure 6.16 – Essai 04 : comparaison de postures. Pour chaque sujet, la posture de gauche est le résultat de la simulation, la posture de droite est obtenue par reconstruction de mouvement. Le dispositif de l’essai 02 est complexifié. On s’intéresse à la réaction simple à une perturbation de l’hv s’aidant d’une prise. Le CdM de consigne est mis à jour en tenant compte de la position des pieds de l’hv. Les mêmes efforts de contact désirés au niveau des pieds que dans l’essai 02 sont utilisés. L’effort de préhension désiré est nul. Comme dans l’essai 02, on réalise deux simulations avec différents gains des asservissements de la position du CdM : – simulation n˚1 : kcdm = 500 N.m−1 , µcdm = 250 N.s.m−1 .kg−1 ; – simulation n˚2 : kcdm = 500 N.m−1 , µcdm = 100 N.s.m−1 .kg−1 . Ces deux premières simulations montrent une mauvaise corrélation en termes d’efforts d’interaction entre simulation et expérimentations. On étudie alors l’influence d’un paramètre supplémentaire de la loi de commande, la saturation de l’effort de préhension : – simulation n˚1 : f max = 200 N, mmax = 80 N.m−1 ; – simulation n˚2 : f max = 050 N, mmax = 20 N.m−1 . Pour simplifier la présentation, gains et saturations sont étudiés simultanément. L’influence de chaque paramètre n’est pas exposée. 115 CHAPITRE 6. VALIDATIONS Figure 6.17 – Essai 04 : évolution absolue du CdM dans le plan. Unités : m. 116 6.3. CONCLUSION 6.2.6.2 Comparaison CdM D’une part, les comportements sont différents d’un sujet à l’autre (figure 6.17). D’autre part, on note peu de différences entre les simulations n˚1 et n˚2 en ce qui concerne l’évolution dans le plan du CdM. Le déplacement simulé du CdM se trouve dans le corridor de variabilité des résultats expérimentaux. L’évolution relative latérale du CdM en fonction du temps permet d’observer les temps de réponse des deux asservissements testés (figure 6.18). Contrairement à l’essai 02, on n’observe pas d’instabilité dans les simulations. L’hv est soumis à la même perturbation que dans l’essai 02 mais la prise saisie par la main droite améliore sa stabilité. Suivant l’axe médial/latéral, les 2 simulations sont comparables aux résultats expérimentaux, ce qui est très satisfaisant. On observe un petit phénomène d’oscillation sur les courbes expérimentales, que l’on ne retrouve pas en simulation. 6.2.6.3 Comparaison des efforts On trouve des différences importantes entre les deux simulations en termes d’efforts d’interactions (figures 6.19, 6.21 et 6.20). Pour la simulation n˚1, la norme des efforts des pieds reste pratiquement constante. Ces résultats sont très éloignés de la réalité. La variation d’efforts produite par la perturbation semble se répercuter uniquement sur l’effort exercé par la main droite. La simulation n˚2, dans laquelle on a diminué la saturation de l’effort de préhension, donne des résultats plus proches de la réalité. On observe une répartition des efforts d’interactions plus plausible. L’hv n’utilise pas uniquement sa main droite pour compenser la perturbation mais aussi ses pieds. En diminuant la saturation de l’effort de préhension, on observe également une diminution de la norme de l’effort exercé par la main droite sur la prise (figure 6.20). De plus, l’effort n’est pas exercé dans la même direction. 6.2.6.4 Bilan À partir de la même posture initiale que les sujets, le comportement de l’hv est proche de celui des sujets. Les deux simulations permettent d’englober le corridor de variabilité des essais pour le déplacement du CdM. La simulation n˚2 permet d’obtenir une réponse plus fidèle à la réalité en terme d’efforts d’interaction. En perspective, une analyse complémentaire des essais et des modifications de la loi de commande permettraient peut-être d’améliorer l’adéquation de notre loi de commande à la réalité : – interpréter suivant chaque axe les efforts d’interactions ; – implémenter une saturation isotrope de l’effort de préhension ; – étudier l’influence de la saturation des couples d’actionnement. 6.3 Conclusion Cette étude dresse une première validation et permet un recalage de la loi de commande (tableau 6.9). Les résultats sont encourageants et ont démontré la grande souplesse d’utilisation de la loi de commande. L’identification très simple des paramètres clés de la commande a permis d’obtenir rapidement une bonne corrélation entre simulation et expérimentation. Il suffit de modifier l’asservissement du CdM et de la saturation de l’effort de préhension, c’est à dire deux paramètres seulement, pour obtenir un recalage satisfaisant en terme de déplacement du CdM 117 CHAPITRE 6. VALIDATIONS Figure 6.18 – Essai 04 : évolution relative latérale du CdM en fonction du temps. La position du CdM est exprimée dans le repère attaché au sol en mouvement. Figure 6.19 – Essai 04 : évolution de la norme de la force du pied gauche. 118 6.3. CONCLUSION Figure 6.20 – Essai 04 : évolution de la norme de la force du pied droit. Figure 6.21 – Essai 04 : évolution de la norme de la force de la main droite. 119 CHAPITRE 6. VALIDATIONS Comparaison simulation / expérimentation Numéro de l’essai Essai 01 Essai 02 Essai 03 Essai 04 Rôle prédictif de la commande oui oui non oui Comparaison CdM oui oui - oui Comparaison efforts oui oui moyen oui Recalage paramètres - kcdm , µcdm - kcdm , µcdm fpmax , mmax p Table 6.9 – Bilan de la validation. et d’efforts d’interaction. Pour ces essais bien définis, on a observé des différences de comportement d’un essai à l’autre pour un même sujet et entre les sujets. La loi de commande ne permet pas de simuler rigoureusement tous ces comportements, c’est à dire ne permet pas de simuler la variabilité humaine. Elle donne cependant un comportement globalement comparable à la réalité. La modélisation des interactions (contact, préhension) est adaptée aux problèmes traités. La loi de commande donne à l’hv un comportement réflexe pertinent (essai 02 et 04). Elle génère une posture réaliste à partir d’informations concernant les efforts d’interaction (essai 01). Une démarche plus complète et approfondie de validation, faisant l’objet en soi d’une thèse, pourrait être entreprise. 120 CHAPITRE 7 Cariste es renversements latéraux de chariots de manutention provoquent chaque année de nom- L breux accidents mortels. La prévention dans ce domaine et le développement de systèmes de retenue pour les conducteurs est une priorité pour l’ inrs. Comme il n’est pas possible de reproduire expérimentalement un cas complet réaliste de renversement de chariot avec un sujet humain pour des problèmes évidents de sécurité, on a recours à des outils de simulation, mais encore faut-il disposer d’un hv ayant un comportement dynamique réaliste. Ce chapitre présente les premiers résultats de l’application de la loi de commande présenté dans cette thèse à la problématique du cariste. Tout d’abord, on présente un bref résumé des campagnes d’essais réalisées à l’ inrs concernant le renversement latéral du cariste. Deux types de banc d’essais ont été construits avec l’objectif de fournir des éléments de validation biomécanique représentatifs et utilisables pour un modèle d’ hv. On dresse un bilan qualitatif des comportements observés sur les sujets. Puis, le comportement du cariste est simulé en utilisant les lois de commande de l’ hv présentées dans ce mémoire. Les cas de renversement traités sont présentés par ordre croissant de complexité et de réalisme. On s’appuie sur des cas simples pour expliquer l’influence de certains paramètres de la simulation et/ou de la commande (coefficient de frottement, effort de préhension maximal, délai). Enfin, plusieurs cas de renversement complet avec un cariste virtuel sont détaillés. 121 CHAPITRE 7. CARISTE Sommaire 7.1 Problématique du cariste . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.2 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.2.1 Banc dynamique pour l’étude du virage en J . . . . . . . . . . 7.1.2.2 Banc statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3 Objectifs de la simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Commande du cariste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Présentation du système . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1.1 Modélisation du chariot . . . . . . . . . . . . . . . . . . . . . . 7.2.1.2 Les différents types de renversement traités . . . . . . . . . . . 7.2.1.3 Stratégies du cariste . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1.4 Paramètres testés . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Renversement simple : simulations . . . . . . . . . . . . . . . . . . . . . 7.2.2.1 Classification des résultats . . . . . . . . . . . . . . . . . . . . 7.2.2.2 Influence du coefficient de frottement et de l’effort de préhension maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2.3 Influence du délai . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2.4 Différences entre délai et stratégie . . . . . . . . . . . . . . . . 7.2.3 Renversement statique : simulations . . . . . . . . . . . . . . . . . . . . 7.2.3.1 Classification des résultats . . . . . . . . . . . . . . . . . . . . 7.2.3.2 Influence de la stratégie . . . . . . . . . . . . . . . . . . . . . . 7.2.3.3 Influence du délai . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.4 Comparaison expérimentation / simulation . . . . . . . . . . . 7.2.4 Renversement dynamique : simulations . . . . . . . . . . . . . . . . . . . 7.2.4.1 Classification des résultats . . . . . . . . . . . . . . . . . . . . 7.2.4.2 Nouvelle stratégie : centrifuge . . . . . . . . . . . . . . . . . . 7.2.4.3 Influence de la stratégie . . . . . . . . . . . . . . . . . . . . . . 7.3 Conclusion et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 123 123 125 125 125 127 127 127 127 128 129 130 132 132 132 133 134 134 134 136 136 136 138 138 139 139 142 142 142 7.1. PROBLÉMATIQUE DU CARISTE 7.1 Problématique du cariste Figure 7.1 – Chariot élévateur. 7.1.1 Contexte En France, chaque année, les chariots élévateurs (figure 7.1) sont responsables en moyenne de 8300 accidents 1 avec arrêt de travail dont 560 avec incapacité permanente. On déplore en moyenne 10 accidents mortels par an mettant en cause des chariots élévateurs, dont la moitié est due au renversement latéral de la machine. Le coût direct pour les entreprises est de 45 millions d’euros par an. Les chariots sont des machines relativement instables du fait de leur Centre de Masse (CdM) élevé. L’inrs conduit depuis 8 ans un projet de recherche multidisciplinaire impliquant des équipes d’ingénieurs et d’ergonomes (projet cemamo, Conception et Ergonomie des MAchines MObiles). L’approche est fondée sur l’observation de l’utilisation des machines en situation réelle de travail afin d’améliorer la conception des chariots. Ce travail se décompose en trois axes : 1. Normalisation = évaluation des risques. L’objectif est de développer une norme d’essai européenne cen 2 (Comité Européen de Normalisation) permettant de caractériser la stabilité des machines disponibles sur le marché. La difficulté réside dans la prise en compte la dynamique du véhicule. Le principe est d’effectuer un parcours à pleine vitesse en virage et de déterminer les dimensions minimales du couloir de sortie ne conduisant pas à un renversement de la machine. 2. Conception = réduction des risques à la source : Limiter le risque de renversement : le principe est de développer des outils numériques permettant de prédire et d’optimiser le comportement dynamique de la machine. On peut prédire les effets d’un paramètre de conception (pneus, distribution de la masse, empattement . . . ) sur la stabilité de la machine avant même qu’elle ne soit fabriquée. Minimiser les conséquences d’un renversement sur le conducteur : en effet, le risque de renversement n’est pas complètement maîtrisable. On ne pourra jamais empêcher un chariot de se renverser dans des cas de conduites extrêmes ou de sollicitations extraordinaires (exemple : effondrement de quais). Dans ces circonstances, il faut garantir l’intégrité du conducteur. Des systèmes sont disponibles : ceintures, portillons, etc. (figure 7.2). L’objectif de l’inrs est de mettre au point une méthode d’essais permettant d’évaluer l’aptitude de ces systèmes à retenir le conducteur et à le protéger. 1. chiffres décennie 1993–2002 2. groupe de travail n˚11 (Investigation into the lateral and general stability of industrial trucks covered by standards en 1726-1 and en 1459), comité technique n˚150 (safety of industrial trucks) 123 CHAPITRE 7. CARISTE 3. Formation = gestion des risques résiduels et prise en compte de l’opérateur. L’utilisation de modèles physiques de tenue de route a permis de développer un simulateur de conduite. L’objectif est de mettre les apprenants en situation d’expérimentation des effets d’une conduite à risque pour les sensibiliser. Un prototype de simulateur a été développé sur la base d’un cahier des charges pédagogique élaboré par un groupe de travail avec des organismes de formation externes. Le prototype circule actuellement pour évaluation dans ces organismes. Figure 7.2 – Différents systèmes de retenue du cariste : ceinture de sécurité, portillon de sécurité, coussins gonflables. Dans le second axe, le développement d’une méthode d’essais pour évaluer les systèmes de contention présente une double difficulté : − La première est de définir un ou des critères biomécaniques caractérisant l’efficacité réelle du système. Par exemple, un critère géométrique privilégierait les systèmes empêchant les membres de sortir du périmètre de la cabine. Un critère physique permettrait notamment de prendre en compte la force d’un impact s’il y a un choc d’une partie du corps avec le sol. Ces questions restent ouvertes. − La seconde difficulté est de modéliser le comportement du cariste lors du renversement qui ne peut pas être considéré comme purement passif. En effet, le temps de renversement du chariot (une ou deux secondes) est suffisamment long pour que le conducteur ait plusieurs réflexes. Cependant, il est difficile de réaliser des expérimentations sur sujets humains en situation de renversement, même partiel, pour des raisons éthiques et de sécurité. Deux approches complémentaires sont envisagées. La première utilise des mannequins physiques passifs. Une étude inrs démarre actuellement dans ce sens. La difficulté est d’adapter les mannequins existants de type HybridIII, originellement conçus pour des essais de crash automobile, afin de les faire “réagir” de manière réaliste. Cette approche nécessite des installations lourdes et coûteuses. La seconde approche consiste à modéliser le comportement dynamique du conducteur en simulation. L’humain virtuel interagit avec l’environnement (plancher, siège et volant). Il peut utiliser cet environnement pour se maintenir dans la cabine lors du renversement dynamique. Ses capacités physiques à se maintenir sur son siège doivent être modélisées de façon réaliste. Il est important de simuler plusieurs comportements actifs de l’hv, représentatifs des différentes réactions des caristes. Cette thèse répond à ces besoins de simulation et ce chapitre compare, dans un objectif de validation, des résultats de simulation avec des essais. 124 7.1. PROBLÉMATIQUE DU CARISTE 7.1.2 Résultats expérimentaux Ces dernières années, l’inrs a conçu et réalisé deux bancs d’essais de renversement pour simuler en laboratoire et avec des sujets humains le renversement latéral d’un chariot : – renversement statique : le chariot (ou le banc d’essais) est à l’arrêt et son basculement est provoqué par un moyen externe (gravité – figure 7.4) ; – renversement dynamique : le chariot (ou la nacelle du banc) est conduit à sa vitesse maximale (de 12 à 20 km/h), le renversement du cariste est provoqué, soit en roulant sur un plan latéralement incliné, soit sous l’effet des forces d’inertie centrifuges en initiant un virage brutal (rayon de braquage de l’ordre de 5 m – figure 7.3). 7.1.2.1 Banc dynamique pour l’étude du virage en J Figure 7.3 – Campagne d’essais sur banc dynamique. En octobre 2003, des essais de renversement dynamique latéral ont été réalisés avec quatre sujets [Feu05] (figure 7.3). L’objectif du banc de renversement « virage en J » est d’analyser le comportement d’un sujet humain lors d’une situation de renversement latéral provoqué par un virage serré à grande vitesse en marche avant. Les efforts d’interaction au niveau des appuis du cariste dans son chariot et les mouvements des sujets ont été mesurés. Une première analyse des données de force a permis de dégager essentiellement deux types de comportements : soit le sujet s’agrippe et tire sur le volant pour essayer, sans succès, de rester dans la cabine, soit le sujet pousse sur le volant afin de se caler dans son siège et parvient ainsi à rester dans la cabine, mais uniquement lors d’essais à faible vitesse. 7.1.2.2 Banc statique En 2006, des essais de renversement statique ont été réalisés avec quatre sujets [Gau] (figures 7.4 et 7.5). Les efforts d’interaction ont été mesurés et tous les essais ont été filmés. Une étude comparative des différents dispositifs de retenue testés sur les sujets a été effectuée. Ces essais ont été réalisés avec un siège de conducteur simplifié. Il s’agit d’une plaque en bois recouvert de deux matériaux différents (moquette figure 7.4 – téflon figure 7.5). Il n’y a pas de dossier. L’objectif est alors d’étudier l’influence du frottement entre le siège et le cariste sur le comportement de ce dernier. Pour chaque revêtement, chaque sujet a réalisé deux essais. Dans le premier, la consigne est de ne pas chercher à résister à l’éjection. Dans le second essai, il est demandé au sujet de chercher à se maintenir dans la cabine en s’appuyant sur les mains et jambes. Le comportement du sujet et son maintien dans la cabine est très influencé par le type de revêtement du siège (et donc le coefficient de frottement) et la stratégie (active ou passive) adoptée par le sujet pendant le renversement. 125 CHAPITRE 7. CARISTE Figure 7.4 – Campagne d’essais sur banc statique. Le siège est une plaque en bois recouverte de moquette (coefficient de frottement élevé). Essai du haut : la consigne est de ne pas chercher à résister à l’éjection. Essai du bas : il est demandé au sujet de chercher à se maintenir dans la cabine en s’appuyant sur les mains et jambes. Figure 7.5 – Campagne d’essais sur banc statique. Le siège est une plaque en bois recouverte de teflon (coefficient de frottement faible). Essai du haut : la consigne est de ne pas chercher à résister à l’éjection. Essai du bas : il est demandé au sujet de chercher à se maintenir dans la cabine en s’appuyant sur les mains et jambes. 126 7.2. COMMANDE DU CARISTE 7.1.3 Objectifs de la simulation Pour aborder la problématique du cariste, la simulation est un moyen complémentaire à l’expérimentation. En effet, les campagnes d’essai sur sujets déjà réalisées ne permettent pas de reproduire une situation de renversement complète réaliste. Elles sont longues à mettre en œuvre. Quant aux essais sur mannequin passif, il est difficile d’actionner ce dernier pour qu’il adopte un comportement réaliste. En principe, la simulation de renversement dynamique de chariot est à la fois moins coûteuse et plus flexible. Elle permet notamment de reproduire intégralement une situation de renversement de chariot, à condition que le modèle soit réaliste. Pour vérifier ce caractère réaliste, il est important de confronter au préalable le modèle numérique avec des essais réels, afin d’en recaler les paramètres (présenté dans une certaine mesure au le chapitre précédent). Lors des campagnes d’essais sur sujets (§ 7.1.2.1 et § 7.1.2.2), on a observé que les réactions et stratégies réflexes étaient différentes d’un sujet à l’autre. C’est pourquoi il est important de modéliser différentes familles de réactions pour le cariste virtuel, qui correspondent le plus possible aux réactions de l’homme. L’objectif est d’utiliser la commande d’hv dynamiques permettant de prédire le comportement mécanique d’un conducteur de chariot élévateur en situation de renversement latéral. À plus long terme, l’inrs envisage d’intégrer le modèle d’hv à des outils de modélisation mécanique conventionnels, l’objectif étant de concevoir et d’optimiser des systèmes de retenue. 7.2 7.2.1 7.2.1.1 Commande du cariste Présentation du système Modélisation du chariot Volant et prises pour les mains Siège Plancher Axe de renversement simple Axe de renversement statique Figure 7.6 – Représentations du chariot : complet (à gauche) et simplifié (à droite). Les axes de rotation des renversements simple et statique sont représentés sur les deux figures. Le chariot d’essai de l’inrs a été modélisé sous Arboris. Deux représentations (une simplifiée et une plus complète) ont été créées. Dans tous les cas, le chariot est modélisé comme un objet 127 CHAPITRE 7. CARISTE commandé cinématiquement en position et en vitesse. Certaines parties du chariot sont actives pour la détection de collisions (figure 7.6). C’est le cas du plancher et du siège. Les autres formes géométriques du chariot sont utilisées comme indicateurs graphiques pour détecter visuellement les collisions entre le cariste et la cabine. On détaille par la suite les différents types de commandes cinématiques pour le chariot. 7.2.1.2 Les différents types de renversement traités Figure 7.7 – Renversement simple du chariot : position et vitesse angulaires de l’axe de renversement. Figure 7.8 – Renversement statique du chariot : position et vitesse angulaires de l’axe de renversement. On traite trois types de renversement. Le renversement simple est une rotation autour d’un axe situé sous le siège au milieu de celui-ci (figure 7.6). Le chariot réalise un basculement de 60 degrés avant de retourner à sa position initiale. L’évolution de l’angle au niveau de l’axe est donnée figure 7.7. Le retour à la position verticale permet de conclure si l’hv a réussi à se maintenir sur son siège, s’il a glissé ou s’il a lâché le volant. Ce renversement simple permet d’étudier l’influence de plusieurs paramètres sur l’équilibre du cariste, en particulier différentes stratégies de retenue du cariste. Le renversement statique est une rotation autour d’un axe se situant au niveau des roues (figures 7.4, 7.5 et 7.6). L’évolution de l’angle au niveau de l’axe est donnée figure 7.8 et est la même que celle utilisée lors de la campagne d’essai sur des sujets (§ 7.1.2.2). Le mouvement du 128 7.2. COMMANDE DU CARISTE Figure 7.9 – Renversement dynamique du chariot : virage en J à gauche. chariot s’interrompt brutalement vers 70 degrés, avec une vitesse importante avant l’arrêt. On étudie le comportement du cariste jusqu’à cet instant. Le mouvement subi par le cariste est une rotation combinée par une translation. Ce type de renversement est simplifié par rapport au type de renversement suivant. Enfin, le renversement dynamique est le renversement le plus réaliste (figure 7.9). Il s’agit d’un virage en J. Après une phase où le chariot accélère en ligne droite et atteint une certaine vitesse, celui-ci tourne puis se renverse. C’est le cas le plus fréquent de renversement de chariot de manutention, responsable d’accidents graves du conducteur. Les caractéristiques des trajectoires (positions et vitesses à chaque instant) ont été calculées grâce au modèle de chariot développé et validé par l’inrs (J. Rebelle [RMP08]). On teste la commande d’hv sur un cas de renversement dynamique. 7.2.1.3 Stratégies du cariste (a) simple : suivre le mouvement du siège. (b) verticale : conserver une posture verticale. Figure 7.10 – Stratégies du cariste. En simulation, la liaison entre les mains du cariste et le volant (une fois celles-ci en contact avec le volant) est réalisée par une liaison visco-élastique dont la charge maximale est fixée arbitrairement à 1, 5 fois le torseur maximal de préhension main/objet défini dans la loi de commande. Le torseur de préhension calculé par la loi de commande ne correspond pas toujours à l’effort appliqué dans la simulation. Par exemple, c’est le cas lorsque l’hv arrive en butée articulaire, 129 CHAPITRE 7. CARISTE une partie de son poids s’ajoute au torseur de préhension. C’est pourquoi les liaisons entre les mains et le volant peuvent se rompre au cours de la simulation. On rappelle quelques aspects de la commande de l’hv : – les efforts de préhension sont saturés ; – les couples articulaires de commande sont saturés à 100 N.m−1 ; – l’hv possède trois sphères de contact par pied ainsi qu’une sphère de contact au niveau des fesses. Ces sphères sont prises en compte par la détection de collision d’Arboris ; – la vitesse désirée de l’asservissement PD du CdM et du thorax correspond à la vitesse de basculement du chariot. En effet, le conducteur est entraîné par le mouvement de la cabine. En absolu, sa vitesse coïncide avec celle du chariot. Les observations réalisées pendant les campagnes d’essais (§ 7.1.2) indiquent clairement qu’il n’existe pas une seule “stratégie” possible lors d’un renversement : il n’existe pas de modèle “unique” du comportement humain lors d’un renversement de véhicule. Par conséquent, il faut pouvoir proposer plusieurs familles de modèles, représentatifs des comportements observés. On en a implémenté deux : simple : l’hv cherche à conserver une position assise sur le siège lors du renversement (figure 7.10(a)). Le CdM et la position du thorax de consigne sont calculés en fonction de la position du chariot. verticale : l’hv conserve son buste vertical indépendamment de l’orientation du siège (figure 7.10(b)). Le CdM et la position du thorax de consigne sont également calculés en fonction de la position du chariot. On laisse en perspective l’implémentation d’autres modèles de comportement. Par simplification, la détermination du CdM de consigne provient d’informations sur le déplacement du chariot. 7.2.1.4 Paramètres testés La loi de commmande fait intervenir de nombreux paramètres : gains des asservissements, poids des critères d’optimisation et efforts de saturation. Tous ces paramètres influencent le résultat de la loi de commande (c’est à dire τ ) et donc le comportement dynamique du cariste lors de son éjection. Afin d’étudier l’influence de certains paramètres sur le comportement du cariste, et sa capacité à se maintenir sur son siège, on a effectué une série de simulations. Les deux stratégies du cariste ont été testé. On étudie l’influence de trois paramètres : Le coefficient de frottement : on étudie différents coefficient de frottement entre l’hv et le chariot. Les contacts concernés sont ceux au niveau des fesses sur le siège et des pieds sur le plancher. Ces contacts ont le même coefficient de frottement. On fait varier ce dernier entre 0, 1 et 0, 9, avec un pas de 0, 2. Les efforts de préhension maximaux : il s’agit des efforts de préhension maximaux admissibles, c’est à dire des bornes inférieures et supérieures qui sont fixées par l’inconnue “efforts de préhension” dans la loi de commande. Ces bornes inférieures et supérieures sont les mêmes dans les trois directions de forces et les trois directions de moment, ce qui contraint la force et le moment de l’effort de préhension dans un cube de R3 . En simulation, on considère que le lâcher-prise du volant intervient lorsque l’effort visco-élastique modélisant l’interaction entre les mains et le volant atteint une certaine valeur, que l’on appelle “effort de rupture” de cette liaison et qui est proportionnel à l’effort maximum admissible défini dans la loi de commande (tableau 7.1). L’hv lâche alors le volant. 130 7.2. COMMANDE DU CARISTE nmax effort 1 2 3 4 5 6 Force/ Dimensions des cubes → → → saturants (− x,− y ,− z) Moment Force (N) 2 [50, 50, 50] Moment (N.m ) −1 Force (N) 2 [20, 20, 20] 2 [100, 100, 100] Moment (N.m ) −1 Force (N) 2 [40, 40, 40] 2 [150, 150, 150] Moment (N.m−1 ) Force (N) 2 [60, 60, 60] 2 [200, 200, 200] Moment (N.m ) −1 Force (N) 2 [80, 80, 80] 2 [250, 250, 250] Moment (N.m ) 2 [100, 100, 100] Force (N) 2 [300, 300, 300] −1 Moment (N.m ) −1 2 [120, 120, 120] Norme de l’effort max compris dans l’intervalle : 50 ≤ kfmax k ≤ 87 (= √ 3 50) √ 20 ≤ ≤ 35 (= 3 20) √ 100 ≤ kfmax k ≤ 173 (= 3 100) √ 40 ≤ kmmax k ≤ 69 (= 3 40) √ 150 ≤ kfmax k ≤ 260 (= 3 150) √ 60 ≤ kmmax k ≤ 104 (= 3 60) √ 200 ≤ kfmax k ≤ 346 (= 3 200) √ 80 ≤ kmmax k ≤ 139 (= 3 80) √ 250 ≤ kfmax k ≤ 433 (= 3 250) √ 100 ≤ kmmax k ≤ 173 (= 3 100) √ 300 ≤ kfmax k ≤ 520 (= 3 300) √ 120 ≤ kmmax k ≤ 207 (= 3 120) kmmax k Table 7.1 – La saturation du torseur de préhension dans la loi de commande est un paramètre qui peut prendre différentes valeurs, désigné par le numéro nmax effort . Les forces et moments de préhension sont contraints dans des cubes. Lorsque la force (ou le moment) atteint les limites du cube, sa norme est différente si l’on se situe sur une face, une arrête ou un sommet. Pour simplifier la présentation des résultats, lorsque la force (ou le moment) calculée par la loi de commande est comprise dans l’intervalle de saturation, on suppose que la contrainte sur cette force (ou moment) est atteinte. 131 CHAPITRE 7. CARISTE Le délai sur la consigne du CdM : pour modéliser le caractère non-immédiat des réactions humaines, on introduit un retard sur la consigne du CdM et la position du thorax (ainsi que la vitesse). On fait varier ce retard entre 0 et 300 ms. Si l’on note ∆t le retard en (t − ∆t). secondes, la position du CdM de consigne à l’instant t est : xconsigne (t) = xconsigne cdm cdm Afin d’étudier l’influence de ces trois paramètres sur le comportement du cariste, on a réalisé de nombreuses simulations. Chaque simulation n’aboutit pas forcément à un résultat exploitable. Une simulation échoue lorsqu’une force de contact devient beaucoup trop grande. Il se peut, compte tenu des hypothèses faits pour le calcul de la commande (non-glissement, par exemple), qu’il n’existe pas de solution. 7.2.2 Renversement simple : simulations On étudie dans un premier temps le renversement simple, une simplification du renversement dynamique. Cette première étude permet d’interpréter l’influence des paramètres et des stratégies du cariste sur le succès du maintien sur le siège. 7.2.2.1 Classification des résultats La simulation a échoué, la commande ne réussit pas à maintenir l’hv sur son siège. Celui-ci lâche le volant. Le cariste se maintient sur son siège avec des couples articulaires atteignant la saturation. Le cariste se maintient sur son siège sans que ses couples articulaires n’atteignent la saturation. Figure 7.11 – Légendes des tableaux pour un renversement simple. Les résultats sont synthétisés sous forme de tableaux. Chaque tableau présente l’influence de deux paramètres sur la réussite du cariste, pour une stratégie donnée. Chaque cellule est colorée en fonction de la réussite de la simulation (figure 7.11) : – si la simulation a échoué, la cellule est très grisée. On indique dans la cellule correspondante l’angle, en degré, du chariot au dernier instant avant l’échec de la simulation. Plus cet angle est grand, plus le cariste arrive à se maintenir sur son siège. – si la simulation est allée à son terme, le chariot revient à sa position initiale. Si la cellule a un fond gris clair, cela signifie que les couples articulaires maximaux ont été atteints à un instant de la simulation. On indique dans la cellule la force (N) et le moment (N.m−1 ) maximaux calculés par la loi de commande au cours de la simulation. Dans le cas où ces valeurs sont indiquées en caractères gras, on suppose que la contrainte de saturation de la force (ou moment) de préhension est atteinte (tableau 7.1). 7.2.2.2 Influence du coefficient de frottement et de l’effort de préhension maximal On constate que plus le coefficient de frottement et/ou l’effort maximal admissible augmentent, meilleur est le maintien du cariste sur son siège (tableaux 7.2 et 7.3). Même si la simulation échoue (cellule gris foncé), l’angle de renversement au moment de l’échec du maintient augmente avec ces deux paramètres. À nmax effort constant, plus le coefficient de frottement augmente et plus l’effort de préhension diminue. Ce résultat paraît logique car un transfert des efforts s’opère de la liaison main/volant vers les zones de contact. De plus, en comparant les deux stratégies du cariste, on constate qu’aucune n’améliore significativement le résultat. Cependant, 132 7.2. COMMANDE DU CARISTE les efforts de préhension maximaux calculés par la loi de commande pendant la simulation sont plus importants pour la stratégie verticale. Stratégie 0.1 28˚ 0.3 40˚ 0.5 48˚ 0.7 53˚ 2 37˚ 49˚ 57˚ 59˚ 3 45˚ 57˚ 4 54˚ 5 60˚ 6 60˚ 338 117 265 110 265 110 260 88 215 93 215 93 215 93 174 75 174 77 174 77 174 77 Effort max (nmax effort ) 0.9 57˚ 151 61 139 61 139 61 139 61 139 61 Table 7.2 – Renversement simple, délai : 0 s, τ max = 100 N.m−1 . Coefficient de frottement 1 0.1 32˚ 0.3 43˚ 0.5 53˚ 0.7 58˚ 2 42˚ 53˚ 60˚ 60˚ 3 50˚ 60˚ 4 57˚ 5 58˚ 6 59˚ 346 133 365 152 319 139 256 91 273 117 260 119 260 119 240 88 217 101 217 101 217 101 verticale Effort max (nmax effort ) 1 simple Stratégie Coefficient de frottement Table 7.3 – Renversement simple, délai : 0 s, τ max = 100 N.m−1 . Dans le cas d’une stratégie verticale, à mi-parcours, on constate que la position désirée ne peut pas être entièrement atteinte. D’une part, les mains et les pieds sont contraints en position et en orientation, les fesses en position seulement. La forte diminution de la redondance articulaire que ces contraintes entraînent explique en partie la mauvaise atteinte du CdM de consigne. Ainsi, si on observe le nombre maximal de ddl en butée à un instant de la simulation (nmax ddl butee ), on constate qu’il est nul pour la stratégie simple et de 6 pour la stratégie verticale. Le tableau 7.4 présente la distance la plus grande entre, d’une part, le CdM et sa consigne (ligne du haut dans les cellules), et d’autre part, le centre du thorax et sa consigne (ligne du bas). Stratégie µ = 0.9, délai = 0 s, effort max = 4 7.2.2.3 Effort max (nmax effort ) µ = 0.3, délai = 0 s, effort max = 4 Coefficient de frottement 1 0.1 32˚ 0.3 43˚ 0.5 53˚ 0.7 58˚ 2 42˚ 53˚ 60˚ 60˚ 3 50˚ 60˚ 4 57˚ 5 58˚ 6 59˚ 12.6 29.7 6.2 16.6 6.2 16.6 7.0 18.0 6.4 17.0 6.4 17.0 6.4 17.0 6.4 17.0 6.4 17.0 6.4 17.0 6.4 17.0 verticale 0.9 60˚ 6.4 17.0 6.4 17.0 6.4 17.0 6.4 17.0 6.4 17.0 Table 7.4 – Renversement simple, délai : 0 s, nmax ddl butee = 6, τ max = 100 N.m−1 , distances en cm. Influence du délai L’introduction d’un délai n’a pas d’influence sur le succès ou l’échec du maintien du cariste, quelque soit la stratégie de celui-ci. De plus, le délai n’a pas d’influence sur l’effort de préhension maximal atteint au cours de la simulation. Cependant, il modifie la position du cariste durant le 133 0.9 60˚ 173 57 179 83 179 83 179 83 179 83 CHAPITRE 7. CARISTE renversement (figure 7.12). Plus le délai est important, et plus la position du CdM de consigne est en retard par rapport à la position du siège. Figure 7.12 – Les images du dessus montrent le comportement du cariste sans délai et les images du dessous avec un délai de 300 ms. L’introduction du délai semble apporter plus de réalisme. Stratégie simple, µ = 0,5, nmax effort = 4. 7.2.2.4 Différences entre délai et stratégie Dans une stratégie verticale, les consignes de position pour le CdM et le thorax pivotent autour du contact bassin/siège. Lorsque l’on augmente le délai, l’hv doit atteindre une configuration de plus en plus éloignée dans le temps, qui correspond à une autre configuration de contact, pour une autre inclinaison du siège. La configuration du cariste, à un même instant de la simulation, semble assez proche entre d’une part une stratégie simple avec un délai important et d’autre part, une stratégie verticale sans délai. La figure 7.13 illustre la différence aux niveaux des consignes de position du CdM et du thorax. Dans le premier cas (délai = 0 ms, stratégie simple), l’hv est correctement assis sur le siège et ses consignes sont atteintes. Dans le deuxième cas (délai = 0 ms, stratégie verticale), l’hv garde le dos droit et vertical, les consignes étant relativement bien atteintes. Le CdM et le thorax sont alignés verticalement. Dans le dernier cas (délai = 240 ms, stratégie simple), l’hv n’a pas le dos droit et est assez éloigné de ses consignes en position du CdM et du thorax, qu’il ne pourra probablement pas atteindre compte tenu des contraintes que le calcul de la commande doit satisfaire. 7.2.3 7.2.3.1 Renversement statique : simulations Classification des résultats Dans le cas d’un renversement statique, il n’y a pas de retour à l’équilibre du système comme dans le renversement simple. C’est pourquoi on s’intéresse au pas précédant l’arrivée en butée du mouvement de renversement. À cet instant, on regarde si le cariste est proche ou non de son CdM de consigne et s’il a glissé. La signification du fond coloré n’est pas la même que dans l’étude du renversement simple ; elle est définie figure 7.14. Lorsqu’au cours d’une simulation, un couple articulaire atteint sa valeur de saturation, on marque une étoile dans la cellule. Le contenu de la cellule est en caractères gras lorsqu’au cours de la simulation correspondante, les efforts de préhension maximum sont atteints. Enfin, si la simulation a échoué, l’angle de renversement atteint est alors indiqué dans la cellule. 134 7.2. COMMANDE DU CARISTE délai = 0 ms, stratégie simple délai = 0 ms, stratégie verticale délai = 240 ms, stratégie simple max = Figure 7.13 – Renversement simple, µ = 0,5, nmax effort = 4, angle de renversement = 28˚, τ −1 100 N.m . Dans les figures du dessous, les sphères représentent la position du CdM et les parallélépipèdes la position du thorax. Le vert représente la consigne, tandis que le rouge représente l’état courant. La simulation a échoué, le cariste glisse sur son siège et lâche le volant. L’hv se maintient sur son siège. Il est éloigné de son CdM de consigne ou glisse. Le cariste se maintient sur son siège. Il est proche de son CdM de consigne. Figure 7.14 – Légendes des tableaux pour un renversement statique. Pour chaque couleur, l’image du haut correspond à la stratégie simple et l’image du bas à la stratégie verticale. 135 CHAPITRE 7. CARISTE 7.2.3.2 Influence de la stratégie En ce qui concerne l’évolution des résultats dans les tableaux 7.5 et 7.6, on peut faire la même remarque que dans le cas du renversement simple : l’augmentation du coefficient de frottement et de l’effort maximal de préhension admissible améliore le maintien du cariste sur son siège. Dans le renversement simple, la stratégie n’influençait pas significativement le succès du maintien du cariste dans la cabine. Cette fois, pour un renversement statique, on constate que la stratégie du cariste influence sa capacité à se maintenir dans le chariot. Cela est dû en partie au type de renversement mais surtout aux critères d’observations que l’on utilise (§ 7.2.3.1). Lorsque le CdM du cariste est éloigné de son CdM de consigne (cellule gris clair), cet éloignement est dans le sens de la chute. En cherchant à atteindre une position verticale, le cariste s’éloigne le plus possible de ce sens du renversement et améliore ainsi son maintien dans le chariot. Il retarde le moment de son éjection en essayant, dès le début, de rester vertical. Ceci explique pourquoi la stratégie verticale est meilleure que la stratégie simple. La stratégie verticale donne une consigne de position du CdM non réalisable par l’algorithme de commande, ce qui se traduit par une augmentation du nombre d’articulations en max butée articulaire (stratégie simple – nmax ddl butee = 0, stratégie verticale – nddl butee = 7). Stratégie Effort max (nmax effort ) Coefficient de frottement 1 0.1 41˚ 0.3 51˚ 2 51˚ 62˚ 3 62˚ 4 323∗ 119 378∗ 146 297 125 248 91 313 118 278 118 277 118 simple 5 6 0.5 59˚ 173 69 260 90 247 107 245 106 245 106 0.7 62˚ 173 60 231 87 212 94 212 94 212 94 0.9 65˚ 173 58 185 78 185 81 185 81 185 81 Table 7.5 – Renversement statique, délai : 0 s, τ max = 100 N.m−1 . 7.2.3.3 Influence du délai Contrairement au renversement simple, le délai joue un rôle significatif dans le maintien du cariste sur son siège. Dans certaines proportions, plus le délai augmente et meilleur est le maintien du cariste. En effet, ajouter du délai est équivalent à atteindre une posture verticale. Cependant, un délai trop important a pour effet une consigne irréalisable. Or, l’hv trouve ses limites articulaires en voulant atteindre une consigne en position très éloigné de sa configuration courante. Étant très contraint (au niveau des pieds, mains et fesses, butées), si son nombre de butées articulaires augmente, le cariste glisse au niveau de ses contacts. 7.2.3.4 Comparaison expérimentation / simulation Une confrontation entre l’expérimentation et la simulation est possible dans le cas du renversement statique. En s’appuyant sur les essais inrs 7.1.2.2, on effectue une comparaison qualitative à partir de captures vidéo (figure 7.15). Les coefficients de frottement du contact entre le bassin 136 7.2. COMMANDE DU CARISTE Stratégie Effort max (nmax effort ) Coefficient de frottement 0.1 0.3 0.5 1 46˚ 57˚ 65˚ 2 59˚ 3 260∗ 96 323∗ 123 393∗ 144 278∗ 127 173 69 260∗ 101 298∗ 127 248∗ 114 248∗ 114 173 65 260∗ 98 220 103 220 103 220 103 verticale 4 5 6 0.7 87 35 173 69 195 86 194 91 194 91 194 91 0.9 87 35 173 69 173 74 171 81 171 81 171 81 Table 7.6 – Renversement statique, délai : 0 s, τ max = 100 N.m−1 . (a) L’hv glisse sur le siège, stratégie simple – µ=0,1 (b) Le cariste adopte une stratégie simple – µ=0,5 (c) Le cariste adopte une stratégie verticale – µ=0,5 Figure 7.15 – Comparaison expérimentation / simulation pour le renversement statique. 137 CHAPITRE 7. CARISTE et le siège sont comparables entre l’expérimentation et la simulation. Dans la comparaison (a), le sujet est assis sur une plaque en bois recouverte de téflon. L’éjection du sujet débute à partir d’un angle de renversement de 50˚. Le résultat de la simulation donne un comportement très semblable pour le cariste virtuel. Dans les comparaisons (b) et (c), le sujet est assis sur une plaque en bois recouverte de moquette. La meilleure adhérence du contact entre le bassin et le siège permet au sujet de se maintenir dans la cabine jusqu’à l’arrivé en butée du banc d’essai, à 70˚ de renversement. Le cariste virtuel arrive lui aussi à se maintenir jusqu’à 70˚. Dans la comparaison (b), la consigne donnée au sujet est de chercher à se maintenir dans la cabine en appuyant sur ses mains et ses jambes. On rapproche ce comportement de la stratégie simple. Dans la comparaison (c), aucune consigne n’est donnée au sujet. On rapproche ce comportement de la stratégie verticale. Avec seulement deux stratégies de cariste implémentées et un bon ajustement du coefficient de frottement du contact entre le bassin et le siège, la loi de commande génère un ensemble de comportements pour le cariste proches de ceux observés lors de la campagne d’essai sur sujets. Ces premiers résultats sont encourageants. 7.2.4 7.2.4.1 Renversement dynamique : simulations Classification des résultats On peut décomposer un renversement dynamique en trois phases : – phase 1 (figure 7.16(a)) : phase d’accélération du chariot qui lui permet d’attaquer le virage avec une vitesse importante ; – phase 2 (figure 7.16(b)) : début du virage serré. La force centrifuge fait basculer le haut du corps de l’hv vers l’extérieur du virage ; – phase 3 (figure 7.16(c)) : en continuant de tourner, le chariot bascule autour de ses roues extérieures et se renverse, ce qui se rapproche du cas statique. (a) Phase 1 : accélération du chariot. (b) Phase 2 : début du virage. (c) Phase 3 : basculement du chariot. Figure 7.16 – Les 3 phases du virage en J (stratégie simple). Les résultats d’un renversement dynamique, avec un délai de 0 s et τ max = 100 N.m−1 sont présentés dans les tableaux 7.7, 7.8 et 7.9. Le coefficient de frottement de µ = 0, 1 ne figure pas dans les tableaux, car dès la phase 1 d’accélération du chariot, l’adhérence du cariste sur le siège est insuffisante et l’hv décolle du siège. Deux angles sont indiqués dans chaque cellule. Ces angles définissent l’orientation du chariot à l’instant où l’interaction de préhension des mains sur le volant est rompue dans le simulateur. 138 7.2. COMMANDE DU CARISTE Le premier angle correspond à la rotation suivant un axe vertical (angle de virage). Le deuxième angle correspond au basculement du chariot. Résultat mauvais Résultat moyen Résultat bon Figure 7.17 – Légendes des tableaux pour un renversement dynamique. Pour un µ et nmax effort identiques, on relève l’instant où le cariste lâche le volant. Plus la rupture de la préhension intervient tard dans le renversement, meilleure est la stratégie. On compare la qualité de 3 stratégies entre elles et on associe à chaque cellule une teinte de gris. 7.2.4.2 Nouvelle stratégie : centrifuge Dès la phase 2, la force centrifuge pousse le corps de l’hv vers l’extérieur du virage. Les stratégies simple et verticale n’empêchent pas ce phénomène. Avec une stratégie simple, l’hv reste en position assise lors du renversement (figure 7.18). La stratégie verticale n’intervient que lorsque le chariot bascule, c’est à dire dans la phase 3. De manière générale, l’hv n’anticipe pas le renversement. On met en œuvre une troisième stratégie, que l’on nomme centrifuge. Cette stratégie a pour objectif d’obtenir un comportement d’hv qui anticipe le renversement du chariot dès que les effets centrifuges se font sentir. Avec une stratégie centrifuge, l’hv cherche à atteindre une position assise inclinée de 20˚par rapport à la verticale dans le repère de la cabine. Cet angle est fixe contrairement à la stratégie verticale où l’angle dans le repère chariot change lorsque celuici bascule. Bien sûr cet angle de 20˚ est orienté vers l’intérieur du virage. Ceci permet pendant la phase 2 du renversement de contrer les efforts centrifuges. Dans la phase 3, la consigne est d’atteindre une position plus verticale que la position assise simple. La stratégie centrifuge semble un compromis entre les stratégies simple et verticale avec un facteur d’anticipation du renversement. Sa nécessité est apparue dès les premières simulations de renversement dynamique. 7.2.4.3 Influence de la stratégie L’efficacité d’une stratégie dépend de la trajectoire du virage, du coefficient de frottement et de l’effort maximal admissible de préhension. En général, la stratégie simple est souvent la plus performante et la stratégie verticale la moins performante (figures 7.18 et 7.19). Il faut être prudent face à ces résultats car une différence d’un ou deux degrés séparent parfois la meilleure stratégie de la plus mauvaise. Pour les stratégies simple et centrifuge, les consignes de position du CdM et du thorax sont tout le temps atteignables, ce qui n’est pas le cas de la stratégie verticale. Ceci peut expliquer les mauvais résultats de la stratégie verticale. De plus, les conclusions de la partie sur le renversement statique s’appliquent dans le cas d’un basculement de 70˚. Or, dans le cas dynamique, le renversement peut atteindre 90˚. La stratégie verticale peut, dans ce cas, être moins performante, notamment pour des problèmes de consigne non atteignable. Le réalisme des postures tenues par l’hv lors du renversement dynamique est discutable (figure 7.19). Lors des campagnes d’essais réalisées à l’inrs (§ 7.1.2), les sujets humains ne pouvaient se maintenir pour de telles inclinaisons de cabine. La capacité “musculaire” de l’hv a sans doute un peu été surestimée. 139 CHAPITRE 7. CARISTE Figure 7.18 – Les 3 stratégies du cariste. De haut en bas, stratégies simple, verticale et centrifuge. Stratégie simple Stratégie verticale Stratégie centrifuge Figure 7.19 – Stratégies du cariste lors d’un virage en J à l’instant précédant le lâcher du volant. 140 7.2. COMMANDE DU CARISTE Stratégie Effort max (nmax effort ) simple 1 2 3 4 5 6 Coefficient de frottement 0.3 3˚ 53˚ 60˚ 120˚ 74˚ 124˚ 78˚ 125˚ 89˚ 128˚ 89˚ 128˚ 0.5 16˚ 96˚ 71˚ 123˚ 82˚ 126˚ 85˚ 125˚ 89˚ 128˚ 89˚ 128˚ 0.7 60˚ 120˚ 71˚ 123˚ 82˚ 126˚ 89˚ 128˚ 85˚ 127˚ 89˚ 128˚ 0.9 64˚ 121˚ 74˚ 124˚ 85˚ 127˚ 85˚ 127˚ 85˚ 127˚ 89˚ 128˚ Table 7.7 – Stratégie simple. Stratégie Effort max (nmax effort ) verticale 1 2 3 4 5 6 Coefficient de frottement 0.3 3˚ 48˚ 22˚ 103˚ 57˚ 119˚ 85˚ 127˚ 82˚ 126˚ 89˚ 128˚ 0.5 9˚ 83˚ 45˚ 115˚ 54˚ 118˚ 78˚ 125˚ 78˚ 125˚ 82˚ 126˚ 0.7 51˚ 117˚ 51˚ 117˚ 54˚ 118˚ 78˚ 125˚ 78˚ 125˚ 78˚ 125˚ 0.9 31˚ 109˚ 51˚ 117˚ 54˚ 118˚ 54˚ 118˚ 78˚ 125˚ 78˚ 125˚ Table 7.8 – Stratégie verticale. Stratégie Effort max (nmax effort ) centrifuge 1 2 3 4 5 6 Coefficient de frottement 0.3 4˚ 62˚ 64˚ 121˚ 71˚ 123˚ 74˚ 124˚ 82˚ 126˚ 85˚ 127˚ 0.5 60˚ 120˚ 67˚ 122˚ 78˚ 125˚ 74˚ 124˚ 78˚ 125˚ 78˚ 125˚ 0.7 60˚ 120˚ 71˚ 123˚ 67˚ 122˚ 82˚ 126˚ 70˚ 123˚ 82˚ 126˚ Table 7.9 – Stratégie centrifuge. 141 0.9 64˚ 121˚ 74˚ 124˚ 74˚ 124˚ 78˚ 125˚ 78˚ 125˚ 82˚ 126˚ CHAPITRE 7. CARISTE 7.3 Conclusion et perspectives 7.3.1 Conclusion Dans ce chapitre, la commande d’hv est appliqué au cas du cariste. On a étudié trois types de renversement de complexité et de réalisme croissants. On a proposé trois types de stratégies réflexes pour le cariste et testé leur efficacité quant au maintien du cariste dans la cabine. Enfin, on a fait varier trois paramètres et interprété leur influence sur le comportement dynamique du cariste. Ces résultats sont synthétisés dans le tableau 7.10. Bien qu’il soit trivial de constater que l’augmentation du coefficient de frottement, tout comme celle de l’effort de préhension maximal admissible, améliore le maintien du cariste dans la cabine, on connaît maintenant dans quelle mesure. Ces résultats ne sont pour l’instant pas validés par des essais sur sujets. Cette étude permet d’évaluer qualitativement l’influence de certains paramètres. L’objectif était d’obtenir un ensemble de comportements de cariste dans plusieurs situations. Aide au maintien du cariste ր coefficient de frottement ր effort maximale de préhension ր délai Meilleure stratégie type de renversement simple statique dynamique oui oui oui a oui oui oui b neutre oui c non testé neutre verticale simple d Table 7.10 – Effet des paramètres et stratégies étudiés sur l’amélioration du maintien du cariste dans son chariot. a. b. c. d. Ce paramètre améliore en générale le maintien du cariste ; quelques exceptions sont constatées. Ce paramètre améliore en générale le maintien du cariste ; quelques exceptions sont constatées. Un petit délai améliore les résultats mais l’effet s’inverse lorsque celui-ci devient trop grand. Suivie par la stratégie centrifuge et verticale. 7.3.2 Perspectives Cette étude soulève également des interrogations qui pourront être abordées dans des recherches ultérieures. Essais Validations : le comportement du cariste virtuel n’a pas été quantitativement comparé aux essais sur sujets humains. Une étape importante est de valider ces résultats. Renversement dynamique : l’interprétation en l’état des résultats est assez délicate et nécessite une analyse plus poussée des données. Modèle Saturation des couples articulaires : dans toutes les simulations, on a saturé tous les couples de commande de manière identique : τ max = 100 N.m−1 . Ce couple est assez important et n’est pas réalisable par toutes les articulations humaines. On devrait faire varier ce couple maximal en différenciant les articulations, d’une simulation à l’autre et étudier son impact sur la capacité du cariste à se maintenir dans le chariot. 142 7.3. CONCLUSION ET PERSPECTIVES Glissement des contacts : dans l’algorithme de commande, une contrainte sur l’accélération des contacts est appliquée et empêche en partie les contacts de glisser (interactions pieds/plancher, fesses/siège). On pourrait relâcher cette contrainte et autoriser le glissement du contact bassin/siège. Définir d’autres stratégies réflexes “éjection” : l’hv tente de s’éjecter en cours de renversement, vers l’intérieur du virage ; “dossier ” : l’hv tente de se maintenir au fond du siège. On ajoute au siège un dossier sur lequel l’hv peut s’appuyer et exercer une pression à l’aide des membres inférieurs. À moyen terme, on pourrait également modéliser en simulation des éléments de retenue (portique, ceinture . . . ) afin d’étudier leur efficacité. 143 CHAPITRE 8 Conclusion et perspectives 8.1 Conclusion On a proposé une nouvelle commande d’humain virtuel dynamique. Les points clés sont les suivants : Définir et quantifier l’équilibre (chapitre 3) – centre de masse stable : la position de consigne du CdM est calculée à chaque pas de temps en fonction de la configuration de contact (pieds, mains, fesses) et de la configuration de préhension (mains uniquement). On calcule les efforts de l’hv sur son environnement qui lui permettent d’atteindre ce CdM de consigne et d’y rester à l’équilibre statique ; – marges de stabilité : on traite de la stabilité vis-à-vis d’efforts de perturbation. On calcule le plus grand effort de perturbation qui peut être compensé par une variation d’effort de contact sous des hypothèses de contacts non-glissants et de limitation des efforts de préhension. La norme de cette plus grande perturbation est la marge de stabilité de la posture. Plus la marge de stabilité est grande, meilleure est la stabilité de la posture. Cette marge de stabilité permet de quantifier la robustesse d’une configuration de contacts et de prises. De plus, on calcule la position du CdM permettant de maximiser cette marge de stabilité. On détermine également la valeur des efforts de l’hv sur son environnement pour résister de façon globale aux perturbations : il s’agit d’efforts de pré-contrainte et non d’efforts résistifs relatifs à une perturbation particulière ; – critères de stabilité statique : ces marges de stabilité peuvent soit considérer le CdM comme inconnue soit prendre en compte la saturation des couples articulaires. Ces marges peuvent de déclencher des automates permettant à l’hv d’atteindre une configuration stable. Assurer l’équilibre (chapitre 4) – commande dynamique d’humain virtuel : commande globale basée sur l’optimisation d’un critère sous contrainte. Les valeurs désirées des variables d’optimisation sont fixées par les consignes de la loi de commande : position du CdM, efforts de contact et de préhension (entre autres), calculés en prenant en compte les marges de stabilité ; – contact frottant unilatéral et préhension bilatérale considérés simultanément : dans des environnements virtuels complexes, un humain virtuel peut être amené à devoir utiliser ses mains en plus de ses pieds pour assurer son équilibre. Le traitement de l’équilibre prend cet aspect en compte en gérant à la fois les contacts unilatéraux, non coplanaires et avec frottement sec, et les contacts bilatéraux en force et/ou en couple (modélisant 145 la préhension au niveau des mains). Pour traiter les différents types de contacts, une formulation unifiée de la commande est proposée ; – gestion de la redondance : les consignes relatives au CdM et à la posture sont mises à jour périodiquement ce qui a pour effet une certaine autonomie de l’hv commandé relativement à sa configuration articulaire. De plus, l’évitement des butées articulaires est géré par la loi de commande. – stratégies d’équilibre complexes : dans certains cas, des stratégies d’équilibres complexes sont à mettre en œuvre pour pour permettre à l’hv de conserver son équilibre. Il s’agit de changer la configuration de contact ou de préhension de l’hv. On a implémenté trois types d’action réflexes : faire un pas de côté, poser une main sur un plan et saisir une prise. Ces actions réflexes sont déclenchées de manière automatique par un observateur de la marge de stabilité courante de l’humain virtuel. Dans une bibliothèque de réflexes explicitement connus de la commande, l’algorithme choisit le plus pertinent en fonction de la perturbation de son état. Réalisations de tâches (chapitre 5) – paramètres indépendants de la tâche : le problème d’optimisation sous contraintes met en jeu de nombreux gains d’asservissements et priorités. Chacun d’eux a une signification physique. On utilise pour une large gamme de simulation les mêmes gains et priorités qui, ne dépendent donc pas de l’action à réaliser ; – actions élémentaires : génération de trajectoire, saisir une prise ou un objet, appuyer sur l’environnement, posture. À l’aide de ces quatre actions élémentaires, on peut réaliser la majorité des comportements de base de l’humain virtuel. Un enchaînement d’actions élémentaires permet de réaliser des comportements plus complexes comme l’escalade d’un mur de prise. Ces actions élémentaires font le lien entre un comportement global, comme la marche, et la formulation du problème d’optimisation sous contraintes ; – gestion des priorités entre les tâches : les tâches peuvent être conflictuelles. On propose une méthode numérique pour gérer les priorités entre les tâches. On a confronté la commande d’humain virtuel au réel. Pour cela, une série de quatre essais types a été réalisé sur quatre sujets. Les efforts et les mouvements des sujets ont été mesurés. On a comparé les ordres de grandeur de ces mesures avec des simulations dynamiques équivalentes contenant un humain virtuel commandé. Cette étude dresse une première validation et permet un recalage de la loi de commande. Ces résultats encourageants ont démontré la grande souplesse d’utilisation de la loi de commande. Enfin, on a appliqué la commande au cas particulier du cariste, pour un renversement quasi statique et dynamique. On a proposé trois types de stratégies réflexes pour le cariste et testé leur efficacité quant au maintien du cariste dans la cabine. Enfin, on a fait varier trois paramètres et interprété leur influence sur le comportement dynamique du cariste. On obtient un ensemble de comportements de cariste dans plusieurs situations. 8.2 8.2.1 Perspectives Amélioration de la commande dynamique Voici quelques perspectives : Trouver des valeurs physiques pour les couples articulaires limites (§ 4.2.3) Modéliser et piloter la raideur de l’hv Dans l’étude relative à la robustesse, la raideur de l’hv vis-à-vis de son environnement 146 intervient et l’on a choisit une valeur arbitraire. Il est intéressant de se baser sur une valeur plus réaliste. La raideur de l’hv constitue également un élément important dans son comportement vis-à-vis de son environnement. Prendre en compte la cinématique de l’hv dans la robustesse En regard de la robustesse, la position du CdM dépend de la cinématique de l’hv. Introduire cette cinématique compliquerait le problème en le rendant fortement non linéaire, mais permettrait d’éliminer des solutions non réalistes. Comportements plus complexes – enrichir les comportements à plusieurs pas et l’enchaînement de stratégies d’équilibre ; – avoir une caractérisation dynamique de la rupture d’équilibre, et non simplement statique ; – prédictive (C. Azevedo et al. [APE04]). 8.2.2 hv dynamique interactif (a) Gestion d’équilibre. (b) Gestion de tâches. Figure 8.1 – hv interactif. Une implémentation en temps réel de la commande de l’hv a été réalisé (figure 8.1)permettant une interaction directe avec l’hv. L’algorithme de base est suffisamment rapide pour être utilisé en temps réel. En effet, dans la commande, la résolution du QP est l’étape la plus coûteuse. Pour un problème de complexité moyenne (un hv debout résistant à une perturbation), les dimensions des matrices sont : arg min 12 kY − Y des k2Q dim (Y ) = (88, 01) Y dim (A) = (24, 88) avec (8.1) AY +b=0 dim (C) = (94, 88) C Y +d≥0 La rapidité de la résolution est également corrélée au conditionnement des matrices. Cependant, la taille du système est un bon indicateur. Le QP est résout à l’aide une fonction C single-threaded en 2.6 ms sur un processeur Intelr Xeonr 5130 cadencé à 2,00 GHz avec 2,00 Go de mémoire vive. 147 Outre la mise en œuvre de stratégies d’équilibres évoluées pour répondre à des perturbations, c’est la cohabitation entre l’hv piloté par capture de mouvement et hv dynamique autonome qui est la prochaine grande étape. La capture de mouvement permet d’obtenir un avatar effectuant les gestes d’un opérateur. Ces mouvements seront complétés par une gestion d’équilibre autonome qui garantirait à l’hv des gestes physiques, quelle que soit la qualité de la capture de mouvement. Ainsi, il ne sera peut être plus nécessaire de traquer tout le corps de l’opérateur, mais seulement une partie, le reste résultant de la gestion d’équilibre, ou comportements plus évolués complémentaires des souhaits ou indications de l’opérateur. 148 Bibliographie [And89] Anderson, Robert J. : Passive computed torque algorithms for robots. Conference on Decision and Control, pages 1638–1644, Décembre 1989. [APE04] Azevedo, C., Poignet, P. et Espiau, B. : Artificial locomotion control: from humans to robots. Robotics and Autonomous Systems, 47:203–223, 2004. [ASP07] Abe, Yeuhi, Silva, Marco Da et Popović, Jovan : Multiobjective control with frictional contacts. Dans Eurographics / ACM SIGGRAPH Symposium on Computer Animation, pages 249–258, 2007. [BB04] Baerlocher, Paolo et Boulic, Ronan : An inverse kinematic architecture enforcing an arbitrary number of strict priority levels. The Visual Computer, 20(6), 2004. [BBM09] Bidaud, Philippe, Barthélemy, Sébastien et Micaelli, Alain : Le traité de la réalité virtuelle : Contrôle de l’équilibre des humains virtuels (à paraître), tome 5. Les Presses, Mines Paris, 2009. [BLR05] Bretl, Timothy, Latombe, Jean-Claude et Rock, Stephen : Toward autonomous free-climbing robots. Robotics Research, pages 6–15, 2005. [BRL03] Bretl, Timothy, Rock, Stephen et Latombe, Jean-Claude : Motion planning for a three-limbed climbing robot in vertical natural terrain. Dans IEEE International Conference on Robotics and Automation, tome 3, pages 2946–2953, Taipei, Taiwan, 2003. [BSB06] Barthélemy, Sébastien, Salaun, Camille et Bidaud, Philippe : Dynamic simulation and control of sit-to-stand motion. Dans Proceedings of the 9th International Conference on Climbing and Walking Robots (CLAWAR), 2006. [Che98] Chevallier, J.M. : Anatomie, tome 2 : l’appareil locomoteur. Broché, flammarion médecine édition, 1998. [DDW+ 08] Diedam, H., Dimitrov, D., Wieber, P. B., Mombaur, K. et Diehl, M. : Online walking gait generation with adaptive foot positioning through linear model predictive control. Dans IEEE International Conference on Intelligent Robots and Systems, pages 1121–1126, Octobre 2008. [DG67] Dempster, W.T. et Gaughran, G.R.L. : Properties of body segments based on size and weight. American Journal of Anatomy, 120:33–54, 1967. [DKD06] De Sapio, Vincent, Khatib, Oussama et Delp, S. : Task-level approaches for the control of constrained multibody systems. 2006. 149 Dans [Esc08] Escande, Adrien : Planification de points d’appui pour la génération de mouvements acycliques : application aux humanoïdes. Thèse de doctorat, Université d’Evry-Val d’Esonne, Décembre 2008. [FB98] Fasse, E.D. et Breedveld, P.C. : Modeling of elastically coupled bodies: Part 1 – general theory and geometric potential function method. Transactions of the ASME, 120:496–506, 1998. [Feu05] Feutry, David : Développement d’un modèle numérique de sujet humain pour prédire le comportement bio-dynamique d’un conducteur de chariot élévateur en situation de renversement latéral. Rapport d’activité INRS/LIRIS, Mars 2005. [FvdPT01] Faloutsos, Petros, Panne, Michiel van de et Terzopoulos, Demetri : Composable controllers for physics-based character animation. Dans Fiume, Eugene (rédacteur): SIGGRAPH 2001, Computer Graphics Proceedings, pages 251–260. ACM Press / ACM SIGGRAPH, 2001. [Gau] Gautier, Jean : Définition et réalisation d’un protocole d’essai pour la qualification de systèmes de retenue pour caristes. Stage de fin d’étude – Master ENSEM. [Han64] Hanavan, E.P. : Mathematical model of the human body. Wright-Patterson Air Force Base, Ohio, AMRL-TR, pages 64–102, 1964. [Her05] Herbin, R. : Cours d’analyse numérique : licence de mathématiques. Université Aix-Marseille 1, 2004–2005. [HHH+ 06] Hirukawa, H., Hattori, S., Harada, K., Kajita, S., Kaneko, K., Kanehiro, F., Fujiwara, K. et Morisawa, M. : A universal stability criterion of the foot contact of legged robots – adios zmp. Dans IEEE International Conference on Robotics and Automation, pages 1976–1983, 2006. [HKF+ 07] Harada, K., Kanehiro, F., Fujiwara, K., Kaneko, K., Yokoi, K. et Hirukawa, H. : Real-time planning of humanoid robot’s gait for force-controlled manipulation. IEEE/ASME Transations on Mechatronics, 12(1):53–62, 2007. [HKKH06] Harada, K., Kajita, S., Kanko, K. et Hirukawa, H. : Dynamics and balance of a humanoid robot during manipulation tasks. IEEE Transactions on Robotics, 22(3):568–575, 2006. [Huy08] Huynh, Chau Thuan : Commande d’un mannequin virtuel manutentionnaire. Rapport de fin d’études, CEA, 2008. [INR06] INRIA Rhône-Alpes : HuMAnS User Documentation, Octobre 2006. [KWDS] Khatib, Oussama, Warren, James, De Sapio, Vincent et Sentis, Luis : Humanlike motion from physiologically-based potential energies. [LHP05] Liu, C. Karen, Hertzmann, Aaron et Popović, Zoran : Learning physic-based motion style with nonlinear inverse optimization. ACM Transactions on Graphics SIGGRAPH, 24(3):1071–1081, 2005. [LP02] Liu, C. Karen et Popović, Zoran : Synthesis of complex dynamic character motion from simple animations. Dans Proceedings of the 29th annual conference on computer graphics and interactive techniques, pages 408–416, New York, 2002. ACM Press. [LWP80] Luh, J.Y.S., Walker, M.W. et Paul, R.P.C. : Resolved-acceleration control of mechanical manipultors. Dans IEEE Transactions on Automatic Control, tome 25, pages 468–474, Juin 1980. [MF68] McGhee, R.B. et Frank, A.A. : On the stability properties of quadruped creeping gaits. Dans Mathematical Biosciences, tome 3, pages 331–351, 1968. 150 [MK08] Mansard, Nicolas et Khatib, Oussama : Continuous control law from unilateral constraints. Dans IEEE International Conference on Robotics and Automation, tome 3, pages 3359–3364, Mai 2008. [MLS94] Murray, Richard M., Li, Zexiang et Sastry, S. Shankar : A Mathematical Introduction to Robotic Manipulation. CRC Press, 1994. [MM75] Miller, D. et Morrison, W.E. : Prediction of segmental parameters using the hanavan human body model. Medecine and Science in Sports, 7(3):207–212, 1975. [OR04] Or, Yizhar et Rimon, Elon : Computation and graphic characterization of robust multiple-contact postures in gravitational environments. Dans Department of Mechanical Engineering, Juin 2004. [OR06] Or, Yizhar et Rimon, Elon : Computation of multiple-contact frictional equilibrium postures in three-dimensional gravitational environments. Dans Department of Mechanical Engineering, 2006. [Par05] Park, Jonghoon : Principle of dynamical balance for multibody systems, multibody system dynamics. 14(3–4):269–299, 2005. [PCDG06] Pratt, Jerry E., Carff, J., Drakunov, S. et Goswami, Ambarish : Capture point : A step toward humanoid push recovery. Dans IEEE International Conference on Humanoid Robots, pages 200–207, 2006. [RCPG07] Rebula, John R., Canas, Fabian, Pratt, Jerry E. et Goswami, Ambarish : Learning capture points for humanoid push recovery. Dans IEEE International Conference on Humanoid Robots, Décembre 2007. [Ren06] Rennuit, Antoine : Contribution au Contrôle des Humains Virtuels Interactifs. Thèse de doctorat, École Centrale de Nantes, 2006. [RMP08] Rebelle, Jérôme, Mistrot, Pierre et Poirot, Richard : Development and validation of a numerical model for predicting forklift truck tip-over. Vehicle System Dynamics, Novembre 2008. [SEM+ 08] Stasse, Olivier, Escande, Adrien, Mansard, Nicolas, Miossec, Sylvain, Evrard, Paul et Kheddar, Abderrahmane : Real-time (self )-collision avoidance task on a hrp-2 humanoid robot. Dans IEEE International Conference on Robotics and Automation, pages 3200–3205, Pasadena, CA, USA, Mai 2008. [SK04] Sentis, Luis et Khatib, Oussama : Task-oriented control of humanoid robots through prioritization. International Journal of Humanoid Robotics, Décembre 2004. [SK05] Sentis, Luis et Khatib, Oussama : Synthesis of whole-body behaviors through hierarchical control of behavioral primitives. International Journal of Humanoid Robotics, 2005. [SK06] Sentis, Luis et Khatib, Oussama : A whole-body control framework for humanoids operating in human environnements. Dans IEEE International Conference on Robotics and Automation Orlando, Florida, pages 2641–2648, 2006. [Tei96] Teichmann, Marek : A grasp metric invariant under rigid motions. Dans IEEE International Conference on Robotics and Automation, tome 3, pages 2143–2148, Avril 1996. [TGG07] Toussaint, Marc, Gienger, Michael et Goerick, Christian : Optimization of sequential attractor-based movement for compact behaviour generation. Dans IEEE International Conference on Humanoid Robots, Décembre 2007. 151 [TTP01] Trinkle, Jeffrey C., Tzitzoutis, J. et Pang, J.S. : Dynamic multi-rigid-body systems with concurrent distributed contacts: Theory and examples, philosophical transactions on mathematical, physical, and engineering sciences. Series A, 359:2575–2593, 2001. [TW05] Tong, Liu et Wang, Michael Yu : Computation of three-dimensional rigid-body dynamics with multiple unilateral contacts using time-stepping and gauss-seidel methods. IEEE Transactions on Automation Science and Engineering, 2(1):19–31, 2005. [VS74] Vukobratovic, M. et Stepanenko, J. : On the stability of anthropomorphic systems. Dans Mathematical Biosciences, tome 15, pages 1–37, 1974. [Wie00] Wieber, P. B. : Modélisation et Commande d’un Robot Marcheur Anthropomorphe. Thèse de doctorat, École des Mines de Paris, Décembre 2000. [YCBvdP08] Yin, Kang Kang, Coros, Stelian, Beaudoin, Philippe et Panne, Michiel van de : Continuation methods for adapting simulated skills. ACM Transactions on Graphics, 27(3):1–7, Août 2008. [YLvdP07] Yin, Kang Kang, Loken, Kevin et Panne, Michiel van de : Simbicon: Simple biped locomotion control. ACM Transactions on Graphics, 26(3):1–10, Juin 2007. [YPL+ 08] Yoshida, Eiichi, Poirier, Mathieu, Laumond, Jean-Paul, Kanoun, Oussama, Lamiraux, Florent, Alami, Rachid et Yokoi, Kazuhito : Whole-body motion planning for pivoting based manipulation by humanoids. Dans IEEE International Conference on Robotics and Automation, pages 3181–3186, Pasadena, CA, USA, Mai 2008. [ZDL01] Zhu, Xiangyang, Ding, Han et Li, Hanxiong : A quantitative measure for multifingered grasps. Dans IEEE/ASME International Conference on Advanced Intelligent Mechatronics, pages 213–219, Italy, July 2001. [ZDW03] Zhu, Xiangyang, Ding, Han et Wang, Jun : Grasp analysis and synthesis based on a new quantitative measure. IEEE Transactions on Robotics and Automation, 19(6):942–953, Décembre 2003. [ZMCF05] Zordan, Victor B., Majkowska, Anna, Chiu, Bill et Fast, Matthew : Dynamic response for motion capture animation. Dans Fiume, Eugene (rédacteur): SIGGRAPH 2005, Computer Graphics Proceedings, pages 697–701. ACM Press / ACM SIGGRAPH, 2005. 152 Annexes Sommaire A B C D E Définition des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . Formalisme mathématique et rappels de mécanique du solide . . . . B.1 Le groupe spécial euclidien . . . . . . . . . . . . . . . . . . . . . . . . . B.2 La notation homogène . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3 Matrice de rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.4 Rappels de mécanique du solide . . . . . . . . . . . . . . . . . . . . . . . B.5 CdM : position, vitesse, accélération . . . . . . . . . . . . . . . . . . . . B.5.1 Position du CdM . . . . . . . . . . . . . . . . . . . . . . . . . . B.5.2 Vitesse du CdM . . . . . . . . . . . . . . . . . . . . . . . . . . B.5.3 Accélération du CdM . . . . . . . . . . . . . . . . . . . . . . . Simulation physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.1 Fonctionnement global d’une simulation . . . . . . . . . . . . . . . . . . C.2 Gestion des contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramétrage de l’hv . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.1 Masses et géométries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2 Limites articulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste de publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 155 159 159 159 160 160 161 162 163 164 165 165 166 167 169 169 170 171 A Définition des variables Les variables utilisées tout au long du rapport sont ici listées. Le lecteur peut s’y référer pour retrouver la signification d’une variable introduite avant la partie en cours de lecture. X Vecteur position en coordonnées généralisées d’un robot T Vecteur vitesse en coordonnées généralisées d’un robot Ṫ Vecteur accélération en coordonnées généralisées d’un robot, dérivé de T τ Couples articulaires W Vecteur des torseurs d’efforts appliqués sur chacun des corps qui constituent le robot, exprimés dans leurs repères de base respectifs. (repères liés aux “corps”) C Jacobienne du robot : matrice de transformation entre l’espace des vitesses articulaires (“espace tangent exprimé par T ”) et l’espace des vitesses cartésiennes des corps (espace des torseurs cinématiques des corps, en formulation “corps” se3 (R) × . . . × se3 (R) = se3 (R)ncorps ). M̃ Matrice de masse (ou d’inertie) généralisée en coordonnées généralisées L Matrice permettant d’exprimer τ en coordonnées généralisées N Matrice associée aux effets de Coriolis et centrifuges G Accélération de la pesanteur exprimée en coordonnées généralisées Vracine Torseur cinématique du corps racine de l’arborescence du robot exprimé dans le repère lié au corps “racine” q̇k Vitesse articulaire du corps k par rapport au corps le précédent dans l’arborescence τk Couple articulaire appliqué par le corps k sur le corps le suivant dans l’arborescence τcommande Couples articulaires calculés par la commande τbutée Couples articulaires dus aux butées articulaires Wcontact Torseur dynamique lié aux contacts entre l’hv et son environnement Wliaison Torseur dynamique lié aux liaisons viscoélastiques entre l’hv et son environnement Wperturbation Torseur dynamique lié aux perturbations extérieures exercées sur l’hv Mk Matrice d’inertie du corps k dans son repère de base nddl Nombre de degrés de liberté du robot hv (ne tient pas compte des 6 ddl du corps racine) na Nombre d’arêtes des cônes de frottement linéarisés nc Nombre de corps de contact du robot hv np Nombre de corps de préhension du robot hv xconsigne cdm/scène xdes cdm/scène Position de consigne du CdM exprimée dans le repère scène xcdm/scène Position du CdM exprimée dans le repère scène xcdm/racine Position du CdM exprimée dans le repère racine des vcdm/scène Vitesse absolue désirée du CdM exprimée dans le repère scène Position désirée du CdM exprimée dans le repère scène 155 vcdm/scène Vitesse absolue du CdM exprimée dans le repère scène vcdm/racine Vitesse absolue du CdM exprimée dans le repère racine acdm/scène Accélération absolue du CdM exprimée dans le repère scène acdm/racine Accélération absolue du CdM exprimée dans le repère racine ades cdm/scène Accélération absolue désirée du CdM exprimée dans le repère scène ades cdm/racine Accélération absolue désirée du CdM exprimée dans le repère racine xkc/scène Position du k ieme point de contact exprimée dans le repère scène xc/scène Concaténation des xkc/scène k vc/scène Vitesse du k ieme point de contact exprimée dans le repère scène vc/scène k Concaténation des vc/scène akc/scène Accélération du k ieme point de contact exprimée dans le repère scène k Xp/scène Position du k ieme corps de préhension exprimée dans le repère scène k Vp/scène Torseur vitesse du k ieme corps de préhension exprimée dans le repère scène k V̇p/scène Accélération du k ieme corps de préhension exprimée dans le repère scène Ccdm Jacobienne permettant d’exprimer vcdm/racine en fonction de T Cp Jacobienne permettant d’exprimer vp/bd en fonction de T Cc Jacobienne permettant d’exprimer vc/bd en fonction de T τ des Couples articulaires désirés Ṫ des Accélérations en coordonnées généralisées désirées des fc/contact des Wp/bd Forces de contact désirées exprimées dans le repère de contact Rracine Rotation du repère du corps racine par rapport au repère scène rracine Position du repère du corps racine par rapport au repère scène hdes Hauteur du thorax désirée exprimée dans le repère scène m Masse totale du robot hv g Accélération de pesanteur (g = 9,81 m.s−2 ) µ Coefficient de frottement sec Normale au contact Nc Tc1 , Efforts de préhension désirés exprimé dans le repère du corps Tc2 fc/contact Tangentes au contact Forces de contact exprimées dans le repère de contact Wp/prehension Efforts de préhension exprimés dans les repères de préhension Cct Jacobienne exprimant fc/contact en coordonnées généralisées Cpt Jacobienne exprimant Wp/préhension en coordonnées généralisées (kcdm , µcdm ) Gains de l’asservissement de la position du CdM $ kṪ , µṪ Gains de l’asservissement de la posture (kc , µc ) Gains de l’asservissement de la position des corps de contact (kp , µp ) Gains de l’asservissement de la position des corps de préhension pcdm Poids du critère d’optimisation portant sur l’accélération du CdM pṪ Poids du critère d’optimisation portant sur l’accélération de la posture de l’hv 156 pτ Poids du critère d’optimisation portant sur les couples articulaires pf c Poids du critère d’optimisation portant sur les forces de contact pW p Poids du critère d’optimisation portant sur les efforts de préhension 157 B Formalisme mathématique et rappels de mécanique du solide B.1 Le groupe spécial euclidien Cette annexe précise le formalisme mathématique utilisé dans ce rapport. Ce formalisme est celui présenté dans l’ouvrage de Murray, Li et Sastry [MLS94]. On rappel que l’espace des matrices de rotation dans M3,3 (R), est le groupe spécial orthogonal : SO3 (R) = {R ∈ M3,3 (R) : R Rt = I3 , det(R) = 1} (2) Ces matrices décrivent l’ensemble des rotations possibles dans R3 . L’ensemble des matrices antisymétriques forme l’espace antisym3 (R) : antisym3 (R) = {S ∈ M3,3 (R) : S t = −S} (3) On définit l’application [] : r ∈ R3 → [r] ∈ antisym3 (R) : rx r = ry rz 0 −rz ry 0 −rx [r] = rz −ry rx 0 [r]t = −[r] (5) ∧ : le produit vectoriel (6) car [r] ∈ antisym3 (R) (4) Cette application effectue un produit vectoriel : avec r1 ∧ r2 = [r1 ] r2 Tout déplacement rigide définissant la position d’un solide attaché à un repère B, relativement à un repère A peut être défini par la combinaison d’une : – translation : rab ∈ R3 , vecteur définissant la position de l’origine du repère B dans le repère A ; – rotation : Rab ∈ SO3 (R), matrice décrivant l’orientation du repère B par rapport au repère A. L’ensemble de ces déplacements est appelé le groupe spécial euclidien : SE3 (R) = {(R, r) ∈ SO3 (R) × R3 } B.2 (7) La notation homogène La notation homogène permet de représenter les éléments de SE3 (R) et d’exprimer les changements de repère. Cette notation permet de différencier un point ou un vecteur de R3 par l’ajout d’une quatrième coordonnée : – un point de coordonnées (x, y, z) est noté : [x, y, z, 1]T ; – un vecteur de coordonnées (x, y, z) est noté : [x, y, z, 0]T . On peut également représenter chacun des éléments de SE3 (R) par une matrice homogène : Hab = Rab rab 01,3 1 −1 Hba = Hab = t t r −Rab Rab ab 01,3 1 (8) Hab (t) ∈ SE3 (R) représente le mouvement d’un corps rigide lié à un repère B, relativement à un repère A. L’augmentation de la dimension de 3 à 4 permet de manipuler des points et des vecteurs indépendamment de leur nature, par des relations linéaires. Par exemple, on peut 159 exprimer la position d’un point ou d’un vecteur, exprimé dans le repère B (rB ), dans le repère A (rA ), en utilisant la matrice de passage du repère A au repère B (figure 2). (9) rA = Hab rB RAB yB xB B yA rAB xA A zB zA HAB Figure 2 – Changement de repère. B.3 Matrice de rotation Une matrice de rotation R est une matrice orthogonale directe, ce qui signifie que ses colonnes forment une base orthonormée directe, ou encore que sa matrice transposée est égale à sa matrice inverse, et que son déterminant vaut 1. Inversement, étant donnée une matrice de rotation quelconque, on retrouve facilement le cosinus de l’angle de rotation. En effet, la trace de la matrice est égale à 1 + 2 cos φ. Par ailleurs, on remarque que : nx 0 −nz +ny t R−R 0 −nx = sin(φ) +nz ~n = ny 2 nz −ny +nx 0 ce qui permet de retrouver rapidement l’axe ~n et le sinus associés à la rotation φ. L’utilisation de matrices de rotation présente l’avantage de ne pas avoir de singularité contrairement à l’utilisation des angles d’Euler. Le seul cas de singularité se présente lorsque φ = 0 mod π. Dans ce cas, la matrice antisymétrique est nulle et les deux matrices de rotation (R et Rt ) sont confondues car φ = 0 ⇒ R = I3 . B.4 Rappels de mécanique du solide La vitesse d’un corps associé au repère B par rapport à A, exprimée dans le repère A s’exprime à l’aide du torseur cinématique (“twist” en anglais) [MLS94] : b vob ,ba b Vab = (10) b ωba 160 avec : • vobb ,ba ∈ R3 : vitesse de l’origine du repère B, exprimée dans le repère B ; b ∈ R3 : vitesse angulaire de B par rapport à A, exprimée dans le repère B. • ωba On note se3 (R) l’ensemble des torseurs cinématiques. se3 (R) est l’espace tangent à l’identité du groupe de Lie SE3 (R). se3 (R) a une structure d’algèbre de Lie. Le changement de repère d’un torseur cinématique s’exprime à l’aide de l’adjointe de Hab , noté AdHab : R6 −→ R6 : t t [r ] Rab [rab ] Rab Rab −Rab ab −1 AdHab = (11) AdHab = t 03,3 Rab 03,3 Rab b a Vab = Ad−1 Hab Vab (12) soit : b = Rt v a − Rt [r ] ω a = Rt (v a − r ∧ ω a ) • vab ab ab ab ab ab ab ab ab ab b = Rt ω a • ωab ab ab Une force généralisée agissant sur un corps rigide est définie par une force et un moment. Cette force généralisée est représenté par un torseur d’effort (“wrench” en anglais), i.e. les deux composantes sont liées par la relation “de déplacement du champ de moment” : a fab a Wab = (13) τoaa ,ab soit : a : résultante des efforts du solide lié à A sur le solide lié à B ; • fab • τoaa ,ab : moment en A des efforts de A sur B. Par analogie au torseur cinétique, le changement de repère s’exprime à l’aide de la matrice co-adjointe Ad−t Hab de la transformation homogène Hab : Rab 03,3 −t −1 t t −1 (14) AdHab = (AdHab ) = (AdHab ) = [rab ] Rab Rab a b Wab = Ad−t Hab Wab (15) soit : a = R fb ; • fab ab ab $ a = R τ b + [r ] R f b = R τ b + r ∧ f a . • τab ab ab ab ab ab ab ab ab ab B.5 CdM : position, vitesse, accélération On détaille dans cette annexe les calculs pour obtenir la position, la vitesse et l’accélération du CdM à partir du modèle dynamique d’Arboris. 161 {i L (i + 1)} Ei {i + 1} {i} {i L (i − 1)} Figure 3 – Repère de liaison des corps : on choisit de confondre les repères {i} au CdM du corps. B.5.1 Position du CdM La position du CdM exprimée dans le repère du corps racine est : xcdm/racine = 1 rcdm m Démonstrations : Dans un premier temps, afin de et C t . Mracine 06,6 06,6 M1 M = .. .. . . 06,6 ... C= 1 1 Adracine .. . i I6 01,6 01,6 Ct = 01,6 01,6 01,6 06,6 .. . 06,6 Mnddl ... .. . .. . 06,6 avec Mi = 06,1 ... ... Ad1Lracine E1 .. . 06,1 .. . ... ... 06,1 ... AdiL(i−1) Ei 06,1 .. . ... i Adracine .. . nddl Adracine Ad1Lracine E1 .. . nddl Ad1Lracine E1 t Adracine t 1 Ad1Lracine E1 1 01,6 .. . .. . ... (16) calculer C t M C, on rappelle l’expression des matrices M , C 06,1 I6 $ [rcdm ] = C t M C (1 : 3, 4 : 6) avec ... ... .. . 01,6 .. . ... ... i ... ... nddl ... AdiL(i−1) Ei t Adracine t i Ad1Lracine E1 .. . t i AdiL(i−1) Ei i 01,6 ... 162 0 ... .. . .. . .. . 01,6 mi I3 03,3 03,3 ℑi (17) 06,1 .. . 06,1 .. . nddl 06,1 Adnddl L(nddl −1) Enddl nddl Adnddl L(nddl −1) Enddl (18) t (nddl Adracine ) t (nddl Ad1Lracine E1 ) .. . t nddl AdiL(i−1) Ei .. . t (19) À partir des matrices M , C et C t (équations 17, 18 et 19), on calcule C t M C (1 : 6, 1 : 6) : C t M C (1 : 6, 1 : 6) = Mracine + n ddl X i Adracine i=1 i avec Adracine = t Ri [ri ] Ri 03,3 Ri Mi i Adracine (20) Par construction, le repère d’un corps i est confondu avec son CdM (figure 3). Ainsi, ri représente la distance du CdM du corps i au repère racine exprimée dans le repère du corps i. t On détaille le calcul de i Adracine Mi i Adracine : i Adracine t Mi i Adracine = = " 03,3 Rit t −Ri [ri ] Rit mi I3 −mi Rit [ri ] Ri mi I3 033 03,3 ℑi Ri [ri ] Ri 03,3 Ri # t mi Ri [ri ] Ri t Ri ℑi − mi [ri ]2 Ri (21) Tout d’abord, la masse de l’hv s’obtient simplement avec C t M C (1, 1). Pour la suite, on introduit les notations suivantes : ai ri = bi ci 0 [ri ] = +ci −bi − b2i + c2i ai bi − [ri ]2 = ai ci −ci +bi 0 −ai +ai 0 [ri ]t = − [ri ] ai bi ai ci a2i + c2i bi ci bi ci − a2i + b2i (22) (23) Pour exprimer la matrice d’inertie du corps i du repère (cdm, Ri ) au repère (racine, Ri ), la formule de Huygens donne : 2 bi + c2i −ai bi −ai ci a2i + c2i −bi ci ℑ(i)/(racine,Ri ) = ℑ(i)/(cdm,Ri ) + mi −ai bi (24) 2 2 −ai ci −bi ci ai + bi Donc la matrice d’inertie globale du système est C t M C (4 : 6, 4 : 6). On détaille maintenant la matrice C t M C (1 : 3, 4 : 6) : t C M C (1 : 3, 4 : 6) = mracine I3 + n ddl X i=1 = m [rcdm ] B.5.2 mi Rit [ri ] Ri (25) Vitesse du CdM Pour exprimer la vitesse du CdM à partir du modèle dynamique, on part du modèle cinématique direct : Vracine Vracine q̇1 V1 (26) =CT =C .. .. . . q̇nddl Vnddl 163 On multiplie les vitesses en coordonnées généralisées par la matrice de masse M , puis C t : Mracine Vracine M1 V 1 MCT = (27) .. . Mnddl Vnddl En multipliant l’équation 27 par C t , on obtient : Ct M C T = " Mracine Vracine + t C MCT = " 1 Ad racine t M1 V1 + . . . + (nddl Adracine )t Mnddl Vnddl .. . Mracine Vracine + Pnddl racine i=1 .. . Adi Mi Vi/corps(i) # # (28) (29) On obtient la vitesse du CdM exprimée dans le repère du corps racine : vcdm/racine 1 = m ! Mracine Vracine + n ddl X racine Adi Mi Vi/corps(i) i=1 On pose vcdm/racine = Ccdm T avec Ccdm = 1 m $ 1 C t M C (1 : 3, :) T (30) m C t M C (1 : 3, :). vcdm/scène = Rracine vcdm/racine B.5.3 = (31) Accélération du CdM Pour obtenir l’accélération du CdM, on repart de l’expression de la vitesse du CdM, vcdm/racine = Ccdm T que l’on dérive : acdm/racine = Ċcdm T + Ccdm Ṫ (32) acdm/scène = Rracine acdm/racine (33) 164 C C.1 Simulation physique Fonctionnement global d’une simulation Figure 4 – Présentation de la boucle de simulation. On utilise un simulateur dynamique (chapitre 2.3) des systèmes rigides poly-articulés. Les robots ne sont pas libres. Ils sont physiquement contraints dans la simulation. Les butées articulaires constituent les contraintes internes, qui sont gérées par le simulateur. Dans cette étude, les contraintes externes se limitent à des contacts rigides sur rigides et des liaisons viscoélastiques. On détaillera les différents modèles d’interaction (chapitre 2.4). La simulation se déroule en une étape d’initialisation puis une boucle de simulation (figure 4). Lors de l’étape d’initialisation, on définit les structures arborescentes, leurs propriétés physiques (masse, inertie, contacts, matériaux, . . .), graphiques (géométrie, couleur, . . .) ainsi que la posture initiale. Pour déterminer la position et la vitesse du système à l’instant k + 1, il faut calculer l’accélération du système à l’instant k + 1 car on effectue une intégration Euler implicite (§ C.3). Cette accélération est calculée à partir des positions et vitesses de l’instant k et des contraintes (internes et externes) du système à l’instant k +1. On calcule tout d’abord ces efforts (contraintes et commande) à l’instant k + 1 puis l’accélération à k + 1 et enfin, par intégration, on en déduit la posture et la vitesse de l’instant k +1. On peut décomposer une boucle de simulation en plusieurs étapes. Étape 1 – Modèle à l’instant k : à chaque instant k de la simulation, on connaît l’état du système. Il s’agit des positions et des vitesses du corps racine et des articulations. 165 Étape 2 – Commande : on commence tout d’abord par calculer la commande de l’instant k + 1. Celle-ci s’appuie sur des connaissances de positions et de vitesses de l’instant k. Étape 3 – Mouvement libre : l’état du système à l’instant k, les couples de commande et l’accélération de pesanteur génèrent un mouvement libre. Ce mouvement n’est pas contraint (contacts, butées articulaires . . . ). Suite à ce mouvement libre, on calcule les contraintes. Par exemple, dans le mouvement libre, des corps peuvent s’interpénétrer. On réalise alors une détection de collision pour déterminer le point d’application des forces de contact. Enfin, on calcule les forces de contact de réaction qui empêchent les solides de s’interpénétrer. Étape 4 – Bilan des efforts : on effectue un bilan des efforts de l’instant k+1 s’appliquant au robot. Ces efforts contiennent les couples de la loi de commande et aussi les efforts de contraintes. Étape 5 – Mouvement contraint : à partir du bilan des efforts précédents, on détermine l’accélération du système à l’instant k + 1. Étape 6 – Intégration de l’accélération : en intégrant deux fois cette accélération, on obtient la vitesse et la configuration du système à l’instant k +1. Les contraintes ont été calculées pour garantir la non-interpénétration des solides au niveau des contacts et la non-violation des butées articulaires. C.2 Gestion des contraintes La méthode de prise en compte des contraintes bilatérales (liaisons viscoélastiques, boucles cinématiques) et unilatérales (collisions, butées) repose sur un algorithme de Gauss-Seidel qui nécessite la connaissance d’une matrice de “compliance” ou matrice “admittance”. Cette matrice met en relation des torseurs d’efforts de contraintes avec des vitesses relatives. On peut l’écrire ainsi : θ̇c = Y Γc (34) avec : – θ̇c : vecteur vitesses de contraintes (torseurs cinématiques complets ou partiels, vitesses articulaires . . . ) ; – Y : matrice d’admittance en question ; – Γc : vecteur des efforts de contraintes (torseurs d’efforts complets ou partiels, forces ou couples articulaires . . . ). On procède en trois temps : – on construit d’abord la matrice admittance pour chacun des cas traités isolément comme s’il n’y avait qu’une seule contrainte ; – on construit la matrice admittance globale qui fait apparaître des couplages entre les différentes contraintes ; – on décrit l’algorithme de Gauss-Seidel globalement, puis le traitement particulier lié à chaque cas. On ne considère que des contacts ponctuels avec frottements secs de type Coulomb avec une composante en torsion, tels que décrits dans les articles de J.C. Trinkle et al. [TTP01] et Liu Tong et al. [TW05]. Dans ce modèle de frottement et dans le repère de contact, les seules composantes du torseur d’efforts engendrés par le contact sont (fx , fy , fz , mz ) (figure 5), soit : les 166 trois composantes de force et une composante de moment, la dernière suivant l’axe z. D’autre part, une liaison viscoélastique est constituée d’un ressort (application de SE (3) dans se (3)∗ ) et d’une viscosité (application de se (3) dans se (3)∗ ). On a choisi pour le ressort une formulation dérivant d’un potentiel (E.D. Fasse et P.C. Breedveld [FB98]) et, pour la viscosité, une application linéaire constante symétrique définie positive appliquée dans l’un des repères de la liaison. Dans la simulation, on utilise des contacts sphère/parallélépipède, sphère/sphère et ellipsoïde/sphère. Pour réaliser un contact plan/plan (figure 5), on attache sur un “corps” 3 sphères de contact qui définissent un plan, qui pourra entrer en collision avec un parallélépipède. Les pieds et les mains du mannequin sont des parallélépipèdes où 3 sphères sont encastrées. C’est au niveau de ces sphères qu’interviennent les contacts avec l’environnement (un autre parallélépipède). x3c − → z x2c − → y − → x x1c Figure 5 – Orientation du repère de contact et simplification du contact plan/plan. C.3 Intégration numérique Le problème à résoudre dans une simulation numérique consiste à discrétiser l’équation 35 pour la résoudre numériquement (avec x l’état du système considéré) : ẋ = f (x) (35) On utilise deux schémas d’intégration numérique à un pas de temps que sont Euler direct (qui est un schéma explicite) et Euler rétrograde (qui est un schéma implicite) : – schéma explicite : xk+1 − xk ≃ ẋk = f (xk ) δt (36) xk+1 − xk ≃ ẋk+1 = f (xk+1 ) δt (37) – schéma implicite : Une prédiction de xk+1 est mise en œuvre, puis une linéarisation de f autour de xk , dans un schéma d’Euler implicite linéarisé : xk+1 − xk ≃ ẋk+1 ≃ f (xk + ẋk δt) δt 167 (38) ∂f ẋk δt (39) ∂x L’accélération est intégrée. L’intégration numérique se fait d’abord selon Euler implicite puis selon Euler explicite (R. Herbin [Her05]). À l’instant k, l’équation de la dynamique s’écrit : f (xk + ẋk δt) = f (xk ) + Tk+1 − Tk (40) dt Donc, par inversion, on obtient le vecteur vitesse en coordonnées généralisées du robot à l’instant k + 1 : −1 Vk+1 t M̃k Tk + dt Ck Wk + L τk (41) Tk+1 = M̃k + dt Ñk avec Tk+1 = q̇k+1 M̃k Ṫk+1 + Ñk Tk+1 = Ckt Wk + L τk avec Ṫk+1 = Enfin, la configuration de l’hv à l’instant k + 1 est calculée à partir de la configuration à l’instant k et Tk+1 : ( Hk+1 = Hk exp(Vk+1 dt) (42) qk+1 = qk + q̇k+1 dt 168 D D.1 Paramétrage de l’hv Masses et géométries Segments corporels % de la masse totale tête 06.30 thorax 17.10 abdomen + bassin 32.39 bras 02.63 avant-bras 01.54 main 00.59 cuisse 10.95 jambe 04.93 pied 01.46 Table 2 – Masses des segments corporels (D. Miller et al. [MM75]). Géométries Segments corporels Ellipsoïde Tête Thorax Stadium Abdomen Bras Avant-bras Cône tronqué Cuisse Jambe Main Parallépipède Pied Table 3 – Géométries des segments corporels (E.P. Hanavan [Han64]). 169 D.2 Limites articulaires Articulation Mouvement Angle limite (˚) Nomination −18 coumin X abduction adduction Cou flexion extension rotation médiale rotation latérale adduction abduction Épaule extension coumax Y −75 coumin Z +75 coumax Z −90 épaulemin X +90 épaulemax X −60 épaulemin Y −20 épaulemin Z +97 épaulemax Z extension +00 coudemin Y flexion +160 coudemax Y supination −90 coudemin Z extension adduction adduction abduction extension +85 coudemax Z −80 poignetmin X +70 poignetmax X −30 poignetmin Y +20 poignetmax Y −30 hanchemin X +30 hanchemax X −20 hanchemin Y flexion +120 hanchemax Y rotation latérale −60 hanchemin Z rotation médiale flexion extension adduction Cheville +23 rotation interne abduction Genou coumin Y épaulemax Y flexion Hanche −19 +170 pronation Poignet coumax X flexion rotation externe Coude +18 abduction flexion plantaire flexion dorsale +30 hanchemax Z −135 genoumin Y +00 genoumax Y −30 chevillemin X +20 chevillemax X −50 chevillemin Y +30 chevillemax Y Table 4 – Limites articulaires de l’humain virtuel à 32 ddl (J.M. Chevallier [Che98]). 170 E Liste de publications Publications à des conférences internationales icra 08 Robust Balance Optimization Control of Humanoid Robots with Multiple non Coplanar Grasps and Frictional Contacts. Cyrille Collette, Alain Micaelli, Pierre Lemerle et Claude Andriot. Dans IEEE International Conference on Robotics and Automation, pages 3187-3193, Pasadena, ca, usa, Mai 2008. Humanoids 07 Dynamic Balance Control of Humanoids for Multiple Grasps and non Coplanar Frictional Contacts. Cyrille Collette, Alain Micaelli, Pierre Lemerle et Claude Andriot. Dans IEEE/RAS International Conference on Humanoid Robots, Pittsburgh, pa, usa, December 2007. isvc 07 Dynamic Balance Control Following Disturbance of Virtual Humans. Cyrille Collette, Alain Micaelli, Pierre Lemerle et Claude Andriot. Dans G. Bebis et al., editor, isvc 2007, Part I, lncs 4841, pages 734-744, Berlin Heidelberg, 2007. Springer-Verlag. Autres jnrh 08 Gestion d’Équilibre Robuste d’Humains Virtuels Dynamiques. Cyrille Collette, Alain Micaelli, Pierre Lemerle et Claude Andriot. jnrh, Paris, France, 2008. jnrh 07 Gestion d’Équilibre d’Humains Virtuels Dynamiques en Multi Contacts Non Coplanaires avec Frottements Secs. Cyrille Collette, Alain Micaelli, Pierre Lemerle et Claude Andriot. jnrh, Montpellier, France, 2007. 171