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/ mat/
figures/ figures/
ltximg/ ltximg/

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cubic configuration for the Stewart Platform</title> <title>Cubic configuration for the Stewart Platform</title>
@ -279,33 +279,33 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org1bafc26">1. Questions we wish to answer with this analysis</a></li> <li><a href="#orgc57423d">1. Questions we wish to answer with this analysis</a></li>
<li><a href="#orga5361fc">2. Configuration Analysis - Stiffness Matrix</a> <li><a href="#org5539c71">2. Configuration Analysis - Stiffness Matrix</a>
<ul> <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="#orga0e5e7a">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="#org2b14a19">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="#orgdd2c3a5">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="#org2c1dada">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="#org6305043">2.5. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgb37e81b">3. Cubic size analysis</a></li> <li><a href="#org00efd87">3. Cubic size analysis</a></li>
<li><a href="#org2b0a41e">4. initializeCubicConfiguration</a> <li><a href="#org3841131">4. initializeCubicConfiguration</a>
<ul> <ul>
<li><a href="#orgfb743ea">4.1. Function description</a></li> <li><a href="#orgff95f33">4.1. Function description</a></li>
<li><a href="#orgcc92353">4.2. Optional Parameters</a></li> <li><a href="#org3163673">4.2. Optional Parameters</a></li>
<li><a href="#org384ec97">4.3. Cube Creation</a></li> <li><a href="#orgda7067a">4.3. Cube Creation</a></li>
<li><a href="#orgefa2328">4.4. Vectors of each leg</a></li> <li><a href="#org2c8b79d">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="#org2f2eeb2">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="#org7c5ca24">4.6. Determinate the location of the joints</a></li>
<li><a href="#org38f602f">4.7. Returns Stewart Structure</a></li> <li><a href="#org723d8e6">4.7. Returns Stewart Structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org243b392">5. Tests</a> <li><a href="#org1963ce8">5. Tests</a>
<ul> <ul>
<li><a href="#org86fb4aa">5.1. First attempt to parametrisation</a></li> <li><a href="#org546f291">5.1. First attempt to parametrisation</a></li>
<li><a href="#orgcc2eaf4">5.2. Second attempt</a></li> <li><a href="#org2231886">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="#org736f58d">5.3. Generate the Stewart platform for a Cubic configuration</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -327,11 +327,15 @@ The specificity of the Cubic configuration is that each actuator is orthogonal w
</p> </p>
<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> </p>
<div id="outline-container-org1bafc26" class="outline-2"> <p>
<h2 id="org1bafc26"><span class="section-number-2">1</span> Questions we wish to answer with this analysis</h2> 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"> <div class="outline-text-2" id="text-1">
<p> <p>
The goal is to study the benefits of using a cubic configuration: 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> </div>
<div id="outline-container-orga5361fc" class="outline-2"> <div id="outline-container-org5539c71" class="outline-2">
<h2 id="orga5361fc"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2> <h2 id="org5539c71"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-orge00f8a7" class="outline-3"> <div id="outline-container-orga0e5e7a" 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> <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"> <div class="outline-text-3" id="text-2-1">
<p> <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. The Jacobian matrix is estimated at the location of the center of the cube.
</p> </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><img src="./figs/3d-cubic-stewart-aligned.png" alt="3d-cubic-stewart-aligned.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Centered cubic configuration</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> </div>
<div id="outline-container-org575d55b" class="outline-3"> <div id="outline-container-org2b14a19" 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> <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"> <div class="outline-text-3" id="text-2-2">
<p> <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. The Jacobian matrix is not estimated at the location of the center of the cube.
</p> </p>
@ -565,16 +569,16 @@ stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-
</div> </div>
</div> </div>
<div id="outline-container-orgcda0ff4" class="outline-3"> <div id="outline-container-orgdd2c3a5" 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> <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"> <div class="outline-text-3" id="text-2-3">
<p> <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. The Jacobian is estimated at the cube center.
</p> </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><img src="./figs/3d-cubic-stewart-misaligned.png" alt="3d-cubic-stewart-misaligned.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Not centered cubic configuration</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> </div>
<div id="outline-container-org06f7f99" class="outline-3"> <div id="outline-container-org2c1dada" 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> <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"> <div class="outline-text-3" id="text-2-4">
<p> <p>
Here, the "center" of the Stewart platform is not at the cube center. 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> </div>
<div id="outline-container-org42ac83d" class="outline-3"> <div id="outline-container-org6305043" class="outline-3">
<h3 id="org42ac83d"><span class="section-number-3">2.5</span> Conclusion</h3> <h3 id="org6305043"><span class="section-number-3">2.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-5"> <div class="outline-text-3" id="text-2-5">
<div class="important"> <div class="important">
<ul class="org-ul"> <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> </div>
<div id="outline-container-orgb37e81b" class="outline-2"> <div id="outline-container-org00efd87" class="outline-2">
<h2 id="orgb37e81b"><span class="section-number-2">3</span> Cubic size analysis</h2> <h2 id="org00efd87"><span class="section-number-2">3</span> Cubic size analysis</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
We here study the effect of the size of the cube used for the Stewart configuration. 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>
<div id="org5647f41" class="figure"> <div id="org5211ce6" class="figure">
<p><img src="figs/stiffness_cube_size.png" alt="stiffness_cube_size.png" /> <p><img src="figs/stiffness_cube_size.png" alt="stiffness_cube_size.png" />
</p> </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> <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> </div>
<div id="outline-container-org2b0a41e" class="outline-2"> <div id="outline-container-org3841131" class="outline-2">
<h2 id="org2b0a41e"><span class="section-number-2">4</span> initializeCubicConfiguration</h2> <h2 id="org3841131"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<p> <p>
<a id="org7faef27"></a> <a id="orga589e9f"></a>
</p> </p>
</div> </div>
<div id="outline-container-orgfb743ea" class="outline-3"> <div id="outline-container-orgff95f33" class="outline-3">
<h3 id="orgfb743ea"><span class="section-number-3">4.1</span> Function description</h3> <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="outline-text-3" id="text-4-1">
<div class="org-src-container"> <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> <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> </div>
<div id="outline-container-orgcc92353" class="outline-3"> <div id="outline-container-org3163673" class="outline-3">
<h3 id="orgcc92353"><span class="section-number-3">4.2</span> Optional Parameters</h3> <h3 id="org3163673"><span class="section-number-3">4.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<p> <p>
Default values for opts. Default values for opts.
@ -961,8 +965,8 @@ Populate opts with input parameters
</div> </div>
</div> </div>
<div id="outline-container-org384ec97" class="outline-3"> <div id="outline-container-orgda7067a" class="outline-3">
<h3 id="org384ec97"><span class="section-number-3">4.3</span> Cube Creation</h3> <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="outline-text-3" id="text-4-3">
<div class="org-src-container"> <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> <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> </div>
<div id="outline-container-orgefa2328" class="outline-3"> <div id="outline-container-org2c8b79d" class="outline-3">
<h3 id="orgefa2328"><span class="section-number-3">4.4</span> Vectors of each leg</h3> <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="outline-text-3" id="text-4-4">
<div class="org-src-container"> <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> <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> </div>
<div id="outline-container-orgf6960ff" class="outline-3"> <div id="outline-container-org2f2eeb2" class="outline-3">
<h3 id="orgf6960ff"><span class="section-number-3">4.5</span> Verification of Height of the Stewart Platform</h3> <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"> <div class="outline-text-3" id="text-4-5">
<p> <p>
If the Stewart platform is not contained in the cube, throw an error. 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> </div>
<div id="outline-container-orgd7e65db" class="outline-3"> <div id="outline-container-org7c5ca24" class="outline-3">
<h3 id="orgd7e65db"><span class="section-number-3">4.6</span> Determinate the location of the joints</h3> <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"> <div class="outline-text-3" id="text-4-6">
<p> <p>
We now determine the location of the joints on the fixed platform w.r.t the fixed frame \(\{A\}\). 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> </div>
<div id="outline-container-org38f602f" class="outline-3"> <div id="outline-container-org723d8e6" class="outline-3">
<h3 id="org38f602f"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3> <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="outline-text-3" id="text-4-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"> stewart = struct<span class="org-rainbow-delimiters-depth-1">()</span>; <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> </div>
<div id="outline-container-org243b392" class="outline-2"> <div id="outline-container-org1963ce8" class="outline-2">
<h2 id="org243b392"><span class="section-number-2">5</span> Tests</h2> <h2 id="org1963ce8"><span class="section-number-2">5</span> Tests</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
</div> </div>
<div id="outline-container-org86fb4aa" class="outline-3"> <div id="outline-container-org546f291" class="outline-3">
<h3 id="org86fb4aa"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3> <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 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><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Schematic of the bottom plates with all the parameters</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> </div>
<div id="outline-container-orgcc2eaf4" class="outline-3"> <div id="outline-container-org2231886" class="outline-3">
<h3 id="orgcc2eaf4"><span class="section-number-3">5.2</span> Second attempt</h3> <h3 id="org2231886"><span class="section-number-3">5.2</span> Second attempt</h3>
<div class="outline-text-3" id="text-5-2"> <div class="outline-text-3" id="text-5-2">
<p> <p>
We start with the point of a cube in space: 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> </div>
<div id="outline-container-org7824b39" class="outline-3"> <div id="outline-container-org736f58d" class="outline-3">
<h3 id="org7824b39"><span class="section-number-3">5.3</span> Generate the Stewart platform for a Cubic configuration</h3> <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"> <div class="outline-text-3" id="text-5-3">
<p> <p>
First we defined the height of the Hexapod. 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>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <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> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -21,12 +21,7 @@
#+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
#+begin_src matlab :results none :exports none :noweb yes * Introduction :ignore:
<<matlab-init>>
addpath('src');
addpath('library');
#+end_src
The discovery of the Cubic configuration is done in citenum:geng94_six_degree_of_freed_activ. 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. 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]]). 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 * Questions we wish to answer with this analysis
The goal is to study the benefits of using a cubic configuration: The goal is to study the benefits of using a cubic configuration:
- Equal stiffness in all the degrees of freedom? - 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"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <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 http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platforms</title> <title>Stewart Platforms</title>
@ -245,13 +245,35 @@ for the JavaScript code in this tag.
} }
/*]]>*///--> /*]]>*///-->
</script> </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> </head>
<body> <body>
<div id="content"> <div id="content">
<h1 class="title">Stewart Platforms</h1> <h1 class="title">Stewart Platforms</h1>
<div id="outline-container-org6a8d5e6" class="outline-2"> <div id="outline-container-orge672724" class="outline-2">
<h2 id="org6a8d5e6"><span class="section-number-2">1</span> Simscape Model</h2> <h2 id="orge672724"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<ul class="org-ul"> <ul class="org-ul">
<li><a href="simscape-model.html">Model of the Stewart Platform</a></li> <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> </div>
<div id="outline-container-org28395cb" class="outline-2"> <div id="outline-container-orgfce4cb7" class="outline-2">
<h2 id="org28395cb"><span class="section-number-2">2</span> Architecture Study</h2> <h2 id="orgfce4cb7"><span class="section-number-2">2</span> Architecture Study</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<ul class="org-ul"> <ul class="org-ul">
<li><a href="kinematic-study.html">Kinematic Study</a></li> <li><a href="kinematic-study.html">Kinematic Study</a></li>
@ -272,8 +294,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org6738e47" class="outline-2"> <div id="outline-container-org92e9216" class="outline-2">
<h2 id="org6738e47"><span class="section-number-2">3</span> Motion Control</h2> <h2 id="org92e9216"><span class="section-number-2">3</span> Motion Control</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<ul class="org-ul"> <ul class="org-ul">
<li>Active Damping</li> <li>Active Damping</li>
@ -282,6 +304,145 @@ for the JavaScript code in this tag.
</ul> </ul>
</div> </div>
</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> </div>
</body> </body>
</html> </html>

View File

@ -9,6 +9,16 @@
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="js/readtheorg.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: :END:
* Simscape Model * Simscape Model
@ -25,3 +35,73 @@
- Active Damping - Active Damping
- Inertial Control - Inertial Control
- Decentralized 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 #+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
* Introduction :ignore:
Stewart platforms are generated in multiple steps. Stewart platforms are generated in multiple steps.
First, geometrical parameters are defined: First, geometrical parameters are defined: