#+TITLE: Stewart Platforms :DRAWER: #+OPTIONS: toc:nil #+OPTIONS: html-postamble:nil #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/thesis/latex/}{config.tex}") #+PROPERTY: header-args:latex+ :imagemagick t :fit yes #+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150 #+PROPERTY: header-args:latex+ :imoutoptions -quality 100 #+PROPERTY: header-args:latex+ :results raw replace :buffer no #+PROPERTY: header-args:latex+ :eval no-export #+PROPERTY: header-args:latex+ :exports both #+PROPERTY: header-args:latex+ :mkdirp yes #+PROPERTY: header-args:latex+ :output-dir figs :END: * Introduction :ignore: The goal here is to * Simscape Model of the Stewart Platform - [[file:simscape-model.org][Model of the Stewart Platform]] - [[file:identification.org][Identification of the Simscape Model]] * Architecture Study - [[file:kinematic-study.org][Kinematic Study]] - [[file:stiffness-study.org][Stiffness Matrix Study]] - Jacobian Study - [[file:cubic-configuration.org][Cubic Architecture]] * Motion Control - Active Damping - Inertial Control - Decentralized Control * Notes about Stewart platforms :noexport: ** Jacobian *** Relation to platform parameters A Jacobian is defined by: - the orientations of the struts $\hat{s}_i$ expressed in a frame $\{A\}$ linked to the fixed platform. - the vectors from $O_B$ to $b_i$ expressed in the frame $\{A\}$ Then, the choice of $O_B$ changes the Jacobian. *** Jacobian for displacement \[ \dot{q} = J \dot{X} \] With: - $q = [q_1\ q_2\ q_3\ q_4\ q_5\ q_6]$ vector of linear displacement of actuated joints - $X = [x\ y\ z\ \theta_x\ \theta_y\ \theta_z]$ position and orientation of $O_B$ expressed in the frame $\{A\}$ For very small displacements $\delta q$ and $\delta X$, we have $\delta q = J \delta X$. *** Jacobian for forces \[ F = J^T \tau \] With: - $\tau = [\tau_1\ \tau_2\ \tau_3\ \tau_4\ \tau_5\ \tau_6]$ vector of actuator forces - $F = [f_x\ f_y\ f_z\ n_x\ n_y\ n_z]$ force and torque acting on point $O_B$ ** Stiffness matrix $K$ \[ K = J^T \text{diag}(k_i) J \] If all the struts have the same stiffness $k$, then $K = k J^T J$ $K$ only depends of the geometry of the stewart platform: it depends on the Jacobian, that is on the orientations of the struts, position of the joints and choice of frame $\{B\}$. \[ F = K X \] With $F$ forces and torques applied to the moving platform at the origin of $\{B\}$ and $X$ the translations and rotations of $\{B\}$ with respect to $\{A\}$. \[ C = K^{-1} \] The compliance element $C_{ij}$ is then the stiffness \[ X_i = C_{ij} F_j \] ** Coupling What causes the coupling from $F_i$ to $X_i$ ? #+begin_src latex :file coupling.pdf :post pdf2svg(file=*this*, ext="png") :exports both \begin{tikzpicture} \node[block] (Jt) at (0, 0) {$J^{-T}$}; \node[block, right= of Jt] (G) {$G$}; \node[block, right= of G] (J) {$J^{-1}$}; \draw[->] ($(Jt.west)+(-0.8, 0)$) -- (Jt.west) node[above left]{$F_i$}; \draw[->] (Jt.east) -- (G.west) node[above left]{$\tau_i$}; \draw[->] (G.east) -- (J.west) node[above left]{$q_i$}; \draw[->] (J.east) -- ++(0.8, 0) node[above left]{$X_i$}; \end{tikzpicture} #+end_src #+name: fig:block_diag_coupling #+caption: Block diagram to control an hexapod #+RESULTS: [[file:figs/coupling.png]] There is no coupling from $F_i$ to $X_j$ if $J^{-1} G J^{-T}$ is diagonal. If $G$ is diagonal (cubic configuration), then $J^{-1} G J^{-T} = G J^{-1} J^{-T} = G (J^{T} J)^{-1} = G K^{-1}$ Thus, the system is uncoupled if $G$ and $K$ are diagonal. * Bibliography :ignore: bibliographystyle:unsrt bibliography:ref.bib