• Aucun résultat trouvé

Contrôle d'impédance de bras interactifs à actionneurs différentiels élastiques

N/A
N/A
Protected

Academic year: 2021

Partager "Contrôle d'impédance de bras interactifs à actionneurs différentiels élastiques"

Copied!
118
0
0

Texte intégral

(1)
(2)
(3)

Faculté de génie

Département de génie électrique et de génie informatique

CONTRÔLE D'IMPÉDANCE DE BRAS

INTERACTIFS À ACTIONNEURS

DIFFÉRENTIELS ÉLASTIQUES

Mémoire de maîtrise

Spécialité : génie électrique

Arnaud AUMONT

Jury : François MICHAUD (directeur)

Michel LAURIA

Wael SULEIMAN

(4)
(5)
(6)
(7)

Le secteur de la robotique domestique est en pleine expansion. Comme toute nouvelle technologie, les capacités oertes aux clients doivent évoluer pour conquérir de nouveaux marchés. Des bras manipulateurs sur ces robots augmenteraient considérablement leurs capacités d'interactions. Mais il faut des bras à la fois performants et sécuritaires avant d'introduire ce type robot dans les domiciles et les hôpitaux. Dans cette optique, le labo-ratoire IntRoLab a développé un bras muni d'un nouveau type d'actionneur appelé ADE (Actionneur diérentiel élastique). Les ADE, de par leur conception, ont une compliance intrinsèque de par l'usage d'un ressort dans leur mécanisme, et permettent un contrôle en force an d'eectuer les actions sécuritairement.

L'objectif de cette maîtrise consiste à développer la partie logicielle permettant de contrôler ce type de bras pour qu'ils puissent réaliser un grand nombre d'actions tout en conser-vant l'aspect sécuritaire du robot pour les interactions humain-robot. Pour réaliser cela, le système de contrôle développé combine à la fois un contrôle d'impédance articulaire, un contrôle d'impédance cartésien et un contrôle en force. Ces trois types de contrôle permettent au bras d'eectuer des actions dans diérentes congurations. Le contrôle d'impédance articulaire permet de placer le bras dans une conguration articulaire pré-cise. Le contrôle cartésien permet de placer la pince à la position souhaitée dans l'espace. Le contrôle en force permet d'appliquer une force cartésienne dans une direction souhaitée ce qui permet de faire des actions comme écrire, repasser, etc. Un système de compensa-tion de gravité a également été ajouté à ce contrôle an d'améliorer la precision et que le bras soit plus simple à bouger. En eet, sans la compensation ces contrôles présentent une erreur statique causée par le poids du bras.

Les tests réalisés permettent de démontrer les caractéristiques et les limites des diérents types de contrôles réalisables. Ainsi, l'inuence des coecients de raideur et d'amortisse-ment sur les contrôles et notamd'amortisse-ment sur leur bande passante est analysée. La précision des contrôles est également déterminée. Pour vérier la sécurité des bras, des tests sur la vitesse atteignable sont réalisés à l'aide du contrôleur d'impédance articulaire et du contrôleur d'impédance cartésien.

Mots-clés : robotique, bras interactif, sécurité, contrôle d'impédance, compensation de gravité

(8)
(9)

En préambule, je souhaite formuler ici tous mes remerciements aux personnes qui m'ont apporté leur aide et qui ont ainsi contribué à l'élaboration de ce mémoire.

Tout d'abord, je remercie François Michaud de m'avoir permis de rejoindre le laboratoire IntRoLab de l'Université de Sherbrooke pour réaliser cette maîtrise.

Je remercie tous les membres du laboratoire et notamment : Marc-Antoine Legault pour la conception du bras, Dominic Letourneau pour l'assemblage et l'électronique, François Ferland pour son aide précieuse tout au long de cette maîtrise et Cyril Lugan pour ses conseils en programmation.

Je remercie également mes neuf compagnons français pour les bons moments passés en-semble à la découverte du Québec, et principalement Aurélie.

Enn, un merci tout particulier à mes parents qui m'ont soutenu dans mes choix.

(10)
(11)

1 Introduction 1

2 Robots manipulateurs 5

2.1 Sécurité . . . 5

2.2 Contrôle d'impédance et d'admittance . . . 9

2.3 Robots manipulateurs mobiles . . . 11

2.3.1 ASIMO . . . 11 2.3.2 Justin . . . 11 2.3.3 PR2 . . . 13 2.3.4 Care-O-Bot 3 . . . 14 2.3.5 CoDy . . . 15 2.3.6 Robotnaut 2 . . . 15 2.3.7 Dynamaid . . . 16 3 Conception 19 3.1 IRL-1 . . . 19 3.2 Cinématique directe . . . 22 3.3 Jacobienne . . . 24 3.4 Jacobienne inverse . . . 26 3.5 Compensation de gravité . . . 27

3.5.1 Compensation d'un objet . . . 29

3.6 Contrôle . . . 30

3.6.1 Contrôle d'impédance articulaire . . . 30

3.6.2 Contrôle d'impédance cartésien . . . 32

3.6.3 Contrôle en force . . . 34

3.6.4 Système de contrôle . . . 35

3.6.5 Sécurité . . . 37

4 Tests et résultats 39 4.1 Compensation de gravité . . . 39

4.2 Mesure d'un poids . . . 40

4.3 Compensation d'un poids . . . 41

4.4 Contrôle d'impédance articulaire . . . 43

4.4.1 Réponse en fréquence . . . 43

4.4.2 Réponse à un échelon . . . 48

4.4.3 Réponse à une trajectoire lissée . . . 50

4.5 Contrôle d'impédance cartésien . . . 52

4.6 Contrôle en force . . . 56

4.7 Contrôle hybride . . . 58

4.8 Vitesse maximale . . . 61 v

(12)

5 Conclusion 65

A Cinématique directe 69

B Jacobienne 73

C Calcul simplié de l'espace de travail 77

D Compensation de gravité 81

D.1 Calcul des vecteurs r . . . 82 D.2 Calcul des vecteurs de gravité . . . 83

E Propriétés de masse 85

F Distance entre les repères 89

(13)

1.1 Évolution de la population robotique [JARA, 2010] . . . 1

1.2 Actionneur diérentiel élastique (ADE) . . . 2

2.1 Risque de blessures à la tête en fonction de la valeur HIC [CPA, 2005] . . . 7

2.2 Schéma de principe du contrôle par impédance [Ott, 2008] . . . 10

2.3 Schéma de principe du contrôle par admittance [Ott, 2008] . . . 10

2.4 ASIMO [Honda, 2010] . . . 12 2.5 Justin [DLR, 2010] . . . 13 2.6 PR2 [WillowGarage, 2010] . . . 14 2.7 Care-O-bot3 [IPA, 2010] . . . 15 2.8 Cody [Robotics, 2010] . . . 16 2.9 Robonaut2 [NASA, 2010] . . . 16 2.10 Dynamaid [NimbRo, 2010] . . . 17

3.1 Mécanisme des ADE . . . 20

3.2 Bras gauche du robot . . . 21

3.3 Placement des repères du bras gauche . . . 23

3.4 Placement des repères du bras droit . . . 23

3.5 Schéma global du système de contrôle . . . 36

4.1 Position du bras avec (à gauche) et sans (à droite) compensation de gravité 39 4.2 Conguration lors de la mesure de poids . . . 40

4.3 Erreur de mesure des poids en pourcentage . . . 41

4.4 Position du second axe du bras en fonction des étapes . . . 42

4.5 Conguration des tests de réponse en fréquence et de réponse à un échelon 44 4.6 Réponse du bras à une consigne à fréquence variable avec k=10 et b=0 . . 45

4.7 Réponse du bras à une consigne à fréquence variable avec k=30 et b=0 . . 45

4.8 Réponse du bras à une consigne à fréquence variable avec k=50 et b=0 . . 46

4.9 Réponse du bras à une consigne à fréquence variable avec k=70 et b=0 . . 46

4.10 Réponse en fréquence avec k=70 et b=0 . . . 47

4.11 Réponse en fréquence avec k=70 et b=0,1 . . . 47

4.12 Réponse en fréquence avec k=70 et b=0,5 . . . 48

4.13 Réponse du bras à un échelon pour diérentes valeurs de k . . . 49

4.14 Réponse du bras à un échelon pour diérentes amplitudes (k = 70, b = 0) 49 4.15 Réponse du bras à un échelon pour diérentes valeurs de b . . . 50

4.16 Réponse du bras à des trajectoires lisses (k=50) . . . 51

4.17 Images du test du contrôle d'impédance cartésien . . . 52

4.18 Résultats du test du contrôle d'impédance cartésien (k=50, b=0) . . . 53

4.19 Résultats du test du contrôle d'impédance cartésien (k=100, b=0) . . . 54

4.20 Résultats du test du contrôle d'impédance cartésien (k=100, b=5) . . . 55

4.21 Conguration du test de force statique . . . 56

4.22 Système de mesure des forces . . . 57 vii

(14)

4.23 Conguration lors des tests de force dynamique . . . 58

4.24 Résultat des tests de la force appliquée par le bras . . . 59

4.25 Résultat d'un test de force en dynamique pour une consigne de 5 N . . . . 59

4.26 Conguration du test avec un crayon . . . 60

4.27 Résultat d'un test de force en dynamique pour une consigne de 5 N avec un cray on . . . 61

4.28 Résultat d'un déplacement avec un crayon avec 5 N (à gauche) et à 3 N (à droite) . . . 62

4.29 Vitesse cartésienne mesurée lors d'un contrôle articulaire (k=70) . . . 63

4.30 Vitesse cartésienne mesurée lors d'un contrôle cartésien (k=20) . . . 63

C.1 Schéma du bras en 2D . . . 77

C.2 Espace de travail sans limitation sous Rviz . . . 80

D.1 Schéma de la compensation de gravité . . . 81

E.1 Propriété de masse de la partie xe de l'épaule . . . 85

E.2 Propriété de masse de la première partie mobile de l'épaule . . . 86

E.3 Propriété de masse de la seconde partie mobile de l'épaule . . . 86

E.4 Propriété de masse de la troisième partie mobile de l'épaule . . . 87

E.5 Propriété de masse de l'avant-bras . . . 87

E.6 Propriété de masse de la pince . . . 88

F.1 Distance entre le repère 1 et le repère 2 . . . 90

F.2 Distance entre le repère 2 et le repère 3 . . . 91

F.3 Distance entre le repère 3 et le repère 4 . . . 92

F.4 Distance entre le repère 4 et le repère de la pince du haut . . . 92

F.5 Distance entre le repère 4 et le repère de la pince du bas . . . 93

(15)

3.1 Limitation des axes . . . 21

3.2 Paramètres de Denavit-Hartenberg (bras gauche) . . . 22

3.3 Paramètres de Denavit-Hartenberg (bras droit) . . . 24

3.4 Valeur des paramètres (en mètre) . . . 24

3.5 Masses et centres de gravité des éléments (bras gauche) . . . 28

3.6 Masses et centres de gravité des éléments utilisés lors des tests (bras gauche) 29 3.7 Utilisation des diérents modes . . . 37

4.1 Mesure de poids à l'aide du bras . . . 40

4.2 Diérentes étapes pour le test de la compensation d'une masse . . . 42

4.3 Mesure à l'aide d'un dynamomètre . . . 56

4.4 Mesure de poids à l'aide du capteur six axes . . . 58

4.5 Mesure de vitesse maximale lors d'un déplacement . . . 64

F.1 Distance entre les repères . . . 89

(16)
(17)

Liste des acronymes utilisés : Acronyme Dénition

ADE Actionneur diérentiel élastique

AIBO Articial Intelligence roBOt, robot-jouet de Sony

ASIMO Advanced Step in Innovative MObility, robot humanoïde d'Honda DLR Deutshes zentrum für Luft-und Raumfahrt, centre aérospatial allemand HIC Head Injury Criterion, indice indiquant la sévérité d'un choc à la tête

pHRI physical Human Robot Interaction, interaction physique entre humain et robot

PHRIENDS Physical Human-Robot Interaction depENDability and Safety, projet européen sur la séc PR2 Personal Robot 2, robot de la compagnie Willow Garage

ROS Robot Operating System

SEA Series Elastic Actuator, actionneur série élastique

(18)
(19)
(20)

Par contre, pour que cette évolution puisse avoir lieu, plusieurs critères devront être at-teints. Tout d'abord, les bras devront être assez ecaces et ables pour pouvoir être réellement utiles. Deuxième point, il faut que les bras ne soient pas trop chers sinon ils trouveront dicilement acquéreur et auront donc du mal à s'imposer. Mais la condition indispensable est qu'il faut absolument que les bras soient totalement sécuritaires. Il ne faut pas qu'ils puissent blesser les usagers ou même détériorer les autres objets présents dans l'environnement. C'est une problématique bien diérente des robots industriels qui ont besoin d'être très rapides et ables, mais dont l'aspect sécurité se limite souvent à un environnement conné pour assurer la sécurité du personnel.

Figure 1.2 Actionneur diérentiel élastique (ADE)

C'est dans cette problématique de robotique sécuritaire que le laboratoire de l'Université de Sherbrooke, IntRoLab, a développé un nouveau type d'actionneur qui, de par son fonc-tionnement, donne la compliance au système. Ces actionneurs s'appellent les Actionneurs diérentiels élastiques (ADE) [Legault, 2007]. Un exemple est montré à la gure 1.2. Les ADE possèdent plusieurs caractéristiques très intéressantes dans ce cadre d'interaction entre humains et robots avec des bras. Ils sont compacts, ce qui permet de les intégrer facilement à des structures robotiques. Ils peuvent développer un fort couple, permettant de porter des objets. Ils ont une faible impédance de sortie intrinsèque, ce qui améliore la sécurité. Enn, la conception de ces actionneurs permet de récupérer directement la mesure du couple appliqué par les actionneurs, ce qui aide pour la réalisation du contrôle. À l'aide de ces actionneurs, le laboratoire IntRoLab a développé deux bras robotiques (nommés bras ADE dans la suite). Bien que ces bras soient sécuritaires par conception, il est néanmoins nécessaire de les contrôler pour qu'ils puissent eectuer les actions voulues tout en conservant la sécurité de ces bras, voir en l'améliorant. La question qui se pose

(21)

donc est : comment commander les bras ADE pour les utiliser de façon sécuritaire dans le cadre d'interactions humain-robot ?

Ce mémoire comporte trois parties :

- le chapitre 2 décrit l'état de l'art des robots manipulateurs interagissant avec des humains et les contrôles qui sont utilisés dans ce domaine ;

- le chapitre 3 décrit le robot utilisé et présente le système de contrôle qui a été mis en place dans le cadre de ce projet de recherche ;

- le chapitre 4 décrit les tests et les résultats obtenus. Cela permet de voir les capacités du contrôle réalisé ainsi que ses limites.

Il y a également six annexes qui permettent de donner des informations supplémentaires sur les données utilisées et sur les calculs eectués par le système de contrôle décrit dans ce mémoire :

- l'annexe A présente le calcul réalisé pour calculer la cinématique directe des bras ; - l'annexe B explique comment est réalisé le calcul de la matrice Jacobienne des bras ; - l'annexe C décrit un calcul de l'épaisseur maximale de l'espace de travail des bras ; - l'annexe D présente le calcul permettant de compenser le poids du bras ainsi que

d'autres objets mis dans la pince ;

- l'annexe E donné les propriétés de masse des diérentes parties du bras déterminées lors de la conception ;

- l'annexe F donne les diérentes mesures entre les repères permettant ainsi de réaliser les calculs de la cinématique et de la Jacobienne.

(22)
(23)

Robots manipulateurs

Le domaine de la manipulation robotique implique principalement les robots industriels avec un contrôle en position qui permet d'avoir une forte précision et rapidité d'exécution. Mais ce genre de contrôle laisse peu ou pas de place à l'imprévu. Appliqué aux gros et lourds bras manipulateurs industriels, cela entraine un fort risque de danger s'ils ne sont pas placés dans un environnement conné. Le premier accident mortel (25 janvier 1979) a d'ailleurs eu lieu un peu moins de vingt ans après la mise en place du premier robot industriel (1961) dans une usine Ford [Kravets, 2010]. Pour le domaine industriel, ce problème peut se contourner en mettant le robot dans un environnement bien connu et où personne ne peut entrer, même si cela empêche la collaboration directe entre humains et robots.

Dans le domaine de la robotique de service, il en est tout autre. En eet, ces robots ont pour vocation de servir aux côtés de l'humain et donc se doivent d'être totalement sé-curitaires envers lui. Ces robots doivent également gérer les situations imprévues. C'est pourquoi de nombreux travaux ont été et sont eectués dans le domaine de la manipu-lation robotique sécuritaire. Les premiers robots de service munis de bras commencent tout juste à être commercialisés. Mais de nombreuses améliorations peuvent encore être eectuées, notamment sur la rapidité d'exécution, la sécurité des mouvements, l'exécution de mouvements plus complexes ou encore la réalisation de designs mécaniques plus sûrs. Pour présenter ce qui se fait dans ce domaine de la recherche, le chapitre commence par déterminer comment on peut considérer qu'un robot est sûr. Ensuite, les méthodes de contrôle qui sont appliquées actuellement dans le domaine de la recherche en manipulation robotique sont présentées. Enn, les principaux projets de robots manipulateurs interactifs sont décrits.

2.1 Sécurité

Avant de penser à réduire les risques, il faut penser à comment quantier le potentiel de dangerosité d'un bras robotique. Cela permet de réellement conrmer les avancements faits en terme de sureté. Plusieurs chercheurs ont travaillé sur ce domaine, notamment dans le cadre du projet européen PHRIENDS [PHRIENDS, 2009]. La plupart des travaux

(24)

