• Aucun résultat trouvé

4.3 Environnement logiciel et architecture d’une simulation d’HV « basée-modèle »

4.3.3 Le contrôleur d’humain virtuel

4.3.3.1 Formulation générale d’un contrôleur corps complet par optimisation sous contraintes

Le rôle du contrôleur d’HV est de déterminer les couples d’actionnement internes de l’HV, nécessaires pour passer de l’état courant vers l’état (ou la séquence d’états) qui assure(nt) la bonne réalisation de la tâche prescrite. Il permet d’appréhender la redondance de l’HV, et tient compte des interactions de dernier avec l’environnement et de la prescription de sous-tâches simultanées, voire concurrentes. Le contrôleur décrit par Salini [38], basé sur une optimisation quadratique d’une fonction de coût sous contraintes linéaires (Linear Quadratic Programming, LQP), a servi de base au démonstrateur développé pour ces travaux de thèse.

La formulation générique d’un tel problème LQP est la suivante :

argmin x kf (x)k2 vérifiant ( Ax = b Cx ≤ d (4.1)

où f est la fonction de coût que l’on cherche à minimiser et x rassemble les variables dont dépend f . A, b, C et d expriment les contraintes d’égalité et d’inégalité que le système doit vérifier.

La fonction de coût f exprime généralement l’écart entre l’état courant et l’état désiré du système. Selon sa définition, on peut implémenter différents types de contrôle : en position, en force, en accélération, en impédance [242,230,207,243,209].

4.3.3.2 Le contrôleur utilisé

Pour contrôler le mouvement de l’HV, la tâche prescrite est décomposée en opérations élémentaires appelées Tasks16. CesTasks peuvent correspondre notamment au maintien de l’équilibre, au maintien d’un contact au sol, au déplacement d’un effecteur, à l’application d’une force, etc. Elles sont associées chacune à une fonction de coût Ti. Pour notre démons-trateur, la fonction de coût totale f est donc la somme pondérée des fonctions de coût des

16. on choisit de conserver ce terme anglais, qui fait référence dans le domaine du contrôle robotique, pour éviter toute confusion avec le terme de « tâche » tel que défini au chapitre2page17.

c

articulaires internes ;

— Ti les tasks élémentaires décrivant la tâche prescrite et ωi leurs poids respectifs ; — la contrainte d’égalité est l’équation fondamentale de la dynamique exprimée en

coor-données généralisées : M la matrice généralisée des inerties du système, C représente les effets de Coriolis et centrifuges et g les forces de gravité généralisées. S est une matrice permettant de choisir les articulations actionnées, Jc est la jacobienne ; — la contrainte d’inégalité inclut dans la matrice G les différentes contraintes

appli-quées au système, en particulier les butées articulaires, les limitations des couples d’actionnement, le maintien des contacts au sol, etc.

4.3.3.3 Modélisation de l’activité

Cinq types de task élémentaires sont fournies avec le contrôleur mis en œuvre : Task d’accélération dans l’espace opérationnel :

T =

Ji(q) ˙ν + ˙Ji(q)ν − ¨Xi

2

où ¨X représente l’accélération cartésienne désirée au pas de temps considéré pour le segment i de l’HV, et Ji la jacobienne associée ; Task d’accélération en coordonnées articulaires :

T = k ˙ν − ˙νk2 où ν représente les vitesses articulaires désirées au pas de temps considéré ;

Task en force dans l’espace opérationnel :

T = wck− wc k 2 où wc

k représente l’effort désiré au point de contact ck au pas de temps considéré ;

Task d’actionnement articulaire :

T = kτ − τk2 où τ représente le vecteur des actionnements articulaires au pas de temps considéré ;

Task de contact :

Pour simplifier le modèle de frottement de Coulomb en un point ck, il est possible de considérer un polyèdre pyramidal Cck ayant une base à p côtés [244]. Avec cette approximation, on impose les conditions de contact par

(

Cckwck ≤ 0 ∀ck

Jck(q) ˙ν + ˙Jck(q)ν = 0 ∀ck (4.2) Dans les expressions précédentes, le coût T est exprimé comme l’erreur entre l’état cou-rant de l’HV et une consigne instantanée (identifiée par l’exposant ). Comme décrit dans

— son objectif Xobj;

— son poids ω qui fixe son importance relative par rapport aux autres Tasks ;

— la raideur et l’amortissement Kp et Kd du correcteur PD qui définissent la consigne instantanée X à partir de l’objectif Xobj.

Les Tasks élémentaires décrites précédemment peuvent être combinées à d’autres pour former des commandes de plus haut niveau, par exemple :

Full-Task (resp. Partial-Task) Cette Task correspond au maintien ou à l’atteinte d’une configuration articulaire donnée pour l’ensemble (resp. une partie) du corps de l’HV. C’est en fait une Task d’accélération dans l’espace articulaire ;

Frame-Task Cette Task correspond au maintien ou à l’atteinte d’un repère cible Ψobj par un repère Ψseg positionné sur l’un des segments de l’HV. C’est en fait une Task d’accélération dans l’espace opérationnel ;

CoM-Task Cette Task vise à assurer le maintien de l’équilibre de l’HV. Elle s’applique plutôt à des activités sans déplacement des pieds ni locomotion. Le contrôle se fait sur l’accélération du CdM, selon un algorithme de prédiction du ZMP (Zero Moment Point). CetteTask est décrite en détail dans [209] ;

De manière générale, une simulation nécessite quelques Tasks plutôt génériques (CoM, contacts au sol), une ou plusieurs Tasks globales ou locales décrivant la posture majoritaire de l’opérateur pendant son activité, ainsi que plusieurs Tasks correspondant aux « actions techniques » à réaliser (atteindre, relâcher, saisir, exercer une force, etc.) et pouvant se succéder dans le temps. Cette décomposition en « actions techniques » est proche de celle que les concepteurs pratiquent déjà pour définir ou évaluer la tâche prescrite (par exemple à l’aide des méthodes MTM17, OCRA18 ou autre).

Pour lever l’indétermination sur l’actionnement (redondance motrice), une Task de ré-gularisation T0 est ajoutée au contrôleur : de poids ωT0 très faible devant celui des autres Tasks appliquées à l’HV, elle vise à minimiser la dépense énergétique globale (actionnement, déplacements, efforts externes).

4.3.3.4 Cas d’un mouvement d’atteinte

La tâche retenue comme cas d’étude est une tâche répétitive de pointage (cf. section2.4.1). Celle-ci implique une succession de mouvements d’atteinte rectilignes. Ce type de mouvement pourrait être modélisé par une Frame-task attribuée à l’effecteur de l’HV, lui donnant comme

17. Method Time Measurement, en français « Méthode des Temps Pré-déterminés » [48]. 18. La méthode OCRA a été intégrée à la norme NF EN 1005-5 [245].

tiales et finales. Les trajectoires min-jerk ainsi pré-calculées sont ensuite données en consigne d’une Frame-task imposée à l’effecteur terminal de l’HV.