Difference between revisions of "Projets:Perso:2014:Robot Delta"

From Electrolab
Jump to: navigation, search
(Cinématique directe)
 
(13 intermediate revisions by one user not shown)
Line 1: Line 1:
 
{{Project
 
{{Project
 
|name= Robot Delta
 
|name= Robot Delta
|author= Fabrice
+
|author= [[User:Fabrice|Fabrice]]
 
|proposal_date=
 
|proposal_date=
|abstract1= Cette page a pour vocation de rassembler des informations sur les robots Delta.
+
|abstract1= Cette page a pour vocation de rassembler des informations sur le robot Delta inventé par [http://people.epfl.ch/cgi-bin/people?id=104789&lang=fr&cvlang=fr Reymond Clavel à l'EPFL], en particulier sur le robot Delta linéaire. En premier lieu, cette article présente des exemples de réalisations et une bibliographie sur le sujet. Ensuite nous discuterons toute la théorie mathématique indispensable à la mise en œuvre d'un robot Delta linéaire: cinématique directe et indirecte, espace de travail et singularités, matrice Jacobienne, dynamique et précision. Des codes de calculs numériques écrient en Python sont aussi fournit afin d'illustrer les calculs sur un exemple réel d'application.
 
|abstract5=
 
|abstract5=
|tags= robot, imprimante 3d, delta
+
|tags= robot, delta, linéaire, imprimante 3d
 
|where=  
 
|where=  
|for_who= ceux qui aiment la cinématique et la théorie des groupes
+
|for_who= ceux qui aiment la cinématique et la théorie des groupes ;-)
 
|official_electrolab_project=
 
|official_electrolab_project=
 
|elecrolab_project_manager=
 
|elecrolab_project_manager=
Line 15: Line 15:
 
}}
 
}}
  
= Todo =
+
= Abstract =
  
* calculer l'espace de travail
+
This wiki page talks on Delta robot invented by Reymond Clavel at EPFL and especially on linear Delta robot.
* calculer l'amplitude angulaire des rotules
+
* ajouter une étude statique et dynamique
+
* étude variationnelle pour évaluer la précision
+
  
= Robot Delta Linéaire =
+
All the mathematical background involved in the oprating of the linear delta robot is discussed in the followings:
 +
* direct and indirect cinematic,
 +
* Jacobian matrix, dynamic and accuracy,
 +
* workspace computation and singularities,
 +
* numerical computations for a real case.
  
La nacelle a 3 degrés de liberté, translation selon les 3 axes en fonction des positions verticales des articulations hautes des trois bras. La nacelle reste toujours parallèle au plan horizontale, contrairement à une plateforme de Stewart (hexapod) qui peut faire varier la longueur de ses 6 bras.
+
= Sous-pages et Liens Externes =
  