vus dans la littérature utilisent des critères tirés de l'industrie automobile pour quantier la sécurité d'un bras robotique. Le principal facteur est le HIC (Head Injury Criterion) [Versace, 1971], qui donne une valeur correspondant au choc inigé à la tête. Plus cette valeur est grande, plus il y a de risque qu'il y ait une blessure grave, voire fatale. Ce critère se dénit à l'aide de la formule 2.1 :

HIC = {[ 1 t2− t1

 t2

t1

adt]2.5(t2− t1)}max (2.1)

où a est l'accélération de la tête et l'intervalle t2− t1 la durée du choc. Cette formule peut

se simplier sous la forme [Bicchi, 2006] :

HIC = Tmax  1 Tmax  Tmax 0 ¨xope(t)dt 2.5 ˙x2.5(Tope max) Tmax1.5 (2.2)

où ˙xope est la vitesse de la tête lors de l'impact, ¨xope son accélération et Tmax la durée du

choc. L'indice HIC peut être lié à la vitesse du bras et son inertie [Bicchi, 2006]. Si l'inertie du bras est fortement diminuée il est possible d'augmenter de façon sensible la vitesse du bras pour une valeur de HIC donnée. Dans [Haddadin et al., 2009a], les auteurs ont réalisé des tests montrant l'inuence de divers paramètres (vitesse et poids) sur le score HIC. Il existe une zone (poids du bras supérieur à 50 kg) où seule la vitesse du bras inue sur la valeur HIC. Mais il reste intéressant de diminuer le poids pour des bras robotiques interactifs qui sont en général moins lourds que cette valeur de saturation. Avoir un bras plus léger permet également d'avoir un système plus réactif et contrôlable, car il possède moins d'inertie lors des mouvements.

La gure 2.1 montre le risque de blessure potentiel à la tête en fonction du score HIC d'un choc. Dans le cadre du projet PHRIENDS, ils ont considéré qu'un indice HIC inférieur à 100 détermine qu'un bras est sûr. Selon la gure 2.1, à cette valeur il n'y a quasiment aucune chance pour qu'il y ait un dommage même léger à la tête. Pour comparaison, la valeur limite acceptable pour les crashs tests en automobile est de 700 [IIHS, 2009], ce qui correspond à un risque de 5% d'avoir des risques de blessures sévères. Prendre cet indice comme mesure de la sécurité des bras robotiques semble une bonne chose, car le choc à la tête est un des cas les plus graves qui peut se produire lors d'un contact entre le bras et un humain.

Il existe de nombreux autres critères permettant de déterminer la dangerosité d'un im-pact, e.g., le Gadd Severity Index (GSI), le Viscous Injury Response (VC), ou encore

(25)

Figure 2.1 Risque de blessures à la tête en fonction de la valeur HIC [CPA, 2005]

le Thoracic Trauma Index (TTI). Mais ils semblent peu utilisés dans la littérature en-tourant le domaine de la manipulation robotique interactive. L'EuroNCAP, l'organisme européen classiant la sécurité des véhicules fournit un document [EuroNCAP, 2010] décri-vant quelles mesures ils eectuent et, encore plus intéressant, les limites au-delà desquelles un impact est considéré comme dangereux. Ces valeurs peuvent se révéler très utiles pour estimer la sécurité des bras robotiques.

Plusieurs standards de sécurité pour la manipulation robotique existent. Il y a les standards nationaux comme ANSI-RIA R15.06-1999 pour les États-Unis, CSA Z434 :2003 pour le Canada et DIN ICS53 pour l'Allemagne. Ces standards ont été réunis et harmonisés pour obtenir un standard international qui est l'ISO 10218. La dernière version, ISO 10218-1 :2006, exige d'avoir une vitesse maximale du bras robotique inférieur à 0.25 m/s, ou une force maximale inférieure 150 N ou une puissance maximale inférieure à 80 W. Ces standards ont surtout été faits pour des robots manipulateurs industriels. Le standard ISO 10218 est jugé par certains comme étant trop restrictif, notamment par rapport à la force de 150 N qu'ils jugent trop faible [Haddadin et al., 2008]. Il n'y a donc pas vraiment de normes universellement reconnues pour l'instant dans le domaine de la manipulation robotique, et encore moins dans le domaine des robots de service étant donné son manque de maturité.

Dans le but de normaliser les tests en sécurité, [Haddadin et al., 2009b,c] donnent une méthodologie précise sur la façon de procéder pour évaluer la sécurité sur une base com-mune. Cette méthodologie permet également de faire une comparaison de performance des robots. De nombreux tests (contraints, non contraints, semi-contraints, sur diérentes parties du corps) sont eectués et de nombreuses mesures sont prises : HIC, CC

(26)

(Com-pression criterion), force appliquée, accélération de la tête sont parmi les plus révélatrices de la dangerositéd'un impact dans le domaine de la manipulation robotique. Le principal problème de leur méthodologie est qu'elle nécessite des moyens considérables, en temps (pour tous les tests) et en matériel (de nombreux mannequins de tests sont nécessaires). Ce type de tests est donc plus fait pour accréditer un robot à la mise en marché que pour évaluer la sécurité d'un robot dans le contexte d'un laboratoire de recherche. Dans [Haddadin et Albu-Schäer, 2010], les mêmes auteurs ont réalisé une méthodologie pour dénir la sécurité d'un robot lorsqu'il manipule un outil tranchant par exemple. Ces tests ne sont utiles que pour des robots ayant pour fonction de se servir de tels outils.

Plusieurs méthodes permettent de diminuer les risques lors de l'utilisation d'un bras robo-tique. Lors de la manipulation, le robot peut causer des dégâts sur les objets présents dans l'environnement, sur les humains présents et sur lui-même. Pour les objets et le robot, il peut être assez simple de faire une planication permettant d'éviter les contacts, dans la mesure où assez de capteurs ables sont utilisés. Par contre, il est dicile de prévoir tout ce qu'il peut se passer dans un environnement où il y a la présence d'humain ou d'animaux. Une planication seule n'est pas susante : il faut donc mettre en place des systèmes de sécurité supplémentaire.

Il y a plusieurs façons de procéder. Tout d'abord, il est possible de réduire les risques de façon mécanique en mettant en place une sécurité dite passive, notamment en agissant sur le poids des éléments mobiles an de diminuer la force des chocs lorsqu'ils surviennent. Une autre façon est de prendre des actionneurs qui intrinsèquement sont sécuritaires. Ceux-ci possèdent souvent un ressort permettant d'amortir le choc en cas de collision, préservant ainsi à la fois l'actionneur et l'objet/la personne touchée. Dans ce type d'actionneur, citons les SEAs (Series Elastic Actuators) [Pratt et Williamson, 1995], les ADEs [Legault, 2007], les ADDRs (Actionneurs à Double Diérentiel Rhéologique) [Fauteux et al., 2009] ou encore FSCAs (Force Sensing and Compliant Actuators ) [Edsinger-Gonzalves, 2004]. D'autres types d'actionneurs permettent d'avoir une raideur de réaction variable comme les VSAs (Variable Stiness Actuators) [Tonietti et al., 2005]. La abilitédes capteurs et des transmissions de données est aussi importante an de réagir de façon rapide et adéquate. En eet, avoir de fausses informations peut être plus dangereux que de ne pas avoir de données. Enn, la sécurité peut aussi être améliorée au niveau logiciel. Par exemple, ajouter des méthodes de détection rapide des collisions an de mettre le bras dans un mode où il aura tendance à se laisser faire pour amortir les chocs plutôt que de continuer son action. Á plus bas niveau, le contrôleur ajoute de la sécurité dans les actions faites en tenant compte que l'environnement est imprévu.

(27)

2.2 Contrôle d'impédance et d'admittance

