Professional Documents
Culture Documents
FACULTE DE TECHNOLOGIE
DEPARTEMENT DE GENIE ELECTRIQUE ET D’ELECTRONIQUE
Intitulé :
Jury
‐ Mr Brahim CHERKI Président
‐ Mme Salima BORSALI Examinatrice
‐ Mr Abdelhak MOUSSAOUI Encadrant
2009 ‐ 2010
HandiAccess
Évaluation et simulation de l’accessibilité d’un lieu de
vie
B ILAL BOUALEM
02 décembre 2010
Remerciements
1
Dédicaces
2
Table des matières
1 Introduction 6
2 État de l’art 9
2.1 Le projet « Santos T M » . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Le projet « Handisim » . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Le MoVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 LAMIH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Modèles géométriques 27
4.1 Modèle géométrique direct . . . . . . . . . . . . . . . . . . . . . 27
4.2 Modèles géométriques inverses . . . . . . . . . . . . . . . . . . . 27
4.2.1 Méthode Aléatoire . . . . . . . . . . . . . . . . . . . . . 28
4.2.2 Méthodes basées sur la Jacobienne . . . . . . . . . . . . . 28
4.2.3 Méthode de la programmation linéaire séquentielle . . . . 29
4.2.4 Méthodes basées sur le gradient . . . . . . . . . . . . . . 29
4.2.5 Méthode Cyclic Coordinate Descent . . . . . . . . . . . 30
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 « HandiAccess » 42
5.1 L’outil de développement . . . . . . . . . . . . . . . . . . . . . . 42
5.1.1 Principe fondamental des MFC . . . . . . . . . . . . . . 43
5.2 La bibliothèque Roboop . . . . . . . . . . . . . . . . . . . . . . 43
5.2.1 La bibliothèque Newmat . . . . . . . . . . . . . . . . . . 44
5.2.2 La classe robot_basic . . . . . . . . . . . . . . . . . . . . 45
5.2.3 La classe Links . . . . . . . . . . . . . . . . . . . . . . . 45
5.2.4 La classe Robot . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Le moteur de rendu graphique OGRE 3D . . . . . . . . . . . . . 47
5.3.1 Gestion de la scène . . . . . . . . . . . . . . . . . . . . . 48
5.3.2 Gestion des ressources . . . . . . . . . . . . . . . . . . . 48
5.3.3 Rendu graphique . . . . . . . . . . . . . . . . . . . . . . 49
5.3.4 TinyXML . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.4 Modélisation 3D . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3
TABLE DES MATIÈRES 4
6 Conclusion et perspectives 54
Table des figures
2.1 Santos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Simulateur Santos pour Ford . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 La modélisation du corps humain en utilisant les marqueurs . . . . . . . . . . . 11
2.4 Handisim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Les composants d’Handisim . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6 A Gauche L’étude de l’ergonomie d’un véhicule A droite L’étude de l’ergo-
nomie de l’usine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.7 Principe de fonctionnement du MoVE . . . . . . . . . . . . . . . . . . . . . . 14
2.8 Projets du LAMIH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5
Chapitre 1
Introduction
La réalité virtuelle est un outil complémentaire aux outils classiques d’étude et de concep-
tion, elle permet d’immerger les développeurs dans un environnement imaginaire pour repro-
duire les phénomènes réels ou de simuler les aspects de la réalité, ainsi les développeurs ont la
possibilité d’anticiper les problèmes, et de réduire les coûts et les délais...
De nombreuses enquêtes ont été faites dans plusieurs pays (comme l’enquête réalisée par
Handicaps-Incapacités-Dépendance en France ) qui ont abouti au même résultat qui considère
l’accessibilité comme le facteur déterminant qui facilite l’intégration des personnes handicapées
ou à mobilité réduite dans la société. Cela a poussé de nombreux gouvernements à rendre de
l’accessibilité un objectif à atteindre par les différentes structures.
Mais que représente l’accessibilité ?
L’accessibilité a été définie en 2006 par les pouvoirs publics français comme :
« L’accessibilité permet l’autonomie et la participation des personnes ayant un handicap,
en réduisant, voire supprimant, les discordances entre les capacités, les besoins et les souhaits
d’une part, et les différentes composantes physiques, organisationnelles et culturelles de leur
environnement d’autre part. L’accessibilité requiert la mise en œuvre des éléments complémen-
taires, nécessaires à toute personne en incapacité permanente ou temporaire pour se déplacer et
accéder librement et en sécurité au cadre de vie ainsi qu’à tous les lieux, services, produits et ac-
tivités. La société, en s’inscrivant dans cette démarche d’accessibilité, fait progresser également
la qualité de vie de tous ses membres. »[WIKI]
Dans ce projet nous allons élaborer une application qui a comme objectif d’indiquer les
différents points accessibles d’un lieu de vie d’une personne à mobilité réduite.
Ce travail est organisé en cinq chapitres.
Dans le chapitre 2, nous présenterons quelques projets et programmes de développement
dans le domaine de l’étude de l’accessibilité.
À travers le chapitre 3, nous rappelons quelques notions sur la robotique que nous avons
utilisées pour la modélisation de la partie supérieure de l’être humain et à la compréhension des
méthodes de la géométrique inverse qui seront présentées dans le chapitre suivant.
Dans le chapitre 4, nous présentons quelques modèles géométriques utilisés dans le calcul
de la posture des robots.
Nous présentons au chapitre 5 quelques outils qui nous ont servis dans la conception du
simulateur d’accessibilité que nous avons développé.
Pour finir ce rapport, une conclusion sur les résultats obtenus et quelques perspectives envi-
sagées seront donnés.
6
Motivation
Ce qui nous a motivés à choisir ce projet est en premier la noble cause que présente ce projet
qui est d’aider des personnes à mobilité réduite à s’intégrer dans la société.
Généralement, on définit la motivation comme le lien entre le savoir-faire et l’envie d’ap-
prendre de nouvelles choses en relevant des challenges et en surmontant les difficultés.
La nature différente que présente ce projet nous donne des défis et des challenges à relever
de quoi alimenter notre motivation.
Pour une personne à mobilité réduite, la simple présence d’une ou plusieurs marches ou
d’une rampe raide rend l’accès difficile à certains lieux, les images ci-dessus montrent quelques
exemples de ces situations dans notre pays.
7
Objectif
8
Chapitre 2
État de l’art
« La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout
fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne
fonctionne... et personne ne sait pourquoi !» Albert EINSTEIN
Avec le progrès que connais les calculateurs et la simulation sur ordinateur, et l’utilisation de
plus en plus importante de cette dernière dans les industries de développement et d’évaluation
des prototypes, à titre d’exemple elle est utilisée pour les aménagements intérieurs des lieux de
vie comme les appartements, véhicules..., permettant de faciliter les tâches quotidiennes.
De nombreux laboratoires se sont intéressés à la simulation des mouvements de l’être hu-
main pour combler les besoins des industriels. Il existe plusieurs projets sur la simulation des
humains, dans cette partie nous citons quelques-uns.
En premier, nous commençons par décrire le projet Santos qui est considéré comme le leader
dans ce domaine. Ensuite, nous parlons du projet « Handisim » qui a été réalisé par des étudiants
de L’université de Laval Virtual pour simuler les déplacements d’une personne sur fauteuil
roulant dans une ville et reproduire les difficultés rencontrées par ces personnes.
Puis nous citons un exemple d’application d’évaluation de l’accessibilité d’un environne-
ment nommé MoVE 1 , elle est utilisée par le groupe PSA (constructeur d’automobile) afin de
simuler l’accessibilité dans les véhicules et l’ergonomie des usines.
Finalement, nous décrivons des projets menés au LAMIH 2 qui ont pour but d’étudier l’er-
gonomie des objets utilisés dans la vie quotidienne.
9
CHAPITRE 2. ÉTAT DE L’ART 10
Depuis 2010, Ford utilise Santos pour la simulation et l’évaluation de l’accessibilité dans
ses usines et ses ateliers.
Il est très important de noter que Santos est le seul outil de simulation biomécanique qui
prend en compte la cause et l’effet du mouvement.
Prédiction de la posture
Le VSR 3 est le laboratoire travaillant sur le projet SantosT M et développant des techniques
afin d’offrir une simulation réaliste de l’être humain.
En utilisant des marqueurs, les chercheurs du VSR peuvent modéliser les mouvements
de l’être humain. La figure (2.3) montre le fonctionnement de ces marqueurs, également elle
illustre le modèle du corps humain entier.[FARRELL2005]
3. VSR : Virtual Soldier Research
CHAPITRE 2. ÉTAT DE L’ART 11
En se basant sur des méthodes d’optimisation, les chercheurs du VSR élaborent des tech-
niques pour calculer la posture du modèle qui permet d’atteindre un point désiré. La manière de
prédire la posture change en fonction de la tâche à exécuter ce qui exige l’utilisation de plusieurs
méthodes telles que la méthode Cyclic Coordinate Descent ou la méthode pseudo inverse, etc
[FARRELL2005].
Pour une modélisation réelle de l’être humain, de nombreux paramètres sont pris en consi-
dération tels que le champ de vision, la force des muscles, la fatigue, etc [SANTOS].
CHAPITRE 2. ÉTAT DE L’ART 12
Il est constitué d’une unité de calcul qui gère le rendu 3D en fonction des entrées données
par l’utilisateur et un fauteuil d’essai qui constitue l’outil de commande, des capteurs installés
sur les roues arrières du fauteuil pour transmettre la vitesse de chaque roue. D’autres capteurs
sont aussi placés sur la tête pour commander la direction de déplacement. Pour un meilleur
réalisme de visualisation, des lunettes stéréos sont aussi utilisées.
La figure (2.5) résume les composants de ce simulateur.
CHAPITRE 2. ÉTAT DE L’ART 13
2.3 Le MoVE
Le MoVE est un moteur de calcul qui offre un environnement virtuel modulable qui varie
en fonction des besoins, il est appelé CAVE 4 .
Plusieurs entreprises, comme la société PSA responsable sur la production de véhicules
automobiles sous le nom de Peugeot et Citroën, utilisent ce moteur dans ses laboratoires de re-
cherche et développement afin de simuler et améliorer l’ergonomie de leurs véhicules.[PSASIM]
Grâce à ses différentes configurations, les développeurs commutent d’une configuration à
une autre afin de s’assurer que le produit est accessible à tous les individus. Non seulement le
produit mais le processus de production est soumis aussi à la simulation pour trouver l’aména-
gement intérieur de l’usine qui offre la meilleur productivité.
4. CAVE : Cave Automatic Virtual Environment
CHAPITRE 2. ÉTAT DE L’ART 14
F IGURE 2.6 – A Gauche L’étude de l’ergonomie d’un véhicule A droite L’étude de l’ergono-
mie de l’usine
Principe de fonctionnement
Il se base sur une idée simple, le calculateur se charge de diviser l’image en 3 parties, chaque
partie est projetée sur un miroir grâce à un projecteur, par réflexion, l’image s’affiche sur un mur
situé en face du miroir, l’individu est situé derrière le mur.
La figure2.7 résume le dispositif.
2.4 LAMIH
Situé à Valenciennes au nord de la France, le LAMIH contient plusieurs plateformes où
chacune d’elles a son objectif. L’une de ces plateformes est nommée « Analyse gestuelle 3D »,
elle est destinée à mener des études sur l’ergonomie des objets tel qu’un sac à dos où une voiture
pour faciliter la vie quotidienne de l’être humain.[ANALYS3D]
En comptant sur un financement de la région Nord-Pas de Calais et le FEDER, ce laboratoire
alimente régulièrement des projets qui ont pour objectif l’étude de l’ergonomie des véhicules et
leur accessibilité par rapport aux personnes âgées ou du portage pendant la marche...
La figure (2.8) expose la nature des projets réalisés dans ce laboratoire.
CHAPITRE 2. ÉTAT DE L’ART 15
Conclusion
Nous avons vu dans ce chapitre qu’il existe plusieurs applications qui sont développées dans
des domaines différents et pour le but de faciliter l’accès.
Chapitre 3
« On fait une science avec des faits, comme on fait une maison avec des pierres, mais une
accumulation de faits ne fait pas plus une science qu’un tas de pierres n’est une maison.»
Henri POINCARÉ
L’être humain a été, et depuis toujours, un système biologique complexe qui a convoité les
chercheurs à se mesurer à lui et à relever les défis technologiques et scientifiques qui conduisent
à copier ses habitudes (marcher, penser, sentir...).
Dans ce contexte, la robotique humanoïde est la plus proche du point de vue de la théorie et
la technologie à l’être humain, elle a été depuis longtemps un sujet qui nourrissait les textes de
science-fiction.
Dans ce chapitre, nous allons commencer par présenter quelques notions de base sur la
robotique humanoïde et la modélisation de l’être humain en présentant deux méthodes de mo-
délisation des robots. La première méthode est celle des équations de Lagrange et la deuxième
la notation Denavit-Hartenberg.
Ensuite, nous présentons le modèle de la partie supérieure de l’être humain.
16
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 17
2D
3D
TABLE 3.1 – Symboles pour représenter les articulations des robots
Il existe deux méthodes pour la modélisation de robots : la première utilise les équations
de Lagrange, elle est utilisée en général pour le contrôle de sa dynamique. La deuxième est
plus adaptée à la géométrique inverse qui utilise les angles entre les repères associés à chaque
articulation.
3.1.1.1 Exemple
Soit le robot à un degré de liberté illustré sur la figure (3.2).[KELLY2005]
Il est constitué d’une liaison solide formée par deux parties de longueur l1 et l2 et de masses
m1 et m2 qui sont, pour simplifier le problème, concentrées dans leurs centres de gravité respec-
tives, et localisées dans leurs extrémités. l’angle ϕ est considéré constant.
Le robot ne peut tourner qu’autour de l’axe Z0 . Le mouvement de rotation est représenté par
l’angle q1 dans la figure (3.2).
Puisque le robot a un degré de liberté, alors q est un scalaire q = q1 .
La fonction de l’énergie cinétique k(q, q̇) du robot est donnée par l’équation suivante :
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 19
1
k(q, q̇) = m2 l22 cos2 (ϕ) q̇2
2
et la fonction de l’énergie potentielle correspondante
∂ L(q, q̇)
= m2 l22 cos2 (ϕ) q̇
∂ q̇
d ∂ L(q, q̇)
= m2 l22 cos2 (ϕ) q̈
dt ∂ q̇
∂ L(q, q̇)
=0
∂q
Donc l’équation de Lagrange correspondante est
Après avoir associé à chaque articulation un repère local, il est temps d’extraire les paramètres
du modèle, pour cela il existe plusieurs manières pour les avoir. La plus utilisée et la plus
adéquate aux bras manipulateurs est la représentation de Denavit et Hartenberg (DH). Depuis
l’apparition des méthodes informatiques, cette méthode reste l’outil le plus utilisé dans la mo-
délisation des robots, son atout majeur se résume dans le fait qu’il fournit la matrice de passage
d’une articulation à une autre avec seulement quatre paramètres qui sont extraits de la manière
suivante :[ALOUANI2009]
1. le premier paramètre est appelé θi , il représente l’angle de l’articulation trouvé en me-
surant l’angle entre Xi−1 et Xi . (dans le cas des articulations prismatiques, ce paramètre
reste constant).
2. Le deuxième paramètre est di , il représente la distance qui sépare l’origine du repère i − 1
et l’axe Xi sur le long de l’axe Zi−1 . (dans le cas d’une articulation rotationnelle, di est
constant).
3. Le troisième paramètre est ai , il représente la distance entre l’origine de l’axe Xi et l’al-
longement de l’axe Zi−1 .
4. Finalement, αi représente l’angle de compensation qui sépare Zi−1 et Zi sur l’axe Xi .
La figure (3.3) donne un schéma explicatif des significations de chaque paramètre.
Comme nous l’avons mentionné précédemment, ces quatre paramètres sont suffisants pour
le calcul de la matrice de transformation qui relie les deux articulations i − 1 et i. Cette matrice
est calculée comme suit :
cos θi −cos αi sin θi sin αi sin θi ai cos θi
(i−1)
sin θi cos αi sin θi −sin αi cos θi ai sin θi
Ti =
0
sin αi cos αi di
0 0 0 1
Nous constatons qu’elle est composée de deux parties distinctes, la première est une matrice
3 × 3 qui représente l’orientation du repère i par rapport au repère i − 1 :
cos θi −cos αi sin θi sin αi sin θi
R = sin θi cos αi sin θi −sin αi cos θi
0 sin αi cos αi
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 21
Depuis plusieurs années, de nombreuses recherches ont été menées dans le but de modéliser
l’être humain. De nos jours il existe plusieurs modèles, chacun d’eux présente une avancée dans
la modélisation de l’homme. Dans ce qui suit, un modèle de la partie supérieure de l’être humain
(Colonne vertébrale, épaule, bras) sera proposé.
Bien que l’approche d’Abdel-Malek soit simple à implémenter, elle ne donne pas des ani-
mations précises à l’encontre de l’approche de Maurel simplifiée qui est plus précise, mais
difficile à implémenter. Dans le cas de notre projet, nous utiliserons l’approche de Maurel
simplifiée.[FARRELL2005]
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 23
3.1.3.3 Modèle de la partie supérieure de l’être humain (colonne vertébrale, épaule, bras)
Après avoir modélisé chaque partie indépendamment, nous allons dans cette section les
assembler afin d’obtenir un modèle global de la partie supérieure de l’être humain.
La figure (3.7) donne l’aspect global du modèle.
C’est au niveau des contraintes que nous pouvons définir l’handicap d’une personne. Dans le
tableau (3.3), nous présentons les contraintes que nous avons imposées sur chaque articulation.
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 24
Min Max
π π
q1 −
6 6
π π
q2 −
12 12
π π
q3 −
6 6
π π
q4 −
12 12
π π
q5 −
12 18
π π
q6 −
12 12
π π
q7 −
12 12
π π
q8 −
12 18
π π
q9 −
12 12
π π
q10 −
12 12
π π
q11 −
12 18
π π
q12 −
12 12
π π
q13 −
6 6
π π
q14 −
6 6
π π
q15 −
2 2
2π
q16 0
3
π π
q17 −
6 6
2π
q18 0
3
π π
q19 −
6 6
π π
q20 −
2 2
π π
q21 −
9 9
Le tableau (3.5) contient tous les paramètres DH du modèle présenté précédemment pour
une posture que nous avons choisi arbitrairement. [ALOUANI2009]
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 25
θi di αi ai
π π
1 0 0
2 2
π π
2 0 0
2 2
π π
3 L1 0
2 2
π π
4 0 0
2 2
π π
5 0 0
2 2
π π
6 L2 0
2 2
π π
7 0 0
2 2
π π
8 0 0
2 2
π π
9 L3 0
2 2
π π
10 0 0
2 2
π π
11 0 0
2 2
π π
12 − L4 L5
2 2
π
13 0 0 0
2
π
14 0 0 − L6
2
π
15 0 0 0
2
π π
16 0 0
2 2
π
17 0 L7 0
2
π
18 0 0 0
2
π π
19 L8 0
2 2
π π
20 0 0
2 2
21 0 0 0 0
TABLE 3.5 – Les paramètres Denavit-Hartenberg
Où l1 = L2 = L3 = 10 ; L4 = 5 ; L5 = L6 = 10 ; L7 = L8 = 30 ;
CHAPITRE 3. NOTIONS DE BASE SUR LES CHAÎNES ARTICULÉES 26
3.2 Conclusion
Dans ce chapitre, nous avons présenté deux méthodes différentes utilisées pour la modéli-
sation des robots, chacune d’elles a ses propres spécificités.
Le modèle que nous utilisons dans notre travail contient 8 articulations à 21 degrés de liberté.
Il est clair que ce modèle est difficile à manipuler et encore plus à implémenter.
Dans ce qui suit, nous allons proposer des techniques et des modèles géométriques utilisées
pour le calcul de la posture d’un humain.
Chapitre 4
Modèles géométriques
« La plus grande gloire n’est pas de ne jamais tomber, mais de se relever à chaque chute.»
CONFUCIUS
Il existe deux types des modèles géométriques, la géométrique directe utilisée pour déter-
miner la position de l’objet final par rapport au repère de la base à partir de l’angle de chacune
des articulations du robot ou de la posture.
La géométrique inverse fournit la posture du robot à partir des coordonnées de l’objet final.
Dans ce qui suit, nous allons exposer les différentes techniques et méthodes utilisées dans
chacun de ces modèles.
X = f (q)
Où X est la matrice homogène (4 × 4). et q = [q1 , ..., qn ]T qui représente la posture actuelle
du robot.
La matrice homogène représente la matrice de passage d’une articulation i − 1 à l’articula-
tion i, le passage de l’articulation 1 à n peut être exprimé par :
(1)
Tn =(1) T2 × .... ×(n−1) Tn
27
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 28
q = f −1 (X) (4.1)
Où f −1 (X) représente un système de n équations non-linéaires avec n inconnus.
Dans ce qui suit nous allons présenter quelques approches utilisées pour résoudre l’équation
(ou le système) (4.1).
∆q = αJ T ∆x
Où ∆x représente le vecteur de distance entre la position actuelle de l’objet final et la position
désirée. α est un scalaire qui représente généralement le gradient d’une fonction coût.
Dans le cas où J n’est pas réelle, la J T doit être remplacée par l’adjointe de J.
Dans la géométrique inverse J + fournit à chaque itération, une correction de l’articulation
∆q, cette correction est exprimée comme suit :
∆q = J + ∆x + PN(J) ∆α
Où ∆x est le vecteur qui exprime la distance entre l’objet final et le point désiré, PN(J) représente
l’opérateur de projection sur le noyau de J qu’on notera N(J), il est obtenu par :
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 29
PN(J) = I − J + J
∆α est le gradient de la fonction coût g(q) exprimé dans l’espace articulaire.
Malgré sa simplicité, la méthode de la pseudo-inverse est très lente à cause de l’étape sup-
plémentaire de calcul la matrice J + .
Il existe d’autres méthodes basées sur le gradient, nous citons à titre d’exemple la MMFD 4 ,
mais pour toutes ces méthodes, si le point initial est très loin du point désiré alors il est possible
que la méthode tende vers un minimum local.[MI]
Dans cette section, nous expliquons les différentes étapes de la méthode Cyclic Coordinate
Descent (CCD).
Les axes des articulations sont alignés avec les axes z des systèmes de coordonnés ; si l’ar-
ticulation i est une articulation rotationnelle, alors l’angle de rotation θi est la variable de l’ar-
ticulation ; par contre si l’articulation i est prismatique, alors la variable de l’articulation est le
déplacement de l’articulation si .
Les coordonnées cartésiennes de l’objet final sont définit par le vecteur position Ph (q) et la
matrice d’orientation [Rh (q)]. Où
– Ph (q) : est la coordonnée du point d’origine du système de coordonnés (xh yh zh ).
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 32
– [Rh (q)] = [h1 (q)|h2 (q)|h3 (q)], où h1 (q), h2 (q) et h3 (q) sont les vecteurs unités le long des
axes xh , yh et zh comme le montre la figure (4.4).
– q = [q1 , q2 , . . . , q3 ]t est le vecteur des variables d’articulations.
Le problème de géométrique inverse peut être formulé comme suit :
Si q n’est pas une solution du problème P1, alors la position calculée ne correspond pas
à la position désirée, comme le montre la figure (4.4). Cependant, si nous pouvons trouver un
d d
vecteur de correction q tel que q∗ = q + q représente une solution au problème P1, alors le
point oh coïncidera avec od et les deux systèmes de coordonnées doivent être identiques.
Ceci implique que :
d
|| p(q∗ )|| = ||Pd − Ph (q∗ )|| = 0 et d j · h j (q∗ ) = 1 où ||.|| symbolise la norme Euclidienne
du vecteur.et ( · ) exprime le produit scalaire entre vecteurs. Ainsi, les erreurs entre les positions
actuelles et désirées de l’objet final peuvent être décrites par les fonctions suivantes :
– Erreur de position :
D d d
P(q) = P(q) · P(q) (4.2)
– Erreur d’orientation :
3
DO(q) = ∑ (d j · h j (q) − 1)2 (4.3)
j=1
– Erreur Totale :
E(q) = DP(q) + DO(q) (4.4)
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 33
Problème P2 : Trouver q∗ tel que E(q∗ ) = min { E(q) | qli ≤ qi ≤ qui , i = 1 à n} et E(q∗ ) ≤ e
e
où → 0 est l’erreur tolérée.
Notons que (4.3) décrit avec le même poids l’erreur d’orientation de chacune des trois di-
rections ; cependant, il peut ne pas être nécessaire dans certaines applications pratiques. Afin de
traiter de tel situations, (4.3) peut être modifié :
3
DO(q) = ∑ (sv j (d j .h j (q) − 1))2
j=1
Où : (
1 Si la jème direction est comprise dans le calcul de l 0 erreur
sv j = 0 Sinon
Cas d’une articulation rotationnelle : Dans ce cas, la variable de l’articulation qi est l’angle
j
de rotation i .
Avec l’interdiction de changer la configuration des autres articulations(qk , k = 1. . . i − 1, i +
j
1, . . . n). Si nous pivotons autour de l’axe zi avec un angle i , alors le vecteur pivoté peut être
écrit
0
Pih (φ ) = [R(zi , φ )]Pih (4.5)
Où [R(zi , φ )] est une matrice de rotation spatiale 3 × 3, par conséquent l’erreur de position
devient une fonction à une seule variable qui dépend de φ .
∆p(φ ) = Pid · Pid + Pih · ([R(zi, φ )]t [R(zi, φ )]Pih ) − 2Pid · ([R(zi, φ )]Pih )
= Pid · Pid + Pih · Pih − 2 Pid · ([R(zi , φ )]Pih )
Où [.]t indique la transposée de la matrice. Puis-que Pid · Pid et Pih · Pih sont des constantes
D
positives, minimiser p(φ ) revient à minimiser :
0
h j (φ ) = [R(zi , φ )]h j Pour j = 1 à 3 (4.8)
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 35
Qui est aussi une fonction de φ seulement. Puisque h0j et d j sont des vecteurs unitaires ; ainsi
d j · h0j (φ ) = cosψ j (φ )
Où ψ j (φ ) est l’angle entre d j et h j comme le montre la figure (4.6). Par conséquent, la
relation (4.9) peut s’écrire :
3
DO(φ ) = ∑ (cos ψ j (φ ) − 1)2 (4.10)
j=1
Le sens physique de la relation (4.10) peut être interprété à l’aide de la figure (4.6). Il est
clair de cette figure que l’erreur d’orientation entre les deux systèmes de coordonnées doit
être minimisée quand ψ j (φ ) tend vers zéro pour tous les axes, ou quand le cosinus des trois
directions (cosψ j ) simultanément tend vers 1 ; ceci peut être obtenue par la minimisation de la
relation (4.10).
Sinon, puisque cosψ j (φ ) est bornée entre ±1, l’erreur d’orientation peut aussi être réduite
en maximisant :
3 3
g2 = ∑ cos ψ j (φ ) = ∑ d j · h0j (φ ) (4.11)
j=1 j=1
Il est très important de souligner que la minimisation de (4.10) n’est pas exactement équiva-
lente à la maximisation de (4.11), ce qui implique que la solution optimale de φ dans les deux
fonctions est différente.
Cependant, puisque φ est itérativement ajustée (φ est ajustée à chaque itération) de sorte
que cosψ j (φ ) converge à 1 pour tout j, les solutions sont asymptotiquement équivalentes.
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 36
Afin de simplifier les calculs, nous préférons utiliser pour formuler l’erreur d’orientation la
maximisation de (4.11) qui est moins gourmande en temps de calcul que la minimisation de
(4.10), sachant que la méthode CCD est utilisée généralement pour trouver efficacement une
bonne valeur initiale pour d’autres méthodes d’optimisation.
Nous pouvons constater que (4.11) donne des poids égaux à l’erreur d’orientation pour
chacune des trois directions du système de coordonnées associé à l’objet final, et, si désiré, il
est facile de modifier (4.11) comme :
3
g2 = ∑ σ j d j · h0j (φ )
j=1
Où (
1 Si la jème direction est comprise dans le calcul de l 0 erreur
sv j = 0 Sinon
En combinant (4.7) et (4.11) la fonction objectif, dans ce cas, peut être définie comme :
g(φ ) = w p g1 (φ ) + wo g2 (φ ) (4.12)
Où
w p et wo sont des nombres réels positifs choisis arbitrairement afin de donner des poids à la
correction de la position ou de l’orientation.
φiu − φic , φil et φiu sont respectivement les bornes inférieure et supérieure de l’articulation θi , et
θic est la valeur actuelle de θi .
La solution analytique du problème P3 peut être facilement dérivée. Selon la forme vecto-
rielle de l’équation des Rodrigues, on peut montrer que :
[R(zi , φ )]Pih = zi (Pih · zi )(1 − cos φ ) + Pih cos φ + (zi × Pih ) sin φ (4.13)
Où × exprime le produit vectoriel.
En remplaçant (4.13) dans (4.7), g1 (φ ) devient :
g1 (φ ) = (Pid · zi )((Pih · zi )(1 − cos φ ) + (Pid · Pih ) cos φ + Pid · (zi × Pih ) sin φ
Pareil pour (4.11)
3
g2 (φ ) = ∑ {(d j · zi)(h j · zi)(1 − cos φ ) + (d j · h j ) cos φ + d j · (zi × h j ) sin φ }
j=1
Dans le cas où il n’y a pas de contraintes imposées sur φ , alors g(φ ) est maximisée quand :
dg(φ )
= (k1 − k2 ) sin φ + k3 cos φ = 0
dφ
Et
d 2 g(φ )
= (k1 − k2 ) cos φ − k3 sin φ < 0
dφ 2
A partir de ces deux équations, il est facile de déduire une unique valeur de φ qu’on notera
φ . Cependant, la solution réelle du problème P3 doit satisfaire les contraintes imposées par
e
chaque articulation, c’est-à-dire
Si φ l ≤ φe ≤ φ u alors φ ∗ = φe.
(
Si g(φ u ) > g(φ l ) φ ∗ = φ u
Sinon
Si g(φ l ) > g(φ u ) φ ∗ = φ l
Cas d’une articulation prismatique : Dans ce cas, nous ne pouvons réduire que l’erreur
de position, car l’orientation de l’objet final ne dépend pas de la variable si . Notant par λ le
changement de si (mesuré par sic la valeur actuelle de si ), l’erreur de position devient
Où δ P = Pid − Pih , comme nous l’avons déjà montré sur la figure (4.5), et le problème
devient
Problème P4 Trouver λ ∗ , tel que ∆P(λ ∗ ) = min{∆P(λ )|λ l ≤ λ ≤ λ û} où λ l = sic − sui ,
λ u = sui − sic , et sui et sli sont respectivement les limites supérieures et inférieures. Alors
d∆P(λ )
= 2(λ − δ P.zi )
dλ
Et
d 2 ∆P(λ )
=2>0
dλ 2
Ainsi, dans le cas où il n’y a pas de contraintes imposées sur λ alors, il existe une seul
λ , Alors ∆P(λ ) est minimiser quand λ = e
solution notée e λ = δ P . zi .
Comme dans le cas précédant, la solution réelle du problème P4 devrait satisfaire aussi les
contraintes imposées. C’est-à-dire
λ ≤ λ u alors λ ∗ = e
Si λ l ≤ e λ.
(
Si ∆P(λ u ) > ∆P(λ l ) λ ∗ = λ l
Sinon
Si ∆P(λ l ) > ∆P(λ u ) λ ∗ = λ u
Par conséquent, pour chaque étape de la méthode CCD, dans chacun des cas, le problème
original à n dimensions est réduit à n problèmes à une dimension. En plus, la solution analytique
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 38
de ce dernier peut être facilement calculée. En outre, à chaque étape, la valeur de la fonction
objectif est réduite, ce qui garantit la convergence globale.
Il est aussi nécessaire à souligner que cette méthode n’est pas sensible aux configurations
singulières des bras manipulateurs (une configuration est dite singulière lorsqu’elle engendre
une perte d’un ou de plusieurs degrés de liberté). C’est pourquoi l’estimation initiale du vecteur
des solutions est quelconque.
Cependant, à cause de la nature heuristique de cette méthode, la vitesse de convergence est
grande en fonction de la structure du robot, en d’autres termes, la vitesse de convergence ralentit
si la structure du robot est complexe.
L’expérience montre qu’en général, quand l’estimation initiale est loin de la solution, en
appliquant quelques cycles seulement cette méthode nous ramène au voisinage de la solution.
Par contre, elle devient très lente ensuite.
Quand le vecteur estimé est proche de la solution réelle, il est préférable de commuter sur
une autre méthode. Par exemple la méthode BFGS 6 est prévue pour donner une vitesse de
convergence linéaire ou quadratique.
Pour cette raison, c’est la méthode CCD qui convient pour trouver de bonnes valeurs initiales
pour la méthode BFGS.
Le critère de commutation entre les deux méthodes peut-être comme suit :
Après chaque cycle complet de la méthode CCD, nous comparons la valeur actuelle de la
fonction objectif Ec avec la valeur trouver dans le cycle précédent E p . Si E p < β et Ec > E p2 (où
β ≤ 1 est une constante positive très petite qui exprime la proximité du vecteur solution), alors
le vecteur solution est proche de la solution réelle et la vitesse de convergence est lente ; donc il
faut commuter vers la méthode BFGS.
PhaseI
Étape 2:
– Pour: i = n à 1
Pih = Pn+1 − Pi
∆P(q) = δ P(q) · δ P(q)
∆O(q) = ∑3j=1 (d j · h j (q) − 1)2
Ec = E(q) = δ p(q) + δ O(q)
– Si Ec ≤ ε alors Stop
– Sinon E p < β et Ec > E p2 alors Commuter vers BFGS
– Sinon E p = Ec
Étape 3:
– Pour: i=n à 1
– Si l’articulation est rotationnelle
dg(φ )
= (k1 − k2 ) sin φ + k3 cos φ = 0
dφ
– Calculer φ ∗ telle que : Et
2
d g(φ )
= (k1 − k2 ) cos φ − k3 sin φ < 0
dφ 2
– qi = qi + φ ∗
– Pih = P0ih (φ ∗ )
– h j ( j = 1 à 3)
– Si l’articulation est prismatique
d∆P(λ )
– Calculer λ ∗ telle que : = 2(λ − δ P.zi ).
dλ
– qi = qi + λ ∗
– Pih = Pih + λ ∗ zi
– Retour à Étape 2
PhaseII
Étape 4:
Début de la méthode BFGS
CHAPITRE 4. MODÈLES GÉOMÉTRIQUES 40
Avantages :
– D’après les tests, l’algorithme décrit précédemment garantit la robustesse (la solution est
indépendante du vecteur de départ) et une convergence rapide vers un minimum global.
– Elle est très simple à implémenter.
– Peut-être combiner à d’autres méthodes par exemple la BFGS.
Inconvénients :
– La dynamique de cette méthode ne reflète pas les mouvements réels.
4.3 Conclusion
Dans ce chapitre, nous avons exposé des méthodes utilisées dans la géométrique directe et
inverse où chacune d’elle présente des avantages et des inconvénients.
En se basant sur des études déjà faites [ALOUANI2009], nous avons choisi d’utiliser la
méthode CCD qui offre en plus de la rapidité, la robustesse et la précision, l’atout majeur de
fournir le minimum global pour n’importe quel point de départ.
Dans le chapitre suivant, nous allons présenter les outils que nous avons utilisé dans l’im-
plémentation de l’application développée ”HandiAccess”.
Chapitre 5
« HandiAccess »
« Nous devons apprendre à vivre ensemble comme des frères, sinon nous allons mourir tous
ensemble comme des idiots.» Martin Luther King
Dans ce chapitre, nous allons présenter les outils qui nous ont servi dans la réalisation de ce
projet et des techniques que nous avons utilisés pour assembler les différentes partie du projet
et garantir le bon fonctionnement de l’application en général.
Nous commençons par décrire les outils de développement que nous avons utilisées pour
l’implémentation de l’application « HandiAccess”, puis nous décrivons la bibliothèque ”Roboop”
qui nous a facilité l’implémentation des algorithmes géométrique directe et inverse.
Ensuite, nous donnons une brève présentation du logiciel « 3D Studio MAX » que nous avons
utilisé pour la modélisation 3D de l’environnement virtuel ainsi que l’avatar 3D.
Pour terminer, nous présentons l’aspect final de l’application et nous décrivons son archi-
tecture.
42
CHAPITRE 5. « HANDIACCESS » 43
5.1.1.1 Le document
Il contient toutes les diverses données manipulées et traitées par l’application. Dans un pro-
jet, le document est représenté par une classe « CDocument » qui sert au stockage des données
de l’application.
Il est très important de souligner que le programmeur peut choisir entre deux types d’ap-
plications MFC. Les SDI 2 qui affichent un seul document à la fois, et les MDI 3 qui offrent la
possibilité d’afficher plusieurs documents dans une même fenêtre principale. [MFC2001]
5.1.1.2 La vue
Une vue est toujours associée à un document, elle représente une manière d’afficher les
données du document à l’utilisateur. Il est très important de souligner qu’il est possible d’avoir
plusieurs vues pour le même document.[MFC2001]
La figure (5.1) décrit les différentes partie d’une MFC
optimisé, ses performances qu’elle offre (temps de calcul,...) et pour la disponibilité de la docu-
mentation complète sur internet qui explique toutes les fonctionnalités.
5.2.1.1 Real
C’est l’équivalent du ”double” dans les types classiques.
5.2.1.2 ColumnVector
ColumnVector() ou ColumnVector(n) est une fonction surchargée qui permet de déclarer ou
de créer un vecteur colonne à n éléments.
Cette fonction nous a été très utile dans la création des vecteurs de position.
5.2.1.3 Matrix
Matrix ou Matrix(n,m) une fonction surchargée qui permet la déclaration ou la création
d’une matrice n × m. Dans cette fonction il est possible d’apercevoir un vecteur colonne comme
une matrice (m,1).
Elle nous a été utile dans la déclaration et la création des matrices de transformation.
5.2.1.6 L’operator *
Cette opérateur a été surchargé pour permettre la multiplication matricielle, par exemple
il est possible de multiplier une matrice ”A” par une matrice ”B” et affecter le résultat à une
matrice ”C” en écrivant ”C=A*B”.
5.2.1.7 L’operator +
En surchargeant l’opérateur + il est possible d’effectuer des opérations d’addition sur des
matrices.
CHAPITRE 5. « HANDIACCESS » 45
5.2.1.8 L’operator -
Comme les précédents opérateurs, cet opérateur a été surchargée pour permettre la soustrac-
tion entre deux matrices.
Ce package contient encore plus de fonctions que nous n’avons pas utilisées, mais qui sont
très utiles dans le calcul mathématique, nous citons à titre d’exemple ”eigenvalues()” qui calcule
les valeurs propres d’une matrice.
Dans ce package, nous avons introduit deux nouvelles méthodes où nous avons implémenté
l’algorithme de la méthode CCD, nous allons décrire le rôle de chacune des méthodes :
CHAPITRE 5. « HANDIACCESS » 47
Remarque : Il existe deux autres packages le premier « mRobot » est similaire à « robot »,
mais il utilise la notation DH modifiée ce qui améliore le calcul des paramètres dynamiques, le
deuxième « mRobot_min_para » utilise le modèle du robot avec la notation DH modifiée et le
minimum de paramètres d’inertie.
L’objet ”Root” représente le point d’entrer du système OGRE 3D, il est le premier à dé-
clarer et dernier à détruire. C’est à ce niveau que le programmeur peut configurer le système
(résolution, les options plein écran...), de plus, il est possible de créer les objets qui interagissent
avec les gestionnaires de scènes, les systèmes de rendu, les fenêtres de rendu, chargement des
plug-ins... ”Root” est le point de départ pour presque tous les objets.[OGRE]
Voici le reste des objets des composantes de OGRE 3D :
5.3.4 TinyXML
TinyXML permet de gérer Les fichiers XML 8 (lecture, écriture...).[WIKI]
OGRE 3D utilise TinyXML pour charger les modèles 3D et leurs paramètres du document
XML.
5.4 Modélisation 3D
Dans cette partie nous avons utilisé « 3D Studio MAX » pour la modélisation de notre per-
sonnage qui est une référence dans le domaine de la modélisation 3D.
Notre avatar 3D se compose de :
Squelette : qui n’est d’autre que les articulations et les liens de notre modèle humain.
Revêtement : il représente l’aspect visuel du personnage ou de l’objet 3D en générale, il hérite
tous les mouvements imposés par le squelette du personnage, et se déforme en fonction
de ses mouvements grâce à sa structure en maillage 3D où chaque maille représente un
polygone fermé délimité par des arêtes qui définit une facette de l’objet 3D.
La figure (5.3) décrit cette structure.
Afin de réaliser cette application nous avons élaboré une structure particulière, où la vue
de la MFC est utilisée afin d’afficher le rendu fourni par OGRE 3D (en manipulant les fonc-
tionnalités de DirectX ou OpenGL) qui, en utilisant TinyXML, peut charger les données de la
structure articulée décrite dans le document XML.
En deuxième partie, « Roboop » utilise « boost » pour charger les données concernant le
robot (les paramètres DH, types d’articulations...) présentent dans le fichier de configuration
« .conf ». Afin d’exécuter un calcul mathématique, Roboop s’appuie sur la bibliothèque « new-
mat » décrite précédemment.
Grâce à la méthode CCD que nous avons implémentée, il est possible de calculer la posture
qui permet d’atteindre un point désiré.
La figure (5.5) décrit cette structure.
CHAPITRE 5. « HANDIACCESS » 51
La figure (5.6) illustre l’architecture décrite dans le fichier XML sachant que la main gauche
ne bouge pas.
CHAPITRE 5. « HANDIACCESS » 52
5.6 Conclusion
Dans ce chapitre, nous avons présenté en premier lieu les outils informatiques que nous
avons utilisés pour la réalisation du projet, en allant du langage utilisé C++, en passant par la
bibliothèque Roboop et en terminant par le moteur graphique OGRE 3D.
Au final, nous avons présenté l’aspect final de l’application et nous avons montré le résultat
d’assemblage de toutes les parties.
Nous constatons que l’application donne l’aspect final de la posture permettant d’atteindre
un point donné.
Chapitre 6
Conclusion et perspectives
54
Annexe
55
CHAPITRE 6. CONCLUSION ET PERSPECTIVES 56
</bone>
<bone id="10" name="Bras_G">
<position x="8.28595" y="0" z="3.18323e-012" />
<rotation angle="0">
<axis x="1.96069e-010" y="1.04505e-010" z="-1" />
</rotation>
</bone>
<bone id="11" name="A_Bras_G">
<position x="29.0823" y="1.52588e-005" z="1.09139e-011" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="12" name="Main_G">
<position x="26.0877" y="0" z="1.00044e-011" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="13" name="Final_G">
<position x="14.6613" y="0" z="5.91172e-012" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="14" name="Cou">
<position x="15" y="-9.33374e-006" z="0" />
<rotation angle="0">
<axis x="-0.166533" y="-5.90952e-008" z="0.986036" />
</rotation>
</bone>
<bone id="15" name="Tete">
<position x="7.69516" y="1.72644e-007" z="5.57604e-007" />
<rotation angle="0">
<axis x="0.000348458" y="1.32926e-009" z="1" />
</rotation>
</bone>
<bone id="16" name="Final_T">
<position x="19.9864" y="-5.3551e-009" z="4.67824e-007" />
<rotation angle="0">
<axis x="0.120386" y="-0.963087" z="-0.240772" />
</rotation>
</bone>
</bones>
<bonehierarchy>
<boneparent bone="Tronc_01" parent="Racine" /> mettre Tronc_01 hérite de Racine.
<boneparent bone="Tronc_02" parent="Tronc_01" />mettre Tronc_02 hérite de Tronc_01.
<boneparent bone="Tronc_03" parent="Tronc_02" />
<boneparent bone="Clav_D" parent="Tronc_03" />
<boneparent bone="Bras_D" parent="Clav_D" />
<boneparent bone="A_Bras_D" parent="Bras_D" />
CHAPITRE 6. CONCLUSION ET PERSPECTIVES 58
[humanoid_dh]
Commentaire
Name: humanoid
Nom du robot
DH: 1
La notation DH
Fix: 0
Articulation imaginaire desactivée
dof: 21
Nombre de ddl
angle_in_degree: 0
Angle en radian
Motor: 0
CHAPITRE 6. CONCLUSION ET PERSPECTIVES 59
[humanoid_dh_LINK3] [humanoid_dh_LINK4]
joint_type: 0 joint_type: 0
theta: 1.5708 theta: 1.5708
d: 7.0 d: 0.0
a: 0.0 a: 0.0
alpha: 1.5708 alpha: 1.5708
theta_min: -0.1745 theta_min: -0.1745
theta_max: 0.1745 theta_max: 0.1745
joint_offset: 0.0 joint_offset: 0.0
immobile: 0 immobile: 0
m: 1.0 m: 1.0
cx: -0.5 cx: -0.5
cy: 0.0 cy: 0.0
cz: 0.0 cz: 0.0
Ixx: 0.0 Ixx: 0.0
Ixy: 0.0 Ixy: 0.0
Ixz: 0.0 Ixz: 0.0
Iyy: 0.0833333 Iyy: 0.0833333
Iyz: 0.0 Iyz: 0.0
Izz: 0.0833333 Izz: 0.0833333
Im: 0.0 Im: 0.0
Gr: 0.0 Gr: 0.0
B: 0.0 B: 0.0
Cf: 0.0 Cf: 0.0
.. ..
. .
Bilan personnel
Un jour quelqu’un a dit que « l’écriture est le dépôt de bilan de la pensée ». Dans ce para-
graphe, nous allons écrire en quelques lignes un bilan personnel du projet.
Ce projet nous a appris la manière de mener les projets et les différentes façons de traiter les
problèmes rencontrés.
De plus nous avons acquis des connaissances dans les domaines techniques qu’il s’agit du
domaine de la robotique ou de la modélisation des robots ou du domaine de l’optimisation
numérique et les méthodes utilisées dans la géométrique inverse. En outre, nous avons appris
à tirer le meilleur de la théorie qui existe afin d’atteindre notre but. De plus, ce projet nous a
permis de nous immerger dans le côté pratique et ainsi compléter notre formation.
En plus de tout ce que nous avons appris, et grâce à notre encadrant et aux différents contacts
que nous avons eus avec des gens du domaine, nous avons développé notre sens du travail col-
lectif et le développement des idées ce qui nous facilitera l’immersion dans le domaine profes-
sionnel.
61
Bibliographie
62
BIBLIOGRAPHIE 63