0% ont trouvé ce document utile (0 vote)
44 vues227 pages

Étude Théorique Et Expérimentale D'architectures Innovantes de Robots Inspirées Du Cou Des Oiseaux: Conception Et Commande

La thèse de Benjamin Fasquelle explore des architectures innovantes de robots inspirées du cou des oiseaux, en se concentrant sur leur conception et leur commande. Elle présente une étude théorique et expérimentale, incluant la modélisation dynamique et l'identification des paramètres d'un prototype. Les résultats visent à améliorer la compréhension et le développement de robots biomimétiques dans le domaine de la robotique.

Transféré par

gracengoy953
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues227 pages

Étude Théorique Et Expérimentale D'architectures Innovantes de Robots Inspirées Du Cou Des Oiseaux: Conception Et Commande

La thèse de Benjamin Fasquelle explore des architectures innovantes de robots inspirées du cou des oiseaux, en se concentrant sur leur conception et leur commande. Elle présente une étude théorique et expérimentale, incluant la modélisation dynamique et l'identification des paramètres d'un prototype. Les résultats visent à améliorer la compréhension et le développement de robots biomimétiques dans le domaine de la robotique.

Transféré par

gracengoy953
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Étude théorique et expérimentale d’architectures

innovantes de robots inspirées du cou des oiseaux :


conception et commande
Benjamin Fasquelle

To cite this version:


Benjamin Fasquelle. Étude théorique et expérimentale d’architectures innovantes de robots inspirées
du cou des oiseaux : conception et commande. Automatique / Robotique. École centrale de Nantes,
2021. Français. �NNT : 2021ECDN0051�. �tel-03670418�

HAL Id: tel-03670418


https://theses.hal.science/tel-03670418v1
Submitted on 17 May 2022

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
T HÈSE DE DOCTORAT DE

L’ÉCOLE CENTRALE DE NANTES

É COLE D OCTORALE N O 602


Sciences pour l’Ingénieur
Spécialité : Robotique - Mécanique

Par
Benjamin FASQUELLE
Étude théorique et expérimentale d’architectures innovantes de ro-
bots inspirées du cou des oiseaux : conception et commande

Thèse présentée et soutenue à Nantes, le 10 décembre 2021


Unité de recherche : UMR 6004, Laboratoire des Sciences du Numérique de Nantes (LS2N)

Rapporteurs avant soutenance :


Philippe POIGNET Professeur des universités, Université de Montpellier
Jean-Pierre MERLET Directeur de recherche, INRIA, Sophia Antipolis

Composition du Jury :
Président : Anick ABOURACHID Professeure, Museum National d’Histoire Naturelle, Paris
Examinateurs : Christian DURIEZ Directeur de recherche, INRIA, Villeneuve d’Ascq
Matthieu FURET Docteur - enseignant, IUT de Toulouse
Med Amine LARIBI Maître de conférences HDR, Université de Poitiers
Dir. de thèse : Philippe WENGER Directeur de recherche - CNRS, Ecole Centrale de Nantes
Co-dir. de thèse : Christine CHEVALLEREAU Directrice de recherche - CNRS, Ecole Centrale de Nantes
R EMERCIEMENTS

J’adresse tout d’abord mes remerciements à Philippe Wenger et Christine Chevallereau qui
m’ont encadré pendant ces trois ans. J’ai beaucoup appris grâce à eux et j’ai vraiment appré-
cié travailler à leurs côtés. Je remercie également Damien Chablat, Philippe Lemoine, Denis
Creusot et les autres membres du LS2N qui nous ont aidé dans la conception du prototype.
Je tiens à remercier Anick Abourachid et les autres biologistes du MNHN qui ont participé
au projet AVINECK. Nos échanges ont toujours été très intéressants et m’ont beaucoup inspiré
durant ces trois années.
Je remercie Matthieu Furet qui est sans aucun doute la personne avec laquelle j’ai le plus
échangé sur ce projet. C’était une réelle chance de travailler avec toi pendant deux ans sur ce
projet.
J’adresse également ma reconnaissance à Parag Khanna qui m’a beaucoup aidé pour faire
les expérimentations sur le prototype, notamment pendant les périodes de confinement.
Je tiens à remercier les doctorants de Nantes et de Rennes aux côtés desquels j’ai progressé
dans cette aventure qu’est la thèse. Nos partages d’expérience m’ont permis d’avancer sereine-
ment dans ce travail.
Un immense merci à mes amis et à ma famille. Votre soutien infaillible m’a poussé à donner
mon maximum pour cette thèse. Merci de tout cœur à Pycksou, Bulle et Briska qui ont toujours
su me rappeler de prendre du temps pour être avec eux et ainsi prendre soin de moi.
Je remercie enfin ma femme, sans qui je ne serai jamais arrivé jusque là. Merci de m’avoir
accompagné tout au long de cette thèse et de m’avoir toujours soutenu et motivé. J’ai passé trois
sublimes années grâce à toi.

3
TABLE DES MATIÈRES

1 Introduction 17
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.1 Les mécanismes de tenségrité . . . . . . . . . . . . . . . . . . . . . . 18
1.2.2 La bio-inspiration en robotique . . . . . . . . . . . . . . . . . . . . . . 22
1.2.3 Robots à câbles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.4 Commande des robots . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3 Projet de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.1 Travaux précédents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2 Modélisation 37
2.1 Présentation du manipulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.1 Un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.2 Empilement de modules . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.3 Actionnement du manipulateur . . . . . . . . . . . . . . . . . . . . . . 40
2.2 Modèle géométrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.1 Géométrie d’un module . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.2 Espace articulaire, espace opérationnel et espace des moteurs . . . . . . 43
2.2.3 Espace articulaire vers espace opérationnel . . . . . . . . . . . . . . . 44
2.2.4 Espace articulaire vers espace des moteurs . . . . . . . . . . . . . . . 45
2.2.5 De l’espace des moteurs vers l’espace articulaire . . . . . . . . . . . . 49
2.3 Modèle dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.3.1 Équations de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.3.2 Forces généralisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.3 Énergie cinétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.3.4 Énergie potentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.3.5 Matrice de raideur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.6 Modélisation des frottements . . . . . . . . . . . . . . . . . . . . . . . 59

5
TABLE DES MATIÈRES

2.3.7 Modélisation des câbles élastiques . . . . . . . . . . . . . . . . . . . . 60


2.3.8 Extension pour des modules de tailles différentes . . . . . . . . . . . . 62
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3 Analyse d’un manipulateur entièrement actionné 65


3.1 Étude de l’impact des poulies sur le modèle dynamique . . . . . . . . . . . . . 65
3.2 Actionnements et répartition des forces . . . . . . . . . . . . . . . . . . . . . 67
3.2.1 Actionnement avec 2N moteurs . . . . . . . . . . . . . . . . . . . . . 68
3.2.2 Actionnement avec N + 1 moteurs . . . . . . . . . . . . . . . . . . . . 72
3.3 Espace de travail statique du manipulateur . . . . . . . . . . . . . . . . . . . . 75
3.3.1 Détection des collisions . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.3.2 Exploration de l’espace articulaire . . . . . . . . . . . . . . . . . . . . 78
3.4 Analyse de l’espace de travail statique . . . . . . . . . . . . . . . . . . . . . . 80
3.4.1 Influence des ressorts et de la gravité . . . . . . . . . . . . . . . . . . 81
3.4.2 Choix des ressorts avec le modèle statique . . . . . . . . . . . . . . . . 81
3.4.3 Comparaison des actionnements complets . . . . . . . . . . . . . . . . 84
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4 Identification des paramètres d’un prototype à 3 modules et 4 moteurs 87


4.1 Description du prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.2 Évaluation de α . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2.1 Évaluation de α depuis θ : α̂ . . . . . . . . . . . . . . . . . . . . . . . 90
4.2.2 Mesure de α par traitement d’image : αIP . . . . . . . . . . . . . . . . 92
4.3 Les problèmes amenant à l’identification . . . . . . . . . . . . . . . . . . . . . 93
4.4 Modèle d’identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.1 Modèle complet d’identification . . . . . . . . . . . . . . . . . . . . . 95
4.4.2 Méthode d’identification . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.3 Filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.5 Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.5.1 Trajectoire réalisée pour l’identification . . . . . . . . . . . . . . . . . 97
4.5.2 Identification des frottements secs et frottements visqueux . . . . . . . 97
4.5.3 Identification de l’élasticité des câbles . . . . . . . . . . . . . . . . . . 99
4.5.4 Identification d’un modèle de câble non linéaire . . . . . . . . . . . . . 101
4.6 Utilisation des paramètres identifiés . . . . . . . . . . . . . . . . . . . . . . . 105
4.6.1 Reconstruction de α̂ basée sur les modèles élastiques de câbles . . . . . 105

6
TABLE DES MATIÈRES

4.6.2 Reproduction en simulation . . . . . . . . . . . . . . . . . . . . . . . 106


4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

5 Commande en actionnement complet 111


5.1 Commande articulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.2 Commande dans l’espace des moteurs . . . . . . . . . . . . . . . . . . . . . . 118
5.3 Commande opérationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

6 Génération de mouvements 131


6.1 Minimisation des forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.1.1 Trajectoire optimale avec le modèle statique . . . . . . . . . . . . . . . 133
6.1.2 Trajectoire optimale avec le modèle dynamique . . . . . . . . . . . . . 139
6.2 Mouvements explosifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

7 Ouverture : Manipulateur sous-actionné 149


7.1 Exploration de l’espace des forces pour les cas de sous-actionnement . . . . . . 150
7.2 Analyse de l’impact du nombre de modules . . . . . . . . . . . . . . . . . . . 153
7.2.1 Comparaison du nombre de modules . . . . . . . . . . . . . . . . . . . 153
7.2.2 Espace de travail avec des obstacles . . . . . . . . . . . . . . . . . . . 158
7.2.3 Forme en S à l’équilibre au repos . . . . . . . . . . . . . . . . . . . . 162
7.3 Capture d’un mouvement de cou sur une vidéo . . . . . . . . . . . . . . . . . 164
7.3.1 Extraction du cou dans la vidéo . . . . . . . . . . . . . . . . . . . . . 164
7.3.2 Positionnement des modules . . . . . . . . . . . . . . . . . . . . . . . 168
7.3.3 Conception du manipulateur pour la capture du mouvement . . . . . . 169
7.4 Commande sous-actionnée dans l’espace des moteurs . . . . . . . . . . . . . . 170
7.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

8 Conclusion 177

Bibliographie 183

Liste des publications 193

A Dérivées des coordonnées cartésiennes 195

7
TABLE DES MATIÈRES

B Longueurs des câbles en prenant en compte les poulies 200


B.1 Longueurs des câbles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
B.2 Dérivées premières des longueurs de câbles . . . . . . . . . . . . . . . . . . . 206
B.3 Dérivées secondes des longueurs des câbles . . . . . . . . . . . . . . . . . . . 207

C Calculs pour le modèle dynamique 209


C.1 Dérivées de φ et ψ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
C.2 Matrices Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
C.3 Énergie cinétique en fonction du paramétrage local . . . . . . . . . . . . . . . 210
C.4 Matrice de raideur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
C.5 Calcul des forces de Coriolis . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
C.6 Ajout d’une tête dans le modèle dynamique . . . . . . . . . . . . . . . . . . . 221
C.6.1 Matrice d’inertie de la tête . . . . . . . . . . . . . . . . . . . . . . . . 221
C.6.2 Énergie potentielle de la tête . . . . . . . . . . . . . . . . . . . . . . . 222
C.6.3 Forces de Coriolis de la tête . . . . . . . . . . . . . . . . . . . . . . . 222

8
TABLE DES FIGURES

1.1 "Free Ride Home", une structure de tenségrité artistique de Kenneth Snelson,
1974 [SD09] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2 Une configuration de tenségrité (à gauche) et un système de tenségrité (à droite)
[SD09] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Reconfiguration d’un système de tenségrité pour naviguer entre des obstacles
[AS06] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4 Le bras humain vu comme un système de tenségrité, dans [SD09] . . . . . . . 21
1.5 Le robot inspiré des tentacules de pieuvres présenté dans [McM+06]. Celui-ci
peut agripper efficacement les balles en s’enroulant autour. . . . . . . . . . . . 23
1.6 Le robot serpent présenté dans [Raf+18] . . . . . . . . . . . . . . . . . . . . . 24
1.7 Le robot Poppy présenté dans [LRO13] . . . . . . . . . . . . . . . . . . . . . 24
1.8 Le robot poisson présenté dans [Shi+20] . . . . . . . . . . . . . . . . . . . . . 25
1.9 Le robot inspiré de la trompe de l’éléphant présenté dans [HW00]. . . . . . . . 26
1.10 Le robot parallèle à câble ACROBOT, situé à l’IRT Jules Vernes de Nantes
[Zak+19]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.11 Asservissement visuel avec la caméra montée sur le robot (a) et la caméra qui
observe le robot (b), dans [CHC16]. . . . . . . . . . . . . . . . . . . . . . . . 30
1.12 Description du module choisi, dans [Let17] . . . . . . . . . . . . . . . . . . . 33
1.13 Empilement de module en équilibre en forme de S, dans [Let17] . . . . . . . . 34

2.1 Le mécanisme de tenségrité en X utilisé. . . . . . . . . . . . . . . . . . . . . . 38


2.2 Empilement des modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3 A gauche : passage du câble par le côté afin de pouvoir contrôler l’orientation
du module. A droite : passage du câble en strut-routed le long d’une barre dia-
gonale afin de passer le câble sur les modules du dessus en minimisant l’impact
sur ce module-ci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4 Les principales grandeurs propres au module i. . . . . . . . . . . . . . . . . . 43
2.5 Les différents passages de câbles étudiés sans considération des poulies. . . . . 47
2.6 Les différents passages de câbles étudiés. . . . . . . . . . . . . . . . . . . . . 48

9
TABLE DES FIGURES

2.7 Valeurs prises par les éléments de la matrice Z(α) en fonction du câblage (à
gauche avec poulies et à droite sans poulies). . . . . . . . . . . . . . . . . . . 53
2.8 Fonction arc-tangente utilisée pour modéliser les frottements. . . . . . . . . . . 60

3.1 Longueur variable des câbles en fonction de α pour les cinq passages de câble. 66
3.2 Câblage sur N = 3 modules d’un actionnement complet avec N f = 6 moteurs. . 69
3.3 Câblage sur N = 3 modules d’un actionnement complet avec N f = 4 moteurs. . 73
3.4 Les polygones utilisés pour la détection des collisions. . . . . . . . . . . . . . 77
3.5 Espace de travail statique pour l’actionnement à N f = 2N moteurs. . . . . . . . 80
3.6 Flexions principales du cou de l’oiseau représentées sur le manipulateur. . . . . 80
3.7 Espace de travail pour l’actionnement à N f = 2N moteurs (à gauche) et l’action-
nement à N f = N + 1 moteurs (à droite). La couleur verte indique qu’il existe
une solution telle que la somme des forces utilisées pour obtenir cette position
est inférieure à 50N, la couleur bleue que cette somme est inférieure à 100N, et
la couleur rouge que cette somme est supérieure à 100N. . . . . . . . . . . . . 85

4.1 A gauche : photo du prototype. A droite : les rangées de poulies utilisées pour
passer les câbles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.2 Boucle de commande du prototype. . . . . . . . . . . . . . . . . . . . . . . . 90
4.3 Câblage du prototype à N = 3 modules et N f = 4 moteurs. . . . . . . . . . . . 91
4.4 Les marqueurs colorés utilisés pour calculer αIP à partir de la vidéo. . . . . . . 93
4.5 Forces appliquées sur un module en expérience (courbes bleues et rouges), en
comparaison des forces estimées par le modèle dynamique (courbes jaunes et
violettes). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.6 A gauche : forces appliquées en boucle ouverte sur le module, les deux forces
sont identiques ce qui implique que le module ne bouge pas. A droite : estima-
tions α̂ obtenues à partir des moteurs à gauche et à droite. . . . . . . . . . . . . 94
4.7 Configurations extrêmes obtenues pendant la trajectoire d’identification. . . . . 98
4.8 Reconstruction de Z(α)f avec le modèle dynamique, en incluant les frottements
ou non, et les données expérimentales. Les couples reconstruits avec le modèle
de frottement sont clairement plus proches des données expérimentales. Les
frottements visqueux ne modifient pas beaucoup la courbe en comparaison avec
la prise en compte des frottements secs seulement, les courbes noires et vertes
étant presque superposées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.9 Tension dans les câbles, calculée par les forces et par les modèles élastiques. . . 103

10
TABLE DES FIGURES

4.10 Erreur de reconstruction de la tension dans les câbles, en fonction de la tension


calculée par les forces appliquées. . . . . . . . . . . . . . . . . . . . . . . . . 103
4.11 Reconstruction des tensions des câbles à partir des forces et des raideurs des
câbles (raideur variable). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.12 À gauche : reconstruction de α en utilisant l’équation (4.1). À droite : recons-
truction de α en utilisant l’équation (4.3). Les courbes vertes (respectivement
bleues et rouges) correspondent au modèle de câble élastique (respectivement
aux modèles de câble à raideur constante et à raideur variable). Les courbes
noires montrent αIP mesuré par traitement d’image. . . . . . . . . . . . . . . . 107
4.13 Comparaison des forces appliquées en expérience et en simulation. . . . . . . . 108

5.1 Boucle simplifiée de la commande du prototype. Le bloc de commande est dé-


taillé plus loin en fonction de la commande employée. . . . . . . . . . . . . . . 111
5.2 Boucle de commande articulaire. . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.3 Les principales configurations de la trajectoire des tests de commande à 0sec,
4sec, 7sec et 10sec, de gauche à droite. . . . . . . . . . . . . . . . . . . . . . . 114
5.4 Orientations des modules pendant le test de la première commande (frottements
et élasticité des câbles négligés). . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.5 Orientations des modules durant le test de la seconde commande (les frotte-
ments sont pris en compte mais les câbles sont supposés rigides). . . . . . . . 115
5.6 Orientations des modules durant le test de la troisième commande (avec les
frottements et le modèle élastique des câbles). . . . . . . . . . . . . . . . . . . 116
5.7 Forces appliquées pendant les tests des commandes 1, 2 et 3 (de gauche à droite). 116
5.8 Erreur eα entre α̂ (calculé avec la pseudo-inverse) et αIP (obtenu par la vidéo)
durant les tests des commandes 1, 2 et 3 (de gauche à droite). . . . . . . . . . 117
5.9 Erreur e entre α̂ (calculé avec la pseudo-inverse) et la trajectoire désirée α d
durant les tests des commandes 1, 2 and 3 (de gauche à droite). . . . . . . . . . 117
5.10 Boucle de commande dans l’espace des moteurs pour un manipulateur entière-
ment actionné. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.11 Forces appliquées avec la commande articulaire (à gauche) et la commande des
moteurs (à droite) pour une même trajectoire articulaire. . . . . . . . . . . . . 122
5.12 Boucle de commande dans l’espace opérationnel. . . . . . . . . . . . . . . . . 122

11
TABLE DES FIGURES

5.13 A gauche : zones (en rouge) où le conditionnement de J est supérieur à 100,


et trajectoire opérationnelle suivie pour tester la commande. A droite : espace
de travail du manipulateur avec les ressorts asymétriques et sa configuration
d’équilibre au repos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.14 Résultats commande articulaire pour suivre xy. . . . . . . . . . . . . . . . . . 125
5.15 Résultats commande articulaire pour suivre xyγ. . . . . . . . . . . . . . . . . 126
5.16 Résultats commande xy. L’erreur moyenne sur la position est de 3.0mm. . . . . 127
5.17 Résultats commande xyγ. L’erreur moyenne sur la position est de 2.5mm et
l’erreur moyenne sur γ est de 1.07deg. . . . . . . . . . . . . . . . . . . . . . . 129

6.1 Positions du manipulateur dans l’espace de travail pour les configurations αs et


αe . (xs , ys ) est la position correspond à αs et (xe , ye ) est la position correspond
à αe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.2 Chemin direct et les forces associées (respectivement à gauche et à droite). . . . 135
6.3 Chemin optimal obtenue avec un pas d’échantillonnage de 10deg et l’heuris-
tique h(α). À gauche, les configurations du chemin trouvé et à droite, les forces
correspondantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.4 Trajectoire optimisée obtenue avec un pas d’échantillonage de 3deg et l’heu-
ristique 2h(α). À gauche, les configurations du chemin trouvé et à droite, les
forces correspondantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.5 Les deux étapes d’élaboration de la trajectoire à partir du chemin statique dis-
crétisé. À gauche, le chemin statique discrétisé. À droite, la trajectoire finale
(courbes de Bézier). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6 Trajectoire complète (en position, vitesse et accélération), et les forces déduites
depuis le modèle statique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.7 Chemins cartésiens des trajectoires obtenues avec les différentes optimisations. 140
6.8 Forces employées pour effectuer les trajectoires optimisées. Les trajectoires di-
rectes sont sur la première ligne, les trajectoires optimisées avec le modèle sta-
tique sont sur la seconde ligne et les trajectoires optimisées avec le modèle dy-
namique sont sur la troisième ligne. A titre de comparaison, les forces obtenues
en simulation pour jouer les trajectoires optimisées avec le modèle dynamique
sont affichées sur la quatrième et dernière ligne. La première colonne montre
les trajectoires en 6 secondes et la seconde colonne celles en 30 secondes. . . . 142

12
TABLE DES FIGURES

6.9 Position du manipulateur dans l’espace de travail pour les configurations αs et


αe pour la seconde trajectoire à optimiser. (xs , ys ) est la position correspond à
αs et (xe , ye ) est la position correspond à αe . Les deux points se situent dans la
zone verte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.10 Configurations articulaires du mouvement explosif obtenues par optimisation. . 145
6.11 Configurations articulaires du mouvement explosif à l’instant où le cou est le
plus reculé et à l’instant où la vitesse maximale du bec selon l’axe x est atteinte. 145
6.12 Forces appliquées en simulation pour jouer la trajectoire explosive et vitesse du
bec selon l’axe x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.13 Suivi de la trajectoire explosive avec le prototype. . . . . . . . . . . . . . . . . 146
6.14 Forces appliquées sur le prototype pour jouer la trajectoire explosive et vitesse
du bec selon l’axe x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

7.1 Les fonctions fsi entre [− π2 , π2 ] et [− π4 , π4 ] pour un jeu de force f choisi aléa-
toirement (chaque force étant comprise entre fmin et fmax . Les dimensions des
dix modules sont b = 5cm, L = 10cm et tous les ressorts ont une raideur de
3000N.m−1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.2 Espace de travail d’un manipulateur constitué de N = 9 modules et actionné par
N f = 4 câbles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.3 Configurations droites et penchées des manipulateurs (première version) avec
3, 6 et 9 modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.4 Configurations droites et penchées des manipulateurs (seconde version) avec 3,
6 et 9 modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.5 Raideurs des ressorts des manipulateurs avec 3, 6 et 9 modules (première ver-
sion en bleu et seconde en rouge). . . . . . . . . . . . . . . . . . . . . . . . . 156
7.6 Espaces de travail des manipulateurs avec 3, 6 et 9 modules (première version). 157
7.7 Espaces de travail des manipulateurs avec 3, 6 et 9 modules (seconde version). . 157
7.8 Appui d’un manipulateur sur un obstacle. . . . . . . . . . . . . . . . . . . . . 160
7.9 Espace de travail statique avec appui sur obstacle (manipulateurs avec le même
rapport Lb ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.10 Espace de travail statique avec appui sur obstacle (manipulateurs avec la même
largeur de module). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.11 Configuration d’équilibre au repos et raideurs des ressorts du manipulateur
constitué de N = 9 modules avec une configuration au repos en forme de S. . . 163

13
TABLE DES FIGURES

7.12 Espaces de travail statiques des manipulateurs constitués de N = 9 modules


avec une configuration d’équilibre droite (à gauche) et en forme de S (à droite). 163
7.13 Première image de la vidéo : le cou de l’oiseau dans la configuration supposée
de repos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.14 Suppression de l’arrière plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.15 Suppression de la tête. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.16 La dérivée de l’image (à gauche) et le résultat après la suppression du corps de
l’oiseau (à droite). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.17 Résultat final de l’extraction du cou. Les pixels blancs correspondent au cou de
l’oiseau, et les pixels rouges correspondent à la ligne au milieu du cou. . . . . . 167
7.18 Modules placés sur la ligne médiane du cou. A gauche : la première méthode
où le milieu des barres supérieures est sur la ligne médiane du cou. A droite : la
deuxième méthode où l’on prend en compte l’angle de la barre supérieure par
rapport à la tangente de la ligne médiane du cou, avec un coefficient λ = 50. . . 169
7.19 Manipulateur dans sa configuration à l’équilibre au repos et les raideurs des
ressorts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.20 Boucle de commande dans l’espace des moteurs pour un manipulateur sous-
actionné. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7.21 Résultats de la simulation de commande des moteurs sous-actionnée. . . . . . . 174
7.22 Trajectoire articulaire de la simulation de commande des moteurs sous-actionnée.175
7.23 Position et orientation de la barre du haut du manipulateur en simulation avec
la commande des moteurs sous-actionnée. . . . . . . . . . . . . . . . . . . . . 175

B.1 Actionnement d’un module (premier cas) : longueurs et angles utiles au calcul. 201
B.2 Actionnement d’un module (troisème cas) : longueurs et angles utiles au calcul. 203
B.3 Actionnement d’un module (quatrième cas) : longueurs et angles utiles au calcul. 205

14
L ISTE DES TABLEAUX

3.1 Moyennes des différences des coefficients de Z avec et sans poulies. . . . . . . 67

4.1 Caractéristiques des moto-réducteurs. . . . . . . . . . . . . . . . . . . . . . . 89


4.2 Paramètres de frottements identifiés. Les paramètres de frottements visqueux
sont mal identifiés, comme l’indique l’écart-type relatif. . . . . . . . . . . . . . 99
4.3 Paramètres de frottements secs et d’élasticité des câbles identifiés. . . . . . . . 102
4.4 Paramètres identifiés avec le nouveau modèle de câble (avec la raideur qui varie
en fonction de la tension). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5.1 Erreurs moyennes en simulation en fonction des commandes des moteurs. . . . 120
5.2 Erreurs moyennes en expérience pour les commandes articulaires et des moteurs. 121

6.1 Forces moyennes appliquées en simulation. . . . . . . . . . . . . . . . . . . . 141


6.2 Forces moyennes appliquées en expérience. . . . . . . . . . . . . . . . . . . . 141
6.3 Forces moyennes appliquées en expérience pour les trajectoires reliant deux
configurations dans la zone verte. . . . . . . . . . . . . . . . . . . . . . . . . . 143

7.1 Dimensions des barres pour les différents manipulateurs considérés. . . . . . . 154

15
C HAPITRE 1

I NTRODUCTION

1.1 Contexte
La bio-inspiration est une piste intéressante pour répondre aux défis récents en robotique.
En effet, les performances des robots sont limitées par rapport aux organismes vivants, no-
tamment en raison de leurs structures mécaniques. S’inspirer de ces organismes vivants peut
donc permettre d’améliorer les performances des robots, et c’est dans ce but que le projet AVI-
NECK a débuté en janvier 2017. Ce projet a été financé par l’Agence Nationale de la Recherche
(ANR-16-CE33-0025). L’idée majeure de ce projet est de mieux comprendre le comportement
fonctionnel du cou des oiseaux et de s’en inspirer pour créer un bras robotique innovant. Pour
cela, deux groupes de recherche de domaines bien différents ont travaillé ensemble. Le pre-
mier est un groupe de roboticiens de l’équipe Robotique et Vivant, du Laboratoire des Sciences
Numériques de Nantes (LS2N). Le second est un groupe de biologistes du Muséum National
d’Histoire Naturelle (MNHN) spécialisé dans l’ornithologie.
L’inspiration du cou de l’oiseau pour un bras robotique peut paraître surprenant au premier
abord. Cependant le cou de l’oiseau joue le rôle du bras chez l’humain. En effet, tout comme
l’humain, l’oiseau est bipède mais ses membres supérieurs sont ses ailes. Il ne peut donc pas s’en
servir pour manipuler des objets comme nous le faisons avec nos bras et nos mains. L’oiseau
se sert donc de son bec pour manipuler des objets (par exemple lors de la fabrication d’un nid),
mais également pour se nourrir, se nettoyer ou encore pour creuser dans des troncs d’arbres
pour certaines espèces telles que le pic. Le bec est donc l’équivalent fonctionnel de notre main,
et le cou de l’oiseau peut donc être vu comme un équivalent du bras humain. Il devient alors
une source d’inspiration intéressante pour la conception de bras robotique, avec ses propriétés
fonctionnelles. Il permet par exemple à l’oiseau de tourner sa tête à plus de 270 degrés [Kri+17],
ou de creuser des troncs d’arbres en projetant le bec avec une grande force et une grande vitesse
[YP11].
La structure du cou a donc inspiré la structure du manipulateur étudié. Comme le cou de
l’oiseau est constitué de multiples vertèbres, le manipulateur est formé par un empilement de

17
Introduction

modules, équivalents des vertèbres.


Chacun de ces modules est un mécanisme de tenségrité. Ces mécanismes, formés d’éléments
solides en compression et d’éléments déformables en tension, sont adaptés à la bio-inspiration.
Dans notre cas, les éléments solides peuvent être comparés aux os, tandis que les éléments
déformables (qui sont des câbles et des ressorts) peuvent être comparés aux muscles et aux
tendons.
Les objectifs de cette thèse sont d’analyser une famille de bras robots manipulateurs créée
dans ce projet AVINECK et d’établir et étudier leur commande. Plusieurs commandes ont ainsi
été développées et testées sur un premier prototype.
Cette thèse a été encadrée par Philippe Wenger et Christine Chevallereau, de l’équipe Ro-
botique et Vivant du LS2N. Elle a été financée par un Contrat Doctoral Spécifique Normalien
(CDSN) délivré par l’École Normale Supérieure de Rennes.

1.2 État de l’art


Nous débutons avec un état de l’art sur différents sujets qui seront abordés dans cette thèse.
Nous introduisons dans un premier temps les systèmes de tenségrité, puis nous abordons la bio-
inspiration en robotique. Nous nous intéressons ensuite aux robots à câbles et à leurs propriétés.
Enfin, nous parlerons des commandes existantes en robotique, en particulier pour les robots à
câbles et les systèmes de tenségrité.

1.2.1 Les mécanismes de tenségrité


Les systèmes de tenségrité sont composées d’éléments en compression et d’éléments en
tension, qui sont disposés pour se stabiliser. Les éléments en compression (appelés barres ou
entretoises) sont reliés par des éléments en tension (câbles ou ressorts). On peut comparer les
systèmes de tenségrité avec les os et les tendons des animaux et des humains, qui permettent un
contrôle aisé des mouvements [SD09].
Les premiers systèmes de tenségrité réalisés par la main de l’homme étaient des structures
artistiques, dans les années 50. Les structures de tenségrité artistiques les plus célèbres sont
celles de Kenneth Snelson [Sne12]. L’une d’entre elles est représentée sur la Figure (1.1).
Les systèmes de tenségrité sont apparues plus récemment dans les domaines de l’ingénie-
rie et des sciences, probablement en raison de la complexité de leur étude, de la nécessité de
disposer d’ordinateurs puissants pour les calculs associés et de leur difficulté d’actionnement.

18
Introduction

F IGURE 1.1 – "Free Ride Home", une structure de tenségrité artistique de Kenneth Snelson,
1974 [SD09]

Le terme tenségrité a été créé par Buckminster Fuller en 1962 pour décrire une structure réa-
lisée par l’artiste Kenneth Snelson, qui était l’un de ses étudiants. Il s’agit d’une combinaison
des mots tension et intégrité. Nous allons donner des définitions plus précises pour l’étude ma-
thématique détaillée dans [SD09]. Nous appelons les parties en compression des corps rigides,
et celles en tension des cordes. La configuration d’un ensemble de corps rigides est l’ensemble
des positions et orientations de tous les corps rigides. Cette définition de la configuration, don-
née dans [SD09], est celle que nous utilisons dans ce chapitre, mais n’est pas générale en ro-
botique. Les cordes peuvent être liées aux corps rigides, ou entre elles. La connectivité est
l’ensemble des connexions entre les corps rigides et les cordes, tandis que la connectivité des
cordes est l’ensemble des connexions réalisées via les cordes.
Nous devons distinguer les forces dues à la connectivité des cordes, que nous appelons les
forces internes, et les forces qui ne proviennent pas des cordes de la structure. Nous disons
qu’une configuration donnée de corps rigides est une configuration de tenségrité si et seulement
s’il existe une connectivité de cordes capable de stabiliser la configuration donnée en l’absence
de forces externes. Nous pouvons voir une configuration de tenségrité sur la Figure (1.2).
Nous pouvons maintenant donner une définition d’un système de tenségrité : tout ensemble
donné de cordes connectées à une configuration de tenségrité de corps rigides est un système de
tenségrité. La Figure (1.2) montre également un système de tenségrité. Dans cette définition, il
n’est pas dit que la connectivité des cordes stabilise le système, donc un système de tenségrité
peut être stable ou instable. Nous disons qu’un système de tenségrité (spécifié par une configu-
ration de tenségrité donnée, une connectivité de cordes donnée, et un ensemble donné de forces

19
Introduction

F IGURE 1.2 – Une configuration de tenségrité (à gauche) et un système de tenségrité (à droite)


[SD09]

externes) est stable si le système revient à la configuration originale donnée après l’application
de perturbations arbitrairement petites n’importe où dans la configuration.
Les systèmes de tenségrité sont divisés en classes, en fonction du nombre de corps rigides
en contact [Ske+01]. Un système de tenségrité sans aucun contact entre ses corps rigides est
un système de tenségrité de classe 1. Un système de tenségrité de classe k est un système de
tenségrité avec k corps rigides en contact.
Les systèmes de tenségrité présentent de nombreux avantages par rapport aux systèmes
structurels classiques. Le premier est que la flexion du matériau n’est pas présente dans les
systèmes de tenségrité, car les liaisons entre les corps rigides et les cordes ne peuvent pas trans-
mettre de couples, donc tous les éléments sont chargés axialement [SD09]. Une deuxième raison
est que les systèmes de tenségrité sont malléables et peuvent changer leur forme sous l’action
de forces extérieures [AS06] [VCB19], ce que les robots conventionnels ne peuvent pas faire.
Par exemple, ils peuvent changer leur forme globale pour passer des obstacles, comme on peut
le voir sur la Figure (1.3). De la même manière, ils sont déployables, c’est-à-dire qu’ils sont
capables de changer de taille de manière significative [VSS16][TP02]. Un troisième élément
est le fait qu’en général, la géométrie du système est indépendante des choix de matériaux et
de l’ampleur des charges externes. Il n’y a donc aucune contrainte sur le choix des matériaux,
quelle que soit la géométrie souhaitée. Un autre avantage est leur redondance, qui les rend ro-
bustes. En cas de défaillance d’un élément, la structure est en mesure d’accomplir ce qu’elle est
censée faire. Dans [Pau06], un système de tenségrité à 24 degrés de liberté peut accomplir ses
tâches même si une ou deux de ces entrées de contrôle sont éliminées. Là encore, ce n’est pas
le cas des robots conventionnels. Enfin, la rigidité du système peut potentiellement être contrô-
lée, ce qui permet aux systèmes de tenségrité d’emmagasiner de l’énergie à l’aide des ressorts
et de l’utiliser ultérieurement [Kom12], ou encore de commander cette raideur pour gérer les
obstacles de la manière désirée [Zap+20]. Cependant, l’inconvénient majeur des systèmes de

20
Introduction

tenségrité est la complexité de leur analyse.

F IGURE 1.3 – Reconfiguration d’un système de tenségrité pour naviguer entre des obstacles
[AS06]

La tenségrité est présente dans des systèmes biologiques tels que les cellules et les systèmes
musculo-squelettiques [Lev06]. Par exemple, le bras humain comme représenté sur la Figure (
1.4) est un système de tenségrité où les éléments rigides sont les os et les éléments en tension
sont les tendons et les muscles.

F IGURE 1.4 – Le bras humain vu comme un système de tenségrité, dans [SD09]

Les systèmes de tenségrité sont donc bien adaptés pour modéliser des systèmes biologiques
présentant une source d’inspiration intéressante pour le roboticien.

21
Introduction

1.2.2 La bio-inspiration en robotique


L’humain s’inspire depuis longtemps de la nature pour créer, et ce dans divers domaines
[LVP13]. Par exemple, dans le domaine de l’aéronautique, l’ingénieur George Cayley s’est ins-
piré des samares d’érables, ces petites graines entourées de feuilles qui volent en tournant lors-
qu’elles tombent, afin d’élaborer les bases de l’hélicoptère [Ack11]. Le phénomène bien connu
de la sélection naturelle permet à la nature de répondre à de nombreux problèmes similaires
à ceux que l’espèce humaine peut rencontrer de nos jours. Les résultats de cette optimisation
naturelle sont donc une source d’inspiration intéressante, puisqu’ils sont les meilleurs éléments
que les mutations naturelles ont produit. Si l’on reprend l’exemple des samares d’érables, les
feuilles autour des graines leur permettent de se disperser plus loin en volant, ce qui a inspiré
un moyen de locomotion pour l’homme.
Nous ne confondrons pas la bio-inspiration avec le bio-mimétisme. Alors que ce dernier
cherche principalement à copier le plus fidèlement la nature, la bio-inspiration consiste elle à
s’inspirer de systèmes ou procédés présents dans la nature qui semblent appropriés pour ré-
pondre à un problème donné, et à les adapter à la situation.
La robotique fait partie des domaines qui s’inspirent des systèmes biologiques [LS11]. Nous
allons ici présenter quelques exemples de robots bio-inspirés.
Les robots mous à actionneurs pneumatiques
Les robots mous sont une catégorie de robots construits en matériaux ou structures souples,
tels que le plastique, le silicone ou le caoutchouc. Ces robots mous sont déformables, ce qui leur
permet de bien s’adapter à leur environnement pour épouser des obstacles ou attraper des objets
par exemple. Ils peuvent également présenter un intérêt énergétique en stockant de l’énergie,
avec un matériau à mémoire de forme ou contenant un gaz. Ils ont par contre pour inconvénient
d’être plus compliqués à modéliser que les robots rigides classiques. Leur actionnement peut
se faire avec des actionneurs pneumatiques, des élastomères diélectriques ou des hydrogels en
autres.
Les systèmes biologiques présentent souvent des éléments mous, tel que la trompe de l’élé-
phant ou les tentacules de la pieuvre. Ces composants biologiques sont intéressants car ils sont
hautement déformables.
Un robot inspiré des tentacules de pieuvres est présenté dans [McM+06]. Ce robot possède
une infinité de degrés de liberté, ce qui le rend hautement déformable. Les moteurs employés
sont des actionneurs pneumatiques. Ce robot est capable d’empiler des plots ou d’attraper des
balles, comme on peut le voir sur la Figure 1.5. Il peut également opérer sous l’eau, ce qui
montre son efficacité à agripper les objets.

22
Introduction

F IGURE 1.5 – Le robot inspiré des tentacules de pieuvres présenté dans [McM+06]. Celui-ci
peut agripper efficacement les balles en s’enroulant autour.

Un autre exemple de robot mou bio-inspiré est celui du robot serpent présenté dans [Raf+18].
L’inspiration vient ici plus précisément de la caractéristique anisotrope de frottement de la peau
du serpent. Une technique japonaise de coupage de papier, le kirigami, est employé afin de
concevoir une peau flexible et possédant des propriétés de frottements anisotropes. Cette peau
est enroulée autour d’un actionneur pneumatique afin d’obtenir un robot qui se déplace grâce
aux frottements de la peau sur le sol. Le robot est montré en Figure 1.6.
Le manipulateur étudié dans cette thèse est un empilement de mécanismes de tenségrité et
n’est donc pas considéré comme un robot mou, bien qu’il possède des ressorts. Un état de l’art
plus complet sur les robots mous est effectué dans [Tri+08].
Les robots humanoïdes
Comme son nom l’indique, un robot humanoïde est un robot qui est fait pour ressembler à
un humain. Initialement, un des buts de la robotique humanoïde était de fabriquer des prothèses
améliorées pour les êtres humains. De nos jours, des robots complets sont étudiés et fabriqués.
Étant donné que ces robots sont semblables aux humains, ils peuvent potentiellement faire tout
ce que fait un humain, ce qui peut être particulièrement intéressant pour effectuer des tâches
dans des milieux dangereux avec un robot à la place d’un humain.
On peut citer comme exemple le robot Poppy [LRO13], qui est un robot dédié à la recherche
dans ce domaine et dont les éléments peuvent être imprimés par impression 3D. La Figure 1.7
montre un robot Poppy. Il est utilisé notamment pour étudier la marche bipède, l’apprentissage
par réseaux de neurones et les interactions humain-robot.
Les systèmes de tenségrité

23
Introduction

F IGURE 1.6 – Le robot serpent présenté dans [Raf+18]

F IGURE 1.7 – Le robot Poppy présenté dans [LRO13]

Le robot poisson présenté dans [Shi+20] est un système de tenségrité de classe 2 dont les
éléments rigides représentent les os du poisson, tandis que les câbles représentent ses muscles.
Le robot est montré en Figure 1.8

24
Introduction

F IGURE 1.8 – Le robot poisson présenté dans [Shi+20]

Ce robot est inspiré de la truite arc-en-ciel et possède des dimensions similaires : il mesure
400mm et pèse 102g. Les éléments rigides sont en contact par des joints pivots. La raideur du
corps du poisson est un paramètre important pour la nage. Ainsi, des câbles sont prévus sur le
robot dans le but de régler cette raideur. Ce robot peut ainsi reproduire les performances de la
truite arc-en-ciel en terme de raideur, vitesse de nage et force de poussée.
Comme pour ce robot, les systèmes de tenségrité sont souvent actionnés à l’aide de câbles.
Nous allons donc maintenant nous intéresser aux robots à câbles.

1.2.3 Robots à câbles


Nous présentons ici les robots à câbles, dont notre manipulateur fait partie. Les robots à
câbles sont des robots actionnés à l’aide de câbles. Les câbles sont attachés au robot à une
extrémité, et lié à un moteur à l’aide d’un enrouleur à l’autre extrémité. Les câbles étant géné-
ralement légers en comparaison des liens solides, leur utilisation permet d’avoir un robot plus
léger et donc plus économe en énergie tout en pouvant produire de grandes vitesses.
Une caractéristique importante des robots à câbles est que les câbles ne peuvent être utilisés
que pour tirer sur l’effecteur, et non pour pousser. De ce fait, les robots à câbles dont on veut
contrôler les n degrés de liberté nécessitent au moins n + 1 câbles [RGL98] [CM12] [MA11].
Ceci complique l’étude de l’espace de travail du robot et sa commande, car il faut gérer les
redondances et les contraintes de positivités des tensions dans les câbles. En contrepartie, le fait
d’avoir des câbles supplémentaires permet de contrôler des variables supplémentaires, telles
que la raideur du robot.
Les robots à câbles peuvent être séparés en deux catégories. La première regroupe les robots
agencés en série et actionnés par des câbles. Un tel robot est étudié dans [HW00]. Ce robot
est inspiré de la trompe de l’éléphant. Comme on peut le voir sur la Figure (1.9), le robot est
constitué de seize mécanismes disposés en série. Il est actionné à l’aide de câbles, et des ressorts

25
Introduction

sont également disposés entre chaque mécanisme. Plus récemment, un autre robot inspiré de la
trompe de l’éléphant a été étudié dans [Liu+19]. Celui-ci est constitué de neuf mécanismes qui
ne sont actionnés que par un unique moteur à l’aide de mécanismes en ciseaux.

F IGURE 1.9 – Le robot inspiré de la trompe de l’éléphant présenté dans [HW00].

Le manipulateur étudié dans cette thèse fait partie de cette première catégorie, puisque des
modules seront empilés en série et actionnés par des câbles, d’une manière similaire au robot
inspiré de la trompe d’éléphant.
La seconde catégorie, qui représente la plus grande partie des robots à câbles, est constituée
des robots parallèles à câbles [BP12]. Les robots parallèles sont des robots contrôlés à l’aide de
plusieurs bras indépendants, ce qui permet une répartition des efforts et donc potentiellement
une meilleure précision et une résistance plus élevée. Les robots parallèles à câbles sont des
robots parallèles où les bras sont remplacés par des câbles. Contrairement aux robots parallèles
classiques, ils bénéficient d’un grand espace de travail. L’utilisation des câbles en fait des robots
relativement légers. Cependant, la mesure de la position de l’effecteur est plus complexe à cause
des câbles. Une solution pour avoir une bonne précision est d’utiliser des caméras pour connaître
la position de l’effecteur. Un robot commandé à l’aide de caméras est présenté dans [Zak+19].
C’est un robot suspendu, comme on peut le voir sur la Figure (1.10).

1.2.4 Commande des robots


Comme nous allons particulièrement nous intéresser à la commande du manipulateur dans
cette thèse, il convient de faire un point sur les différentes commandes existantes. Nous en
faisons ici une liste non-exhaustive.
Les commandes présentées sont utilisées avec trois catégories d’actionnement :
— la première catégorie est l’actionnement classique avec des moteurs électriques aux ar-
ticulations contrôlées ;
— la seconde catégorie est l’actionnement par des moteurs électriques via des câbles, tel
que notre actionnement. Un avantage indéniable est que les moteurs sont fixes et ne

26
Introduction

F IGURE 1.10 – Le robot parallèle à câble ACROBOT, situé à l’IRT Jules Vernes de Nantes
[Zak+19].

sont pas sur le robot, ce qui allège le poids de ce dernier. L’utilisation des câbles pour
transmettre les forces apporte une flexibilité qui peut être exploitée (pour contrôler la
raideur du robot et ses interactions avec l’environnement par exemple), mais cette même
flexibilité impacte la commande ;
— la troisième et dernière catégorie est l’actionnement par des actionneurs pneumatiques
[Rah+11]. Ces actionneurs fonctionnent avec des gaz comprimés, permettent d’effectuer
des mouvements très dynamiques et rendent le système actionné compliant. Cependant,
les actionneurs pneumatiques présentent des inconvénients : ils complexifient la mo-
délisation précise du système complet, ils peuvent être dangereux à cause des hautes
pressions possibles, et sont très bruyants [For18].

Commande dynamique par couple calculé

La commande dynamique par couple calculé (CTC pour Computed Torque Control en an-
glais) est une commande bien connue basée sur la linéarisation par rétroaction des systèmes
non linéaires. C’est une commande présentant de bons résultats et dont le principe est simple à
comprendre.

27
Introduction

Le système doit être modélisé afin d’obtenir l’équation du mouvement de la forme :

Mθ̈ + g + c = τ (1.1)

où M est la matrice d’inertie du système, g est le vecteur dérivée des énergies potentielles, c
est le vecteur des effets de Coriolis et des forces centrifuges et τ est le vecteur des couples
appliqués.
Pour l’exemple, nous supposons que nous contrôlons les positions des moteurs θ . Soit θd la
trajectoire désirée. Nous notons e(t) = θd (t) − θ (t) l’erreur de suivi.
Un signal de contrôle uc est obtenu avec un retour proportionnel-intégral-dérivée (PID) :
Z t
uc (t) = θ̈d + k p e(t) + kd ė(t) + ki e(t ′ )dt ′ (1.2)
t ′ =0

Les couples à appliquer sont alors donnés par :

τ = Muc (t) + g + c (1.3)

Dans [Pac+06], le CTC est combiné avec de l’asservissement visuel pour commander un
robot parallèle. Il en est de même dans [Dal+11] pour commander un robot parallèle à câble.
Dans cette thèse, nous développerons plusieurs commandes basées sur cette approche.

Commande prédictive

Une commande prédictive (MPC pour Model Predictive Control en anglais) est une com-
mande qui se sert du modèle dynamique du robot pour anticiper ses mouvements futurs [CA13]
[GPM89]. Les contraintes du systèmes peuvent être explicitement prises en compte avec cette
commande. Cette commande cherche à minimiser un coût J sur un horizon de temps T . La mi-
nimisation de J se fait par optimisation. Généralement, le temps est discrétisé et l’horizon T est
décomposé en plusieurs étapes. Pour chaque étape, on optimise les commandes appliquées sur
le système. Les états futurs du système à chaque étape sont estimés à partir de l’état initial du
systèmes (qui est mesuré) et des commandes appliquées grâce au modèle dynamique, comme
si le robot était commandé en boucle ouverte. Une fois les commandes optimales calculées,
on applique la première commande trouvée au robot. Puis on recommence pour le prochain
cycle avec le nouvel état courant du robot comme état initial, ce qui en fait une commande en
boucle fermée. Cette approche a été utilisée pour la commande d’un système de tenségrité dans
[RAP20].

28
Introduction

Une méthode permettant de résoudre ce problème d’optimisation est la Programmation Dy-


namique Différentielle [For18]. La programmation dynamique, introduite par Richard Bellman
dans les années 50, consiste à résoudre un problème en le décomposant en sous-problème que
l’on résout du plus petit au plus grand en stockant les résultats intermédiaires.
C’est sur ce concept que repose la Programmation Dynamique Différentielle (DDP). La
DDP calcule la séquence de commandes qui minimise le coût J sur l’horizon T en calculant
successivement les commandes à chaque étape par rétro-propagation, c’est-à-dire en partant
de l’état final et en revenant à l’état initial. Cette séquence modifiant les états du système, il
faut alors calculer ceux-ci à nouveau, puis répéter ces deux opérations (calcul de la séquence
de commande puis calcul des états du système) jusqu’à la convergence. La DDP ne permet
pas d’intégrer directement les contraintes du système, mais peut les intégrer dans le coût à
minimiser pour les prendre en compte. Un exemple d’utilisation de cette commande pour des
robots humanoïdes avec des actionneurs pneumatiques est présenté dans [For18].

Contrôle de la tension dans les câbles

Nous avons déjà évoqué le fait que les robots à câbles étaient actionnés avec plus de câbles
que le nombre de degrés de liberté. Cette redondance peut alors permettre de contrôler les
tensions dans les câbles qui peuvent être différentes pour effectuer une même tâche. Plusieurs
méthodes sont utilisées dans la littérature afin de calculer la distribution des tensions, telles
que la programmation linéaire, la programmation quadratique, l’optimisation par descente de
gradient ou encore la méthode de Dykstra. Une majorité de ces méthodes sont comparées dans
[Pot14] sur plusieurs caractéristiques comme le temps de calcul ou la couverture de l’espace de
travail.
Le contrôle des tensions des câbles permet de contrôler la raideur du robot. C’est ce qui est
fait avec un robot nettoyeur de fenêtre dans [Pic+20], où les tensions sont optimisées afin de
garantir une raideur selon une direction donnée afin de minimiser les déplacements lorsque le
robot est soumis à des efforts extérieurs.
Le prototype étudié dans cette thèse possède un moteur de plus que de degrés de liberté. De
ce fait, les tensions dans les câbles seront exprimées sous la forme d’un ensemble de dimension
1, ce qui permet un calcul simple de la distribution des tensions dans les câbles. Les commandes
étudiées comprendront une contrainte de tension minimale pour chaque câble afin d’assurer que
tous les câbles restent tendus.

29
Introduction

Commande par asservissement visuel

La mesure de la position du robot est primordiale pour effectuer les mouvements désirés.
L’asservissement visuel [CHC16] consiste à utiliser une caméra permettant de contrôler le robot
en fonction des images perçues. La caméra peut être fixée directement sur le robot, ce qui
donne une perception de l’environnement dépendant de la position du robot, ou fixée dans
l’environnement afin de voir le robot depuis un point fixe. Les deux cas de figures sont montrés
en Figure (1.11), avec un exemple de déplacement de l’image pour chaque cas.

F IGURE 1.11 – Asservissement visuel avec la caméra montée sur le robot (a) et la caméra qui
observe le robot (b), dans [CHC16].

L’asservissement visuel est particulièrement utile pour les robots à câbles car la mesure de
la position de ces derniers peut être complexe à cause de la déformation des câbles. Une mesure
de la position à l’aide de caméra est donc intéressante.
L’asservissement visuel d’un robot parallèle à câble, initialement prévu pour l’aide à la
marche, est utilisé dans [RCM14] afin d’améliorer ses performances en précision pour attraper
et déplacer des objets. Un robot mou est également contrôlé avec de l’asservissement visuel
dans [Zha+17].
La version courante du prototype étudié dans cette thèse n’est pas équipée de vision et
l’asservissement visuel ne pourra pas être testée dans cette première étape de développement
du prototype.

Commande par apprentissage

Depuis l’apparition de l’apprentissage profond, l’intelligence artificielle est utilisée dans de


nombreux domaines, dont la commande de robots. L’apprentissage avec des réseaux de neu-
rones peut sembler tout indiqué pour la commande de robots bio-inspirés puisque l’apprentis-

30
Introduction

sage artificiel est comparable à l’apprentissage naturel : le système effectue un grand nombre
de mouvements différents et se sert des résultats obtenus pour améliorer son contrôle.
L’apprentissage peut notamment être utilisé pour la robotique collaborative avec l’humain
car les tâches demandées au robot sont très variées et évoluent avec le temps. Dans [Liu+18],
l’apprentissage profond est utilisé pour combiner les données mesurées de la position du corps
humain, du mouvement de la main et d’une commande vocale afin d’établir le mouvement
désiré du robot, qui est ensuite exécuté à l’aide d’une interface de contrôle standard.
La commande d’un système de tenségrité se basant sur de l’apprentissage est présentée
dans [RM18]. L’algorithme d’apprentissage permet au robot de découvrir les mouvements des
moteurs qui lui procurent une grande vitesse de déplacement.
L’apprentissage profond semble d’autant plus indiqué pour les robots mous, dont la mo-
délisation et donc la commande est compliquée. Une amélioration de commande par de l’ap-
prentissage profond d’un robot mou actionné avec quatre câbles est présenté dans [Wu+20].
Un modèle y est établi à partir de données expérimentales, puis est utilisé en simulation pour
concevoir la commande par apprentissage.
Cette thèse sera plutôt dédiée à mieux comprendre les propriétés de nos systèmes via leur
modélisation et il ne sera pas fait recours aux techniques d’apprentissage.

Commande avec la méthode des éléments finis

La méthode des éléments finis [Zie+77] est une méthode adaptée pour modéliser les robots
mous car elle permet de calculer numériquement le comportement de systèmes complexes.
L’idée principale est de discrétiser le système en le découpant en morceaux, que l’on appelle
les éléments finis. Les équations aux dérivées partielles à résoudre pour modéliser l’évolution
du système global peuvent être linéarisé au niveau de chaque élément fini. Une matrice est
donc associée à chaque élément fini. Ces matrices sont réunies dans une matrice globale afin de
prendre en compte les contraintes aux frontières du système global.
Une commande pour robots mous se basant sur la méthode des éléments finis est présentée
dans [Dur13]. Un modèle géométrique direct prenant en compte les positions des actionneurs
est calculé avec le modèle des éléments finis, et la commande est effectuée en inversant ce
modèle. Un challenge majeur avec cette commande est le calcul en temps réel du modèle des
éléments finis, qui est assez coûteux.
Nous noterons l’utilisation de SOFA [Fau+12], une plateforme logicielle open-source pour
la modélisation multi-physique, pour la simulation et l’implémentation de cette commande.
Cette plateforme a servi de base pour la conception d’un logiciel pour la modélisation, la simu-

31
Introduction

lation et la commande de robots mous [Coe+17].

1.3 Projet de la thèse


Les travaux de cette thèse s’inscrivent dans le cadre du projet AVINECK qui a débuté en
janvier 2017. Ainsi, des travaux ont été effectués en amont de la thèse, amenant en particulier
au choix d’un mécanisme de tenségrité pour modéliser une vertèbre. Nous récapitulons ici ces
travaux, puis nous indiquons les objectifs de cette thèse.

1.3.1 Travaux précédents


Choix d’un mécanisme de tenségrité comme module de départ
Afin de reproduire une structure similaire au cou de l’oiseau, le choix d’un empilement
de modules a été fait. Ainsi, chaque module correspond à une vertèbre, et l’empilement de
plusieurs modules correspond à un cou d’oiseau.
La première étape a donc été de choisir le mécanisme de tenségrité à utiliser comme module.
Afin de simplifier l’étude, les mécanismes considérés sont plans.
Plusieurs mécanismes de tenségrité sont étudiés et comparés dans [CHA16], afin de choisir
un module.
Le module choisi pour la suite et étudié dans [Let17] contient quatre barres et deux ressorts.
On peut le voir sur la Figure 1.12 : les barres sont en noir, et leurs longueurs respectives sont
L1 , L2 , L3 et L4 . Les barres diagonales sont plus longues qu’au moins une des deux autres barres
(base et effecteur). On peut voir dans [CA12] que la longueur des barres diagonales doit être
supérieure à deux fois la longueur des barres de la base et de l’effecteur pour maximiser la taille
de l’espace de travail. Les longueurs des deux ressorts (qui ne sont pas constantes) sont l1 et
l2 , et leurs raideurs sont k1 et k2 . Il y a quatre nœuds, notés A, B,C et D sur la Figure 1.12. Ce
mécanisme de tenségrité est communément nommé mécanisme en X ou antiparallélogramme.
Il est actionné par des câbles qui sont attachés en D et C et passent par les ressorts jusqu’aux
points A et B respectivement. L’actionnement se fait en tirant sur les câbles. Les moteurs sont
fixés au bas du module.
Pour calculer le nombre de degré de liberté (DDL) de la structure, on peut utiliser la formule
de Tchebyshev-Grübler-Kutzbach. Ainsi, le nombre de DDL DG du module est donnée par :
Nj
DG = D f (Nb − N j − 1) + ∑ Di − Ds
i=1

32
Introduction

F IGURE 1.12 – Description du module choisi, dans [Let17]

où D f est le nombre de DDL dans l’espace où le système fonctionne, Di est le nombre de DDL
de chaque articulation, Ds est le nombre de DDL non nécessaire dans le système, Nb est le
nombre de liaisons et N j le nombre d’articulations. Ici, nous avons D f = 3, Di = 1 (chaque
articulation n’a qu’un seul DDL), Ds = 0, Nb = 4 (il y a quatre barres) et N j = 4 (il y a quatre
nœuds). Par conséquent, le nombre de DDL du système est de 1.
Dans sa thèse [Fur20], Matthieu Furet étudie deux mécanismes de tenségrité différents (pi-
vot simple et mécanisme en X) pour trouver lequel se rapproche le plus des mouvements in-
tervertébraux des oiseau, en comparant les mouvements possibles des deux mécanismes et des
vertèbres d’oiseaux. Un mécanisme représente le mouvement entre deux vertèbres et corres-
pond donc à deux demi-vertèbres. Bien que les deux mécanismes présentent des résultats inté-
ressants, nous utiliserons exclusivement dans cette thèse le mécanisme en X, dont il est montré
dans [Fur20] que le comportement est moins dépendant des choix géométriques que pour le
pivot simple. De plus, la modulation de raideur est plus aisée sur le mécanisme en X que sur le
pivot [MW21].
Des premiers résultats de simulation et de commande de ce module seul ont été publiés dans
[Van+19]. La raideur du mécanisme y est définie, et la commande se sert des deux câbles pour
contrôler à la fois la position du module et sa raideur.
Ce module a déjà été utilisé, notamment dans [Bak+15] pour concevoir un manipulateur

33
Introduction

continu. Des mécanismes de tenségrité similaires sont analysés dans [Ars10 ; AG06 ; CA12 ;
WC19], avec en particulier une étude de l’espace de travail dans [Ars10].
Empilement des modules
Une fois le module choisi, les travaux sur l’empilement de ces modules ont pu débuter.
Un inspiration supplémentaire venant du cou de l’oiseau est de reproduire sa forme en S
au repos et d’en étudier les bénéfices. Des premières formes en S en équilibre statique ont été
générées dans [Let17], comme on peut le voir sur la Figure 1.13. Pour cela, un modèle statique a
été écrit, ce qui a également permis des premières études de l’espace de travail du manipulateur.

F IGURE 1.13 – Empilement de module en équilibre en forme de S, dans [Let17]

Suite à cela, des travaux sur le câblage du manipulateur ont été effectués [Son18]. Plusieurs
stratégies de câblages sont comparées, et l’une d’elles est exploitée pour le calcul d’espace
de travail. Nous utiliserons ici une stratégie d’actionnement différente pour notre prototype,
notamment car nous n’utiliserons que quatre câbles pour actionner trois modules, ce qui n’avait
pas été envisagé dans [Son18].
L’établissement du modèle dynamique de la pile de module s’est fait en commun avec Mat-
thieu Furet. Matthieu présente ainsi dans sa thèse [Fur20] le développement de l’équation du
mouvement du manipulateur, ce que nous ferons ici également. Nous y ajouterons d’autres élé-
ments, comme la prise en compte des poulies dans le modèle dynamique, ainsi que l’élasticité

34
Introduction

des câbles.

1.3.2 Objectifs
Les objectifs de cette thèse sont de poursuivre les travaux débutés afin d’obtenir un prototype
et d’en établir la commande. Plus précisément, les différents points abordés sont :
— établir le modèle dynamique d’un pile de modules. Cette partie a été effectuée avec
Matthieu Furet ;
— établir des méthodes de calcul de l’espace de travail d’un empilement de modules ;
— étudier les actionnements des piles de modules ;
— concevoir la commande d’un pile de modules entièrement actionnée ;
— développer un prototype et faire des essais expérimentaux ;
— développer un simulateur fiable pour une pile de modules.
D’autres travaux se sont ajoutés à ces objectifs, notamment l’identification de paramètres
sur le prototype pour le bon fonctionnement de la commande. Les travaux sur un manipulateur
sous-actionné ont également été commencés.
Ainsi, cette thèse est présentée selon le plan suivant :
— le chapitre 2 présente la modélisation du manipulateur. Après une présentation générale
du manipulateur, le modèle géométrique et le modèle dynamique de ce dernier y sont
détaillés ;
— le chapitre 3 présente plusieurs éléments d’analyse du manipulateur. D’abord, l’action-
nement complet du mécanisme est définit et deux actionnements spécifiques sont expli-
cités. Ensuite, le modèle statique est exploité pour calculer l’espace de travail statique
du manipulateur et pour élaborer des méthodes de choix des raideurs des ressorts ;
— le chapitre 4 présente le prototype ainsi que l’identification des frottements moteurs et
de l’élasticité des câbles, qui permettent d’avoir une commande plus performante et qui
sont nécessaire pour avoir un simulateur efficace ;
— le chapitre 5 présente trois commandes pour un manipulateur complètement actionné, et
leurs tests sur le prototype. Les commandes de type CTC présentées sont une commande
articulaire, une commande des moteurs et une commande dans l’espace opérationnel ;
— le chapitre 6 présente deux méthodes de génération de trajectoires. La première permet
de minimiser les forces appliquées pour aller d’une configuration à une autre. La seconde
permet de faire des mouvements explosifs, c’est-à-dire des mouvements très rapides ;
— enfin, le chapitre 7 présente une ouverture sur un manipulateur sous-actionné. Ce cha-
pitre débute par une analyse de l’impact du nombre de module sur l’espace de travail,

35
Introduction

pour un nombre de moteur constant. Les appuis sur des obstacles présents dans l’en-
vironnement sont modélisés afin d’être intégrés dans le calcul de l’espace de travail.
Ensuite, un manipulateur constitué de 11 modules est élaboré à partir de données biolo-
gique, et un mouvement capturé à partir d’une vidéo d’un cou d’oiseau est reproduit à
l’aide d’une commande sous-actionnée.
Des points techniques sont développés en annexe.

36
C HAPITRE 2

M ODÉLISATION

Dans ce chapitre, nous commençons par présenter en détail le manipulateur, en partant de la


description d’un module unique et de ses propriétés jusqu’à la description de la pile de modules
et de son actionnement.
Le modèle géométrique est ensuite établi, et les liens entre les différents espaces (espace
articulaire, espace opérationnel et espace des moteurs) sont explicités.
Pour terminer, le modèle dynamique est détaillé à l’aide des équations de Lagrange. Ce
modèle nous sera utile dans la suite pour établir la commande du manipulateur et pour effectuer
des simulations.

2.1 Présentation du manipulateur

Dans cette section, le manipulateur étudié est introduit avec les bases de sa modélisation. Le
manipulateur ne se déplacera que dans un plan, il est donc modélisé uniquement dans ce plan.
Le manipulateur est un empilement de modules, mécanismes de tenségrité ayant un unique
degré de liberté.
Le manipulateur est actionné via des câbles, ce qui permet de disposer tous les moteurs à sa
base. Ces câbles peuvent être comparés aux muscles du cou des oiseaux, qui peuvent agir sur
plusieurs vertèbres en même temps. En pratique, la profondeur du manipulateur est employée
pour passer efficacement les câbles dans des plans parallèles à celui du modèle, afin d’éviter les
frottements entre différents câbles.
Nous présentons d’abord le module de base de notre manipulateur et sa modélisation, avant
de détailler la modélisation d’une pile de modules. Enfin, nous expliquerons l’actionnement du
manipulateur.

37
Partie , Chapitre 2 – Modélisation

2.1.1 Un module
Le module choisi est une variante de la croix de Snelson, qui est constituée de deux barres
croisées et de quatre éléments élastiques reliant leurs extrémités. La croix de Snelson pos-
sède trois degrés de libertés. On peut trouver une étude de l’actionnement de cette croix dans
[Beg+20]. Afin de ne conserver qu’un degré de liberté pour notre module, nous remplaçons
deux des éléments élastiques par des barres rigides. Ainsi, le mécanisme de tenségrité que nous
utilisons, et que nous appellerons module dans la suite, est un assemblage de quatre barres et
deux ressorts de tension. Les deux ressorts sont placés sur ses côtés, comme on peut le voir sur
la Figure (2.1).

F IGURE 2.1 – Le mécanisme de tenségrité en X utilisé.

Les deux barres croisées (2) et (3) ont la même longueur L, tandis que les barres de base
(1) et du haut (4) ont la même longueur b. Le module définit donc un anti-parallélogramme et
est symétrique par rapport à la médiatrice des barres diagonales. Ce choix est fait d’après les
résultats obtenus par Max Lettl [Let17], qui a comparé des modules symétriques et asymétriques
(un module est asymétrique si deux barres non-adjacentes ne sont pas de même longueur). Le
point à retenir est que les expressions des longueurs des ressorts sont bien plus compliquées pour
les modules asymétriques, ce qui complexifie fortement les modèles statiques et dynamiques
ensuite. Le montage du système nous impose la contrainte L > b. La longueur minimale des

38
2.1. Présentation du manipulateur

longueurs des ressorts est L − b (obtenue quand le module est à plat).


Les dimensions des barres ont été étudiées dans [Fur20]. Le critère pour le choix des dimen-
sions était de pouvoir utiliser un maximum de ressorts du commerce de tailles et de raideurs
différentes. Pour cela, les contraintes suivantes ont été prises en compte :
— la longueur à vide des ressorts doit être inférieure à L − b pour que les ressorts soient
toujours en tension ;
— la longueur maximale du ressort doit être supérieure à L + b, qui est la longueur maxi-
male qu’il est possible d’atteindre une fois le ressort monté sur le manipulateur.
Nous utiliserons ainsi des barres de dimensions b = 5cm et L = 10cm, ce qui nous donne un
rapport Lb = 2 entre les barres.
Ce module a un unique degré de liberté. On peut donc décrire la configuration du mécanisme
avec une unique coordonnée généralisée : nous utilisons pour cela l’angle entre la barre de base
et la barre du haut, noté α. La plage angulaire du module considérée est −π < α < π, afin
d’éviter les configurations singulières de l’anti-parallélogramme. Afin de contrôler ce degré de
liberté, des câbles sont disposés de différentes manières sur le module, et les moteurs pourront
agir en tirant sur ces câbles. Le passage des câbles sera décrit dans les sections suivantes.
Dans les premiers modèles établis, nous ne considérerions aucun frottement ou amortisse-
ment. Afin d’améliorer ces modèles, nous identifierons des frottements moteurs dans le chapitre
4.

2.1.2 Empilement de modules


Le manipulateur est un empilement de plusieurs modules. Lorsqu’un module est empilé sur
un autre, sa barre du bas est la barre du haut du module d’en dessous. Le nombre de modules
dans la pile est noté N. Nous numérotons ces modules de bas en haut. La Figure (2.2) montre le
module i avec les modules inférieurs et supérieurs.
Afin de faciliter les écritures des modèles, nous prenons des modules de mêmes dimensions,
c’est-à-dire que toutes les barres diagonales sont de longueur L tandis que les autres barres sont
toutes de longueurs b. Les méthodes utilisées pour établir le modèle dynamique peuvent cepen-
dant être facilement étendues pour des empilements de modules de dimensions différentes.
Matthieu Furet a étudié l’impact des espacements entre les modules, c’est-à-dire l’ajout
d’un élément solide entre deux modules, sur la reproduction des mouvements des vertèbres.
Cependant, les espacements n’améliorent pas beaucoup la reproduction des mouvements inter-
vertébraux, nous n’en considérerons donc pas dans cette thèse.

39
Partie , Chapitre 2 – Modélisation

F IGURE 2.2 – Empilement des modules.

Nous notons kl (i) la raideur du ressort à gauche du module i et kr (i) la raideur du ressort à
droite du module i. De même, les longueurs à vide de ces ressorts peuvent être différentes, et
sont donc notées ll0 (i) et lr0 (i) pour les longueurs à vide des ressorts respectivement à gauche
et à droite du module i.
L’orientation entre la barre du bas et la barre du haut du module i est notée αi . On note
γi l’orientation de la barre du bas du module i dans le repère de référence, comme indiqué
sur la Figure (2.2). La barre du bas du premier module est fixe. La position de son milieu est
(x1 = 0, y1 = 0) et son orientation est γ1 dans le repère de référence.

2.1.3 Actionnement du manipulateur


Le manipulateur est actionné avec des câbles. Des moteurs, situés à la base du manipulateur,
tirent sur ces câbles afin de modifier sa configuration.
Ces câbles peuvent être disposés de différentes manière sur chacun des modules :
— le câble est placé sur la gauche ou la droite du module, le long du ressort à cette place :

40
2.1. Présentation du manipulateur

en tirant sur ce câble, le moteur associé va donc modifier l’orientation du module de


manière à diminuer la longueur du câble sur ce côté ;
— le câble passe le long des barres du module i (ce que l’on appellera strut-routed) : ce
câblage permet de minimiser l’impact du moteur associé au câble sur ce module, tout en
permettant le passage du câble pour lui permettre d’atteindre les modules supérieurs ;
— le câble ne passe pas du tout par le module i : le moteur associé n’a donc aucun impact
sur ce module, et n’a donc d’effet que sur les modules inférieurs.
La Figure (2.3) montre les deux premiers cas évoqués.

F IGURE 2.3 – A gauche : passage du câble par le côté afin de pouvoir contrôler l’orientation du
module. A droite : passage du câble en strut-routed le long d’une barre diagonale afin de passer
le câble sur les modules du dessus en minimisant l’impact sur ce module-ci.

Nous ne considérons pas le cas où un câble passe à la fois par la gauche et par la droite d’un
même module car ce cas a peu d’intérêt. Nous ne considérons pas non plus de câble passant
par un côté et le long d’une barre diagonale d’un même module : cela aurait peu d’effet à part
l’utilisation d’une longueur déroulée du câble plus élevée.
L’utilisation des câbles implique que les moteurs ne peuvent que tirer dessus pour impacter
le manipulateur. Ainsi, un moteur tirant à gauche d’un module ne pourra l’incliner que sur
la gauche. Ceci nous amène à un actionnement antagoniste : deux moteurs sont nécessaires
pour déplacer totalement (vers la gauche et vers la droite) un unique module, et leurs effets
s’opposent. Ceci peut permettre, comme nous le verrons plus loin, de contrôler la raideur des
modules : en effet, les deux moteurs associés à un module peuvent lui appliquer le même couple
avec différents jeux de forces.
Nous notons N f le nombre de moteurs du manipulateur. Les moteurs et les câbles associés
sont numérotés avec l’indice j ∈ {1, ...N f }. La longueur déroulée du câble j est notée l j et la

41
Partie , Chapitre 2 – Modélisation

position du moteur j est notée θ j . La force appliquée sur le câble j par le moteur associé est
notée f ( j). Le vecteur des forces appliquées est ainsi f = [ f (1) ... f (N f )]T .

2.2 Modèle géométrique

2.2.1 Géométrie d’un module


Une analyse complète de la géométrie d’un module est présentée dans [Fur20]. Nous rap-
pelons ici les principales caractéristiques géométriques d’un module et les formules qui nous
seront utiles. Ces calculs ne dépendent que du module considéré, les orientations des autres
modules n’ont aucun lien avec. Les résultats sont donc valides quelque soit l’orientation de la
barre du bas du module, et quelque soit la position de cette barre.
Nous introduisons d’abord un calcul intermédiaire qui nous sera très utile pour calculer les
positions de manière itérative : la distance entre le milieu de la barre de base d’un module et le
milieu de sa barre du haut. On peut montrer que cette distance vaut :
r
αi
d(αi ) = L2 − b2 cos2 ( ) (2.1)
2

Soient ll (αi ) et lr (αi ) les longueurs des ressorts respectivement à gauche et à droite. On a :

αi
ll (αi ) = d(αi ) − b sin( ) (2.2)
2
αi
lr (αi ) = d(αi ) + b sin( ) (2.3)
2

Ces trois grandeurs sont indiquées sur la Figure (2.4).


Le module formant un anti-parallèlogramme, les segments correspondants à ces trois gran-
deurs (d(αi ), ll (αi ), lr (αi )) sont parallèles entre eux, et perpendiculaires à la médiatrice de l’anti-
parallèlogramme. Ceci implique qu’ils sont tous trois inclinés d’un angle π2 + α2i par rapport à
la barre du bas. Les angles formés par les barres croisées et la barre du bas sont notés ψi et φi .
Les calculs de leur expression en fonction de αi ont été détaillés dans [Fur20].
L’expression de ψi en fonction de αi est :
" p #
−2bL sin(αi ) − (2bL sin(αi ))2 + (2bL [cos(αi ) + 1])2 − (2b2 [cos(αi ) + 1])2
ψi (αi ) = 2 arctan
2b2 [cos(αi ) + 1] − 2bL [cos(αi ) + 1]
(2.4)

42
2.2. Modèle géométrique

F IGURE 2.4 – Les principales grandeurs propres au module i.

L’expression de φi en fonction de αi est :


" p #
2bL sin(αi ) + (2bL sin(αi ))2 + (2bL [cos(αi ) + 1])2 − (2b2 [cos(αi ) + 1])2
φi (αi ) = 2 arctan
2b2 [cos(αi ) + 1] + 2bL [cos(αi ) + 1]
(2.5)

2.2.2 Espace articulaire, espace opérationnel et espace des moteurs


Pour la plupart des robots articulés, deux espaces sont considérés :
— l’espace des moteurs, qui est donné par les positions de l’ensemble des moteurs ;
— l’espace opérationnel, qui est donné par la position et l’orientation (la pose) de la barre
du haut du manipulateur.
Ces deux espaces permettent généralement la description totale des robots articulés, les
moteurs étant placés à chaque articulation.
Dans notre cas, les moteurs ne sont pas placés au niveau des articulations, mais à la base du
manipulateur, et modifient les articulations en tirant sur des câbles. Ceci entraîne que l’espace
articulaire et l’espace des moteurs sont différents, et nous les considérerons séparément.
On peut remarquer deux principales différences avec les robots articulés classiques :
— en faisant passer un câble par plusieurs modules, un seul moteur peut avoir un impact
sur plusieurs articulations ;
— en faisant passer plusieurs câbles sur un module, on peut avoir plusieurs moteurs qui

43
Partie , Chapitre 2 – Modélisation

actionnent cette seule articulation.


Cet espace articulaire se situe entre l’espace des moteurs et l’espace opérationnel, et permet
de faire le lien entre les deux. Il est paramétré par les orientations α de chacun des modules.
C’est l’espace articulaire qui décrit le mieux le manipulateur, car il indique entièrement sa
configuration : il permet de calculer les positions de chacune des barres, de calculer la pose de
la barre du haut du manipulateur, et également de calculer la position des moteurs (si les câbles
sont rigides).
C’est donc l’espace articulaire qui sera utilisé pour établir le modèle dynamique. Mais dans
un premier temps, nous allons présenter le modèle géométrique du manipulateur, avec les liens
entre les trois différents espaces.

2.2.3 Espace articulaire vers espace opérationnel

Avec la connaissance de la configuration articulaire α, on peut calculer les positions de


chacune des barres, ainsi que leurs orientations.
Nous nous concentrons dans un premier temps seulement sur les barres du haut et du bas des
modules. Pour i ∈ {1, ...N}, on note (xi , yi ) la position du milieu de la barre du bas du module
i et γi son orientation dans le repère de référence. Ainsi, (xi+1 , yi+1 ) et γi+1 sont la position et
l’orientation de la barre du haut du module i et de la barre du bas du module i + 1 si i < N.
On étend la définition pour i = N + 1, de sorte que (xN+1 , yN+1 ) et γN+1 soient la position et
l’orientation de la barre du haut du dernier module.
Par définition de αi , on a :
γi+1 = γi + αi (2.6)

On en déduit donc que :


i
γi+1 = γ1 + ∑ αi (2.7)
k=1

D’après l’équation (2.1) et les propriétés de l’anti-parallèlogramme, on a :

xi+1 = xi − d(αi ) sin(γi + α2i ) (2.8)

yi+1 = yi + d(αi ) cos(γi + α2i ) (2.9)

On peut donc calculer la position de la barre du haut de chaque module à partir de la confi-

44
2.2. Modèle géométrique

guration articulaire. La position du milieu de la barre du haut du module i est :

i
xi+1 = − ∑ d(αk ) sin(γk + α2k ) (2.10)
k=1

i
yi+1 = ∑ d(αk ) cos(γk + α2k ) (2.11)
k=1

Les centres de masses des barres diagonales, qui seront utiles pour l’écriture du modèle
dynamique, peuvent s’exprimer en fonction du centre de la barre de base et de l’orientation du
module de la manière suivante :

x2i = xi − b2 cos(γi ) + L2 cos(γi + φi ) (2.12a)


y2i = yi − b2 sin(γi ) + L2 sin(γi + φi ) (2.12b)
x3i = xi + b2 cos(γi ) + L2 cos(γi + ψi ) (2.12c)
y3i = yi + 2b sin(γi ) + L2 sin(γi + ψi ) (2.12d)

où (x2i , y2i ) sont les coordonnées du centre de la barre diagonale (2) et (x3i , y3i ) sont les coor-
données du centre de la barre diagonale (3) (voir Figure (2.1) ).
Le modèle géométrique inverse, correspondant au calcul de la configuration articulaire à
partir de la position de la barre du haut du manipulateur, est algébriquement trop compliqué
pour écrire une formule explicite pour l’ensemble des solutions lorsque le manipulateur est
composé de trois modules ou plus.
La résolution algébrique du modèle géométrique inverse a été faite pour deux modules dans
[FW19]. Dans ce cas, le nombre de configurations pour une position donnée de la barre du haut
du manipulateur est d’au plus quatre.

2.2.4 Espace articulaire vers espace des moteurs

Ce sont les câbles qui font le lien entre les moteurs et les modules. En supposant que les
câbles sont tendus et inextensibles, on peut calculer les positions moteurs à partir de la configu-
ration articulaire :
R
θ = − (l(α) − l0 ) (2.13)
rd

45
Partie , Chapitre 2 – Modélisation

où R est le rapport de réduction des moteurs, rd est le rayon de l’enrouleur, l(α) = [l1 (α)...lN f (α)]T
est le vecteur des longueurs déroulées des câbles dans la configuration α et l0 = l(α0 ) où α0 est
une configuration d’équilibre au repos du manipulateur (configuration initiale des expériences).

Cette valeur de θ est calculée selon l’équation (2.13) afin d’avoir :

— θ = 0N f ×1 quand α = α0 : ceci permet d’avoir des positions moteurs à 0 quand le mani-


pulateur est dans sa position de repos initiale. La plupart du temps, on aura α0 = 0N×1 ;
— θ augmente lorsqu’on tire sur les câbles (et qu’on diminue donc leur longueur déroulée) :
ceci explique la présence du signe −.

Afin de décrire le câblage complet du système, nous définissons la matrice d’actionnement


A et nous considérons un nombre fini de passages de câbles possibles. Cette matrice est de
taille N × N f . Si le câble j ne passe pas par le module i, alors A(i, j) = 0. Sinon, l’élément
A(i, j) est l’entier correspondant au passage du câble j sur le module i. Nous considérerons les
3 passages de câbles montrés en Figure (2.5) pour le modèle basique négligeant les poulies, et
les 5 passages de câbles montrés en Figure (2.6) pour le modèle prenant en compte les poulies.
Les éléments de A sont les numéros indiqués sur ces figures.

La longueur déroulée totale du câble j peut s’exprimer de la manière suivante :

N
A(i, j)
l j = lc ( j) + ∑ l j (αi ) (2.14)
i=1

A(i, j)
où l j (αi ) est la longueur variable du câble j au niveau du module i et lc ( j) est une valeur
constante.
A(i, j)
lj (αi ) dépend de la manière dont le câble passe par le module i. Nous allons calculer
cette valeur pour les différents passages de câbles que nous utiliserons.

Dans un premier temps, nous utilisons un modèle simplifié qui ne considère pas les poulies
utilisées pour passer les câbles sans frottements (ce qui revient à considérer des poulies de rayon
nul). Dans un second temps, nous prenons en compte les poulies dans le calcul des longueurs
de câbles afin d’avoir un modèle plus précis.

Le calcul de θ à partir de α peut se faire quelque soit le modèle utilisé. Le calcul inverse (α
à partir de θ ) peut se faire explicitement avec le modèle sans poulies, mais pas avec le modèle
avec poulies. Des méthodes d’évaluation de α à partir de θ seront décrites dans la section 4.2.

46
2.2. Modèle géométrique

Longueur des câbles sans les poulies

Si l’on considère qu’il n’y a pas de poulies, le câble j peut être disposé des trois manières
suivantes sur le module i :
1. sur le côté gauche du module, le long du ressort gauche, auquel cas on a l 1j (αi ) = ll (αi ) ;
2. sur le côté droit du module, le long du ressort droit, auquel cas on a l 2j (αi ) = lr (αi ) ;
3. en strut-routed, le long des barres : dans ce cas la longueur l 3j (αi ) est la somme des
longueurs des barres le long desquelles passe le câble. C’est une valeur fixe, qui ne varie
pas avec αi .
La Figure (2.5) montre les trois passages de câbles considérés. Pour le troisième passage de
câble, la version symétrique donne la même longueur de câble, c’est pourquoi nous confondons
les deux versions en un seul passage de câble.

F IGURE 2.5 – Les différents passages de câbles étudiés sans considération des poulies.

Si le câble j ne passe pas par le module i, alors on a l 0j (αi ) = 0 quelque soit αi .


Ces résultats sont assez simples, mais ne donnent pas un modèle très précis. Nous allons
donc inclure les poulies dans ce calcul. L’impact de la prise en compte des poulies sur le calcul
des longueurs de câbles sera quantifié dans la section 3.1.

Longueur des câbles avec les poulies

Nous prenons ici en compte les poulies dans le calcul de la longueur des câbles. Nous
supposons que toutes les poulies sont identiques, de rayon r.
Avec les poulies, il y a de nombreuses possibilités pour le passage des câbles. Nous en avons
sélectionner quelques unes qui nous permettent de mettre en place les actionnements que nous
souhaitons.
Nous allons étudier les cinq cas suivants :

47
Partie , Chapitre 2 – Modélisation

1. celui où le câble passe sur la gauche du module i et est attaché au milieu de la poulie du
haut ;
2. celui où le câble passe sur la droite du module i et est attaché au milieu de la poulie du
haut ;
3. celui où le câble passe sur la gauche du module et est enroulé sur la poulie du haut pour
être redirigé au dessus ;
4. celui où le câble passe sur la droite du module et est enroulé sur la poulie du haut pour
être redirigé au dessus ;
5. celui où le câble est passé en strut-routed pour actionner des modules supérieurs.
Le cas trivial est celui où le câble ne passe pas par le module. Dans ce cas, la longueur
variable correspondante est nulle.
Les cinq cas (non-triviaux) sont résumés en Figure (2.6), ordonnés de gauche à droite. Ces
passages de câbles sont choisis pour maximiser l’amplitude possible pour chaque module sans
décoller le câble de la poulie. Par exemple, dans le cas strut-routed, on ne passe pas le câble
le long de la barre diagonale uniquement car sinon le câble se décollerait de la poulie si le
module supérieur était trop incliné vers la gauche sur la Figure (2.6). Il en est de même pour les
troisièmes et quatrièmes cas : l’enroulement du câble autour des poulies évite le décollement de
celui-ci.

F IGURE 2.6 – Les différents passages de câbles étudiés.

Nous indiquons ici les formules des longueurs variables pour chaque passage de câble. Le
détail des calculs des longueurs des câbles est fourni dans l’annexe B.1.
Si le câble j ne passe pas par le module i, on a :

l 0j (αi ) = 0 (2.15)

48
2.2. Modèle géométrique

Dans le premier cas, la longueur variable du câble j est donnée par :


p
ll (αi )2 − r2
q  αi 
l 1j (αi ) = 2 2
ll (αi ) − r + r − arctan( )− (2.16)
r 2

Dans le second cas, la longueur variable du câble j est donnée par :


p
lr (αi )2 − r2 
q α
i
l 2j (αi ) = 2 2
lr (αi ) − r + r − arctan( ) (2.17)
2 r

Dans le troisième cas, la longueur variable du câble j est donnée par :

l 3j (αi ) = ll (αi ) − rαi (2.18)

Dans le quatrième cas, la longueur variable du câble j est donnée par :

l 4j (αi ) = lr (αi ) + rαi (2.19)

Enfin, dans le cinquième cas, la longueur variable du câble j est donnée par :

l 5j (αi ) = r(2ψ(αi ) − αi ) (2.20)

Pour ce dernier cas, le résultat est symétrique par rapport à αi . Ainsi, cette longueur variable
vaut aussi pour le câblage symétrique à celui-ci.
Les longueurs variables totales des câbles peuvent donc être calculées à partir de ces for-
mules.
La matrice d’actionnement A permet d’écrire les modèles quelque soit le câblage du proto-
type (avec les passages de câbles considérés). Cette matrice sera indiquée pour deux actionne-
ments particuliers dans les sections 3.2.1 et 3.2.2.

2.2.5 De l’espace des moteurs vers l’espace articulaire

On cherche ici à calculer la configuration articulaire α en partant des positions moteurs θ .


Évidemment, ce calcul dépend de l’actionnement, de la manière dont les câbles sont placés.
Prenons d’abord l’exemple d’un module seul, actionné par deux câbles, l’un sur sa gauche
et le second sur sa droite, et considérons le modèle sans les poulies. D’après les deux équations

49
Partie , Chapitre 2 – Modélisation

(2.2) et (2.3), les positions moteurs s’expriment en fonction de α = α1 de la manière suivante :

R α1
θ1 (α1 ) = − (d(α1 ) − b sin( ) − lc (1)) (2.21)
rd 2

R α1
θ2 (α1 ) = − (d(α1 ) + b sin( ) − lc (2)) (2.22)
rd 2
où θ1 est la position du moteur associé au câble gauche et θ2 est la position du moteur associé
au câble droit.
Une première méthode consiste à n’utiliser qu’une seule des deux équations pour calculer
α1 , ce qui revient à n’utiliser qu’une seule des positions moteurs pour retrouver l’orientation du
module. En isolant d(α1 ) puis en passant au carré dans chacune des équations, on peut montrer
que :
 −L2 + (− rd θ − l (1))2 + b2 
R 1 c
α1 = 2arcsin rd (2.23)
2b(− R θ1 − lc (1))
et
 L2 − (− rd θ − l (2))2 − b2 
R 2 c
α1 = 2arcsin (2.24)
2b(− rRd θ2 − lc (2))
Une seconde méthode possible est d’utiliser les deux positions moteurs pour calculer α1 . En
effet, on peut remarquer qu’en soustrayant l’équation (2.21) à l’équation (2.22), on obtient :

rd α1
(θ1 − θ2 ) + lc (1) − lc (2) = 2bsin( ) (2.25)
R 2

On en déduit donc que :


 rd (θ − θ ) + l (1) − l (2) 
1 2 c c
α1 = 2arcsin R (2.26)
2b

Lorsqu’on prend en compte les poulies, la résolution algébrique de ce problème est trop
complexe. On peut cependant procéder au calcul de α1 à partir d’une des positions moteurs
avec une résolution numérique. Nous reviendrons sur ce point en section 4.2.
Ces calculs peuvent être généralisés pour un manipulateur entièrement actionné : dans ce
cas, on peut associer à chaque module un câble qui est utilisé pour calculer son orientation. Mais
ce n’est pas possible pour une manipulateur sous-actionné : chaque câble actionnant plusieurs
modules, les calculs deviennent trop complexes.
Le problème majeur qui intervient dans le calcul de α à partir de θ provient finalement des
câbles : nous avons jusque là supposé que les câbles étaient inextensibles, mais en pratique les

50
2.3. Modèle dynamique

câbles s’allongent. Les équations (2.23), (2.24), (2.26) fournissent alors des résultats différents.
Il faudrait connaitre l’allongement des câbles et en tenir compte.
Sur notre premier prototype, nous essayons tout de même de calculer le plus précisément
α à partir de θ en modélisant l’élasticité des câbles, car ce prototype ne possède pas d’autres
moyens de mesure en ligne.

2.3 Modèle dynamique


Une première version du modèle dynamique, dont les éléments sont indiqués dans cette
thèse, ont été publiés dans [Fas+19]. Les éléments de calculs techniques sont détaillés en annexe
C afin de rendre ce chapitre plus lisible.

2.3.1 Équations de Lagrange


Dans cette section, l’équation du mouvement du manipulateur est établie. Cette équation
relie les forces appliquées et le mouvement du manipulateur. L’équation du mouvement est
obtenue avec les équations de Lagrange [Lag53].
Les équations de Lagrange pour notre système à plusieurs degrés de liberté peuvent s’écrire :
 
d ∂T ∂ T ∂V
− + = Q, i = 1, 2, ..., N (2.27)
dt ∂ α̇ ∂α ∂α
avec
T : Energie cinétique
V : Energie potentielle
Q : Forces généralisées
Les termes d’énergie cinétique, potentielles et forces généralisées sont d’abord calculés,
puis substitués dans l’équation de Lagrange (2.27) afin d’obtenir l’équation du mouvement.
L’équation du mouvement du manipulateur sera mise sous la forme :

Mα̈ + c(α̇, α) + g(α) = Q (2.28)

où M est la matrice d’inertie, c le vecteur des forces de Coriolis et centrifuges, g le vecteur des
énergies potentielles et Q le vecteur des forces généralisées. Le calcul très technique de c est
présenté en annexe C.5.

51
Partie , Chapitre 2 – Modélisation

2.3.2 Forces généralisées

Le travail virtuel de la force f ( j) appliquée sur un câble j est le produit de la force et du


déplacement du câble :
δW j = − f ( j)δ l j (2.29)

Le signe négatif provient du fait que la longueur déroulée du câble est réduite lorsqu’on tire sur
ce câble.

Le travail virtuel de toutes les forces sur le manipulateur s’écrit donc :

N Nf
A(i, j)
δW = ∑ ∑ (− f ( j)δ l j ) (2.30)
i=1 j=1

Ainsi, le vecteur Q peut s’écrire sous la forme Q = Z(α)f où Z(α) est la matrice de taille
N × N f dont les éléments sont :

A(i, j)
∂lj (αi )
Z(α)(i, j) = − (2.31)
∂ αi

Comme on ne peut pousser sur le câble, ces équations ne sont valables que si les forces f
sont toutes positives. Toute force négative doit être remplacée par 0.

La Figure (2.7) montre les valeurs des éléments de la matrice Z(α) en fonction du câblage
et de l’orientation d’un module i. Rappelons que les passages de câbles considérés sont montrés
en Figure (2.6). Dans les cas A(i, j) = 1 et A(i, j) = 3, les valeurs sont toutes positives quelque
soit l’orientation du module, ce qui veut dire que le câble associé tire toujours le module vers
sa gauche. A l’inverse, pour les cas A(i, j) = 2 et A(i, j) = 4, les valeurs sont toujours négatives
donc le câble associé tire toujours le module vers sa droite. Le cas A(i, j) = 5 est un peu plus
complexe : le câble associé tire le module sur sa gauche s’il est déjà penché vers la gauche et
il le tire sur sa droite s’il est déjà penché vers la droite. Cependant les valeurs sont très faibles,
l’impact des câbles en strut-routed n’est donc pas très important, comme cela était prévu.

Les coefficients correspondant aux trois câblage sans considération des poulies de la Figure
(2.5) sont également montrés. Les courbes ont la même forme mais ont des valeurs légèrement
plus faibles. Le câblage strut-routed sans poulie n’applique aucune force sur les modules. Les
poulies augmentent légèrement l’application des forces sur les modules.

52
2.3. Modèle dynamique

F IGURE 2.7 – Valeurs prises par les éléments de la matrice Z(α) en fonction du câblage (à
gauche avec poulies et à droite sans poulies).

2.3.3 Énergie cinétique

L’énergie cinétique totale du mécanisme i est obtenue par la somme des énergies cinétiques
(de translation et de rotation) des trois barres mobiles :

1
m2i v22i + I2i (φ̇i + γ˙i )2 + 1
m3i v23i + I3i (ψ̇i + γ˙i )2 + 1
m4i v24i + I4i (α̇i + γ˙i )2
  
Ti = 2 2 2 (2.32)

avec mki et Iki les masses et inerties de la barre k du module i et vki la vitesse du centre
de masse de la barre k du module i, pour k allant de 2 à 4. Les barres 2 et 3 sont les barres
diagonales et la barre 4 est la barre du haut.

Afin de faciliter le calcul des vitesses des centres de masse, on utilise un paramétrage re-
dondant pour le mécanisme i. Ainsi, les quatre paramètres xi , yi , αi , γi décrivent le paramétrage
du module i. Nous allons d’abord calculer l’énergie cinétique du module i en fonction de ce
paramétrage local, et ensuite nous le calculerons en fonction de α.

53
Partie , Chapitre 2 – Modélisation

Les coordonnées des centres de masse des barres 2, 3 et 4 peuvent s’écrire :

x2i = xi − b2 cos(γi ) + L2 cos(γi + φi ) (2.33a)


y2i = yi − b2 sin(γi ) + L2 sin(γi + φi ) (2.33b)
x3i = xi + b2 cos(γi ) + L2 cos(γi + ψi ) (2.33c)
y3i = yi + b2 sin(γi ) + L2 sin(γi + ψi ) (2.33d)
x4i = xi+1 = xi − d(αi ) sin(γi + α2i ) (2.33e)
y4i = yi+1 = yi + d(αi ) cos(γi + α2i ) (2.33f)

et leurs orientations sont :

γ2i = γi + φi (2.34a)
γ3i = γi + ψi (2.34b)
γ4i = γi + αi (2.34c)
(2.34d)

On peut exprimer les variables φi et ψi en fonction de αi avec les équations (2.5) et (2.4)
respectivement.
En dérivant ces équations on obtient les vitesses linéaires et angulaires des différentes barres
et on peut calculer l’énergie cinétique totale Ti du module i avec le paramétrage local sous la
forme :  
ẋi
h i   ẏi 

1
Ti = 2 ẋi ẏi γ̇i α̇i Mi    (2.35)
γ̇
 i 

α̇i
Le détail des calculs est en annexe C.3.
Nous définissons la matrice Ri qui fait le lien entre les coordonnées [ẋi ẏi γ̇i α̇i ] et les orien-
tations α :
[ẋi , ẏi , γ̇i , α̇i ]⊤ = Ri [α̇1 , ..., α̇N ]⊤ (2.36)

La matrice Ri peut être calculée de manière itérative. Le détail des calculs est fourni en
annexe C.2.

54
2.3. Modèle dynamique

On déduit des équations (2.35) et (2.36) que :

1
Ti = α̇ T RTi Mi Ri α̇ (2.37)
2

La matrice d’inertie de la pile de module est donc :

N
Mm = ∑ RTi Mi Ri (2.38)
i=1

Nous prenons également en compte l’inertie des moteurs Im et des enrouleurs Id .


L’énergie cinétique du moteur j et de l’enrouleur associé est :

1 R2 Im + Id ˙2
Em ( j) = lj
2 rd2
A(i, j)
1 R2 Im + Id N ∂ l j (αi ) 2
= ( ∑ α̇i )
2 rd2 i=1 ∂ αi

Afin de simplifier l’écriture des équations, nous rassemblons l’inertie des moteurs Im et
l’inertie des enrouleurs Id dans une seule variable :

Id
Ia = Im + (2.39)
R2

Notons M mj la matrice d’inertie du moteur j. Ses éléments sont donc (par identification) :

A(k, j) A(l, j)
R2 Ia ∂ l j (αk ) ∂ l j (αl )
M mj (k, l) = (2.40)
rd2 ∂ αk ∂ αl

Nous remarquons que la matrice M mj n’est pas diagonale : il y a des termes croisés si le
câble passe par plusieurs modules. Il est donc important d’intégrer le modèle dynamique à la
commande, car une simple commande PD ou PID axe par axe ne prendrait pas en compte ces
éléments non-diagonaux.
La matrice d’inertie de l’ensemble des moteurs M f est :

Nf
Mf = ∑ Mmj (2.41)
j=1

55
Partie , Chapitre 2 – Modélisation

Notons que cette formule est équivalente à :

R2 T
M f = Ia ZZ (2.42)
rd2

La matrice d’inertie du manipulateur avec son actionnement est donc :

M = Mm + M f (2.43)

2.3.4 Énergie potentielle

L’énergie potentielle d’un module provient de deux sources : la pesanteur et l’élasticité des
ressorts. L’énergie potentielle du module i peut s’écrire :

Vi = Vsp i +Vg i (2.44)

où Vsp i est l’énergie potentielle des ressorts et Vg i l’énergie potentielle de la gravité.


Comme les longueurs des ressorts du module i ne dépendent que de l’orientation αi , on a :

Vsp i = 12 k1i (ll (αi ) − ll0i )2 + 12 k2i (lr (αi ) − lr0i )2 (2.45)

Le vecteur des dérivées de l’énergie potentielle due aux ressorts gs s’écrit :


 
∂Vsp 1
 ∂ α1 
gs (α) = 
 ... 
 (2.46)
∂Vsp N
∂ αN


∂Vsp i ∂ ll (αi ) ∂ lr (αi )
= k1i (ll (αi ) − ll0i ) + k2i (lr (αi ) − lr0i ) (2.47)
∂ αi ∂ αi ∂ αi
L’énergie potentielle due à la gravité s’écrit :

Vg i = g(m2i y2i + m3i y3i + m4i y4i ) (2.48)

avec g l’accélération de la gravité, dirigée selon l’axe −→



y.

56
2.3. Modèle dynamique

Le vecteur des dérivées de l’énergie potentielle due à la pesanteur est donc :


 
∂Vg k
N  ∂ α1 
gg =  ... 
∑  (2.49)
k=1 ∂Vg k
∂ αN


= g(m2k ∂∂yα2ki + m3k ∂∂yα3ki + mk ∂∂yα2ki )
∂Vg k
∂ αi (2.50)

Le calcul de ∂∂ αyki se fait de trois façons différentes, k étant l’indice du module dont on consi-
dère le poids, et i l’indice de la variable articulaire :

∂ y2k ∂y b L

 = ∂4k−1
αi − 2 cos(γk ) + 2 cos(γk + φk )
 ∂ αi

Si i < k ⇒ ∂∂yα3k = ∂ y∂4k−1 b L
αi + 2 cos(γk ) + 2 cos(γk + ψk )
(2.51a)
 i
 ∂ y4k = ∂ y4k−1 − d(α ) sin(γ + αk )


∂α ∂ αi k k 2
 i
∂ y2k ∂y ∂ φk L

 = ∂4k−1
αi + ∂ αk 2 cos(γk + φk )
 ∂ αi

Si i = k ⇒ ∂∂yα3k = ∂ y∂4k−1 ∂ ψk L
αi + ∂ αk 2 cos(γk + ψk )
(2.51b)
 i
 ∂ y4k = ∂ y4k−1 + ∂ d(αk ) cos(γ + αk ) − 1 d(α ) sin(γ + αk )


∂α ∂ αi ∂ αk k 2 2 k k 2
 i
 ∂∂yα2k = 0

 i

Si i > k ⇒ ∂∂yα3k = 0 (2.51c)
 i

 ∂ y4k = 0

∂ αi

La variable articulaire αi ne modifie pas les positions et orientations des modules inférieurs.
∂ y4k−1
Quelque soit la valeur de i, si k = 1, on a ∂ αi = 0.
Le vecteur dérivée des énergies potentielles du manipulateur complet est donc :

g = gs + gg (2.52)

2.3.5 Matrice de raideur

Le modèle statique, qui est une sous-partie du modèle dynamique, est donné par :

g(α) = Z(α)f (2.53)

57
Partie , Chapitre 2 – Modélisation

Il s’agit du modèle dynamique dans le cas où il n’y a pas de mouvements, c’est-à-dire avec
α̇ = 0 et α̈ = 0.
La matrice de raideur articulaire du manipulateur est obtenue en dérivant le modèle statique
par rapport à α :
∂ (g − Zf)
K= (2.54)
∂α
Cette matrice indique la capacité du manipulateur à rester en place lorsqu’on applique des
perturbations extérieures.
On peut décomposer le calcul de cette matrice de la manière suivante :

∂ g ∂ (Zf)
K= − (2.55)
∂α ∂α

∂g
∂α est calculé à partir de l’expression de g. Les calculs sont fournis dans l’annexe C.4.
Soit dZ la matrice telle que :

A(i, j)
∂ 2l j (αi )
dZ(i, j) = (2.56)
∂ αi2

A(i, j)
Comme les câbles ont été découpées en tronçons dont la longueur l j le long du module
A(i, j)
∂ 2l j (αi )
i ne dépend que de la variable αi , on a ∂ αi ∂ αk = 0 lorsque i ̸= k.
De ce fait, la dérivée de Zf par rapport à α est une matrice diagonale. L’élément i de la
diagonale de cette matrice est donnée par :

∂ Zf
(i, i) = dZ(i, :) f (2.57)
∂α

où dZ(i, :) est la ligne i de la matrice dZ.


D’après les formules ci-dessus, nous pouvons remarquer que :
— les termes des forces n’interviennent que sur la diagonale de K, ce qui peut permettre
un contrôle sur la raideur du manipulateur. C’est ce qui est fait sur un module dans
[Van+19] ;
— comme les ressorts d’un module n’ont aucun effet sur les autres modules, les termes de
raideurs des ressorts n’interviennent que sur la diagonale de K ;
— ainsi, les éléments non-diagonaux ne sont dus qu’à la gravité.

58
2.3. Modèle dynamique

2.3.6 Modélisation des frottements

Afin de rendre le modèle plus réaliste, nous allons également modéliser des frottements.
Nous supposons que les frottements proviennent majoritairement des moteurs. En effet, les
autres sources de frottements proviennent des articulations pivots entre les barres ainsi que des
poulies, mais celles-ci étant munies de roulements sur notre prototype, ces frottements sont
faibles. Par ailleurs, comme la vitesse des câbles est proportionnelle à θ̇ , les vitesses des pou-
lies le sont également. Ainsi, notre modélisation inclue les frottements dus aux poulies. Nous
modélisons deux types de frottements, les frottements secs et les frottements visqueux.
Les frottements secs peuvent être alors modélisés de la manière suivante :

fdry (fs , θ̇ ) = diag(sign(θ̇ ))fs (2.58)

où fs = [ fs (1), ..., fs (N f )]T est un vecteur constant qui doit être identifié, diag(v) est une matrice
diagonale (N f × N f ) construite avec les composantes de v et sign est la fonction de signe. Ce
modèle a cependant un défaut : il n’assure pas la continuité en 0, ce qui peut poser problème
pour l’intégrer dans la commande ou dans la simulation. Un modèle assurant la continuité peut
être écrit comme suit :
2
fdry (fs , θ̇ ) = diag( atan(cm θ̇ ))fs (2.59)
π
où cm est un paramètre de réglage qui permet d’ajuster la pente de l’arc-tangente autour de 0.
Le facteur π2 assure que fdry tend vers fs et −fs lorsque θ̇ a des valeurs positives et négatives
respectivement, comme on peut le voir sur la Figure (2.8).
Les frottements visqueux peuvent se modéliser de la manière suivante :

fvisc (fv , θ̇ ) = diag(θ̇ )fv (2.60)

où fv = [ fv (1), ..., fv (N f )]T est un vecteur constant qui doit être identifié.
Ainsi, les frottements des moteurs sont :

f f riction (fs , fv , θ̇ ) = fdry (fs , θ̇ ) + fvisc (fv , θ̇ ) (2.61)

Ces frottements sont à retirer des forces appliquées. Ils sont donc intégrés dans l’équation
du mouvement (2.28) de la manière suivante :
 2 
M(α)α̈ + c(α, α̇) + g(α) = Z(α) f − diag( atan(cm θ̇ ))fs − diag(θ̇ )fv (2.62)
π

59
Partie , Chapitre 2 – Modélisation

F IGURE 2.8 – Fonction arc-tangente utilisée pour modéliser les frottements.

Puisque notre modèle inclut les frottements des poulies, nous pourrons avoir des coefficients
de frottements différents pour chacun d’entre eux, dépendant du câblage associé. Cependant,
notre modèle est peu précis sur les poulies : on suppose que la tension dans le câble est uniforme
et que les frottements dus aux poulies impactent cette tension de manière uniforme. Des modèles
de frottements des poulies plus précis sont proposés dans [CPP17] et [Miy+20]. Nous verrons
cependant que notre modèle, bien que simple, permettra une reconstruction satisfaisante des
résultats expérimentaux en simulation.

2.3.7 Modélisation des câbles élastiques


Le modèle du manipulateur tel que décrit par l’équation du mouvement (2.62) suppose que
les câbles utilisés sont non-déformables. Cependant, les câbles sont en pratique élastiques : plus
on tire fort dessus, plus ils s’allongent. Nous proposons donc un second modèle qui prend en
compte cette élasticité.
Tous les câbles sont désormais considérés comme élastiques. En supposant que θi = 0, i =
1, .., 4 lorsque le manipulateur est en αi = 0, i = 1, ..N f au repos (c’est-à-dire avec des forces
nulles appliquées et, donc, avec des allongements de câble nuls), le vecteur des allongements
élastiques de câble xc = [xc1 , ..., xN f ]T est défini comme :

rd
xc = l − l0 − θ (2.63)
R

Autrement dit, l’allongement de chaque câble est défini comme la différence entre sa lon-

60
2.3. Modèle dynamique

gueur théorique telle que calculée précédemment et la longueur de câble déduite depuis la po-
sition du moteur associé.
En dérivant l’équation (2.63) par rapport au temps, on obtient :

rd
Z(α)T α̇ = θ̇ + ẋc (2.64)
R

Soit tc = [tc1 , ...,tN f ]T le vecteur des tensions dans les câbles, que l’on suppose uniforme
pour chaque câble. Si l’on considère le système composé des moteurs et des câbles uniquement,
on peut écrire l’équation du mouvement de θ comme :

rd rd rd
Ia θ̈ + tc + f f riction = f (2.65)
R R R

où f f riction est le vecteur des frottements des moteurs tel que décrit précédemment.
D’autre part, si l’on considère le système composé des câbles et du manipulateur unique-
ment, l’équation du mouvement de α s’écrit :

Mm (α)α̈ + cm (α, α̇) + g(α) = Z(α)tc (2.66)

Le système complet est donc décrit par deux équations du mouvement, l’une pour les mo-
teurs et l’autre pour le manipulateur. Les deux sont liées par les tensions des câbles.
En dérivant l’équation (2.64) par rapport au temps et en substituant θ̈ à l’équation (2.65), le
vecteur des tensions des câbles peut être exprimé comme suit :

R 2
tc = f − f f riction − Ia ( ) (Z(α)T α̈ + Ż(α, )T α̇ − ẍc ) (2.67)
rd

La substitution de l’expression ci-dessus dans l’équation (2.66) donne le modèle dynamique


du système complet avec l’élasticité des câbles :
 R 2 
M(α)α̈ + c(α, α̇) + g(α) = Z(α) f − f f riction + Ia ( ) ẍc (2.68)
rd

On remarquera que la partie gauche est la même que dans l’équation du mouvement (2.62)
du premier modèle. Seule la partie droite est modifiée, avec l’ajout d’un terme contenant l’accé-
lération de l’allongement du câble. Mais le second changement, qui n’est pas visible dans cette
équation mais dans l’équation (2.63), est que la relation entre α et θ dépend de l’allongement
des câbles.

61
Partie , Chapitre 2 – Modélisation

Il nous reste à détailler le calcul de l’allongement et ses dérivées. Nous allons étudier trois
modèles de raideur de câble, pour lesquels nous identifierons les paramètres pour notre proto-
type afin de les comparer et de choisir le plus adéquat.
Le premier modèle est un modèle de câble général qui permet d’identifier un ensemble de
paramètres pour chaque câble :

tc (i) = k(i)xci + ca (i)ẋci (2.69)

ou, sous forme de vecteur :


tc = diag(xc )k + diag(ẋc )ca (2.70)

où k = [k(1), ..., k(N f )]T est le vecteur constant des raideurs des câbles et ca = [ca (1), ..., ca (N f )]T
est le vecteur constant des coefficients d’amortissement.
Le second et le troisième modèle élastique sont basés sur le module de Young [KT15] :

ES cS
tc = diag(xc ) + diag(ẋc ) (2.71)
lcable lcable

où S est la section du câble, E est le module d’Young et c est un coefficient d’amortissement.


lcable est la longueur du câble : pour le second modèle, nous prenons lcable = ltot la longueur
totale du câble, tandis que dans le troisième modèle, nous prenons lcable = l la longueur déroulée
du câble. C’est usuellement la longueur déroulée du câble qui est utilisée, mais nos longueurs
de câbles déroulées étant faibles comparées à la plupart des robots parallèles à câbles, nous
envisageons également la longueur totale du câble car il n’est pas évident que la partie autour
de l’enrouleur ne s’allonge pas.
Quelque soit le modèle, l’allongement peut être calculé en fonction de la tension dans le
câble. En utilisant l’équation (2.65), la tension dans le câble peut être écrite comme suit :

R
tc = f − f f riction − Ia θ̈ (2.72)
rd

On peut donc, à partir des forces appliquées par les moteurs et leurs vitesses et accélérations,
calculer la tension dans les câbles puis l’allongement de ces derniers.

2.3.8 Extension pour des modules de tailles différentes


Toutes les équations présentées ici peuvent s’étendre facilement pour modéliser un manipu-
lateur dont les modules ont des barres de tailles différentes. Chaque module i reste symétrique,

62
2.4. Conclusion

c’est-à-dire que ses barres diagonales ont la même longueur Li et ses barres du bas et du haut
ont la même longueur bi .
Il suffit de remplacer dans les équations les longueurs L et b par les longueurs Li et bi
correspondantes. Ces longueurs étant constantes, il n’y a pas de dérivées supplémentaires. La
fonction d(αi ) doit être démultipliée car elle devient différente pour chaque module : on doit
utiliser à la place les N fonctions di (αi , Li , bi ) dont les expressions sont similaires en remplaçant
L et b par Li et bi .

2.4 Conclusion
Après avoir présenté le manipulateur, le modèle géométrique et le modèle dynamique de ce
dernier ont été établis. Le modèle géométrique nous permet de passer d’un espace à un autre, ce
qui sera utile pour calculer l’espace de travail du manipulateur et pour établir les commandes.
Le modèle dynamique nous sera également utile pour établir les commandes, mais aussi
pour effectuer des simulations. Nous ajoutons en pratique une tête sur le dernier module de
notre manipulateur. La prise en compte de la tête dans le modèle dynamique est en annexe C.6.
Nous allons maintenant analyser différents points, dont l’actionnement du manipulateur et
son espace de travail. Le modèle statique va être particulièrement utile dans ces analyses.

63
C HAPITRE 3

A NALYSE D ’ UN MANIPULATEUR
ENTIÈREMENT ACTIONNÉ

Dans ce chapitre, nous allons présenter des éléments d’analyse qui nous permettront de
mieux comprendre le fonctionnement du manipulateur et de choisir l’actionnement et les rai-
deurs des ressorts du prototype.
Dans un premier temps, nous quantifierons l’impact de la prise en compte des poulies dans
le calcul de la longueur des câbles et des éléments de la matrice Z pour les différents passages
de câbles que nous avons considéré.
Nous nous intéresserons ensuite à l’actionnement du manipulateur. Nous définirons ce qu’est
un actionnement complet, puis nous en détaillerons deux qui seront utilisés par la suite.
Nous présenterons également un algorithme de calcul de l’espace de travail statique du
manipulateur. Les deux actionnements complets considérés seront comparés à l’aide de leurs
espaces de travail respectifs sur un manipulateur constitué de trois modules.
Pour terminer, nous donnerons plusieurs méthodes permettant de calculer les raideurs des
ressorts du manipulateur afin que ce dernier soit stable tout en ayant un espace de travail satis-
faisant.
Nous nous limitons dans ce chapitre aux manipulateurs entièrement actionnés. Les manipu-
lateurs sous-actionnés seront abordés dans le chapitre 7.

3.1 Étude de l’impact des poulies sur le modèle dynamique


Nous avons développé un modèle prenant en compte les poulies utilisées pour le câblage,
qui est théoriquement bien plus complexe que le modèle sans poulies. Bien qu’ayant un petit
rayon, les poulies que nous utilisons ont un impact non-négligeable sur le comportement du
manipulateur.
On peut évaluer l’impact des poulies sur le modèle dynamique sur plusieurs points. Nous
étudions ici les points suivants :

65
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

— les longueurs variables des câbles ;


— les coefficients de la matrice Z.
Concernant les longueurs variables des câbles, nous avons comparé les longueurs obtenues
en négligeant les poulies dans le calcul avec les longueurs obtenues en les prenant en compte.
Ces longueurs sont affichées pour chaque passage de câble considéré dans cette thèse sur la
Figure (3.1). La longueur variable est calculée en référence par rapport à la longueur en α = 0,
c’est pourquoi les courbes passent en 0 en cette valeur. Nous pouvons observer des différences
notables entre les deux calculs. Dans le cinquième cas, le calcul négligeant les poulies donne
une valeur nulle quelque soit la valeur de α tandis que le calcul prenant en compte les poulies
donne de faibles valeurs non-nulles.

F IGURE 3.1 – Longueur variable des câbles en fonction de α pour les cinq passages de câble.

La différence moyenne entre les deux calculs de longueur variable est de 4, 1mm. Cette
valeur n’est pas négligeable pour les dimensions de notre module, puisqu’elle correspond à
environ 5% de la longueur variable maximale des câbles sur un module.
Pour les coefficients de la matrice Z, ces derniers dépendent de l’actionnement. Nous avons
détaillé cinq passages de câbles différents dans le chapitre précédent (voire Figure (2.6)), nous

66
3.2. Actionnements et répartition des forces

Intervalle mean(|e1r |) mean(|e2r |) mean(|e3r |) mean(|e4r |) mean(|e5r |)


[−π, π] 19.4% 19.4% 29.8% 29.8% 100%
π π
[− 2 , 2 ] 9.5% 9.5% 17.4% 17.4% 100%
TABLE 3.1 – Moyennes des différences des coefficients de Z avec et sans poulies.

allons donc regarder pour chacun de ces passages la différence sur le terme associé de Z. Les
valeurs prises par les éléments de Z ont été montrées en Figure (2.7).
Plus précisément, pour chaque câblage k ∈ {1, ...5}, nous allons regarder sur un grand
nombre de valeurs de α (10 000 en pratique) réparties uniformément dans un intervalle donné,
la valeur moyenne du terme ekr (α) défini par la formule suivante :

∂ l kj (α) ∂ l kj (α,r=0)

ekr (α) = ∂α ∂α
(3.1)
∂ l kj (α)
∂α

où l kj (α, r = 0) est la longueur du câble lorsque le rayon de la poulie est nul.


Deux intervalles sont employés : le premier est la plage d’orientation maximale possible
[−π, π], tandis que la seconde est une plage d’orientation plus limité [− π2 , π2 ].
Les résultats pour chacun de ces intervalles sont présentés dans le tableau (3.1). On peut
remarquer qu’avec la symétrie des câblages, les résultats des deux premières colonnes sont
identiques, de même pour la troisième colonne et la quatrième colonne. Pour l’intervalle le plus
grand, les différences sont loin d’être négligeables. Les différences moyennes sont plus faibles
pour l’intervalle restreint, ce qui montre que l’impact des poulies est plus important pour les
valeurs de α dans [−π, − π2 ] et [ π2 , π]. Mais même pour l’intervalle restreint, les différences sont
élevées : les moyennes les plus faibles sont autour de 10%. La dernière colonne est de 100%
dans les deux cas car les poulies entraînent l’apparition d’un coefficient qui est nul sans poulies.
Ainsi, l’impact des poulies sur le modèle dynamique est important et ne peut donc pas être
négligé.

3.2 Actionnements et répartition des forces


Nous détaillons ici des éléments sur les actionnements possibles. Nous allons principa-
lement nous intéresser à deux actionnements complets différents, qui seront majoritairement
employés par la suite. Nous expliciterons également la forme des matrices Z associées à ces
actionnements.

67
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

Commençons par définir un actionnement complet pour notre manipulateur. Nous dirons
qu’un actionnement (caractérisé par la matrice Z(α)) est complet si pour toute configuration α
du manipulateur dans l’espace de travail géométrique et pour tout ensemble de couples désirés
u = [u(1) ... u(N)]T , il existe au moins un ensemble de forces f dont tous les éléments sont
positifs et tel que :
u = Z(α)f (3.2)

En d’autres termes, quelque soit la configuration du manipulateur, l’actionnement permet


d’appliquer n’importe quel ensemble de couples désirés si l’on ne considère pas de limite maxi-
male sur les forces. Rappelons que les forces doivent toutes être positives car on ne peut utiliser
les câbles uniquement pour tirer.
Une première question qui se pose est : combien de moteurs faut-il au minimum pour
avoir un actionnement complet ? Comme notre manipulateur possède N degrés de liberté, il
est évident qu’il faut au moins N moteurs. Cependant, cette condition n’est pas suffisante. En
effet, la matrice Z correspondant à un actionnement avec N moteurs est une matrice carrée de
taille N × N. Si les câbles sont mal placés et que la matrice Z(α) n’est pas de rang N pour toute
configuration α, alors elle n’est pas inversible et l’actionnement n’est pas complet. Si les câbles
sont bien placés et que la matrice Z(α) est inversible pour toute configuration α, alors suppo-
sons que pour tout vecteur u de taille N et pour toute configuration α, il existe un jeu de forces
positives f vérifiant u = Z(α)f. Pour un tel vecteur u non-nul, comme la matrice Z est carrée, le
jeu de forces positives associé est unique et vaut f = Z(α)−1 u. Le jeu de forces correspondant à
−u est lui aussi unique et vaut Z(α)−1 (−u) = −f. Or les éléments de −f sont tous négatifs (et
au moins un est strictement négatif comme u est non-nul). Cela démontre par l’absurde qu’un
actionnement avec N moteurs ne peut pas être complet.
Un actionnement complet requiert au minimum N + 1 moteurs. Pour le montrer, il suffit
d’en trouver un qui fonctionne. Un tel exemple va être présenté, à la suite d’un actionnement
complet basique avec 2N moteurs.

3.2.1 Actionnement avec 2N moteurs


Comme chaque module est majoritairement actionné par deux câbles, un à sa gauche et le
second à sa droite (les câbles passés en strut-routed influençant peu le module), un premier
actionnement complet intuitif est celui composé de N f = 2N moteurs, où chaque câble est placé
sur le côté d’un seul module. La Figure (3.2) montre un tel actionnement avec N = 3 modules
(et donc N f = 6 moteurs). Les câbles placés sur les côtés du module i sont passés en strut-routed

68
3.2. Actionnements et répartition des forces

F IGURE 3.2 – Câblage sur N = 3 modules d’un actionnement complet avec N f = 6 moteurs.

par les modules inférieurs.


On ordonne les câbles de la manière suivante : d’abord les câbles tirant à gauche des modules
de bas en haut, puis ceux tirant à droite des modules de bas en haut.
La matrice A de cet actionnement sur un manipulateur constitué de trois modules est donc :
 
1 5 5 2 5 5
A = 0 1 5 0 2 5 (3.3)
 

0 0 1 0 0 2

Restons sur l’exemple en Figure (3.2) pour détailler les longueurs des câbles. D’après les
longueurs partielles présentées en section 2.2.4,ces longueurs sont :

l1 = l11 (α1 ) (3.4a)


l2 = l25 (α1 ) + l21 (α2 ) (3.4b)
l3 = l35 (α1 ) + l35 (α2 ) + l31 (α3 ) (3.4c)
l4 = l42 (α1 ) (3.4d)
l5 = l55 (α1 ) + l52 (α2 ) (3.4e)
l6 = l65 (α1 ) + l65 (α2 ) + l62 (α3 ) (3.4f)

69
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

La matrice Z de cet actionnement, de taille N × 2N, s’écrit alors de la manière suivante :

Z = [Zl Zr ] (3.5)

où Zl et Zr sont deux matrices carrées triangulaires supérieures de taille N × N.

Zl représente tous les câbles tirant sur la gauche des modules. Sa diagonale correspond
aux portions de câbles placés à gauche des modules, et les éléments au dessus de la diagonale
correspondent aux autres portions de ces câbles placés en strut-routed. Sur un manipulateur
constitué de trois modules, cette matrice est donc :

∂ l25 (α1 ) ∂ l35 (α1 )


 ∂ l 1 (α
1)

1
∂ α1 ∂ α1 ∂ α1
∂ l21 (α2 ) ∂ l35 (α2 ) 
 
Zl = 
 0 ∂ α2 ∂ α2 
(3.6)
∂ l31 (α3 )
0 0 ∂ α3

Zr représente tous les câbles tirant sur la droite des modules. Sa diagonale correspond aux
portions de câbles placés à droite des modules, et les éléments au dessus de la diagonale corres-
pondent aux autres portions de ces câbles placés en strut-routed. Sur un manipulateur constitué
de trois modules, cette matrice est donc :
 
∂ l42 (α1 ) ∂ l55 (α1 ) ∂ l65 (α1 )
 ∂ α1 ∂ α1 ∂ α1 
∂ l52 (α2 ) ∂ l65 (α2 ) 
Zr =  (3.7)

0 ∂ α2 ∂ α2 

∂ l62 (α3 )

0 0 ∂ α3

Explicitons maintenant la manière de déterminer les forces à choisir pour produire un vec-
teur de couple u sur les modules (équation (3.2)) avec cet actionnement. Nous voulons égale-
ment que toutes les forces soient supérieures à fmin > 0. Le point important est que tous les
éléments de la diagonale de Zl sont positifs tandis que tous ceux la diagonale de Zr sont néga-
tifs, quelque soit la configuration α, comme nous l’avons vu sur la Figure (2.7).

On commence par calculer les forces appliquées sur le module du haut : le module N. Pour
celui-ci, l’équation à résoudre est :

u(N) = Zl (N, N) f (N) + Zr (N, N) f (2N) (3.8)

avec Zl (N, N) > 0 et Zr (N, N) < 0. Il y a une infinité de solutions à cette équation car on a deux

70
3.2. Actionnements et répartition des forces

inconnues. L’équation peut se réécrire de la manière suivante :

u(N) − Zr (N, N) f (2N)


f (N) = (3.9)
Zl (N, N)

L’espace des solutions pour f (N) et f (2N) est donc de dimension 1. Afin de minimiser les
forces appliquées, on peut choisir l’unique solution telle que l’une des deux forces soit à la
borne minimale, et que l’autre soit supérieur à cette borne.
Pour générer un couple u(N) positif, le câble gauche via f (2N) doit être tiré, et le câble
droit via f (N) relâché. Pour formaliser ce principe en tenant compte des limites minimales sur
les forces, on regarde le signe de (u(N) − (Zl (N, N) + Zr (N, N)) fmin ), s’il est positif, on choisit
f (N) = fmin et on calcule f (2N) ; s’il est négatif on choisit f (2N) = fmin et on calcule f (N)
soit :
(
f (N) = fmin
si u(N) − (Zl (N, N) + Zr (N, N)) fmin ≤ 0 : l (N,N) f min
f (2N) = u(N)−Z
Zr (N,N)
(3.10)
r (N,N) f min
(
f (N) = u(N)−Z
Zl (N,N)
si u(N) − (Zl (N, N) + Zr (N, N)) fmin > 0 :
f (2N) = fmin

Nous connaissons donc les forces appliquées sur le dernier module. Grâce à cela, on peut
calculer les forces appliquées sur chacun des modules en descendant avec la même méthode, en
reportant les forces déjà calculées pour les câbles en strut-routed. Plus précisément, on définit
la quantité :
N  
cd (i) = u(i) − ∑ Zl ( j, i) f ( j) + Zr ( j, i) f (N + j) (3.11)
j=i+1

qui correspond au couple que l’on doit appliquer avec les forces agissant sur les côtés du module
i. Cette quantité est connue puisqu’on a calculé les forces appliquées sur les modules supérieurs
auparavant. Les forces f (i) et f (N + i) sont alors calculées de la manière suivante :
(
f (i) = fmin
si (Zl (i, i) + Zr (i, i)) fmin − cd (i) ≥ 0 : cd (i)−Zl (i,i) fmin
f (N + i) = Zr (i,i)
( cd (i)−Zr (i,i) fmin
(3.12)
f (i) = Zl (i,i)
si (Zl (i, i) + Zr (i, i)) fmin − cd (i) < 0 :
f (N + i) = fmin

Nous avons ici donné un calcul cherchant à minimiser les forces, qui met la moitié des
forces à fmin . Une autre possibilité aurait été de contrôler la raideur de chaque module en plus de

71
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

l’orientation, comme dans [Van+19]. Dans cette thèse, nous nous intéresserons peu à la raideur
du manipulateur, et nous chercherons plutôt à minimiser les forces appliquées pour minimiser
le coût énergétique du manipulateur, d’où le calcul proposé.
On remarquera qu’en considérant des poulies de rayon nul, les éléments non diagonaux de
Zl et Zr sont tous nuls, ce qui permet de résoudre le système plus facilement, toutes les lignes
étant indépendantes les unes des autres.
Cet actionnement nécessitant beaucoup de moteurs, nous proposons maintenant un action-
nement nécessitant presque deux fois moins de moteurs.

3.2.2 Actionnement avec N + 1 moteurs


Nous avons précédemment montré qu’il fallait strictement plus de N moteurs pour avoir un
actionnement complet. Nous présentons ici un actionnement complet avec N + 1 moteurs.
Le câblage permettant cet actionnement est le suivant : N câbles sont positionnés à droite de
la même manière que pour l’actionnement à 2N moteurs, et le dernier câble passe sur la gauche
de tous les modules. Par la suite, nous désignerons ce dernier câble comme le câble long. L’idée
est que le câble long est utilisé pour tirer sur la gauche tous les modules, et que les câbles courts
permettent d’ajuster le couple appliqué sur chaque module. Des variantes de ce câblage sont
également possibles. La plus simple est le câblage symétrique, avec le câble long à droite et
les câbles courts à gauche. On peut également avoir des câblages où le câble long passe par la
gauche d’une partie des modules, et sur la droite des autres modules, tandis que les câbles courts
sont disposés au côté opposé au câble long. Nous détaillons ici le cas du câble long uniquement
à gauche, mais ces variantes se traitent avec la même méthode.
Un exemple de ce câblage sur N = 3 modules est montré en Figure (3.3). Le câble long est
en vert, et les câbles courts tirant à droite des modules 1, 2 et 3 sont respectivement en bleu,
orange et rouge. Ces câbles courts sont passés en strut-routed sur les modules inférieurs.
Nous ordonnons les moteurs de la manière suivante : les câbles 1 à N sont les câbles courts
de bas en haut (le câble i tire sur la droite du module i) et le câble long est le câble N + 1.
La matrice A de cet actionnement sur un manipulateur constitué de trois modules est donc :
 
2 5 5 3
A = 0 2 5 3 (3.13)
 

0 0 2 1
Reprenons l’exemple en Figure (3.3) pour détailler les longueurs des câbles. Ces longueurs

72
3.2. Actionnements et répartition des forces

α3

α2

α1

c1 c4
c2 c3

F IGURE 3.3 – Câblage sur N = 3 modules d’un actionnement complet avec N f = 4 moteurs.

sont :

l1 = l12 (α1 ) (3.14a)


l2 = l25 (α1 ) + l22 (α2 ) (3.14b)
l3 = l35 (α1 ) + l35 (α2 ) + l32 (α3 ) (3.14c)
l4 = l43 (α1 ) + l43 (α2 ) + l41 (α3 ) (3.14d)

Ainsi, la matrice Z s’écrit de la manière suivante :

Z = [Z1 Z2 ] (3.15)

où Z1 est une matrice triangulaire supérieure et Z2 est un vecteur de taille N.


Dans notre cas, Z1 a la même expression que Zr dans l’équation (3.7). Nous prenons une
autre notation car des variantes de câblage sont possibles. L’hypothèse importante pour mener
le calcul est l’inversibilité de Z1 (garantie pour une forme triangulaire avec une diagonale sans
élément nul).
Avec le câble long à gauche de tous les modules, l’expression de Z2 pour un manipulateur

73
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

constitué de trois module est :  ∂ l 3 (α ) 


4 1

 ∂ l∂3 (α
α1
Z2 =  ∂ α 2 ) 

 4 (3.16)
2 
∂ l41 (α3 )
∂ α3

Afin de montrer que cet actionnement est bien complet, nous allons détailler le calcul des
forces permettant de vérifier l’équation (3.2). Nous allons également satisfaire la contrainte que
toutes les forces soient supérieures à fmin > 0.
L’équation (3.2) se réécrit :

u = Z1 f1N + Z2 f (N + 1) (3.17)

où f1N = [ f (1), ..., f (N)]T .


Puisque Z1 est inversible, f peut s’exprimer en fonction de f (N + 1) de la manière suivante :
! !
Z−1
1 u −Z−1
1 Z2
f= + f (N + 1) (3.18)
0 1

L’espace des solutions est donc de dimension 1, et est paramétré par f (N + 1).
Il a été vérifié numériquement que tous les éléments de −Z−11 Z2 sont positifs, quelque soit la
configuration du manipulateur (ceci reste vrai tant que le rayon des poulies est petit par rapport
à la longueur des barres car seuls les termes des câbles passés en strut-routed peuvent rendre les
éléments négatifs). Ainsi, augmenter f (N + 1) entraîne l’augmentation de toutes les forces.
Afin de minimiser les forces appliquées, nous allons donc calculer les forces afin de respec-
ter les limites inférieures, tout en en ayant une sur cette limite.
Ainsi, on calcule N f candidats pour f (N + 1) : un pour chaque ligne de l’équation (3.18).
Ce candidat fc ( j) est calculé afin d’avoir f ( j) = fmin :
!
h Z−1 u i
1
fmin − ( j)
0
fc ( j) = ! (3.19)
h −Z−1 Z i−1
1 2
( j)
1
! ! ! !
Z−1
1 u Z−1
1 u −Z −1
1 Z2 −Z−1
1 Z2
où ( j) est l’élément j de et ( j) est l’élément j de .
0 0 1 1
En prenant la valeur maximale de ces candidats, nous sommes sûrs que chacune des forces

74
3.3. Espace de travail statique du manipulateur

est supérieure à fmin . Les forces à appliquer pour résoudre l’équation tout en vérifiant les limites
inférieures des forces et en minimisant la somme des forces sont donc :
! !
Z−1
1 u −Z −1
1 Z 2
f= + max j ( fc ( j)) (3.20)
0 1

Comme pour l’actionnement avec 2N moteurs, nous avons ici choisi de minimiser les forces
mais nous avions un degré de liberté qui nous permettait de jouer sur la raideur de tous les mo-
dules en même temps : choisir une valeur supérieure à max j ( fc ( j)) pour f (N + 1) augmenterait
toutes les forces et ainsi la raideur de tous les modules. Cette possibilité ne sera pas étudiée dans
cette thèse, l’objectif étant de minimiser les forces appliquées.

3.3 Espace de travail statique du manipulateur


Nous allons nous intéresser ici aux positions que la barre du haut du manipulateur peut
atteindre. La tête ajoutée est donnée à titre d’exemple et aurait vocation à être remplacée par un
outil. Nous distinguerons deux types d’espace de travail :
— l’espace de travail géométrique, qui est l’image dans l’espace cartésien de l’ensemble
des configurations atteignables par le manipulateur en ayant pour limite uniquement les
limites géométriques (dans notre cas les limites articulaires). Nous ne nous intéressons
pas à cet espace dans cette thèse, le suivant étant plus pertinent ;
— l’espace de travail statique, qui intègre en plus des contraintes articulaires les contraintes
d’équilibre, avec des forces bornées. C’est cet espace que nous allons étudier.
Dans la suite, l’espace de travail indiquera donc l’espace de travail statique, sauf mention
du contraire.
L’espace de travail statique du manipulateur est l’ensemble des positions accessibles par
la barre du haut du manipulateur telles que le manipulateur puisse être en équilibre dans ces
configurations.
Tout d’abord, la condition d’équilibre se vérifie avec le modèle statique du manipulateur.
Celui-ci est donné par :
g(α) = Z(α)f (3.21)

Pour une configuration α donnée, il faut donc qu’il existe un ensemble de forces qui permettent
de maintenir le manipulateur en équilibre.
Des limites sont imposées aux forces, qui dépendent des moteurs utilisés pour actionner le

75
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

manipulateur et des tensions admissibles dans les câbles. Ainsi, les forces doivent satisfaire :

fmin ≤ f j ≤ fmax (3.22)

Des limites articulaires sont également fixées. Elles peuvent provenir des limites physiques
du prototype, ou de données biologiques provenant des vertèbres des oiseaux par exemple. Les
orientations des modules doivent donc satisfaire :

αmin (i) ≤ αi ≤ αmax (i) (3.23)

Il faut également vérifier qu’il n’y ait pas de collisions internes (entre les modules du mani-
pulateur, la tête et les moteurs) et de collisions externes si des obstacles sont présents.
L’espace de travail du manipulateur est donc l’ensemble des poses accessibles sans collision
de l’espace opérationnel telles qu’il existe un jeu de forces tel que les équations (3.21), (3.22)
et (3.23) sont satisfaites.
Nous allons voir comment calculer cet espace de travail. Il est à noter que le modèle géo-
métrique inverse ne peut être résolu explicitement. Il est donc compliqué d’obtenir l’ensemble
des configurations α permettant d’atteindre une pose désirée. Nous explorerons donc l’espace
articulaire afin de trouver les configurations validant le modèle statique, puis nous calculerons
les poses correspondantes.

3.3.1 Détection des collisions


Tout d’abord, nous allons détailler la détection des collisions. Cette détection se fait dans le
plan du manipulateur. Le manipulateur est décomposé en plusieurs parties :
— chaque module est considéré comme une partie ;
— la tête est considérée comme une partie ;
— la plateforme sur laquelle est attaché le manipulateur, ainsi que les moteurs sont consi-
déré comme une partie.
Pour la détection des collisions internes, on vérifie toutes les collisions entre deux parties. Si
au moins un couple de parties est en collision, alors la configuration est dite en collision interne.
Pour la détection des collisions externes, pour un obstacle donné, on vérifie pour chaque
partie du manipulateur si elle est en collision avec cet obstacle. Si au moins une partie est en
collision avec l’obstacle, alors la configuration est dite en collision externe.
Chaque partie et chaque obstacle est représenté par un polygone. Par exemple, un module

76
3.3. Espace de travail statique du manipulateur

F IGURE 3.4 – Les polygones utilisés pour la détection des collisions.

est représenté par le trapèze formé par les ressorts et les barres non-croisées. Si la partie n’est
pas directement un polygone (par exemple la tête qui est ronde), alors on prendra un polygone
englobant. Les polygones de chaque partie sont montrés en rouge sur la Figure (3.4).
Le problème à résoudre est donc la détection de collision entre deux polygones. Nous dirons
qu’il y a collision entre deux polygones si au moins l’un des côtés du premier croise un des côtés
du second. Cela implique que si l’un des polygones est compris à l’intérieur de l’autre, nous ne
détectons pas cela comme une collision. Cependant, comme notre manipulateur est continu,
une de ses parties ne peut pas être inclue dans une autre sans qu’une tierce partie ne soit en
collision avec l’une des deux. Seul le cas d’obstacles trop petits peut poser problème, nous ne
considérerons donc pas d’obstacles dont la taille est inférieure à la taille des modules.
Il nous reste à détecter le croisement de deux segments (les côtés des polygones). Soient
AB et CD deux segments. Notons (xk , yk ) les coordonnées du point K. Nous supposons dans un
premier temps que les segments ne sont ni verticaux (xa ̸= xb et xc ̸= xd ) ni horizontaux (ya ̸= yb
et yc ̸= yd ). La droite prolongeant le segment AB a pour équation :

y = a1 x + b1 (3.24)

yB −yA −yA
où a1 = xB −xA et b1 = yA − ( xyBB −xA
)xA .
La droite prolongeant le segment CD a pour équation :

y = a2 x + b2 (3.25)

yD −yC
où a2 = xD −xC et b1 = yC − ( yxDD −yC
−xC )xC .

77
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

Si ces droites sont parallèles (a1 = a2 ), alors elles ne se croisent pas. Sinon, l’intersection de
ces deux droites se fait donc sur le point I dont les coordonnées sont (xI = ba21 −b 1
−a2 , yI = a1 xI +b1 ).
Il reste à vérifier que ce point se situe à la fois sur le segment AB et sur le segment CD, ce qui
se fait aisément à partir des coordonnées des points.
Les cas des segments horizontaux ou verticaux sont traités en cas particuliers d’une manière
similaire adaptée que nous ne détaillons pas ici.
La complexité de la détection de collisions peut être évaluée de la manière suivante en
fonction du nombre N de modules : chaque module possède quatre côtés, et l’on vérifie s’il est
en collision avec chacun des autres modules ainsi qu’avec la tête, la plateforme et les éventuels
obstacles. La complexité de la détection est donc en O(16N 2 + 4N). Les calculs en jeu étant
rapides, la vérification de collision se fait en un temps raisonnable pour les manipulateurs que
nous étudions (allant jusqu’à N = 10 modules). Par exemple, le temps de calcul avec N = 10
modules se fait en moyenne en 0.2ms dans le cas où il n’y a pas de collision (le calcul est plus
rapide quand il y a une collision car il s’arrête dès que la collision est détectée).

3.3.2 Exploration de l’espace articulaire


Une première méthode consiste à parcourir l’ensemble de l’espace articulaire et de vérifier
le modèle statique pour l’ensemble complet. Nous choisissons de discrétiser l’espace articulaire,
et de simplement vérifier pour chaque configuration discrète obtenue si elle vérifie le modèle
statique ou non. Cette méthode ne garantit pas que le modèle statique soit vérifié entre deux
configurations proches : il existe des méthodes fonctionnant sur des espaces continus en étudiant
des intervalles au lieu des valeurs discrètes [GDM10]. Cependant, la discrétisation permet un
affichage approché de l’espace de travail.
Nous utilisons un pas d’échantillonnage dα . Ainsi, en prenant en compte des limites articu-
laires, l’espace articulaire à étudier est :
 
a1
 
 a2 
{α = dα 
 ...  | ∀i ∈ {1, ..., N}, ai ∈ Z et αmin (i) ≤ αi ≤ αmax (i)}
 (3.26)
 
aN

Pour chacune de ces configurations, il faut donc vérifier si le modèle statique peut-être sa-
tisfait avec des forces dans les bornes fixées. Pour cela, nous allons calculer un jeu de forces
validant le modèle statique lorsque cela est possible. Ce calcul est fait en fonction de l’action-

78
3.3. Espace de travail statique du manipulateur

nement.

On ne considère que les actionnements complets. De manière générale, il y a une infinité de


jeux de forces satisfaisant le modèle statique. Il faut néanmoins vérifier qu’au moins l’un des
jeux de forces soit acceptable.

Les méthodes de calcul des forces ont été présentées précédemment pour les actionnements
avec 2N et N + 1 moteurs, qui sont ceux auxquels nous nous intéressons.

Complexité

Définissons les nombres di d’orientations possibles pour le module i :

αmax (i) − αmin (i)


di = sup( ) (3.27)

où sup est la fonction qui retourne l’entier supérieur à l’argument.


N
Le modèle statique doit être vérifié ( ∏ di ) fois. Ce nombre augmente donc de manière ex-
i=1
ponentielle par rapport au nombre de modules. Ainsi, cette méthode est utilisable dans un temps
raisonnable (moins d’une journée) jusqu’à N = 4 modules, mais devient ensuite bien trop longue
avec un pas d’échantillonnage dα suffisamment petit pour avoir des résultats intéressants (nous
prenons dα = 5deg, ce qui donne une cinquantaine d’orientations possibles par module). Nous
détaillerons en section 7.1 une méthode permettant une exploration dans un espace de dimen-
sion N f , ce qui permettra le calcul d’espaces de travail pour des manipulateurs avec beaucoup
de modules et peu de moteurs.

Exemple

L’espace de travail statique obtenue avec N = 3 modules et N f = 6 moteurs est montré en


Figure (3.5). Les barres ont pour longueur L = 10cm et b = 5cm. Les limites articulaires sont de
±144deg, les limites des forces sont fmin = 0N et fmax = 140N. Les ressorts du premier module
ont une raideur de 600N.m−1 tandis que ceux des deux autres modules sont de 200N.m−1 . Des
zones de l’espace de travail sont mises en évidence en fonction des forces nécessaires pour
les atteindre. La couleur verte indique qu’il existe un jeu de forces pour obtenir cette position
dont la somme est inférieure à 50N, la couleur bleue que cette somme est inférieure à 100N, et
la couleur rouge que cette somme est supérieure à 100N. L’espace de travail obtenu n’est pas
parfaitement symétrique à cause des collisions engendrées par la tête, qui n’est pas symétrique.

79
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

F IGURE 3.5 – Espace de travail statique pour l’actionnement à N f = 2N moteurs.

F IGURE 3.6 – Flexions principales du cou de l’oiseau représentées sur le manipulateur.

3.4 Analyse de l’espace de travail statique

Nous allons détailler ici plusieurs points utiles à la conception du manipulateur. Dans le
cou de l’oiseau, les vertèbres peuvent être scindées en trois groupes par rapport à leur posi-
tionnement et leur fonction [Ter+20]. Le groupe le plus proche de la tête est principalement
flexible dans la direction ventrale, le groupe intermédiaire est lui principalement flexible dans
la direction dorsale, et le groupe le plus proche du corps de l’oiseau est flexible dans les deux
directions. Ces directions sont indiquées par rapport à notre manipulateur sur la Figure (3.6).
Nous allons donc dans un premier temps nous intéresser à la conception d’un manipulateur avec
trois modules.
Nous ajouterons dans le chapitre 7 des éléments sur l’analyse d’un manipulateur sous-
actionné constitué d’une dizaine de modules.

80
3.4. Analyse de l’espace de travail statique

3.4.1 Influence des ressorts et de la gravité


Nous discutons ici des influences des énergies potentielles afin de justifier les choix qui
seront effectués pour choisir les raideurs des ressorts.
Plus on augmente la raideur des ressorts, plus le système est stable. Puisque nous ne voulons
pas que le manipulateur s’effondre sous son propre poids, nous nous orienterons donc vers des
raideurs de ressorts qui produisent des efforts plus important que la gravité sur notre manipula-
teur.
D’autre part, il faut que les raideurs des ressorts soient en cohérence avec les forces que l’on
souhaite appliquer. Il faut que l’on puisse atteindre les configurations désirées avec les forces
dans les bornes que l’on s’accorde. Il ne faut donc pas que les raideurs soient trop élevées pour
que l’on puisse atteindre un espace de travail suffisamment grand.
Il faut donc trouver un compromis entre des raideurs élevées pour contrer la gravité et des
raideurs faibles pour avoir un espace de travail de grande dimension.

3.4.2 Choix des ressorts avec le modèle statique


Nous allons ici présenter des méthodes permettant de calculer les raideurs des ressorts afin
d’atteindre divers objectifs. Nous nous basons sur le modèle statique afin de calculer ces rai-
deurs.
Nous allons principalement imposer des configurations d’équilibre. Le modèle statique nous
indique que la configuration α est une configuration d’équilibre avec les forces f si :

gs = Z(α)f − gg (3.28)

où gs est le vecteur dérivée de l’énergie potentielle provenant des ressorts et gg est le vecteur
dérivée de l’énergie potentielle provenant de la gravité.
Comme on peut le voir dans l’équation (2.46), l’élément i de gs est linéaire en la raideur des
ressorts du module i, et ne dépend pas des autres ressorts. Une configuration d’équilibre permet
donc d’établir une équation par module.
Des méthodes pour calculer les raideurs des ressorts qui garantissent un espace de travail
et une certaine stabilité pour le manipulateur constitué d’un seul module sont présentées dans
[MW21], et peuvent être étendues pour deux modules, mais ces méthodes ne sont pas appli-
cables pour des manipulateurs avec trois modules ou plus. Nous allons donc seulement ajouter
des contraintes afin d’assurer que le manipulateur puisse atteindre deux configurations extrêmes

81
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

qui correspondent aux limites articulaires de chaque module. Nous supposons que l’action-
nement considéré est complet et qu’un même câble ne tire que sur un côté du manipulateur
(comme c’est le cas pour les deux actionnements complets que nous avons introduits). Les
conditions sur gs et donc sur les ressorts pour que la configuration extrême la plus à gauche
αmax puisse être atteinte sont :

gs (αmax ) ≤ Z(αmax )fl − gg (αmax ) (3.29)

où fl est le jeu de forces où toutes les forces tirant à gauche sont à fmax et les autres forces sont
à fmin .
De façon symétrique, les conditions sur la configuration extrême la plus à droite sont :

gs (αmin ) ≥ Z(αmin )fr − gg (αmin ) (3.30)

où fr est le jeu de forces où toutes les forces tirant à droite sont à fmax et les autres forces sont à
fmin .
Ces équations nous donnent ainsi deux conditions pour chaque couple de ressort (un couple
étant formés par les ressorts d’un même module).
Les limites articulaires choisies sont αmin = −144deg et αmax = 144deg pour chaque mo-
dule, ce qui correspond aux limites articulaires du prototype que nous utiliserons. Les limites
des forces sont fmin = 0N et fmax = 140N.
Chaque module possède deux ressorts, et chacun de ces ressorts n’affecte que ce module.
Ainsi, pour chaque module nous allons établir deux équations linéaires en la raideur des ressorts
associés afin d’obtenir ces deux raideurs.
Utilisation de deux configurations à l’équilibre
Nous avons vu qu’une configuration d’équilibre permet d’établir une équation par module.
En fixant deux configurations d’équilibre, on peut donc calculer les raideurs des ressorts néces-
saires.
Si les forces f sont nulles, alors nous dirons que la configuration est en équilibre au repos.
On peut par exemple choisir une configuration au repos et une seconde configuration que l’on
souhaite atteindre avec un jeu de force fixé. On peut également choisir les deux configurations
extrêmes utilisées pour garantir l’espace de travail suffisant, avec les forces que l’on souhaite.
Il faut cependant être prudent car la résolution des équations linéaires n’assurent pas d’ob-
tenir des raideurs positives, ce qui est nécessaire pour la mise en pratique.
Utilisation d’une configuration à l’équilibre et d’une contrainte de raideur de module

82
3.4. Analyse de l’espace de travail statique

On peut fixer une configuration d’équilibre pour avoir une équation par module. Pour la
seconde, on peut fixer les valeurs de la diagonale de la matrice raideur K, dont l’élément i est
linéaire en les raideurs des ressorts du module i et ne dépend pas des autres. On utilise pour cela
l’équation (2.54).
Cela permet par exemple de fixer une configuration d’équilibre au repos et sa stabilité. Ici
aussi, la résolution des équations linéaires n’assure pas d’obtenir des raideurs positives, ce qui
est nécessaire pour la mise en pratique.
Utilisation d’une configuration à l’équilibre et d’une raideur moyenne des ressorts
On cherche ici à avoir plus de contrôle sur les valeurs potentielles des raideurs des ressorts,
afin d’avoir des résultats correspondant aux ressorts disponibles et d’avoir un meilleur contrôle
sur la positivité des ressorts.
On ajoute donc une contrainte sur la moyenne des raideurs (qui peut être différente pour
chaque module) afin d’avoir une seconde équation linéaire :

kl (i) + kr (i)
= vmean (i) (3.31)
2

où vmean est le vecteur des valeurs moyennes à fixer.


Cette méthode est similaire à la précédente mais permet un meilleur contrôle des résul-
tats obtenus.Ceci permet notamment de gérer l’ordre de grandeur des raideurs des ressorts afin
d’obtenir des raideurs proches de celles des ressorts disponibles en pratique. Une moyenne de
raideur élevée permet également d’avoir des raideurs positives : les raideurs des deux ressorts
d’un module augmentent toutes les deux lorsqu’on augmente leur moyenne puisqu’une confi-
guration d’équilibre est fixée.
C’est cette dernière méthode que nous avons utilisé pour choisir les raideurs du prototype
à trois modules. Nous avons fixé la configuration verticale (α = 0N×1 ) comme configuration
d’équilibre au repos, qui implique que les raideurs des ressorts à gauche sont identiques aux
raideurs des ressorts à droite (kl (i) = kr (i) pour chaque module i). Ainsi, les contraintes sur les
configurations extrêmes se simplifient et, par symétrie des configurations extrêmes considérées,
on obtient une contrainte par couple de ressort. Ainsi, avec une longueur à vide fixée à 0.046m
(soit la longueur à vide moyenne des ressorts disponibles), les contraintes sont :

kl (1) ≤ 996N.m−1 (3.32a)


kl (2) ≤ 730N.m−1 (3.32b)
kl (3) ≤ 577N.m−1 (3.32c)

83
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

Ensuite, nous avons fixé les valeurs moyennes des raideurs des ressorts, avec des valeurs plus
élevées pour le premier module afin d’assurer une meilleure stabilité. Nous avons également
choisi ces moyennes en fonction des ressorts disponibles pour le prototype. Nous avons donc
fixé :  
600
vmean = 200 N.m−1 (3.33)
 

200

Ainsi, les raideurs obtenues sont les suivantes : 600N.m−1 pour les ressorts à gauche et à
droite du premier module, et 200N.m−1 pour tous les autres ressorts.

3.4.3 Comparaison des actionnements complets


Nous comparons ici les espaces de travail obtenus avec les deux actionnements complets
que nous avons évoqués : celui avec N f = 2N moteurs et celui avec N f = N + 1 moteurs. Le
manipulateur étudié est constitué de 3 modules, et les raideurs des ressorts ainsi que les limites
des forces sont celles définies précédemment.
L’actionnement choisi pour le cas avec N + 1 moteurs est le suivant : un câble long à gauche
de tous les modules (côté où pointe le bec), et les trois autres câbles à droite des modules. Ce
choix s’inspire de la musculature du cou du pic, qui a un long muscle puissant du côté ventral
[Böh+19].
Le pas d’échantillonnage choisi est dα = 5deg, ce qui permet d’avoir environ 180 000 confi-
gurations avec les limites articulaires utilisées.
Les résultats obtenus pour les deux actionnements sont montrés en Figure (3.4.3). Dans
les deux cas, nous avons balayé les 180 000 configurations pour un temps de calcul d’environ
8sec. La non-symétrie de l’espace de travail pour N f = 2N moteurs est due à la détection des
collisions avec la tête qui est orientée bec vers la gauche. Nous pouvons remarquer que la forme
globale de l’espace de travail est la même : le fait d’avoir deux moteurs de moins ne modifie
que peu l’espace de travail. Il en est de même pour la zone verte, où les forces utilisées sont
faibles.
La différence principale est la zone bleue (somme des forces nécessaires entre 50N et 100N),
qui est bien plus importante dans la partie droite de l’espace de travail avec l’actionnement à
N f = 6 moteurs qu’avec l’actionnement à N f = 4 moteurs. Ceci s’explique par le placement
du câble long à gauche : celui-ci seul permet moins d’ajustement sur la gauche que les trois
câbles présents à gauche dans l’actionnement à N f = 6 moteurs. Dans le cas à N f = 4 moteurs,

84
3.5. Conclusion

F IGURE 3.7 – Espace de travail pour l’actionnement à N f = 2N moteurs (à gauche) et l’action-


nement à N f = N + 1 moteurs (à droite). La couleur verte indique qu’il existe une solution telle
que la somme des forces utilisées pour obtenir cette position est inférieure à 50N, la couleur
bleue que cette somme est inférieure à 100N, et la couleur rouge que cette somme est supé-
rieure à 100N.

les ajustements dans la partie gauche demandent d’utiliser les moteurs tirant à droite, et donc
d’augmenter les forces utilisées.
Comme les résultats restent très similaires, et afin de réduire le nombre de moteurs utilisées,
nous privilégierons l’actionnement avec N f = 4 moteurs pour notre prototype à N = 3 modules.

3.5 Conclusion
Nous avons analysé dans ce chapitre différents points permettant de mieux comprendre le
fonctionnement du manipulateur.
Nous avons d’abord vu que la prise en compte des poulies dans le calcul de la longueur des
câbles était importante car l’impact des poulies dans les modèles n’est pas négligeable.
Nous avons ensuite défini un actionnement complet, et montré qu’un tel actionnement né-
cessite au minimum N f = N + 1 câbles. Nous avons détaillé deux actionnements complets, l’un
avec N f = 2N câbles et le second avec N f = N + 1 câbles.
Nous avons comparé ces deux actionnement sur la base de l’espace de travail statique qu’ils
engendrent sur un même manipulateur constitué de trois modules. Nous en avons déduit que
pour ce manipulateur, l’actionnement avec N f = N + 1 câbles permet d’avoir un espace de
travail satisfaisant en comparaison avec l’actionnement à 2N câbles et nous le choisissons donc
pour le prototype puisqu’il permet d’utiliser moins de moteurs.
Nous avons également présenté plusieurs méthodes pour calculer les raideurs des ressorts,

85
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné

et l’une d’elle a été utilisée pour choisir les raideurs des ressorts du prototype.
Nous allons maintenant présenter le prototype, ainsi que l’identification des paramètres in-
connus sur ce dernier.

86
C HAPITRE 4

I DENTIFICATION DES PARAMÈTRES D ’ UN


PROTOTYPE À 3 MODULES ET 4
MOTEURS

Nous débutons dans ce chapitre la partie expérimentale. Le prototype et son fonctionnement


sont détaillés. Nous expliquerons également comment sont évalués les orientations des modules
α à partir des positions moteurs θ .
Plusieurs problèmes sont intervenus aux premiers essais expérimentaux aux cours desquels
les frottements moteurs étaient négligés et les câbles étaient supposés rigides.
Une identification des frottements moteurs, ainsi que de l’élasticité des câbles est donc mise
en place pour palier ces problèmes.
L’identification est effectuée directement sur le prototype, ce qui permet de se placer en
condition d’utilisation. Cela permet par exemple d’inclure les frottements des poulies dans les
frottements moteurs puisque la vitesse du câble est proportionnelle à la vitesse du moteur.
Les paramètres identifiés sont finalement intégrés dans un simulateur, ce qui le rend plus
fidèle.

4.1 Description du prototype


Rappelons d’abord les éléments que nous avons fixés auparavant :
— le manipulateur est un empilement de N = 3 modules ;
— les longueurs des barres diagonales sont L = 10cm et les longueurs des barres du haut et
du bas sont b = 5cm ;
— les ressorts de chaque côté du premier module ont une raideur de 600N.m−1 et les res-
sorts de chaque côté des deux autres modules ont une raideur de 200N.m−1 . Ainsi, la
configuration droite α = 0N×1 est une configuration d’équilibre au repos ;

87
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

— le nombre de moteurs est fixé à N f = 4. Le câblage utilisé est celui présenté en Figure
(3.3), avec le câble long sur la gauche du manipulateur et trois câbles sur sa droite.
Il n’est pas physiquement possible d’assembler un prototype dans un seul plan à cause des
barres diagonales qui se croisent. Ainsi, le prototype est monté sur deux plans, chacun contenant
l’une des barres diagonales de chaque modules. De ce fait, les barres du bas et du haut sont
dédoublées pour être présentes dans les deux plans. Les deux plans sont reliés par des barres
supplémentaires au niveau des extrémités des barres initiales, qui servent d’axe de rotation mais
également à placer les poulies permettant de passer les câbles. Ces poulies sont placées en
quatre rangées, afin que chaque câble ait sa propre rangée et qu’il n’y ait pas de frottements
entre les différents câbles. La conception équilibrée du prototype permet de minimiser l’impact
de la dimension supplémentaire sur la validité des modèles plans établis dans les chapitres
précédents. Une photo du prototype est montrée en Figure (4.1). On y voit également les rangées
de poulies utilisées pour passer les câbles.

F IGURE 4.1 – A gauche : photo du prototype. A droite : les rangées de poulies utilisées pour
passer les câbles.

Les barres ont été façonnées en aluminium. Une tête d’oiseau imprimée en 3D en ABS a
également été ajoutée au sommet de la pile.
Afin de répartir équitablement leurs effets, les ressorts sont répartis dans les deux plans.
Ainsi, de chaque côté du premier module, il y a deux ressorts de raideur égale à 300N.m−1

88
4.1. Description du prototype

afin d’avoir l’équivalent d’un ressort de raideur à 600N.m−1 . Il en est de même pour les mo-
dules supérieurs, avec de chaque côté deux ressorts de raideur égale à 100N.m−1 afin d’avoir
l’équivalent d’un ressort de raideur à 200N.m−1 .
Les quatre moto-réducteurs sont des moteurs MAXON à engrenages sans balais (ECMAX40L/PM42).
Leurs caractéristiques sont indiquées dans la Table 4.1.

Tension 24VCC
Courant nominal 4A
Vitesse à vide 202rpm
Couple nominal 3.10Nm
Vitesse nominale 160rpm
Rapport de réduction R 25
TABLE 4.1 – Caractéristiques des moto-réducteurs.

Les câbles sont reliés aux moteurs par des enrouleurs. Le rayon des enrouleurs impacte :
— la longueur de câble qui peut y être enroulé (pour une longueur d’enrouleur fixée) car
nous voulons un seul niveau d’enroulement de câble ;
— la force appliquée sur le câble et la vitesse de ce dernier. Le rayon de l’enrouleur joue un
rôle similaire au rapport de réduction du réducteur : un rayon plus important diminue la
force appliquée pour un même couple moteur, mais augmente la vitesse du câble pour
une même vitesse de moteur.
Comme compromis entre ces différents points, le rayon de l’enrouleur choisi est rd = 2cm.
Ainsi, la force maximale applicable est fmax = 155N et la vitesse nominale des câbles est de
0.33m.s−1 . Ces enrouleurs sont imprimés en 3D et sont rainurés pour permettre un enroulement
correct des câbles.
Afin de commander les moteurs, des variateurs ESCON 50/5 sont employés.
Il n’y a pas de moyen de mesure directe de l’orientation des modules : celle-ci est esti-
mée à partir des positions moteurs obtenues via les codeurs. Nous détaillons deux méthodes
d’estimation dans la section suivante.
Un micro-contrôleur Beaglebone Blue est utilisé pour implémenter la commande du pro-
totype. Il est relié aux codeurs des moteurs afin d’en récupérer les positions, ainsi qu’aux va-
riateurs afin de leur transmettre les consignes de PWM (modulation à largeur d’impulsion)
permettant le contrôle des moteurs.
La boucle de commande récapitulant ces informations est présentée en Figure (4.2). La
configuration courante α et sa dérivée α̇ sont estimées à partir des positions moteurs θ (et
leurs vitesses θ̇ obtenues par dérivation numérique) via la longueur des câbles l. La commande

89
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

l θ α, α̇
Modules - Codeurs - Conversion
des moteurs Dérivation
6 ?
Conversion  Commande avec  αd , α̇d , α̈d
Moteurs  en PWM modèle dynamique
Γ s f

F IGURE 4.2 – Boucle de commande du prototype.

calcule les forces f à appliquer, en fonction de α, α̇ et de la trajectoire désirée (αd , α̇d , α̈d ). Ces
forces sont ensuite traduites en signaux s sous forme de PWM. Ils sont transmis aux moteurs
afin que ces derniers appliquent les couples Γ.
Des détails plus techniques sur le prototype sont développés dans [Fur+19], à la seule diffé-
rence qu’un seul module est considéré et que les barres y sont imprimées en ABS.

4.2 Évaluation de α
Il n’y a pas de codeurs spécifiques pour la mesure de α en ligne. Les orientations des mo-
dules peuvent cependant être estimées à partir des positions moteurs, en utilisant les modèles
géométriques de câbles que nous avons développés dans la section 2.2.4. Cette estimation est
notée α̂.
De plus, l’élasticité des câbles doit être prise en compte pour avoir une mesure précise. Il
faut pour cela identifier la raideur des câbles. Pour cela, nous utiliserons un autre moyen de
mesure pour α : une estimation hors-ligne par traitement d’image sur des vidéos enregistrées.
Cette estimation est notée αIP .

4.2.1 Évaluation de α depuis θ : α̂


Deux méthodes sont envisagées pour calculer α̂ à partir des valeurs mesurées de θ . Nous
supposons dans cette section que l’allongement du câble xc et sa dérivée sont connus à partir
de la raideur du câble identifiée et de la tension du câble. Les méthodes proposées peuvent
également être utilisées avec des câbles rigides en fixant xc = 0. Dans la première méthode, le
nombre minimal de données de mesure de θ , à savoir trois, est utilisé. L’estimation α̂ repose
alors sur le modèle d’élasticité du câble et cette méthode peut être utilisée pour évaluer la

90
4.2. Évaluation de α

qualité de ce modèle. La deuxième méthode utilise les quatre données de mesure disponibles de
θ . L’estimation α̂ est définie comme un compromis entre ces quatre données. En conséquence,
la fiabilité de l’estimation est moins dépendante de la qualité du modèle d’élasticité du câble.

Calcul à partir de trois éléments de θ

La Figure (4.3) rappelle le câblage utilisé sur le prototype.

α3

α2

α1

c1 c4
c2 c3

F IGURE 4.3 – Câblage du prototype à N = 3 modules et N f = 4 moteurs.

La première méthode utilise seulement trois composantes de θ . L’idée est de calculer les
orientations des articulations α̂1 , α̂2 et α̂3 de manière récursive en fonction des longueurs des
câbles à droite (c’est-à-dire les câbles bleu, jaune et rouge utilisés pour actionner la première, la
deuxième et la troisième articulation sur la Figure (4.3)). L’orientation α̂1 est d’abord calculée
à partir de la longueur l1 du câble bleu en utilisant les équations (3.14a) et (2.63). Connaissant
α̂1 , α̂2 est ensuite calculé à partir de la longueur l2 du câble jaune à l’aide des équations (3.14b)
et (2.63).

Connaissant α̂1 et α̂2 , α̂3 est finalement calculé à partir de la longueur l3 du câble rouge

91
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

avec les équations (3.14c) et (2.63). On obtient le système triangulaire suivant :



1
 α̂1 = f (θ1 , xc1 )

α̂2 = f 2 (θ1 , θ2 , xc1 , xc2 ) (4.1)

α̂3 = f 3 (θ1 , θ2 , θ3 , xc1 , xc2 , xc3 ).

Aucune expression explicite n’a pu être trouvée pour ce système. Cependant, en raison de la
monotonie des fonctions de longueur de câble utilisées pour obtenir le système ci-dessus, nous
savons que α̂1 , α̂2 et α̂3 sont définis de manière unique. Nous avons mis en place une procédure
simple et rapide pour obtenir des valeurs approchées de α̂i par interpolation linéaire à partir
d’un ensemble pré-calculé de solutions. Le nombre de solutions pré-calculées est suffisamment
grand pour que l’erreur de α̂i soit toujours inférieure à la précision permise par la résolution des
encodeurs du moteur.
Calcul en utilisant tous les éléments de θ
La deuxième méthode pour obtenir α̂ à partir de θ utilise toutes les composantes de θ .
Sachant que les câbles sont élastiques, l’idée est d’utiliser toutes les mesures pour avoir un
calcul plus réaliste.
L’équation (2.64) peut se réécrire :
  r    
d
Z(α̂(t))T α̂(t + ∆t) − α̂(t) = θ (t + ∆t) − θ (t) + xc (t + ∆t) − xc (t) , (4.2)
R

où ∆t est un pas de temps suffisamment petit. La pseudo-inverse de Moore-Penrose ZT + permet


de calculer la variation de α̂ qui minimise l’erreur. Par conséquent, α̂ peut être calculée comme
suit :
hr    i
d
α̂(t + ∆t) = α̂(t) + Z(α̂(t))T + θ (t + ∆t) − θ (t) + xc (t + ∆t) − xc (t) . (4.3)
R

4.2.2 Mesure de α par traitement d’image : αIP


L’identification de la raideur du câble nécessite la connaissance de l’allongement du câble
et, par conséquent, de θ et de α. La première est mesurée à partir des codeurs des moteurs et la
seconde est mesurée par vidéo. Nous utilisons une caméra avec une taille d’image de 1280×720
pixels et 30 images par seconde. Pendant les expériences, les déplacements des articulations
sont enregistrés. À cette fin, plusieurs marqueurs colorés sont placés sur les barres supérieure
et inférieure des trois articulations (voir Fig. 4.4). Ensuite, αIP est calculé hors ligne avec un
algorithme de traitement d’image (IP pour "image processing") sur la base des marqueurs. La

92
4.3. Les problèmes amenant à l’identification

zone cible de l’IP est maintenue au centre de la vidéo pour éviter toute distorsion. Les dérivées
premières et secondes de αIP sont calculées numériquement. Nous pourrons noter que la faible
fréquence vidéo ne permet pas d’utiliser αIP à des fins de contrôle, mais la vidéo peut être
utilisée pour les expériences d’identification. La précision sur la mesure de αIP est d’environ
1deg, ce qui est acceptable au vu des erreurs rencontrées lors du contrôle.

F IGURE 4.4 – Les marqueurs colorés utilisés pour calculer αIP à partir de la vidéo.

4.3 Les problèmes amenant à l’identification


Des premières expériences ont été menées sur une version provisoire du prototype où un
seul module était contrôlé à l’aide de deux moteurs. La commande (qui sera développée dans la
prochaine section) utilisait le modèle dynamique proposé dans cette thèse, mais sans la prise en
compte des frottements ni de l’élasticité des câbles. Deux problèmes majeurs ont été remarqués
à cette étape.
Le premier problème est que les forces appliquées pendant les expériences étaient très diffé-
rentes des forces estimées par le modèle dynamique, comme on peut le voir sur la Figure (4.5).
Non seulement les amplitudes en jeu sont différentes, mais en plus les courbes ne coïncident
pas en forme.
Le second problème est sur l’estimation de α qui est biaisée par l’élasticité des câbles.
Pour un seul module actionné par deux moteurs, on peut calculer α̂ à partir du câble gauche

93
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

F IGURE 4.5 – Forces appliquées sur un module en expérience (courbes bleues et rouges), en
comparaison des forces estimées par le modèle dynamique (courbes jaunes et violettes).

F IGURE 4.6 – A gauche : forces appliquées en boucle ouverte sur le module, les deux forces
sont identiques ce qui implique que le module ne bouge pas. A droite : estimations α̂ obtenues
à partir des moteurs à gauche et à droite.

seulement, ou du câble droit seulement. Des câbles non-déformables impliqueraient que ces
deux mesures donnent la même estimation, ce qui n’était pas le cas. Afin de bien mettre en
évidence l’élasticité des câbles, nous avons procédé à l’expérience suivante : en boucle ouverte,
nous avons augmenter les deux forces appliquées simultanément afin que le module reste en
position α = 0deg, et nous avons regardé les deux estimations α̂. Les forces appliquées ainsi
que les résultats obtenus sont montrés en Figure (4.6). Bien que le module n’ait pas bougé,
l’estimation par le moteur de gauche indique que le module se serait orienté de 10deg vers la
gauche, tandis que l’estimation par le moteur de droite indique que le module se serait orienté
de 10deg vers la droite. Non seulement le module n’a pas bougé, mais en plus la différence
entre les deux estimations est montée jusqu’à 20deg.
Des essais ont également été effectués sur trois modules avec une commande sans la prise
en compte des frottements ni de l’élasticité des câbles, et une estimation de α à partir de trois

94
4.4. Modèle d’identification

positions moteurs comme présenté dans la section 4.2.1. Les résultats de ces essais ont été
publiés dans [Fas+20]. De grandes oscillations étaient présentes dans les forces appliquées, et
les estimations de α n’étaient pas précises.
Afin de corriger ces problèmes, nous allons intégrer les forces de frottements dans la com-
mande, ainsi que l’élasticité des câbles dans l’estimation α̂ et dans la commande. Nous voulons
donc identifier ces paramètres, ce qui nous permettra :
— d’avoir une commande efficace ;
— d’avoir un simulateur proche de la réalité ;
— d’avoir une bonne estimation de α à partir de θ .
Les travaux d’identifications ont mené à la publication [Fas+21].
Les paramètres à identifier sont les coefficients de frottements, ainsi que les coefficients de
raideur des câbles. Nous allons utiliser un modèle d’identification linéaire en ces coefficients.

4.4 Modèle d’identification

4.4.1 Modèle complet d’identification


Les équations faisant intervenir les coefficients à identifier sont rassemblées pour obtenir un
système d’équations linéaires en ces paramètres :

Dv = y (4.4)

où v est le vecteur des n p paramètres à identifier.


Le détail de la matrice D et des vecteurs v et y seront indiqués prochainement, en fonction
des coefficients à identifier.

4.4.2 Méthode d’identification


Les forces motrices f et les positions θ ainsi que les angles d’orientation α sont échantillon-
nés le long d’une trajectoire spécifique pour obtenir r valeurs échantillonnées. Ensuite, v peut
être estimé comme la solution des moindres carrés v̂ du système linéaire :

Wv + ρ = Y (4.5)

où W est une matrice d’observation (r × n p ) définie par un échantillonnage du régresseur D


défini dans (4.14) ou (4.16), Y est un échantillonnage de y défini dans (4.13) ou (4.15), ρ est le

95
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

vecteur des résidus ou le vecteur des erreurs. Le nombre r d’échantillons doit être supérieur au
nombre de paramètres à identifier : r > n p [KD04].
Le vecteur de paramètres v minimisant la norme 2 de ρ est donné par :

v = W+ Y (4.6)

La qualité de la solution dépend du conditionnement de W, qui dépend du choix de la


trajectoire effectuée lors du processus d’identification. Si les bruits de mesure sont indépendants
en W et Y, la qualité de l’identification peut être évaluée avec la matrice de covariance CX :

CX = σρ2 (WT W)−1 (4.7)

2
où σρ2 = ||Y−Wv||
p
r−N p . L’écart-type du paramètre i est σ i = CX (i, i) et l’intervalle de confiance
σi
est donné par 2σi . L’écart-type relatif 100 vi évalue la qualité de l’identification du paramètre
i.

4.4.3 Filtrage

Les données utilisées pour l’identification sont les mesures des positions angulaires des
moteurs θ , les forces d’actionnement d’entrée f (en supposant que la réponse électrique des
moteurs soit parfaite) et la configuration du manipulateur α évaluée à partir du traitement de
l’image. Les allongements des câbles sont déduits de (2.63), après une initialisation en posi-
tion droite. Les dérivées des grandeurs mesurées sont calculées par différenciation numérique
centrée après filtrage.
Il est essentiel de filtrer les données mesurées pour éviter les biais résultant de mesures dis-
crètes et bruitées [CSB96]. Un filtre passe-bas de Butterworth est utilisé pour filtrer les mesures
en avant et en arrière avec la fonction Matlab filtfilt. Les dérivés de θ sont obtenues avec un
algorithme de différence centrale pour éviter le déphasage. La fréquence de coupure du filtre de
Butterworth est calculée avec la méthode expliquée dans [PGP01].
La fréquence vidéo utilisée pour mesurer l’orientation des modules est de 30Hz, tandis que
la fréquence de la loi de commande est de 500Hz. Pour synchroniser les données, les mesures
du codeur moteur sont rééchantillonnées avec la procédure Matlab "decimate" à 31, 25Hz, la
valeur la plus proche de 30Hz. Les données de la vidéo sont également rééchantillonnées à
31, 25Hz avec une interpolation linéaire.

96
4.5. Identification

4.5 Identification

4.5.1 Trajectoire réalisée pour l’identification


Une trajectoire d’excitation doit être conçue pour l’identification afin d’améliorer la pré-
cision de l’estimation [JG15]. En ce qui concerne l’élasticité du câble, la trajectoire doit être
exécutée avec une grande exploration des forces appliquées puisque les tensions du câble dé-
pendent principalement de ces dernières. En ce qui concerne les frottements, la trajectoire doit
être choisie de manière à satisfaire le plus grand ensemble de valeurs possibles de Z(α). En
conséquence, la trajectoire d’identification est définie de manière à rencontrer un grand en-
semble de configurations α et nécessite des forces élevées. Des mouvements symétriques par
rapport à la configuration droite sont considérés, sachant que l’actionnement diffère sur les
côtés gauche et droit. La trajectoire d’identification est composée de quatre séquences suc-
cessives. Chaque séquence est composée des six mouvements élémentaires suivants : à partir
de sa configuration droite d’équilibre au repos, le manipulateur se déplace vers un α d désiré,
puis jusqu’à la configuration opposée −α d , revient à la configuration rectiligne, se déplace
vers −α d , puis jusqu’à α d et finalement revient à la configuration droite. Pour la première sé-
quence, toutes les articulations se déplacent dans la même direction et α d = [40◦ , 30◦ , 20◦ ]T .
Pour la deuxième (resp. troisième, quatrième) séquence, la première (resp. deuxième, troi-
sième) articulation se déplace dans la direction opposée à celle des autres articulations : α d =
[−40◦ , 30◦ , 20◦ ]T , [40◦ , −30◦ , 20◦ ]T , [40◦ , 30◦ , −20◦ ]T , respectivement. Toutes les configurations
d’articulation souhaitées sont reliées par des fonctions cycloïdales. Un contrôle en boucle fer-
mée est utilisé pour suivre la trajectoire d’identification. Le processus d’identification n’étant
pas affecté par les performances de la commande, la boucle fermée est simplement réglée pour
produire des variations lisses de la force d’actionnement.
Les configurations extrêmes obtenues sont affichées sur la Figure (4.7). Une vidéo de l’ex-
périence réalisant la trajectoire d’identification est disponible à l’adresse suivante : https:
//uncloud.univ-nantes.fr/index.php/s/8wzgsPi65cxDxG9.

4.5.2 Identification des frottements secs et frottements visqueux


Dans un premier temps, on identifie seulement les frottements, et de deux manières diffé-
rentes :
— d’une part, on identifie les frottements secs et les frottements visqueux ;
— d’autre part, on identifie seulement des frottements secs, en négligeant les frottements

97
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

F IGURE 4.7 – Configurations extrêmes obtenues pendant la trajectoire d’identification.

visqueux.
Dans les deux cas, l’équation (2.62) est utilisée pour écrire le modèle linéaire.
Dans le premier cas, il y a les n p = 8 paramètres v = [fs fv ]T à identifier, et :

y = Z(αIP )f − M(αIP )α̈IP − g(αIP ) − c(α̇IP , αIP ) (4.8)

2
D = [Z(αIP )diag( atan(cm θ̇ )) Z(αIP )diag(θ̇ )]. (4.9)
π
Dans le second cas, il n’y a que les n p = 4 paramètres v = [fs ]T à identifier, et :

y = Z(αIP )f − M(αIP )α̈IP − g(αIP ) − c(α̇IP , αIP ) (4.10)

2
D = [Z(αIP )diag( atan(cm θ̇ ))]. (4.11)
π
Les paramètres identifiés sont donnés dans le Tableau 4.2. Les frottements secs sont bien
identifiés dans les deux cas, contrairement aux frottements visqueux : leur écart-type relatif est
bien supérieur à 10%.
La Figure (4.8) montre les tracés des couples Z(α)f à partir des forces et leur reconstruc-
tion avec l’équation (2.62), avec et sans modèle de frottements, et avec et sans les frottements

98
4.5. Identification

Frottements secs Frottements visqueux Frottements secs seuls


fs (1)(N) 12.91 4.68 × 10−2 fs (1)(N) 14.13
σi relatif 5.62% 56.85% σi relatif 2.52%
fs (2)(N) 16.72 4.63 × 10−2 fs (2)(N) 17.70
σi relatif 4.55% 72.11% σi relatif 2.02%
fs (3)(N) 18.11 4.64 × 10−2 fs (3)(N) 18.97
σi relatif 4.25% 83.42% σi relatif 1.88%
fs (4)(N) 16.09 0.72 × 10−2 fs (4)(N) 16.29
σi relatif 1.85% 105.96% σi relatif 1.25%

TABLE 4.2 – Paramètres de frottements identifiés. Les paramètres de frottements visqueux sont
mal identifiés, comme l’indique l’écart-type relatif.

visqueux. Pour rappel, la valeur des couples obtenus après frottements est :
 2 
Z(α)f = M(α)α̈ + c(α, α̇) + g(α) − Z(α) diag( atan(cm θ̇ ))fs + diag(θ̇ )fv (4.12)
π

L’objectif est de mettre en évidence la contribution des termes de frottements et de montrer que
ces termes doivent être pris en compte. De ce fait, nous ne considérerons que des frottements
secs par la suite.

4.5.3 Identification de l’élasticité des câbles

Ici, les frottements secs ainsi que l’élasticité des câbles sont identifiés, avec les trois modèles
élastiques présentés dans la section 2.3.7.
Pour le premier modèle, les équations (2.62) et (2.70) sont utilisées pour écrire le modèle
linéaire. Or, la contribution des frottements dans les équations (2.62) et (2.70) ne sont pas du
même ordre car les coefficients de Z sont de l’ordre de 10−2 . Pour avoir des termes d’ordres
comparables, l’équation (2.70) est multipliée par un poids W = 100.
 T
Il y a n p = 12 paramètres à identifier v = k ca fs .
Le vecteur y est donné par :
!
f − rRd Ia θ̈
y= (4.13)
W (Z(αIP )(f + Ia ( rRd )2 ẍc ) − M(αIP )α̈IP − g(αIP ) − c(α̇IP , αIP ))

99
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

F IGURE 4.8 – Reconstruction de Z(α)f avec le modèle dynamique, en incluant les frottements
ou non, et les données expérimentales. Les couples reconstruits avec le modèle de frottement
sont clairement plus proches des données expérimentales. Les frottements visqueux ne mo-
difient pas beaucoup la courbe en comparaison avec la prise en compte des frottements secs
seulement, les courbes noires et vertes étant presque superposées.

et D s’écrit :
!
diag(xc ) diag(ẋc ) diag( π2 atan(cm θ̇ ))
D= (4.14)
03×4 03×4 W Z(αIP )diag( π2 atan(cm θ̇ ))

Pour les deux autres modèles, les équations (2.62) et (2.71) sont utilisées pour écrire le mo-
dèle linéaire. Pour la même raison que dans le premier modèle, l’équation (2.62) est multipliée
par un poids W = 100.

100
4.5. Identification

 T
Il y a n p = 6 paramètres à identifier v = E c fs .
Le vecteur y est donné par :
!
f − rRd Ia θ̈
y= (4.15)
W (Z(αIP )(f + Ia ( rRd )2 ẍc ) − M(αIP )α̈IP − g(αIP ) − c(α̇IP , αIP ))

et D s’écrit :
!
S
l diag(xc )
S
l diag(ẋc ) diag( π2 atan(cm θ̇ ))
D= (4.16)
03×4 03×4 W Z(αIP )diag( π2 atan(cm θ̇ ))

Les paramètres identifiés sont dans le Tableau 4.3. Les frottements secs sont bien identifiés
et semblables quelque soit le modèle élastique. Les paramètres de raideur sont bien identifiés
dans les trois modèles, mais les paramètres d’amortissement sont mal identifiés dans les trois
cas. Cela est dû aux faibles valeurs de la vitesse d’allongement.
Il y a deux manières de calculer la tension dans les câbles : par les forces appliquées et
les frottements d’une part, et par le modèle élastique et l’allongement d’autre part. La Figure
(4.9) montre la tension dans les câbles calculée par les forces appliquées et les frottements
identifiés (en prenant ceux identifiés dans la section précédente, toutes les valeurs identifiées ici
étant très voisines), et la tension calculée par les modèles élastiques identifiés. On y voit que
les trois modèles élastiques ont des résultats différents mais qu’aucun ne permet de reproduire
fidèlement la tension calculée par les forces. L’erreur moyenne de reconstruction est de 6.88N
pour le premier modèle, 9.84N pour le second modèle et 9.64N pour le troisième modèle.
La Figure (4.10) montre l’erreur de reconstruction de chacun des modèles en fonction de la
tension calculée par les forces appliquées. On y voit que pour chaque modèle et chaque câble,
l’erreur augmente lorsque la tension augmente. De plus, l’augmentation de l’erreur semble
semble linéaire vis-à-vis de la tension du câble. Des modèles de câbles non linéaires devraient
donc être plus adaptés.

4.5.4 Identification d’un modèle de câble non linéaire

Nous avons également testé des modèles de câble non linéaires, comme dans [Bak+17],
mais l’identification n’a pas amélioré significativement les résultats par rapport aux modèles
linéaires. Nous avons donc développé un modèle ad hoc pour s’adapter aux mesures observées.

101
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

Model 1 Model 2 Model 3


f s (1)(N) 14.42 14.38 14.32
relative σ 1.68% 1.73% 1.72%
f s (2)(N) 17.65 17.49 17.48
relative σ 1.38% 1.44% 1.42%
f s (3)(N) 18.77 18.41 18.48
relative σ 1.32% 1.38% 1.35%
f s (4)(N) 16.18 16.32 16.29
relative σ 0.88% 0.90% 0.89%
k (1) (N.m−1 ) 10454 - -
relative σ 1.37% - -
k (2) (N.m−1 ) 9256 - -
relative σ 1.60% - -
k (3) (N.m−1 ) 8319 - -
relative σ 1.85% - -
k (4) (N.m−1 ) 5336 - -
relative σ 1.28% - -
E (GPa) - 4.04 1.23
relative σ - 0.83% 0.81%
c a (1) (N.s.m−1 ) 805 - -
relative σ 30.5% - -
c a (2) (N.s.m−1 ) 333 - -
relative σ 68.7% - -
c a (3) (N.s.m−1 ) −218 - -
relative σ 94.3% - -
c a (4) (N.s.m−1 ) 370 - -
relative σ 64.3% - -
c (MPa.s−1 ) - 139.8 57.4
relative σ - 45.5% 32.88%
TABLE 4.3 – Paramètres de frottements secs et d’élasticité des câbles identifiés.

Un nouveau modèle de raideur de câble est proposé :

tci = (k(i) + λ (i)tci )xci + ca (i)ẋci , (4.17)

où λ = [λ (1), λ (2), λ (3), λ (4)]T est un nouveau vecteur à identifier.


La tension du câble i peut aussi être calculée avec la ligne i de l’équation (2.72) :

2 R
tci = fi − arctan(cs θ̇i ) fs (i) − Ia θ̈i . (4.18)
π rd

102
4.5. Identification

F IGURE 4.9 – Tension dans les câbles, calculée par les forces et par les modèles élastiques.

F IGURE 4.10 – Erreur de reconstruction de la tension dans les câbles, en fonction de la tension
calculée par les forces appliquées.

103
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

Stiffness Stiffness Damping


k(1) (N.m−1 ) 5378 λ (1) (m−1 ) 103.3 ca (1) (N.s.m−1 ) 516.8
relative σ 1.6% relative σ 1.5% relative σ 14.5%
k(2) (N.m−1 ) 5364 −1
λ (2) (m ) 88.7 −1
ca (2) (N.s.m ) 185.9
relative σ 1.7% relative σ 2.1% relative σ 37.8%
k(3) (N.m−1 ) 6231 −1
λ (3) (m ) 53.2 −1
ca (3) (N.s.m ) −273.3
relative σ 1.7% relative σ 4.8% relative σ 22.9%
k(4) (N.m−1 ) 1908 −1
λ (4) (m ) 120.9 −1
ca (4) (N.s.m ) 241.5
relative σ 5.0% relative σ 2.6% relative σ 30.7%
TABLE 4.4 – Paramètres identifiés avec le nouveau modèle de câble (avec la raideur qui varie
en fonction de la tension).

Si l’équation (4.17) est reportée dans l’équation (4.18), on obtient un modèle qui est non li-
néaire par rapport aux paramètres λ (i) et fs (i) à identifier. Afin de construire un modèle linéaire
et puisque les coefficients de frottement peuvent être identifiés séparément, on peut utiliser les
valeurs des paramètres de frottement fs identifiés précédemment. Dans ce cas, tci peut être cal-
culé en utilisant (4.18) et les mesures. Le modèle d’identification est construit en utilisant (4.17).
Il peut alors être écrit selon l’équation (4.4) où v est ici le vecteur de n p = 12 paramètres à iden-
 T
tifier : v = k λ ca . Le vecteur y est défini par :

y = tc (4.19)

et D est :  
D = diag(xc ) diag(xt) diag(ẋc ) (4.20)

où xt = [xc1tc1 , xc2tc2 , xc3tc3 , xc4tc4 ]T .


La même méthode que celle décrite précédemment est utilisée pour l’identification et les
paramètres identifiés sont donnés dans le tableau (4.4). Les paramètres de raideur sont bien
identifiés mais les coefficients d’amortissement sont, encore une fois, mal identifiés. Les com-
posantes du vecteur de raideur k sont inférieures aux valeurs obtenues dans le tableau (4.3) mais
elles augmentent avec la tension puisque les paramètres λ sont positifs.
La figure (4.11) montre la reconstruction de la tension du câble, calculée des deux façons
comme sur la Figure (4.9). Les résultats sont améliorés par rapport à la Figure (4.9) et la tension
est bien modélisée même pour des valeurs élevées. L’erreur moyenne est maintenant de 4, 75N,
contre 6, 88N avec le modèle précédent. L’erreur de reconstruction n’augmente pas avec les
forces appliquées, ce qui était le but recherché avec ce nouveau modèle d’élasticité.

104
4.6. Utilisation des paramètres identifiés

Cable1 Cable2
120 120
100 100
80 80
tension [N]

tension [N]
60 60
40 40
20 20
0 0
0 20 40 0 20 40
time [s] time [s]
Cable3 Cable4
120 120
from forces
100 100
from stiffness
80 80
tension [N]

tension [N]
60 60
40 40
20 20
0 0
0 20 40 0 20 40
time [s] time [s]

F IGURE 4.11 – Reconstruction des tensions des câbles à partir des forces et des raideurs des
câbles (raideur variable).

4.6 Utilisation des paramètres identifiés

4.6.1 Reconstruction de α̂ basée sur les modèles élastiques de câbles

Maintenant que la raideur des câbles est identifiée, α̂ peut être évaluée en ligne pour le
contrôle. Il peut être reconstruit en utilisant les modèles élastiques et les mesures de θ . La
précision de la reconstruction est évaluée par comparaison avec la mesure de α par traitement
d’image : αIP . L’allongement du câble xc est estimé avec les modèles élastiques. Pour un pas de
temps court ∆t, une prédiction discrète de l’allongement du câble par intégration de l’équation
(4.17) est donnée par :

∆t 2
xc (t + ∆t) = xc (t) + (f(t) − fs arctan(cs θ̇ (t)) − (k + λ f(t))xc (t)). (4.21)
ca π

En considérant un allongement initial nul, xc peut être mis à jour à chaque pas de temps
(une période d’échantillonnage de 2ms est utilisée). Dans ce qui suit, trois modèles de câble

105
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

sont considérés, (i) câble inélastique : xc = 0, (ii) modèle 1 : câble à rigidité constante (λ = 0
et k donnés dans le tableau (4.3)) et (iii) le modèle 2 : câble à rigidité variable (λ et k indiqués
dans le tableau (4.4)). Ensuite, α̂ peut être calculé avec seulement trois données de câble en
utilisant l’équation (4.1) et peut également être calculé avec les données de quatre câbles en
utilisant l’équation (4.3).
La figure (4.12) montre la reconstruction α̂ et les valeurs obtenues par traitement d’image
αIP . Lorsque α̂ est calculé à partir de l’équation (4.1), l’erreur moyenne sans modèle est de
7, 87deg contre 1, 67deg avec le modèle à raideur constante et 1, 51deg avec le modèle à raideur
variable. Lorsque α̂ est calculé à partir de l’équation (4.3), l’erreur moyenne sans modèle est de
2.79deg contre 1.84deg avec le modèle à raideur constante et 1.36deg avec le modèle à raideur
variable. Le modèle de câble élastique donne une meilleure évaluation α̂ que le modèle sans
élasticité. L’utilisation des données des quatre câbles avec l’équation (4.1) est préférable et est
choisie à des fins de contrôle.
On peut tout de même noter que si le manipulateur n’était actionné qu’avec trois câbles,
alors le gain de précision obtenu avec les modèles élastiques serait très important.
Nous allons maintenant présenter un simulateur intégrant ces paramètres identifiés.

4.6.2 Reproduction en simulation


Simulateur développé en Matlab
Puisque nous avons établi l’équation du mouvement du manipulateur, nous avons pu déve-
lopper notre propre simulateur en Matlab. En fait, nous avons développé deux simulateurs : le
premier considère que les câbles utilisés sont rigides, tandis que le second utilise une modélisa-
tion élastique des câbles.
Simulateur avec des câbles rigides
En considérant des câbles rigides, on peut utiliser seulement les orientations α et leurs
dérivées pour indiquer l’état du système.
Pour une configuration α, une vitesse α̇ et un jeu de forces f donnés, on utilise l’équation
(2.62) pour calculer l’accélération α̈ de la manière suivante :
  2  
α̈ = M(α)−1 Z(α) f − diag( atan(cm θ̇ ))fs − diag(θ̇ )fv − c(α, α̇) − g(α) (4.22)
π

où θ̇ est calculé à partir de α et α̇ avec l’équation (2.64) en négligeant le terme élastique.


Les positions et vitesses de l’itération suivante sont déduites de l’accélération par intégration
numérique.

106
4.6. Utilisation des paramètres identifiés

IP
inelastic cable
model 1
IP 50
model 2
inelastic cable
40 model 1
model 2

[deg]
20
0
[deg]

1
-20
1

-40
-50
0 10 20 30 40 50
-60
time [s]
0 10 20 30 40 50
time [s] 40
40
20
20

[deg]
0
[deg]

2
-20
2

-20
-40
-40
-60 0 10 20 30 40 50
0 10 20 30 40 50 time [s]
time [s]
40
40

20
20 [deg]
[deg]

0
0
3
3

-20 -20

-40 -40
0 10 20 30 40 50 0 10 20 30 40 50
time [s] time [s]

F IGURE 4.12 – À gauche : reconstruction de α en utilisant l’équation (4.1). À droite : re-


construction de α en utilisant l’équation (4.3). Les courbes vertes (respectivement bleues et
rouges) correspondent au modèle de câble élastique (respectivement aux modèles de câble à
raideur constante et à raideur variable). Les courbes noires montrent αIP mesuré par traitement
d’image.

Cette méthode suppose que les câbles sont toujours tendus, ce qui n’est pas forcément le cas
en réalité.
Simulateur avec des câbles élastiques
Avec des câbles élastiques, nous utilisons les variables α, θ et leurs dérivées pour indiquer
l’état du système. L’accélération α̈ est calculée à partir de l’équation (2.66) et l’accélération θ̈
est calculée à partir de l’équation (2.65). Les allongements des câbles doivent être connus pour
calculer la tension dans les câbles (pour le calcul de θ̈ ) et leurs accélérations également (pour
le calcul de α̈).
L’allongement des câbles est calculé comme la différence des longueurs de câble calculé à
partir de α d’une part, et à partir de θ d’autre part.
Les vitesses des allongements des câbles sont calculées avec l’équation (2.64) puis dérivées
numériquement pour obtenir les accélérations.
Les positions et vitesses en α et θ de l’itération suivante sont déduites de l’accélération par

107
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs

Cable1 Cable2
120 120
100 100
80 80
Forces [N]

Forces [N]
60 60
40 40
20 20
0 0
0 20 40 0 20 40
time [s] time [s]
Cable3 Cable4
120 120
experiment
100 100
no friction no elasticity
80 80 identified model
Forces [N]

Forces [N]

60 60
40 40
20 20
0 0
0 20 40 0 20 40
time [s] time [s]

F IGURE 4.13 – Comparaison des forces appliquées en expérience et en simulation.

intégration numérique.
Un avantage de ce simulateur est que le calcul de l’allongement des câbles permet de détec-
ter si des câbles ne sont pas tendus. Si la valeur calculée pour l’allongement est négative, alors
le câble correspondant n’est pas tendu.
Reproduction en simulation des données expérimentales
La Figure (4.13) nous montre les forces appliquées en expériences, qui sont comparées aux
forces reproduites en simulation avec le modèle sans frottements ni élasticité des câbles, ainsi
qu’aux forces reproduites en simulation avec le modèle complet en utilisant les paramètres de
frottement et d’élasticité des câbles identifiés. Les forces de simulation obtenues avec le pre-
mier modèle sont très éloignées des forces expérimentales, que ce soit au niveau des amplitudes
des pics mais aussi de leurs positions : certains pics sont manquants ou décalés. Au contraire,
les forces obtenues avec le modèle complet sont bien plus proches des données expérimentales,
avec des pics bien placés et dont l’amplitude s’approche des données expérimentales. Cepen-
dant, certains pics reproduits ne montent pas aussi haut que les expérimentaux, car l’identifica-
tion n’a pas donné de résultats parfaits.
Les reproductions avec le modèle complet restent tout de même très satisfaisantes. Le simu-

108
4.7. Conclusion

lateur avec le modèle complet est donc employé par la suite pour la génération de mouvements
optimisés.

4.7 Conclusion
Nous avons vu que les frottements moteurs et l’élasticité des câbles étaient des phénomènes
à prendre en compte dans notre commande et dans le simulateur. Des frottements secs ont été
bien identifiés tandis que les frottements visqueux étaient mal identifiés.
Un modèle de câble élastique dont la raideur dépend de la tension du câble a été proposé
afin d’améliorer les résultats moyens obtenus avec les modèles classiques. Les reconstructions
avec ce modèle sont satisfaisantes.
Nous allons maintenant nous intéressés à la commande du prototype, qui sera testée avec la
prise en compte de ces différents paramètres.

109
C HAPITRE 5

C OMMANDE EN ACTIONNEMENT
COMPLET

Trois commandes du prototype sont détaillées et testées dans ce chapitre.


La première commande est la commande articulaire, qui contrôle les orientations des mo-
dules α. Cette commande est utilisée pour étudier l’apport des paramètres identifiés dans la
section précédente sur les performances de contrôle.
La seconde commande est une commande des positions moteurs. Les commandes au niveau
des actionneurs étant souvent plus performantes, cette seconde commande sera comparée à la
commande articulaire.
La troisième commande est une commande opérationnelle, où la pose de la barre du haut du
manipulateur est contrôlée. Cette commande est intéressante puisqu’il est plus courant d’avoir
des trajectoires opérationnelles à suivre. Des singularités la rendent par contre délicate à utiliser
sur le prototype.
Dans les trois cas, nous partirons du schéma de la commande en Figure (5.1). Pour le micro-
contrôleur, les variables d’entrée sont donc les positions des moteurs θ et les variables de sortie
les forces à appliquer f, comme le montre le schéma en Figure (5.1). On utilise à chaque fois
une commande dynamique par couple calculé. Seule la consigne variera selon les commandes,
ici l’exemple est donné pour la commande articulaire.

θ
Manipulateur, -
αd , α̇d , α̈d
moteurs, Commande 
variateur 
f

F IGURE 5.1 – Boucle simplifiée de la commande du prototype. Le bloc de commande est


détaillé plus loin en fonction de la commande employée.

111
Partie , Chapitre 5 – Commande en actionnement complet

θ α̂, α̂˙
- Conversion
Manipulateur, -
αd , α̇d , α̈d
moteurs, Calcul 
des forces
variateur 
f

F IGURE 5.2 – Boucle de commande articulaire.

5.1 Commande articulaire

Soit αd (t) la trajectoire désirée. Soit e l’erreur de suivi :

e = αd − α̂ (5.1)

Les couples désirés au temps t sont définis avec le modèle dynamique (ici les forces de
Coriolis sont négligées) :
cd (t) = M(α̂(t))w(t) + G(α̂(t)) (5.2)

avec Z t
w(t) = α̈d (t) + kv ė(t) + k p e(t) + ki (e(t ′ ))dt (5.3)
t ′ =0

Les gains utilisés sont : ki = ω 3 , kv = 3ω et k p = 3ω 2 .


Le schéma de contrôle est indiqué en Figure (5.2). Le bloc de conversion permet de calculer
l’estimation α̂ grâce aux équations présentées dans la section 4.2.1.
On se base sur l’équation (2.68) pour calculer les forces à appliquer. On négligera le terme
d’accélération de l’allongement des câbles ẍc qui est faible. Il faut donc résoudre le système
d’équations :
Z(α̂)(f − f f riction ) = cd (t) (5.4)

La méthode pour résoudre cette équation dépend de l’actionnement. Pour l’actionnement


du prototype ou pour un actionnement avec N f = 2N moteurs, les détails du calcul ont déjà été
vus.
Afin d’assurer que les câbles sont bien tendus, nous ajoutons cependant une contrainte sup-
plémentaire par câble :
ti ≥ tmin (5.5)

où tmin ≥ 0 est la tension minimale que l’on souhaite dans les câbles. D’après l’équation (2.65),

112
5.1. Commande articulaire

la condition sur les forces appliquées est donc :

2 R
fi ≥ tmin + arctan(cs θ̇i ) fs (i) + Ia θ̈i . (5.6)
π rd

Combiné avec la contrainte de force minimale, chaque force fi , 1 ≤ i ≤ 4 doit donc satis-
faire :
2 R
fi ≥ max(tmin + arctan(cs θ̇i ) fs (i) + Ia θ̈i , fmin ). (5.7)
π rd
Idéalement, nous pourrions utiliser tmin = 0 si les frottements étaient parfaitement modéli-
sés et identifiés, mais comme ce n’est pas le cas (notamment à cause des frottements à faible
vitesse), nous utilisons tmin = 8, 5N. Cette valeur a été choisie expérimentalement afin d’éviter
d’avoir des câbles non-tendus.
Si la force fi calculée est supérieure à fmax , c’est que l’on ne peut pas appliquer le couple
désiré : dans ce cas on prend fi = fmax afin de s’en approcher au mieux.
θ̇ est utilisé dans le calcul des frottements. En pratique, les valeurs mesurées θi et θ̇i sont
bruitées. En effet, θi est obtenu avec des valeurs discrètes et θ̇i en est déduit par dérivation
numérique. On utilisera donc les valeurs désirées θid et θ̇id dans l’équation (5.7), calculées à
partir de α d et α̇ d , afin de réduire les oscillations dans les forces appliquées.
Cette commande est valide pour tout manipulateur constitué de N modules et actionné par
l’un des actionnements étudiés.

Comparaison de trois commandes articulaires

La trajectoire utilisée pour les tests de contrôle implique un mouvement dans la même di-
rection pour les trois articulations en X. Ce mouvement semble être le plus intéressant pour
accéder à un grand espace de travail avec des forces raisonnables. En partant de la configuration
droite, le manipulateur se déplace vers α d = [50◦ , 50◦ , 50◦ ]T , revient à la configuration droite,
puis se déplace vers α d = [−30◦ , −40◦ , −50◦ ]T , et enfin revient à la configuration droite. Toutes
les configurations articulaires souhaitées sont reliées par des fonctions cycloïdales. Les quatre
configurations principales de la trajectoire sont présentées sur la figure (5.3).
La figure (5.4) montre les résultats du test de la première commande (modèle sans frotte-
ment et câbles inélastiques). Les positions articulaires sont tracées pour trois jeux de valeurs
différents : α d , qui correspond à la trajectoire souhaitée, α̂, l’orientation estimée et αIP , l’orien-
tation calculée hors ligne à partir du traitement des vidéos et des images. Les résultats sont assez
bons grâce au calcul de α̂ avec la pseudo-inverse : la différence absolue moyenne entre α̂ et α d

113
Partie , Chapitre 5 – Commande en actionnement complet

F IGURE 5.3 – Les principales configurations de la trajectoire des tests de commande à 0sec,
4sec, 7sec et 10sec, de gauche à droite.

60 60 60

40 40 40

20 20 20
[deg]

[deg]

[deg]
0 0 0
1

-20 -20 -20

-40 -40 -40

-60 -60 -60


0 5 10 0 5 10 0 5 10
time [s] time [s] time [s]

F IGURE 5.4 – Orientations des modules pendant le test de la première commande (frottements
et élasticité des câbles négligés).

est d’environ 0, 52deg. La différence absolue moyenne entre α̂ et αIP est d’environ 2, 19deg,
ce qui montre que les positions articulaires ne sont pas parfaitement évaluées. Bien que l’erreur
de suivi soit faible, les positions extrêmes ne sont pas bien atteintes car la reconstruction de α̂
n’est pas assez précise, en particulier pour les articulations 1 et 3.
La figure (5.5) montre les résultats du test de la commande 2 (modèle avec frottements
et câbles inélastiques). Comme prévu, les résultats sont meilleurs que ceux du premier test.
La différence absolue moyenne entre α̂ et α d (respectivement entre α̂ et αIP ) est d’environ
0, 37deg (respectivement 1, 51deg). La meilleure prédiction des frottements secs permet de ré-
duire la contribution de la rétroaction et de réduire les erreurs de suivi. En outre, le modèle
de frottements permet d’appliquer des forces plus faibles. Moins d’énergie est donc requise et
l’allongement du câble est réduit, ce qui conduit à une meilleure estimation α̂. Les positions ex-
trêmes sont mieux atteintes qu’avec le modèle précédent puisque l’estimation α̂ est légèrement

114
5.1. Commande articulaire

60 60 60

40 40 40

20 20 20
[deg]

[deg]

[deg]
0 0 0
1

3
-20 -20 -20

-40 -40 -40

-60 -60 -60


0 5 10 0 5 10 0 5 10
time [s] time [s] time [s]

F IGURE 5.5 – Orientations des modules durant le test de la seconde commande (les frottements
sont pris en compte mais les câbles sont supposés rigides).

améliorée, mais des erreurs sont visibles sur les articulations 1 et 3.


La figure (5.6) montre les résultats du dernier test (modèle avec frottements et modèle élas-
tique du câble). L’amélioration de l’estimation α̂ produit une réduction de la différence absolue
moyenne entre α̂ et αIP , qui est maintenant d’environ 1, 09deg. Les positions extrêmes sont
également mieux atteintes que dans les autres expériences. Cependant, la différence absolue
moyenne entre α̂ et α d est d’environ 0, 66deg, ce qui est un peu plus que dans les expériences
précédentes. Cette augmentation des erreurs de suivi pourrait être due à la loi de commande cal-
culée qui fait appel à l’équation (2.68) où l’élasticité du câble est négligée. Une loi de contrôle
basée sur un modèle dynamique avec des câbles élastiques aurait pu être définie. Cependant, un
tel modèle nécessiterait le calcul des dérivées de l’allongement du câble, ce qui ajouterait du
bruit.
Pour finir, nous comparons maintenant les forces et les erreurs pour les trois essais de com-
mandes. La figure (5.7) montre les forces appliquées pendant les trois expériences. La trajectoire
de référence comprend des phases de déplacement et des phases d’arrêt. Dans les phases d’ar-
rêt, la condition de tension minimale du câble impose que l’une des forces soit de 8, 5N et que
les autres forces soient plus importantes. Dans les phases de déplacement pour le test 1 (pas de
frottements, pas d’élasticité du câble), la force minimale varie légèrement autour de 8.5N en
fonction de l’accélération attendue du moteur. Pour les tests 2 et 3 qui prennent en compte les
frottements identifiés, on observe que la force minimale du moteur est de fmin = 2N puisque les
frottements ont tendance à tendre les câbles et que la condition de tension minimale est naturel-
lement satisfaite. Ceci explique les différences observées lors des phases de mouvement entre le

115
Partie , Chapitre 5 – Commande en actionnement complet

60 60 60

40 40 40

20 20 20
[deg]

[deg]

[deg]
0 0 0
1

3
-20 -20 -20

-40 -40 -40

-60 -60 -60


0 5 10 0 5 10 0 5 10
time [s] time [s] time [s]

F IGURE 5.6 – Orientations des modules durant le test de la troisième commande (avec les
frottements et le modèle élastique des câbles).

80 80 80
f1 f1 f1
70 f2 70 f2 70 f2
f3 f3 f3
60 f4 60 f4 60 f4

50 50 50
Forces [N]

Forces [N]

Forces [N]

40 40 40

30 30 30

20 20 20

10 10 10

0 0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12
time [s] time [s] time [s]

F IGURE 5.7 – Forces appliquées pendant les tests des commandes 1, 2 et 3 (de gauche à droite).

test de contrôle 1 où les forces sont assez élevées et les tests de contrôle 2 et 3 où les forces sont
presque identiques et plus faibles. Dans les phases d’arrêt, les forces varient principalement en
raison du terme de correction intégral. Dans les tests 1 et 2, les forces varient légèrement. Pour
le test 3, comme l’estimation α̂ dépend des forces appliquées, l’erreur détectée dans le contrôle
augmente avec les forces et le terme intégral augmente. Nous avons essayé de remédier à ce
problème en utilisant une commande PD. En procédant ainsi, des forces similaires à celles du
test 2 ont été produites, mais la commande est devenue moins efficace et les erreurs d’estimation
de α sont plus élevées.
Les différences entre les orientations estimées α̂ et les valeurs obtenues à partir de la vidéo
αIP sont indiquées sur la figure (5.8). Les différences absolues moyennes sont de 2, 19deg,
1, 51deg et 1, 09deg pour les tests 1, 2 et 3, respectivement. Dans les tests 1 et 2, la différence
maximale est d’environ 8deg contre 4deg pour le test 3, ce qui montre l’efficacité du modèle

116
5.1. Commande articulaire

8 8 8

6 6 6

4 4 4

2 2 2
e [deg]

e [deg]

e [deg]
0 0 0

-2 -2 -2

-4 -4 -4

-6 -6 -6

-8 -8 -8

0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12
time [s] time [s] time [s]

F IGURE 5.8 – Erreur eα entre α̂ (calculé avec la pseudo-inverse) et αIP (obtenu par la vidéo)
durant les tests des commandes 1, 2 et 3 (de gauche à droite).

6 6 6

4 4 4

2 2 2
e [deg]

e [deg]

e [deg]
0 0 0

-2 -2 -2

-4 -4 -4

-6 -6 -6

0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12
time [s] time [s] time [s]

F IGURE 5.9 – Erreur e entre α̂ (calculé avec la pseudo-inverse) et la trajectoire désirée α d


durant les tests des commandes 1, 2 and 3 (de gauche à droite).

élastique. L’erreur absolue moyenne est plus faible dans le test 2 que dans le test 1, ce qui peut
s’expliquer par des forces appliquées plus faibles qui produisent un allongement plus faible et
donc des erreurs plus faibles sur l’estimation α̂.

Les différences entre les orientations estimées α̂ et les valeurs souhaitées α d sont indiquées
sur la figure (5.9). L’erreur absolue moyenne est de 0, 52deg, 0, 37deg et 0, 66deg pour les
essais 1, 2 et 3, respectivement. Le modèle de frottement améliore le contrôle, avec une erreur
maximale deux fois plus faible dans le test 2 que dans le test 1. Le modèle élastique, par contre,
perturbe le contrôle car ce modèle est utilisé uniquement pour l’estimation α̂.

La loi de commande utilisée pour le test 2 apparaît comme un bon compromis : les forces
produites et les erreurs de commande sont plus faibles que dans les tests 1 et 3, tandis que les
erreurs entre α̂ et la valeur mesurée par traitement d’image sont acceptables.

117
Partie , Chapitre 5 – Commande en actionnement complet

5.2 Commande dans l’espace des moteurs


Pour les robots séries, les commandes avec asservissements articulaires montrent en général
de bonnes performances car une commande au plus près des moteurs permet un réglage aisé
et adapté aux caractéristiques des moteurs. Pour les robots avec des rapports de réduction éle-
vés, la prise en compte des actionneurs en négligeant les inerties mécaniques peut mener à de
bonnes performances. L’objectif de cette section est d’étudier le comportement du prototype à
actionnement par câble avec un asservissement direct sur les angles moteurs et de tester si des
commandes simplifiées peuvent avoir des performances intéressantes.
Nous développons donc une commande dans l’espace des moteurs, avec un asservissement
des angles des moteurs pour qu’ils suivent une trajectoire désirée. La variable de suivi est θ .
Soit θd la trajectoire désirée. Cette trajectoire désirée doit être calculée à partir d’une trajectoire
articulaire à l’aide du modèle géométrique afin d’éviter de générer des forces internes nuisibles
qui risqueraient de causer la rupture des câbles. L’erreur de suivi est :

eθ = θd − θ (5.8)

L’accélération désirée est calculée de la manière suivante :


Z t
θ̈dc (t) = θ̈d (t) + k p eθ (t) + kv ėθ + ki eθ (t ′ )dt ′ (5.9)
t ′ =0

Le schéma de contrôle est indiqué en Figure (5.10). L’estimation de α est nécessaire pour
calculer les différents éléments du modèle dynamique.
On définit une commande pour les N + 1 moteurs. Dans ce cas, la matrice Z peut se décom-
poser de la manière suivante :
Z = [Z1 Z2 ] (5.10)

où Z1 est une matrice carré de dimension N, et Z2 est un vecteur de dimension N × 1.


D’après (2.66), on peut donc écrire :

Mm (α)α̈ + cm (α, α̇) + g(α) = Z1 (α)t1 + Z2 (α)t2 (5.11)

où t1 est un vecteur de dimension N et t2 est un scalaire.


On peut alors exprimer t1 en fonction de t2 de la façon suivante :
 
t1 = Z1 (α)−1 Mm (α)α̈ + c(α, α̇) + g(α) − Z2 (α)t2 (5.12)

118
5.2. Commande dans l’espace des moteurs

θ θ̇
- Dérivée -
θd , θ̇d , θ̈d Modèle
PID 
géométrique
-
Manipulateur, 6
moteurs, θ̈dc , θ̇d
variateur ?
α- αd , α̇d , α̈d
Conversion
Calcul
 des forces
f

F IGURE 5.10 – Boucle de commande dans l’espace des moteurs pour un manipulateur entière-
ment actionné.

Les tensions des câbles forment donc un espace de dimension 1 :


!
t1 (t2 )
tc (t2 ) = (5.13)
t2

D’après (2.65), le lien entre les forces appliquées et les tensions des câbles sont :

R c
f = Ia θ̈ + tc (t2 ) + f f riction (5.14)
rd d

Il faut donc calculer t2 afin de vérifier nos contraintes.


On veut que tous les câbles soient tendus, pour cela on assure une tension minimale tmin .
Comme tous les coefficients de −Z1 (α)−1 Z2 (α) sont positifs, on peut calculer N f valeurs mi-
nimales pour t2 (la première est tmin et les N autres sont données par les N lignes de (5.12)).
On veut également assurer une force minimale fmin . Les N f lignes de (5.14) donnent N f
valeurs minimales pour t2 .
Nous avons donc un total de 2N f valeurs minimales à vérifier pour t2 . En prenant la valeur
maximale, toutes les contraintes sont vérifiées.
Les forces sont ensuites bornées à fmax .
Afin d’évaluer l’intérêt du modèle dynamique avec cette commande, on peut intégrer ou
non le modèle dynamique dans l’équation (5.12). Nous allons comparer quatre commandes des
moteurs en simulation :
— dans la première commande, les tensions des câbles sont négligées, ce qui fait que les

119
Partie , Chapitre 5 – Commande en actionnement complet

Commande (αd − α̂) (α − α̂) erreur sur θ


articulaire 0.14deg 1.08deg 201.72deg
moteurs - sans tension 7.05deg 3.68deg 315.62deg
moteurs - avec tension sans modèle dynamique 0.79deg 1.27deg 194.50deg
moteurs - avec tension et modèle statique 0.65deg 1.14deg 193.88deg
moteurs - avec tension et modèle dynamique 0.66deg 1.14deg 193.94deg
TABLE 5.1 – Erreurs moyennes en simulation en fonction des commandes des moteurs.

moteurs sont contrôlés indépendamment les uns des autres. Le calcul des forces se fait
donc avec l’équation f = Ia rRd θ̈dc + f f riction à la place de l’équation (5.14) ;
— dans la seconde commande, les tensions des câbles sont prises en comptes mais sans
prendre en compte le modèle dynamique. L’équation (5.14) est utilisée pour calculer les
forces mais l’équation (5.12) est remplacée par : t1 = −Z1 (α)−1 Z2 (α)t2 ;
— dans la troisième commande, les tensions des câbles sont prises en comptes mais en pre-
nant en compte le modèle statique uniquement. L’équation (5.14) est utilisée pour calcu-
ler les forces mais l’équation (5.12) est remplacée par : t1 = Z1 (α)−1 (g(α) − Z2 (α)t2 ) ;
— dans la quatrième commande, les forces sont calculées avec l’équation (5.14) et les
tensions des câbles sont calculées avec l’équation (5.12). Seules les forces de Coriolis
sont négligées, comme dans la commande articulaire.
Le tableau (5.1) montre les résultats obtenus avec ces quatre commandes en simulation,
sur une trajectoire similaire à celle utilisée pour la commande articulaire. Les gains utilisés
sont calculés avec ω = 10, comme pour la commande articulaire. La première information
importante à retenir est que la commande sans prise en compte de la tension des câbles est très
mauvaise : la trajectoire est mal suivie. C’est principalement à cause des contraintes de forces
positives, qui empêche les moteurs de tourner dans le sens opposé au sens désiré pour garder
la tension dans les câbles. Lorsque la tension est prise en compte, la commande indique aux
moteurs lorsqu’il faut tirer plus fort pour emmener les moteurs antagonistes, ce qui permet un
bon suivi de la trajectoire. La prise en compte du modèle statique dans le calcul de la tension
des câbles permet d’améliorer légèrement les erreurs de suivi. Cependant, le modèle dynamique
n’améliore pas significativement les résultats en comparaison avec le modèle statique. Ceci ne
fait que confirmer que l’inertie des moteurs est prédominante par rapport à l’inertie des modules.
Les erreurs entre αd et α̂ sont plus élevées pour la commande des moteurs que pour la
commande articulaire. Cependant, les erreurs sur θ sont un peu meilleures. Ces valeurs sont
nettement plus élevées que sur α car les valeurs de θ sont en moyenne cent fois plus élevées
que les valeurs de α. L’erreur entre α et α̂ est assez similaire entre la commande articulaire et

120
5.3. Commande opérationnelle

Commande (αd − α̂) (θd − θ ) Moyenne des forces


articulaire 0.905deg 217.73deg 27.81N
moteurs avec tension uniquement 0.996deg 229.3deg 25.6N
moteurs avec modèle statique 0.967deg 198.56deg 26.3N
moteurs avec modèle dynamique 0.997deg 259.47deg 27.29N
TABLE 5.2 – Erreurs moyennes en expérience pour les commandes articulaires et des moteurs.

les commande dans l’espace moteur tenant compte de la tension des câbles.
Des essais ont été faits avec la commande des moteurs où la trajectoire désirée est calculée
en estimant l’allongement des câbles. Cependant, bien que l’erreur en θ soit plus faible, les
résultats ne sont pas plus intéressants sur α.
Les commandes tenant compte de la tension des câbles ont été testées sur le prototype et
comparées à la commande articulaire. Les résultats obtenus sont présentés dans le tableau (5.2).
Les erreurs entre αd et α̂ sont similaires pour toutes les commandes testées. La commande
dans l’espace des moteurs qui tient compte uniquement de la tension des câbles présente des
résultats corrects. Les erreurs sur θ sont plus faibles pour la commande qui prend uniquement
en compte le modèle statique : cela permet d’avoir une commande efficace sans avoir à cal-
culer la matrice d’inertie du manipulateur. Les performances restent cependant similaires à la
commande articulaire.
Les forces appliquées pour les deux commandes sont montrées en Figure (5.11). On y voit
que les forces appliquées sont plus lisses pour la commande des moteurs. De plus, les forces
appliquées sont légèrement plus faibles en moyenne pour la commande des moteurs, comme
on peut le voir dans le tableau (5.2). Par contre, on y observe de lentes oscillations, qui sont
probablement dues à l’élasticité des câbles.
En conclusion, la commande des moteurs permet un suivi articulaire similaire à la com-
mande articulaire mais présente des caractéristiques différentes : le suivi sur θ est légèrement
meilleur qu’avec la commande articulaire, les forces appliquées sont plus lisses et légèrement
plus faibles en moyenne, mais ont de lentes oscillations.

5.3 Commande opérationnelle


En général, l’objectif est de déplacer l’effecteur du robot, il est donc naturel de vouloir
asservir sa position. Comme nous n’avons pas de capteur pour mesurer en ligne la pose de
la barre du haut du manipulateur, nous devons reconstruire ces valeurs à l’aide des valeurs

121
Partie , Chapitre 5 – Commande en actionnement complet

F IGURE 5.11 – Forces appliquées avec la commande articulaire (à gauche) et la commande des
moteurs (à droite) pour une même trajectoire articulaire.

θ α̂, θ̇ , x, y, γ
- -
Conversion
et dérivée
xd , yd , γd
Manipulateur, 
moteurs, Calcul
des forces
variateur


f

F IGURE 5.12 – Boucle de commande dans l’espace opérationnel.

articulaires des mécanismes estimées à partir des positions codeurs des moteurs.

On cherche à contrôler le mouvement du haut du manipulateur dont la position est définie


par les coordonnées (x, y) du milieu de la barre du haut du dernier module. On peut également
commander en plus l’orientation de la barre du haut du dernier module γ = γN+1 .

Le schéma de contrôle est indiqué en Figure (5.12). L’estimation de α est nécessaire pour
calculer les différents éléments du modèle dynamique. La valeur mesurée de θ̇ est nécessaire
pour la prise en compte des frottements, comme nous allons le voir.

Lien entre l’espace articulaire et l’espace opérationnel

122
5.3. Commande opérationnelle

On note u le vecteur contenant la position de la barre du haut du manipulateur :


!
x
u= (5.15)
y

On définit la matrice J telle que :


u̇ = Jα̇ (5.16)

La matrice J est donnée par :


∂x T
!
J= ∂α (5.17)
∂y T
∂α

Les calculs des éléments de J sont fournis en annexe A.


On note uγ le vecteur contenant la position et l’orientation de la barre du haut du manipula-
teur :  
x
uγ = y (5.18)
 

γ
On définit la matrice Jγ telle que :

u̇γ = Jγ α̇ (5.19)

La matrice Jγ est donnée par :


∂x T
 
 ∂∂αy T 
J=
∂α 
 (5.20)
∂γ T
∂α
∂γ
où ∂ αk = 1 quelque soit k entre 1 et N.
Trajectoire
Un problème qui se pose avec la commande opérationnelle est celui des singularités. En
effet, dans certaines configurations, le rang de la matrice J (ou Jγ ) baisse. Dans ce cas, on
ne peut plus inverser ces matrices. Afin de tester cette commande, nous éviterons donc ces
singularités.
Pour savoir où se situent les singularités, on peut regarder où sont les configurations où le
conditionnement de J est grand. La Figure (5.13) montre les zones correspondantes dans l’es-
pace opérationnel. Les zones où le conditionnement de Jγ est élevé sont semblables à celles de J.
Nous notons cependant un conditionnement moyen plus élevé pour Jγ (108.5 contre 17.8 pour

123
Partie , Chapitre 5 – Commande en actionnement complet

F IGURE 5.13 – A gauche : zones (en rouge) où le conditionnement de J est supérieur à 100,
et trajectoire opérationnelle suivie pour tester la commande. A droite : espace de travail du
manipulateur avec les ressorts asymétriques et sa configuration d’équilibre au repos.

J). Un point important est que ces zones dépendent uniquement de la configuration articulaire
et des dimensions des barres : les raideurs des ressorts n’a pas d’influence sur ces zones.
Malheureusement, le manipulateur a sa position au repos à l’intérieur de ces zones. Pour
cette commande, nous allons intervertir des ressorts afin de modifier la configuration au repos.
Les ressorts à gauche (respectivement à droite) ont à présent une raideur de 600, 400, 200N.m−1
(respectivement 400, 200, 200N.m−1 ) (du bas vers le haut). La configuration au repos avec ces
raideurs ainsi que l’espace de travail associé sont montré en Figure (5.13). On désire suivre la
trajectoire indiquée en rose, qui évite les singularités.
Une possibilité pour utiliser la commande opérationnelle en passant par les singularités est
d’utiliser une inverse (ou pseudo-inverse) amortie. Cependant la qualité de la commande est
dégradée, notamment au niveau des singularités.
Commande articulaire pour suivre une trajectoire opérationnelle
Si l’on souhaite suivre une trajectoire opérationnelle, une possibilité est de convertir cette
trajectoire opérationnelle en trajectoire articulaire que l’on exécutera ensuite avec la commande
articulaire. Nous détaillons ici la conversion depuis une trajectoire en xy, mais la méthode reste
valide pour une trajectoire en xyγ.
Supposons que l’on ait une trajectoire opérationnelle, c’est-à-dire une configuration articu-
laire de départ αs ainsi que les positions u, vitesses u̇ et accélérations ü de la barre du haut du
manipulateur.
On sait que :
u̇ = J(α)α̇ (5.21)

On peut donc calculer la vitesse α̇ = J+ (α)u̇ et en déduire la configuration α de l’itération

124
5.3. Commande opérationnelle

F IGURE 5.14 – Résultats commande articulaire pour suivre xy.

suivante.
On obtient en dérivant que :
ü = Jα̈ + J̇α̇ (5.22)

On peut donc calculer l’accélération des articulations qui permet de produire la trajectoire opé-
rationnelle désirée :  
α̈ = J+ (α) ü − J̇α̇ + λJ kJ (5.23)

où kJ est une base de noyau de J, qui est de dimension 1 tant que J est de rang 2 (ce qui est
assuré puisqu’on évite les singularités), et λJ est un scalaire à choisir. Afin de minimiser la
norme des accélérations des articulations, nous choisissons λJ = 0.
Ainsi, on a calculé une trajectoire articulaire qui nous fait suivre la trajectoire opérationnelle.
Un avantage de cette méthode est qu’elle permet de connaître les trajectoires des moteurs et d’en
déduire les frottements attendus, qui sont moins bruités que les frottements mesurés.
La Figure (5.14) montre les résultats expérimentaux obtenus sur le prototype en reprodui-
sant le triangle à l’aide d’une commande articulaire sur xy. On y voit que le triangle est assez
fidèlement reproduit. L’erreur moyenne sur la position est de 2.3mm.
La Figure (5.15) montre les résultats obtenus sur le prototype en reproduisant le triangle

125
Partie , Chapitre 5 – Commande en actionnement complet

F IGURE 5.15 – Résultats commande articulaire pour suivre xyγ.

à l’aide d’une commande articulaire sur xyγ. L’erreur moyenne sur la position est de 3mm, et
l’erreur moyenne sur γ est de 1.6deg. Les résultats de suivi sur xy sont un peu moins bons que
dans le cas précédent.
Commande xy
On cherche à contrôler le mouvement de la barre du haut du manipulateur du manipula-
teur dont la position est définie par ses coordonnées (x, y). La trajectoire désirée est notée ud .
L’erreur de suivi est :
eu = ud − u (5.24)

L’accélération désirée est calculée de la manière suivante :


Z t
ücd (t) = üd (t) + k p eu (t) + kv ėu + ki eu (t ′ )dt ′ (5.25)
t ′ =0

D’après l’équation (5.22), l’accélération articulaire qui permet de produire l’accélération


désirée ücd est donnée par :
α̈ = J+ (ücd − J̇α̇) + λJ kJ (5.26)

Nous choisissons λJ = 0 afin de minimiser la norme des accélérations des articulations.


On peut alors intégrer cette accélération dans l’équation du mouvement afin de calculer

126
5.3. Commande opérationnelle

les forces à appliquer. On néglige les forces de Coriolis et l’accélération de l’allongement des
câbles pour la commande. L’équation permettant de calculer les forces à appliquer est donc :

M(α)J+ (ücd − J̇α̇) + g(α) = Z(α)(f − f f riction ) (5.27)

Le calcul des forces peut se faire avec les mêmes calculs que pour la commande articulaire.
Cependant, ici la trajectoire articulaire n’est pas connue, on ne peut donc pas l’utiliser pour
calculer la trajectoire désirée des moteurs θd et ainsi prévoir les frottements des moteurs. Les
frottements sont donc mesurés en ligne mais sont bruités. On doit donc utiliser un coefficient
cm = 0.1 plus faible dans la formule de calcul des frottements (au lieu de cm = 0.5 dans la
commande articulaire).
La Figure (5.16) montre les résultats obtenus sur le prototype en reproduisant le triangle à
l’aide d’une commande opérationnelle sur xy. Les gains sont calculés avec ω = 10. L’erreur
moyenne sur la position est de 3.0mm. Le suivi est légèrement moins bon qu’avec la commande
articulaire mais reste convenable. La trajectoire articulaire utilisée est elle assez différente à
celle utilisée par la commande articulaire.

F IGURE 5.16 – Résultats commande xy. L’erreur moyenne sur la position est de 3.0mm.

Commande xyγ

127
Partie , Chapitre 5 – Commande en actionnement complet

On cherche à contrôler le mouvement de la barre du haut du manipulateur dont la position


est définie par :
— ses coordonnées (x, y)
— son orientation γN
La trajectoire désirée est notée uγd . L’erreur de suivi est :

euγ = uγd − uγ (5.28)

L’accélération désirée est calculée de la manière suivante :


Z t
ücγd (t) = üγd (t) + k p euγ (t) + kv ėuγ + ki euγ (t ′ )dt ′ (5.29)
t ′ =0

avec les mêmes gains que pour la commande articulaire.


En dérivant (5.19), on obtient :

üγ = Jγ α̈ + J̇γ α̇ (5.30)

L’accélération articulaire qui permet de produire l’accélération désirée ücd est donnée par :

α̈ = J−1 c
γ (üγd − J̇γ α̇) (5.31)

On peut alors intégrer cette accélération dans l’équation du mouvement afin de calculer
les forces à appliquer. On néglige les forces de Coriolis et l’accélération de l’allongement des
câbles pour la commande. L’équation permettant de calculer les forces à appliquer est donc :

M(α)Jγ−1 (ücγd − J˙γ α̇) + g(α) = Z(α)(f − f f riction ) (5.32)

Le calcul des forces peut se faire avec les méthodes vues précédemment.
La Figure (5.17) montre les résultats obtenus sur le prototype en reproduisant le triangle
à l’aide d’une commande opérationnelle sur xyγ. Le suivi est légèrement meilleur qu’avec la
commande articulaire. La trajectoire articulaire utilisée est ici aussi assez différente à celle
utilisée par la commande articulaire.
Les vidéos des quatre expériences effectuées dans cette section sont disponibles sur le lien
suivant : https://uncloud.univ-nantes.fr/index.php/s/aiaGT2d5FpQEYxQ.
En conclusion, nous avons développé deux commandes opérationnelles qui présentent des
résultats convenables en comparaison à la commande articulaire. La commande contrôlant

128
5.4. Conclusion

F IGURE 5.17 – Résultats commande xyγ. L’erreur moyenne sur la position est de 2.5mm et
l’erreur moyenne sur γ est de 1.07deg.

(x, y, γ) semble être la plus performante ici, puisque l’erreur moyenne sur la position est plus
faible, mais la commande contrôlant (x, y) laisse un degré de liberté qui pourrait être employé
pour une tâche secondaire, comme un contrôle de la raideur du manipulateur. Ces commandes
doivent cependant être employées uniquement pour suivre des trajectoires en dehors des zones
de singularité.

5.4 Conclusion
L’apport de la prise en compte des frottements moteurs et de l’élasticité des câbles dans la
commande a été analysé avec la commande articulaire. Nous avons vu que la prise en compte
des frottements moteurs améliore nettement les performances de la commande, et permet de
réduire les forces appliquées grâce à une meilleure estimation de la tension dans les câbles.
La prise en compte de l’élasticité des câbles permet d’avoir une mesure plus précise (la diffé-
rence entre la valeur estimée α̂ et la valeur supposée juste αIP est plus faible) mais perturbe la
commande (la différence entre la valeur estimée α̂ et la valeur désirée α d est plus élevée). Le
compromis choisi est donc de prendre en compte les frottements moteurs dans la commande

129
Partie , Chapitre 5 – Commande en actionnement complet

et de supposer que les câbles sont rigides. Ce compromis permet tout de même une estimation
correcte de α à partir de θ car elle est effectuée depuis les positions des quatre moteurs à l’aide
d’une pseudo-inverse, ce qui permet de limiter les erreurs dues aux allongements des câbles.
Deux autres commandes ont été développées. La commande des moteurs effectue une cor-
rection PID sur les positions moteurs θ , et présente des performances proches de la commande
articulaire sur la trajectoire testée. La commande opérationnelle permet de contrôler la position
et l’orientation de la barre du haut du dernier module. Cette dernière est aussi efficace qu’une
commande articulaire réglée pour suivre la même trajectoire opérationnelle, mais ne peut être
employée que dans les zones ne contenant pas de singularités opérationnelles.

130
C HAPITRE 6

G ÉNÉRATION DE MOUVEMENTS

Maintenant que nous avons une commande efficace pour le prototype, nous allons générer
des trajectoires intéressantes à réaliser. Nous n’utilisons ici que la commande articulaire.
A priori ce prototype inspiré du cou des oiseaux pourrait avoir de bonnes propriétés pour
exécuter des déplacements avec une dépense énergétique limitée grâce à l’utilisation des res-
sorts, mais également pour produire des mouvements rapides. On souhaite donc exploiter la
structure du manipulateur pour effectuer ce type de mouvements.
Dans un premier temps, nous chercherons à minimiser le coût pour se déplacer d’une confi-
guration à une autre. Nous proposerons pour cela deux méthodes d’optimisation : l’une avec
le modèle statique et la seconde avec le modèle dynamique. Nous comparerons les résultats
obtenus avec des trajectoires directes pour vérifier l’efficacité de l’optimisation.
Ensuite, nous chercherons à générer des mouvements explosifs, c’est-à-dire des mouve-
ments à grande vitesse, comme ceux du pic vert lorsqu’il frappe un tronc d’arbre avec son bec
pour y creuser son nid.
Nous travaillerons dans l’espace articulaire afin d’exploiter au maximum le potentiel de
chaque module.

6.1 Minimisation des forces


Notre but ici est de construire des trajectoires qui minimisent les forces employées pour aller
d’une configuration à une autre. Nous présentons une première méthode se basant sur le modèle
statique uniquement, qui permet de trouver la trajectoire optimale grâce à l’algorithme A∗ . Nous
présentons également une seconde méthode qui prend en compte le modèle dynamique complet,
fonctionnant par optimisation locale.
L’algorithme A∗ permet de trouver le chemin le plus court entre deux nœuds dans un graphe,
tout en prenant compte des obstacles [HNR68]. Trouver un chemin optimal est un problème qui
intervient dans de nombreux domaines, tels que la robotique, la réalité virtuelle ou encore les
systèmes d’information géographique (GPS). Une version modifiée est utilisée dans [Duc+14]

131
Partie , Chapitre 6 – Génération de mouvements

pour la planification de chemins pour un robot mobile. Il en est de même pour plusieurs robots
mobiles dans [ZZ14]. Dans [Yao+10], l’algorithme est adapté pour la planification de chemin
d’humain virtuels. En dernier exemple, l’algorithme est utilisé pour la conduite de véhicule
autonome dans [Wan+15].
Nous utilisons dans cette section des courbes de Bézier [BÉZ87], qui sont bien adaptées
à l’optimisation locale. Ces courbes sont employées pour la planification de chemins dans
[CCE08] et [Han+10] par exemple. Elles sont également beaucoup utilisées en infographie et
en animation [Sed12].
Une courbe de Bézier est définie par l’équation suivante :
n  
n i
P(x) = ∑ x (1 − x)n−i Pi (6.1)
i=0 i

où les Pi sont les n + 1 points de contrôle et x ∈ [0, 1]. Dans notre cas, P est de dimension N
et correspond aux orientations des modules α, et x correspond au temps rapporté dans le bon
intervalle : pour un temps maximal tmax de la trajectoire, la valeur de x correspondant au temps
t
t est x = tmax .
Les propriétés des courbes de Bézier qui nous intéressent sont :
— la courbe est à l’intérieur de l’enveloppe convexe des points de contrôle ;
— la courbe commence par le point P0 et se termine par le point Pn , mais ne passe pas a
priori par les autres points de contrôle qui déterminent cependant l’allure générale de la
courbe ;
−−→ −−−−→
— P0 P1 est le vecteur tangent à la courbe en P0 et Pn−1 Pn au point Pn .
D’après la première propriété, on peut alléger le nombre de contraintes des optimisations :
au lieu de regarder à chaque pas de temps si les orientations des modules sont dans les bornes
admises, on peut seulement vérifier que les points de contrôle y sont.
D’après la dernière propriété, on peut assurer une vitesse initiale et une vitesse finale nulle
en ajoutant deux points de contrôles, en doublant le premier et le dernier point de contrôle.
Bien qu’il soit a priori plus pertinent d’exécuter des mouvements pour se déplacer entre
des positions d’équilibre nécessitant des forces limitées, nous avons choisi un cas où des forces
importantes sont nécessaires pour mieux mettre en évidence l’importance des mouvements in-
termédiaires sur le coût énergétique total. Nous avons donc fixé une configuration de départ
αs et une configuration d’arrivée αe dans la zone rouge de l’espace de travail (nécessitant des
forces élevées pour y être en équilibre). Les positions correspondant à ces deux configurations
sont représentées en Figure (6.1).

132
6.1. Minimisation des forces

F IGURE 6.1 – Positions du manipulateur dans l’espace de travail pour les configurations αs et
αe . (xs , ys ) est la position correspond à αs et (xe , ye ) est la position correspond à αe .

6.1.1 Trajectoire optimale avec le modèle statique


Nous transformons notre problème de trajectoire optimale en un problème de graphe en
discrétisant l’espace articulaire comme dans l’équation (3.26). Les nœuds du graphe sont les
configurations de l’espace articulaire discrétisé. Les arrêtes font le lien entre deux nœuds voi-
sins. Des nœuds α1 et α2 sont voisins si et seulement si :

max(α1 − α2 ) ≤ dα et α1 ̸= α2 (6.2)

Les arrêtes sont dirigées. Le coût de l’arrête allant de α1 à α2 est la somme des forces
f vérifiant le modèle statique g(α2 ) = Z(α2 )f calculées par la méthode de notre choix. Nous
choisissons pour notre part la répartition des forces utilisée pour calculer l’espace de travail, qui
vise à minimiser la somme des forces.
Pour que l’algorithme termine, il faut que tous les coûts soient positifs, ce qui est bien le cas
pour nous puisqu’on assure des forces positives.
Avec notre graphe, trouver le chemin le plus court revient à trouver un chemin entre la
configuration de départ αs et la configuration d’arrivée αe qui minimise la somme des forces
nécessaires pour que le manipulateur soit en équilibre tout le long du chemin.

133
Partie , Chapitre 6 – Génération de mouvements

L’algorithme utilise une file d’attente prioritaire que nous appelons P. Cette file d’attente
contient des nœuds, avec un coût pour chaque nœud, et les nœuds sont placés par coût croissant.
Nous distinguons deux types de coût pour les nœuds. Le coût réel d’un nœud est le coût du
chemin allant du nœud de départ à ce nœud (si plusieurs chemins ont été trouvés, alors c’est le
plus faible coût des chemins qui est utilisé). Le coût heuristique est la somme du coût réel et
d’une heuristique, qui est une estimation du coût du chemin restant à parcourir pour atteindre
le nœud d’arrivée. La fonction heuristique h(αn ) est donc une estimation du coût pour aller du
nœud n au nœud d’arrivée. La liste prioritaire P est triée en fonction du coût heuristique.
Nous utilisons également une liste S qui contient pour chaque nœud déjà exploré son coût
réel ainsi que son ancêtre (nœud le précédent dans le chemin). Cette liste est notamment utilisée
pour la reconstruction du chemin.
Au départ, la liste P contient le nœud de départ αs seulement (le coût associé n’a aucune
importance, généralement le coût réel pris est 0).
Tant que la liste P n’est pas vide et que le premier nœud de P n’est pas le nœud d’arrivée,
le premier nœud α de la liste (avec le coût heuristique le plus faible) est retiré de la liste. Pour
chacun des nœuds voisins αn de α, on calcule son coût réel qui est la somme du coût réel de α
et du coût de l’arrête allant de α à αn et on effectue l’une des actions suivantes :
— si αn n’est pas dans S, alors on l’ajoute à P avec son coût heuristique. On l’ajoute égale-
ment dans S avec son coût réel et α comme ancêtre ;
— si αn est enregistré est dans S avec un coût plus élevé que celui qui vient d’être calculé,
alors on l’ajoute à P avec son coût heuristique. On remplace également dans S son coût
réel et son ancêtre par son nouveau coût réel (plus faible) et α comme ancêtre ;
— si αn est enregistré est dans S avec un coût plus faible que celui qui vient d’être calculé,
alors on ne fait rien (le chemin par lequel on arrive est moins bon que celui précédem-
ment trouvé).
On réitère le processus jusqu’à ce que l’on arrive au nœud d’arrivée ou que P soit vide.
Si le nœud retiré de P est le nœud d’arrivée, la recherche de chemin est terminée et on
peut reconstruire le chemin à partir de la liste S en remontant jusqu’au nœud de départ par les
ancêtres. Si la liste P est vide au moment où on doit en retirer le premier élément, alors c’est
qu’il n’y a pas de chemin possible entre les deux nœuds (ce qui n’est pas possible dans notre
cas puisque l’on ne considère pas d’obstacle).
Afin d’obtenir le chemin optimal, il faut une heuristique qui ne surestime pas le coût réel.

134
6.1. Minimisation des forces

F IGURE 6.2 – Chemin direct et les forces associées (respectivement à gauche et à droite).

Une possibilité est donc de prendre comme heuristique pour un nœud α la valeur suivante :

Nf
h(α) = d(α, αe ) ∑ fmin ( j) (6.3)
j=1

où d(α, αe ) est la distance entre le nœud évalué et le nœud d’arrivée définie par :

α − αe
d(α, αe ) = max(abs( )) (6.4)

En effet, le nombre de nœud entre α et αe ne peut pas être inférieur à d(α, αe ) et les forces sont
au minimum à fmin à chaque nœud.
Afin d’avoir une référence pour évaluer les résultats, la Figure (6.2) montre le chemin le
plus direct pour aller de αs à αe . Ce chemin est linéaire dans l’espace articulaire. Notre but est
donc de trouver un chemin qui demande moins de force que ce chemin de référence.
Le chemin obtenu avec un pas d’échantillonnage dα = 10deg et l’heuristique h(α) est pré-
senté en Figure (6.3). Le chemin utilisé permet d’avoir des forces peu élevées au milieu du
chemin. Le gain sur les forces par rapport au chemin direct est de 47.14%. Le temps de calcul
est d’environ 2 minutes. Le pas d’échantillonnage est assez élevé : ceci implique que le chemin
se fait de manière très linéaire, et on voit dans les forces nécessaires des bosses qui pourraient
être évitées. L’algorithme devient très vite trop long lorsqu’on réduit le pas d’échantillonnage.
Une modification est donc nécessaire si l’on veut réduire le pas d’échantillonnage.
Une alternative pour gagner en temps de calcul est l’algorithme WA∗ (Weighted A∗ ). La
seule différence est que l’heuristique est multipliée par un poids w, et que le chemin trouvé
n’est pas garanti optimal, mais son poids est au plus w fois celui du chemin optimal.

135
Partie , Chapitre 6 – Génération de mouvements

F IGURE 6.3 – Chemin optimal obtenue avec un pas d’échantillonnage de 10deg et l’heuristique
h(α). À gauche, les configurations du chemin trouvé et à droite, les forces correspondantes.

F IGURE 6.4 – Trajectoire optimisée obtenue avec un pas d’échantillonage de 3deg et l’heuris-
tique 2h(α). À gauche, les configurations du chemin trouvé et à droite, les forces correspon-
dantes.

Le double de l’heuristique précédemment utilisée permet d’obtenir rapidement de bons ré-


sultats avec des pas d’échantillonnage plus faibles, comme le montre la Figure (6.4) pour un pas
d’échantillonnage de 3deg. Le chemin obtenu n’est pas garanti optimal, mais on voit qu’on est
très proche du chemin optimal en comparaison avec le chemin optimal en Figure (6.3). Le gain
sur les forces par rapport au chemin direct est de 47.47%, c’est légèrement mieux que pour le
chemin précédemment trouvé grâce au pas d’échantillonnage plus faible. Le temps de calcul est
d’environ 5 minutes. On obtient un chemin semblable au chemin optimal car ce dernier a l’ap-
parence d’une solution “gloutonne” : il semblerait qu’à chaque étape, la configuration choisie
soit celle qui se rapproche de la configuration d’arrivée ayant le poids le plus faible.
Une fois que le chemin est choisi, il faut y combiner la notion de temps afin d’avoir une

136
6.1. Minimisation des forces

F IGURE 6.5 – Les deux étapes d’élaboration de la trajectoire à partir du chemin statique discré-
tisé. À gauche, le chemin statique discrétisé. À droite, la trajectoire finale (courbes de Bézier).

trajectoire.
Actuellement, nous représentons le chemin par une suite de configurations, dont nous notons
le nombre Nc . Afin d’avoir un chemin continu, nous utilisons ces Nc configurations comme
points de contrôle pour calculer une courbe de Bézier pour chaque module. Ceci nous donne
une fonction f path : t → α(t). Nous prenons Nc ≤ 12 pour ne pas avoir de degrés trop élevés
dans les courbes de Bézier. Si le nombre de points obtenus par l’optimisation est supérieur à 12,
alors 12 points sont calculés par interpolation linéaire.
Afin d’avoir une vitesse initiale et une vitesse finale nulle, on utilise la fonction x → x −
sin(x) qui est une fonction croissante entre 0 et 2π, allant de 0 à 2π sur ce même intervalle et
vérifiant nos attentes sur la vitesse.
Ainsi, la trajectoire obtenue pour suivre le chemin en un temps T est décrite pour tout t tel
que 0 ≤ t ≤ T par :
 t(N − 1) sin( 2πt(Nc −1) ) 
c T
α(t) = f path − (6.5)
T 2π
Cette conversion est résumée en Figure (6.5).
Afin d’avoir une trajectoire réalisable sur le prototype, on effectue une trajectoire en trois
temps :
— premier temps : de la position de repos à αs ;
— second temps : de αs à αe ;
— dernier temps : de αe vers la position de repos.
Chaque étape est optimisée comme expliqué précédemment. D’après les propriétés des
courbes de Bézier et la manipulation effectuée pour avoir une vitesse initiale et finale nulle
pour chaque partie, les positions et vitesses sont continues. Cependant, l’accélération présente

137
Partie , Chapitre 6 – Génération de mouvements

F IGURE 6.6 – Trajectoire complète (en position, vitesse et accélération), et les forces déduites
depuis le modèle statique.

des discontinuités à chaque changement de partie. Cela pourra entraîner une légère variation
des forces appliquées à ces instants. La Figure (6.6) montre la trajectoire complète obtenue
avec les forces estimées par le modèle statique. On peut y voir la continuité des vitesses mais
les discontinuités des accélérations.
Cette trajectoire a été jouée en simulation, de même que la trajectoire obtenue à partir du
chemin direct, en 6 secondes et en 30 secondes. Cela permet de comparer les résultats sur une
trajectoire lente et une trajectoire relativement rapide.
Le tableau (6.1) indique la moyenne des forces employées pour chacune des simulations.
Nous y voyons que l’optimisation statique permet de baisser la moyenne des forces appliquées
pendant la trajectoire, mais cette baisse et légère. En effet, la baisse est de 13, 3% pour la tra-
jectoire en 6 secondes et de 12, 9% pour la trajectoire en 30 secondes.
Plusieurs causes peuvent expliquer ces faibles améliorations. D’abord, le temps n’apparais-
sant pas dans l’optimisation statique, le manipulateur reste un certain temps dans les zones coû-
teuses. De plus, les frottements ne sont pas pris en compte dans l’optimisation, ce qui impacte

138
6.1. Minimisation des forces

grandement ses performances. Nous allons maintenant proposer une autre méthode d’optimisa-
tion pour prendre en compte les effets dynamiques afin d’améliorer ces performances.

6.1.2 Trajectoire optimale avec le modèle dynamique


Maintenant nous allons intégrer le modèle dynamique à notre optimisation de trajectoire. La
première conséquence est qu’on intègre le temps dans l’optimisation, ce qui n’était pas le cas
avec le modèle statique qui retournait seulement le chemin, et non une trajectoire.
On représente les trajectoires de chacun des modules par des courbes de Bézier.
L’optimisation se fait avec la fonction fmincon de Matlab. On est donc sur une optimisation
locale : nous obtiendrons le meilleur résultat localement mais nous n’aurons pas la certitude
d’avoir le meilleur résultat global. Afin d’utiliser plusieurs points de départ, on peut utiliser la
fonction multistart. Ceci augmente nos chances d’avoir l’optimum global.
Le vecteur à optimiser comprend :
— les points de contrôle définissant les trajectoires des modules : nous avons Nc points de
contrôles par module, soit un total de N × Nc variables ;
— la durée des trajectoires.
Ce vecteur est donc de taille N × Nc + 1.
Les contraintes sont :
— les butées articulaires, évaluées seulement sur les points de contrôle ;
— les contraintes sur les forces (seulement sur fmax avec le mode de calcul des forces qui
garantit que toutes les forces sont supérieures à fmin ) évaluées sur un grand nombre de
points ;
— la durée des trajectoires doit être positive.
La fonction à minimiser fcost est la somme des normes au carré des forces durant la trajec-
toire :
tmax
fcost = ∑ ||f(t)||2dt (6.6)
t=0

Le calcul des forces se fait de la manière suivante :


— les trajectoires articulaires sont calculées à partir des points de contrôle (les vitesses et
accélération sont obtenues en dérivant les courbes de Bézier par rapport à x en faisant
attention au lien entre x et t) ;
— le modèle dynamique complet est utilisé pour calculer les forces permettant d’exécuter
la trajectoire du manipulateur. On utilisera l’équation (2.62) qui suppose que les câbles
sont inélastiques.

139
Partie , Chapitre 6 – Génération de mouvements

F IGURE 6.7 – Chemins cartésiens des trajectoires obtenues avec les différentes optimisations.

Les chemins cartésiens correspondant aux trajectoires obtenues pour les différentes optimi-
sations sont présentés en Figure (6.7). Le chemin correspondant à l’optimisation statique reste
plus longtemps dans la zone verte que le chemin direct. Sur la partie à droite, il relie au plus vite
le point dans la zone rouge avec la zone verte. Le chemin correspondant à l’optimisation dy-
namique sur 30 secondes est assez proche du chemin correspondant à l’optimisation statique :
la différence de résultats entre les deux se fait donc principalement sur la durée passée dans
chaque partie du chemin. L’optimisation dynamique sur 6 secondes donne également un che-
min qui reste la plupart du temps dans la zone verte. Nous notons une différence importante
dans la partie à droite, où le manipulateur va beaucoup plus vers la droite pour rejoindre la zone
verte.
Les forces moyennes obtenues en simulation en jouant les trajectoires optimisées en 6 et
30 secondes sont indiquées dans le tableau (6.1). Les gains sur ces moyennes sont nettement
plus importants qu’avec l’optimisation statique, puisqu’ils sont de 43, 5% et de 42, 1% pour les
trajectoires de 6 et 30 secondes respectivement.

140
6.1. Minimisation des forces

Temps Trajectoire directe Modèle statique Modèle dynamique


6sec 40.49N 35.09N 22.87N
30sec 37.54N 32.69N 21.75N
TABLE 6.1 – Forces moyennes appliquées en simulation.

Temps Trajectoire directe Modèle statique Modèle dynamique


6sec 35.6N 32.3N 19.51N
30sec 34.5N 32.0N 18.32N
TABLE 6.2 – Forces moyennes appliquées en expérience.

Toutes ces trajectoires ont ensuite été jouées sur le prototype afin de valider ces résultats. Les
forces moyennes appliquées sont indiquées dans le tableau (6.2). Les résultats sont cohérents
avec les résultats de simulation, avec des gains du même ordre. Les forces sont globalement un
peu plus faibles pour toutes les trajectoires, ce qui est majoritairement dû à l’identification des
frottements qui n’est pas parfaite.
La Figure (6.8) montre les forces employées pour effectuer les trajectoires directes et op-
timisées. Les forces des trajectoires de 6 secondes sont sur la colonne de gauche et celles des
trajectoires de 30 secondes sont sur la colonne de droite. Nous pouvons observer que les pics sur
f2 en deuxième partie de trajectoire sont moins présents pour les trajectoires directes, cependant
les forces appliquées restent en moyenne plus élevées. Les pics de forces sont nettement plus
fins avec les trajectoires optimisées avec le modèle dynamique : le manipulateur reste peu de
temps dans les configurations qui lui sont coûteuses, ce qui lui permet d’utiliser moins long-
temps des forces élevées. Les forces de simulation et d’expérience correspondent bien, excepté
pour l’amplitude de certains pics, mais ceci est dû à l’identification des frottements qui n’est
pas parfaite.
Les vidéos de toutes les trajectoires effectuées par le prototype sont disponibles au lien
suivant : https://uncloud.univ-nantes.fr/index.php/s/aWZeaF6X3WqX6Sg
Nous avons également optimisé des trajectoires pour aller d’une configuration dans l’espace
vert (qui nécessite peu de forces pour rester en équilibre) de l’espace de travail à une autre de
l’espace vert, comme on peut le voir sur la Figure (6.9).
Comme les configurations de départ et d’arrivées sont dans des zones peu coûteuses, le
chemin direct est déjà peu coûteux. Le chemin direct aurait pu passer par des configurations
coûteuses mais ce n’est pas le cas ici. De ce fait, les optimisations ont un effet moins impac-
tant. Les résultats sont résumés dans le tableau (6.3). L’optimisation avec le modèle statique
donne des résultats très similaires à la trajectoire directe. L’optimisation avec le modèle dyna-

141
Partie , Chapitre 6 – Génération de mouvements

140
140
f1
f1
f2
f2 120
120 f3
f3
f4
f4 100
100

80
Forces [N]

80
Forces [N]

60
60

40 40

20 20

0 0
0 1 2 3 4 5 6 0 5 10 15 20 25 30
time [s] time [s]
F [N]

F [N]

time [s] time [s]

F IGURE 6.8 – Forces employées pour effectuer les trajectoires optimisées. Les trajectoires di-
rectes sont sur la première ligne, les trajectoires optimisées avec le modèle statique sont sur
la seconde ligne et les trajectoires optimisées avec le modèle dynamique sont sur la troisième
ligne. A titre de comparaison, les forces obtenues en simulation pour jouer les trajectoires opti-
misées avec le modèle dynamique sont affichées sur la quatrième et dernière ligne. La première
colonne montre les trajectoires en 6 secondes et la seconde colonne celles en 30 secondes.
142
6.1. Minimisation des forces

F IGURE 6.9 – Position du manipulateur dans l’espace de travail pour les configurations αs et
αe pour la seconde trajectoire à optimiser. (xs , ys ) est la position correspond à αs et (xe , ye ) est
la position correspond à αe . Les deux points se situent dans la zone verte.

Temps Trajectoire directe Modèle statique Modèle dynamique


6sec 19.90N 19.46N 15.98N
30sec 16.79N 16.44N 14.22N
TABLE 6.3 – Forces moyennes appliquées en expérience pour les trajectoires reliant deux confi-
gurations dans la zone verte.

mique améliore légèrement les résultats, avec une baisse de la moyenne des forces appliquées
d’environ 19, 6% pour la trajectoire en 6 secondes et 15, 3% pour la trajectoire en 30 secondes.
L’optimisation est donc moins efficace sur ce type de trajectoire mais reste utile.
En conclusion, nous avons conçu deux méthodes pour optimiser la trajectoire permettant de
relier deux configurations. La première méthode utilise le modèle statique uniquement tandis
que la seconde s’appuie sur le modèle dynamique. Que ce soit en simulation ou en expérience,
qui donnent des résultats similaires, l’optimisation se basant sur le modèle dynamique est bien
plus efficace, notamment avec la prise en compte des frottements mais aussi avec la gestion du
temps qui n’est pas fait avec le modèle statique. Les résultats sont d’autant plus intéressants que
les configurations à relier se trouvent dans des zones coûteuses. En effet, c’est dans les zones
coûteuses que la marge de progression est la plus importante.

143
Partie , Chapitre 6 – Génération de mouvements

6.2 Mouvements explosifs


Le pic est capable de creuser son nid dans un tronc d’arbre en projetant son bec à une grande
vitesse sur ce tronc. Nous allons tenter de produire des mouvements similaires à celui du pic
qui frappe l’arbre.
On souhaite donc ici maximiser la vitesse selon l’axe x de la pointe du bec de notre mani-
pulateur.
On optimise ici aussi la trajectoire en la représentant avec des courbes de Bézier. Nous
utilisons la méthode proposée dans la section 6.1.2 pour optimiser la trajectoire. Nous gardons
donc le vecteur à optimiser ainsi que les contraintes indiquées. Seuls les ajouts de contraintes et
le changement de la fonction à minimiser sont donc détaillés ici.
Afin de partir de la position d’équilibre au repos pour débuter avec une vitesse nulle, on
impose que les deux premiers coefficients des courbes de Bézier sont les orientations des mo-
dules en position d’équilibre au repos, soit αi = 0 pour chaque module i. Nous n’imposons pas
les derniers coefficients, qui permettront d’ajuster la position et la vitesse du bec à la fin de la
trajectoire.
Nous voulons maximiser la vitesse maximale du bec selon l’axe x à la fin de la trajectoire.
La fonction à minimiser est donc :

fv = (vx (T ) − vd )2 (6.7)

où vx est la vitesse du bec selon l’axe x et vd est une vitesse désirée que l’on choisit élevée (on
choisit une vitesse désirée trop élevée pour être atteinte afin d’obtenir la plus grande vitesse
maximale possible).
Comme les mouvements sont rapides, nous ajoutons un nouveau groupe de contraintes qui
portent sur les vitesses maximales des moteurs :

∀i ∈ {1 ... n p }, |θ̇ (i)| ≤ θ̇max (6.8)

Nous ajoutons également une contrainte pour que la pointe du bec atteigne la valeur désirée
xd à la fin de la trajectoire :
xN+1 (α(T )) = xd (6.9)

Cette contrainte permet de choisir l’abscisse à laquelle le bec doit atteindre sa vitesse maximale,
comme le pic doit anticiper l’endroit où il va frapper le tronc d’arbre.
Pour tester ces mouvements explosifs, nous bornons la force maximale à 100N durant l’opti-

144
6.2. Mouvements explosifs

F IGURE 6.10 – Configurations articulaires du mouvement explosif obtenues par optimisation.

F IGURE 6.11 – Configurations articulaires du mouvement explosif à l’instant où le cou est le


plus reculé et à l’instant où la vitesse maximale du bec selon l’axe x est atteinte.

misation pour éviter d’avoir des mouvements trop violents. La trajectoire obtenue est présentée
en Figure (6.10). Nous remarquons qu’elle consiste à prendre de l’élan en penchant la tête vers
l’arrière puis à revenir vers la position droite rapidement, ce qui permet à la pointe du bec d’at-
teindre son pic de vitesse à la position désirée. Les deux premiers modules se penchent ainsi
vers la droite puis vers la gauche. Le troisième module se penche à l’inverse vers la gauche puis
vers la droite, ce qui permet au bec de rester droit à la fin du mouvement et donc d’avoir une
vitesse maximale selon l’axe x.
La Figure (6.11) montre la configuration la plus reculée du cou, ainsi que la configuration à
laquelle le pic de vitesse est atteint.
La Figure (6.12) montre la vitesse de la pointe du bec selon l’axe x ainsi que les forces

145
Partie , Chapitre 6 – Génération de mouvements

F IGURE 6.12 – Forces appliquées en simulation pour jouer la trajectoire explosive et vitesse du
bec selon l’axe x.

F IGURE 6.13 – Suivi de la trajectoire explosive avec le prototype.

appliquées en simulation. La vitesse minimale obtenue est d’environ −2.14m.s−1 . Notons que
le bec du pic peut lui atteindre des vitesses maximales allant de 2m.s−1 (pic épeiche) à 6m.s−1
(pic noir) environ selon les espèces [WZF11].
La Figure (6.13) montre le suivi de la trajectoire obtenu avec le prototype. Les gains ont été
montés à ω = 15 pour cette trajectoire qui est plus rapide que les précédentes. La trajectoire est
globalement bien suivie, avec une erreur moyenne de 1, 07deg sur α.
La Figure (6.14) montre les forces obtenues en jouant la trajectoire sur le prototype, ainsi
que la vitesse du bec selon l’axe x. On voit que les forces sont plus élevées que celles obtenues
en simulation. Les forces atteignent même la saturation à 140N du prototype. Cette différence
peut être due à une mauvaise identification des frottements à cette vitesse, ou de l’élasticité des
câbles qui sont soumis à des forces élevées. La vitesse maximale atteinte est de 2, 22m.s−1 , ce

146
6.3. Conclusion

F IGURE 6.14 – Forces appliquées sur le prototype pour jouer la trajectoire explosive et vitesse
du bec selon l’axe x.

qui est proche de la valeur obtenue en simulation.


La vidéo du prototype reproduisant cette trajectoire est disponible au lien suivant : https:
//uncloud.univ-nantes.fr/index.php/s/4m4XsNt3bkH4bcr

6.3 Conclusion
Nous avons d’abord optimisé les mouvements pour se déplacer d’une configuration à une
autre pour minimiser les forces appliquées. Une méthode basée sur le modèle statique et per-
mettant de garantir le résultat optimal a été présentée mais les gains sur les forces appliquées
en comparaison d’une trajectoire directe sont faibles. Une seconde méthode avec le modèle dy-
namique a donc été développée et les gains obtenus sont nettement plus intéressants puisqu’ils
sont de plus de 40%.
Nous avons ensuite générer un mouvement explosif que nous avons produit sur le prototype.
Ce mouvement montre cependant les limites du modèle dynamique employé, puisque les forces
requises pour effectuer les mouvements à haute vitesse sont moins bien estimées en simulation.
Les modèles simples de frottement des moteurs et d’élasticité des câbles peuvent être à l’origine
de ces différences.

147
C HAPITRE 7

O UVERTURE : M ANIPULATEUR
SOUS - ACTIONNÉ

Pour terminer cette thèse, nous proposons une ouverture vers le prochain manipulateur envi-
sagé pour les futurs travaux de recherches. Celui-ci est composé d’une dizaine de modules, mais
est actionné avec seulement N f = 4 moteurs. Ce nouveau manipulateur est donc sous-actionné,
ce qui engendre de nouvelles problématiques.
Un premier point important concerne la mesure des orientations des modules α. Pour un
manipulateur sous-actionné, nos méthodes d’estimation de α à partir des positions moteurs ne
sont plus utilisables. De ce fait, et pour également éviter les problèmes de mesures liés à l’élasti-
cité des câbles, des codeurs seront ajoutés pour mesurer directement l’orientation des modules.
Chaque module sera équipé d’un codeur mesurant l’orientation entre sa barre du haut et une des
barres diagonales, ce qui permettra de calculer son orientation α. Puisque le modèle dynamique
est écrit en fonction de α, tout commande basée sur ce modèle nécessite la connaissance de α.
Dans une première partie, nous allons proposer un nouvel algorithme de calcul de l’espace
de travail statique, qui exploite le sous-actionnement en explorant l’espace des forces au lieu
de l’espace articulaire. Ensuite, nous étudierons l’impact du nombre de modules sur l’espace
de travail du manipulateur. Pour cela, nous établirons une méthode de choix des variables du
manipulateur permettant de comparer des manipulateurs ayant un nombre différent de modules.
Puis nous nous baserons sur l’espace de travail statique pour comparer différents manipulateurs,
en prenant également en compte des obstacles.
Nous considérerons un manipulateur composé de 11 modules, soit le nombre de vertèbres
du pic vert. Nous considérerons le même modèle que pour le prototype à trois modules, avec la
même masse linéique des barres, les mêmes poulies et les mêmes inerties moteurs. Cependant,
les câbles seront supposé non-élastiques car il est envisagé d’utiliser des câbles moins élastiques
pour ce futur prototype. Nous capturerons le mouvement d’un cou de pic vert depuis une vi-
déo tournée avec un cadavre d’oiseau afin d’avoir le cou dénudé. Enfin, nous proposerons une
commande pour ce manipulateur sous-actionné, que nous testerons en simulation dans le but de

149
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

reproduire le mouvement de la vidéo.

7.1 Exploration de l’espace des forces pour les cas de sous-


actionnement
Le modèle statique est composé de N équations pour N + N f variables (les N orientations
des modules α et les N f forces à appliquer pour être en équilibre dans cette configuration).
Puisque dans le cas présent, on a N f < N, il est plus intéressant d’explorer N f variables au lieu
de l’espace articulaire. Nous pouvons choisir les N f variables à explorer de la manière que nous
souhaitons. Nous présentons ici une méthode où les N f variables sont les forces appliquées. Une
autre méthode, où les variables à explorer sont un sous-espace de α, a été implémentée mais est
moins performante, nous ne la détaillons donc pas ici.
Exploration de l’espace des forces
Nous voulons ici explorer l’espace des forces pour établir l’espace de travail. Plus préci-
sément, pour chaque jeu de force étudié, nous allons calculer une configuration α vérifiant le
modèle statique.
Comme précédemment, nous discrétisons l’espace exploré. On peut utiliser une discrétisa-
tion uniforme, comme proposé pour l’espace articulaire dans la méthode explorant ce dernier,
ou une autre discrétisation en fonction de ce qui est recherché. Afin de bien mettre en évidence
les zones de l’espace de travail nécessitant de faibles forces, nous utilisons la discrétisation non-
uniforme suivante : les forces vont de 0N à 20N avec un pas de 4N, puis de 20N à 140N avec
un pas de 10N.
L’objectif est de calculer, pour un jeu de forces données f, une configuration du manipulateur
α telle qu’on ait l’équilibre statique décrit par l’équation (2.53). Dans cette équation, le vecteur
des dérivées des énergies potentielles g(α) et la matrice Z(α) dépendent de la configuration
α. Pour calculer une configuration d’équilibre, nous procédons par optimisation en cherchant à
minimiser :
||g(α) − Z(α)f||2 (7.1)

Nous utilisons la méthode de Newton-Raphson [Ypm95] pour cela. En partant d’une configura-
tion α assez proche de la solution, la méthode consiste à mettre à jour la configuration jusqu’à
obtenir un équilibre avec la formule suivante :
 ∂ (g − Zf) −1
α = α − λNR (g − Zf) (7.2)
∂α

150
7.1. Exploration de l’espace des forces pour les cas de sous-actionnement

où λNR est un paramètre à fixer entre 0 et 1. Comme le calcul numérique ne permet pas d’at-
teindre forcément un équilibre exact, nous admettrons qu’une configuration est solution du mo-
dèle statique si et seulement si :
||g − Zf|| < ε (7.3)

où ε est une valeur faible. Suite à des essais avec différentes valeurs, nous prenons λNR = 1 et
ε = 10−6 , qui permettent une convergence rapide vers des résultats acceptables.
La matrice à inverser est la matrice de raideur articulaire du manipulateur K définie dans
le modèle dynamique par l’équation (2.54). La convergence ne se fait donc que dans des zones
stables de l’espace de travail.
Il reste maintenant le problème du choix de la configuration de départ pour la méthode de
Newton-Raphson, cette dernière devant être assez proche de la solution pour assurer la conver-
gence et pour que cette dernière soit rapide. Pour calculer cette configuration de départ, nous
allons négliger la gravité. Ainsi, l’équation à résoudre est :

gs (α) − Z(α)f = 0 (7.4)

où gs est le vecteur des dérivées de l’énergie potentielle due aux ressorts, défini par l’équation
(2.46).
Les lignes de cette équation sont indépendantes, ce qui nous permet de les résoudre chacune
indépendamment. Compte tenu du fait que la ligne i de Z(α) ne dépend que de αi (voire section
2.3.2) et que gs (i) ne dépend que de αi , (voire section 2.3.4), la ligne i de l’équation (7.4)
s’écrit :
gs (i)(αi ) − Zi (αi )f = 0 (7.5)

où Zi est la ligne i de la matrice Z.


Soit la fonction fsi : αi → gs (i)(αi ) − Zi (αi )f. Comme nous voulons calculer rapidement
une orientation αi telle que fsi (αi ) soit proche de 0, nous allons linéariser fsi . Pour cela, nous
prenons deux points de fsi et en déduisons la fonction affine correspondante. Les points en
± π4 permettent généralement une approximation correcte de fsi pour les valeurs situées dans
l’intervalle [− π4 , π4 ]. D’autres points peuvent être utilisés en fonction des raideurs des ressorts
utilisés et des forces appliquées, les points pouvant aller jusqu’à ± π2 . La Figure (7.1) montre la
fonction fsi entre [− π2 , π2 ] et [− π4 , π4 ] pour un jeu de force f choisi aléatoirement sur un manipu-
lateur constitué de N = 10 modules. On voit que la linéarisation est cohérente, notamment sur
l’intervalle [− π4 , π4 ]. Nous utilisons donc ces valeurs (les points en ± π4 ) pour la suite.
Trouver le zéro de la fonction affine est évident. Si la valeur obtenue est en dehors de l’inter-

151
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

F IGURE 7.1 – Les fonctions fsi entre [− π2 , π2 ] et [− π4 , π4 ] pour un jeu de force f choisi aléatoi-
rement (chaque force étant comprise entre fmin et fmax . Les dimensions des dix modules sont
b = 5cm, L = 10cm et tous les ressorts ont une raideur de 3000N.m−1 .

valle [− π4 , π4 ], on utilisera la borne la plus proche car l’approximation linéaire peut vite devenir
mauvaise en dehors de cet intervalle.
Les N orientations ainsi calculées forment la configuration de départ pour les calculs de
Newton-Raphson. La configuration de départ est d’autant plus proche de la solution que :
— l’apport des ressorts dans l’énergie potentielle est prédominant sur l’apport de la gravité,
puisque cette dernière est négligée dans le calcul de la configuration initiale ;
— les forces ne sont pas trop élevées par rapport aux ressorts utilisés, pour que l’approxi-
mation linéaire de fsi soit correcte.
Ces deux conditions demandent que les raideurs des ressorts ne soient pas trop faibles, ce
que nous recherchons puisque nous voulons un manipulateur stable. Les raideurs des ressorts
n’intervenant que dans la diagonale de la matrice de raideur K, augmenter les raideurs des
ressorts augmente cette diagonale et donc la stabilité du manipulateur.
Complexité
Le modèle statique doit être vérifié pour chaque jeu de forces de l’espace discrétisé. Nous
discrétisons chaque dimension de l’espace des forces de la même manière. Ainsi, si chaque
force peut prendre M valeurs, la complexité de l’algorithme est en O(M N f ). Le nombre de véri-
fications augmente donc de manière exponentielle par rapport au nombre de moteurs, mais est
constant par rapport au nombre de modules. Cet algorithme est donc plus rapide que l’explora-
tion totale de l’espace articulaire dans les cas de sous-actionnement, et peut s’utiliser dans un
temps raisonnable avec un nombre de moteurs allant jusqu’à N f = 4.
Exemple
La Figure (7.2) montre le résultat obtenu pour un manipulateur constitué de N = 9 modules.
Les dimensions des modules ainsi que les raideurs des ressorts sont celles indiquées dans le
tableau (7.1) et sur la Figure (7.5). Quatre câbles permettent d’actionner ce manipulateur. Un

152
7.2. Analyse de l’impact du nombre de modules

câble long passe par la gauche de tous les modules. Sur la droite, un câble tire sur les trois
premiers modules, un autre câble tire sur les trois modules du milieu et le dernier câble tire sur
les trois modules du haut, comme on peut le voir sur la Figure (7.2).
Le temps de calcul de cet espace de travail est d’environ une minute. Le nombre de jeux de
forces pour lesquels une configuration d’équilibre est calculée est d’un peu plus de 100000.

F IGURE 7.2 – Espace de travail d’un manipulateur constitué de N = 9 modules et actionné par
N f = 4 câbles.

7.2 Analyse de l’impact du nombre de modules

7.2.1 Comparaison du nombre de modules


Nous voulons ici étudier l’impact du nombre de modules sur l’espace de travail statique.
Nous fixons le nombre de moteurs à N f = 4 afin que seul le nombre de modules varie. Nous
allons calculer les dimensions des modules et les raideurs des ressorts afin d’avoir des résultats
comparables.
Nous comparons trois manipulateurs :
— un manipulateur à N = 3 modules, entièrement actionné avec l’actionnement à N + 1
moteurs ;
— un manipulateur à N = 6 modules, sous-actionné avec un câblage rappelant celui du cas
précédent : un câble long passe sur la gauche de tous les modules tandis que sur la droite,

153
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

les trois autres câbles sont le long de deux modules consécutifs chacun (l’un à droite des
deux premiers modules, le second à droite des modules 3 et 4 et le dernier à droite des
deux derniers modules) ;
— un manipulateur à N = 9 modules, sous-actionné avec un câblage similaire : un câble
long à gauche et trois câbles tirant à droite de trois modules consécutifs.
Les manipulateurs et leur câblage sont montrés sur la Figure (7.12).
Pour chacun des manipulateurs, nous considérons deux versions géométriques différentes.
Dans les deux versions, et quelque soit le nombre de modules, nous fixons la même hauteur
totale du manipulateur dans la position verticale (la hauteur de la barre du haut du dernier
module). Notons cette hauteur h. En pratique, nous prenons la hauteur du prototype actuel à
N = 3 modules, soit h = 26cm.
Pour la taille des modules, dans la première version nous gardons le ratio Lb = 2 afin que
les modules aient le même comportement. Afin d’atteindre la hauteur h, chaque module doit
vérifier di (αi = 0) = Nh . On en déduit rapidement que l’on doit avoir :

h 2h
b= √ et L = √ (7.6)
N 3 N 3

Dans la seconde version, nous prenons la même largeur b = 5cm afin de garder la même
largeur que sur le prototype. Comme dans le premier cas, chaque module doit vérifier di (αi =
0) = Nh . On en déduit donc que :
r
h
L = ( )2 + b2 (7.7)
N
Les dimensions des barres pour les différents manipulateurs sont indiquées dans le tableau
(7.1).

Première version N = 3 N=6 N=9 Seconde version N=3 N=6 N=9


b (cm) 5.00 2.50 1.67 b (cm) 5.00 5.00 5.00
L (cm) 10.00 5.00 3.33 L (cm) 10.00 6.61 5.77
TABLE 7.1 – Dimensions des barres pour les différents manipulateurs considérés.

Concernant les raideurs des ressorts, il est moins évident d’avoir des raideurs à effet com-
parable vu que le nombre de modules et leurs tailles changent. Nous proposons de calculer les
raideurs à partir de deux positions d’équilibre similaires quelque soit le nombre de modules et
les longueurs des barres :
— la position verticale comme position d’équilibre au repos ;

154
7.2. Analyse de l’impact du nombre de modules

F IGURE 7.3 – Configurations droites et penchées des manipulateurs (première version) avec 3,
6 et 9 modules.

π
— la position où l’orientation de tous les modules est égale à αi = 2N comme position
d’équilibre avec le jeu de forces suivant : la force appliquée au câble long est fixée
arbitrairement à 20N et les autres forces sont nulles.
Les longueurs à vide des ressorts sont fixées à L − b.
Ainsi les ressorts ont un effet global similaire quelque soit le nombre de modules. Les diffé-
rentes configurations des manipulateurs de la première version sont présentées en Figure (7.12).
Celles des manipulateurs de la seconde version sont présentées en Figure (7.4). Nous pouvons
également y voir le placement des câbles sur les côtés des modules (une couleur par câble).
Bien qu’elles ne soient pas affichées, les parties de câbles en strut-routed sont bien considérées.
La Figure (7.5) montre les raideurs des ressorts pour chacun des manipulateurs. Les ronds
bleus indiquent les raideurs des manipulateurs de la première version, et les rouges celles des
manipulateurs de la seconde version. Pour les manipulateurs à 3 modules, les courbes sont les
mêmes car les manipulateurs des deux versions sont identiques. Plus le nombre de modules est
important, plus les raideurs des ressorts sont élevées car leurs longueurs sont plus faibles. Les
longueurs des ressorts sont plus faibles dans la première version que dans la deuxième, ce qui
explique que les raideurs soient plus élevées pour la première version.
Nous notons que les deux manipulateurs à N = 3 modules sont identiques, mais sont diffé-
rents du prototype : ils ont des barres de mêmes dimensions mais les raideurs des ressorts sont
différentes.

155
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

F IGURE 7.4 – Configurations droites et penchées des manipulateurs (seconde version) avec 3,
6 et 9 modules.

F IGURE 7.5 – Raideurs des ressorts des manipulateurs avec 3, 6 et 9 modules (première version
en bleu et seconde en rouge).

156
7.2. Analyse de l’impact du nombre de modules

F IGURE 7.6 – Espaces de travail des manipulateurs avec 3, 6 et 9 modules (première version).

F IGURE 7.7 – Espaces de travail des manipulateurs avec 3, 6 et 9 modules (seconde version).

Nous pouvons donc maintenant étudier l’impact du nombre de modules sur l’espace de
travail statique. Les trois espaces de travail correspondant aux trois manipulateurs de la première
version sont présentés en Figure (7.6). On peut y voir que le nombre de modules impacte peu
sur la forme de l’espace de travail et sur la répartition des zones colorées en fonction des forces
requises. Les manipulateurs avec plus de modules peuvent cependant plus s’approcher de la
plateforme et des moteurs, ce qui leur permet d’étendre l’espace de travail vers l’intérieur.
Les trois espaces de travail correspondant aux trois manipulateurs de la seconde version sont
présentés en Figure (7.7). On peut y voir que le nombre de modules impacte également peu sur
la forme de l’espace de travail et sur la répartition des zones colorées en fonction des forces
requises. Cependant, ici la corrélation entre le nombre de modules et l’espace de travail n’est
pas évidente. L’espace de travail du manipulateur à 6 modules est un peu plus bas que celui du
manipulateur à 3 modules. L’espace de travail du manipulateur à 9 modules est quant à lui un
peu plus fin que l’espace de travail du manipulateur du manipulateur à 6 modules. Le choix de
garder la même largeur de modules n’encourage pas l’utilisation d’un plus grand nombre de
modules.
Nous allons pousser notre analyse en ajoutant des obstacles dans l’espace de travail, pour
étudier l’interaction des manipulateurs avec ces obstacles.

157
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

7.2.2 Espace de travail avec des obstacles


Avoir une redondance cinématique peut permettre une meilleure gestion des obstacles par
le manipulateur [RD99]. En effet, les degrés de libertés supplémentaires peuvent permettre au
manipulateur de s’enrouler autour des obstacles. Nous allons vérifier ce fait sur notre manipu-
lateur, en comparant les espaces de travail statiques de nos manipulateurs à 3, 6 et 9 modules en
y intégrant des obstacles.
Pour cela, nous allons ajouter la prise en compte des obstacles dans notre modèle dyna-
mique, afin que le manipulateur puisse s’appuyer sur ces obstacles. Nous allons utiliser la
méthode proposée dans [Bak+15]. L’idée est de modéliser l’obstacle avec des ressorts qui ne
deviennent actifs que lorsque le manipulateur est en contact avec l’obstacle. Lorsqu’ils sont
actifs, ils repoussent le manipulateur en dehors de l’obstacle. Cela revient à considérer l’obs-
tacle déformable, et que des efforts sont exercés sur le manipulateur en cas de pénétration dans
l’obstacle.
Cela permet d’intégrer les obstacles en tant qu’énergie potentielle, et donc de l’intégrer faci-
lement à notre modèle dynamique. Cependant, cela implique que le manipulateur pénètre légè-
rement dans l’obstacle. Plus la raideur de l’obstacle est grande, plus cette pénétration est faible,
nous prenons donc des raideurs d’obstacles élevées. Pour simplifier les contacts dans cette par-
tie, nous ne considérons pas la tête en haut du manipulateur et nous prenons des obstacles en
forme de disque. Soit (xo , yo ) la position du centre d’un obstacle. Le rayon de l’obstacle est noté
ro . La raideur du ressort utilisé pour modéliser l’obstacle est notée ko . Suite à des essais avec
différentes valeurs, nous prenons des raideurs d’obstacle entre 104 et 105 N.m−1 , qui permettent
une faible pénétration dans l’obstacle avec des efforts cohérents.
Nous ne considérons les interactions de l’obstacle qu’avec un ensemble de points prédéfinis
du manipulateur. Cet ensemble contient les extrémités de chacune des barres (soit 2N points) et
le milieu de la barre du haut du manipulateur. Soit un de ces points dont la position est (x, y).
La distance entre le centre de l’obstacle et ce point est :
q
do (x, y) = (x − xo )2 + (y − yo )2 (7.8)

Si ce point est trop proche de l’obstacle, c’est-à-dire si do (x, y) < ro , il faut calculer les modifi-
cations sur le manipulateur dues à l’obstacle.
L’énergie potentielle due à l’obstacle est :

1
Uo = ko (do (x, y) − ro )2 (7.9)
2
158
7.2. Analyse de l’impact du nombre de modules

Sa dérivée première par rapport à α est donnée par :

∂Uo ∂ do (x, y)
= ko (do (x, y) − ro ) (7.10)
∂ αi ∂ αi

avec
∂x ∂y
∂ do (x, y) ∂ αi (x − xo ) + ∂ αi (y − yo )
= (7.11)
∂ αi do (x, y)

Nous aurons également besoin de la dérivée seconde de cette énergie potentielle, qui est
donnée par :

∂ 2Uo  ∂ 2 do (x, y) ∂ do (x, y) ∂ do (x, y) 


= ko (do (x, y) − ro ) − (do (x, y) − ro ) (7.12)
∂ αi ∂ α j ∂ αi ∂ α j ∂ αi ∂αj

avec
 2 2

∂ 2d do (x, y) ∂ α∂i ∂xα j (x − xo ) + ∂ α∂i ∂yα j (y − yo ) + ∂∂αxi ∂∂αxj (x − xo ) + ∂∂αyi ∂∂αyj (y − yo )
o (x, y)
=
∂ αi ∂ α j do (x, y)2
 
∂ do (x,y) ∂x ∂y
∂αj ∂ αi (x − xo ) + ∂ αi (y − yo )

do (x, y)2
(7.13)

Les dérivées premières et secondes de x et y par rapport à αi sont données en annexe.

Nous notons go le vecteur de la somme des dérivées cette énergie potentielle pour chaque
point de contact du manipulateur considéré et pour chaque obstacle considéré :

∂Uo (xo , yo , ro , ko , x, y)
go = ∑ ∑ (7.14)
(xo ,yo ,ro ,ko )∈O (x,y)∈P
∂α

où O est l’ensemble des obstacles considérés et P est l’ensemble des points du manipulateur
considérés pour les appuis sur les obstacles.

L’équation d’équilibre prenant en compte les obstacles est :

g(α) + go (α) = Z(α)f (7.15)

On peut donc intégrer les obstacles dans la recherche de positions d’équilibre avec la mé-

159
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

F IGURE 7.8 – Appui d’un manipulateur sur un obstacle.

thode de Newton Raphson. L’équation (7.2) est remplacée par :


 ∂ (g + g − Zf) −1
o
α = α − λNR (g + go − Zf) (7.16)
∂α

Afin d’éviter certains problèmes de non-convergence, nous prenons un coefficient λNR va-
riable en fonction des configurations par rapport à l’obstacle :
— tant que le manipulateur n’est pas en contact avec des obstacles, on garde λNR = 1 ;
— tant que le manipulateur est dans l’obstacle, on prend λNR = 0.1. Ceci est nécessaire à
cause des raideurs d’obstacles élevées ;
— si le manipulateur est en dehors de l’obstacle avant la mise à jour de la configuration et
pénètre dans l’obstacle après la mise à jour, alors λNR est choisi de manière à ce que la
pénétration soit faible pour éviter que le manipulateur soit repoussé trop violemment ;
Pour cela, on choisit λNR comme la plus petite valeur dans {0.1, 0.125, 0.25, 0.5, 1}
telle qu’il y ait toujours une pénétration ;
— de même, si le manipulateur est dans l’obstacle avant la mise à jour et en dehors après,
on choisit λNR comme la plus petite valeur dans {0.1, 0.125, 0.25, 0.5, 1} telle que le
manipulateur soit en dehors de l’obstacle.
Nous ne considérons pas les appuis du manipulateur sur la base et les moteurs (en noir sur
les figures). Ainsi, toute collision avec la base et les moteurs est détectée et les configurations
correspondantes ne sont pas gardées dans l’espace de travail (comme c’était fait précédemment).
La Figure (7.8) montre un exemple d’enroulement d’un manipulateur constitué de N = 10
modules et actionné par N f = 4 forces sur un obstacle. L’obstacle est représenté par le double
cercle rouge. La force appliquée sur le câble long (en orange) augmente à chaque image (de
gauche à droite). Nous voyons que le manipulateur s’enroule bien autour de l’obstacle. Nous
remarquons également que le manipulateur pénètre légèrement dans l’obstacle. C’est pourquoi
une marge peut être utilisée sur l’obstacle, représentée par le double cercle ici.

160
7.2. Analyse de l’impact du nombre de modules

F IGURE 7.9 – Espace de travail statique avec appui sur obstacle (manipulateurs avec le même
rapport Lb ).

F IGURE 7.10 – Espace de travail statique avec appui sur obstacle (manipulateurs avec la même
largeur de module).

Les résultats obtenus pour les manipulateurs avec le même rapport Lb sont présentés en
Figure (7.9). L’espace de travail obtenu avec 6 modules est nettement plus grand que l’espace de
travail obtenu avec 3 modules. Il est très légèrement agrandi avec 9 modules. Nous pouvons voir
ici l’intérêt d’un manipulateur avec plus de modules, qui aura une interaction plus intéressante
avec son environnement. Cependant, ces résultats sont à nuancer puisque les manipulateurs avec
plus de modules avec le même rapport Lb sont plus fins.
Les résultats obtenus pour les manipulateurs avec la même largeur de module sont présen-
tés en Figure (7.10). L’espace de travail obtenu avec 6 modules est plus grand que l’espace
de travail obtenu avec 3 modules mais l’amélioration est moins impressionnante que pour les
manipulateurs avec le même rapport Lb . Il semble même être plus petit avec 9 modules qu’avec
6. Les résultats sont donc ici plus contrastés, comme ce l’était sans obstacles. Ceci est dû à la
largeur des manipulateurs qui ne diminue plus avec le nombre de modules, mais aussi à cause
du ratio Lb qui varie selon le nombre de module et impacte le comportement cinématique des
modules. Nous en retiendrons surtout que garder la largeur des modules n’est pas une bonne
solution.
En conclusion, nous avons comparé les espaces de travail des manipulateurs constitués de

161
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

3, 6 et 9 modules et actionnés à l’aide de 4 câbles. Nous avons comparé des manipulateurs dont
la hauteur en position droite était identique. La première catégorie gardait le ratio Lb = 2, tandis
que la seconde gardait la même largeur b = 5cm. Les espaces de travail nous montrent que les
manipulateurs les plus intéressants sont ceux de la première catégorie avec un nombre important
de modules : ces derniers ont des espaces de travail plus importants et évoluent mieux avec les
obstacles.
Notons que le sous-actionnement est cohérent avec les appuis sur l’environnement. Si le
manipulateur était complètement actionné, nous devrions adapter le jeu de forces pour éviter
l’obstacle et il pourrait y avoir des contradictions entre les efforts de l’environnement et les ef-
forts dans les câbles. Notons également que les obstacles permettent au manipulateur d’atteindre
des zones de l’espace de travail inaccessibles sans obstacles.
Nous allons maintenant nous intéresser à l’impact de la configuration d’équilibre au repos
sur l’espace de travail, en étudiant un manipulateur avec une forme en S au repos.

7.2.3 Forme en S à l’équilibre au repos


Nous nous intéressons ici à la forme au repos du manipulateur et à son impact sur l’es-
pace de travail. Le cou de l’oiseau a une forme en S au repos, nous allons donc comparer un
manipulateur avec une telle forme au repos avec un manipulateur droit au repos.
Le manipulateur droit utilisé pour la comparaison est celui constitué de N = 9 modules
utilisé dans la section précédente, avec le ratio Lb = 2. Nous le comparons à un manipulateur
constitué du même nombre de modules, avec les mêmes dimensions des barres, mais pour
lequel l’orientation initiale et les raideurs des ressorts sont différentes. Les raideurs des ressorts
sont calculées afin d’avoir une forme en S au repos, tout en gardant la même raideur moyenne
des ressorts par module que pour le premier manipulateur. Les raideurs des ressorts obtenues
ainsi que la configuration d’équilibre au repos sont montrées en Figure (7.11).
Nous ne considérons pas ici les collisions avec les moteurs, afin d’étudier la totalité de
l’espace de travail envisageable. La Figure (7.5) montre les espaces de travail statiques des deux
manipulateurs. Nous pouvons voir que les deux espaces de travail ont globalement la même
dimension. Un avantage de la forme en S est qu’elle permet d’avoir des zones peu coûteuses en
forces (bleue et verte) plus larges aux alentours de la position obtenue à l’équilibre, c’est-à-dire
dans la partie haute de l’espace de travail.
La forme en S est donc avantageuse pour effectuer des mouvements dans des zones plus
larges avec des forces faibles. Nous rappelons également que la forme en S en équilibre au
repos est non singulière, contrairement à la configuration droite, comme nous l’avons vu dans

162
7.2. Analyse de l’impact du nombre de modules

F IGURE 7.11 – Configuration d’équilibre au repos et raideurs des ressorts du manipulateur


constitué de N = 9 modules avec une configuration au repos en forme de S.

F IGURE 7.12 – Espaces de travail statiques des manipulateurs constitués de N = 9 modules


avec une configuration d’équilibre droite (à gauche) et en forme de S (à droite).

163
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

la section 5.3.
Dans cette idée qu’un grand nombre de modules est intéressant pour concevoir un nouveau
manipulateur sous-actionné, et qu’une forme en S au repos est avantageuse, nous allons main-
tenant nous inspirer de données biologiques pour choisir les dimensions et les ressorts d’un
prototype avec un grand nombre de modules.

7.3 Capture d’un mouvement de cou sur une vidéo


Nous souhaitons reproduire les mouvements effectués par les cous d’oiseaux avec notre
manipulateur. Pour ce faire, il faut d’abord récupérer des données sur ces mouvements. Nous
avons donc travaillé avec les biologistes du MNHN pour obtenir des vidéos des oiseaux. Ce-
pendant, sur les oiseaux vivants, les plumes autour du cou rendent difficile la distinction du cou.
Nous avons donc travaillé sur des cadavres d’oiseaux dont les plumes ont été retirées, comme le
montre la figure 7.13. Le cou est déplacé à la main. Cela a l’avantage de distinguer très claire-
ment le cou de l’oiseau, mais a l’inconvénient de fournir des mouvements non naturels. En effet,
les mouvements enregistrés sont probablement proches en termes de positions de ceux effec-
tués par les oiseaux dans la nature, mais pas en termes de vitesse et d’accélération. Nous avons
tout de même choisi de travailler avec ces vidéos afin d’obtenir des trajectoires de mouvements
simples. La vidéo analysée ici a été produite avec le cadavre d’un pic vert, et le mouvement est
le suivant : l’oiseau part d’une position que nous appelons au repos, avec une forme de S, puis
il recule la tête en pliant le cou, avance la tête puis la ramène vers sa position de départ deux
fois de suite (la position de fin n’est pas la même que celle de départ car le mouvement a été fait
à la main). Deux ficelles ont été placées comme marqueurs à la base du cou et à sa connexion
avec la tête. Si la première est bien visible, la seconde est plus compliquée à isoler sur la vidéo.
L’arrière-plan a été choisi en bleu, afin de pouvoir facilement le supprimer par son contraste
avec le cadavre de l’oiseau qui est en majorité rouge.
Pour analyser la vidéo, nous extrayons chaque image de celle-ci avec Matlab, et nous étu-
dions les images séparément.
Ces travaux ont amenés aux publications [Böh+19] et [Abo+19].

7.3.1 Extraction du cou dans la vidéo


Nous voulons avoir un manipulateur qui suit le cou dans la vidéo, c’est-à-dire que le ma-
nipulateur doit être à la même position que le cou à chaque image. Nous avons commencé par

164
7.3. Capture d’un mouvement de cou sur une vidéo

F IGURE 7.13 – Première image de la vidéo : le cou de l’oiseau dans la configuration supposée
de repos.

trouver sur chaque image la ligne au milieu du cou, que nous utiliserons ensuite pour placer les
modules. Nous avons procédé par étapes pour trouver cette ligne :
— suppression de l’arrière-plan ;
— suppression de la tête de l’oiseau et la main qui tient son bec ;
— suppression de la poitrine de l’oiseau ;
— enfin, calcul de la ligne au milieu du cou.
La première étape est d’éliminer tout l’arrière-plan, ce qui est facilement réalisable puisque
le cou de l’oiseau a une majorité de rouge, alors que le fond est majoritairement bleu. Ainsi, en
recherchant pour chaque pixel sa couleur dominante (chaque pixel ayant trois valeurs corres-
pondant aux proportions de rouge, vert et bleu), on peut déjà éliminer tout ce qui a plus de bleu,
et il ne reste que l’oiseau et la main. Comme le cou de l’oiseau reste dans un tiers de l’image
tout au long de la vidéo, nous ne gardons également que cette partie de l’image. Le résultat
obtenu après cette étape est montré en Figure (7.14).
Pour éliminer la tête et la partie restante de la main qui tient le bec, nous utilisons les
petites plumes rouges sur la tête. En effet, toujours avec les couleurs des pixels, nous pouvons
facilement les isoler et calculer leur centre sur l’image, qui est un point fixe sur la tête. Il suffit
ensuite de choisir le nombre de lignes à éliminer sur l’image en fonction de ce point. Le résultat
obtenu après cette étape est montré en Figure (7.15).
Nous devons maintenant éliminer toute la partie de l’oiseau située sous le cou. Nous avons
supposé que l’angle entre la base du cou et l’horizontale a une valeur de π4 . Cette hypothèse

165
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

F IGURE 7.14 – Suppression de l’arrière plan.

F IGURE 7.15 – Suppression de la tête.

a été retenue car cet angle ne change pas beaucoup pendant la vidéo, et aussi parce qu’il est
préférable d’avoir une base du cou fixe pour la simulation. Pour trouver la ficelle, on extrait les
contours de l’image par une méthode basée sur la dérivée de l’image [AKK10] puis on ne garde
que les pixels qui correspondent à une dérivée élevée, ce qui nous donne la trace de la ficelle.
Nous supprimons ensuite toute la partie basse de l’image. La Figure (7.16) montre la dérivée de
l’image ainsi que le résultat après l’élimination du corps de l’oiseau.
Pour finir, il reste à nettoyer l’extrémité haute du cou. Cependant, la corde correspondant à
l’extrémité du cou n’est pas très visible sur la vidéo, nous avons donc choisi une autre méthode
pour trouver la ligne médiane du cou. Nous avons commencé par déterminer la frontière à
gauche du cou, qui est déjà bien travaillée. Pour cela, on repère le point en bas à gauche du cou,

166
7.3. Capture d’un mouvement de cou sur une vidéo

F IGURE 7.16 – La dérivée de l’image (à gauche) et le résultat après la suppression du corps de


l’oiseau (à droite).

F IGURE 7.17 – Résultat final de l’extraction du cou. Les pixels blancs correspondent au cou de
l’oiseau, et les pixels rouges correspondent à la ligne au milieu du cou.

puis on suit la frontière jusqu’à la fin du cou en haut à gauche, pixel par pixel, en regardant ceux
qui sont voisins d’un pixel éliminé précédemment, et on sauvegarde le pixel de la frontière. Puis
on évalue la largeur du cou W en pixels, et on élimine tous les pixels se trouvant à une distance
supérieure à W du bord gauche. En conséquence, il ne reste que le cou, et seule la connexion
avec la tête n’est pas parfaite. Pour estimer le milieu du cou, nous avons gardé les pixels restants
qui sont à une distance de W2 du bord gauche. Le résultat obtenu pour la première image de la
vidéo est montré en Figure 7.17, où la ligne rouge montre l’estimation du milieu du cou et le
blanc la partie du cou qui a été conservée.

167
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

7.3.2 Positionnement des modules

Maintenant que nous avons la ligne du milieu du cou, nous pouvons pour un nombre donné
de modules (et leur dimensions) calculer leurs orientations afin que le manipulateur suive au
mieux cette ligne. Les données initiales sont donc la ligne centrale du cou, l’inclinaison de la
base de la pile, ainsi que la pile de modules qui est donnée par :
— le nombre de modules N ;
— les dimensions des barres des modules.
Le résultat est un vecteur α = [αi ]i∈{1 ... N} , où αi est l’orientation du module i.
Comme nous connaissons l’inclinaison de la base du cou (soit γ0 = π4 ), nous avons choisi
de procéder par itérations, en plaçant chaque module un par un en partant de la base du cou. La
première idée était de placer les modules de telle sorte que le milieu de chaque barre supérieure
soit sur la ligne médiane du cou. Pour cela, on procède de manière itérative en partant du module
du bas du manipulateur. En supposant qu’on connait la position et l’orientation de la barre du bas
du module i, on peut exprimer la position (xi+1 , yi+1 ) du milieu de la barre du haut du module i
à l’aide des équations (2.8) et (2.9). On peut alors calculer l’angle αi tel que le centre de la barre
du haut soit sur la ligne médiane du cou. Avec cette méthode, on obtient le résultat présenté à
gauche de la Figure (7.18). Comme on peut le voir, le milieu de chaque barre supérieure est sur
la ligne médiane du cou mais plusieurs modules ont une forte inclinaison alors que la ligne est
assez droite, et nous préférons avoir les barres supérieures proches de la perpendiculaire de la
ligne médiane du cou.
Nous avons donc utilisé une deuxième méthode pour prendre en compte la perpendiculaire
de la ligne médiane du cou. Cette méthode fonctionne comme la première, mais le choix de
l’angle est fait différemment. On choisit l’orientation αtest qui minimise :

v(αtest ) = d(αtest ) + λ × |γline (αtest ) − (γi + αi )| (7.17)

où d(αtest ) est la distance entre le milieu de la barre supérieure du module i et la ligne médiane
du cou, γline (αtest ) est l’orientation de la perpendiculaire à la tangente de la ligne (au niveau
du croisement de la ligne avec la barre du haut du module i) et λ est un coefficient que nous
avons fixé. Le résultat de cette deuxième méthode est présenté à droite de la figure 7.18, avec un
coefficient λ = 50. Comme prévu, les barres du milieu du haut ne sont pas sur la ligne, mais elles
en restent proches, et cette fois les inclinaisons des modules sont proches de la perpendiculaire
à la ligne médiane du cou. Nous privilégierons donc cette méthode.

168
7.3. Capture d’un mouvement de cou sur une vidéo

F IGURE 7.18 – Modules placés sur la ligne médiane du cou. A gauche : la première méthode
où le milieu des barres supérieures est sur la ligne médiane du cou. A droite : la deuxième
méthode où l’on prend en compte l’angle de la barre supérieure par rapport à la tangente de la
ligne médiane du cou, avec un coefficient λ = 50.

7.3.3 Conception du manipulateur pour la capture du mouvement

Pour rejouer la trajectoire obtenue sur un pic vert qui a 11 vertèbres, nous considérons un
manipulateur à 11 modules. Nous gardons les dimensions des barres similaires au prototype à
trois modules (b = 5cm et L = 10cm).
Avec ces dimensions, le mouvement de la vidéo a été extrait avec la méthode que nous
venons de présenter. Nous avons donc obtenu une succession de configurations à reproduire.
Afin d’avoir un départ et une arrivée à vitesse nulle, la première et la dernière configuration
sont maintenues pendant un certain temps. Le résultat provenant de la vidéo étant bruité, nous
avons lissé les courbes des configurations avec un filtre moyennant à fenêtre mobile (fonction
smooth de Matlab). Les vitesses et accélérations sont obtenues par dérivées numériques afin
d’obtenir la trajectoire.
Les raideurs des ressorts sont calculées afin d’avoir la première configuration de la vidéo
comme configuration d’équilibre au repos, et que la moyenne des raideurs des ressorts d’un
même module soit égale à 3000N.m−1 . Les configurations extrêmes de la trajectoire (à gauche
et à droite) sont utilisées pour les contraintes d’espaces de travail sur le calcul des ressorts.
La Figure (7.19) montre le manipulateur dans la configuration d’équilibre au repos ainsi que
les raideurs des ressorts.
Maintenant que le manipulateur et la trajectoire sont définis, il nous reste à établir une com-
mande pour reproduire cette trajectoire avec seulement N f = 4 moteurs.

169
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

F IGURE 7.19 – Manipulateur dans sa configuration à l’équilibre au repos et les raideurs des
ressorts.

7.4 Commande sous-actionnée dans l’espace des moteurs

Bien qu’en simulation, la commande entièrement actionnée fonctionne sur ce manipulateur


[Abo+19], nous ne voulons pas en pratique utiliser douze moteurs. Ainsi, nous proposons des
commandes sous-actionnées pour contrôler le manipulateur avec N f = 4 moteurs uniquement.
Le câblage du manipulateur est visible sur la Figure (7.19). Un câble long passe sur la droite de
tous les modules (côté ventral) et pour la droite, les modules sont divisés arbitrairement en trois
groupes : les quatre premiers modules, les quatre suivants puis les trois derniers.
La matrice A de ce câblage est donnée par :
 
3 5 5 4
3 5 5 4
 
 
3 5 5 4
 
1 5 5 4
 
 
0 3 5 4
 
A = 0 3 5 4 (7.18)
 
 
0 3 5 4
 
0 1 5 4
 
 
0 0 3 4
 
0 0 3 4
 

0 0 1 2

On peut aisément adapter la commande des moteurs pour du sous-actionnement, du moins

170
7.4. Commande sous-actionnée dans l’espace des moteurs

θ θ̇
- Dérivée -
θd , θ̇d , θ̈d Modèle
PID 
géométrique
-
Manipulateur, 6
moteurs, θ̈dc , θ̇d
variateur ?
α - αd , α̇d , α̈d
Calcul
 des forces
f

F IGURE 7.20 – Boucle de commande dans l’espace des moteurs pour un manipulateur sous-
actionné.

lorsqu’il y a un câble long comme dans notre stratégie d’actionnement. Pour des stratégies
d’actionnement plus complexes, le calcul des tensions dans les câbles peut être fait avec les
méthodes présentées dans la section 1.2.4.

Le schéma de la commande est présenté en Figure (7.20). La principale différence avec le


schéma de la commande dans l’espace des moteurs pour un manipulateur entièrement actionné
(voir Figure (5.10)) est que les orientations des modules α sont ici directement mesurées sur le
manipulateur à l’aide de codeurs.

Les variables asservies sont θ . Soit θd les trajectoires désirées des moteurs. Ces trajectoires
sont calculées à partir des trajectoires articulaires établies dans la section précédente. Cepen-
dant, rien ne garantit qu’un suivi parfait dans l’espace des moteurs corresponde à un suivi parfait
dans l’espace articulaire. L’erreur de suivi est :

eθ = θd − θ (7.19)

L’accélération désirée est calculée de la manière suivante :


Z t
θ̈dc (t) = θ̈d (t) + k p eθ (t) + kv ėθ + ki eθ (t ′ )dt ′ (7.20)
t ′ =0

avec les mêmes gains que pour les commandes du manipulateur entièrement actionné.

On définit une commande pour commander les N f moteurs avec l’actionnement choisi. Dans

171
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

ce cas, la matrice Z peut se décomposer de la manière suivante :

Z = [Z1 Z2 ] (7.21)

où Z1 est une matrice de dimension (N × (N f − 1)), et Z2 est un vecteur de dimension N × 1.


D’après (2.66), on peut donc écrire :

Mm (α)α̈ + cm (α, α̇) + g(α) = Z1 (α)t1 + Z2 (α)t2 (7.22)

où t1 est un vecteur de dimension N contenant les tensions des N câbles tirant à gauche et t2
est un scalaire correspondant à la tension dans le câble long. Rappelons que Mm est la matrice
d’inertie de la pile de module uniquement, et ne prend pas en compte les moteurs.
Z1 est une matrice de rang plein. On peut donc exprimer t1 en fonction de t2 :
 
t1 = Z1 (α)+ Mm (α)α̈ + c(α, α̇) + g(α) − Z2 (α)t2 (7.23)

Nous avons vu dans la section 5.2 que la prise en compte du modèle statique uniquement
donne de bons résultats, et la matrice Mm est bien plus coûteuse que le vecteur g à calculer (le
temps de calcul est environ cinq fois plus long). Nous négligeons donc Mm ainsi que c dans
cette commande.
Le calcul de t1 en fonction de t2 devient donc :
 
t1 = Z1 (α)+ g(α) − Z2 (α)t2 (7.24)

Les tensions désirées à appliquer dans les câbles peuvent donc s’écrire en fonction de t2
comme : !
t1 (t2 )
tc (t2 ) = (7.25)
t2
D’après (2.65), le lien entre les forces appliquées et les tensions des câbles sont :

R c
f = Ia θ̈ + tc (t2 ) + f f riction (7.26)
rd d

Il faut donc calculer t2 afin de vérifier les contraintes dues à l’actionnement par câble.
Comme dans la version entièrement actionnée, on a N f contraintes pour que les câbles soient
tous tendus et N f contraintes pour assurer une force supérieure à fmin sur chacun des moteurs.
Nous avons donc un total de 2N f valeurs minimales à vérifier pour t2 . Les forces sont ensuite

172
7.5. Conclusion

bornées à fmax .
Cette commande a été utilisée pour essayer de reproduire la trajectoire capturée sur la vidéo.
Cependant, nous ne cherchons ici qu’à suivre les trajectoires des moteurs, qui ne garantissent
pas d’obtenir la même trajectoire articulaire. Les longueurs des câbles étant cependant simi-
laires, la trajectoire globale devrait être très proche.
La Figure (7.21) montre les forces appliquées ainsi que le suivi sur les positions moteurs.
Les gains utilisés sont calculés avec ω = 10. La commande fonctionne très bien, avec une erreur
moyenne d’environ 19, 1deg sur θ (soit 0.7% de l’amplitude de θ ).
La Figure (7.22) montre les orientations des modules obtenues pendant la simulation en
comparaison avec celles obtenues depuis la vidéo du pic. Nous pouvons voir que les orientations
sont différentes mais que l’allure générale est similaire.
La Figure (7.23) montre la position et l’orientation de la barre du haut du manipulateur, en
comparaison avec la vidéo du pic. Nous pouvons voir que les courbes sont assez proches, ce qui
montre que le mouvement de la vidéo est assez bien reproduit.
Le mouvement du manipulateur a été reporté sur la vidéo du pic vert. La vidéo montre que
le mouvement est globalement bien reproduit. Cette vidéo est disponible à l’adresse suivante :
https://uncloud.univ-nantes.fr/index.php/s/64xz5mobf2WWiD6
Cette commande fonctionne donc bien pour le sous-actionnement. Nous notons qu’elle est
très stable. Nous avons également testée cette commande en négligeant g dans l’équation (7.24),
le suivi est moins bon avec une erreur moyenne sur θ de 45, 1deg, mais le mouvement reste
globalement bien effectué et la commande reste stable. La commande prenant en compte g
reste évidemment préférable.

7.5 Conclusion
Dans cette ouverture, nous avons proposé une méthode pour calculer l’espace de travail
d’un manipulateur sous-actionné. Nous avons ensuite étudié l’impact du nombre de modules
sur l’espace de travail, avec des manipulateurs constitués de 3, 6 et 9 modules actionnés par 4
moteurs. Nous en avons déduit qu’un manipulateur avec un nombre important de modules dont
le ratio Lb est gardé à 2 est intéressant, notamment pour les interactions avec l’environnement.
Nous avons également vu qu’une forme en S du manipulateur au repos permet d’élargir les
zones peu coûteuses en forces de l’espace de travail dans la partie haute de ce dernier.
Nous avons ensuite capturé le mouvement du cou d’un pic vert sur une vidéo, que nous
avons cherché à reproduire en simulation avec une commande sous-actionnée dans l’espace des

173
Partie , Chapitre 7 – Ouverture : Manipulateur sous-actionné

F IGURE 7.21 – Résultats de la simulation de commande des moteurs sous-actionnée.

moteurs. La commande sous-actionnée fondée sur un asservissement des positions des moteurs
est efficace et stable, et le mouvement de la vidéo est globalement bien reproduit.

174
F IGURE 7.22 – Trajectoire articulaire de la simulation de commande des moteurs sous-
actionnée.

F IGURE 7.23 – Position et orientation de la barre du haut du manipulateur en simulation avec


la commande des moteurs sous-actionnée.
C HAPITRE 8

C ONCLUSION

Commençons par rappeler les différents points abordés dans cette thèse. Après un état de
l’art sur les systèmes de tenségrité, les robots bio-inspirés et les robots à câbles, nous avons
introduit un manipulateur inspiré du cou des oiseaux. Ce manipulateur est un empilement de
modules, équivalents des inter-vertèbres. Ces modules sont des mécanismes de tenségrité et
chacun possède un seul degré de liberté. Le manipulateur est actionné à l’aide de câbles, qui
sont disposés de manière antagoniste sur les modules.
Nous avons établi le modèle géométrique du manipulateur, permettant notamment de faire
le lien entre l’espace articulaire, l’espace opérationnel et l’espace des moteurs. Pour cela, les
calculs des longueurs des câbles ont été développés, et nous avons vu que les poulies devaient
être prises en compte dans ces calculs. Ces calculs sont importants car ils lient les orientations
des modules α et les orientations des moteurs θ , ce qui nous permet d’estimer α à partir de θ
sur le prototype. Ils ont également un rôle important dans le modèle dynamique. En particulier,
la matrice Z qui permet de calculer les forces généralisées s’exprime en fonction des dérivées
des longueurs des câbles. Une matrice d’actionnement A décrivant le câblage du manipulateur
a été définie. Elle permet d’établir les effets des forces appliquées dans le modèle dynamique
de manière générique quelque soit le câblage utilisé.
Le modèle dynamique a ensuite été établi. Ce modèle est utilisé par la suite pour établir les
différentes commandes proposées ainsi que pour simuler le manipulateur.
Une analyse est ensuite menée sur un manipulateur entièrement actionné. Nous avons d’abord
montré qu’un actionnement complet de N modules nécessite au moins N + 1 moteurs. Nous
avons introduit et détaillé deux actionnements complets, l’un avec 2N moteurs qui est l’action-
nement où chaque module est actionné avec deux câbles, et l’autre avec N + 1 moteurs où un
câble passe par l’un des côtés de chaque module et les N autres sont répartis sur l’autre côté.
Nous avons utilisé le modèle statique pour calculer les raideurs des ressorts afin d’avoir
un manipulateur stable et avec des configurations limites suffisantes. Le modèle statique est
également utilisé pour calculer l’espace de travail statique du manipulateur, c’est-à-dire l’image
opérationnelle de l’ensemble des configurations du manipulateur dans lesquelles un jeu de force

177
Partie , Chapitre 8 – Conclusion

permet de le maintenir en équilibre. Les deux actionnements complets précédemment introduits


ont été comparés sur leur espace de travail. Nous en avons déduit que l’actionnement à N + 1
moteurs donnait un espace de travail satisfaisant et c’est cet actionnement qui a été choisi pour
la suite puisqu’il nécessite moins de moteurs.
Le prototype entièrement actionné composé de 3 modules et actionné à l’aide de 4 câbles est
ensuite introduit. Ce prototype n’a pas de capteurs permettant une mesure directe de α : deux
méthodes permettant de calculer α à partir des positions moteurs θ sont donc utilisées.
Les premières expériences avec le prototype ont été effectuées en utilisant un modèle dyna-
mique simplifié, négligeant les frottements moteurs et supposant les câbles rigides. Ces expé-
riences ont mis en avant deux problèmes majeurs : les valeurs estimées de α sont perturbées par
l’élasticité des câbles et les forces appliquées sont plus élevées que ce que prévoyait le modèle
simplifié. Les paramètres des frottements moteurs et de l’élasticité des câbles ont donc été iden-
tifiés avec un modèle linéaire en ces paramètres. L’identification des frottements moteurs a été
efficace pour les frottements secs mais pas pour les frottements visqueux. Nous en avons déduit
que les frottements secs étaient prédominants et nous avons négligé les frottements visqueux
par la suite. Les résultats de simulation utilisant les paramètres de frottements identifiés sont
en accord avec les données expérimentales, bien que les amplitudes des forces ne soient pas
toujours parfaitement retrouvées.
Les modèles classiques de câbles élastiques n’ont pas donné de bons résultats à l’identifica-
tion. En nous inspirant des erreurs de reconstruction qui grandissaient avec la tension dans les
câbles, nous avons proposé un modèle de câble élastique dans lequel la raideur du câble évolue
avec la tension dans celui-ci. L’identification de ces nouveaux paramètres a donné une meilleure
reconstruction des données, notamment pour des tensions élevées dans les câbles.
La commande articulaire a ensuite été testée avec et sans les paramètres identifiés. Nous
en avons déduit que la prise en compte des frottements moteurs améliorait la commande, en
permettant notamment de réduire la force minimale appliquée tout en gardant une tension mini-
male dans les câbles. Le modèle de câble élastique permet une meilleure estimation de α mais
augmente les erreurs de suivi. L’estimation de α à partir des longueurs des quatre câbles étant
convenable, nous avons gardé pour la suite la commande avec prise en compte des frottements
et supposant les câbles rigides.
Deux autres commandes sont ensuite proposées. La première est la commande dans l’es-
pace des moteurs, où le suivi se fait sur les positions moteurs θ . Les forces sont calculées en
prenant en compte l’antagonisme de l’actionnement, à l’aide de la matrice Z. Cette commande
est intéressante car elle peut être utilisée sans calculer le modèle dynamique complet du mani-

178
pulateur, l’inertie des moteurs étant prédominante. Les essais donnant les meilleures résultats
sont d’ailleurs obtenus en ne considérant que le modèle statique. La seconde commande est une
commande de la position de la barre du haut du manipulateur (et de manière facultative de son
orientation). Cette commande est intéressante car les mouvements désirés sont généralement
dans l’espace opérationnel, mais les singularités du manipulateur empêchent son utilisation
dans tous l’espace de travail. Un traitement approprié pourrait être mis en place. Cependant,
s’inspirant du cou des oiseaux, un choix de conception permettant d’avoir une forme en S au
repos permet de s’affranchir facilement des configurations singulières.
Afin d’exploiter la structure du manipulateur, nous avons généré des trajectoires avec des
objectifs particuliers. Le premier objectif était de minimiser les forces requises pour aller d’une
configuration à une autre. Une optimisation de la trajectoire se basant sur le modèle dynamique
a donné des trajectoires dont les forces requises étaient presque deux fois plus faibles que les
trajectoires directes lorsque les configurations à relier sont dans des zones coûteuses. Pour relier
des zones moins coûteuses, l’optimisation est moins avantageuse mais permet tout de même une
certaine économie (gain sur les forces de l’ordre de 20%).
Le second objectif était de produire des mouvements à grande vitesse, comme le pic le
fait lorsqu’il frappe un tronc d’arbre avec son bec. La trajectoire se calcule par optimisation
ici aussi, et les mouvements obtenus sont cohérents : le manipulateur se penche d’abord vers
l’arrière pour charger le mouvement, puis se précipite vers l’avant pour atteindre son pic de
vitesse. Le mouvement est bien reproduit en expérience, mais requiert des forces plus élevées
qu’en simulation, ce qui montre les limites de notre simulateur.
Pour terminer cette thèse, nous avons présenté une ouverture sur un manipulateur sous-
actionné. Après avoir présenté une méthode de calcul de l’espace de travail statique se basant
sur l’exploration de l’espace des forces, nous avons étudié l’impact du nombre de modules
du manipulateur sur son espace de travail. Nous avons également ajouté une modélisation de
l’interaction du manipulateur avec des obstacles, afin de mettre en évidence l’avantage d’avoir
de nombreux modules et donc de la redondance mécanique.
Toujours dans notre démarche bio-inspirée, nous avons donc proposé un manipulateur à 11
modules et actionné par 4 câbles. Un mouvement du cou d’un pic a été capturé sur une vidéo
faite à l’aide d’un cadavre d’oiseau, permettant donc d’isoler le cou dénudé et ainsi calquer le
mouvement de notre manipulateur sur ce cou. Le mouvement ainsi capturé a été rejoué en simu-
lation, à l’aide d’une commande dans l’espace des moteurs étendue pour le sous-actionnement.
Le mouvement est ainsi globalement bien reproduit, bien que le sous-actionnement ne permette
pas un suivi pour chaque module.

179
Partie , Chapitre 8 – Conclusion

Perspectives
Comme le laisse entendre le dernier chapitre de cette thèse, de nombreux points restent
encore à être étudiés sur ce manipulateur innovant inspiré du cou de l’oiseau.
Prototype sous-actionné avec une dizaine de modules
La réalisation d’un prototype constitué d’une dizaine de modules (de même dimension que
pour le premier prototype) et actionné par 4 câbles, comme présenté en ouverture, est prévue à
la suite de cette thèse.
Pour ce prototype, des codeurs seront placés sur les modules afin de mesurer directement les
orientations α, car il est compliqué d’estimer de manière fiable α à partir des positions moteurs
θ sur un manipulateur sous-actionné. Cela permettra d’écarter en partie le problème d’élasticité
des câbles, puisque la mesure de α ne se fera pas via les câbles. Cette élasticité impactera tout
de même la commande, et comme les longueurs de câbles seront plus importantes (vu qu’il y a
plus de modules), les allongements le seront probablement également. L’utilisation d’un câble
plus rigide sera envisagée.
La commande sous-actionnée devra être étudiée plus en profondeur. La commande dans
l’espace des moteurs fonctionne bien en simulation, ce qui est un bon signe pour la suite.
D’autres commandes seront envisagées, telles qu’une commande dans l’espace articulaire ainsi
qu’une commande opérationnelle.
Exploitation de la structure du manipulateur
Nous avons commencé dans cette thèse à exploiter la structure du manipulateur pour générer
des trajectoires explosives et des trajectoires minimisant les forces requises. Non-seulement ces
travaux ne sont validés que pour un manipulateur composé de 3 modules et mériteraient d’être
étendus pour des manipulateurs avec plus de modules, mais d’autres travaux pourraient être
menés pour étudier les avantages procurés par de tels manipulateurs.
L’interaction du manipulateur avec son environnement mérite d’être étudiée, car la redon-
dance d’un manipulateur sous-actionné composé d’un grand nombre de modules devrait lui per-
mettre de s’appuyer aisément sur des obstacles par exemple. Le manipulateur étant très léger, il
semble également adapté à la cobotique (travail robot et humain en collaboration) puisqu’il est
potentiellement moins dangereux que les robots sériels classiques avec les moteurs au niveau
de leurs articulations.
Manipulateur en 3D
La modélisation du manipulateur est faite uniquement en 2D dans cette thèse. Cependant,
cette modélisation s’est avérée complexe, et a du être complétée suite aux premières expéri-

180
mentations avec la prise en compte des poulies dans le calcul des longueurs des câbles, les
frottements moteurs et l’élasticité des câbles.
La modélisation et la conception d’un manipulateur en 3D s’annoncent plus compliquées,
avec de nouveaux défis : les éléments des systèmes de tenségrité ne doivent pas entrer en colli-
sion, le passage des câbles ne se fera plus nécessairement dans un plan (il faudra donc d’autres
systèmes que les poulies pour les guider) et les points d’attache des ressorts permettant de ga-
rantir la stabilité du manipulateur seront à définir.

181
B IBLIOGRAPHIE

[Abo+19] A A BOURACHID et al., « Modelling, design and control of a bird neck using ten-
segrity mechanisms », in : ICRA’2019 Worskhop on Tensegrity, 2019.
[Ack11] JAD ACKROYD, « Sir George Cayley : The invention of the aeroplane near Scar-
borough at the time of Trafalgar », in : Journal of Aeronautical History Paper No
6 (2011).
[AG06] Marc A RSENAULT et Clément M G OSSELIN, « Kinematic, static and dynamic
analysis of a planar 2-DOF tensegrity mechanism », in : Mechanism and Machine
Theory 41.9 (2006), p. 1072-1089.
[AKK10] Salem Saleh A L -A MRI, NV K ALYANKAR et SD K HAMITKAR, « Image segmen-
tation by using edge detection », in : International journal on computer science
and engineering 2.3 (2010), p. 804-807.
[Ars10] Marc A RSENAULT, « Determination of the Analytical Workspace Boundaries of
a Novel 2-DoF Planar Tensegrity Mechanism », in : Transactions of the Canadian
Society for Mechanical Engineering 34.1 (2010), p. 75-91.
[AS06] JB A LDRICH et RE S KELTON, « Backlash-free motion control of robotic mani-
pulators driven by tensegrity motor networks », in : Decision and Control, 2006
45th IEEE Conference on, IEEE, 2006, p. 2300-2306.
[Bak+15] Daan L BAKKER et al., « Design of an environmentally interactive continuum ma-
nipulator », in : Proc. 14th World Congress in Mechanism and Machine Science,
IFToMM, 2015.
[Bak+17] Sana BAKLOUTI et al., « Dynamic and oscillatory motions of cable-driven parallel
robots based on a nonlinear cable tension model », in : Journal of mechanisms and
robotics 9.6 (2017).
[Beg+20] Jeremy B EGEY et al., « Selection of actuation mode for tensegrity mechanisms :
The case study of the actuated Snelson cross », in : Mechanism and Machine
Theory 152 (2020), p. 103881.

183
Partie , BIBLIOGRAPHIE

[BÉZ87] Pierre BÉZIER, Courbes et surfaces pour la CFAO, Ed. Techniques Ingénieur,
1987.
[Böh+19] Christine B ÖHMER et al., « Combining precision and power to maximize per-
formance : a case study of the woodpecker’s neck », in : Computer Methods in
Biomechanics and Biomedical Engineering 22.sup1 (2019), S20-S21.
[BP12] Tobias B RUCKMANN et Andreas P OTT, Cable-driven parallel robots, t. 12, Sprin-
ger, 2012.
[CA12] Samuel C HEN et Marc A RSENAULT, « Analytical computation of the actuator
and cartesian workspace boundaries for a planar 2-degree-of-freedom translatio-
nal tensegrity mechanism », in : (2012).
[CA13] Eduardo F C AMACHO et Carlos Bordons A LBA, Model predictive control, Sprin-
ger science & business media, 2013.
[CCE08] Ji-wung C HOI, Renwick C URRY et Gabriel E LKAIM, « Path planning based on
bézier curve for autonomous ground vehicles », in : Advances in Electrical and
Electronics Engineering-IAENG Special Edition of the World Congress on Engi-
neering and Computer Science 2008, IEEE, 2008, p. 158-166.
[CHA16] Mehak CHAUDHRY, « Kinetostatic analysis of planar tensegrity mechanisms »,
mém. de mast., École Centrale de Nantes, 2016.
[CHC16] François C HAUMETTE, Seth H UTCHINSON et Peter C ORKE, « Visual servoing »,
in : Springer Handbook of Robotics, Springer, 2016, p. 841-866.
[CM12] Marco C ARRICATO et Jean-Pierre M ERLET, « Stability analysis of undercons-
trained cable-driven parallel robots », in : IEEE Transactions on Robotics 29.1
(2012), p. 288-296.
[Coe+17] Eulalie C OEVOET et al., « Software toolkit for modeling, simulation, and control
of soft robots », in : Advanced Robotics 31.22 (2017), p. 1208-1224.
[CPP17] Sung-Hyun C HOI, Jong-Oh PARK et Kyoung-Su PARK, « Tension analysis of a 6-
degree-of-freedom cable-driven parallel robot considering dynamic pulley bearing
friction », in : Advances in Mechanical Engineering 9.8 (2017), p. 1687814017714981.
[CSB96] C. C ANUDAS DE W IT, B. S ICILIANO et G. BASTIN, Theory of Robot Control,
Springer, 1996.

184
BIBLIOGRAPHIE

[Dal+11] Tej DALLEJ et al., « Towards vision-based control of cable-driven parallel ro-
bots », in : 2011 IEEE/RSJ International Conference on Intelligent Robots and
Systems, IEEE, 2011, p. 2855-2860.
[Duc+14] František D UCHO Ň et al., « Path planning with modified a star algorithm for a
mobile robot », in : Procedia Engineering 96 (2014), p. 59-69.
[Dur13] Christian D URIEZ, « Control of elastic soft robots based on real-time finite ele-
ment method », in : 2013 IEEE international conference on robotics and automa-
tion, IEEE, 2013, p. 3982-3987.
[EW21] Sebastian E CHEANDIA et Patrick M W ENSING, « Numerical methods to compute
the coriolis Matrix and christoffel Symbols for rigid-body systems », in : Journal
of Computational and Nonlinear Dynamics 16.9 (2021), p. 091004.
[Fas+19] Benjamin FASQUELLE et al., « Dynamic modeling and control of a tensegrity ma-
nipulator mimicking a bird neck », in : IFToMM World Congress on Mechanism
and Machine Science, Springer, 2019, p. 2087-2097.
[Fas+20] Benjamin FASQUELLE et al., « A bio-inspired 3-DOF light-weight manipulator
with tensegrity X-joints », in : 2020 IEEE International Conference on Robotics
and Automation (ICRA), IEEE, 2020, p. 5054-5060.
[Fas+21] Benjamin FASQUELLE et al., « Identification and control of a 3-X cable-driven
manipulator inspired from the bird neck », in : Journal of Mechanisms and Robo-
tics (2021), p. 1-25.
[Fau+12] François FAURE et al., « Sofa : A multi-model framework for interactive physi-
cal simulation », in : Soft tissue biomechanical modeling for computer assisted
surgery, Springer, 2012, p. 283-321.
[For18] Florent F ORGET, « Modélisation et contrôle d’actionneurs pour la robotique hu-
manoide », thèse de doct., Université de Toulouse, Université Toulouse III-Paul
Sabatier, 2018.
[Fur+19] Matthieu F URET et al., « Prototype of a tensegrity manipulator to mimic bird
necks », in : 24ème Congrès Français de Mécanique, 2019.
[Fur20] Matthieu F URET, « Analyse cinéto-statique de mécanismes de tenségrité : Ap-
plication à la modélisation de cous d’oiseaux et de manipulateurs bio-inspirés »,
thèse de doct., Ecole Centrale de Nantes, 2020.

185
Partie , BIBLIOGRAPHIE

[FW19] Matthieu F URET et Philippe W ENGER, « Kinetostatic analysis and actuation stra-
tegy of a planar tensegrity 2-X manipulator », in : Journal of Mechanisms and
Robotics 11.6 (2019), p. 060904.
[GDM10] Marc G OUTTEFARDE, David DANEY et Jean-Pierre M ERLET, « Interval-analysis-
based determination of the wrench-feasible workspace of parallel cable-driven ro-
bots », in : IEEE Transactions on Robotics 27.1 (2010), p. 1-13.
[GPM89] Carlos E G ARCIA, David M P RETT et Manfred M ORARI, « Model predictive
control : Theory and practice—A survey », in : Automatica 25.3 (1989), p. 335-
348.
[Han+10] Long H AN et al., « Bezier curve based path planning for autonomous vehicle in
urban environment », in : 2010 IEEE intelligent vehicles symposium, IEEE, 2010,
p. 1036-1042.
[HNR68] Peter E H ART, Nils J N ILSSON et Bertram R APHAEL, « A formal basis for the
heuristic determination of minimum cost paths », in : IEEE transactions on Sys-
tems Science and Cybernetics 4.2 (1968), p. 100-107.
[HW00] Michael W H ANNAN et Ian D WALKER, « Analysis and initial experiments for
a novel elephant’s trunk robot », in : Proceedings. 2000 IEEE/RSJ International
Conference on Intelligent Robots and Systems (IROS 2000)(Cat. No. 00CH37113),
t. 1, IEEE, 2000, p. 330-337.
[JG15] Jingfu J IN et Nicholas G ANS, « Parameter identification for industrial robots with
a fast and robust trajectory design approach », in : Robotics and Computer-Integrated
Manufacturing 31 (2015), p. 21-29, ISSN : 0736-5845, DOI : https://doi.org/
10.1016/j.rcim.2014.06.004, URL : http://www.sciencedirect.com/
science/article/pii/S0736584514000441.
[KD04] Wisama K HALIL et Etienne D OMBRE, Modeling, identification and control of
robots, Butterworth-Heinemann, 2004.
[Kom12] Erik KOMENDERA, A Survey of the Computational Modeling and Control of Ten-
segrity Robots, rapp. tech., University of Colorado, 2012.
[Kri+17] Markus K RINGS et al., « Barn owls maximize head rotations by a combination of
yawing and rolling in functionally diverse regions of the neck », in : Journal of
anatomy 231.1 (2017), p. 12-22.

186
BIBLIOGRAPHIE

[KT15] Mohammad A K HOSRAVI et Hamid D TAGHIRAD, « Dynamic analysis and control


of fully-constrained cable robots with elastic cables : variable stiffness formula-
tion », in : Cable-Driven Parallel Robots, Springer, 2015, p. 161-177.
[Lag53] Joseph Louis L AGRANGE, Mécanique analytique, t. 1, Mallet-Bachelier, 1853.
[Let17] Max L ETTL, « Kinetostatic analysis of tensegrity mechanisms, application to the
modelling of bird necks », mém. de mast., École Centrale de Nantes, 2017.
[Lev06] Stephen M L EVIN, « Tensegrity : the new biomechanics », in : Textbook of mus-
culoskeletal medicine 9 (2006).
[Liu+18] Hongyi L IU et al., « Deep learning-based multimodal control interface for human-
robot collaboration », in : Procedia CIRP 72 (2018), p. 3-8.
[Liu+19] Yuwang L IU et al., « Elephant’s trunk robot : An extremely versatile under-actuated
continuum robot driven by a single motor », in : Journal of Mechanisms and Ro-
botics 11.5 (2019), p. 051008.
[LRO13] Matthieu L APEYRE, Pierre ROUANET et Pierre-Yves O UDEYER, « The poppy
humanoid robot : Leg design for biped locomotion », in : 2013 IEEE/RSJ Interna-
tional Conference on Intelligent Robots and Systems, IEEE, 2013, p. 349-356.
[LS11] Yunhui L IU et Dong S UN, Biologically inspired robotics, Taylor & Francis, 2011.
[LVP13] Nathan F L EPORA, Paul V ERSCHURE et Tony J P RESCOTT, « The state of the art
in biomimetics », in : Bioinspiration & biomimetics 8.1 (2013), p. 013001.
[MA11] Shabbir Kurbanhusen M USTAFA et Sunil Kumar AGRAWAL, « On the force-closure
analysis of n-DOF cable-driven open chains based on reciprocal screw theory »,
in : IEEE Transactions on Robotics 28.1 (2011), p. 22-31.
[McM+06] William M C M AHAN et al., « Field trials and testing of the OctArm continuum
manipulator », in : Proceedings 2006 IEEE International Conference on Robotics
and Automation, 2006. ICRA 2006. IEEE, 2006, p. 2336-2341.
[Miy+20] Muneaki M IYASAKA et al., « Modeling Cable-Driven Robot With Hysteresis and
Cable–Pulley Network Friction », in : IEEE/ASME Transactions on Mechatronics
25.2 (2020), p. 1095-1104.
[MW21] Vimalesh M URALIDHARAN et Philippe W ENGER, « Optimal design and compa-
rative study of two antagonistically actuated tensegrity joints », in : Mechanism
and Machine Theory 159 (2021), p. 104249.

187
Partie , BIBLIOGRAPHIE

[Pac+06] Flavien PACCOT et al., « Vision-based computed torque control for parallel ro-
bots », in : IECON 2006-32nd Annual Conference on IEEE Industrial Electronics,
IEEE, 2006, p. 3851-3856.
[Pau06] Chandana PAUL, « Morphological computation : A basis for the analysis of mor-
phology and control requirements », in : Robotics and Autonomous Systems 54.8
(2006), p. 619-630.
[PGP01] Minh Tu P HAM, Maxime G AUTIER et Philippe P OIGNET, « Identification of joint
stiffness with bandpass filtering », in : Proceedings 2001 ICRA. IEEE Internatio-
nal Conference on Robotics and Automation (Cat. No. 01CH37164), t. 3, IEEE,
2001, p. 2867-2872.
[Pic+20] Etienne P ICARD et al., « Stiffness oriented tension distribution algorithm for cable-
driven parallel robots », in : International Symposium on Advances in Robot Ki-
nematics, Springer, 2020, p. 209-217.
[Pot14] Andreas P OTT, « An improved force distribution algorithm for over-constrained
cable-driven parallel robots », in : Computational Kinematics, Springer, 2014,
p. 139-146.
[Raf+18] Ahmad R AFSANJANI et al., « Kirigami skins make a simple soft actuator crawl »,
in : Science Robotics 3.15 (2018).
[Rah+11] MF R AHMAT et al., « Review on modeling and controller design in pneumatic ac-
tuator control system », in : International journal on smart sensing and intelligent
systems 4.4 (2011).
[RAP20] JR Jurado R EALPE, Salih A BDELAZIZ et Philippe P OIGNET, « Model Predictive
Controller for a Planar Tensegrity Mechanism with decoupled position and stiff-
ness control », in : International Symposium on Advances in Robot Kinematics,
Springer, 2020, p. 349-358.
[RCM14] Rémy R AMADOUR, François C HAUMETTE et Jean-Pierre M ERLET, « Grasping
objects with a cable-driven parallel robot designed for transfer operation by visual
servoing », in : 2014 IEEE International Conference on Robotics and Automation
(ICRA), IEEE, 2014, p. 4463-4468.
[RD99] Graham ROBINSON et J Bruce C DAVIES, « Continuum robots-a state of the art »,
in : Proceedings 1999 IEEE international conference on robotics and automation
(Cat. No. 99CH36288C), t. 4, IEEE, 1999, p. 2849-2854.

188
BIBLIOGRAPHIE

[RGL98] Rodney G ROBERTS, Todd G RAHAM et Thomas L IPPITT, « On the inverse ki-
nematics, statics, and fault tolerance of cable-suspended robots », in : Journal of
Robotic Systems 15.10 (1998), p. 581-597.
[RM18] John R IEFFEL et Jean-Baptiste M OURET, « Adaptive and resilient soft tensegrity
robots », in : Soft robotics 5.3 (2018), p. 318-329.
[SD09] Robert E S KELTON et Mauricio C D E O LIVEIRA, Tensegrity systems, t. 1, Sprin-
ger, 2009.
[Sed12] Thomas W S EDERBERG, « Computer aided geometric design », in : (2012).
[Shi+20] Jun S HINTAKE et al., « Bio-inspired tensegrity fish robot », in : 2020 IEEE Inter-
national Conference on Robotics and Automation (ICRA), IEEE, 2020, p. 2887-
2892.
[Ske+01] Robert E S KELTON et al., « An introduction to the mechanics of tensegrity struc-
tures », in : Proceedings of the 40th IEEE conference on decision and control (Cat.
No. 01CH37228), t. 5, IEEE, 2001, p. 4254-4259.
[Sne12] Kenneth S NELSON, « The art of tensegrity », in : International journal of space
structures 27.2-3 (2012), p. 71-80.
[Son18] Gaurav S ONAWANE, « Design methodology of tensegrity manipulator inspired
from a bird neck », mém. de mast., École Centrale de Nantes, 2018.
[Ter+20] Léa T ERRAY et al., « Modularity of the neck in birds (Aves) », in : Evolutionary
Biology (2020).
[TP02] AG T IBERT et S P ELLEGRINO, « Deployable tensegrity reflectors for small satel-
lites », in : Journal of Spacecraft and Rockets 39.5 (2002), p. 701-709.
[Tri+08] Deepak T RIVEDI et al., « Soft robotics : Biological inspiration, state of the art, and
future research », in : Applied Bionics and Biomechanics 5.3 (2008), p. 99-117.
[Van+19] Anders VAN R IESEN et al., « Dynamic analysis and control of an antagonistically
actuated tensegrity mechanism », in : ROMANSY 22–Robot Design, Dynamics and
Control, Springer, 2019, p. 481-490.
[VCB19] Swaminath V ENKATESWARAN, Damien C HABLAT et Frédéric B OYER, « Nume-
rical and experimental validation of the prototype of a bio-inspired piping inspec-
tion robot », in : Robotics 8.2 (2019), p. 32.

189
Partie , BIBLIOGRAPHIE

[VSS16] Nicolas V EUVE, Seif Dalil S AFAEI et Ian FC S MITH, « Active control for mid-
span connection of a deployable tensegrity footbridge », in : Engineering Struc-
tures 112 (2016), p. 245-255.
[Wan+15] Chunbao WANG et al., « Path planning of automated guided vehicles based on
improved A-Star algorithm », in : 2015 IEEE International Conference on Infor-
mation and Automation, IEEE, 2015, p. 2071-2076.
[WC19] Philippe W ENGER et Damien C HABLAT, « Kinetostatic analysis and solution
classification of a class of planar tensegrity mechanisms », in : Robotica 37.7
(2019), p. 1214-1224.
[WF20] Philippe W ENGER et Matthieu F URET, « Kinematic analysis of a planar manipu-
lator with anti-parallelogram joints and offsets », in : International Symposium on
Advances in Robot Kinematics, Springer, 2020, p. 319-326.
[Wu+20] Qiuxuan W U et al., « Position control of cable-driven robotic soft arm based on
deep reinforcement learning », in : Information 11.6 (2020), p. 310.
[WZF11] LiZhen WANG, HongQuan Z HANG et YuBo FAN, « Comparative study of the
mechanical properties, micro-structure, and composition of the cranial and beak
bones of the great spotted woodpecker and the lark bird », in : Science China Life
Sciences 54.11 (2011), p. 1036-1041.
[Yao+10] Junfeng YAO et al., « Path planning for virtual human motion using improved
A* star algorithm », in : 2010 Seventh international conference on information
technology : new generations, IEEE, 2010, p. 1154-1158.
[YP11] Sang-Hee YOON et Sungmin PARK, « A mechanical analysis of woodpecker drum-
ming and its application to shock-absorbing systems », in : Bioinspiration & Bio-
mimetics 6.1 (2011), p. 016003.
[Ypm95] Tjalling J Y PMA, « Historical development of the Newton–Raphson method », in :
SIAM review 37.4 (1995), p. 531-551.
[Zak+19] Zane Z AKE et al., « Vision-based control and stability analysis of a cable-driven
parallel robot », in : IEEE Robotics and Automation Letters 4.2 (2019), p. 1029-
1036.
[Zap+20] Davide Z APPETTI et al., « Variable-stiffness tensegrity spine », in : Smart Mate-
rials and Structures 29.7 (2020), p. 075013.

190
BIBLIOGRAPHIE

[Zha+17] Zhongkai Z HANG et al., « Visual servoing control of soft robots based on finite
element model », in : 2017 IEEE/RSJ International Conference on Intelligent Ro-
bots and Systems (IROS), IEEE, 2017, p. 2895-2901.
[Zie+77] Olgierd Cecil Z IENKIEWICZ et al., The finite element method, t. 3, McGraw-hill
London, 1977.
[ZZ14] Zhanying Z HANG et Ziping Z HAO, « A multiple mobile robots path planning al-
gorithm based on A-star and Dijkstra algorithm », in : International Journal of
Smart Home 8.3 (2014), p. 75-86.

191
L ISTE DES PUBLICATIONS

Publications dans des revues d’audience internationale à co-


mité de lecture
Benjamin FASQUELLE, Parag K HANNA, Christine C HEVALLEREAU, Damien C HABLAT,
Denis C REUSOT, Stephane J OLIVET, Philippe L EMOINE et Philippe W ENGER, « Identification
and control of a 3-X cable-driven manipulator inspired from the bird neck », in : Journal of
Mechanisms and Robotics (2021), p. 1-25

Communications à des congrès internationaux à comité de sé-


lection et actes publiés
Benjamin FASQUELLE, Matthieu F URET, Christine C HEVALLEREAU et Philippe W ENGER,
« Dynamic modeling and control of a tensegrity manipulator mimicking a bird neck », in :
IFToMM World Congress on Mechanism and Machine Science, Springer, 2019, p. 2087-2097
Christine B ÖHMER, Matthieu F URET, Benjamin FASQUELLE, Philippe W ENGER, Damie
C HABLAT, Christine C HEVALLEREAU et Anick A BOURACHID, « Combining precision and
power to maximize performance : a case study of the woodpecker’s neck », in : Computer
Methods in Biomechanics and Biomedical Engineering 22.sup1 (2019), S20-S21
Benjamin FASQUELLE, Matthieu F URET, Parag K HANNA, Damien C HABLAT, Christine
C HEVALLEREAU et Philippe W ENGER, « A bio-inspired 3-DOF light-weight manipulator with
tensegrity X-joints », in : 2020 IEEE International Conference on Robotics and Automation
(ICRA), IEEE, 2020, p. 5054-5060

Communications à des congrès nationaux et actes publiés


Matthieu F URET, Damien C HABLAT, Benjamin FASQUELLE, Parag K HANNA, Christine
C HEVALLEREAU et Philippe W ENGER, « Prototype of a tensegrity manipulator to mimic bird

193
Partie , BIBLIOGRAPHIE

necks », in : 24ème Congrès Français de Mécanique, 2019

Communications lors de workshop de conférences internatio-


nales
A A BOURACHID, C B ÖHMER, Philippe W ENGER, Damien C HABLAT, Christine C HEVALLEREAU,
Benjamin FASQUELLE et Matthieu F URET, « Modelling, design and control of a bird neck using
tensegrity mechanisms », in : ICRA’2019 Worskhop on Tensegrity, 2019

194
A NNEXE A

D ÉRIVÉES DES COORDONNÉES


CARTÉSIENNES

Pour calculer les matrices J et Jγ et leurs dérivées, nous devons calculer les dérivées pre-
mières et secondes des coordonnées du milieu de la barre du haut de chaque module par rapport
à α.
De plus, pour la prise en compte des obstacles dans l’environnement du manipulateur, il faut
également les coordonnées des extrémités de la barre du haut de chaque manipulateur.
Enfin, les dérivées secondes des ordonnées des milieux des barres diagonales par rapport à
α sont nécessaire pour le calcul de la matrice de raideur K.
Le milieu de la barre du haut du module k est en (xk , yk ), son extrémité gauche est en
(xkl , ylk )
et son extrémité droite est en (xkr , yrk ). Les ordonnées des milieux des barres diagonales
du module i sont y2i et y3i .
Rappel :

xk = xk−1 − d(αk ) sin(γk + α2k ) (A.1)

yk = yk−1 + d(αk ) cos(γk + α2k ) (A.2)


∂ xk
Le calcul de ∂ αi se fait de trois façons différentes, selon le lien entre i et k :

∂ xk−1
Si i < k ⇒ ∂∂ αxki = ∂ αi − d(αk ) cos(γk + α2k ) (A.3a)
∂ xk−1 k)
Si i = k ⇒ ∂∂ αxki = ∂ αi − ∂ d(α αk 1 αk
∂ α sin(γk + 2 ) − 2 d(αk ) cos(γk + 2 ) (A.3b)
k

Si i > k ⇒ ∂∂ αxki = 0 (A.3c)

∂ xk−1
Quelque soit la valeur de i, si k = 1, on a ∂ αi = 0.

195
Partie , Chapitre A – Dérivées des coordonnées cartésiennes

∂ 2 xk
Le calcul de ∂ αi ∂ α j se fait de quatre façons différentes, selon le lien entre i, j et k :

2 ∂ 2 xk−1
Si i, j < k ⇒ ∂ α∂ i ∂xkα j = ∂ αi ∂ α j + d(αk ) sin(γk + α2k ) (A.4a)
2 ∂ 2 xk−1 k)
Si j < k, i = k ⇒ ∂ α∂ i ∂xkα j = ∂ αi ∂ α j − ∂ d(α αk 1 αk
∂ α cos(γk + 2 ) + 2 d(αk ) sin(γk + 2 ) (A.4b)
k
2 ∂ 2 xk−1 2
k) k)
Si i = j = k ⇒ ∂ α∂ i ∂xkα j = ∂ αi ∂ α j − ∂ ∂d(α
α2
sin(γk + α2k ) − ∂ d(α αk 1 αk
∂ α cos(γk + 2 ) + 4 d(αk ) sin(γk + 2 )
k k

(A.4c)
2
Si i > k ou j > k ⇒ ∂ α∂ i ∂xkα j = 0 (A.4d)

∂ 2 xk
Quelque soit la valeur de i et la valeur de j, si k = 1, on a ∂ αi ∂ α j = 0.
∂ yk
Le calcul de ∂ αi se fait de trois façons différentes, selon le lien entre i et k :

∂ yk−1
Si i < k ⇒ ∂∂ αyki = ∂ αi − d(αk ) sin(γk + α2k ) (A.5a)
∂ yk−1 k)
Si i = k ⇒ ∂∂ αyki = ∂ αi + ∂ d(α αk 1 αk
∂ α cos(γk + 2 ) − 2 d(αk ) sin(γk + 2 ) (A.5b)
k

Si i > k ⇒ ∂∂ αyki = 0 (A.5c)

∂ yk−1
Quelque soit la valeur de i, si k = 1, on a ∂ αi = 0.
∂ 2 yk
Le calcul de ∂ αi ∂ α j se fait de quatre façons différentes, selon le lien entre i, j et k :

2 ∂ 2 yk−1
Si i, j < k ⇒ ∂ α∂ i ∂ykα j = ∂ αi ∂ α j − d(αk ) cos(γk + α2k ) (A.6a)
2 ∂ 2 yk−1 k)
Si j < k, i = k ⇒ ∂ α∂ i ∂ykα j = ∂ αi ∂ α j − ∂ d(α αk 1 αk
∂ α sin(γk + 2 ) − 2 d(αk ) cos(γk + 2 ) (A.6b)
k
2 ∂ 2 yk−1 2
k) k)
Si i = j = k ⇒ ∂ α∂ i ∂ykα j = ∂ αi ∂ α j + ∂ ∂d(α
α2
cos(γk + α2k ) − ∂ d(α αk 1 αk
∂ α sin(γk + 2 ) − 4 d(αk ) cos(γk + 2 )
k k

(A.6c)
2
Si i > k ou j > k ⇒ ∂ α∂ i ∂ykα j = 0 (A.6d)

∂ 2 yk
Quelque soit la valeur de i et la valeur de j, si k = 1, on a ∂ αi ∂ α j = 0.
Extrémité gauche

b
xkl = xk − cos(γk + αk ) (A.7)
2
196
D’où :

∂ xl ∂ xk b
Si i ≤ k ⇒ ∂ αki = ∂ αi + sin(γi + αi ) (A.8a)
2
∂ xl
Si i > k ⇒ ∂ αki = 0 (A.8b)

D’où :

∂ 2 xl ∂ 2 xk b
Si i, j ≤ k ⇒ ∂ αi ∂ kα j = ∂ αi ∂ α j + cos(γi + αi ) (A.9a)
2
∂ xl
Si i > k ⇒ ∂ αki = 0 (A.9b)

b
ylk = yk − sin(γk + αk ) (A.10)
2

D’où :

∂ yl ∂ yk b
Si i ≤ k ⇒ ∂ αki = ∂ αi − cos(γi + αi ) (A.11a)
2
∂ yl
Si i > k ⇒ ∂ αki = 0 (A.11b)

D’où :

∂ 2 yl ∂ 2 yk b
Si i, j ≤ k ⇒ ∂ αi ∂ kα j = ∂ αi ∂ α j + sin(γi + αi ) (A.12a)
2
∂ yl
Si i > k ⇒ ∂ αki = 0 (A.12b)

Extrémité droite

b
xkr = xk + cos(γk + αk ) (A.13)
2

D’où :

197
Partie , Chapitre A – Dérivées des coordonnées cartésiennes

∂ xr ∂ xk b
Si i ≤ k ⇒ ∂ αki = ∂ αi − sin(γi + αi ) (A.14a)
2
∂ xr
Si i > k ⇒ ∂ αki = 0 (A.14b)

D’où :

∂ 2 xr ∂ 2 xk b
Si i, j ≤ k ⇒ ∂ αi ∂ kα j = ∂ αi ∂ α j − cos(γi + αi ) (A.15a)
2
∂ xr
Si i > k ⇒ ∂ αki = 0 (A.15b)

b
yrk = yk + sin(γk + αk ) (A.16)
2

D’où :

∂ yr ∂ yk b
Si i ≤ k ⇒ ∂ αki = ∂ αi + cos(γi + αi ) (A.17a)
2
∂ yr
Si i > k ⇒ ∂ αki = 0 (A.17b)

D’où :

∂ 2 yr ∂ 2 yk b
Si i, j ≤ k ⇒ ∂ αi ∂ kα j = ∂ αi ∂ α j − sin(γi + αi ) (A.18a)
2
∂ yr
Si i > k ⇒ ∂ αki = 0 (A.18b)

198
Rappel :

 ∂ y2k = ∂ y4k−1 − b cos(γ ) + L cos(γ + φ )
2 k 2 k k
Si i < k ⇒ ∂ αi ∂ αi
(A.19a)
∂ y ∂ y b L
 3k = 4k−1 + cos(γ ) + cos(γ + ψ )
∂α ∂ αi 2 k 2 k k
 i
 ∂ y2k = ∂ y4k−1 + ∂ φk L cos(γ + φ )
∂ αk 2 k k
Si i = k ⇒ ∂ αi ∂ αi
(A.19b)
 ∂ y3k = ∂ y4k−1 + ∂ ψk L cos(γ + ψ )
∂α ∂ αi ∂ αk 2 k k
 i
 ∂ y2k = 0
Si i > k ⇒ ∂ αi (A.19c)
 ∂ y3k = 0
∂ αi

On a donc :

∂ 2 y2k ∂ 2 y4k−1
 = + b2 sin(γk ) − L2 sin(γk + φk )
Si i < k et j < k ⇒ ∂ α2i ∂ α j ∂ αi ∂ α j
(A.20a)
 ∂ y3k ∂ 2 y4k−1
∂ αi ∂ α j = ∂ αi ∂ α j − b2 sin(γk ) − L2 sin(γk + ψk )

∂ 2 y2k ∂ 2 y4k−1
 = − ∂∂ αφk L2 sin(γk + φk )
Si i = k et j < k ⇒ ∂ α2i ∂ α j ∂ αi ∂ α j k
(A.20b)
 ∂ y3k ∂ 2 y4k−1 ∂ ψk L
∂ αi ∂ α j = ∂ αi ∂ α j − ∂ αk 2 sin(γk + ψk )

∂ 2 y2k ∂ 2 φk L ∂ φk 2 L
= 2 cos(γk + φk ) − ( ∂ αk ) 2 sin(γk + φk )

(∂ αk )2 (∂ αk )2
Si i = k et j = k ⇒ (A.20c)
 ∂ 2 y3k ∂ 2 ψk L ∂ ψk 2 L
(∂ αk )2
= (∂ αk )2 2 cos(γk + ψk ) − ( ∂ αk ) 2 sin(γk + ψk )

∂ 2 y2k

∂ αi ∂ α j =0
Si i > k ou j > k ⇒ (A.20d)
 ∂ 2 y3k =0
∂ αi ∂ α j

199
A NNEXE B

L ONGUEURS DES CÂBLES EN PRENANT


EN COMPTE LES POULIES

B.1 Longueurs des câbles


Nous calculons ici les longueurs des câbles en prenant en compte les poulies, pour les cinq
cas décrits dans la section 2.2.4.
Afin de délimiter les portions de câbles correspondant à chaque poulie, on prendra comme
point de repère sur les poulies le point le plus bas de la poulie qui croise la verticale lorsque
le manipulateur est en position droite (α = 0deg pour chaque module). La portion de câble
correspondant à un module va donc de ce point de référence de la poulie par laquelle arrive ce
câble au point d’attache si le câble s’arrête à ce module, ou au point de référence de la poulie de
sortie si le câble passe également par des modules supérieurs. Il est à noté que lorsque le module
est orienté d’un angle α, le point de référence sur la poulie de sortie est déplacé du même angle
par rapport à la verticale.
Premier cas
La partie actionnée sur le côté est résumée sur la Figure 2.6 (module de gauche). Le câble
rouge tire sur le côté gauche, est attaché au milieu de la poulie 3 et s’enroule autour de la poulie
1.
La longueur partielle de ce câble qui ne dépend que de ce module i peut s’écrire de la
manière suivante :
l 1j (αi ) = llt (αi ) + rβ11 (αi ) (B.1)

où llt (αi ) est la longueur du câble entre le centre de la poulie 3 et l’endroit où le câble entre en
contact avec la poulie 1, et β11 (αi ) est l’angle d’enroulement du câble sur la poulie 1 à partir
du point de référence. La Figure (B.1) montre les longueurs et les angles utiles à ce calcul. La
droite rouge représente l’axe perpendiculaire à la barre du bas. Le trait bleu correspond à la
portion de câble entre le milieu de la poulie supérieure et son point de détachement de la poulie

200
B.1. Longueurs des câbles

ll
ll t

A2

A1

F IGURE B.1 – Actionnement d’un module (premier cas) : longueurs et angles utiles au calcul.

inférieure. Le point R est pris comme point de référence comme point d’arrivée du câble, et
ne dépend que des modules inférieurs. L’angle d’enroulement du câble sur la poulie est donc
−A1 + A2 + π.
La longueur llt (αi ) s’obtient avec le théorème de Pythagore (à partir de l’angle droit repré-
senté sur la Figure (B.1)) : q
llt (αi ) = ll (αi )2 − r2 (B.2)

Cet angle droit permet également de calculer l’angle A1 :


p
ll (αi )2 − r2
A1 = atan( ) (B.3)
r

L’angle A2 vaut l’opposé de la moitié de l’orientation αi du module [WF20] :

αi
A2 = − (B.4)
2
201
Partie , Chapitre B – Longueurs des câbles en prenant en compte les poulies

L’angle β11 (αi ) est donc :


p
ll (αi )2 − r2 αi
β11 (αi ) = π − atan( )− (B.5)
r 2

L’équation (B.1) peut donc se réécrire :


p
ll (αi )2 − r2
q
αi
l 1j (αi ) = ll (αi )2 − r2 + r(π − atan( )− ) (B.6)
r 2

Comme en pratique nous calculerons des variations de longueur de câble par rapport à la
longueur initiale, nous pourrons passer les termes constants dans la longueur initiale et donc
négliger ces derniers dans cette formule. Ainsi, la longueur variable du câble devient :
p
ll (αi )2 − r2
q  αi 
l 1j (αi ) = 2 2
ll (αi ) − r + r − arctan( )− (B.7)
r 2

Second cas
Le second cas est le symétrique du premier (sur le côté droit au lieu du côté gauche). Avec
le même raisonnement, la longueur partielle du câble est donc :
p
αi lr (αi )2 − r2
l 2j (αi ) = lrt (αi ) + r(π + − atan( )) (B.8)
2 r

avec q
lrt (αi ) = lr (αi )2 − r2 (B.9)

En négligeant les termes constants, on obtient :


p
lr (αi )2 − r2 
q α
i
l 2j (αi ) = 2 2
lr (αi ) − r + r − arctan( ) (B.10)
2 r

Troisième cas
Le câblage étudié est celui du module du milieu de la Figure 2.6. Le câble s’enroule autour
de la poulie 1 puis autour de la poulie 3, en liant les deux par l’extérieur.
Les grandeurs utiles au calcul sont indiquées sur la Figure (B.2). La droite rouge verticale
représente l’axe perpendiculaire à la barre de base. Le trait bleu correspond à la portion de
câble entre le point de détachement sur la poulie inférieure et le point de d’attache sur la poulie
supérieure. Il est de même longueur que le trait noir, liant les centres des deux poulies, car
ces deux segments et les angles droits formés avec les rayons tangents des poulies forment un

202
B.1. Longueurs des câbles

A2
-
P

A2
ll ll

F IGURE B.2 – Actionnement d’un module (troisème cas) : longueurs et angles utiles au calcul.

rectangle. Le point R est pris comme point de référence comme point d’arrivée du câble, et ne
dépend que des modules inférieurs. L’angle d’enroulement du câble sur la poulie inférieure est
donc (− π2 + A2 + π). L’angle d’enroulement sur la poulie supérieure est ( π2 − α + π − A2 ).

La portion de câble qui lie les poulies 1 et 3 est de longueur ll (αi ). On a donc :

l 3j (αi ) = ll (αi ) + r(β13 (αi ) + β33 (αi )) (B.11)

où βk3 (αi ) est l’angle d’enroulement du câble autour de la poulie k qui ne dépend que de l’orien-
tation du module i.

D’après la Figure (B.2), on a :

π αi
β13 (i) = − (B.12)
2 2

203
Partie , Chapitre B – Longueurs des câbles en prenant en compte les poulies

D’après la même figure, l’angle d’enroulement sur la poulie supérieure est :

3π αi
β33 (i) = − (B.13)
2 2

On en déduit que :
l 3j = ll (αi ) + r(2π − αi ) (B.14)

En négligeant les termes constants, on obtient :

l 3j (αi ) = ll (αi ) − rαi (B.15)

Quatrième cas
Ce cas est totalement symétrique au cas précédent. On en déduit que :

l 4j = lr (αi ) + r(2π + αi ) (B.16)

En négligeant les termes constants, on obtient :

l 4j (αi ) = lr (αi ) + rαi (B.17)

Cinquième cas
La partie en strut-routed est résumée sur la Figure B.3. Le câble passe par la droite de la
poulie poulie 2, s’enroule par la gauche sur la poulie 3 puis s’enroule par le bas de la poulie 4.Les
notations sont réparties sur deux dessins pour éviter la surcharge et faciliter la compréhension.
La droite rouge représente l’axe perpendiculaire à la barre du bas. Le trait bleu correspond à la
portion de câble entre le point de détachement sur une poulie et le point d’attache sur la poulie
suivante (que ce soit à gauche ou à droite). Que ce soit pour la longueur de câble le long de
la barre diagonale ou celle le long de la barre horizontale, la même méthode que dans les cas
précédents permet de calculer leur longueur qui est constante. Le point R est pris comme point
de référence comme point d’arrivée du câble. Le point T est un point par lequel passe le câble
et qui permet de faire la jonction entre les deux dessins. Le point P est pris comme référence
pour le point de sortie du câble. L’angle d’enroulement du câble sur la poulie inférieure est
( π2 + A4 − A3 ). L’angle d’enroulement du câble sur la poulie supérieure gauche jusqu’au point
T est (−α + A4 − A3 ) (figure gauche). L’angle d’enroulement sur cette même poulie à partir
du point T est (−A5 + π) (figure à droite). Enfin, L’angle d’enroulement du câble sur la poulie
supérieure droite est (−A5 + π2 ).

204
B.1. Longueurs des câbles

- T T
r r A5

A3
A4 L/2
A5 r
P

L/2
A3
A4
r

F IGURE B.3 – Actionnement d’un module (quatrième cas) : longueurs et angles utiles au calcul.

Tout d’abord, on peut démontrer géométriquement que les portions de câbles qui lient les
poulies ont une longueur constante (calculable avec le théorèmeq de Pythagore). La longueur
liant les poulies inférieure droite et supérieure gauche est ainsi 2 ( L2 )2 − r2 , et celle liant les
q
poulies supérieurs est 2 ( b2 )2 − r2 .

On peut donc écrire :


r r
L b
l 5j (αi ) = 2 ( )2 − r2 + 2 ( )2 − r2 + r(β22 (αi ) + β32 (αi ) + β42 (αi )) (B.18)
2 2

où βk2 (αi ) est l’angle d’enroulement du câble autour de la poulie k qui ne dépend que de l’orien-
tation du module i.

L b
Les angles représentés sur la Figure (B.3) sont A3 = atan( 2r ), A4 = ψi , A5 = atan( 2r ).

205
Partie , Chapitre B – Longueurs des câbles en prenant en compte les poulies

On a donc :

π L
β22 (i) = + ψi − atan( ) (B.19)
2 2r
L b
β32 (i) = − αi + ψi − atan( ) − atan( ) + π (B.20)
2r 2r
b π
β42 (i) = − atan( ) + (B.21)
2r 2

On en déduit donc que :


r r
L b
l 5j (αi ) =2 ( )2 − r2 + 2 ( )2 − r2
2 2 (B.22)
π L L b b π
+r + ψi − atan( ) − αi + ψi − atan( ) − atan( ) + π − atan( ) +
2 2r 2r 2r 2r 2

Il se trouve que ce résultat est symmétrique en α. Ceci implique que le cas du strut-routed
symmétrique a la même longueur relative de câble.
En négligeant les termes constants, on obtient :

l 5j (αi ) = r(2ψ(αi ) − αi ) (B.23)

B.2 Dérivées premières des longueurs de câbles

Les dérivées des longueurs de câbles sont particulièrement utiles pour calculer la matrice Z.
En dérivant (2.1), on obtient :

∂ d(αi ) b2 cos( α2i ) sin( α2i ) b2 sin(αi )


= = (B.24)
∂ αi 2d(αi ) 4d(αi )

En dérivant (2.2) et (2.3), on obtient :

∂ ll (αi ) ∂ d(αi ) b αi
= − cos( ) (B.25)
∂ αi ∂ αi 2 2
∂ lr (αi ) ∂ d(αi ) b αi
= + cos( ) (B.26)
∂ αi ∂ αi 2 2

206
B.3. Dérivées secondes des longueurs des câbles

En dérivant (B.2) et (B.8), on obtient :

∂ llt (αi ) ∂ ll (αi ) ll (αi )


= (B.27)
∂ αi ∂ αi llt (αi )
∂ lrt (αi ) ∂ lr (αi ) lr (αi )
= (B.28)
∂ αi ∂ αi lrt (αi )

On en déduit que :

∂ l 1j ∂ llt (αi ) r2 r
= (1 − 2
)− (B.29)
∂ αi ∂ αi ll (αi ) 2
∂ l 2j ∂ lrt (αi ) r2 r
= (1 − 2
)+ (B.30)
∂ αi ∂ αi lr (αi ) 2
∂ l 3j ∂ ll (αi )
= −r (B.31)
∂ αi ∂ αi
∂ l 4j ∂ lr (αi )
= +r (B.32)
∂ αi ∂ αi
∂ l 5j ∂ ψi
= r(2 − 1) (B.33)
∂ αi ∂ αi

B.3 Dérivées secondes des longueurs des câbles


Les dérivées secondes des longueurs de câbles sont particulièrement utiles pour calculer la
dérivée de la matrice Z. Comme les longueurs partielles sont indépendantes et ne correspondent
qu’à un module, les dérivées secondes non-nulles sont celles obtenues en dérivant deux fois par
rapport à la même orientation αi .
En dérivant (B.24), on obtient :

2 2 ∂ d(αi )
∂ 2 d(αi ) 4b cos(αi )d(αi ) − 4b sin(αi ) ∂ αi
= (B.34)
(∂ αi )2 16d(αi )2

En dérivant (B.25) et (B.26), on obtient :

∂ 2 ll (αi ) ∂ 2 d(αi ) b αi
= + sin( ) (B.35)
(∂ αi )2 (∂ αi )2 4 2
∂ 2 lr (αi ) ∂ 2 d(αi ) b αi
2
= 2
− sin( ) (B.36)
(∂ αi ) (∂ αi ) 4 2

207
Partie , Chapitre B – Longueurs des câbles en prenant en compte les poulies

En dérivant (B.27) et (B.28), on obtient :

∂ llt (αi ) t ∂ llt (αi ) 


∂ 2 llt (αi ) ∂ 2 ll (αi ) ll (αi ) ∂ llt (αi )  ∂ αi l l (α i ) − ll (α i ) ∂ αi
= + (B.37)
(∂ αi )2 (∂ αi )2 llt (αi ) ∂ αi llt (αi )2
∂ lrt (αi ) t ∂ lrt (αi )
∂ 2 lrt (αi ) ∂ 2 lr (αi ) lr (αi ) ∂ lrt (αi )  ∂ αi lr (αi ) − lr (αi ) ∂ αi 
= + (B.38)
(∂ αi )2 (∂ αi )2 lrt (αi ) ∂ αi lrt (αi )2

On en déduit que :
t
2 ∂ l (αi ) ∂ ll (αi )
∂ 2 l 1j ∂ 2 llt (αi ) r2 2r ∂l αi ∂ αi
= (1 − )+ ) (B.39)
(∂ αi )2 (∂ αi )2 ll (αi )2 ll (αi )3
t
2 ∂ lr (αi ) ∂ rl (αi )
∂ 2 l 2j ∂ 2 lrt (αi ) r2 2r ∂ αi ∂ αi
= (1 − ) + ) (B.40)
(∂ αi )2 (∂ αi )2 lr (αi )2 lr (αi )3
∂ 2 l 3j ∂ 2 ll (αi )
= (B.41)
(∂ αi )2 (∂ αi )2
∂ 2 l 4j ∂ 2 lr (αi )
= (B.42)
(∂ αi )2 (∂ αi )2
∂ l 5j ∂ 2 ψi
= 2r (B.43)
∂ αi (∂ αi )2

208
A NNEXE C

C ALCULS POUR LE MODÈLE DYNAMIQUE

C.1 Dérivées de φ et ψ
D’après [Fur20], les dérivées des angles φi et ψi par rapport à αi sont :

∂ φi b sin(ψi − αi )
= (C.1)
∂ αi L sin(ψi − φi )

∂ ψi b sin(φi − αi )
= (C.2)
∂ αi L sin(ψi − φi )

C.2 Matrices Ri
Afin de faciliter l’écriture du modèle dynamique, nous allons calculer les matrices Ri reliant
les coordonnées dépendantes [ẋi ẏi γ̇i α̇i ] aux orientations α :

[ẋi , ẏi , γ̇i , α̇i ]⊤ = Ri [α̇1 , ..., α̇N ]⊤ (C.3)

Pour cela, nous calculons les vitesses de translation et de rotation des barres considérées.
Ces dernières sont calculées par dérivation des équations (2.6), (2.8) et (2.9) par rapport au
temps :

 
αi ∂ di αi di αi
ẋi+1 = ẋi − di cos(γi +
2 )γ̇i + − sin(γi + 2 ) − cos(γi + 2 ) α̇i (C.4a)
∂ αi 2
 
αi ∂ di αi di αi
ẏi+1 = ẏi − di sin(γi + 2 )γ̇i + cos(γi + 2 ) − sin(γi + 2 ) α̇i (C.4b)
∂ αi 2
γ̇i+1 = γ̇i + α̇i (C.4c)

Sachant que la première barre est fixe, on a ẋ1 = ẏ1 = γ̇1 = 0 et la première matrice de

209
Partie , Chapitre C – Calculs pour le modèle dynamique

transformation R1 s’écrit :
 
0
 
 0 04×(N−1) 
R1 =   (C.5)

 0 

1

Les matrices Ri suivantes peuvent être calculées de manière itérative. En utilisant l’équation
(2.6), on réécrit l’équation (2.36) sous la forme :
         
ẋi+1 ẋi xγi xαi 0
         
 ẏi+1  
= ẏi  
+ yγi  
 (α̇1 + ... + α̇i−1 ) +  yαi  
 α̇i +  0 
  α̇i+1 (C.6)

 γ̇i+1  
  γ̇i  
  0 


 1 


 0 

α̇i+1 α̇i 0 −1 1

avec

xγi = −di cos(γi + α2i ) (C.7a)


 
∂ di αi di αi
xαi = − sin(γi + 2 ) − cos(γi + 2 ) (C.7b)
∂ αi 2
yγi = −di sin(γi + α2i ) (C.7c)
 
∂ di αi di αi
yαi = cos(γi + 2 ) − sin(γi + 2 ) (C.7d)
∂ αi 2

On a alors :
  
xγi xαi 0
  
 yγi 
 × 11×(i−1) yαi 0 04×(N−i) 
Ri+1 = Ri +   (C.8)

 0 
 1 0 

0 −1 1

C.3 Énergie cinétique en fonction du paramétrage local

Nous exprimons ici l’énergie cinétique du module i en fonction de son paramétrage local
(xi , yi , αi , γi ).

210
C.3. Énergie cinétique en fonction du paramétrage local

On a par dérivation les vitesses :

ẋ2i = ẋi + b2 sin(γi )γ̇i − L2 sin(γi + φi )(γ̇i + φ̇i ) (C.9a)


ẏ2i = ẏi − 2b cos(γi )γ̇i + L2 cos(γi + φi )(γ̇i + φ̇i ) (C.9b)
ẋ3i = ẋi − b2 sin(γi )γ̇i − L2 sin(γi + ψi )(γ̇i + ψ̇i ) (C.9c)
ẏ3i = ẏi + 2b cos(γi )γ̇i + L2 cos(γi + ψi )(γ̇i + ψ̇i ) (C.9d)
i)
ẋ4i = ẋi − ∂ d(α αi αi α̇i
∂ αi sin(γi + 2 )α̇i − d(αi ) cos(γi + 2 )(γ̇i + 2 ) (C.9e)
i)
ẏ4i = ẏi + ∂ d(α αi αi α̇i
∂ αi cos(γi + 2 )α̇i − d(αi ) sin(γi + 2 )(γ̇i + 2 ) (C.9f)

On exprime les coordonnées dépendantes comme suit :

∂ φi
φ̇i = α̇i (C.10a)
∂ αi
∂ ψi
ψ̇i = α̇i (C.10b)
∂ αi

On peut donc réécrire les équations des vitesses :


 
L ∂ φi
ẋ2i = ẋi + γ̇i b2 sin(γi ) − L2 sin(γi + φi )

− α̇i 2 ∂ α sin(γi + φi ) (C.11a)
i
 
L ∂ φi
ẏ2i = ẏi + γ̇i − b2 cos(γi ) + L2 cos(γi + φi )

+ α̇i 2 ∂ α cos(γi + φi ) (C.11b)
i
 
L ∂ ψi
ẋ3i = ẋi + γ̇i − b2 sin(γi ) − L2 sin(γi + ψi )

− α̇i 2 ∂ α sin(γi + ψi ) (C.11c)
i
 
L ∂ ψi
ẏ3i = ẏi + γ̇i 2b cos(γi ) + L2 cos(γi + ψi )

+ α̇i 2 ∂ α cos(γi + ψi ) (C.11d)
i
 
αi  ∂ d(αi ) αi d(αi ) αi
ẋ4i = ẋi + γ̇i −d(αi ) cos(γi + 2 ) + α̇i ∂ αi sin(γi + 2 ) − 2 cos(γi + 2 ) (C.11e)
 
 ∂ d(αi ) d(αi )
ẏ4i = ẏi + γ̇i −d(αi ) sin(γi + α2i ) + α̇i αi αi
∂ αi cos(γi + 2 ) − 2 sin(γi + 2 ) (C.11f)

211
Partie , Chapitre C – Calculs pour le modèle dynamique

L’expression des vitesses des centres de masses au carré est alors :


!
∂φ
L2 ( ∂ αi )2
 

b2 L2

L2 ∂ φi bL ∂ φi
v22i = ẋi2 + ẏ2i + γ̇i2 4 + 4 − bL
2 cos(φi ) + α̇i2 4
i
+ 2γ̇i α̇i 4 − 4 cos(φi )
∂ αi ∂ αi
(C.12a)
 
∂ φi
+ 2ẋi γ̇i b2 sin(γi ) − L2 sin(γi + φi ) − 2ẋi α̇i L2

sin(γi + φi ) (C.12b)
∂ αi
 
b L L ∂ φi

+ 2ẏi γ̇i − 2 cos(γi ) + 2 cos(γi + φi ) + 2ẏi α̇i 2 cos(γi + φi ) (C.12c)
∂ αi
!
2 ( ∂ ψi )2
 
L
L 2 ∂ ψi bL ∂ ψi
 2 2

2 2 2 2 b L bL 2 ∂ α
v3i = ẋi + ẏi + γ̇i 4 + 4 − 2 cos(ψi ) + α̇i 4
i
+ 2γ̇i α̇i 4 − 4 cos(ψi )
∂ αi ∂ αi
(C.12d)
 
b L L ∂ ψi

+ 2ẋi γ̇i 2 sin(γi ) − 2 sin(γi + ψi ) − 2ẋi α̇i 2 sin(γi + ψi ) (C.12e)
∂ αi
 
b L L ∂ ψi

+ 2ẏi γ̇i − 2 cos(γi ) + 2 cos(γi + ψi ) + 2ẏi α̇i 2 cos(γi + ψi ) (C.12f)
∂ αi
d 2 (αi )
   2 
i) 2 d (αi )
v24i = ẋi2 + ẏ2i + γ̇i2 d 2 (αi ) + α̇i2 ( ∂ d(α

∂ αi ) + 4 + 2γ̇ α̇
i i 4 (C.12g)
 
i) d(αi )
+ 2ẋi γ̇i −d(αi ) cos(γi + α2i ) + 2ẋi α̇i ∂ d(α
 αi αi
∂ αi sin(γ i + 2 ) − 2 cos(γ i + 2 ) (C.12h)
 
i) d(αi )
+ 2ẏi γ̇i −d(αi ) sin(γi + α2i ) + 2ẏi α̇i ∂ d(α
 αi αi
∂ αi cos(γ i + 2 ) − 2 sin(γi + 2 ) (C.12i)

La contribution des termes d’inertie est :

 
2 2 2 ∂ φi 2 ∂ ψi 2
I2i (φ̇i + γ˙i ) + I3i (ψ̇i + γ˙i ) + I4i (α̇i + γ˙i ) = γ̇i2 (I2i + I3i + I4i ) + α̇i2
( ) I2i + ( ) I3i + I4i
∂ αi ∂ αi
 
∂ φi ∂ ψi
+ 2γ̇i α̇i I2i + I3i + I4i
∂ αi ∂ αi
(C.13)
On peut donc écrire l’énergie cinétique totale Ti pour le mécanisme i sous la forme suivante :
 
ẋi
 
1
h i  ẏi 
Ti = 2 ẋi ẏi γ̇i α̇i Mi   (C.14)

 γ̇i 

α̇i

212
C.3. Énergie cinétique en fonction du paramétrage local

avec Mi :   
Mxxi 0 Mγxi Mαxi ẋi
h i 0 Myyi Mγyi Mαyi

ẏi

1
  
Ti = 2 ẋi ẏi γ̇i α̇i    (C.15)

 Mγxi Mγyi Mγγi Mαγi 
 γ̇i 

Mαxi Mαyi Mαγi Mααi α̇i

! !
∂φ ∂ψ
L2 ( ∂ αi )2 L2 ( ∂ αi )2 
d 2 (αi )
 ∂ φi 2 ∂ ψi 2
i) 2
Mααi = m2i 4
i
+ m3i 4
i
+ m4i ( ∂ d(α
∂ αi ) + 4 +( ) I2i + ( ) I3i + I4i
∂ αi ∂ αi
(C.16a)
   
b2 L2 bL b2 L2 bL 2

Mγγi = m2i 4 + 4 − 2 cos(φi ) + m3i 4 + 4 − 2 cos(ψ i ) + m4i d (α i ) + I2i + I3i + I4i
(C.16b)
   
2 ∂ φi ∂ φi 2 ∂ ψi ∂ ψi
Mαγi = m2i L4 − bL 4 cos(φi ) + m3i L4 − bL
4 cos(ψi ) + (C.16c)
∂ αi ∂ αi ∂ αi ∂ αi
 2  ∂φ ∂ ψi
i
m4i d (α4
i)
+ I2i + I3i + I4i (C.16d)
∂ αi ∂ αi
   
L ∂ φi L ∂ ψi
Mαxi = −m2i 2 sin(γi + φi ) − m3i 2 sin(γi + ψi ) + (C.16e)
∂ αi ∂ αi
 
i) d(αi )
m4i ∂ d(α
∂ αi sin(γ i + αi
2 ) − 2 cos(γ i + αi
2 ) (C.16f)
   
L ∂ φi L ∂ ψi
Mαyi = m2i 2 cos(γi + φi ) + m3i 2 cos(γi + ψi ) + (C.16g)
∂ αi ∂ αi
 
∂ d(αi ) αi d(αi ) αi
m4i ∂ αi cos(γi + 2 ) − 2 sin(γi + 2 ) (C.16h)

Mγxi = m2i b2 sin(γi ) − L2 sin(γi + φi ) + m3i 2b sin(γi ) − L2 sin(γi + ψi ) + m4i −d(αi ) cos(γi + α2i )
  

(C.16i)

Mγyi = m2i − b2 cos(γi ) + L2 cos(γi + φi ) + m3i − 2b cos(γi ) + L2 cos(γi + ψi ) + m4i −d(αi ) sin(γi + α2i )
  

(C.16j)

Mxxi = Myyi = m2i + m3i + m4i (C.16k)

213
Partie , Chapitre C – Calculs pour le modèle dynamique

C.4 Matrice de raideur

Rappel : on peut décomposer le calcul de la matrice K de la manière suivante :

∂ g ∂ (Zf)
K= − (C.17)
∂α ∂α

∂ (Zf)
Le calcul de ∂α est indiqué dans la section 2.3.5.
∂g
∂α est calculé à partir de l’expression de g.
On a :
∂g ∂ gs ∂ gg
= + (C.18)
∂α ∂α ∂α
L’élément i du vecteur gs ne dépend que de l’orientation du module i. Ainsi, seule sa dérivée
par rapport à αi est non-nulle. La matrice ∂∂ gαs est donc une matrice diagonale. L’élément i de la
diagonale de ∂∂ gαs est donné par :

∂ gs ∂ 2 ll (αi ) ∂ ll (αi ) 2
(i, i) = kl (i)(ll (αi ) − ll0 (i)) 2
+ kl (i)( )
∂α (∂ αi ) ∂ αi
(C.19)
∂ 2 lr (αi ) ∂ lr (αi ) 2
+kr (i)(lr (αi ) − lr0 (i)) 2
+ kr (i)( )
(∂ αi ) ∂ αi

∂ gg
L’élément de la ligne i et de la colonne j de la matrice ∂α est donné par :

N
∂ gg ∂ 2V
(i, j) = ∑ ∂ αi ∂gαk j (C.20)
∂α k=1


∂ 2Vg k 2 2 2
∂ αi ∂ α j = g(m2k ∂∂αiy∂2kα j + m3k ∂∂αiy∂3kα j + m4k ∂ α∂ i ∂ykα j ) (C.21)

Les dérivées secondes utilisées sont fournies dans l’annexe A.

C.5 Calcul des forces de Coriolis

Nous allons utiliser les symboles de Christoffel afin de calculer la matrice de Coriolis et des
effets centrifuges en fonction des éléments de la matrice d’inertie et des vitesses articulaires
[EW21].

214
C.5. Calcul des forces de Coriolis

Nous allons calculer les coefficients de la matrice C(α̇, α) telle que :

c(α̇, α) = C(α̇, α)α̇ (C.22)

Les éléments de C sont ainsi donnés par :

N
C(i, j) = ∑ Γi jk (α)α̇k (C.23)
k=1


1 ∂ Mi j ∂ Mik ∂ M jk
Γi jk = ( + − ) (C.24)
2 ∂ αk ∂αj ∂ αi
sont les symboles de Christoffel.

Nous devons donc calculer ces coefficients. Il faut pour cela dériver la matrice M par rapport
à α.

Matrice Mm

Pour rappel, on a :
N
Mm = ∑ RTi Mi Ri (C.25)
i=1

On en déduit donc que :

∂ Mm N
∂ Ri T ∂ Mi ∂ Ri
=∑ Mi Ri + RTi Ri + RTi Mi (C.26)
∂ αk i=1 ∂ αk ∂ αk ∂ αk

Il faut dériver les différents éléments de la matrice Mi .

Ces éléments de la matrice Mi sont constants :

Mxxi = Myyi = m2i + m3i + m4i (C.27)

Leurs dérivées premières sont donc nulles.

Rappel :

L2 S2i
2 (α ) L2 S3i
2 (α )
d 2 (αi )
     
i) 2
Mααi = m2i 4
i
+ m3i 4
i
+ m4i ( ∂ d(α
∂ αi ) + 4
2
+ S2i 2
(αi )I2i + S3i (αi )I3i + I4i
(C.28)

215
Partie , Chapitre C – Calculs pour le modèle dynamique

Dérivée première par rapport à α (non-nul uniquement pour i == k) :

∂ d(αi )
∂ S2i
! ∂ S3i
! !
∂ Mααi L2 S (α )
∂ αi 2i i
L2 S (α )
∂ αi 3i i ∂ 2 d(αi ) ( ∂ α )d(αi )
i)
= m2i 2 + m3i 2 + m4i 2( ∂ 2 αi
)( ∂ d(α
∂ αi ) +
i
2
∂ αi
∂ S2i ∂ S3i
+2 S2i (αi )I2i + 2 S3i (αi )I3i
∂ αi ∂ αi
(C.29)

Rappel :
   2 
b2 2 L2
+ L4 − bL b bL
+ m4i d 2 (αi ) + I2i + I3i + I4i

Mγγi = m2i 4 2 cos(φ i ) + m 3i 4 + 4 − 2 cos(ψi )
(C.30)
Dérivée première par rapport à α (non-nul uniquement pour i == k) :

∂ Mγγi ∂ d(αi )
= S2i m2i2bL sin(φi ) + S3i m3i2bL sin(ψi ) + 2m4i d(αi ) (C.31)
∂ αk ∂ αi

Rappel :
   
L2 bL L2 bL
Mαγi = m2i 4 S2i (αi ) − 4 S2i (αi )cos(φi ) + m3i 4 S3i (αi ) − 4 S3i (αi )cos(ψi )
 2  (C.32)
d (αi )
+m4i 4 + S2i (αi )I2i + S3i (αi )I3i + I4i

Dérivée première par rapport à α (non-nul uniquement pour i == k) :


 
∂ Mαγi L2 ∂ S2i bL ∂ S2i bL 2
= m2i 4 − 4 cos(φi ) + 4 S2i (αi )sin(φi )
∂ αk ∂ αk ∂ αk
 
L2 ∂ S3i bL ∂ S3i bL 2
+m3i 4 − 4 cos(ψi ) + 4 S3i (αi )sin(ψi ) (C.33)
∂ αk ∂ αk
 ∂d 
2 ∂ α d(αi )
k
∂ S2i ∂ S3i
+m4i 4 + I2i + I3i
∂ αk ∂ αk

Rappel

L L
 
Mαxi = −m2i 2 S2i (αi )sin(γi + φi ) − m3i 2 S3i (αi )sin(γi + ψi )

∂ d(αi ) αi d(αi ) αi
 (C.34)
+m4i ∂ αi sin(γi + 2 ) − 2 cos(γi + 2 )

Dérivée première par rapport à α :

216
C.5. Calcul des forces de Coriolis

Si k < i :

∂ Mαxi L
 L

= −m2i 2 S2i (αi )cos(γi + φi ) − m3i 2 S3i (αi )cos(γi + ψi )
∂ αk (C.35)
 
∂ d(αi ) αi d(αi ) αi
+m4i ∂ αi cos(γi + 2 ) + 2 sin(γi + 2 )

Si k = i
 
∂ Mαxi L ∂ S2i L 2
= −m2i 2 sin(γi + φi ) + 2 S2i cos(γi + φi )
∂ αk ∂ αk
 
L ∂ S3i L 2
−m3i 2 sin(γi + ψi ) + 2 S3i (αi )cos(γi + ψi ) (C.36)
∂ αk
2
i)
∂d i)
+m4i ( ∂ ∂d(α
2α sin(γi + α2i ) − 12 cos(γi + α2i ) + 12 ∂ d(α αi 1 αi
∂ αi cos(γi + 2 ) + 4 d sin(γi + 2 ))
i ∂ αk

Si k > i
∂ Mαxi
=0 (C.37)
∂ αk

Rappel

L L
 
Mαyi = m2i 2 S2i (αi )cos(γi + φi ) + m3i 2 S3i (αi )cos(γi + ψi )
  (C.38)
i) d(αi )
+m4i ∂ d(α
∂ αi cos(γi + αi
2 ) − 2 sin(γi + αi
2 )

Dérivée première par rapport à α :


Si k < i

∂ Mαyi L
 L

= −m2i 2 S2i (αi )sin(γi + φi ) − m3i 2 S3i (αi )sin(γi + ψi )
∂ αk (C.39)
 
∂ d(αi ) αi d(αi ) αi
+m4i − ∂ αi sin(γi + 2 ) − 2 cos(γi + 2 )

Si k = i
 
∂ Mαyi L ∂ S2i L 2
= +m2i 2 cos(γi + φi ) − 2 S2i (αi )sin(γi + φi )
∂ αk ∂ αk
 
L ∂ S3i L 2
+m3i 2 cos(γi + ψi ) − 2 S3i (αi )sin(γi + ψi ) (C.40)
∂ αk
2
i)
∂d i)
+m4i ( ∂ ∂d(α
2α cos(γi + α2i ) − 12 sin(γi + α2i ) − 12 ∂ d(α
∂ αi
sin(γi + α2i ) − 14 d cos(γi + α2i ))
i ∂ αk

217
Partie , Chapitre C – Calculs pour le modèle dynamique

Si k > i
∂ Mαyi
=0 (C.41)
∂ αk
Rappel :

b L b L
  
Mγxi = m2i 2 sin(γi ) − 2 sin(γi + φi ) +m3i 2 sin(γi ) − 2 sin(γi + ψi ) +m4i −d(αi ) cos(γi + α2i )
(C.42)
Dérivée première par rapport à α :
Si k < i

∂ Mγxi b L
 b L
 
= m2i 2 cos(γi ) − 2 cos(γi + φi ) +m3i 2 cos(γi ) − 2 cos(γi + ψi ) +m4i d(αi ) sin(γi + α2i )
∂ αk
(C.43)
Si k = i

∂ Mγxi
= m2i −S2i L2 cos(γi + φi ) + m3i −S3i L2 cos(γi + ψi )
 
∂ αk
  (C.44)
∂ d(αi ) αi 1 αi
+m4i − cos(γi + 2 ) + 2 d(αi ) sin(γi + 2 )
∂ αk

Si k > i
∂ Mγxi
=0 (C.45)
∂ αk
Rappel

Mγyi = m2i − 2b cos(γi ) + L2 cos(γi + φi ) +m3i − 2b cos(γi ) + L2 cos(γi + ψi ) +m4i −d(αi ) sin(γi + α2i )
  

(C.46)
Dérivée première par rapport à α :
Si k < i

∂ Mγxi b L
 b L
  
= m2i 2 sin(γi ) − 2 sin(γi + φi ) +m3i 2 sin(γi ) − 2 sin(γi + ψi ) +m4i −d(αi ) cos(γi + α̇2i )
∂ αk
(C.47)
Si k = i

∂ Mγxi
= +m2i −S2i L2 sin(γi + φi ) + m3i −S3i L2 sin(γi + ψi )
 
∂ αk
  (C.48)
∂ d(αi ) αi 1 αi
+m4i − sin(γi + 2 ) − 2 d(αi ) cos(γi + 2 )
∂ αk

218
C.5. Calcul des forces de Coriolis

Si k > i
∂ Mγxi
=0 (C.49)
∂ αk
Dérivées de R
Rappel :   
xγi xαi 0
  
 yγi 
 × 11×(i−1) yαi 0 04×(N−i) 
Ri+1 = Ri +   (C.50)

 0 
 1 0 

0 −1 1
Dérivée première par rapport à α :

∂ xγi
  
∂ xαi
∂ αk ∂ αk 0
 ∂ yγi  ∂ yαi 
∂ Ri+1 ∂ Ri   
 × 11×(i−1) ∂ αk 0 04×(N−i) 
= + ∂ αk  (C.51)
∂ αk ∂ αk 
 0
 
 0 0


0 0 0

Rappel :
xγi = −d cos(γi + α2i ) (C.52)

Dérivée première par rapport à α :


si k < i
∂ xγi
= d sin(γi + α2i ) (C.53)
∂ αk
si k = i
∂ xγi ∂d
=− cos(γi + α2i ) + d2 sin(γi + α2i ) (C.54)
∂ αk ∂ αk
si k > i
∂ xγi
=0 (C.55)
∂ αk
Rappel :
yγi = −d sin(γi + α2i ) (C.56)

Dérivée première par rapport à α :


si k < i
∂ yγi
= −d cos(γi + α2i ) (C.57)
∂ αk
si k = i
∂ yγi ∂d
=− sin(γi + α2i ) − d2 cos(γi + α2i ) (C.58)
∂ αk ∂ αk

219
Partie , Chapitre C – Calculs pour le modèle dynamique

si k > i
∂ yγi
=0 (C.59)
∂ αk

Rappel :  
∂d αi d(αi ) αi
xαi = − sin(γi + 2 ) − cos(γi + 2 ) (C.60)
∂ αi 2

Dérivée première par rapport à α :


si k < i
∂ xαi ∂d d
=− cos(γi + α2i ) + sin(γi + α2i ) (C.61)
∂ αk ∂ αi 2

si k = i

∂ xαi ∂ 2d 1 ∂d 1 ∂d d
= − 2 sin(γi + α2i ) − cos(γi + α2i ) − cos(γi + α2i ) + sin(γi + α2i ) (C.62)
∂ αk ∂ αi 2 ∂ αi 2 ∂ αi 4

si k > i
∂ xαi
=0 (C.63)
∂ αk

Rappel :  
∂d αi d αi
yαi = cos(γi + 2 ) − sin(γi + 2 ) (C.64)
∂ αi 2

Dérivée première par rapport à α :


si k < i
∂ yαi ∂d d
=− sin(γi + α2i ) − cos(γi + α2i ) (C.65)
∂ αk ∂ αi 2

si k = i

∂ yαi ∂ 2d 1 ∂d 1 ∂d d
= − 2 cos(γi + α2i ) − sin(γi + α2i ) − sin(γi + α2i ) − cos(γi + α2i ) (C.66)
∂ αk ∂ αi 2 ∂ αi 2 ∂ αi 4

si k > i
∂ yαi
=0 (C.67)
∂ αk

Matrice M f
Rappel :
R2 Id
M f (α) = (Im + )Z(α)Z(α)T (C.68)
rd2 rd2

220
C.6. Ajout d’une tête dans le modèle dynamique

On a donc :

∂ M f (α) R2 Id ∂ Z(α) ∂ Z(α)T


= (Im 2 + 2 )( Z(α)T + Z(α) ) (C.69)
∂ αk rd rd ∂ αk ∂ αk

∂ Z(α)
∂ αk s’exprime en fonction des dérivées secondes des longueurs partielles des câbles, dé-
taillés dans la section B.3.

C.6 Ajout d’une tête dans le modèle dynamique

C.6.1 Matrice d’inertie de la tête

Nous modélisons la tête du manipulateur par une sphère de rayon R. Nous notons (xh , yh ) la
position du centre de masse de la tête.
Dans le repère de référence, nous avons :

xh = xN+1 − R sin(γN+1 ) (C.70)


yh = yN+1 + R cos(γN+1 ) (C.71)

En dérivant, nous avons donc :

ẋh = ẋN+1 − γ̇N+1 R cos(γN+1 ) (C.72)


ẏh = ẏN+1 − γ̇N+1 R sin(γN+1 ) (C.73)

La vitesse au carré est donc :

v2h = ẋN+1
2
+ ẏ2N+1 + γ̇N+1
2
R − 2γ̇N+1 ẋN+1 R cos(γN+1 ) − 2γ̇N+1 ẏN+1 R sin(γN+1 ) (C.74)

2 .
La contribution inertielle est Ih γ̇N+1
On a donc :
  
MHxx 0 MHγx ẋN+1
1 h i
Thead = ẋN+1 ẏN+1 γ̇N+1  0 MHyy MHγy  ẏN+1  (C.75)
  
2
MHγx MHγy MHγγ γ̇N+1

221
Partie , Chapitre C – Calculs pour le modèle dynamique

MSxx =mh (C.76)


MSyy =mh (C.77)
MSγγ =R2 mh + Ih (C.78)
MSγx = − R cos(γN+1 )mh (C.79)
MSγy = − R sin(γN+1 )mh (C.80)

Avec la même méthode que dans le modèle dynamique, on utilise la matrice RN+1 pour
intégrer l’énergie cinétique de la tête dans la matrice d’inertie du manipulateur.

C.6.2 Énergie potentielle de la tête

Il faut également prendre en compte la masse de la tête dans le calcul de g.


Il faut donc rajouter l’énergie potentielle suivante :

Vh = gmh yh (C.81)

et donc rajouter le vecteur suivant à g :


h iT
∂Vh ∂Vh ∂Vh
gh = ∂ α1 ... ∂ αi ... ∂ αN
(C.82)

Chaque élément vaut :

∂Vh ∂ yN+1
= gmh ( − R sin(γN+1 )) (C.83)
∂ αi ∂ αi

C.6.3 Forces de Coriolis de la tête

Les termes utiles pour prendre en compte les forces centrifuges et de Coriolis de la tête
sont :

222
C.6. Ajout d’une tête dans le modèle dynamique

∂ MSxx
=0 (C.84)
∂ αk
∂ MSyy
=0 (C.85)
∂ αk
∂ MSγγ
=0 (C.86)
∂ αk
∂ MSγx
=R sin(γN+1 )mh (C.87)
∂ αk
∂ MSγy
= − R cos(γN+1 )mh (C.88)
∂ αk

223
Titre : Étude théorique et expérimentale d’architectures innovantes de robots inspirées du cou
des oiseaux : conception et commande

Mot clés : tenségrité, bio-inspiration, robotique, robot à câbles, commande

Résumé : Les systèmes biologiques représentent une totype composé de trois modules. Ce prototype n’a pas de me-
grande source d’inspiration pour les roboticiens. Les systèmes sure directe des orientations des modules, deux méthodes pour
de tenségrité, composés d’éléments rigides et d’éléments en calculer ces orientations en fonction des positions moteurs sont
tension, sont particulièrement adaptés pour la bio-inspiration donc proposées. Une identification des frottements moteurs et
puisque l’on retrouve ces systèmes directement dans divers de l’élasticité des câbles est menée afin d’améliorer les per-
systèmes biologiques. Dans cette thèse, nous étudions un ma- formances de la commande du prototype, et d’avoir un simula-
nipulateur inspiré du cou des oiseaux. Ce manipulateur est un teur efficace. Trois commandes sont développées et testées sur
empilement de modules qui possèdent chacun un degré de li- le prototype : une commande articulaire, une commande dans
berté. Chaque module est un mécanisme de tenségrité com- l’espace des moteurs et une commande dans l’espace opéra-
posé de quatre barres et deux ressorts. Le manipulateur est ac- tionnel. Des trajectoires sont ensuite optimisées dans le but de
tionné à l’aide de câbles, ainsi tous les moteurs se situent à sa produire des mouvements en minimisant les forces appliquées
base. Le modèle géométrique et le modèle dynamique du ma- ou de produire des mouvements à grande vitesse, comme peut
nipulateur sont développés, puis une analyse de l’actionnement le faire le pic lorsqu’il frappe un tronc d’arbre avec son bec. La
et de l’espace de travail statique du manipulateur est menée. Un thèse se termine sur une ouverture vers un manipulateur sous-
actionnement avec quatre câbles est sélectionné pour un pro- actionné constitué d’une dizaine de modules.

Title: Theoretical and experimental study of innovative robot architectures inspired by the neck
of birds : design and control

Keywords: tensegrity, bio-inspiration, robotics, cable robot, control

Abstract: Biological systems are a great source of in- ules. This prototype has no direct measurement of the modules
spiration for roboticists. Tensegrity systems, composed of rigid orientations, so two methods to calculate these orientations ac-
and tensile elements, are particularly suitable for bio-inspiration cording to the motor positions are proposed. An identification of
since these systems are found directly in various biological sys- the motor friction and the elasticity of the cables is carried out in
tems. In this thesis, we study a manipulator inspired by the neck order to improve the performances of the prototype control, and
of birds. This manipulator is a stack of modules that each have to have an effective simulator. Three controls are developed and
one degree of freedom. Each module is a tensegrity mecha- tested on the prototype: a joint control, a control in the space of
nism composed of four bars and two springs. The manipulator the motors and a control in the operational area. Trajectories
is operated by cables, so all the motors are located at its base. are then optimized in order to produce movements by minimiz-
The geometric model and the dynamic model of the manipulator ing the applied forces or to produce high speed movements, as
are developed, then an analysis of the actuation and the static the woodpecker can do when it hits a tree trunk with its beak.
workspace of the manipulator is conducted. An actuation with The thesis ends with an opening towards an underactuated ma-
four cables is selected for a prototype composed of three mod- nipulator made of about ten modules.

Vous aimerez peut-être aussi