Le principal mode de contrôle existant dans le monde de la robotique industrielle est le contrôle en position ou en vitesse. Ce type de contrôle a plusieurs points positifs. Par exemple, il est assez simple à réaliser, il ne nécessite qu'un capteur de position et un régu-lateur (un simple PID par exemple). De plus, ce type de contrôle peut être très rapide pour des tâches de manipulation répétitive. Par contre, si une consigne de position est donnée au robot, il se déplacera jusqu'à l'atteindre. Si un objet imprévu se place sur la trajectoire, le robot ne le prendra pas en compte et continuera son action jusqu'à atteindre son but, même si pour cela il doit écraser l'objet présent sur son chemin. Cela peut donc être très dangereuxquand l'objet imprévu est un humain. Une méthode pour eectuer des actions plus sécuritaires avec ce type de contrôleurs est d'ajouter des capteurs de force permettant de détecter la présence d'un élément imprévu et d'agir en conséquence. Cette méthode n'est néanmoins pas susante dans le cadre de la manipulation robotique interactive où l'envi-ronnement n'est pas entièrement connu et est dynamique. Il est donc nécessaire d'avoir un autre type de contrôle pour eectuer des actions réellement sécuritaires [Hogan, 1985a]. De nouveauxtypes de contrôle ont donc été développés et sont nommés contrôles d'im-pédance [Hogan, 1985a]. Il s'agit ici de commander la dynamique apparente pour qu'elle soit similaire à un système physique connu. Ils permettent donc de dénir une réponse aux perturbations (éléments venant de façon imprévue modier l'état du système) en plus de l'endroit où doit se rendre un bras. Nous traitons un peu plus en profondeur ces derniers types de contrôle.

Le principe d'impédance a été repris du domaine de l'électrique, où il s'agit de la relation entre courant et tension. Il lie ici la vitesse auxforces. L'impédance d'un système est vue comme la façon (vitesse) dont il réagit en fonction des forces extérieures qui lui sont appliquées. Par exemple, si l'impédance est faible, il est possible de facilement modier la vitesse du système, et si l'impédance est élevée il est très dicile de le bouger. Ce principe a été pour la première fois déni par Hogan [Hogan, 1985a,b,c]. L'idée de ce type de contrôle est donc de réguler l'impédance mécanique du système. Dans ce type de contrôle, aussi appelé contrôle en impédance basé sur la force, le point d'équilibre xd

dénit le point auquel le système doit parvenir et rester. Ce point est la position où est le système en l'absence de forces extérieures. Si une force extérieure est appliquée, le système se trouvera à une autre position x que celle voulue, ce qui créera un écart. Pour ramener le système à sa position d'équilibre, le contrôle demandera auxactionneurs d'appliquer un couple τm inverse au sens de l'écart et proportionnel à la valeur de l'écart, comme le ferait

(28)

0

(29)

virtuel dû au contrôle compense la force de la gravité. L'eet est d'autant plus important que la raideur voulue est faible. Pour éliminer ce problème, il faut mettre en place un algorithme de compensation de gravité qui ajoute un couple permettant d'atteindre la bonne position. La méthode la plus simple est de calculer pour chacun des axes le couple qu'applique la gravité en fonction des angles des diérents joints, comme le fait [Lavoie, 2009]. Ensuite, il sut d'ajouter un couple inverse en consigne des moteurs. Il est également possible de soustraire le couple de compensation au couple mesuré avant de passer par le bloc de contrôle en impédance.

2.3 Robots manipulateurs mobiles

Maintenant que les aspects sécurité et contrôle ont été évoqués, une revue des principaux robots manipulateurs mobiles est présentée an de mettre en évidence les choix des dié-rents laboratoires de recherche et d'en retirer les améliorations possibles à apporter à ce domaine.

2.3.1 ASIMO

ASIMO [Sakagami et al., 2002] a été développé par Honda qui a mis pas moins de 300 millions de dollars d'investissement dans ce projet (débuté en 1987 avec le robot E0). Les bras de la dernière version de ce robot sont constitués de sept degrés de liberté. Il y en a trois dans l'épaule, un pour le coude et trois au niveau du poignet. C'est une conguration mécanique qui est donc semblable à un bras humain. Au niveau de la manipulation, ce robot est capable de bouger ses bras, pointer des objets, serrer des mains ou encore tenir un plateau à l'horizontale. Lors du développement, les chercheurs se sont principalement intéressés à la partie locomotion, ce qui entraîne que ce robot n'a pas des capacités de manipulation très poussées par rapport à ce que l'on peut voir dans d'autres projets qui se sont concentrés sur la manipulation. Néanmoins, dans la dernière version, de nouvelles capacités ont été intégrées comme la manipulation d'objets. Il est maintenant capable de pendre une bouteille et de servir un verre.

2.3.2 Justin

Justin est le robot créé par l'institut spatial allemand DLR pour le projet de recherche européen nommé PHRIENDS (Physical Human-Robot Interaction depENDability and Sa-fety). Ce projet avait pour objectif de développer des moyens de sécuriser les interactions humain-robot [Albu-Schaer et al., 2007]. Ce groupe a développé deux bras distincts ayant

(30)

Figure 2.4 ASIMO [Honda, 2010]

tous deux sept degrés de liberté : le DLR Medical Robot (MIRO) qui pèse un peu moins de 10kg et qui peut soulever 3 kg, et le DLR Light-Weight Robot pesant 13,5 kg et pou-vant supporter des charges de 13,5 kg (ratio de 1 :1, ce qui s'approche de ce que fait un bras humain). C'est ce deuxième bras qui a été adapté sur Justin. La sécurité vient en grande partie de la partie contrôle/commande qui dispose pour chaque articulation d'un actionneur backdrivable, d'un Harmonic Drive, d'un capteur de couple, de deux capteurs de position (pour la redondance des données) et d'un contrôleur en impédance cadencé à 3 kHz [De Santis et al., 2007; Lippiello et al., 2007]. Ce système permet de réagir très rapidement aux imprévus de l'environnement, mais leur système est actif et par consé-quent reste limité en terme de réaction. Seul l'Harmonic Drive qu'ils ont intégré possède une certaine souplesse intrinsèque, mais plus faible que des actionneurs élastiques tels que les SEA et ADE. Pour la précision des mouvements, ils ont ajouté un contrôle actif de réduction des vibrations. Les capacités de manipulation de ce robot sont assez poussées. Il peut notamment manipuler des objets, ouvrir des couvercles, faire la cuisine, manipuler des objets à deux mains, ou encore tenir un ballon dans chaque main et un troisième entre les deux ballons. Ce robot est capable d'atteindre des vitesses de 2 m/s (vitesse considérée comme celle de l'humain) tout en respectant les critères de sécurité de la norme ISO 10218. Il est également à même de contrôler de façon assez sécuritaire des objets tranchants [Had-dadin et Albu-Schäer, 2010]. Ce robot possède donc de bonnes performances en termes de capacité, de vitesse, de charge utile, de détection et de sécurité, mais ce dernier point pourrait être amélioré grâce à l'ajout d'actionneurs compliants.

(31)

Figure 2.5 Justin [DLR, 2010]

2.3.3 PR2

PR2 (Personal Robot 2 ) est le robot de l'entreprise Willow Garage. C'est un descendant du robot PR1 [Wyrobek et al., 2008] développé à Stanford University. Ce robot est également muni de bras à sept degrés de liberté pouvant soulever des poids de 1,8 kg. Les joints des bras de ce robot ont été faits à partir d'actionneur SEA, notamment pour augmenter la sécurité lors des phases de manipulation. Ces articulations sont couplées à un système de compensation de gravité placé dans la base qui fonctionne à l'aide de ressorts, de petits moteurs et de câbles d'acier. Ce système permet entre autres que les bras ne tombent pas lorsque les actionneurs ne sont plus alimentés, de réduire le poids de la structure mobile et de réduire la taille des moteurs (car moins de couple à fournir). Réduire le poids leur permet également de rendre les bras plus sécuritaires et contrôlables (réduction de l'inertie).

Ce projet PR2 est très intéressant pour de nombreuses raisons. Tout d'abord, il s'agit très probablement d'un des robots les plus avancés en termes de manipulation et d'autonomie. Il peut notamment prendre des objets, les apporter à une personne, prendre sa prise d'alimentation et se brancher seul, et depuis peu il est capable de détecter, plier et ranger des serviettes [Maitin-Shepard et al., 2010]. Cette dernière activité est assez simple pour un humain, mais elle est extrêmement complexe en terme d'algorithme pour un robot, car il s'agit d'un objet qui ne garde pas sa forme originelle. L'autre gros avantage est que Willow Garage propose un système opérationnel en logiciel libre, ROS (Robotic Operating System) [Quigley et al., 2009], donnant directement accès à ce qu'ils ou d'autres développent. De nombreuses librairies sont donc disponibles et régulièrement mises à jour, notamment pour la partie manipulation robotique. PR2 est, depuis septembre 2010, l'un des premiers robots mobiles manipulateur commercialisé. Il reste cependant surtout destiné à des laboratoires de recherche ou à des universités. En eet, il est onéreux, 400 000 $, et n'est pas livré apte

(32)

à travailler de façon autonome dans un domicile. Il a plus vocation à être une plateforme de développement.

Figure 2.6 PR2 [WillowGarage, 2010]

2.3.4 Care-O-Bot 3

Care-O-Bot 3 [Reiser et al., 2009] est unrobot développé par l'entreprise Fraunhofer IPA. Sonbut est d'être unrobot permettant d'assister les humains au quotidien. Il a la vocation d'aider principalement les personnes âgées ou blessées. La première version de ce robot date de 1998 [Schraft et al., 1998]. Il est intéressant de voir qu'ils ont fait un robot n'ayant qu'une vague ressemblance avec un humain, ce qui est assez diérent de ce que font les autres. Ce robot n'est muni que d'un seul bras manipulateur situé à l'arrière, l'autre étant uniquement un plateau tactile. Le bras utilisé est un bras réalisé par l'entreprise SCHUNK et se nomme le LWA 3. Il dispose de sept degrés de liberté, mesure 1,2 m, et permet de transporter des charges de 3 kg pour un bras pesant plus de 10 kg. La main, aussi développée par SCHUNK, possède sept degrés de liberté répartis dans trois doigts et des capteurs tactiles. Le contrôleur du bras semble être fait à partir d'un contrôle en positionet envitesse. La sécurité est assurée à l'aide d'algorithme de détectionde collision et en analysant ce qui se passe autour à l'aide de ses capteurs. Il diminue également le problème du danger lors des interactions directes avec l'humain en passant les objets à servir sur sonplateau. Dans les vidéos de présentationde leur robot, il est capable d'aller de manière autonome chercher une boisson, ouvrir une porte et la refermer et apprendre à reconnaître de nouveaux objets. Il peut être dirigé par des commandes vocales ou par gestes. Le code implémenté dans ce robot est distribué sous forme de logiciel libre et utilise ROS. Sonmodèle est aussi accessible pour faire des simulations sur Gazebo [Gazebo, 2005].

(33)

Figure 2.7 Care-O-bot3 [IPA, 2010]

2.3.5 CoDy

CoDy est le robot du laboratoire de robotique Georgia Tech's Healthcare. Il a été développé pour servir d'aide aux inrmières dans les centres hospitaliers. CoDy possède deux bras de l'entreprise MEKA Robotics, nommé A1. Ils disposent également de sept degrés de liberté et de joints munis de SEAs et d'Harmonic Drives. Ces bras mesurent 0,792 m, pèsent 11,4 kg et peuvent supporter une charge utile d'environ 2,5 kg. MEKA fournit avec ses bras quatre types de contrôleurs : un contrôle par compensation de gravité, un contrôle en angle des joints, un contrôle en angle avec une boucle en force de raideur variable, et un contrôle par cinématique inverse. Le code est distribué sous forme de logiciel libre et est compatible avec ROS. En ce qui concerne les capacités du robot Cody, l'équipe de Georgia Tech a développé des algorithmes permettant de suivre une personne lorsque celle-ci lui tire un de ses bras [Chen et Kemp, 2010], d'ouvrir des portes et des tiroirs [Jain et Kemp, 2009] et de transporter un mannequin (une vraie personne étant trop lourde pour ces bras). Les chercheurs utilisent un contrôle par point d'équilibre pour eectuer les actions de façon sécuritaire.

2.3.6 Robotnaut 2

Robonaut 2, surnommé R2, est le résultat d'un projet conjoint de la NASA et de General Motor (GM) pour le développement d'un robot astronaute. Le but est d'obtenir un robot pouvant, dans un premier temps, épauler les astronautes en mission dans l'espace. La première version [Ambrose et al., 2000] de ce projet avait été réalisée par la NASA et DARPA, et date d'il y a dix ans. R2, qui pèse 150 kg, comprend uniquement un torse, une

(34)

Figure 2.8 Cody [Robotics, 2010]

tête etdeux bras avec des mains. Ses bras fontenviron 0,8 m etdisposentde septaxes de rotation. Ils peuvent supporter des charges de 9 kg et bouger à 2 m/s. Ce robotestcapable de réagir à des commandes vocales simples et d'eectuer quelques mouvements seul, mais le principal mode de contrôle est la téléopération. Ce robot n'est donc pas réellement autonome, l'objectif étant qu'il serve à prendre les risques d'une sortie extra véhiculaire à la place d'un astronaute tout en pouvant eectuer des actions précises. Ce robot est capable de manipuler des objets avec une dextérité très importante, notamment grâce à ses mains très agiles. Robonaut 2 a été envoyé sur ISS en février 2011. La principale raison pour laquelle ils ontenvoyé cette version non nale dans l'espace est pour tester le contrôle des bras en micro-gravité.

Figure 2.9 Robonaut2 [NASA, 2010]

2.3.7 Dynamaid

Dynamaid [Stückler et al., 2009] a été réalisé par l'Université de Bonn en Allemagne. Il a été développé spécialement pour participer à la compétition RoboCup@Home. Il a d'ailleurs reçu en 2009 le "Best of Innovation Award " et a ni second à la compétition de 2010 qui a eu lieu à Singapour. Comme tous les robots présentés ici, il possède des

(35)

bras ayant sept degrés de liberté. Il est capable de porter des charges d'un kilo, ce qui en fait le robot le moins puissant de ceux traités dans ce chapitre. Pour la conception des bras, les chercheurs ont choisi de puissants servomoteurs Dynamixel, des actionneurs traditionnels non dédiés à la robotique de manipulation (et potentiellement sensible aux chocs). Le contrôleur des bras n'eectue qu'un contrôle en position par la résolution de la cinématique inverse et la sécurité vient uniquement du fait que les bras ne sont pas lourds, ne sont pas rapides et n'imposent pas de grande force. Dynamaid peut néanmoins réaliser les actions nécessaires pour répondre aux exigences du concours RoboCup@Home, par exemple apporter divers objets ou ouvrir des portes. Il a donc été dimensionné pour concourir à la compétition ce qui est, d'après ses résultats, susant. Cet exemple montre que même avec du matériel moins haut de gamme et technologique, il est possible de réaliser des actions assez complexes en terme d'interaction humain-robot.

(36)
(37)

Conception

Dans le chapitre 2, les aspects sécuritaires de diérents robots existants ont été exposés. Certains, comme le Dynamaid, ont choisi d'avoir des bras légers, limitant ainsi les forces en jeu. D'autres, comme Justin, ont misé sur le contrôle et d'autres ont intégré dans la conception mécanique du bras des éléments sécuritaires. Le choix fait par le laboratoire IntRoLab est d'utiliser un bras conçu pour être sécuritaire. Le but du projet est d'ajouter un contrôle permettant de mettre une couche de sécurité supplémentaire tout en ayant un robot capable de réaliser diverses tâches. Ce chapitre présente les choix de conception eectués pour réaliser le contrôleur an de satisfaire à ces exigences.

3.1 IRL-1

IRL-1 est le robot utilisé dans le cadre de ce mémoire. Il a été conçu par le laboratoire IntRoLab. Sa vocation est de servir de base robotique dans le cadre de recherches en interaction humain-robot, d'où l'importance accordée à la sécurité lors de sa conception. Les éléments du robot peuvent être présentés en quatre parties.

1. La base roulante est omnidirectionnelle et non holonomique (ne peut pas changer instantanément de direction). Elle sert au déplacement du robot. Des actionneurs compliants ont été utilisés pour les axes de rotation des roues [Lauria et al., 2008]. La mise en place d'actionneurs compliants dans cette base donne une certaine sé-curité au robot, car lors de chocs, ils jouent le rôle d'amortisseur. Ces actionneurs permettent également de récupérer les forces extérieures exercées sur la base, ce qui peut être utile lors d'interaction avec des humains pour déterminer un contact ou une volonté de déplacer le robot. Cette partie possède un ordinateur dédié et peut donc fonctionner indépendamment des autres parties. Cette base possède également d'autres capteurs comme des lasers pour détecter des personnes ou des obstacles. 2. Le tronc consiste en une barre d'aluminium qui permet la liaison entre les diérentes

parties. Il intègre le deuxième ordinateur qui contrôle toutes les autres parties du robot. Il comporte aussi la connectique, la partie réseau pour la communication avec le robot, ainsi que les boutons permettant de le mettre en marche ou de faire un arrêt d'urgence.

(38)

3. La tête est composée de multiples actionneurs qui permettent de lui faire reproduire des expressions du visage ce qui est utile pour rendre le robot plus humain et ainsi faciliter les interactions humain-robot. C'est également sur la tête qu'est xé un Kinect permettant la vision 2D et 3D.

4. Les deux bras permettent à IRL-1 d'interagir avec le monde extérieur. Les bras ont été conçus pour être mécaniquement sécuritaires. Comme pour la base, la sécurité est assurée à l'aide d'actionneurs compliants nommés Actionneur à diérentiel élastique (ou ADE) [Legault, 2007]. Ils sont composés, comme leur nom l'indique, d'un élément élastique qui absorbe une partie des chocs, ce qui permet de limiter les dégâts sur le moteur et sur l'élément extérieur qui entre en contact avec la structure.

Figure 3.1 Mécanisme des ADE

L'avantage de ces actionneurs par rapport à d'autres sont les suivants :

- un fort couple, ce qui est indispensable pour eectuer des actions de manipulations d'objets et d'ouvertures de porte ;

- un design compact permettant une intégration assez simple dans diverses applica-tions telles qu'un bras ;

- une faible impédance de sortie, ce qui donne une compliance au système ;

- la capacité de pouvoir renvoyer le couple actuellement appliqué an de réaliser un contrôle en force ou en impédance.

Chacun des deux bras du robot possède quatre degrés de liberté contrôlés à l'aide d'ADE ainsi qu'un degré pour la pince qui, elle, est contrôlée par un simple moteur. Chaque axe possède sa propre carte électronique qui réalise un premier niveau de contrôle et permet

(39)

Figure 3.2 Bras gauche du robot

de faire la connexion avec un ordinateur eectuant un contrôle haut niveau des deux bras. C'est dans ce dernier que le contrôle haut niveau est réalisé. Les axes du bras possèdent des limitations d'angle dues à leur conception. Ces valeurs sont inscrites dans le tableau 3.1.

Tableau 3.1 Limitation des axes

i Valeur minimale Valeur maximale

1 −π 2 −π2 2 −π 2 π 3 −π 2 −π2 4 −43∗π 180 −80∗π180

Lors de la conception de ces bras, l'objectif de sécurité a pris une place importante dans le dimensionnement des actionneurs. En eet, dimensionner les diérentes parties du bras permet d'assurer une certaine sécurité. Les formules présentes dans la thèse d'Edsinger, [Edsinger, 2007] ont été utilisées pour choisir des valeurs pour le taux de réduction et pour la raideur du ressort permettant d'assurer un HIC inférieur à 100 pour un bras se déplaçant à environ 1 m.s-1. Ceci permet donc d'assurer la sécurité des personnes interagissant avec

les bras. Le choix réalisé dans ce cas a cependant un inconvénient : il limite la bande passante pour le contrôle des bras. Les valeurs choisies pour assurer la sécurité donnent une fréquence de résonance de 4, 67 Hz et donc une bande passante de 1, 56 Hz. C'est plus faible que la plupart des actionneurs, mais dans le cadre d'interactions humain-robot ce n'est pas très contraignant, car les gestes n'ont pas besoin d'être très rapides et ne doivent pas l'être pour ne pas erayer l'utilisateur.

Pour tirer le meilleur parti de ces bras, il faut les contrôler avec un système capable de s'adapter à tout type de demande tout en étant sécuritaire avec les éléments extérieurs.

(40)

L'état de l'art a permis de constater que le contrôle en impédance est le plus adapté dans le cas des robots qui interagissent sur l'environnement tout en étant sécuritaire pour travailler à côté des humains. C'est donc celui-ci qui a été choisi pour le système de contrôle principal des bras. Néanmoins dans certains cas, il peut être utile d'avoir d'autres types de contrôle du bras ADE.

3.2 Cinématique directe

Pour pouvoir réaliser le contrôleur, plusieurs étapes sont nécessaires. La première est le calcul de la cinématique directe. Cette information permet de déterminer la position de l'élément nal par rapport à la base de l'épaule en fonction de la valeur des quatre angles des axes. Pour obtenir la cinématique, la technique suivie est celle consignée par les princi-paux manuels sur la manipulation robotique ([Siciliano et Khatib, 2008] et [Craig, 2005]) : la méthode de Denavit-Hartenberg.

Pour calculer la cinématique directe, il faut tout d'abord placer les repères selon les recom-mandations de la méthode. Par commodité, le sens du vecteur Z a été choisi en fonction

de celui des actionneurs. De plus, les repères ont été placés dans la même conguration pour les deux bras. Ceci implique des signes diérents pour les décalages entre les axes. La représentation du placement des repères choisis pour les deux bras est présentée aux gures 3.3 et 3.4. Dans ces deux gures, la rotation du deuxième axe est de ±90 degrés (suivant le sens du vecteur Z2).

Pour faciliter la compréhension, le premier axe est déni comme étant le lacet (pan), le second axe le tangage (tilt), et le troisième le roulis (roll)).

Une fois ce placement de repère réalisé, les paramètres de Denavit-Hartenberg peuvent être déterminés. Les tableaux 3.2 et 3.3 montrent ces paramètres respectivement pour le bras gauche et le bras droit.

Tableau 3.2 Paramètres de Denavit-Hartenberg (bras gauche)

i αi−1 ai−1 di θi 1 0 0 0 θ1 2 −π 2 0 d2 θ2 3 π 2 0 −d3 π+ θ3 4 π 2 a3 −d4 π+ θ4

(41)
(42)

Tableau 3.3 Paramètres de Denavit-Hartenberg (bras droit) i αi−1 ai−1 di θi 1 0 0 0 θ1 2 −π 2 0 −d2 θ2 3 π 2 0 −d3 π+ θ3 4 π 2 a3 d4 π+ θ4

Tableau 3.4 Valeur des paramètres (en mètre) Paramètres αi−1 d2 0, 09471141 d3 0, 31623 a2 0, 0127 d4 0, 031115 dx 0 dy 0, 2686564 dz 0, 007977

Ces paramètres permettent de déterminer les quatre matrices de transformation qui mul-tipliées entres elles donnent la cinématique directe des parties mobiles. Il faut ensuite prendre en compte la partie xe constituée par l'avant-bras et la pince.

L'annexe A présente plus de détails sur les calculs menant à ce résultat.

Dans certains cas la cinématique inverse peut être utile, mais dans le cas de ce contrôleur elle n'est pas nécessaire.

3.3 Jacobienne

Une autre information importante à déterminer est la matrice jacobienne, plus simplement nommée Jacobienne. Celle-ci est dénie selon la convention pour l'ordre des éléments donnée dans [Siciliano et Khatib, 2008]. Dans ce livre, les données rotationnelles (couples, vitesses de rotation) sont placées avant les éléments linéaires (forces, vitesses linéaires), ce qui peut diérer par rapport à d'autres [Craig, 2005].

La Jacobienne est la matrice qui permet de mettre en relation les vitesses cartésiennes (six dimensions : trois rotationnelles et trois linéaires) en un point de la chaîne (la pince pour ce mémoire) avec la vitesse des joints d'un système. Ce lien se représente par la formule 3.1 :

(43)

 iw iv  =iJ(q) ˙q (3.1) avec :

- iw, le vecteur des vitesses angulaires exprimé dans le repère i ;

- iv, le vecteur des vitesses linéaires exprimé dans le repère i ;

- iJ(q), la Jacobienne dépendant de la position angulaire des axes, q, écrite dans le

repère i ;

- ˙q, le vecteur des vitesses de rotation de chaque axe du système.

Une autre fonction de la Jacobienne est que sa transposée permet de déterminer le couple sur chacun des axes du système en fonction d'une force ou d'un couple appliqué sur un élément. Elle est utilisée pour déterminer les couples à appliquer permettant de produire la force souhaitée en bout de chaîne. Cette relation peut s'écrire à l'aide de la formule 3.2 :

τ =iJT(q)iF (3.2)

avec :

- τ, le vecteur des couples appliqués sur les axes ; - F =



N F



, le vecteur force généralisée composé des couples N et des forces F . Dans ce mémoire, les systèmes pris en compte sont les bras. Ceux-ci sont composés de quatre axes, ce qui donne une Jacobienne de taille 6×4. La formule 3.3 permet de calculer cette matrice. TJ =  TZ 1 TZ2 TZ3 TZ4 S Tp1TZ1 S Tp1TZ2 S Tp1TZ3 S Tp1TZ4  (3.3) avec :

- TJ, la Jacobienne représentée dans le repère Outil T ;

- TZ

i, l'axe Z du repère i exprimé dans le repère Outil ;

(44)

- Tp

1, le vecteur permettant de passer du repère i au repère Outil.

L'annexe B donne plus d'information sur l'obtention de cette matrice ainsi que sur les diérents éléments la composant.

3.4 Jacobienne inverse

L'inverse de la Jacobienne est également une information très utile. Celle-ci permet de déterminer la vitesse de rotation des axes à partir de la vitesse généralisée d'un des éléments (la pince dans ce cas). De même, sa transposée permet de déterminer le couple ou la force en un point du système à partir des couples exercés sur les axes. Cette information est utile pour mesurer les forces exercées par un élément extérieur, comme un objet mis dans la pince du robot.

Le problème pour le calcul de cette Jacobienne inverse, c'est que les bras n'ont que quatre axes pour les six dimensions que compte l'espace (trois d'orientation, trois de position). Le bras est donc sous-actionné, ce qui se voit par un nombre inférieur de colonnes par rapport au nombre de lignes dans la matrice jacobienne. Ceci résulte en une matrice non carrée. Il n'est donc pas possible d'eectuer une inversion classique. Il faut réaliser une pseudo-inversion. Cela permet de généraliser l'inversion pour des matrices non inversibles en simpliant les requis. En eet, il n'est pas possible de déterminer une matrice B permet-tant de résoudre l'équation AB = BA = In, signe d'une matrice inversible (les dimensions

ne sont pas les mêmes).

