Minor updates

This commit is contained in:
Thomas Dehaeze 2019-10-09 11:08:42 +02:00
parent 105e34d5f9
commit 7855abed3b
7 changed files with 343 additions and 84 deletions

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
figs/*.svg
figs/*.pdf
mat/
figures/
ltximg/

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-08-26 lun. 11:58 -->
<!-- 2019-10-09 mer. 11:08 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cubic configuration for the Stewart Platform</title>
@ -279,33 +279,33 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org1bafc26">1. Questions we wish to answer with this analysis</a></li>
<li><a href="#orga5361fc">2. Configuration Analysis - Stiffness Matrix</a>
<li><a href="#orgc57423d">1. Questions we wish to answer with this analysis</a></li>
<li><a href="#org5539c71">2. Configuration Analysis - Stiffness Matrix</a>
<ul>
<li><a href="#orge00f8a7">2.1. Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#org575d55b">2.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
<li><a href="#orgcda0ff4">2.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#org06f7f99">2.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
<li><a href="#org42ac83d">2.5. Conclusion</a></li>
<li><a href="#orga0e5e7a">2.1. Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#org2b14a19">2.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
<li><a href="#orgdd2c3a5">2.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#org2c1dada">2.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
<li><a href="#org6305043">2.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgb37e81b">3. Cubic size analysis</a></li>
<li><a href="#org2b0a41e">4. initializeCubicConfiguration</a>
<li><a href="#org00efd87">3. Cubic size analysis</a></li>
<li><a href="#org3841131">4. initializeCubicConfiguration</a>
<ul>
<li><a href="#orgfb743ea">4.1. Function description</a></li>
<li><a href="#orgcc92353">4.2. Optional Parameters</a></li>
<li><a href="#org384ec97">4.3. Cube Creation</a></li>
<li><a href="#orgefa2328">4.4. Vectors of each leg</a></li>
<li><a href="#orgf6960ff">4.5. Verification of Height of the Stewart Platform</a></li>
<li><a href="#orgd7e65db">4.6. Determinate the location of the joints</a></li>
<li><a href="#org38f602f">4.7. Returns Stewart Structure</a></li>
<li><a href="#orgff95f33">4.1. Function description</a></li>
<li><a href="#org3163673">4.2. Optional Parameters</a></li>
<li><a href="#orgda7067a">4.3. Cube Creation</a></li>
<li><a href="#org2c8b79d">4.4. Vectors of each leg</a></li>
<li><a href="#org2f2eeb2">4.5. Verification of Height of the Stewart Platform</a></li>
<li><a href="#org7c5ca24">4.6. Determinate the location of the joints</a></li>
<li><a href="#org723d8e6">4.7. Returns Stewart Structure</a></li>
</ul>
</li>
<li><a href="#org243b392">5. Tests</a>
<li><a href="#org1963ce8">5. Tests</a>
<ul>
<li><a href="#org86fb4aa">5.1. First attempt to parametrisation</a></li>
<li><a href="#orgcc2eaf4">5.2. Second attempt</a></li>
<li><a href="#org7824b39">5.3. Generate the Stewart platform for a Cubic configuration</a></li>
<li><a href="#org546f291">5.1. First attempt to parametrisation</a></li>
<li><a href="#org2231886">5.2. Second attempt</a></li>
<li><a href="#org736f58d">5.3. Generate the Stewart platform for a Cubic configuration</a></li>
</ul>
</li>
</ul>
@ -327,11 +327,15 @@ The specificity of the Cubic configuration is that each actuator is orthogonal w
</p>
<p>
To generate and study the Cubic configuration, <code>initializeCubicConfiguration</code> is used (description in section <a href="#org7faef27">4</a>).
To generate and study the Cubic configuration, <code>initializeCubicConfiguration</code> is used (description in section <a href="#orga589e9f">4</a>).
</p>
<div id="outline-container-org1bafc26" class="outline-2">
<h2 id="org1bafc26"><span class="section-number-2">1</span> Questions we wish to answer with this analysis</h2>
<p>
According to <a class='org-ref-reference' href="#preumont07_six_axis_singl_stage_activ">preumont07_six_axis_singl_stage_activ</a>, the cubic configuration provides a uniform stiffness in all directions and <b>minimizes the crosscoupling</b> from actuator to sensor of different legs (being orthogonal to each other).
</p>
<div id="outline-container-orgc57423d" class="outline-2">
<h2 id="orgc57423d"><span class="section-number-2">1</span> Questions we wish to answer with this analysis</h2>
<div class="outline-text-2" id="text-1">
<p>
The goal is to study the benefits of using a cubic configuration:
@ -344,20 +348,20 @@ The goal is to study the benefits of using a cubic configuration:
</div>
</div>
<div id="outline-container-orga5361fc" class="outline-2">
<h2 id="orga5361fc"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
<div id="outline-container-org5539c71" class="outline-2">
<h2 id="org5539c71"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-orge00f8a7" class="outline-3">
<h3 id="orge00f8a7"><span class="section-number-3">2.1</span> Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</h3>
<div id="outline-container-orga0e5e7a" class="outline-3">
<h3 id="orga0e5e7a"><span class="section-number-3">2.1</span> Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We create a cubic Stewart platform (figure <a href="#orgb095247">1</a>) in such a way that the center of the cube (black dot) is located at the center of the Stewart platform (blue dot).
We create a cubic Stewart platform (figure <a href="#org1d5da43">1</a>) in such a way that the center of the cube (black dot) is located at the center of the Stewart platform (blue dot).
The Jacobian matrix is estimated at the location of the center of the cube.
</p>
<div id="orgb095247" class="figure">
<div id="org1d5da43" class="figure">
<p><img src="./figs/3d-cubic-stewart-aligned.png" alt="3d-cubic-stewart-aligned.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Centered cubic configuration</p>
@ -461,11 +465,11 @@ save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string
</div>
</div>
<div id="outline-container-org575d55b" class="outline-3">
<h3 id="org575d55b"><span class="section-number-3">2.2</span> Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</h3>
<div id="outline-container-org2b14a19" class="outline-3">
<h3 id="org2b14a19"><span class="section-number-3">2.2</span> Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We create a cubic Stewart platform with center of the cube located at the center of the Stewart platform (figure <a href="#orgb095247">1</a>).
We create a cubic Stewart platform with center of the cube located at the center of the Stewart platform (figure <a href="#org1d5da43">1</a>).
The Jacobian matrix is not estimated at the location of the center of the cube.
</p>
@ -565,16 +569,16 @@ stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-
</div>
</div>
<div id="outline-container-orgcda0ff4" class="outline-3">
<h3 id="orgcda0ff4"><span class="section-number-3">2.3</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</h3>
<div id="outline-container-orgdd2c3a5" class="outline-3">
<h3 id="orgdd2c3a5"><span class="section-number-3">2.3</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Here, the "center" of the Stewart platform is not at the cube center (figure <a href="#org741ffe8">2</a>).
Here, the "center" of the Stewart platform is not at the cube center (figure <a href="#org95caad9">2</a>).
The Jacobian is estimated at the cube center.
</p>
<div id="org741ffe8" class="figure">
<div id="org95caad9" class="figure">
<p><img src="./figs/3d-cubic-stewart-misaligned.png" alt="3d-cubic-stewart-misaligned.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Not centered cubic configuration</p>
@ -687,8 +691,8 @@ We obtain \(k_x = k_y = k_z\) and \(k_{\theta_x} = k_{\theta_y}\), but the Stiff
</div>
</div>
<div id="outline-container-org06f7f99" class="outline-3">
<h3 id="org06f7f99"><span class="section-number-3">2.4</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</h3>
<div id="outline-container-org2c1dada" class="outline-3">
<h3 id="org2c1dada"><span class="section-number-3">2.4</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</h3>
<div class="outline-text-3" id="text-2-4">
<p>
Here, the "center" of the Stewart platform is not at the cube center.
@ -802,8 +806,8 @@ We obtain \(k_x = k_y = k_z\) and \(k_{\theta_x} = k_{\theta_y}\), but the Stiff
</div>
</div>
<div id="outline-container-org42ac83d" class="outline-3">
<h3 id="org42ac83d"><span class="section-number-3">2.5</span> Conclusion</h3>
<div id="outline-container-org6305043" class="outline-3">
<h3 id="org6305043"><span class="section-number-3">2.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-5">
<div class="important">
<ul class="org-ul">
@ -816,8 +820,8 @@ We obtain \(k_x = k_y = k_z\) and \(k_{\theta_x} = k_{\theta_y}\), but the Stiff
</div>
</div>
<div id="outline-container-orgb37e81b" class="outline-2">
<h2 id="orgb37e81b"><span class="section-number-2">3</span> Cubic size analysis</h2>
<div id="outline-container-org00efd87" class="outline-2">
<h2 id="org00efd87"><span class="section-number-2">3</span> Cubic size analysis</h2>
<div class="outline-text-2" id="text-3">
<p>
We here study the effect of the size of the cube used for the Stewart configuration.
@ -892,7 +896,7 @@ xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-stri
</div>
<div id="org5647f41" class="figure">
<div id="org5211ce6" class="figure">
<p><img src="figs/stiffness_cube_size.png" alt="stiffness_cube_size.png" />
</p>
<p><span class="figure-number">Figure 3: </span>\(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) function of the size of the cube</p>
@ -913,16 +917,16 @@ In that case, the legs will the further separated. Size of the cube is then limi
</div>
</div>
<div id="outline-container-org2b0a41e" class="outline-2">
<h2 id="org2b0a41e"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
<div id="outline-container-org3841131" class="outline-2">
<h2 id="org3841131"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="org7faef27"></a>
<a id="orga589e9f"></a>
</p>
</div>
<div id="outline-container-orgfb743ea" class="outline-3">
<h3 id="orgfb743ea"><span class="section-number-3">4.1</span> Function description</h3>
<div id="outline-container-orgff95f33" class="outline-3">
<h3 id="orgff95f33"><span class="section-number-3">4.1</span> Function description</h3>
<div class="outline-text-3" id="text-4-1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">stewart</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">initializeCubicConfiguration</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
@ -931,8 +935,8 @@ In that case, the legs will the further separated. Size of the cube is then limi
</div>
</div>
<div id="outline-container-orgcc92353" class="outline-3">
<h3 id="orgcc92353"><span class="section-number-3">4.2</span> Optional Parameters</h3>
<div id="outline-container-org3163673" class="outline-3">
<h3 id="org3163673"><span class="section-number-3">4.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-4-2">
<p>
Default values for opts.
@ -961,8 +965,8 @@ Populate opts with input parameters
</div>
</div>
<div id="outline-container-org384ec97" class="outline-3">
<h3 id="org384ec97"><span class="section-number-3">4.3</span> Cube Creation</h3>
<div id="outline-container-orgda7067a" class="outline-3">
<h3 id="orgda7067a"><span class="section-number-3">4.3</span> Cube Creation</h3>
<div class="outline-text-3" id="text-4-3">
<div class="org-src-container">
<pre class="src src-matlab">points = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
@ -1007,8 +1011,8 @@ We use to rotation matrix to rotate the cube
</div>
</div>
<div id="outline-container-orgefa2328" class="outline-3">
<h3 id="orgefa2328"><span class="section-number-3">4.4</span> Vectors of each leg</h3>
<div id="outline-container-org2c8b79d" class="outline-3">
<h3 id="org2c8b79d"><span class="section-number-3">4.4</span> Vectors of each leg</h3>
<div class="outline-text-3" id="text-4-4">
<div class="org-src-container">
<pre class="src src-matlab">leg_indices = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
@ -1036,8 +1040,8 @@ legs_start = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span cla
</div>
</div>
<div id="outline-container-orgf6960ff" class="outline-3">
<h3 id="orgf6960ff"><span class="section-number-3">4.5</span> Verification of Height of the Stewart Platform</h3>
<div id="outline-container-org2f2eeb2" class="outline-3">
<h3 id="org2f2eeb2"><span class="section-number-3">4.5</span> Verification of Height of the Stewart Platform</h3>
<div class="outline-text-3" id="text-4-5">
<p>
If the Stewart platform is not contained in the cube, throw an error.
@ -1056,8 +1060,8 @@ If the Stewart platform is not contained in the cube, throw an error.
</div>
</div>
<div id="outline-container-orgd7e65db" class="outline-3">
<h3 id="orgd7e65db"><span class="section-number-3">4.6</span> Determinate the location of the joints</h3>
<div id="outline-container-org7c5ca24" class="outline-3">
<h3 id="org7c5ca24"><span class="section-number-3">4.6</span> Determinate the location of the joints</h3>
<div class="outline-text-3" id="text-4-6">
<p>
We now determine the location of the joints on the fixed platform w.r.t the fixed frame \(\{A\}\).
@ -1102,8 +1106,8 @@ Ab = Ab <span class="org-type">-</span> h<span class="org-type">*</span><span cl
</div>
</div>
<div id="outline-container-org38f602f" class="outline-3">
<h3 id="org38f602f"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3>
<div id="outline-container-org723d8e6" class="outline-3">
<h3 id="org723d8e6"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3>
<div class="outline-text-3" id="text-4-7">
<div class="org-src-container">
<pre class="src src-matlab"> stewart = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
@ -1118,15 +1122,15 @@ Ab = Ab <span class="org-type">-</span> h<span class="org-type">*</span><span cl
</div>
</div>
<div id="outline-container-org243b392" class="outline-2">
<h2 id="org243b392"><span class="section-number-2">5</span> Tests</h2>
<div id="outline-container-org1963ce8" class="outline-2">
<h2 id="org1963ce8"><span class="section-number-2">5</span> Tests</h2>
<div class="outline-text-2" id="text-5">
</div>
<div id="outline-container-org86fb4aa" class="outline-3">
<h3 id="org86fb4aa"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3>
<div id="outline-container-org546f291" class="outline-3">
<h3 id="org546f291"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3>
<div class="outline-text-3" id="text-5-1">
<div id="org10fe09c" class="figure">
<div id="org16ba25a" class="figure">
<p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Schematic of the bottom plates with all the parameters</p>
@ -1161,8 +1165,8 @@ Lets express \(a_i\), \(b_i\) and \(a_j\):
</div>
</div>
<div id="outline-container-orgcc2eaf4" class="outline-3">
<h3 id="orgcc2eaf4"><span class="section-number-3">5.2</span> Second attempt</h3>
<div id="outline-container-org2231886" class="outline-3">
<h3 id="org2231886"><span class="section-number-3">5.2</span> Second attempt</h3>
<div class="outline-text-3" id="text-5-2">
<p>
We start with the point of a cube in space:
@ -1289,8 +1293,8 @@ Let's then estimate the middle position of the platform
</div>
</div>
<div id="outline-container-org7824b39" class="outline-3">
<h3 id="org7824b39"><span class="section-number-3">5.3</span> Generate the Stewart platform for a Cubic configuration</h3>
<div id="outline-container-org736f58d" class="outline-3">
<h3 id="org736f58d"><span class="section-number-3">5.3</span> Generate the Stewart platform for a Cubic configuration</h3>
<div class="outline-text-3" id="text-5-3">
<p>
First we defined the height of the Hexapod.
@ -1360,7 +1364,7 @@ zlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-08-26 lun. 11:58</p>
<p class="date">Created: 2019-10-09 mer. 11:08</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -21,12 +21,7 @@
#+PROPERTY: header-args:matlab+ :output-dir figs
:END:
#+begin_src matlab :results none :exports none :noweb yes
<<matlab-init>>
addpath('src');
addpath('library');
#+end_src
* Introduction :ignore:
The discovery of the Cubic configuration is done in citenum:geng94_six_degree_of_freed_activ.
Further analysis is conducted in cite:jafari03_orthog_gough_stewar_platf_microm.
@ -37,6 +32,22 @@ The specificity of the Cubic configuration is that each actuator is orthogonal w
To generate and study the Cubic configuration, =initializeCubicConfiguration= is used (description in section [[sec:initializeCubicConfiguration]]).
According to cite:preumont07_six_axis_singl_stage_activ, the cubic configuration provides a uniform stiffness in all directions and *minimizes the crosscoupling* from actuator to sensor of different legs (being orthogonal to each other).
* Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
#+begin_src matlab :results none :exports none
addpath('src');
addpath('library');
#+end_src
* Questions we wish to answer with this analysis
The goal is to study the benefits of using a cubic configuration:
- Equal stiffness in all the degrees of freedom?

BIN
figs/coupling.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-08-26 lun. 11:56 -->
<!-- 2019-10-09 mer. 11:07 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platforms</title>
@ -245,13 +245,35 @@ for the JavaScript code in this tag.
}
/*]]>*///-->
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<h1 class="title">Stewart Platforms</h1>
<div id="outline-container-org6a8d5e6" class="outline-2">
<h2 id="org6a8d5e6"><span class="section-number-2">1</span> Simscape Model</h2>
<div id="outline-container-orge672724" class="outline-2">
<h2 id="orge672724"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-1">
<ul class="org-ul">
<li><a href="simscape-model.html">Model of the Stewart Platform</a></li>
@ -260,8 +282,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org28395cb" class="outline-2">
<h2 id="org28395cb"><span class="section-number-2">2</span> Architecture Study</h2>
<div id="outline-container-orgfce4cb7" class="outline-2">
<h2 id="orgfce4cb7"><span class="section-number-2">2</span> Architecture Study</h2>
<div class="outline-text-2" id="text-2">
<ul class="org-ul">
<li><a href="kinematic-study.html">Kinematic Study</a></li>
@ -272,8 +294,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org6738e47" class="outline-2">
<h2 id="org6738e47"><span class="section-number-2">3</span> Motion Control</h2>
<div id="outline-container-org92e9216" class="outline-2">
<h2 id="org92e9216"><span class="section-number-2">3</span> Motion Control</h2>
<div class="outline-text-2" id="text-3">
<ul class="org-ul">
<li>Active Damping</li>
@ -282,6 +304,145 @@ for the JavaScript code in this tag.
</ul>
</div>
</div>
<div id="outline-container-org5ab21e2" class="outline-2">
<h2 id="org5ab21e2"><span class="section-number-2">4</span> Notes about Stewart platforms</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-orgf0627f0" class="outline-3">
<h3 id="orgf0627f0"><span class="section-number-3">4.1</span> Jacobian</h3>
<div class="outline-text-3" id="text-4-1">
</div>
<div id="outline-container-orge3fb927" class="outline-4">
<h4 id="orge3fb927"><span class="section-number-4">4.1.1</span> Relation to platform parameters</h4>
<div class="outline-text-4" id="text-4-1-1">
<p>
A Jacobian is defined by:
</p>
<ul class="org-ul">
<li>the orientations of the struts \(\hat{s}_i\) expressed in a frame \(\{A\}\) linked to the fixed platform.</li>
<li>the vectors from \(O_B\) to \(b_i\) expressed in the frame \(\{A\}\)</li>
</ul>
<p>
Then, the choice of \(O_B\) changes the Jacobian.
</p>
</div>
</div>
<div id="outline-container-org99049d5" class="outline-4">
<h4 id="org99049d5"><span class="section-number-4">4.1.2</span> Jacobian for displacement</h4>
<div class="outline-text-4" id="text-4-1-2">
<p>
\[ \dot{q} = J \dot{X} \]
With:
</p>
<ul class="org-ul">
<li>\(q = [q_1\ q_2\ q_3\ q_4\ q_5\ q_6]\) vector of linear displacement of actuated joints</li>
<li>\(X = [x\ y\ z\ \theta_x\ \theta_y\ \theta_z]\) position and orientation of \(O_B\) expressed in the frame \(\{A\}\)</li>
</ul>
<p>
For very small displacements \(\delta q\) and \(\delta X\), we have \(\delta q = J \delta X\).
</p>
</div>
</div>
<div id="outline-container-orgb7963ed" class="outline-4">
<h4 id="orgb7963ed"><span class="section-number-4">4.1.3</span> Jacobian for forces</h4>
<div class="outline-text-4" id="text-4-1-3">
<p>
\[ F = J^T \tau \]
With:
</p>
<ul class="org-ul">
<li>\(\tau = [\tau_1\ \tau_2\ \tau_3\ \tau_4\ \tau_5\ \tau_6]\) vector of actuator forces</li>
<li>\(F = [f_x\ f_y\ f_z\ n_x\ n_y\ n_z]\) force and torque acting on point \(O_B\)</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org9fcd675" class="outline-3">
<h3 id="org9fcd675"><span class="section-number-3">4.2</span> Stiffness matrix \(K\)</h3>
<div class="outline-text-3" id="text-4-2">
<p>
\[ K = J^T \text{diag}(k_i) J \]
</p>
<p>
If all the struts have the same stiffness \(k\), then \(K = k J^T J\)
</p>
<p>
\(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\}\).
</p>
<p>
\[ F = K X \]
</p>
<p>
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\}\).
</p>
<p>
\[ C = K^{-1} \]
</p>
<p>
The compliance element \(C_{ij}\) is then the stiffness
\[ X_i = C_{ij} F_j \]
</p>
</div>
</div>
<div id="outline-container-orge5eb09a" class="outline-3">
<h3 id="orge5eb09a"><span class="section-number-3">4.3</span> Coupling</h3>
<div class="outline-text-3" id="text-4-3">
<p>
What causes the coupling from \(F_i\) to \(X_i\) ?
</p>
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[block] (Jt) at (0, 0) {<span class="org-font-latex-math">$J</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^{-T}</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right= of Jt] (G) {<span class="org-font-latex-math">$G$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right= of G] (J) {<span class="org-font-latex-math">$J</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^{-1}</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(Jt.west)+(-0.8, 0)$</span>) -- (Jt.west) node[above left]{<span class="org-font-latex-math">$F</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_i</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Jt.east) -- (G.west) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tau</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_i</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G.east) -- (J.west) node[above left]{<span class="org-font-latex-math">$q</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_i</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (J.east) -- ++(0.8, 0) node[above left]{<span class="org-font-latex-math">$X</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_i</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org064c4c6" class="figure">
<p><img src="figs/coupling.png" alt="coupling.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Block diagram to control an hexapod</p>
</div>
<p>
There is no coupling from \(F_i\) to \(X_j\) if \(J^{-1} G J^{-T}\) is diagonal.
</p>
<p>
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}\)
</p>
<p>
Thus, the system is uncoupled if \(G\) and \(K\) are diagonal.
</p>
</div>
</div>
</div>
<p>
<a href="references.bib">references.bib</a>
</p>
</div>
</body>
</html>

View File

@ -9,6 +9,16 @@
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="js/readtheorg.js"></script>
#+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:
* Simscape Model
@ -25,3 +35,73 @@
- Active Damping
- Inertial Control
- Decentralized Control
* Notes about Stewart platforms
** 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:references.bib

View File

@ -20,6 +20,7 @@
#+PROPERTY: header-args:matlab+ :output-dir figs
:END:
* Introduction :ignore:
Stewart platforms are generated in multiple steps.
First, geometrical parameters are defined: