Modélisation des robots

De testwiki
Aller à la navigation Aller à la recherche

Modèle:À sourcer La modélisation d'un robot[1], considéré comme étant un système mécanique articulé, actionné et commandé, consiste à en établir un modèle mathématique. Outre une fonction générale d'aide à la conception, elle a de multiples utilisations pour, la prédiction des mouvements, l'adaptation des actionneurs, la planification des tâches, l'établissement des lois de commande, l'incorporation du robot dans des simulations informatiques, etc. Dans le langage courant, la modélisation précède la simulation sans que l'on distingue une séparation nette entre ces deux activités.

Il est souvent acceptable de se contenter d'une modélisation simplifiée[2] dans laquelle on ne tient pas compte des aspects qui sont, ou paraissent, secondaires tels que : les vibrations, les déformations élastiques, les jeux mécaniques, les tolérances de fabrication, etc.

Dès lors, on est ramené dans le cadre classique de la mécanique rationnelle des solides rigides, appliquée sur des chaînes cinématiques ayant des liaisons holonomes ou non holonomes[3]. Les données constructeur étant supposé connues, la modélisation en robotique[4], se situe donc typiquement dans le vaste domaine des mathématiques appliquées.

De plus, les nouveaux besoins et les nouvelles possibilités technologiques stimulent les activités de recherche en informatique, automatique, méthodes mathématiques, biomécanique, mécatronique et autres techniques apparentées.

Il y a deux manières d'aboutir à des résultats quantitatifs :

Modélisation géométrique

  • Le système mécanique articulé représentant un robot est une chaîne cinématique de corps solides, qui sont reliés entre eux par des articulations. Il est représenté mathématiquement par un système dynamique dont les N variables de configuration q sont les variables articulaires auxquelles s'ajoutent 6 variables supplémentaires dans le cas d'une base libre (ou flottante).
  • La modélisation géométrique fait principalement appel aux méthodes de la géométrie analytique[geom 1], et elle emprunte aussi quelques notions à la théorie des graphes pour le traitement des chaines cinématiques. Elle établit les relations entre les variables articulaires q dans l'espace de configuration et les coordonnées X, généralement cartésiennes, de certains points du robot, dans l'espace opérationnel, ou espace de travail.
  • Terminologie :

Description topologique - Architecture

Chaines cinématiques

Des distinctions peuvent être faites entre :

systèmes à base fixe et systèmes à base mobile

Articulations

  • En négligeant les jeux mécaniques, les articulations sont des liaisons bilatérales qui apparaissent mathématiquement sous forme de contraintes égalités.
  • Pour simplifier, le présent exposé est restreint aux articulations à un degré de liberté (pivot ou glissière : 1 ddl), dont la variable articulaire est un scalaire noté « q ». (D'autres articulations procureraient plus d'un ddl ; pivot glissant : 2ddl, rotule : 3ddl, etc.)
  • Cependant, dans le cas d'une base mobile le symbole «q», représentera la position et l'orientation de la base et désignera jusqu'à 6 variables.

L'environnement

Bien que ne faisant pas partie, au sens strict, du robot, l'environnement est placé dans cette section.

  • Influence du milieu ambiant : excepté pour quelques robot spatiaux, il est indispensable de tenir compte du champ de pesanteur et, éventuellement, des forces dues à l'atmosphère.
  • Pour agir effectivement dans un monde matériel peuplé d'objets et d'obstacles, les deux fonctions essentielles d'un robot[5] sont la locomotion et la préhension. Une locomotion de type terrestre peut être effectuée par reptation, patte, roue motrice, chenille.
  • Les obstacles et les objets sont schématisés par des figures géométriques simples ou plus élaborées (voir B-Rep). Un exemple habituel très simple est le plan d'appui horizontal introduit pour supporter les évolutions d'un robot mobile.
  • Les contacts ponctuels sans frottement sont directement modélisés par des liaisons unilatérales, qui correspondent à des contraintes inégalités. Une modélisation complète et détaillée devrait même aborder les problèmes de Détection des collisions.
  • Pour représenter les frottements sec entre corps solides, la loi de Coulomb, malgré sa rusticité et son apparente simplicité, aboutit fréquemment à des complications mathématiques.

Numérotation des corps

  • À la structure du robot correspond un graphe orienté : les corps sont les nœuds (sommets) et les articulations sont les arcs.
  • Dans le cas d'une chaîne ouverte (acycliques), le graphe est une arborescence. On peut alors utiliser, le vocabulaire généalogique des lignées paternelles : ainsi pour chaque corps les 4 termes : ascendants, père, fils, descendants[geom 2]; sont définis de manière intuitive.
  • Chaque corps est désigné par son numéro dénominatif qui respecte la convention «Numéro du père < Numéro du fils».
  • À chaque corps est attaché son repère propre, de même numéro dénominatif.

Prérequis mathématique

Espace vectoriel euclidien à trois dimensions

Vecteurs et matrices