Il existe plusieurs façons de réaliser cette pseudo-inversion. Dans le cadre de ce mémoire, la méthode utilisée est le calcul d'une pseudo-inverse de Moore-Penrose qui est une des plus courantes. Pour déterminer la pseudo-inverse de Moore-Penrose, la méthode par dé-composition en valeur singulière a été sélectionnée pour sa simplicité de mise en ÷uvre et sa précision. La première étape est de réaliser la décomposition de la matrice à inverser (A) sous la forme suivante :

A= UΣV∗ (3.4)

avec :

- A, la matrice à inverser de taille m × n ;

(45)

- V et U, les matrices permettant de réaliser la décomposition appelées respectivement base orthonormées d'entrée et de sortie avec pour taille n × n et m × m, V∗ est la

matrice adjointe à V (transposée de la matrice conjuguée).

Cette décomposition, qui est le c÷ur de cette méthode, n'est pas simple à réaliser, mais de nombreuses librairies logicielles sont disponibles pour le faire. Une fois cette décomposition réalisée, le calcul de l'inverse est simple, la pseudo-inverse de la matrice A vaut :

A† = V Σ†U∗ (3.5)

avec :

- A†, la pseudo-inverse de A ;

- Σ, la pseudo-inverse de Σ ;

- U∗, la matrice adjointe à U.

