Étude Théorique Et Expérimentale D'architectures Innovantes de Robots Inspirées Du Cou Des Oiseaux: Conception Et Commande
Étude Théorique Et Expérimentale D'architectures Innovantes de Robots Inspirées Du Cou Des Oiseaux: Conception Et Commande
Par
Benjamin FASQUELLE
Étude théorique et expérimentale d’architectures innovantes de ro-
bots inspirées du cou des oiseaux : conception et commande
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
6
TABLE DES MATIÈRES
8 Conclusion 177
Bibliographie 183
7
TABLE DES MATIÈRES
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
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
11
TABLE DES FIGURES
12
TABLE DES FIGURES
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
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
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
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
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
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
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.
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
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
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
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.
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.
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).
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].
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
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
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
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
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.
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.
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
32
Introduction
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.
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 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).
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
39
Partie , Chapitre 2 – Modélisation
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.
40
2.1. Présentation du manipulateur
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 .
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
42
2.2. Modèle géométrique
43
Partie , Chapitre 2 – Modélisation
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
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 :
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.
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).
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
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.
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.
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
Enfin, dans le cinquième cas, la longueur variable du câble j est donnée par :
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.
49
Partie , Chapitre 2 – Modélisation
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
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.
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
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.
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).
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
γ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
1
Ti = α̇ T RTi Mi Ri α̇ (2.37)
2
N
Mm = ∑ RTi Mi Ri (2.38)
i=1
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
R2 T
M f = Ia ZZ (2.42)
rd2
M = Mm + M f (2.43)
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 :
Vsp i = 12 k1i (ll (αi ) − ll0i )2 + 12 k2i (lr (αi ) − lr0i )2 (2.45)
où
∂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 :
56
2.3. Modèle dynamique
où
= 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)
Le modèle statique, qui est une sous-partie du modèle dynamique, est donné par :
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)
∂α
58
2.3. Modèle dynamique
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 :
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 :
où fv = [ fv (1), ..., fv (N f )]T est un vecteur constant qui doit être identifié.
Ainsi, les frottements des moteurs sont :
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
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.
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 :
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
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 :
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
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.
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.
65
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné
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
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 (α)
∂α
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)
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.
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 :
69
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné
Z = [Zl Zr ] (3.5)
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 :
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 :
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
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.
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 :
Z = [Z1 Z2 ] (3.15)
73
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné
∂ 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)
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.
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 :
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 :
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.
76
3.3. Espace de travail statique du manipulateur
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).
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.
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é
Exemple
79
Partie , Chapitre 3 – Analyse d’un manipulateur entièrement actionné
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
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 :
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 :
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
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.
84
3.5. Conclusion
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
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
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 .
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.
α3
α2
α1
c1 c4
c2 c3
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
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
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.
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.
Dv = y (4.4)
Wv + ρ = Y (4.5)
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)
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
97
Partie , Chapitre 4 – Identification des paramètres d’un prototype à 3 modules et 4 moteurs
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 :
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 :
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
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.
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.
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
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
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)
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).
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.
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]
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]
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
θ
Manipulateur, -
αd , α̇d , α̈d
moteurs, Commande
variateur
f
111
Partie , Chapitre 5 – Commande en actionnement complet
θ α̂, α̂˙
- Conversion
Manipulateur, -
αd , α̇d , α̈d
moteurs, Calcul
des forces
variateur
f
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
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
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.
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
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
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).
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
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]
é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
eθ = θd − θ (5.8)
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)
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é.
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
119
Partie , Chapitre 5 – Commande en actionnement complet
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
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.
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
articulaires des mécanismes estimées à partir des positions codeurs des moteurs.
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.
122
5.3. Commande opérationnelle
γ
On définit la matrice Jγ telle que :
u̇γ = Jγ α̇ (5.19)
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)
124
5.3. Commande opérationnelle
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
à 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)
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 :
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
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 :
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.
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 .
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)
dα
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.
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.
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
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]
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.
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
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 :
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
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.
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.
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é
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 :
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)
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.
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).
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é
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
∂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 :
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)
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.
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é
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.
162
7.2. Analyse de l’impact du nombre de modules
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.
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é
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.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é
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 :
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.
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.
0 0 1 2
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.
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)
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é
Z = [Z1 Z2 ] (7.21)
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é
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.
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
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
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
193
Partie , BIBLIOGRAPHIE
194
A NNEXE A
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−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
∂ 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
∂ 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
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)
αi
A2 = − (B.4)
2
201
Partie , Chapitre B – Longueurs des câbles en prenant en compte les poulies
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)
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 :
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.
π αi
β13 (i) = − (B.12)
2 2
203
Partie , Chapitre B – Longueurs des câbles en prenant en compte les poulies
3π αi
β33 (i) = − (B.13)
2 2
On en déduit que :
l 3j = ll (αi ) + r(2π − αi ) (B.14)
Quatrième cas
Ce cas est totalement symétrique au cas précédent. On en déduit que :
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 .
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
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 :
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 :
∂ 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
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
2 2 ∂ d(αi )
∂ 2 d(αi ) 4b cos(αi )d(αi ) − 4b sin(αi ) ∂ αi
= (B.34)
(∂ αi )2 16d(αi )2
∂ 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
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.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 α :
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
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
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
∂ φi
φ̇i = α̇i (C.10a)
∂ αi
∂ ψi
ψ̇i = α̇i (C.10b)
∂ αi
211
Partie , Chapitre C – Calculs pour le modèle dynamique
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
où
! !
∂φ ∂ψ
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)
213
Partie , Chapitre C – Calculs pour le modèle dynamique
∂ 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
où
∂ 2Vg k 2 2 2
∂ αi ∂ α j = g(m2k ∂∂αiy∂2kα j + m3k ∂∂αiy∂3kα j + m4k ∂ α∂ i ∂ykα j ) (C.21)
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
N
C(i, j) = ∑ Γi jk (α)α̇k (C.23)
k=1
où
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
∂ Mm N
∂ Ri T ∂ Mi ∂ Ri
=∑ Mi Ri + RTi Ri + RTi Mi (C.26)
∂ αk i=1 ∂ αk ∂ αk ∂ αk
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(α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
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 )
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 )
∂ 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)
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
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
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 :
∂ 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.
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 :
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
où
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.
Vh = gmh yh (C.81)
∂Vh ∂ yN+1
= gmh ( − R sin(γN+1 )) (C.83)
∂ αi ∂ αi
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
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
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.