Définitions dans l'espace euclidien à 3 dimensions 3.

  • Base orthonormée[geom 3] : trois vecteurs de longueur un, perpendiculaires entre eux.
  • Orientation: Ce terme a plusieurs significations:
    1. Orientation d'un plan par le sens de rotation d'un point sur un cercle ; deux sens de rotation : sens antihoraire ou trigonométrique ou CounterClockWise OU sens horaire ou des-aiguilles-d'une-montre ou ClockWise.
    2. Orientation propre d'un trièdre, d'un repère cartésien donné : direct ou indirect, on peut utiliser des règles basées sur la distinction entre la gauche et la droite[geom 4], règle de trois doigts de la main droite, du bonhomme d'Ampère.
    3. Orientation d'un axe dans l'espace ou d'une ligne de visée : par deux paramètres, deux angles (exemple : azimut et site ou hauteur).
    4. Orientation dans l'espace d'une base ou d'un repère ou d'un solide rigide : par trois paramètres, (exemple : trois angles d'Euler, trois angles de Tait-Bryan).
  • Soit le vecteur libre 𝐯 , dont les composantes sont x,y,z dans une base orthonormée de l'espace 3.

Sous la condition de spécifier que ce vecteur est exprimé dans la base , il peut être caractérisé par une matrice dont les trois éléments sont les composantes du vecteur. En pratique, les calculs effectifs sont effectués en utilisant l'écriture matricielle suivante :

𝐯=xyz=𝐯(31),𝐯t=xyz=𝐯(13)t,[𝐯](33)=0zyz0xyx0.

  • Avec cette notation, le produit vectoriel 𝐯=𝐚𝐛, projetée dans , prend la forme matricielle :

𝐯=[𝐚]𝐛. Cependant, en pratique, lorsque le risque d'ambiguïté semble faible, l'écriture fautive : 𝐯=𝐚𝐛 est tolérable.

  • De même, au produit scalaire 𝐯𝐰 correspond l'expression matricielle 𝐯t𝐰=𝐰t𝐯.
Changement de bases

Soit deux bases orthonormées dans l'espace euclidien à trois dimensions 3 :

  • =(e1,e2,e3), dénommée l' «Ancienne base»;
  • =(e'1,e'2,e'3), la « Nouvelle base » que l'on caractérise par l'exposant « prime ».

La définition des composantes (ou coordonnées)[geom 5] revient à écrire :

𝐱=i=13xiei=x1e1+x2e2+x3e3=x'1e'1+x'2e'2+x'3e'3.

La matrice de passage directe 𝒫=𝒫,, qui donne les anciennes coordonnées du vecteur dans en fonction des nouvelles dans , est déterminée[geom 6] par :

𝒫ij=eie'j, avec 1i3,1j3.

Règle mnémotechnique : Les colonnes de la matrice de passage sont les coordonnées des vecteurs de la nouvelle base, exprimés dans l'ancienne base.

Dans le cas où les bases sont orthonormées, la matrice de passage est orthogonale. Son inverse, qui est dénommée matrice de passage inverse, est égale à sa transposée, et la valeur absolue de son déterminant est égale à 1 :

𝒫1=𝒫t , et det(𝒫)=det(𝒫t)=±1. autrement dit :

𝒫𝒫t=𝒫t𝒫=1(33).

Pour les vecteurs (vecteurs polaires) 𝐱, la formule du changement de coordonnées s'écrit :

𝐱=𝒫𝐱', ou bien 𝐱'=𝒫t𝐱[geom 7].

Espace ponctuel à trois dimensions

Dans l'« espace ordinaire »[geom 8], un déplacement quelconque se décompose[geom 9] en une translation et une rotation.

Repères

On utilise des repères orthonormés « R » qui sont constitués par une origine O et une base de trois vecteurs. Ainsi, la position d'un point géométrique M peut être caractérisée par un seul vecteur 𝐱=OM (ses coordonnées étant 𝐱=xyzt), tandis que la position d'un repère (ou d'un solide) est défini par celle d'un point particulier et aussi par son orientation (orientation dans l'espace).

Changement de repères

Soit 2 repères orthonormées, R et R', définis par leurs origines O et O' et par leurs bases et . Avec :

  • 𝒫ij=eie'j: la matrice de passage directe (33) ;
  • 𝒯i=eiOO:, pour caractériser la translation de O vers O'.

La matrice de passage (44) en coordonnées homogènes, prend la forme :

𝔓=𝒫(33)𝒯(31)𝟎(13)1(11). L'inverse de la matrices de passage (44) directe 𝔓 est la matrice de passage (44) homogène inverse :

𝔓1=𝒫(33)t𝒫(33)t𝒯(31)𝟎(13)1.

Et les formules de changements de repères s'écrivent :

𝔛=xyz1=𝐱(31)1=𝔓𝔛,𝔛=xyz1=𝔓1𝔛.

Expressions des matrices de passages

Les matrices de passage entre deux repères dépendent, en général, des paramètres constitutifs et des variables articulaires.

Orientation par une rotation autour d'un axe quelconque

Rotation d'un angle φ autour d'un vecteur unitaire 𝐮, la matrice de passage directe est donnée par la formule de Rodrigues :

𝒫=𝟏(33)+[u]sinφ+[u]2(1cosφ).

Orientation par des rotations autour de trois axes de coordonnées

On passe du repère fixe (« ancien ») Oxyz au référentiel lié au solide (« nouveau ») Ox'y'z' par trois rotations successives autour d'un des axes de coordonnées. La matrice de passage correspondante est le produit de trois matrices élémentaires représentant chacune une rotation autour d'un seul axe d'une coordonnée. Selon les axes intermédiaires choisis, on distingue:

  1. Les angles d'Euler, 6 ordres possibles : (z-x-z | x-y-x | y-z-y | z-y-z | x-z-x | y-x-y). Les angles étant dénommés: précession - nutation - rotation propre. On rencontre généralement l'ordre (z-x-z), dans les manuels français.
  2. Les angles de Tait-Bryan, six ordres possibles : (x-y-z | y-z-x | z-x-y | x-z-y | z-y-x | y-x-z).

Les angles de Cardan, qui sont utilisés dans les domaines aéronautique et spatial, correspondraient à l'ordre (z-y-x), et apparaissent souvent sous les noms : (z:)Azimuth=lacet=yaw ; (y:)Tanguage=pitch ; (x:)Roulis=roll.

Orientation par un quaternion

L'utilisation des quaternions unitaires élimine les difficultés[geom 10] numériques dues aux configurations singulières.

Denavit-Hartenberg

Les axes articulaires étant donnés ou bien définis, ils sont choisis comme axes des «z» des repères propres et les conventions de Denavit-Hartenberg permettent de caractériser la position relative (dans l'espace ponctuel)[geom 11] de deux repères avec seulement quatre paramètres[geom 12]. On rencontre surtout deux variantes :

  • Denavit-Hartenberg 1955.
  • Khalil-Kleinfinger = Denavit-Hartenberg modifié, qui est particulièrement appropriée aux principaux algorithmes numériques.

Modélisation géométrique directe

  • Les matrices de passages 𝒫(𝐪)(33) et 𝔓(𝐪)(44) dépendent de paramètres constitutifs constants et des variables articulaires q. Du point de vue de la modélisation, elles contiennent l'information utile pour spécifier la configuration du robot. Après la description des paramètres constitutifs, la modélisation géométrique directe se réduit donc, en pratique, à un simple produit de matrices.
  • Les coordonnées cartésiennes 𝐱(31) ou 𝔛(41) sont des composantes de l'espace opérationnel que l'on calcule avec les formules génériques du changement de bases, 𝐱=𝒫𝐱', ou de repères avec les coordonnées homogènes, 𝔛=𝔓𝔛.
  • Exemple d'une chaîne cinématique ouverte constituée de N corps numérotés de 1 à N = 6. Les formules de changement de bases (ou de repères en coordonnées homogènes) sont utilisées pour donner des jeux de relations du type :
𝐱0=𝒫0,1𝐱1,𝐱1=𝒫0,1t𝐱0.𝐱1=𝒫1,2𝐱2,𝐱2=𝒫1,2t𝐱1.𝐱2=𝒫2,3𝐱3,𝐱3=𝒫2,3t𝐱2.𝐱3=𝒫3,4𝐱4,𝐱4=𝒫3,4t𝐱3.𝐱4=𝒫4,5𝐱5,𝐱5=𝒫4,5t𝐱4.𝐱5=𝒫5,6𝐱6,𝐱6=𝒫5,6t𝐱5. Par des substitutions successives,  on en déduit les expressions pour N = 6  :

Modèle:Bloc emphase

Ceci en ayant posé, pour N = 6 : 𝒫0,6=𝒫0,1𝒫1,2𝒫2,3𝒫5,6.𝒫0,6t=𝒫5,6t𝒫4,5t𝒫3,4t𝒫1,0.

Pour alléger encore le formalisme dans le cas des chaînes simples, l'écriture générale d'un produit de matrices tel que :

𝒫0,N=𝒫0,1𝒫1,2𝒫2,3,,𝒫N2,N1𝒫N1N;

peut être abrégée en :

Modèle:Bloc emphase De cette façon, toute relation vectorielle peut se traduire sous forme matricielle (donc calculable numériquement) dans n'importe quel repère (du robot comme de l'environnement) arbitrairement choisi.

Modèlisation géométrique inverse

Étant donné une situation opérationnelle X, quand on cherche à résoudre q= G(X), les trois cas sont possibles :

  1. Une infinité de solutions : configuration redondante, (cas de plus de six articulations dans un bras manipulateur). Mathématiquement le nombre de ddl est inutilement grand, (ce qui peut être justifié par d'autres avantages pratiques).
  2. Une ou plusieurs solutions.
  3. Aucune solution, la situation donnée peut se trouver en dehors de la zone d'accessibilité, ou bien c'est une configuration singulière. (Exemples : deux axes de glissières qui arrivent en parallélisme, deux axes de pivots qui se trouvent en coïncidence…).

Modélisation statique

  • La modélisation statique du robot consiste à calculer les efforts dans chaque articulation, et les efforts de réactions du sol, en considérant que le robot est immobile. Dans le cas de la manipulation de charges, lorsque le robot supporte une pièce lourde, on peut souvent négliger le poids des segments.
  • Un problème voisin est la détermination des configurations d'équilibre dans lesquelles le robot finit par se trouver lorsque les efforts de tous les actionneurs sont nuls. Cela correspond à des postures typiques telles que la mise en veille volontaire ou la panne accidentelle.

Modélisation cinématique

Modélisation cinématique directe

Le modèle cinématique direct (MCD) calcule la vitesse dans le domaine cartésien en fonction de la vitesse articulaire du robot : 𝐗˙=𝕍=𝔉(𝐪,𝐪˙)=𝖥𝐪𝐪˙ (voir : matrice jacobienne).

Modélisation cinématique inverse

Le modèle cinématique inverse (MCI) permet de passer de la vitesse opérationnelle à la vitesse dans le domaine articulaire : 𝐪˙=𝔊(𝐗˙). (Possibilité de plusieurs solutions), voir également : Décomposition en valeurs singulières#Cinématique inverse.

Modélisation dynamique

La modélisation dynamique consiste à établir les relations entre les efforts des actionneurs et les mouvements qui en découlent, autrement dit, à expliciter les équations différentielles du second ordre que sont les équations du mouvement.

Terminologie :
  • Problème dynamique direct = calcul des accélérations produites par des efforts donnés, avec une expression matricielle du type : 𝐪¨=𝖥(𝐪,𝐪˙,τ), ce qui permet la détermination du mouvement par intégration.
  • Problème inverse = connaissant le mouvement, c'est le calcul des efforts τ=𝖦(𝐪,𝐪˙,𝐪¨), qui en sont la cause.

Lois de la dynamique

Hypothèses simplificatrices

En première approximation, on utilise fréquemment des hypothèses simplificatrices telles que :

  • Les corps constitutifs sont des solides rigides ; les ressorts sont (éventuellement) les seuls constituants déformables.
  • Les termes difficiles à évaluer de frottement visqueux sont estimés plus ou moins empiriquement.
  • Les articulations sont des pivots (articulation rotoïde) ou des glissières (articulation prismatique),
  • Les actionneurs (électriques, hydrauliques ou autres) sont schématisés par des forces ou des couples (qui sont des fonctions des signaux de commandes). (Dans le cas des systèmes sous actionnés, certaines articulations sont dépourvues d'actionneurs.
  • Les forces de contact avec l'environnement suivent la loi approchée du frottement sec de Coulomb.

Formulations

Formulation vectorielle
  • Les forces ainsi que les grandeurs cinématiques (vitesses, accélérations) sont représentées explicitement par des vecteurs.
  • On aboutit à des algorithmes relativement simples à programmer et rapides à exécuter, ce qui permet leur utilisation dans les logiciels d'intégration numérique où une, ou plusieurs, résolutions d'un problème dynamique doivent être effectuées à chaque pas d'intégration.
  • Dans le même ordre d'idées, tous les termes, analytiquement compliqués, des équations de Lagrange peuvent avantageusement être calculés numériquement par plusieurs appels, avec successivement 𝐪˙=0,𝐪¨=0,λ=0,g=0, de l'algorithme RNEA (voir plus bas).
Formulation analytique

L'état du système représentatif (𝐪,𝐪˙) est décrit par des variables de configuration ou (coordonnées généralisées) et leurs dérivées, les formulations analytiques[dyna 1] peuvent être considérées comme des applications typiques du calcul des variations. Des principes variationnels, provenant de la physique classique, sont utilisés[dyna 2] à partir de fonctions telles que l'énergie cinétique, l'énergie potentielle, leur somme, leur différence..., dépendant généralement seulement de l'état. Mathématiquement, il s'agit de la recherche de l'extrêmum de l'intégrale d'une fonction inconnue (fonctionnelle) à plusieurs variables, avec ou sans contraintes. Il en résulte par des changements de variables et en utilisant les ressources de l'algèbre et de l'analyse, des expressions variées qui sont pourtant équivalentes à la formulation vectorielle.

  • Ainsi, les équations de Lagrange sans contrainte, sont un cas particulier des équations d'Euler-Lagrange et peuvent être démontrées en minimisant la fonction action qui est une intégrale du lagrangien L =T-V.
  • Pour prendre en compte les liaisons bilatérales holonomes, il faut rajouter des variables auxiliaires : les multiplicateurs de Lagrange pour obtenir les équations de Lagrange avec contraintes, (qui ne sont plus valables s'il y a des liaisons non holonomes). Il est aussi possible d'effectuer une partition algébrique[dyna 3] entre les variables (déclarées) indépendantes et les autres variables qui sont dépendantes.
  • D'autres approches sont conseillées, ou même indispensables, particulièrement quand il y a des liaisons non holonomes (robot sur roues évidemment, mais aussi robots rampants ou à pattes). L'introduction de quasi-vitesses : 𝐰=𝖡(𝐪)𝐪˙, est alors presque systématique.
    • Les équations de Boltzmann-Hamel sont adaptées aux robots à base libre, en prenant les composantes du vecteur rotation du corps de base comme quasi-vitesses.
    • Il existe d'autres méthodes. On se restreint ici à l'évocation de quelques noms emblématiques : Gibbs-Appell, Kane, Maggi, Udwadia et Kalaba.
Interaction avec l'environnement

Une modélisation réaliste incorpore un éventail de sujets assez disparates qui proviennent des liaisons non permanentes.

  • Liaisons unilatérales qui peuvent être saturées (égalité) ou non saturées (inégalité stricte) : conditions et multiplicateurs de Karush-Kuhn-Tucker.
  • Possibilités d'impacts et de chocs subséquents.
  • Les contacts avec frottement, entre le robot et son environnement, (commande en effort, robots marcheurs) sont délicats à modéliser, ce qui est dû à la forme non biunivoque de la loi de Coulomb. Ces difficultés qui avaient été entrevues dès 1895 avec le Modèle:Lien sont l'objet de recherches actuelles sous le nom de Modèle:Lien.

Grandeurs mécaniques préliminaires

Notations

Pour préciser la disposition géométrique, on pose aussi:ρj=OjGj;ξj=OjOj+1..

  • Les composantes d'une grandeur non scalaire dépendent du repère sur lequel elles sont projetées ce qui est indiqué par un indice supérieur à gauche.

𝕎j:composantes projetées sur le repère R.0𝕎j:composantes projetées sur le repère absolu galliléen.j𝕎j𝕎j:pour alléger l'écriture des composantes propres..

Vecteurs

Ils sont appelés « vrais vecteurs » ou « vecteurs polaires » en cas d'ambiguïté.

  • 𝐟 : résultante générale des forces appliquées.
  • 𝐯 : vecteur vitesse linéaire.
  • 𝐯˙ : Modèle:Lien, par rapport au repère propre.
  • γ : accélération linéaire inertielle, par rapport au repère absolu galiléen, avec la relation γ=𝐯˙+ω𝐯.
Pseudovecteurs

Les pseudovecteurs qui apparaissent en mécanique, proviennent de produits vectoriels de vrais vecteurs.

  • μ : Moment de force (pseudovecteur).
  • ω : Vecteur vitesse de rotation (pseudovecteur).
  • ω˙ : Vecteur accélération angulaire ou accélération de rotation (pseudovecteur).

Pour les pseudovecteurs 𝒚 la formule du changement de coordonnées[dyna 4] prend les formes :

𝒚=det(𝒫)*𝒫𝒚' et 𝒚'=det(𝒫t)*𝒫t𝒚=det(𝒫)×𝒫t𝒚.

Torseurs

Un torseur est un champ de vecteurs glissants équiprojectif[dyna 5] qui est similaire à un champ de moments. Un torseur est l'association d'un pseudovecteur et d'un vrai vecteur.

Énergies
  • L'énergie cinétique d'un système est la somme des énergies cinétiques des N corps constitutifs :

T(𝐪,𝐪˙)=j=1N12[mj0𝐯j0𝐯j+0ωj(0𝐈j0ωj)].

V(𝐪)=j=1N[mj0𝐠0𝐫j].

Notations spatiales (avec des sextuplets)

La dynamique des solides rigides entremêle les mouvements de translation et de rotation. D'où l'intérêt pratique d'utiliser des symboles représentant 6 paramètres. En anglais, cette notation est qualifiée de « spatial »[dyna 6].

Torseurs

Le torseur cinématique (des vitesses des points d'un solides), le torseur des efforts et la dérivée du torseur cinématique (en un point M d'un repère), peuvent respectivement s'écrire :

𝔽M=μM𝐟;𝕍M=ω𝐯M;𝕍˙M=ω˙𝐯˙M=γMω𝐯M.

Opérateurs sur deux torseurs

Soit, en un même point, les torseurs 𝕍1,𝕍2,𝔽2.
Deux opérateurs utiles agissant sur les torseurs sont :  et  définis par : 𝕍1𝕍2=ω1ω2ω1𝐯2+𝐯1ω2.𝕍1𝔽2=ω1μ2+𝐯1𝐟2ω1𝐟2.

Changement d'un même torseur dans 2 repères consécutifs

Soit R1 (« ancien repère ») et R2 (« nouveau repère ») deux repères. Pour alléger les notations nous posons d'abord ici :

  • ξ=O1O2, vecteur dont on utilisera les composantes dans R1 ;
  • 𝒫=𝒫1,2, la matrice de passage(33) directe de R1 vers R2 ;
  • 𝔸=𝔸1,2, la matrices de passage(66), de R1 vers R2, pour les torseurs.

Nous disposons[dyna 7] des formules suivantes :

𝔸t=𝒫t0𝒫t[ξ]t𝒫t;𝕍2=𝔸t𝕍1.𝔸t=𝒫0[ξ]𝒫𝒫;𝕍1=𝔸t𝕍2.𝔸=𝒫[ξ]𝒫0𝒫;𝔽1=𝔸𝔽2.𝔸1=𝒫t𝒫t[ξ]t0𝒫t;𝔽2=𝔸1𝔽1.

Équations de Newton-Euler

Soit un corps rigide dont la masse, le centre de gravité, le tenseur d'inertie au centre de gravité, sont respectivement m , G , 𝐈G. Le point O étant une origine quelconque, en posant :

  • ρ=OG, pour définir la position du centre de gravité.
  • ~=𝐈G/m : le tenseur réduit (33), au centre de gravité.
  • =m~[ρ]2[ρ]*[ρ]1(33), matrice d'inertie (6×6) du corps isolé.

En notation sextuplet et en un point quelconque d'un solide rigide, les Modèle:Lien prennent la forme : Modèle:Bloc emphase

Algorithmes numériques provenant de la formulation vectorielle

  • Nous considérons d'abord ici les chaînes cinématiques ouvertes simples. Les corps constitutifs : C1...CN, sont numérotés de 1 à N, l'indice 0 correspond à un repère absolu ou règne un champ de pesanteur d'intensité g. La liaison C0-C1 possède 6 degrés de liberté (ddl) pour les robots à base libre ou flottante, et 0 ddl dans le cas des robots à base fixe.
  • Les grandeurs ωj,𝐯j,μj, caractérisent le corps Cj, et sont projetées sur son repère propre Rj, fixé à Cj, d'origine Oj.
  • Le corps Cj se meut autour de l'articulation j, d'axe zj (conformément à la convention de Khalil-Kleinfinger), dont la nature est caractérisée par une matrice (6×1) (sauf pour la base libre) :

𝕊j=001000: pivot ; 𝕊j=000001: glissière ; 𝕊1=𝟏(66): si C1 est une base libre.

  • Quelques modifications mineures permettent d'adapter les algorithmes pour chaînes simples au cas des chaînes arborescentes. En adoptant un vocabulaire généalogique, le principe de ces modifications est de remplacer le prédécesseur d'un corps par son « père ». Chaque corps, sauf C0, a un seul père, quoiqu'il puisse posséder un nombre quelconque de fils (zéro pour un corps terminal ou feuille du graphe représentatif). Avec la convention « numéro père < numéro fils » le parcours dans le graphe s'effectue de manière adéquate et la simplicité des algorithmes est conservée.
  • Chaînes fermées...

Algorithme RNEA = Recursive Newton Euler Algorithm

Principe

L'algorithme RNEA[dyna 8], résout le problème de la dynamique inverse : à un instant donné, 𝐪,𝐪˙,𝐪¨ étant connus, on obtient les efforts des actionneurs τ. Il comporte deux boucles de récurrences :

Implémentation de la pesanteur

L'effet de la pesanteur est (rigoureusement) obtenu par une accélération du corps de base C1 opposée à la pesanteur.

L'axe O0z0 étant la verticale ascendante[dyna 9] du repère absolu galiléen R0, on ajoute artificiellement l'accélération 𝐠~1 à l'accélération naturelle du repère R1 avec :

𝐠~0=00+|g|;𝒫0=𝒫0,1;𝐠~1=𝒫0t𝐠~0.

Conditions initiales

Les conditions initiales sont ω1,𝐯1,ω˙1,γ1, les vitesses et les accélérations de la base (corps C1), les variables articulaire proprement dites, q2,q3,,qN) et éventuellement, l'effort 𝔉N+1) exercé par l'environnement sur le point de contact ON+1 du corps terminal CN , projeté dans le repère RN+1 attaché à ce point de contact appartenant à CN :

{𝕍0=0;𝕍˙0=0𝒈;𝔽N+1=𝔉N+1.

La base mobile ayant six degrés de liberté (et non un seul), l'harmonisation des notations est imparfaite[dyna 10]. Ici nous adoptons la notation conventionnelle suivante :

{Rappels  : 𝕊1=1(66);q1𝐪(1)(61),;𝕍1=𝕊1q˙1=ω1𝐯1;𝕍˙1=𝕊1q¨1=ω˙1γ1ω1𝐯1;τ1τ(1)(61)=𝔽1.

Montée cinématique

For j= 1 to N do {i=j1;𝔸i=𝔸ij;𝕍j=𝔸it𝕍i+𝕊jq˙j;𝕍˙j=𝔸it𝕍˙i+𝕊jq¨j+𝕍j𝕊jq˙j;j=j𝕍˙j+𝕍jj𝕍j.

Descente des efforts

For k= N+1 downto 2 do {j=k1;𝔸j=𝔸jk;𝔽j=𝔸j𝔽k+j;τj=𝕊jt𝔽j.

Modifications pour une chaîne arborescente

Moyennant un adroit agencement des instructions, il est possible de ne faire appel qu'aux « grandeurs du père » et l'algorithme précédent est à peine modifié.

  1. Montée cinématique

For j= 1 to N do {p = père(j);𝕍j=𝔸pjt𝕍i+𝕊jq˙j;𝕍˙j=𝔸pjt𝕍˙i+𝕊jq¨j+𝕍j𝕊jq˙j;𝔽j=j𝕍˙j+𝕍jj𝕍j.

  1. Descente des efforts

For j= N downto 1 do {p = père(j);τj=𝕊jt𝔽j;if p>0 then :𝔽p=𝔽p+𝔸pj𝔽j; end if.

Algorithme ABA = Articulated Body Inertia Algorithm

  • Il traite le problème de dynamique directe : connaissant l'état et les efforts des actionneurs, on obtient les accélérations (ce qui permet d'aboutir au mouvement par intégration).
  • L'idée de départ est de considérer une partie de la chaîne comme étant un seul corps rigide dont on calcule l'inertie équivalente (« l'articulated body inertia ») 𝕂, de manière à pouvoir écrire des équations auxiliaires du mouvement du type : 𝔽=𝕂𝕍˙+𝔻 (cf. Newton-Euler).
  • Il est souvent appelé, d'après le nom de son auteur, algorithme de Featherstone.
  • Le cas d'une chaîne simple est seul considéré ici.
Conditions initiales

{𝕍1=ω1𝐯1;α1=0;car𝕍1𝕍1𝐪˙1=0;β1=𝕍11𝕍1;𝕂N+1=0;𝔹N+1=𝔽N+1;𝔻N+1=𝔽N+1.

Montée cinématique pour l'initialisation des vitesses

For j= 2 to N do {i=j1;𝕍j=𝔸jt𝕍i+𝕊jq˙j;αj=𝕍j𝕊jq˙j;βj=𝕍jj𝕍j.

Descente des inerties des corps articulés

For j= N downto 1 do {k=j+1;wk=𝕊kt𝕂k𝕊k;𝕂j=j+𝔸j[𝟏(66)𝕂k𝕊k𝕊kt/wk]𝕂k𝔸jt;𝔹j=𝔸j[𝔻k+𝕂k𝕊k(τk𝕊kt𝔻k)/wk]+βj;𝔻j=𝕂jαj+𝔹j.

Remontée pour les accélérations

For j= 1 to N do {i=j1;q¨j=(τj𝕊jt[𝕂j𝔸i𝕍˙i+𝔻j])/wj;𝕍˙j=𝔸it𝕍˙i+𝕊jq¨j+𝕍j𝕊jq˙j.

Algorithme CRBM = Composite Rigid Body Method

Cet algorithme calcule la matrice d'inertie dans l'espace de configuration. Son principe consiste à « rigidifier » l'arborescence, excepté en une seule articulation, en considérant successivement les N configurations 𝐪˙=0;𝐪¨=0,q¨=1,=1,,N. Pour j = 1, 𝔽 doit être considéré comme une matrice (66).

𝔐=0.

For j= 1 to N do {𝒦j=j.

for j= N downto 1 do {𝔽=𝒦j𝕊j;𝔐jj=𝕊jt𝔽;p=père(j);if p>0 then :𝒦p=𝒦p+𝔸pj𝒦j𝔸pjt;end if=j;while p>0 do :𝔽=𝔸p𝔽;=père();𝔐j=𝕊t𝔽;𝔐j=𝔐j; end while..

Algorithme GAHA = Gibbs-Appell Hessian Algorithm

Cet algorithme calcule la matrice d'inertie dans l'espace de configuration. Il s'avèrerait particulièrement efficace pour les chaînes simples (bras manipulateurs). Il a l'originalité de provenir des équations de Gibbs-Appell, c'est-à-dire d'un calcul des variations opérant sur « l'énergie » d'accélération (analogue de l'énergie cinétique dans lequel le carré des vitesses est remplacé par le carré des accélérations). La matrice d'inertie du système est en effet la matrice hessienne de l'énergie d'accélération.

Formulation analytique

Soit un système mécanique articulé composé de Nc corps et dont les articulations sont des pivots ou des glissières.

  • Dans le cas d'un système à base fixe, le nombre de variables articulaires est égal au nombre de degrés de liberté du système N=Nc. (chaque corps est mobile autour de son articulation).
  • Dans le cas d'un système à base entièrement libre, la base, C1, possède 6 degrés de liberté et le nombre de degrés de liberté du système est alors N=Nc+5.

En appelant qj;j=1,,N les variables de configuration (ou coordonnées généralisées) les grandeurs qui interviennent dans la formation des équations de Lagrange sont :

  • L'énergie cinétique du système T(𝐪,𝐪˙) , qui est la somme des énergies cinétiques des Nc corps constitutifs (NcN). En appelant, pour le corps d'indice i,𝐯i,ωi,𝐈i, respectivement, la vitesse au centre de gravité, le vecteur rotation, le tenseur d'inertie au centre de gravité, toutes ces grandeurs étant exprimées dans le repère absolu galiléen, on a :

T(𝐪,𝐪˙)=12i=1Nc[mi|𝐯i|2+ωit(𝐈iωi)].

  • La matrice d'inertie du système 𝔐jk(𝐪), est une matrice [N×N], symétrique, définie positive, telle que :

T(𝐪,𝐪˙)=12j=1Nk=1N𝔐jkq˙jq˙k=12𝔐jkq˙jq˙k, avec la convention de sommation d'Einstein sur les indices répétés.

  • L'énergie potentielle : V(𝐪).

Dans le cas où il n'y a pas de composant élastique, l'énergie potentielle V(𝐪,g) est proportionnelle à l'intensité de la pesanteur g, et avec 𝒓j=OGj dans R0, elle devient simplement :
V(𝐪,g)=j=1Nc[mj𝒈t𝒓j].
On pose ici : 𝒱k(𝐪)= V(𝐪)qk, pour le terme d'énergie potentielle d'indice k.

=TV.

Équations sans contrainte

Avec les formules précédente pour T et V, l'expression générale des équations de Lagrange :

ddt(q˙k)qk=ddt(Tq˙k)Tqk+Vqk=τk;

peut se mettre sous la forme habituelle suivante :

{𝔐jk(𝐪)q¨j+k(𝐪,𝐪˙)+𝒱k(𝐪)=τk;k(𝐪,𝐪˙)=Γijk(𝐪)q˙iq˙j;Γijk=12(𝔐jkqi+𝔐kiqj𝔐ijqk).

Le terme k représente les forces[dyna 11] centrifuge et de Coriolis et peut être exprimé avec les symboles de Christoffel de première espèce[dyna 12].

Le calcul algébrique des coefficients de ces équations est envisageable avec un logiciel de calcul symbolique. Toutefois, les algorithmes des sections précédentes, qui sont basés sur la formulation vectorielle de la mécanique, permettent aussi de calculer numériquement ces coefficients.

Équations avec contraintes

Lorsque des points du robot sont en contact avec un obstacle fixe de l'environnement, sa position 𝐙=ϕ(𝐪)[dyna 13] est une constante, ce qui correspond à des liaisons bilatérales (qui sont permanentes si les vitesses et les accélérations sont nulles, ou transitoires dans le cas contraire). Cette situation est représentée par les équations de Lagrange avec r > 0 contraintes égalités :

{ϕ(𝐪)=0;=1,,r.𝔍i(𝐪)q˙i=0;𝔍i(𝐪)=ϕqi;=1,,r;i,k=1,,N.𝔐ik(𝐪)q¨i+k(𝐪,𝐪˙)+𝒱k(𝐪)=τk+𝔍kt(𝐪)λ.Les r variables  supplémentaires λ sont les multiplicateurs de Lagrange.

Lorsque les contraintes représentent des liaisons ayant une signification géométrique, les multiplicateurs sont les composantes des efforts de réaction exercés par l'environnement sur le système mécanique.

Il est physiquement plus satisfaisant de modéliser les actions de contact par des liaisons unilatérales et par des équations de Lagrange avec contraintes inégalités :

{ϕ(𝐪)=0;=1,,r.ψm(𝐪)0;m=1,,s.𝔍i(𝐪)q˙i=0;𝔍i(𝐪)=ϕqi;=1,,r;i,k=1,,N.𝔎mi(𝐪)q˙i0;𝔎mi(𝐪)=ψmqi;m=1,,s;i,k=1,,N.𝔐ik(𝐪)q¨i+k(𝐪,𝐪˙)+𝒱k(𝐪)=τk+𝔍kt(𝐪)λ+𝔎kmt(𝐪)μm.Les s variables  supplémentaires μ sont les multiplicateurs de Karush-Kuhn-Tucker qui vérifient les conditions :ψm0μm=0;ψm=0μm0.

Équations avec termes de glissement

Considérons un point du robot en contact avec une surface fixe dont le coefficient de frottement[dyna 14] est 𝔣^. Utilisons un repère fixe, Oxyz, orthonormé, tel que la normale au plan tangent à la surface soit l'axe Oz. La vitesse du point et la force de réaction qui s'exerce sur le robot étant respectivement : 𝐯 et 𝐟, en introduisant la matrice jacobienne partielle 𝔍𝔭(6N),la loi de Coulomb, implantée dans les équations de Lagrange, prend, hors cas particuliers, la forme ci-dessous :

𝕍p(61)(𝐪,𝐪˙)=𝔍𝔭(6N)*𝐪˙(N1)=ωxωyωzvxvyvz=0t.

  • Cas adhérence, point de contact non glissant.

fz2>𝔣^*(fx2+fy2);𝕍p(61)=𝔍𝔭(6N)𝐪˙=ωxωyωzvx=0vy=0vz=0𝔐𝐪¨+=τ+𝔍𝔭(N6)tΛ=τ+𝔍𝔭t000fx0fy0fz>0.

  • Cas glissement, point de contact glissant.

fz2=𝔣^*(fx2+fy2);𝕍p(61)=𝔍𝔭𝐪˙=ωxωyωzvx0vy0vz=0𝔐𝐪¨+=τ+𝔍𝔭tΛ=τ+𝔍𝔭t000fx=𝔣^*fz*vx/vx2+vy2fy=𝔣^*fz*vy/vx2+vy2fz>0.

Mécanique non régulière

Le simple exemple de la préhension d'un objet qui est saisi puis posé ainsi que l'exemple des robots à pattes font comprendre intuitivement que les formalismes de la dynamique traditionnelle, qui considère des systèmes évoluant continument dans le temps, sont insuffisants pour permettre une modélisation réaliste de nombreux robots évolués.

  • Il convient donc de prendre en compte des Modèle:Lien qui sont des systèmes hybrides et d'utiliser des fonctions continues par morceaux. Les transitions entre phases temporelles pouvant être détectées avec des « fonctions critères ».
  • Ces considérations interviennent, selon des réalisations plus ou rigoureuses, dans les moteurs physiques de diverses bibliothèques logicielles de simulation mécanique. Exemples : Bullet, Newton Game Dynamics, Open Dynamics Engine.
  • La Modèle:Lien considère les systèmes mécaniques multi-corps avec des contacts, du frottement et des impacts. C'est une matière qui présente des difficultés mathématiques et qui englobe plusieurs approches dont les développements ne sont sans doute pas entièrement achevés.

Un des pionniers de la mécanique non régulière est le mécanicien et mathématicien français Jean-Jacques Moreau

Quelques thèmes à développer dans le cadre de la mécanique non régulière :

Liaisons unilatérales

Algorithme pour le cas plan : Complémentarité linéaire. Modèle:Lien

Impacts et chocs

Un choc se traduit par une discontinuité dans les vitesses, la détermination de l'état après un choc dépend des hypothèses.

Frottements

Détection des collisions

détections des collisions

Notes et références

Voir aussi

Notes

Bibliographie

Ouvrages de références

  • Exposé détaillé de principaux algorithmes numériques de la modélisation vectorielle.

Modèle:Ouvrage

  • Vue d'ensemble sur la robotique; les chapitres I et II sont consacrés à la modélisation.

Modèle:Ouvrage

Articles de revues périodiques disponibles en ligne (en 2013)

  • Présentation rigoureuse des algorithmes par récurrence avec la théorie des groupes de Lie.

Modèle:ArticleModèle:Plume

  • Algorithme de Gibbs-Appell par le Hessien.

Modèle:ArticleModèle:Plume

Thèses, Ph.D., mémoires ou autres ouvrages disponibles en ligne (2013)

  • Exposé traditionnel de la mécanique classique, un peu ancien, (pas de matrices, ni de chaînes de corps rigides).

Modèle:Lien web Modèle:Plume

  • Exemple d'utilisation des algorithmes récursifs Newton-Euler RNEA et ABA, avec généralisation au cas des robots à base mobile.

Modèle:Lien webModèle:Plume

  • Diverses variantes de présentation des algorithmes par récurrence.

Modèle:Lien web Modèle:Plume

  • Liaison unilatérales, frottement de Coulomb, paradoxe de Painlevé.

Modèle:Lien web Modèle:Plume

  • Pour traiter les liaisons unilatérales : une introduction à la mécanique non régulière dans la première partie de cette thèse.

Modèle:Lien web Modèle:Plume

Modèle:Portail

  1. Jean-Paul Laumond, Leçon inaugurale prononcée le jeudi 19 janvier 2012 au Collège de France [1] La robotique traite du rapport que peut entretenir avec le monde réel une machine qui bouge et dont les mouvements sont commandés par un ordinateur. Ainsi le robot se distingue-t-il à la fois de l’automate, dont les mouvements sont mécaniquement déterminés, et de l’ordinateur, qui manipule des informations mais ne bouge pas.
  2. De toute façon, à l'exception de cas très simples, toute modélisation implique une description schématique, qui cependant ne diffère « pas trop » du monde réel.
  3. L'exemple utilitaire de la planification des manœuvres (non holonomes) d'un tracteur à roues auquel sont attelées plusieurs remorques, cause des problèmes compliqués et spécifiques qui ne sont pas envisagés dans le présent article.
  4. Une des difficultés pratiques de la modélisation en robotique provient du nombre relativement élevé des degrés de liberté (6 pour un bras manipulateur, 30 pour l'humanoïde HRP-2), ce qui souligne l'importance de conventions et de notations judicieuses.
  5. Drone, Avion-robot, UAV = Unmanned Aerial Vehicle, AUV = Autonomous Underwater Vehicle, etc., ne sont pas considérés ici.


Erreur de référence : Des balises <ref> existent pour un groupe nommé « geom », mais aucune balise <references group="geom"/> correspondante n’a été trouvée
Erreur de référence : Des balises <ref> existent pour un groupe nommé « dyna », mais aucune balise <references group="dyna"/> correspondante n’a été trouvée