À première vue, le problème de pseudo-inversion semble être reporté sur la pseudo-inverse de la matrice Σ qui est également une matrice rectangulaire. Néanmoins, cette matrice possède la propriété d'être, par dénition, diagonale. Dans ce cas particulier, il est simple de réaliser la pseudo-inverse de Moore-Penrose : il faut inverser tous les éléments non nuls de la diagonale et laisser les éléments nuls. Pour éviter les grandes valeurs lors de l'inversion des éléments non nuls, tous les éléments troppetits sont également mis à zéro.

3.5 Compensation de gravité

La section 2.2 mentionne un problème lié à l'utilisation de contrôleur d'impédance : il peut être vu comme un contrôleur proportionnel/ dérivé. En l'absence de composante intégrale, si une force externe est présente sur le bras, il y aura une erreur statique sur la position souhaitée. Or, les bras possèdent un poids et donc la force de gravité applique une force sur tout le bras. Sans une compensation de cette force, le contrôleur du bras ne pourrait donc pas donner de résultat précis. Il est donc indispensable de déterminer le couple appliqué sur chaque axe par la gravité. Cela permet d'ajouter un correctif lors du contrôle permettant de compenser la gravité.

Pour mesurer cela, l'impact de chaque élément du bras est pris en compte pour déterminer, en fonction de la position du bras, le couple appliqué sur les axes. Le calcul pour déterminer