[[File:rostock-animation.gif|center]]
+
* Ce [http://github.com/FabriceSalvaire/linear-delta-robot dépôt GitHub] contient les fichiers annexes (codes de calculs en Python, notebooks Maxima): git@github.com:FabriceSalvaire/linear-delta-robot.git
  
= Exemples de réalisation d'imprimante 3D =
+
= Colophon =
 +
 
 +
L'ensemble des calculs ont été vérifié ou calculé avec l'antique logiciel de calcul formel Maxima qui est Open Source (libéré en octobre 1998 sous l'impulsion de William Schelter et l'accord du DOE).
 +
 
 +
Les figures ont été réalisé avec l'époustouflant package Tikz pour LaTeX développé par Till Tantau qui permet de faire des graphiques complexes et de qualité irréprochable. Un exemple en matière de conception logiciel où il est difficile de trouver les limites, bien que TeX est été conçu en 1977.
 +
 
 +
= Les Robots Delta =
 +
 
 +
Le robot Delta a été inventé par Reymond Clavel en 1985, ingénieur doctorant à l'École polytechnique fédérale de Lausanne (EPFL), afin de répondre à la problématique d'un robot manipulateur doté de trois degrés de liberté et une grande accélération. En l’occurrence la première implémentation fût un robot manipulateur de chocolats.
 +
 
 +
Par rapport aux architectures classiques tel que le robot Scara (Selective Compliance Assembly Robot Arm), les robots delta peuvent atteindre de très grandes accélérations mais avec un volume de travail plus restreint et une cinématique bien plus complexe qu'un centre d'usinage 3 axes classique.
 +
 
 +
L'architecture est particulièrement adapté à des mouvements rapides dans l'espace et des efforts sur l'axe z du robot.
 +
 
 +
== Le Robot Delta Linéaire (Vertical) ==
 +
 
 +
La nacelle a 3 degrés de liberté qui sont les trois translations dans l'espace. Elle reste toujours parallèle au plan horizontale, contrairement à une plateforme de Stewart (hexapod) qui peut faire varier la longueur de ses 6 bras et donc faire pivoter la nacelle. La position de la nacelle est entièrement déterminé par les positions verticales des trois coulisseaux.
 +
 
 +
[[File:rostock-animation.gif|frame|center|Animation d'une Rostock (licence ?)]]
 +
 
 +
= Exemples de réalisations =
 +
 
 +
== Exemples de réalisations dans l'industrie ==
 +
 
 +
* Urane SX de Comau (ex RENAULT AUTOMATION de Castres) et développé à l'origine par le LIRMM (Laboratoire d'informatique, de robotique et de micro-électronique CNRS-Université Montpellier 2). Ce centre d’usinage horizontal est basé sur une architecture Delta linéaire et des moteurs linéaires, ce qui la rend particulièrement adapté à l'usinage grande vitesse d'alésages et de lamages.
 +
** [http://www.comau.com/fra/offering_competence/powertrain/products/machining_systems/Pages/urane.aspx lien Urane @Comau]
 +
** [http://www.youtube.com/watch?v=x8YowyrItU4 vidéo de l'Urane SX]
 +
 
 +
== Exemples de réalisations d'imprimantes 3D ==
  
 
* la page [http://reprap.org/wiki/Delta Delta @reprap.org]
 
* la page [http://reprap.org/wiki/Delta Delta @reprap.org]
Line 38: Line 67:
 
* le modèle [http://www.3ders.org/articles/20140326-igus-introduces-world-first-tribo-plastic-filament-for-3d-printers.html Igus 3D Printer]
 
* le modèle [http://www.3ders.org/articles/20140326-igus-introduces-world-first-tribo-plastic-filament-for-3d-printers.html Igus 3D Printer]
  
= Exemples de réalisation de CNC =
+
== Exemples de réalisations de CNCs ==
  
Une Delta Linéaire Verticale piloté par EMC2:
+
Une delta linéaire verticale piloté par EMC2:
 
* [http://www.youtube.com/watch?v=FgnxBaFFDi8 vidéo (séquence avec un comparateur)]
 
* [http://www.youtube.com/watch?v=FgnxBaFFDi8 vidéo (séquence avec un comparateur)]
 
* liaison glissière DIY avec un profilé alu
 
* liaison glissière DIY avec un profilé alu
Line 46: Line 75:
 
* 3*2 bras en tige filetée et montée avec des rotules
 
* 3*2 bras en tige filetée et montée avec des rotules
  
Une Delta Linéaire Horizontale:
+
 
 +
Une delta linéaire horizontale:
 
* [http://www.youtube.com/watch?v=O7pc1B3rnMY vidéo]
 
* [http://www.youtube.com/watch?v=O7pc1B3rnMY vidéo]
 +
  
 
Une plateforme de Stewart (Hexapod) avec une petite tête de fraisage, piloté par EMC2:
 
Une plateforme de Stewart (Hexapod) avec une petite tête de fraisage, piloté par EMC2:
Line 53: Line 84:
 
* [http://www.youtube.com/watch?v=nebJ59TcYlQ vidéo 2]
 
* [http://www.youtube.com/watch?v=nebJ59TcYlQ vidéo 2]
 
* réalisation plutôt sérieuse
 
* réalisation plutôt sérieuse
* 3*2 bras montés sur vis à bille et joint de cardan (pas de détail sur la mécanique)
+
* 3*2 bras montés sur vis à bille et joint de cardan (mais pas de détail sur la mécanique)
  
Design intéressant d'une Delta légère:
+
 
 +
Design intéressant d'une delta classique légère:
 
* [http://www.youtube.com/watch?v=5MOSnFSx8JQ vidéo]
 
* [http://www.youtube.com/watch?v=5MOSnFSx8JQ vidéo]
* moteur d’essuie glace avec encodeur magnétique et électronique ad hoc
+
* moteur d’essuie glace avec encodeur magnétique
* conception légère mais suffisante pour une imprimante 3D (?)
+
* conception légère mais suffisante pour une imprimante 3D (à vérifier)
  
 
= Bibliographie =
 
= Bibliographie =
Line 86: Line 118:
 
== Articles ==
 
== Articles ==
  
* A New Approach to the Design with a Desired Workspace of a DELTA Robot, Xin-Jun Liu et al., Journal of Intelligent and Robotic Systems 39: 209–225, 2004
+
* A New Approach to the Design with a Desired Workspace of a DELTA Robot, Xin-Jun Liu, Journal of Intelligent and Robotic Systems 39: 209–225, 2004.
* Advanced Synthesis of the DELTA Parallel Robot for a Specified Workspace, M.A. Laribi et al.
+
* voir aussi la page de discussions
* Approche multicritère pour la conception optimale des robots parallèles en considérant les performances cinématiques et élastostatiques, A. BELLOULA et al.,  21ème Congrès Français de Mécanique
+
* Argos: A Novel 3-DoF Parallel Wrist Mechanism, Peter Vischer and Reymond Clavel, The International Journal of Robotics Research 2000; 19; 5, DOI: 10.1177/02783640022066707
+
* Dynamic analysis of clavel’s delta parallel robot, Staicu St., Carp-Ciocardia D. C., Proceedings of the 2003 IEEE International Conference on Robotics & Automation Taipei, Taiwan, September 14-19, 2003
+
* Kinematic analysis of a 3-PRS parallel manipulator, Yangmin Li , Qingsong Xu, Robotics and Computer-Integrated Manufacturing 23 (2007) 395–408
+
* Mobilité dans les chaînes cinématiques, application à la conception structurale des robots manipulateurs, Jacques M. HERVÉ, ECP
+
* Performance analysis of 3 DOF Delta parallel robot, Sergiu-Dan Stan et al., HSI 2011
+
* Robots for high speed manipulation, Viera Poppeová et al., ISSN 1330-3651, UDC/UDK 681.51:004.896
+
* Workspace computation in parallel manipulators with three translational degrees of freedom, Giovanni Boschetti, Roberto Caracciolo
+
  
= Cinématique d'un robot Delta Linéaire =
+
= Cinématique d'un robot delta linéaire vertical =
  
 
== Pièces et liaisons cinématiques ==
 
== Pièces et liaisons cinématiques ==
  
Pièces:
+
Les pièces et liaisons composant le robot Delta linaire sont:
* 3 glissières/hélicoïdales formant le châssis
+
* trois coulisseaux en liaison glissière par rapport au bâti. Les trois liaisons glissière forment les trois axes du robot. Ces axes peuvent être verticaux ou horizontaux, mais aussi dans une configuration non parallèle, par exemple disposé sur les arêtes d'une pyramide à base triangulaire (Delta Keops).
* 3 bras reliant la nacelle aux glissières
+
 
* une nacelle
 
* une nacelle
 +
* Deux types de liaison sont possibles entre les coulisseaux et la nacelle:
 +
** configuration avec trois bras et des joints de cardan (rotule à doigt) à chaque extrémité des bras
 +
** configuration avec trois paires de bras (barres parallèles) et des rotules à chaque extrémité des bras
  
Configuration verticale avec rotule:
+
Dans le premier cas la rotation dans l'espace de la nacelle est bloqué par la disposition des joints de cardan. Dans le second cas la paire de bras forme un parallélogramme puisque les longueurs de ses côtés opposés sont identiques. La nacelle est donc aussi bloqué en rotation et en translation horizontale tant que les parallélogrammes ne sont pas en torsion. En pratique on place un ressort entre les barres parallèle au niveau des rotules afin d'éliminer les 6 degrés de liberté parasites (rotation longitudinal) en préchargeant les rotules.
* symétrie selon l'axe verticale d'angle 2*pi/3
+
* liaison glissière/hélicoïdale verticale
+
[[File:cinematic-chain.png|thumb|center|800px|chaîne cinématique]]
* liaison rotule à chaque extrémité du double bras (un ressort placé entre le double bras limite la rotation des bras)
+
  
Configuration verticale avec joint de cardan:
+
Calcul du degré d'hyperstatisme pour la configuration avec des rotules:
* symétrie selon l'axe verticale d'angle 2*pi/3
+
* liaison glissière/hélicoïdale verticale
+
* liaison rotule à doigt (cardan) à chaque extrémité du bras
+
  
== Cinématique directe ==
+
* Nombre de pièces: <math> n = 1 + 1 + 3 \times (1+2) = 11 </math> pièces
 +
* Nombre d'équations statiques: <math> Es = 6(n-1) = 60 </math> équations
 +
* Nombre d'inconnues statiques: 3 liaisons glissières et 12 liaisons rotules, soit <math> Is = 3 \times 5 + 12 \times 3 = 51 </math> inconnues
 +
 
 +
La mobilités du mécanismes est la somme des mobilités utiles et internes: <math> m = mu + mi = 3 + 6 = 9 </math>
 +
 
 +
D’après la théorie des mécanismes, le degré d'hyperstatisme d'une chaîne cinématique est <math> h = Is - (Es - m) </math>.
 +
 
 +
Dans notre cas il vient <math> h = 51 + 9 - 60 = 0 </math>, le système est donc isostatique.
 +
 
 +
== Géométrie et symétrie du robot ==
 +
 
 +
[[image:schema-top-view.png|right|400px]]
 +
[[image:schema-side-view.png|right|400px]]
 +
[[image:schema-top-view-moved.png|right|400px]]
 +
[[image:schema-top-view-moved-sphere.png|right|400px]]
  
 
Glissement progressif vers le plaisir ... cinématique!
 
Glissement progressif vers le plaisir ... cinématique!
  
Le référentiel de la machine à pour origine <math>O</math> le centre de symétrie du plateau bas, l'axe <math>x</math> pointe vers un des trois axes verticaux et l'axe <math>z</math> pointe vers le haut. Le référentiel forme un trièdre direct, ce qui défini l'axe <math>y</math>.
+
Lien vers le fichier Maxima [http://github.com/FabriceSalvaire/linear-delta-robot/blob/master/linear-delta-robot.mac linear-delta-robot.mac].
  
Le centre des rotules au niveau des trois axes verticaux sont notés <math>A_i</math> où <math>i=1,2,3</math> et sont disposés de manière équidistante sur un cercle de centre <math>R</math> aux angles <math>\theta_i = \frac{2 \pi}{3} (i -1)</math> et à la position <math>z_i</math> sur l'axe vertical.
+
Le robot delta linéaire verticale est invariant par translation selon l'axe vertical (dans le cas d'un axe infini) et invariant par rotation de <math>\frac{2 \pi}{3}</math> selon ce même axe. Les trois axes verticaux forment un triangle équilatéral et sont inscrit dans un cercle centré à l'origine du référentiel.
 +
 
 +
Le référentiel de la machine à pour origine <math>O</math> le centre de symétrie du plateau bas, l'axe des <math>x</math> pointe vers un des trois axes verticaux et l'axe des <math>z</math> pointe vers le haut. Le référentiel forme un trièdre direct, ce qui défini l'axe des <math>y</math>.
 +
 
 +
Les centres des rotules au niveau des coulisseaux sont notés <math>A_i</math> où <math>i=1,2,3</math> et sont disposés de manière équidistante sur un cercle de centre <math>R</math> aux angles <math>\theta_i = \frac{2 \pi}{3} (i -1)</math> et à la position <math>z_i</math> sur l'axe vertical.
  
 
On note <math> \mathcal{R}_i =
 
On note <math> \mathcal{R}_i =
\begin{pmatrix}
+
  \begin{pmatrix}
  cos(\theta_i) & - sin(\theta_i) \\
+
    cos(\theta_i) & - sin(\theta_i) \\
  sin(\theta_i) & cos(\theta_i)
+
    sin(\theta_i) & cos(\theta_i)
\end{pmatrix}
+
  \end{pmatrix}
 
</math>
 
</math>
 
la rotation d'angle <math>\theta_i</math>.
 
la rotation d'angle <math>\theta_i</math>.
  
 
Les rotations correspondantes aux trois axes sont:
 
Les rotations correspondantes aux trois axes sont:
<math> \mathcal{R}_1 = I_2
+
<math>
\quad
+
  \mathcal{R}_1 = I_2
\mathcal{R}_2 =
+
  \quad
\begin{pmatrix}
+
  \mathcal{R}_2 = -\frac{1}{2}
  -\frac{1}{2} & -\frac{\sqrt{3}}{2} \\
+
  \begin{pmatrix}
  \frac{\sqrt{3}}{2} & -\frac{1}{2}
+
    1 & \sqrt{3} \\
\end{pmatrix}
+
    -\sqrt{3} & 1
\quad
+
  \end{pmatrix}
\mathcal{R}_3 = \begin{pmatrix}
+
  \quad
  -\frac{1}{2} & \frac{\sqrt{3}}{2} \\
+
  \mathcal{R}_3 = -\frac{1}{2}
  -\frac{\sqrt{3}}{2} & -\frac{1}{2}
+
  \begin{pmatrix}
\end{pmatrix}  
+
    1 & -\sqrt{3} \\
 +
    \sqrt{3} & 1
 +
  \end{pmatrix}  
 
</math>
 
</math>
  
 
Le centre de la nacelle est notée <math> N = \begin{pmatrix} x \\ y \\ z \end{pmatrix} </math> et les centres des rotules sont notés <math>N_i</math> et sont disposés sur un cercle de centre <math>r</math> et aux angles <math>\theta_i</math>.
 
Le centre de la nacelle est notée <math> N = \begin{pmatrix} x \\ y \\ z \end{pmatrix} </math> et les centres des rotules sont notés <math>N_i</math> et sont disposés sur un cercle de centre <math>r</math> et aux angles <math>\theta_i</math>.
  
Les bras ont une longueur constante <math> L = \lVert \overrightarrow{A_i N_i \,} \rVert </math>.
+
Les bras ont une longueur constante <math> L = \lVert \overrightarrow{A_i N_i \,} \rVert </math>. On note <math>\rho = R - r </math> la longueur minimal des bras pour lequel la nacelle est connecté mais figé au centre. Usuellement on choisira une longueur plus grande afin d'avoir une amplitude de mouvement suffisante. Par construction la nacelle sera toujours en dessous des articulations. Le rayon <math>\rho</math> corresponds aussi à la limite au delà duquel la nacelle peut heurté les axes verticaux, on considère par la suite que l'espace de travail est nécessairement inclue dans ce cercle.
  
 
La position de la nacelle est entièrement déterminé par les coordonnées <math>z_i</math>.
 
La position de la nacelle est entièrement déterminé par les coordonnées <math>z_i</math>.
  
On résout la cinématique directe en fermant la chaîne cinématique pour chaque bras:
+
== Cinématique indirecte ==
 +
 
 +
On résout la cinématique indirecte en fermant la chaîne cinématique pour chaque bras:
 
<math>
 
<math>
\overrightarrow{A_i N_i \,} =
+
  \overrightarrow{A_i N_i \,} =
\overrightarrow{O N \,} + \overrightarrow{N N_i \,} - \overrightarrow{O A_i \,}
+
  \overrightarrow{O N \,} + \overrightarrow{N N_i \,} - \overrightarrow{O A_i \,}
 
</math>.
 
</math>.
  
Il vient
+
On définit les points <math>
 +
  P_i =
 +
  \begin{pmatrix}
 +
  x_i \\
 +
  y_i \\
 +
  z_i
 +
  \end{pmatrix}
 +
</math>
 +
 
<math>
 
<math>
\overrightarrow{A_i N_i \,} =
+
  \begin{pmatrix} x_i \\ y_i \end{pmatrix} =
\begin{pmatrix}
+
  \mathcal{R}_i \begin{pmatrix} \rho \\ 0 \end{pmatrix}
x - x_i \\
+
</math> qui sont les points homothétiques des points <math>A_i</math> sur le cercle de rayon <math>\rho</math>.
y - y_i \\
+
 
z - z_i
+
Les coordonnées des points <math>P_i</math> s'écrivent:
 +
<math>
 +
  \mathcal{P}_1 =  \rho \begin{pmatrix} 1 \\ 0 \\ z_1 \end{pmatrix}
 +
  \quad
 +
  \mathcal{P}_2 = \frac{\rho}{2} \begin{pmatrix} -1 \\ \sqrt{3} \\ z_2 \end{pmatrix}
 +
  \quad
 +
  \mathcal{P}_3 = - \frac{\rho}{2} \begin{pmatrix} 1 \\ \sqrt{3} \\ z_3 \end{pmatrix}
 +
</math>
 +
 
 +
Il vient <math> \overrightarrow{A_i N_i \,} = N - P_i </math>.
 +
 
 +
À partir de la norme de ce vecteur, on obtient un système de 3 équations reliant les coordonnées <math>z_i</math> et la position de la nacelle:
 +
 
 +
<math> L^2 = (x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2 </math>
 +
 
 +
Chaque équation représente une sphère de rayon <math>L</math> centré sur le projeté du point <math>P_i</math> sur le plan de la nacelle. On choisit ce point car il permet de déterminer <math>z_i</math>.
 +
 
 +
On tire du système d'équations la relation de la cinématique indirecte:
 +
 
 +
<math> z_i = z + \sqrt{L^2 - (x - x_i)^2 - (y - y_i)^2} </math>
 +
 
 +
puisque <math> z < z_i </math> par construction.
 +
 
 +
On en déduit la contrainte géométrique <math> (x - x_i)^2 + (y - y_i)^2 < L^2 </math>, le centre de la nacelle est inscrit dans un cercle de rayon <math>L</math> centré sur le point <math>P_i</math>. L'intersection de ces trois cercles forment l'espace de travail de la machine.
 +
 
 +
Le système d'équations s'écrit en exprimant les points <math>P_i</math>:
 +
 
 +
<math>
 +
\begin{align}
 +
  L^2 & = \left(x - \rho\right)^2 + y^2 + \left(z - z_1\right)^2 \\
 +
  L^2 & = \left(x + \frac{\rho}{2}\right)^2 + \left(y + \frac{\sqrt{3}}{2}\rho\right)^2 + \left(z - z_2\right)^2 \\
 +
  L^2 & = \left(x + \frac{\rho}{2}\right)^2 + \left(y - \frac{\sqrt{3}}{2}\rho\right)^2 + \left(z - z_3\right)^2
 +
\end{align}
 +
</math>
 +
 
 +
== Matrice Jacobienne ==
 +
 
 +
En dérivant le système d'équations par rapport au temps, on obtiens le système d'équations différentielles suivant :
 +
 
 +
<math>
 +
\Delta z_i\dot{z_i} = \Delta x_i\dot{x} + \Delta y_i\dot{y} + \Delta z_i\dot{z}
 +
</math>
 +
 
 +
où <math> \Delta X_i = X - X_i </math>
 +
 
 +
qui se réécrit sous forme matricielle :
 +
 
 +
<math> \dot{Z} = J \dot{P} </math>
 +
 
 +
où <math> \dot{P} = \begin{pmatrix} \dot{x} \\ \dot{y} \\ \dot{z} \end{pmatrix} </math> et
 +
<math> \dot{Z} = \begin{pmatrix} \dot{z_1} \\ \dot{z_2} \\ \dot{z_3} \end{pmatrix} </math>
 +
 
 +
La matrice Jacobienne <math>J</math> (ou Jacobien) s'écrit alors :
 +
 
 +
<math>
 +
J = \begin{pmatrix}
 +
\frac{\Delta x_1}{\Delta z_1} & \frac{\Delta y_1}{\Delta z_1} & 1 \\
 +
\frac{\Delta x_2}{\Delta z_2} & \frac{\Delta y_2}{\Delta z_2} & 1 \\
 +
\frac{\Delta x_3}{\Delta z_3} & \frac{\Delta y_3}{\Delta z_3} & 1 \\
 
\end{pmatrix}
 
\end{pmatrix}
 
</math>
 
</math>
 +
 +
Le Jacobien permet de calculer la vitesse des coulisseaux en fonction de la vitesse de la nacelle.
 +
 +
Les points singuliers peuvent être déterminé à partir du déterminant du Jacobien :
 +
 +
<math>
 +
det(J) = \frac{\eta}{\Delta z_1\,\Delta z_2\,\Delta z_3}
 +
</math>
 +
 
 
 
<math>
 
<math>
\begin{pmatrix} x_i \\ y_i \end{pmatrix} =
+
\eta = (\Delta x_1\,\Delta y_2 - \Delta x_2\,\Delta y_1)\Delta z_3 + (\Delta x_3\,\Delta y_1 - \Delta x_1\,\Delta y_3)\Delta z_2 + (\Delta x_2\,\Delta y_3 - \Delta x_3\,\Delta y_2)\Delta z_1
\mathcal{R}_i \begin{pmatrix} R - r \\ 0 \end{pmatrix}
+
</math>
</math>.
+
  
À partir de la norme de ce vecteur, on obtient un système de 3 équations reliant les coordonnées <math>z_i</math> et la position de la nacelle:
+
Le déterminant représente le volume du parallélépipède défini par les trois vecteurs composant le Jacobien: <math> \left( \frac{\Delta x_i}{\Delta z_i}, \frac{\Delta y_i}{\Delta z_i}, 1 \right) </math>.
  
<math> L^2 = (x_i - x)^2 + (y_i - y)^2 + (z_i - z)^2 </math>
+
L'inverse du Jacobien s'écrit:
  
Chaque équation représente une sphère de rayon <math>L</math> centré sur la nacelle.
+
<math>
 +
J^{-1} =
 +
\frac{1}{\eta}
 +
\begin{pmatrix}
 +
  \Delta y_2\,\Delta z_1\,\Delta z_3 - \Delta y_3\,\Delta z_1\,\Delta z_2 &
 +
-\Delta y_1\,\Delta z_2\,\Delta z_3 + \Delta y_3\,\Delta z_1\,\Delta z_2 &
 +
  \Delta y_1\,\Delta z_2\,\Delta z_3 - \Delta y_2\,\Delta z_1\,\Delta z_3 \\
 +
-\Delta x_2\,\Delta z_1\,\Delta z_3 + \Delta x_3\,\Delta z_1\,\Delta z_2 &
 +
  \Delta x_1\,\Delta z_2\,\Delta z_3 - \Delta x_3\,\Delta z_1\,\Delta z_2 &
 +
-\Delta x_1\,\Delta z_2\,\Delta z_3 + \Delta x_2\,\Delta z_1\,\Delta z_3 \\
 +
  (\Delta x_2\,\Delta y_3 - \Delta x_3\,\Delta y_2)\Delta z_1 &
 +
-(\Delta x_1\,\Delta y_3 - \Delta x_3\,\Delta y_1)\Delta z_2 &
 +
(\Delta x_1\,\Delta y_2 - \Delta x_2\,\Delta y_1)\Delta z_3 \\
 +
\end{pmatrix}
 +
</math>
  
D'où on tire la relation de la cinématique directe:
+
Le système est non singulier si et seulement si le déterminant ou de manière équivalente <math>\eta</math> est différent de zéro.
  
<math> z_i = z + \sqrt{L^2 - (x_i - x)^2 - (y_i - y)^2} </math>
+
== Cinématique directe ==
  
puisque <math> z < z_i </math>
+
Le système d'équations de polynômes du second degré issu de la fermeture de la chaîne cinématique:
  
On en déduit la contrainte géométrique <math> (x_i - x)^2 + (y_i - y)^2 < L^2 </math>, le point virtuel <math> P_i </math> est inscrit dans un cercle de rayon <math> L </math>.
+
<math> L^2 = (x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2 </math>
  
On réécrit le systèmes d'équations en introduisant les cordonnées <math>q_i</math> comme cela:
+
représente l'intersection de trois sphères de rayon <math>L</math> et de centre <math>P_i</math>. L'intersection de ses sphères donne la position de la nacelle en fonction de la position des bras.
  
<math> L^2 - (z_i - z)^2 = q_i = (x_i - x)^2 + (y_i - y)^2 </math>
+
La résolution de ce système d'équations est parfois appelé trilateration dans la littérature.
  
avec <math> z_i = z^2 - \sqrt{L^2 - q_i^2} </math>
+
Afin de résoudre ce système d'équations, nous allons effectuer un changement de repère qui va simplifier les calculs. La nouvelle origine va coïncide au point <math>P_1</math>. L'axe des X pointe vers le point <math>P_2</math> et le plan XY est porté par les trois points <math>P_i</math>. L'axe des Y pointe du côté du point <math>P_3</math>. L'axe des Y est déterminé de manière à formé un trièdre direct.
  
En calcul variationnel, on obtient
+
Dans ce nouveau repère les coordonnées des points <math>P_i</math> s'écrivent:
  
<math> d z_i = - \frac{q_i}{\sqrt{L^2 - q_i^2}} d q_i </math>
+
<math>
 +
  \mathcal{P}_1 = \begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix}
 +
  \quad
 +
  \mathcal{P}_2 = \begin{pmatrix} d \\ 0 \\ 0 \end{pmatrix}
 +
  \quad
 +
  \mathcal{P}_3 = \begin{pmatrix} i \\ j \\ 0 \end{pmatrix}
 +
</math>
  
== Cinématique dans un plan z ==
+
et le système d'équations devient:
  
Dans le cas d'un mouvement linéaire <math> y = \alpha x + \beta </math>, on obtient
+
<math>
 +
\begin{align}
 +
  L^2 &= x^2 + y^2 + z^2 \\
 +
  L^2 &= (x - d)^2 + y^2 + z^2 \\
 +
  L^2 &= (x - i)^2 + (y - j)^2 + z^2
 +
\end{align}
 +
</math>
  
<math> q_i = (x_i - x)^2 + (y_i - \alpha x - \beta)^2 </math>
+
Note concernant la résolution d'un système d'équations: si <math> f(x,y) = 0 </math> et <math> g(x,y) = 0 </math> alors le système <math> f(x,y) - g(x,y) = 0 </math> et <math> f(x,y) = 0 </math> est équivalent au premier, càd. à la seule condition que l'on conserve une des deux équations car la différence de deux nombres implique qu'ils sont égaux mais pas nulles.
  
En calcul variationnel, on obtient
+
Pour résoudre ce nouveau système d'équations, on commence par soustraire la première et la deuxième équation et on résout pour <math>x</math>, il vient:
  
<math> d q_i = 2 \left\lbrace (1 + \alpha^2) x - x_i - \alpha y_i + \alpha \beta \right\rbrace dx </math>
+
<math> x = \frac{d}{2} </math>
  
via <math> -2 \left\lbrace (x_i - x) + \alpha (y_i - \alpha x - \beta) \right\rbrace </math>
+
On réinjecte ce résultat dans la première équation et on obtient l'équation d'un cercle correspondant à l'intersection des deux premières sphères:
  
 +
<math> z^2 + y^2 = L^2 - \frac{d}{2}^2 </math>
  
Dans le cas d'un mouvement circulaire <math> (x - x_c)^2 + (y - y_c)^2 = C^2 </math>, on obtient
+
Notez que cette équation à une solution réelle si <math> d \leq 2L </math>.
  
<math> q_i = (x_i - x)^2 + \left\lbrace y_i - y_c - \sqrt{C^2 - (x - x_c)^2} \right\rbrace^2 </math>
+
À présent on substitue <math> z^2 = L^2 - x^2 - y^2 </math> dans l'équation de la troisième sphère et on résout pour  <math>y</math>:
  
= Conception =
+
<math>
 +
\begin{align}
 +
  y  &= \frac{i^2 + j^2}{2j} - \frac{i}{j}x \\
 +
    &= \frac{i^2 + j^2 - id}{2j}
 +
\end{align}
 +
</math>
  
== Châssis ==
+
À présent nous avons résolut les deux premières coordonnées et nous pouvons tirer la troisième à partir de l'équation du la première sphère:
  
* deux plateaux en contreplaqué / Alu
+
<math>
* écrous à enfoncer pour le bois
+
\begin{align}
* 6 équerres usinées en alu (axe, palier de la vis, fixation du moteur)
+
  z  &= \pm \sqrt{L^2 - x^2 - y^2} \\
* 6 paliers
+
    &= \pm \sqrt{L^2 - \frac{d^2}{4} - \left( \frac{i^2 + j^2 - id}{2j} \right)^2 }
 +
\end{align}
 +
</math>
  
== Liaison glissière ==
+
Notez que cette solution est réelle si et seulement si la troisième sphère et le cercle ont une intersection, càd. si la racine est positive ou nulle.
  
La Rostock réalise la liaison glissière avec deux axes verticaux et une courroie entre les deux axes. Cette solution est assez simple, mais pas précise sans tendeur de courroie.
+
Afin d'exprimer les coordonnées de la solution dans le référentiel d'origine, nous allons exprimer le changement de repère:
  
Solution 1 (*3):
+
<math> P = P_1 + x\;\hat{e}_x + y\;\hat{e}_y + z\;\hat{e}_z </math>
* un axe verticale avec coussinet
+
** arbre pour guidage linéaire acier trempé et rectifié HPC p200 Za ~ 13 € en D 10 mm
+
** douille à bille de précision fermée HPC p210 KBww ~ 10 €
+
* une vis trapézoïdale avec un écrou en bronze
+
** vis trapézoïdale acier HPC p262 ~ 10 € (fabriqué par roulage donc pas au lab)
+
** écrou cylindrique bronze HPC p272 LRM ~ 13 € (usinable au lab?)
+
* pièce usinée en alu
+
* choisir un diamètre suffisant pour restreindre le flambage
+
  
Quel impact sur le dynamisme, puissance du moteur?
+
Le premier vecteur unitaire s'écrit:
  
== Actionneur ==
+
<math> \hat{e}_x = \frac{P_2 - P_1}{\| P_2 - P_1 \|} </math>
  
* moteur pas à pas
+
et les deux premières distances:
* accouplement:
+
** HPC p38 BG ~ 20 €
+
** durite de voiture
+
  
== Rotule / Cardan ==
+
<math>
 +
\begin{align}
 +
  d &= \| P_2 - P_1 \| \\
 +
  i &= (P_3 - P_1)  \cdot \hat{e}_x
 +
\end{align}
 +
</math>
  
À priori on ne peut pas fabriquer de rotule au lab, mais des joint de cardan, oui.
+
Le second vecteur unitaire s'écrit:
  
Embout à rotule femelle, contact acier/bronze autolubrifiant:
+
<math> \hat{e}_y = \frac{P_3 - P_1 - i\;\hat{e}_x}{\| P_3 - P_1 - i\;\hat{e}_x \|} </math>
* HPC p108 CFFrh/lh ~12 € * 12 (3*2*2) => 150 € !
+
  
Autre solution d'articulation qui est usinable au lab:
+
et la troisième distance:
* sphère usiné au tour
+
* coupelle en teflon (usiné avec une fraise sphérique)
+
* porte-coupelle
+
* un ressort pour maintenir l'articulation
+
* mais c'est moins solide
+
  
La CNC hexapod met en œuvre des joints de cardan: avantage/inconvénient?
+
<math> j = ( P_3 - P_1 ) \cdot \hat{e}_y </math>
* [http://www.youtube.com/watch?v=hPE3Qr-ECtQ video]
+
* un seul bras
+
* plus robuste
+
* plus d'amplitude ?
+
  
== Bras ==
+
Le troisième vecteur unitaire s'écrit <math> \hat{e}_z = \hat{e}_x \times \hat{e}_y </math>
  
Étudier une solution à base de flèche en carbone type chasse (diamètre ~ 9 mm), tige de carbone de très bonne qualité, ~ 12 € (France Archerie).
+
Nous avons à présent résolut la cinématique directe de manière analytique, mais il n'existe pas d'expression simple de la position de la nacelle en fonction des positions des bras. C'est pourquoi nous ne chercherons pas à développer les expressions.
  
== Nacelle ==
+
On définit <math> z_{ij} = z_i - z_j </math>.
  
Pièce usinée en alu
+
<math>
 +
  \mathcal{P}_{21} = \begin{pmatrix} -\frac{3}{2}\rho \\  \frac{\sqrt{3}}{2}\rho \\ z_{21} \end{pmatrix} \quad
 +
  \mathcal{P}_{31} = \begin{pmatrix} -\frac{3}{2}\rho \\ -\frac{\sqrt{3}}{2}\rho \\ z_{31} \end{pmatrix} \quad
 +
  \mathcal{P}_{32} = \begin{pmatrix} 0 \\ -\sqrt{3}\rho \\ z_{32} \end{pmatrix}
 +
</math>
 +
 
 +
<math>
 +
  \mathcal{L}_{21} = \sqrt{3\rho^2 + z_{21}^2} \quad
 +
  \mathcal{L}_{31} = \sqrt{3\rho^2 + z_{31}^2} \quad
 +
  \mathcal{L}_{32} = \sqrt{3\rho^2 + z_{32}^2}
 +
</math>
 +
 
 +
<math>
 +
  x\;\hat{e}_x = \frac{\mathcal{P}_{21}}{2} =
 +
  \begin{pmatrix} -\frac{3}{4}\rho \\ \frac{\sqrt{3}}{4}\rho \\ \frac{z_{21}}{2} \end{pmatrix}
 +
</math>
 +
 
 +
<math>
 +
  i = \frac{\mathcal{P}_{31} . \mathcal{P}_{21}}{d} = \frac{1}{d} \left( \frac{3}{2}\rho^2 + z_{21}z_{31} \right)
 +
</math>
 +
 
 +
<math>
 +
i^2 + j^2 = \mathcal{L}_{31}^2 = 3\rho^2 + z_{31}^2
 +
</math>
 +
 
 +
<math>
 +
  y = \frac{\mathcal{L}_{31}^2 - \mathcal{P}_{31}\mathcal{P}_{21}}{2 \mathcal{P}_{31} . \hat{e}_y}
 +
    = \frac{\frac{3}{2}\rho^2 + z_{31}^2 - z_{21}z_{31}}{2 \mathcal{P}_{31} . \hat{e}_y}
 +
</math>
 +
 
 +
<math>
 +
  i . \hat{e}_x = \mathcal{P}_{31} . \mathcal{P}_{21} \frac{\mathcal{P}_{21}}{d}
 +
</math>

Latest revision as of 19:59, 6 May 2014

Robot Delta
Auteur Fabrice
Tags du projet robot, delta, linéaire, imprimante 3d
Utilisateur final ceux qui aiment la cinématique et la théorie des groupes ;-)
Type de projet

Projet personnel de Fabrice

Projet Robot Delta

Cette page a pour vocation de rassembler des informations sur le robot Delta inventé par Reymond Clavel à l'EPFL, en particulier sur le robot Delta linéaire. En premier lieu, cette article présente des exemples de réalisations et une bibliographie sur le sujet. Ensuite nous discuterons toute la théorie mathématique indispensable à la mise en œuvre d'un robot Delta linéaire: cinématique directe et indirecte, espace de travail et singularités, matrice Jacobienne, dynamique et précision. Des codes de calculs numériques écrient en Python sont aussi fournit afin d'illustrer les calculs sur un exemple réel d'application.




Abstract

This wiki page talks on Delta robot invented by Reymond Clavel at EPFL and especially on linear Delta robot.

All the mathematical background involved in the oprating of the linear delta robot is discussed in the followings:

  • direct and indirect cinematic,
  • Jacobian matrix, dynamic and accuracy,
  • workspace computation and singularities,
  • numerical computations for a real case.

Sous-pages et Liens Externes

  • Ce dépôt GitHub contient les fichiers annexes (codes de calculs en Python, notebooks Maxima): git@github.com:FabriceSalvaire/linear-delta-robot.git

Colophon

L'ensemble des calculs ont été vérifié ou calculé avec l'antique logiciel de calcul formel Maxima qui est Open Source (libéré en octobre 1998 sous l'impulsion de William Schelter et l'accord du DOE).

Les figures ont été réalisé avec l'époustouflant package Tikz pour LaTeX développé par Till Tantau qui permet de faire des graphiques complexes et de qualité irréprochable. Un exemple en matière de conception logiciel où il est difficile de trouver les limites, bien que TeX est été conçu en 1977.

Les Robots Delta

Le robot Delta a été inventé par Reymond Clavel en 1985, ingénieur doctorant à l'École polytechnique fédérale de Lausanne (EPFL), afin de répondre à la problématique d'un robot manipulateur doté de trois degrés de liberté et une grande accélération. En l’occurrence la première implémentation fût un robot manipulateur de chocolats.

Par rapport aux architectures classiques tel que le robot Scara (Selective Compliance Assembly Robot Arm), les robots delta peuvent atteindre de très grandes accélérations mais avec un volume de travail plus restreint et une cinématique bien plus complexe qu'un centre d'usinage 3 axes classique.

L'architecture est particulièrement adapté à des mouvements rapides dans l'espace et des efforts sur l'axe z du robot.

Le Robot Delta Linéaire (Vertical)

La nacelle a 3 degrés de liberté qui sont les trois translations dans l'espace. Elle reste toujours parallèle au plan horizontale, contrairement à une plateforme de Stewart (hexapod) qui peut faire varier la longueur de ses 6 bras et donc faire pivoter la nacelle. La position de la nacelle est entièrement déterminé par les positions verticales des trois coulisseaux.

Animation d'une Rostock (licence ?)

Exemples de réalisations

Exemples de réalisations dans l'industrie

  • Urane SX de Comau (ex RENAULT AUTOMATION de Castres) et développé à l'origine par le LIRMM (Laboratoire d'informatique, de robotique et de micro-électronique CNRS-Université Montpellier 2). Ce centre d’usinage horizontal est basé sur une architecture Delta linéaire et des moteurs linéaires, ce qui la rend particulièrement adapté à l'usinage grande vitesse d'alésages et de lamages.

Exemples de réalisations d'imprimantes 3D

Exemples de réalisations de CNCs

Une delta linéaire verticale piloté par EMC2:


Une delta linéaire horizontale:


Une plateforme de Stewart (Hexapod) avec une petite tête de fraisage, piloté par EMC2:

  • vidéo 1
  • vidéo 2
  • réalisation plutôt sérieuse
  • 3*2 bras montés sur vis à bille et joint de cardan (mais pas de détail sur la mécanique)


Design intéressant d'une delta classique légère:

  • vidéo
  • moteur d’essuie glace avec encodeur magnétique
  • conception légère mais suffisante pour une imprimante 3D (à vérifier)

Bibliographie

Tous les PDF sont disponible via Google ...

Raymond Clavel, le père du robot Delta

Livres

  • A mathematical introduction to robotic manipulation, Richard M. Murray, California Institute of Technology, Zexiang Li, Hong Kong University of Science and Technology, S. Shankar Sastry, University of California, Berkeley, CRC Press, http://www.cds.caltech.edu/~murray/mlswiki
  • Parallel Robots, J.-P. MERLET, INRIA, Sophia-Antipolis, Springer
  • Robot Manipulator Control Theory and Practice, Frank L.Lewis, University of Texas, Darren M.Dawson, University Clemson, Chaouki T.Abdallah, University of New Mexico, Marcel Dekker

Thèses

  • Analyse cinétostatique des machines parallèles à translations, thèse de Félix MAJOU, École Centrale Nantes
  • Analysis and Synthesis of Parallel Robots for Medical Applications, thesis of Nabil Simaan, Technion, Israel Institute Of Technology
  • Conception de robots de très haute précision à articulations flexibles: interaction dynamique-commande, thèse de Jean-Philippe BACHER, EPFL
  • Contribution à l’amélioration de la précision des robots parallèles, thèse de David Corbel, université Montpellier II
  • Design and Analysis of a Three Degrees of Freedom Parallel Kinematic Machine, thesis of Xiaolin Hu, University of Ontario Institute of Technology
  • Improving the accuracy of parallel robots, Thesis of Peter Vischer, EPFL

Articles

  • A New Approach to the Design with a Desired Workspace of a DELTA Robot, Xin-Jun Liu, Journal of Intelligent and Robotic Systems 39: 209–225, 2004.
  • voir aussi la page de discussions

Cinématique d'un robot delta linéaire vertical

Pièces et liaisons cinématiques

Les pièces et liaisons composant le robot Delta linaire sont:

  • trois coulisseaux en liaison glissière par rapport au bâti. Les trois liaisons glissière forment les trois axes du robot. Ces axes peuvent être verticaux ou horizontaux, mais aussi dans une configuration non parallèle, par exemple disposé sur les arêtes d'une pyramide à base triangulaire (Delta Keops).
  • une nacelle
  • Deux types de liaison sont possibles entre les coulisseaux et la nacelle:
    • configuration avec trois bras et des joints de cardan (rotule à doigt) à chaque extrémité des bras
    • configuration avec trois paires de bras (barres parallèles) et des rotules à chaque extrémité des bras

Dans le premier cas la rotation dans l'espace de la nacelle est bloqué par la disposition des joints de cardan. Dans le second cas la paire de bras forme un parallélogramme puisque les longueurs de ses côtés opposés sont identiques. La nacelle est donc aussi bloqué en rotation et en translation horizontale tant que les parallélogrammes ne sont pas en torsion. En pratique on place un ressort entre les barres parallèle au niveau des rotules afin d'éliminer les 6 degrés de liberté parasites (rotation longitudinal) en préchargeant les rotules.

chaîne cinématique

Calcul du degré d'hyperstatisme pour la configuration avec des rotules:

  • Nombre de pièces: n = 1 + 1 + 3 × ( 1 + 2 ) = 11 𝑛 1 1 3 1 2 11 pièces
  • Nombre d'équations statiques: E s = 6 ( n - 1 ) = 60 𝐸 𝑠 6 𝑛 1 60 équations
  • Nombre d'inconnues statiques: 3 liaisons glissières et 12 liaisons rotules, soit I s = 3 × 5 + 12 × 3 = 51 𝐼 𝑠 3 5 12 3 51 inconnues
La mobilités du mécanismes est la somme des mobilités utiles et internes: m = m u + m i = 3 + 6 = 9 𝑚 𝑚 𝑢 𝑚 𝑖 3 6 9 D’après la théorie des mécanismes, le degré d'hyperstatisme d'une chaîne cinématique est h = I s - ( E s - m ) 𝐼 𝑠 𝐸 𝑠 𝑚 . Dans notre cas il vient h = 51 + 9 - 60 = 0 51 9 60 0 , le système est donc isostatique.

Géométrie et symétrie du robot

Schema-top-view.png
Schema-side-view.png
Schema-top-view-moved.png
Schema-top-view-moved-sphere.png

Glissement progressif vers le plaisir ... cinématique!

Lien vers le fichier Maxima linear-delta-robot.mac.

Le robot delta linéaire verticale est invariant par translation selon l'axe vertical (dans le cas d'un axe infini) et invariant par rotation de 2 π 3 2 𝜋 3 selon ce même axe. Les trois axes verticaux forment un triangle équilatéral et sont inscrit dans un cercle centré à l'origine du référentiel.

Le référentiel de la machine à pour origine O 𝑂 le centre de symétrie du plateau bas, l'axe des x 𝑥 pointe vers un des trois axes verticaux et l'axe des z 𝑧 pointe vers le haut. Le référentiel forme un trièdre direct, ce qui défini l'axe des y 𝑦 .

Les centres des rotules au niveau des coulisseaux sont notés A i subscript 𝐴 𝑖 i = 1 , 2 , 3 𝑖 1 2 3 et sont disposés de manière équidistante sur un cercle de centre R 𝑅 aux angles θ i = 2 π 3 ( i - 1 ) subscript 𝜃 𝑖 2 𝜋 3 𝑖 1 et à la position z i subscript 𝑧 𝑖 sur l'axe vertical.

On note i = ( c o s ( θ i ) - s i n ( θ i ) s i n ( θ i ) c o s ( θ i ) ) subscript 𝑖 𝑐 𝑜 𝑠 subscript 𝜃 𝑖 𝑠 𝑖 𝑛 subscript 𝜃 𝑖 𝑠 𝑖 𝑛 subscript 𝜃 𝑖 𝑐 𝑜 𝑠 subscript 𝜃 𝑖 la rotation d'angle θ i subscript 𝜃 𝑖 .

Les rotations correspondantes aux trois axes sont:

1 = I 2 2 = - 1 2 ( 1 3 - 3 1 ) 3 = - 1 2 ( 1 - 3 3 1 ) formulae-sequence subscript 1 subscript 𝐼 2 formulae-sequence subscript 2 1 2 1 3 3 1 subscript 3 1 2 1 3 3 1

Le centre de la nacelle est notée N = ( x y z ) 𝑁 𝑥 𝑦 𝑧 et les centres des rotules sont notés N i subscript 𝑁 𝑖 et sont disposés sur un cercle de centre r 𝑟 et aux angles θ i subscript 𝜃 𝑖 .

Les bras ont une longueur constante L = A i N i 𝐿 norm subscript 𝐴 𝑖 subscript 𝑁 𝑖 . On note ρ = R - r 𝜌 𝑅 𝑟 la longueur minimal des bras pour lequel la nacelle est connecté mais figé au centre. Usuellement on choisira une longueur plus grande afin d'avoir une amplitude de mouvement suffisante. Par construction la nacelle sera toujours en dessous des articulations. Le rayon ρ 𝜌 corresponds aussi à la limite au delà duquel la nacelle peut heurté les axes verticaux, on considère par la suite que l'espace de travail est nécessairement inclue dans ce cercle.

La position de la nacelle est entièrement déterminé par les coordonnées z i subscript 𝑧 𝑖 .

Cinématique indirecte

On résout la cinématique indirecte en fermant la chaîne cinématique pour chaque bras:

A i N i = O N + N N i - O A i subscript 𝐴 𝑖 subscript 𝑁 𝑖 𝑂 𝑁 𝑁 subscript 𝑁 𝑖 𝑂 subscript 𝐴 𝑖 . On définit les points P i = ( x i y i z i ) subscript 𝑃 𝑖 subscript 𝑥 𝑖 subscript 𝑦 𝑖 subscript 𝑧 𝑖 ( x i y i ) = i ( ρ 0 ) subscript 𝑥 𝑖 subscript 𝑦 𝑖 subscript 𝑖 𝜌 0 qui sont les points homothétiques des points A i subscript 𝐴 𝑖 sur le cercle de rayon ρ 𝜌 . Les coordonnées des points P i subscript 𝑃 𝑖 s'écrivent: 𝒫 1 = ρ ( 1 0 z 1 ) 𝒫 2 = ρ 2 ( - 1 3 z 2 ) 𝒫 3 = - ρ 2 ( 1 3 z 3 ) formulae-sequence subscript 𝒫 1 𝜌 1 0 subscript 𝑧 1 formulae-sequence subscript 𝒫 2 𝜌 2 1 3 subscript 𝑧 2 subscript 𝒫 3 𝜌 2 1 3 subscript 𝑧 3

Il vient A i N i = N - P i subscript 𝐴 𝑖 subscript 𝑁 𝑖 𝑁 subscript 𝑃 𝑖 .

À partir de la norme de ce vecteur, on obtient un système de 3 équations reliant les coordonnées z i subscript 𝑧 𝑖 et la position de la nacelle:

L 2 = ( x - x i ) 2 + ( y - y i ) 2 + ( z - z i ) 2 superscript 𝐿 2 superscript 𝑥 subscript 𝑥 𝑖 2 superscript 𝑦 subscript 𝑦 𝑖 2 superscript 𝑧 subscript 𝑧 𝑖 2 Chaque équation représente une sphère de rayon L 𝐿 centré sur le projeté du point P i subscript 𝑃 𝑖 sur le plan de la nacelle. On choisit ce point car il permet de déterminer z i subscript 𝑧 𝑖 . On tire du système d'équations la relation de la cinématique indirecte: z i = z + L 2 - ( x - x i ) 2 - ( y - y i ) 2 subscript 𝑧 𝑖 𝑧 superscript 𝐿 2 superscript 𝑥 subscript 𝑥 𝑖 2 superscript 𝑦 subscript 𝑦 𝑖 2 puisque z < z i 𝑧 subscript 𝑧 𝑖 par construction. On en déduit la contrainte géométrique ( x - x i ) 2 + ( y - y i ) 2 < L 2 superscript 𝑥 subscript 𝑥 𝑖 2 superscript 𝑦 subscript 𝑦 𝑖 2 superscript 𝐿 2 , le centre de la nacelle est inscrit dans un cercle de rayon L 𝐿 centré sur le point P i subscript 𝑃 𝑖 . L'intersection de ces trois cercles forment l'espace de travail de la machine. Le système d'équations s'écrit en exprimant les points P i subscript 𝑃 𝑖 : L 2 = ( x - ρ ) 2 + y 2 + ( z - z 1 ) 2 L 2 = ( x + ρ 2 ) 2 + ( y + 3 2 ρ ) 2 + ( z - z 2 ) 2 L 2 = ( x + ρ 2 ) 2 + ( y - 3 2 ρ ) 2 + ( z - z 3 ) 2 superscript 𝐿 2 absent superscript 𝑥 𝜌 2 superscript 𝑦 2 superscript 𝑧 subscript 𝑧 1 2 superscript 𝐿 2 absent superscript 𝑥 𝜌 2 2 superscript 𝑦 3 2 𝜌 2 superscript 𝑧 subscript 𝑧 2 2 superscript 𝐿 2 absent superscript 𝑥 𝜌 2 2 superscript 𝑦 3 2 𝜌 2 superscript 𝑧 subscript 𝑧 3 2

Matrice Jacobienne

En dérivant le système d'équations par rapport au temps, on obtiens le système d'équations différentielles suivant :

Δ z i z i ˙ = Δ x i x ˙ + Δ y i y ˙ + Δ z i z ˙ Δ subscript 𝑧 𝑖 ˙ subscript 𝑧 𝑖 Δ subscript 𝑥 𝑖 ˙ 𝑥 Δ subscript 𝑦 𝑖 ˙ 𝑦 Δ subscript 𝑧 𝑖 ˙ 𝑧 Δ X i = X - X i Δ subscript 𝑋 𝑖 𝑋 subscript 𝑋 𝑖 qui se réécrit sous forme matricielle : Z ˙ = J P ˙ ˙ 𝑍 𝐽 ˙ 𝑃 P ˙ = ( x ˙ y ˙ z ˙ ) ˙ 𝑃 ˙ 𝑥 ˙ 𝑦 ˙ 𝑧 et Z ˙ = ( z 1 ˙ z 2 ˙ z 3 ˙ ) ˙ 𝑍 ˙ subscript 𝑧 1 ˙ subscript 𝑧 2 ˙ subscript 𝑧 3 La matrice Jacobienne J 𝐽 (ou Jacobien) s'écrit alors : J = ( Δ x 1 Δ z 1 Δ y 1 Δ z 1 1 Δ x 2 Δ z 2 Δ y 2 Δ z 2 1 Δ x 3 Δ z 3 Δ y 3 Δ z 3 1 ) 𝐽 Δ subscript 𝑥 1 Δ subscript 𝑧 1 Δ subscript 𝑦 1 Δ subscript 𝑧 1 1 Δ subscript 𝑥 2 Δ subscript 𝑧 2 Δ subscript 𝑦 2 Δ subscript 𝑧 2 1 Δ subscript 𝑥 3 Δ subscript 𝑧 3 Δ subscript 𝑦 3 Δ subscript 𝑧 3 1

Le Jacobien permet de calculer la vitesse des coulisseaux en fonction de la vitesse de la nacelle.

Les points singuliers peuvent être déterminé à partir du déterminant du Jacobien :

d e t ( J ) = η Δ z 1 Δ z 2 Δ z 3 𝑑 𝑒 𝑡 𝐽 𝜂 Δ subscript 𝑧 1 Δ subscript 𝑧 2 Δ subscript 𝑧 3

η = ( Δ x 1 Δ y 2 - Δ x 2 Δ y 1 ) Δ z 3 + ( Δ x 3 Δ y 1 - Δ x 1 Δ y 3 ) Δ z 2 + ( Δ x 2 Δ y 3 - Δ x 3 Δ y 2 ) Δ z 1 𝜂 Δ subscript 𝑥 1 Δ subscript 𝑦 2 Δ subscript 𝑥 2 Δ subscript 𝑦 1 Δ subscript 𝑧 3 Δ subscript 𝑥 3 Δ subscript 𝑦 1 Δ subscript 𝑥 1 Δ subscript 𝑦 3 Δ subscript 𝑧 2 Δ subscript 𝑥 2 Δ subscript 𝑦 3 Δ subscript 𝑥 3 Δ subscript 𝑦 2 Δ subscript 𝑧 1 Le déterminant représente le volume du parallélépipède défini par les trois vecteurs composant le Jacobien: ( Δ x i Δ z i , Δ y i Δ z i , 1 ) Δ subscript 𝑥 𝑖 Δ subscript 𝑧 𝑖 Δ subscript 𝑦 𝑖 Δ subscript 𝑧 𝑖 1 .

L'inverse du Jacobien s'écrit:

Failed to parse (LaTeXML Server response is invalid JSON.): J^{{-1}}={\frac {1}{\eta }}{\begin{pmatrix}\Delta y_{2}\,\Delta z_{1}\,\Delta z_{3}-\Delta y_{3}\,\Delta z_{1}\,\Delta z_{2}&-\Delta y_{1}\,\Delta z_{2}\,\Delta z_{3}+\Delta y_{3}\,\Delta z_{1}\,\Delta z_{2}&\Delta y_{1}\,\Delta z_{2}\,\Delta z_{3}-\Delta y_{2}\,\Delta z_{1}\,\Delta z_{3}\\-\Delta x_{2}\,\Delta z_{1}\,\Delta z_{3}+\Delta x_{3}\,\Delta z_{1}\,\Delta z_{2}&\Delta x_{1}\,\Delta z_{2}\,\Delta z_{3}-\Delta x_{3}\,\Delta z_{1}\,\Delta z_{2}&-\Delta x_{1}\,\Delta z_{2}\,\Delta z_{3}+\Delta x_{2}\,\Delta z_{1}\,\Delta z_{3}\\(\Delta x_{2}\,\Delta y_{3}-\Delta x_{3}\,\Delta y_{2})\Delta z_{1}&-(\Delta x_{1}\,\Delta y_{3}-\Delta x_{3}\,\Delta y_{1})\Delta z_{2}&(\Delta x_{1}\,\Delta y_{2}-\Delta x_{2}\,\Delta y_{1})\Delta z_{3}\\\end{pmatrix}}


Le système est non singulier si et seulement si le déterminant ou de manière équivalente η 𝜂 est différent de zéro.

Cinématique directe

Le système d'équations de polynômes du second degré issu de la fermeture de la chaîne cinématique:

L 2 = ( x - x i ) 2 + ( y - y i ) 2 + ( z - z i ) 2 superscript 𝐿 2 superscript 𝑥 subscript 𝑥 𝑖 2 superscript 𝑦 subscript 𝑦 𝑖 2 superscript 𝑧 subscript 𝑧 𝑖 2 représente l'intersection de trois sphères de rayon L 𝐿 et de centre P i subscript 𝑃 𝑖 . L'intersection de ses sphères donne la position de la nacelle en fonction de la position des bras. La résolution de ce système d'équations est parfois appelé trilateration dans la littérature. Afin de résoudre ce système d'équations, nous allons effectuer un changement de repère qui va simplifier les calculs. La nouvelle origine va coïncide au point P 1 subscript 𝑃 1 . L'axe des X pointe vers le point P 2 subscript 𝑃 2 et le plan XY est porté par les trois points P i subscript 𝑃 𝑖 . L'axe des Y pointe du côté du point P 3 subscript 𝑃 3 . L'axe des Y est déterminé de manière à formé un trièdre direct. Dans ce nouveau repère les coordonnées des points P i subscript 𝑃 𝑖 s'écrivent: 𝒫 1 = ( 0 0 0 ) 𝒫 2 = ( d 0 0 ) 𝒫 3 = ( i j 0 ) formulae-sequence subscript 𝒫 1 0 0 0 formulae-sequence subscript 𝒫 2 𝑑 0 0 subscript 𝒫 3 𝑖 𝑗 0 et le système d'équations devient: L 2 = x 2 + y 2 + z 2 L 2 = ( x - d ) 2 + y 2 + z 2 L 2 = ( x - i ) 2 + ( y - j ) 2 + z 2 superscript 𝐿 2 absent superscript 𝑥 2 superscript 𝑦 2 superscript 𝑧 2 superscript 𝐿 2 absent superscript 𝑥 𝑑 2 superscript 𝑦 2 superscript 𝑧 2 superscript 𝐿 2 absent superscript 𝑥 𝑖 2 superscript 𝑦 𝑗 2 superscript 𝑧 2 Note concernant la résolution d'un système d'équations: si f ( x , y ) = 0 𝑓 𝑥 𝑦 0 et g ( x , y ) = 0 𝑔 𝑥 𝑦 0 alors le système f ( x , y ) - g ( x , y ) = 0 𝑓 𝑥 𝑦 𝑔 𝑥 𝑦 0 et f ( x , y ) = 0 𝑓 𝑥 𝑦 0 est équivalent au premier, càd. à la seule condition que l'on conserve une des deux équations car la différence de deux nombres implique qu'ils sont égaux mais pas nulles. Pour résoudre ce nouveau système d'équations, on commence par soustraire la première et la deuxième équation et on résout pour x 𝑥 , il vient: x = d 2 𝑥 𝑑 2

On réinjecte ce résultat dans la première équation et on obtient l'équation d'un cercle correspondant à l'intersection des deux premières sphères:

z 2 + y 2 = L 2 - d 2 2 superscript 𝑧 2 superscript 𝑦 2 superscript 𝐿 2 superscript 𝑑 2 2

Notez que cette équation à une solution réelle si d 2 L 𝑑 2 𝐿 .

À présent on substitue z 2 = L 2 - x 2 - y 2 superscript 𝑧 2 superscript 𝐿 2 superscript 𝑥 2 superscript 𝑦 2 dans l'équation de la troisième sphère et on résout pour y 𝑦 :

y = i 2 + j 2 2 j - i j x = i 2 + j 2 - i d 2 j 𝑦 absent superscript 𝑖 2 superscript 𝑗 2 2 𝑗 𝑖 𝑗 𝑥 missing-subexpression absent superscript 𝑖 2 superscript 𝑗 2 𝑖 𝑑 2 𝑗

À présent nous avons résolut les deux premières coordonnées et nous pouvons tirer la troisième à partir de l'équation du la première sphère:

z = ± L 2 - x 2 - y 2 = ± L 2 - d 2 4 - ( i 2 + j 2 - i d 2 j ) 2 𝑧 absent plus-or-minus superscript 𝐿 2 superscript 𝑥 2 superscript 𝑦 2 missing-subexpression absent plus-or-minus superscript 𝐿 2 superscript 𝑑 2 4 superscript superscript 𝑖 2 superscript 𝑗 2 𝑖 𝑑 2 𝑗 2

Notez que cette solution est réelle si et seulement si la troisième sphère et le cercle ont une intersection, càd. si la racine est positive ou nulle.

Afin d'exprimer les coordonnées de la solution dans le référentiel d'origine, nous allons exprimer le changement de repère:

P = P 1 + x e ^ x + y e ^ y + z e ^ z 𝑃 subscript 𝑃 1 𝑥 subscript ^ 𝑒 𝑥 𝑦 subscript ^ 𝑒 𝑦 𝑧 subscript ^ 𝑒 𝑧 Le premier vecteur unitaire s'écrit: e ^ x = P 2 - P 1 P 2 - P 1 subscript ^ 𝑒 𝑥 subscript 𝑃 2 subscript 𝑃 1 norm subscript 𝑃 2 subscript 𝑃 1

et les deux premières distances:

d = P 2 - P 1 i = ( P 3 - P 1 ) e ^ x 𝑑 absent norm subscript 𝑃 2 subscript 𝑃 1 𝑖 absent subscript 𝑃 3 subscript 𝑃 1 subscript ^ 𝑒 𝑥

Le second vecteur unitaire s'écrit:

e ^ y = P 3 - P 1 - i e ^ x P 3 - P 1 - i e ^ x subscript ^ 𝑒 𝑦 subscript 𝑃 3 subscript 𝑃 1 𝑖 subscript ^ 𝑒 𝑥 norm subscript 𝑃 3 subscript 𝑃 1 𝑖 subscript ^ 𝑒 𝑥

et la troisième distance:

j = ( P 3 - P 1 ) e ^ y 𝑗 subscript 𝑃 3 subscript 𝑃 1 subscript ^ 𝑒 𝑦

Le troisième vecteur unitaire s'écrit e ^ z = e ^ x × e ^ y subscript ^ 𝑒 𝑧 subscript ^ 𝑒 𝑥 subscript ^ 𝑒 𝑦

Nous avons à présent résolut la cinématique directe de manière analytique, mais il n'existe pas d'expression simple de la position de la nacelle en fonction des positions des bras. C'est pourquoi nous ne chercherons pas à développer les expressions.

On définit z i j = z i - z j subscript 𝑧 𝑖 𝑗 subscript 𝑧 𝑖 subscript 𝑧 𝑗 .

𝒫 21 = ( - 3 2 ρ 3 2 ρ z 21 ) 𝒫 31 = ( - 3 2 ρ - 3 2 ρ z 31 ) 𝒫 32 = ( 0 - 3 ρ z 32 ) formulae-sequence subscript 𝒫 21 3 2 𝜌 3 2 𝜌 subscript 𝑧 21 formulae-sequence subscript 𝒫 31 3 2 𝜌 3 2 𝜌 subscript 𝑧 31 subscript 𝒫 32 0 3 𝜌 subscript 𝑧 32 21 = 3 ρ 2 + z 21 2 31 = 3 ρ 2 + z 31 2 32 = 3 ρ 2 + z 32 2 formulae-sequence subscript 21 3 superscript 𝜌 2 superscript subscript 𝑧 21 2 formulae-sequence subscript 31 3 superscript 𝜌 2 superscript subscript 𝑧 31 2 subscript 32 3 superscript 𝜌 2 superscript subscript 𝑧 32 2 x e ^ x = 𝒫 21 2 = ( - 3 4 ρ 3 4 ρ z 21 2 ) 𝑥 subscript ^ 𝑒 𝑥 subscript 𝒫 21 2 3 4 𝜌 3 4 𝜌 subscript 𝑧 21 2 i = 𝒫 31 . 𝒫 21 d = 1 d ( 3 2 ρ 2 + z 21 z 31 ) 𝑖 formulae-sequence subscript 𝒫 31 subscript 𝒫 21 𝑑 1 𝑑 3 2 superscript 𝜌 2 subscript 𝑧 21 subscript 𝑧 31 i 2 + j 2 = 31 2 = 3 ρ 2 + z 31 2 superscript 𝑖 2 superscript 𝑗 2 superscript subscript 31 2 3 superscript 𝜌 2 superscript subscript 𝑧 31 2 y = 31 2 - 𝒫 31 𝒫 21 2 𝒫 31 . e ^ y = 3 2 ρ 2 + z 31 2 - z 21 z 31 2 𝒫 31 . e ^ y 𝑦 superscript subscript 31 2 subscript 𝒫 31 subscript 𝒫 21 formulae-sequence 2 subscript 𝒫 31 subscript ^ 𝑒 𝑦 3 2 superscript 𝜌 2 superscript subscript 𝑧 31 2 subscript 𝑧 21 subscript 𝑧 31 formulae-sequence 2 subscript 𝒫 31 subscript ^ 𝑒 𝑦 i . e ^ x = 𝒫 31 . 𝒫 21 𝒫 21 d formulae-sequence 𝑖 subscript ^ 𝑒 𝑥 subscript 𝒫 31 subscript 𝒫 21 subscript 𝒫 21 𝑑