(46)

les couples pour un axe i est donné par la formule 3.6 (l'obtention de cette formule est détaillée dans l'annexe D) :

Mi = n j=i mj ⎛ ⎜ ⎝iG j × ⎛ ⎜ ⎝i−1 z=0Z+1ZR −1 ⎡ ⎢ ⎣ 0 0 −g ⎤ ⎥ ⎦ ⎞ ⎟ ⎠ ⎞ ⎟ ⎠ (3.6) avec :

- Mi, le vecteur 3 × 1 des couples appliqués sur l'axe i ;

- mj, la masse de l'élément j ;

- iG

j, la centre de masse de l'élément j exprimé dans le repère i. iG

j est déterminé à l'aide de l'expression 3.7 :

 iG j 1  = j−1  z=i Z Z+1T  jG j 1  (3.7) Comme par dénition les axes de rotation ont pour direction −→Zi, il faut prendre la troisième

composante de Mi pour connaître le couple à compenser pour l'axe i. Il sut ensuite de

faire le calcul pour chaque axe pour savoir comment compenser le poids des bras.

Pour eectuer ces calculs, il est nécessaire d'avoir la position des centres de gravité jG j

ainsi que le poids mj des diérents éléments des bras. Lors de la conception mécanique

des bras, un modèle SolidWorks avec la masse de chaque sous-éléments a été réalisé. Il a donc été possible de récupérer les valeurs nécessaires pour réaliser ce calcul. Ces valeurs sont données pour le bras gauche. Les deux bras ayant été conçus de façon similaire, il est simple de déterminer les valeurs pour le bras droit. Ces valeurs sont présentées au tableau 3.5 (plus de détails dans l'annexe E) :

Tableau 3.5 Masses et centres de gravité des éléments (bras gauche) Éléments Masses (en kg) Centre de masse (en m)

0 1, 502 {0; 0, 031; −0, 03}

1 1, 771 {−0, 007; 0, 039; −0, 0083}

2 3, 188 {0, 014; −0, 006; 0, 10178050}

3 1, 348 {0, 001; 0, 127; 0, 006}

(47)

Le modèle SolidWorksne prenant pasen compte certainséléments(tel que le câblage), la compensation à l'aide de cesvaleursne donnait pasun résultat parfait. Il a donc fallu modier lesvaleurspour trouver une conguration danslaquelle la compensation donne de bons résultats, quelle que soit la position du bras. Pour simplier et gagner du temps sur cette étape, une méthode a été implémentée pour permettre de modier en instantané les diérents paramètres. Ensuite, la mise à jour des valeurs s'est faite en partant du dernier axe puisen remontant. Pour chaque axe, diérentesposturesdu brasont été testéespour vérier que la compensation fonctionnait correctement danstouslescas. Les valeursutiliséeslorsdestestsde la partie 4 sont donnéesdansle tableau 3.6.

Tableau 3.6 Masseset centresde gravité desélémentsutiliséslorsdestests (brasgauche)

Éléments Masses (en kg) Centre de masse (en m) 0 1, 502 {0; 0, 031; −0, 03}

1 1, 770 {0, 06; 0, 035; −0, 008}

2 3, 275 {0, 025; −0, 01; 0, 07}

3 1, 05 {0; 0, 127; −0, 04}

4 0, 38 {0, 011; 0, 002; 0, 001}

Il peut être intéressant d'utiliser la compensation de gravité sans aucun contrôle. Dans ce cas le bras du robot est passif et donc si il y a contact avec les bras il n'y aura que peu de résistance et donc pas de risque de faire des dégâts. Cela permet également d'avoir un mode où il est possible de bouger facilement le bras pour le mettre dans une conguration voulue ou lui montrer desmouvementsà eectuer.

3.5.1 Compensation d'un objet

Une destâchesque le robot peut avoir à eectuer est de porter ou d'aider à porter un élément pour un humain comme dans[Ferland et al., 2012]. Pour compenser un élément qui serait misdanssa pince, le calcul fait précédemment a été étendu.

Pour se faire, il faut ajouter un élément dans le calcul 3.6 et donc faire une somme de i à

n+ 1. L'élément n + 1 est l'objet à ajouter. S'il n'y en a pas, il sut de mettre à zéro sa

masse pour ne pas ajouter de contribution au couple sur les axes. Sinon, il faut renseigner la masse de l'élément pris par le robot. Par défaut, le centre de gravité est le centre de la pince, mais il est possible, comme pour les autres éléments d'ajouter le centre de masse de l'objet. Il faut néanmoinsle dénir par rapport au centre de la pince. Danslestests, le centre de gravité est laissé au centre de la pince, car cette donnée est complexe à obtenir.

(48)

Devoir donner la masse des objets pris par le robot pour qu'il puisse les compenser pose quelques problèmes. En eet, si c'est un scénario écrit à l'avance il faut connaître les propriétés des objets manipulés. Pire, le robot peut avoir à manipuler des objets dont le concepteur ne connaît pas à l'avance le poids. Pour simplier ce problème, un système a été mis en place an de déterminer la masse d'un objet mis dans la pince pour être capable ensuite de le compenser.

Pour réaliser cette mesure de poids, le bras est tout d'abord placé vers l'avant ce qui permet de ne pas être proche d'une singularité (comme avec le bras le long du corps où aucun capteur ne pourrait capter le couple appliqué par un objet mis dans la pince). Ensuite, une fois l'objet placé dans la pince, les couples appliqués sur chacun des axes sont récupérés. Le calcul de compensation du poids du bras est réalisé pour les soustraire des couples mesurés et ainsi obtenir uniquement les couples appliqués par l'objet. Dernière étape, il faut utiliser la transposée de la Jacobienne inverse. Une fois cette matrice utilisée, la force appliquée par l'objet est donc connue. Le poids de l'objet est alors obtenu simplement en utilisant la valeur de la gravité ≈ 9.8 N.kg-1. Il sut donc de mettre à jour le poids de

l'élément dans le calcul de la compensation de gravité pour pouvoir compenser à la fois le bras et l'objet tenu par la pince.

3.6 Contrôle

En fonction de ce que l'on veut faire faire aux bras du robot, il peut être utile d'avoir des contrôles de diérents types. Par exemple, si l'on veut pousser un objet, il est intéressant de réaliser un contrôle en force. Pour déposer un objet tenu par le bras à une position précise, il est plus simple d'avoir un contrôle cartésien. Pour réaliser un mouvement du bras précis, un contrôle articulaire est plus adapté. On peut également avoir besoin d'un contrôleur hybride. Par exemple, pour repasser, il est préférable d'avoir un contrôle cartésien pour placer le fer au bon endroit et un contrôle en force pour appliquer un poids permettant un bon repassage. C'est pour cela que le contrôleur réalisé ici est capable de passer d'un type de contrôle à un autre. Ceci permet d'avoir des bras multi-usages en plus de sécuritaire.

3.6.1 Contrôle d'impédance articulaire

Comme décrit dans la section 3.1, chacun des axes du robot possède une carte de contrôle. C'est dans celle-ci que le premier niveau de contrôle est eectué. Il s'agit d'un contrôle d'impédance articulaire. Celui-ci a été réalisé à partir des travaux de [Lavoie, 2009].

(49)

Chaque contrôleur est composé d'une boucle de contrôle du couple appliqué par l'axe. Ce couple est récupéré directement grâce à l'ADE. Le contrôle d'impédance articulaire se fait en donnant une consigne à cette boucle de contrôle. L'équation de cette consigne est :

τd = k(θd− θm) + b( ˙θd− ˙θm) (3.8)

avec :

- τd, le couple à appliquer sur l'axe pour atteindre l'angle désiré ;

- k, le coecient de raideur du contrôle ; - b, le coecient d'amortissement ;

- θm, θd, respectivement l'angle mesuré et l'angle désiré ;

- ˙θm, ˙θd, respectivement la vitesse mesurée et la vitesse désirée (elle est en pratique

mise à zéro).

Le principe de cette formule est de générer un couple lorsque l'axe n'est pas à la position souhaitée. Ce couple a pour eet de faire tendre cet axe vers le bon endroit. Le coecient de raideur k inue sur la manière dont l'axe atteindra la consigne. S'il est grand, le couple généré sera grand, ce qui fera tendre rapidement l'axe mais pourra provoquer des dépas-sements de la consigne. Inversement, si k est faible, il fera tendre l'axe vers sa position de façon plus lente et les forces en jeu seront plus faibles. Le coecient d'amortissement permet de limiter la vitesse.

Comme discuté plus haut, il est nécessaire d'avoir une compensation de la gravité du bras et des objets potentiellement mis dans la pince pour éviter d'avoir une erreur statique avec ce type de contrôleur. Étant donné qu'il est nécessaire d'avoir des informations sur la position des autres axes, il n'est pas possible de réaliser le calcul de la compensation au niveau de chaque carte des axes.

Ce calcul se fait donc à plus haut niveau dans l'ordinateur contenu dans le torse. Le couple pour chaque axe est ensuite envoyé sur chacune des cartes. Pour intégrer ce couple à compenser au contrôle, un élément de couple de biaisage, τbias, a été ajouté, ce quidonne

la formule 3.9 :

(50)

Cet ajout permet également de passer les commandes pour les autres types de contrôle.

3.6.2 Contrôle d'impédance cartésien

Le contrôleur d'impédance articulaire permet de contrôler le bras en lui donnant des instructions sur la position de chaque axe. Le problème est que dans certains cas, notam-ment la manipulation d'objet, il peut être intéressant, voire indispensable, de donner une consigne sur la position nale de la pince. Il y a deux manières de faire :

- soit en calculant la cinématique inverse du système, les angles de chaque axe sont déterminés pour obtenir la bonne position nale. Ces angles sont ensuite donnés au contrôleur articulaire qui fait en sorte que le bras atteigne cette position. Il y a deux limitations principales avec cette technique. La cinématique inverse est une fonction souvent complexe à résoudre et la compliance se fait par rapport à chaque axe et non par rapport à l'écartement cartésien. La réaction n'est donc pas uniforme suivant la direction dans laquelle le bras est écarté de sa position de stabilité.

- soit en utilisant un contrôle d'impédance cartésien. Le principe est très proche de ce qui est présenté à la section 3.6.1 sauf qu'au lieu de créer un couple à partir d'un écart entre la valeur de deux angles (l'angle souhaité et l'angle actuel), on crée un vecteur de force à partir de l'écart entre la positon cartésienne voulue et la position actuelle. Il en résulte la formule 3.10.

Fimpdance = K(Xd− Xm) + B(Vd− Vm) (3.10)

avec :

- Fimpdance, le vecteur force permettant d'atteindre la position désirée ;

- K, le vecteur des coecients de raideur du contrôle ; - B, le vecteur des coecients d'amortissement ;

- Xm,Xd, respectivement la position mesurée et la position désirée ;

- Vm,Vd, respectivement la vitesse mesurée et la vitesse désirée (elle est en pratique

mise à zéro).

Normalement, les six axes de l'espace (trois linéaires, trois rotationnels) sont pris en compte dans cette formule. Les vecteurs ont dans ce cas une dimension de 6×1. Mais, comme cela a été vu, les bras utilisés dans ce mémoire sont sous-actionnés. Certains axes sont donc

(51)

non contrôlables. Partant de ce constat, il a été choisi de ne prendre que les dimensions linéaires. Ainsi, les dimensions des vecteurs sont 3 × 1.

Pour l'instant, seule la force à appliquer est connue. Or, la section 3.3 montre que la transposée de la Jacobienne permet de lier une force exercée au niveau de la pince aux couples à appliquer au niveau des articulations. Ceci donne la formule 3.11 pour le calcul des couples moteurs :

τmoteur = J(θ)tFimpdance (3.11)

avec :

- τmoteur, le vecteur des couples à appliquer aux diérents moteurs ;

- J(θ)t, la transposé de la Jacobienne dépendant des angles θ.

D'où la formule 3.12 pour le contrôleur cartésien :

τmoteur = J(θ)t((Xd− Xm) + B(Vd− V(m)) (3.12)

La position de la pince n'est pas forcement connue. Mais à l'aide de la cinématique directe calculée dans la section 3.2, il est possible d'obtenir cette position. De même, la vitesse de la pince peut être déterminée à l'aide de la Jacobienne. Il en résulte l'expression 3.13 :

τmoteur = J(θ)t((X0− L(θ)) + B(V0− J(θ)w)) (3.13)

avec :

- L(θ), la position de la pince calculée en fonction de la valeur des angles θ ; - J(θ), la jacobienne dépendant des angles θ.

Comme dans le cas précédent, il est nécessaire de compenser la gravité pour obtenir un contrôle sans erreur statique, ce qui donne l'expression 3.14 :

τmoteur = J(θ)t((Xd− L(θ)) + B(Vd− J(θ)w)) + g(θ) (3.14)

(52)

Une fois le calcul pour la compensation de gravitéeectué, il sut d'envoyer à chacun des contrôleurs le couple à appliquer par l'axe via le τbias comme pour la compensation de

gravité.

L'intérêt d'utiliser cette technique est que la compliance se fait de façon plus naturelle, car elle est uniforme dans l'espace. De plus, il n'y a pas besoin de réaliser la cinématique inverse pour atteindre une position dans l'espace. En eet, en l'absence de forces extérieures, la force créée par ce contrôle va mener le bras à la position requise sans même connaître la position que les axes doivent avoir.

Le cas d'utilisation classique est de mettre tous les éléments des vecteurs K et B à la même valeur. Le comportement est alors uniforme dans toutes les directions. Mais il est possible de mettre des valeurs diérentes, ce qui fera que le bras ne réagira pas de la même manière suivant les axes. Par exemple, si le coecient de K contrôlant l'axe Z est fort et

ceux pour X et Y sont faibles, alors le bras pourra être bougéfacilement uniquement sur

le plan XoY passant par le point Xd.

3.6.3 Contrôle en force

Une autre action intéressante à réaliser est d'appliquer une force pour par exemple pousser un objet ou même pour écrire. Il serait possible d'exercer une force à l'aide des contrôleurs précédents en donnant les bonnes consignes. Mais celles-ci sont compliquées à déterminer pour appliquer une force précise, surtout si l'objet est mobile. Pour simplier cette ac-tion, un autre type de contrôle a été mis en place. Le principe est proche du contrôleur d'impédance cartésien. Dans ce cas c'est l'écart entre la position actuelle et celle souhaitée produit une force. Ici, c'est directement la force souhaitée qui est la consigne. Il sut donc de faire comme dans le cas du contrôleur d'impédance cartésien et de transformer cette force Fden consigne à appliquer aux axes τmoteur à l'aide de la transposée de la Jacobienne

J(θ)t.

τmoteur = J(θ)tFd (3.15)

Il est aussi nécessaire de compenser la gravité car sinon la force appliquée par le robot sera celle demandée plus la contribution due au poids du robot. La formule du contrôle en force est donc :

Figure

Figure 1.2 Actionneur diérentiel élastique (ADE)
Figure 2.1 Risque de blessures à la tête en fonction de la valeur HIC [CPA, 2005]
Figure 3.2 Bras gauche du robot
Tableau 3.6 Masseset centresde gravité desélémentsutiliséslorsdestests (brasgauche)
+7

Références

Documents relatifs

In chapter 4, we have studied a class of dynamic decision problems of a general time-inconsistent type in the sense that the coe¢ cients in the state equation and the cost

La courbe C ci-dessous représente une fonction f définie et dérivable sur f ℝ. 2) Une des trois courbes ci-dessous est la représentation graphique de la fonction f. b- Donner

transfusion entre individus du même groupe et agglutination entre individus des groupes A et B. Dans quel cas parleraL'une des composantes de la carte d'identité biologique est

Dans la même figure, écrivez la série d'instructions pour tracer une droite ho- rizontale allant du cercle à la droite AE dans la figure précédente (avec les mo- des

Les grandeurs caractéristiques du terrain dont on veut retrouver la répartition entre les forages sont la vitesse des ondes mécaniques Vp (ondes de compression) ou Vs

Si les destinataires de la vente ne sont pas agriculteurs, il convient d’indiquer qu’on ne vend que pour usage amateur et s’engager à l’indiquer par la suite (lorsqu’on vend

Si cet exemple a pu nous inciter à essayer l’application de la même technique dans notre industrie, il ne nous a toutefois pas guidés dans le choix de celle

Nous montrerons ensuite que la réalité du contrôle mis en place par les managers bouscule les limites financières des groupes avec le développement de