Change bibliography filename
This commit is contained in:
parent
9c261436ee
commit
f902c6f308
@ -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-10-09 mer. 11:08 -->
|
||||
<!-- 2019-12-12 jeu. 20:10 -->
|
||||
<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>
|
||||
@ -193,12 +193,8 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</style>
|
||||
<link rel="stylesheet" type="text/css" href="https://gongzhitaao.org/orgcss/org.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
||||
<script src="./js/jquery.min.js"></script>
|
||||
<script src="./js/bootstrap.min.js"></script>
|
||||
<script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
<script src="./js/readtheorg.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
@ -261,7 +257,10 @@ for the JavaScript code in this tag.
|
||||
TeX: { equationNumbers: {autoNumber: "AMS"},
|
||||
MultLineWidth: "85%",
|
||||
TagSide: "right",
|
||||
TagIndent: ".8em"
|
||||
TagIndent: ".8em",
|
||||
Macros: {
|
||||
bm: ["{\\boldsymbol #1}",1],
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@ -279,33 +278,33 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="#org4a16be2">1. Questions we wish to answer with this analysis</a></li>
|
||||
<li><a href="#org289931f">2. Configuration Analysis - Stiffness Matrix</a>
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="#orgc378f8a">2.1. Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</a></li>
|
||||
<li><a href="#org608174e">2.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
|
||||
<li><a href="#orgbd736ef">2.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
|
||||
<li><a href="#org6fbeda1">2.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
|
||||
<li><a href="#org18633d3">2.5. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org00efd87">3. Cubic size analysis</a></li>
|
||||
<li><a href="#org3841131">4. initializeCubicConfiguration</a>
|
||||
<li><a href="#orgf0ba2d0">3. Cubic size analysis</a></li>
|
||||
<li><a href="#org97dffbc">4. initializeCubicConfiguration</a>
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="#org4eb8b23">4.1. Function description</a></li>
|
||||
<li><a href="#orga42cb17">4.2. Optional Parameters</a></li>
|
||||
<li><a href="#orgc281f60">4.3. Cube Creation</a></li>
|
||||
<li><a href="#orgfed01f0">4.4. Vectors of each leg</a></li>
|
||||
<li><a href="#org21db1ef">4.5. Verification of Height of the Stewart Platform</a></li>
|
||||
<li><a href="#org9578c3c">4.6. Determinate the location of the joints</a></li>
|
||||
<li><a href="#org71c9d4e">4.7. Returns Stewart Structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org1963ce8">5. Tests</a>
|
||||
<li><a href="#orgb2d1742">5. Tests</a>
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="#org6e933c9">5.1. First attempt to parametrisation</a></li>
|
||||
<li><a href="#org60486ce">5.2. Second attempt</a></li>
|
||||
<li><a href="#orge571873">5.3. Generate the Stewart platform for a Cubic configuration</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -327,15 +326,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="#orga589e9f">4</a>).
|
||||
To generate and study the Cubic configuration, <code>initializeCubicConfiguration</code> is used (description in section <a href="#org38614bc">4</a>).
|
||||
</p>
|
||||
|
||||
<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 id="outline-container-org4a16be2" class="outline-2">
|
||||
<h2 id="org4a16be2"><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:
|
||||
@ -348,45 +347,45 @@ The goal is to study the benefits of using a cubic configuration:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5539c71" class="outline-2">
|
||||
<h2 id="org5539c71"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
|
||||
<div id="outline-container-org289931f" class="outline-2">
|
||||
<h2 id="org289931f"><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-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 id="outline-container-orgc378f8a" class="outline-3">
|
||||
<h3 id="orgc378f8a"><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="#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).
|
||||
We create a cubic Stewart platform (figure <a href="#org8e23773">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="org1d5da43" class="figure">
|
||||
<div id="org8e23773" 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>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, ...<span class="org-comment"> % Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ...<span class="org-comment"> % Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, ...<span class="org-comment"> % Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> ...<span class="org-comment"> % Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span>, ...<span class="org-comment"> % Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span> ...<span class="org-comment"> % Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/stewart.mat', 'stewart'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/stewart.mat'</span>, <span class="org-string">'stewart'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
|
||||
<pre class="src src-matlab">K = stewart.Jf<span class="org-type">'*</span>stewart.Jf;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -465,32 +464,32 @@ save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 id="outline-container-org608174e" class="outline-3">
|
||||
<h3 id="org608174e"><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="#org1d5da43">1</a>).
|
||||
We create a cubic Stewart platform with center of the cube located at the center of the Stewart platform (figure <a href="#org8e23773">1</a>).
|
||||
The Jacobian matrix is not estimated at the location of the center of the cube.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, ...<span class="org-comment"> % Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ...<span class="org-comment"> % Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, ...<span class="org-comment"> % Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> ...<span class="org-comment"> % Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</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-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</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-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</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-rainbow-delimiters-depth-2">]</span>, ...<span class="org-comment"> % Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</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-rainbow-delimiters-depth-2">]</span> ...<span class="org-comment"> % Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
|
||||
<pre class="src src-matlab">K = stewart.Jf<span class="org-type">'*</span>stewart.Jf;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -569,16 +568,16 @@ stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 id="outline-container-orgbd736ef" class="outline-3">
|
||||
<h3 id="orgbd736ef"><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="#org95caad9">2</a>).
|
||||
Here, the "center" of the Stewart platform is not at the cube center (figure <a href="#org3982eac">2</a>).
|
||||
The Jacobian is estimated at the cube center.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org95caad9" class="figure">
|
||||
<div id="org3982eac" 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>
|
||||
@ -592,23 +591,23 @@ The center of the cube from the top platform is at \(z = 110 - 175 = -65\).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">220</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, ...<span class="org-comment"> % Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">220</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ...<span class="org-comment"> % Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, ...<span class="org-comment"> % Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> ...<span class="org-comment"> % Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">65</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">65</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">65</span><span class="org-rainbow-delimiters-depth-2">]</span>, ...<span class="org-comment"> % Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">65</span><span class="org-rainbow-delimiters-depth-2">]</span> ...<span class="org-comment"> % Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
|
||||
<pre class="src src-matlab">K = stewart.Jf<span class="org-type">'*</span>stewart.Jf;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -691,8 +690,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-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 id="outline-container-org6fbeda1" class="outline-3">
|
||||
<h3 id="org6fbeda1"><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.
|
||||
@ -707,23 +706,23 @@ The center of the cube from the top platform is at \(z = 110 - 175 = -65\).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">220</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, ...<span class="org-comment"> % Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">220</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ...<span class="org-comment"> % Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, ...<span class="org-comment"> % Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> ...<span class="org-comment"> % Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-rainbow-delimiters-depth-2">]</span>, ...<span class="org-comment"> % Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-rainbow-delimiters-depth-2">]</span> ...<span class="org-comment"> % Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
|
||||
<pre class="src src-matlab">K = stewart.Jf<span class="org-type">'*</span>stewart.Jf;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -806,8 +805,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-org6305043" class="outline-3">
|
||||
<h3 id="org6305043"><span class="section-number-3">2.5</span> Conclusion</h3>
|
||||
<div id="outline-container-org18633d3" class="outline-3">
|
||||
<h3 id="org18633d3"><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">
|
||||
@ -820,8 +819,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-org00efd87" class="outline-2">
|
||||
<h2 id="org00efd87"><span class="section-number-2">3</span> Cubic size analysis</h2>
|
||||
<div id="outline-container-orgf0ba2d0" class="outline-2">
|
||||
<h2 id="orgf0ba2d0"><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.
|
||||
@ -842,22 +841,22 @@ stewarts = <span class="org-rainbow-delimiters-depth-1">{</span>zeros<span class
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">H_cubes</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
<pre class="src src-matlab"><span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">H_cubes</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
H_cube = H_cubes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
H_tot = <span class="org-highlight-numbers-number">100</span>;
|
||||
H = <span class="org-highlight-numbers-number">80</span>;
|
||||
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'H_tot'</span>, H_tot, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, H_cube<span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, H, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'H_tot'</span>, H_tot, ...<span class="org-comment"> % Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, H_cube<span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, ...<span class="org-comment"> % Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, H, ...<span class="org-comment"> % Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> ...<span class="org-comment"> % Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>opts.H0<span class="org-type">-</span>opts.H_tot<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>opts.H0<span class="org-type">-</span>opts.H_tot<span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>opts.H0<span class="org-type">-</span>opts.H_tot<span class="org-rainbow-delimiters-depth-2">]</span>, ...<span class="org-comment"> % Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
|
||||
<span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>opts.H0<span class="org-type">-</span>opts.H_tot<span class="org-rainbow-delimiters-depth-2">]</span> ...<span class="org-comment"> % Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewarts<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = <span class="org-rainbow-delimiters-depth-1">{</span>stewart<span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
@ -871,8 +870,8 @@ The Stiffness matrix is computed for all generated Stewart platforms.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ks = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">6</span>, length<span class="org-rainbow-delimiters-depth-2">(</span>H_cube<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">H_cubes</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
Ks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-type">:</span>, <span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = stewarts<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">}</span>.Jd'<span class="org-type">*</span>stewarts<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">}</span>.Jd;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">H_cubes</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
Ks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-type">:</span>, <span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = stewarts<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">}</span>.Jd<span class="org-type">'*</span>stewarts<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">}</span>.Jd;
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
@ -887,16 +886,16 @@ Finally, we plot \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\)
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>H_cubes, squeeze<span class="org-rainbow-delimiters-depth-2">(</span>Ks<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">4</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', '</span>$k_<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-type">\</span>theta_x<span class="org-rainbow-delimiters-depth-2">}</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>H_cubes, squeeze<span class="org-rainbow-delimiters-depth-2">(</span>Ks<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">6</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', '</span>$k_<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-type">\</span>theta_z<span class="org-rainbow-delimiters-depth-2">}</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>H_cubes, squeeze<span class="org-rainbow-delimiters-depth-2">(</span>Ks<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">4</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$k_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">\theta_x</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>H_cubes, squeeze<span class="org-rainbow-delimiters-depth-2">(</span>Ks<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">6</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$k_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">\theta_z</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location', 'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Cube Size </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">mm</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Rotational stiffnes </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">normalized</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location'</span>, <span class="org-string">'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Cube Size </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">mm</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Rotational stiffnes </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">normalized</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org5211ce6" class="figure">
|
||||
<div id="org7d4f005" 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>
|
||||
@ -917,16 +916,16 @@ In that case, the legs will the further separated. Size of the cube is then limi
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3841131" class="outline-2">
|
||||
<h2 id="org3841131"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
|
||||
<div id="outline-container-org97dffbc" class="outline-2">
|
||||
<h2 id="org97dffbc"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<p>
|
||||
<a id="orga589e9f"></a>
|
||||
<a id="org38614bc"></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgff95f33" class="outline-3">
|
||||
<h3 id="orgff95f33"><span class="section-number-3">4.1</span> Function description</h3>
|
||||
<div id="outline-container-org4eb8b23" class="outline-3">
|
||||
<h3 id="org4eb8b23"><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>
|
||||
@ -935,18 +934,18 @@ In that case, the legs will the further separated. Size of the cube is then limi
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3163673" class="outline-3">
|
||||
<h3 id="org3163673"><span class="section-number-3">4.2</span> Optional Parameters</h3>
|
||||
<div id="outline-container-orga42cb17" class="outline-3">
|
||||
<h3 id="orga42cb17"><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.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">110</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">40</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span>...
|
||||
<span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">90</span>, ...<span class="org-comment"> % Total height of the Hexapod [mm]</span>
|
||||
<span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">110</span>, ...<span class="org-comment"> % Size of the Cube [mm]</span>
|
||||
<span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">40</span>, ...<span class="org-comment"> % Height between base joints and platform joints [mm]</span>
|
||||
<span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> ...<span class="org-comment"> % Height between the corner of the cube and the plane containing the base joints [mm]</span>
|
||||
<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
@ -955,7 +954,7 @@ Default values for opts.
|
||||
Populate opts with input parameters
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
<pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param'</span>,<span class="org-string">'var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
|
||||
opts.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
@ -965,17 +964,17 @@ Populate opts with input parameters
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgda7067a" class="outline-3">
|
||||
<h3 id="orgda7067a"><span class="section-number-3">4.3</span> Cube Creation</h3>
|
||||
<div id="outline-container-orgc281f60" class="outline-3">
|
||||
<h3 id="orgc281f60"><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>
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</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-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; ...
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; ...
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
points = opts.L<span class="org-type">*</span>points;
|
||||
</pre>
|
||||
@ -994,7 +993,7 @@ sy = sy<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-de
|
||||
sz = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
sz = sz<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sz<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
R = <span class="org-rainbow-delimiters-depth-1">[</span>sx', sy', sz'<span class="org-rainbow-delimiters-depth-1">]</span>';
|
||||
R = <span class="org-rainbow-delimiters-depth-1">[</span>sx<span class="org-type">'</span>, sy<span class="org-type">'</span>, sz<span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">]</span><span class="org-type">'</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -1003,23 +1002,23 @@ We use to rotation matrix to rotate the cube
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">cube = zeros<span class="org-rainbow-delimiters-depth-1">(</span>size<span class="org-rainbow-delimiters-depth-2">(</span>points<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:size</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">points, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = R <span class="org-type">*</span> points<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>';
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:size</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">points, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = R <span class="org-type">*</span> points<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">'</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 id="outline-container-orgfed01f0" class="outline-3">
|
||||
<h3 id="orgfed01f0"><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>
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</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-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; ...
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; ...
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; ...
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</span>; ...
|
||||
<span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
</pre>
|
||||
</div>
|
||||
@ -1031,7 +1030,7 @@ Vectors are:
|
||||
<pre class="src src-matlab">legs = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legs_start = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
@ -1040,8 +1039,8 @@ legs_start = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span cla
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 id="outline-container-org21db1ef" class="outline-3">
|
||||
<h3 id="org21db1ef"><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.
|
||||
@ -1050,9 +1049,9 @@ If the Stewart platform is not contained in the cube, throw an error.
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Hmax = cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">if</span> opts.H0 <span class="org-type"><</span> cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
error<span class="org-rainbow-delimiters-depth-1">(</span>sprintf<span class="org-rainbow-delimiters-depth-2">(</span>'H0 is not high enought. Minimum H0 = %.<span class="org-highlight-numbers-number">1f</span>', cube(<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span>)));
|
||||
error<span class="org-rainbow-delimiters-depth-1">(</span>sprintf<span class="org-rainbow-delimiters-depth-2">(</span>'H0 is not high enought. Minimum H0 = %.<span class="org-highlight-numbers-number">1f</span><span class="org-type">'</span>, cube(<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span>)));
|
||||
<span class="org-keyword">else</span> <span class="org-keyword">if</span> opts.H0 <span class="org-type">+</span> opts.H <span class="org-type">></span> cube<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-3">)</span>
|
||||
error<span class="org-rainbow-delimiters-depth-3">(</span>sprintf<span class="org-rainbow-delimiters-depth-4">(</span>'H0<span class="org-type">+</span>H is too high. Maximum H0<span class="org-type">+</span>H = %.<span class="org-highlight-numbers-number">1f</span>', cube(<span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span>)));
|
||||
error<span class="org-rainbow-delimiters-depth-3">(</span>sprintf<span class="org-rainbow-delimiters-depth-4">(</span>'H0<span class="org-type">+</span>H is too high. Maximum H0<span class="org-type">+</span>H = %.<span class="org-highlight-numbers-number">1f</span><span class="org-type">'</span>, cube(<span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span>)));
|
||||
error<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'H0+H is too high'</span><span class="org-rainbow-delimiters-depth-5">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
@ -1060,8 +1059,8 @@ If the Stewart platform is not contained in the cube, throw an error.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 id="outline-container-org9578c3c" class="outline-3">
|
||||
<h3 id="org9578c3c"><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\}\).
|
||||
@ -1069,7 +1068,7 @@ We now determine the location of the joints on the fixed platform w.r.t the fixe
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Aa = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
t = <span class="org-rainbow-delimiters-depth-1">(</span>opts.H0<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
@ -1081,7 +1080,7 @@ And the location of the joints on the mobile platform with respect to \(\{A\}\).
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ab = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
t = <span class="org-rainbow-delimiters-depth-1">(</span>opts.H0<span class="org-type">+</span>opts.H<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
Ab<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
@ -1106,8 +1105,8 @@ Ab = Ab <span class="org-type">-</span> h<span class="org-type">*</span><span cl
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org723d8e6" class="outline-3">
|
||||
<h3 id="org723d8e6"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3>
|
||||
<div id="outline-container-org71c9d4e" class="outline-3">
|
||||
<h3 id="org71c9d4e"><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>;
|
||||
@ -1122,15 +1121,15 @@ Ab = Ab <span class="org-type">-</span> h<span class="org-type">*</span><span cl
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1963ce8" class="outline-2">
|
||||
<h2 id="org1963ce8"><span class="section-number-2">5</span> Tests</h2>
|
||||
<div id="outline-container-orgb2d1742" class="outline-2">
|
||||
<h2 id="orgb2d1742"><span class="section-number-2">5</span> Tests</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
</div>
|
||||
<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 id="outline-container-org6e933c9" class="outline-3">
|
||||
<h3 id="org6e933c9"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3>
|
||||
<div class="outline-text-3" id="text-5-1">
|
||||
|
||||
<div id="org16ba25a" class="figure">
|
||||
<div id="org94bcd9c" 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>
|
||||
@ -1165,8 +1164,8 @@ Lets express \(a_i\), \(b_i\) and \(a_j\):
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2231886" class="outline-3">
|
||||
<h3 id="org2231886"><span class="section-number-3">5.2</span> Second attempt</h3>
|
||||
<div id="outline-container-org60486ce" class="outline-3">
|
||||
<h3 id="org60486ce"><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:
|
||||
@ -1185,13 +1184,13 @@ Then we have the direction of all the vectors expressed in the frame of the hexa
|
||||
</p>
|
||||
|
||||
<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>
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</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-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; ...
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; ...
|
||||
<span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; ...
|
||||
<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
</pre>
|
||||
</div>
|
||||
@ -1212,14 +1211,14 @@ sy = sy<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-de
|
||||
sz = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
sz = sz<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sz<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
R = <span class="org-rainbow-delimiters-depth-1">[</span>sx', sy', sz'<span class="org-rainbow-delimiters-depth-1">]</span>';
|
||||
R = <span class="org-rainbow-delimiters-depth-1">[</span>sx<span class="org-type">'</span>, sy<span class="org-type">'</span>, sz<span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">]</span><span class="org-type">'</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">cube = zeros<span class="org-rainbow-delimiters-depth-1">(</span>size<span class="org-rainbow-delimiters-depth-2">(</span>points<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:size</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">points, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = R <span class="org-type">*</span> points<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>';
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:size</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">points, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
|
||||
cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = R <span class="org-type">*</span> points<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">'</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
@ -1237,16 +1236,16 @@ hold off;
|
||||
Now we plot the legs of the hexapod.
|
||||
</p>
|
||||
<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>
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</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-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; ...
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; ...
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; ...
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</span>; ...
|
||||
<span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>
|
||||
|
||||
<span class="org-type">figure</span>;
|
||||
hold on;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
plot3<span class="org-rainbow-delimiters-depth-1">(</span>cube<span class="org-rainbow-delimiters-depth-2">(</span>leg_indices<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, cube<span class="org-rainbow-delimiters-depth-2">(</span>leg_indices<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, cube<span class="org-rainbow-delimiters-depth-2">(</span>leg_indices<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'-'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
hold off;
|
||||
@ -1260,7 +1259,7 @@ Vectors are:
|
||||
<pre class="src src-matlab">legs = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legs_start = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
<span class="org-keyword">end</span>
|
||||
@ -1293,8 +1292,8 @@ Let's then estimate the middle position of the platform
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 id="outline-container-orge571873" class="outline-3">
|
||||
<h3 id="orge571873"><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.
|
||||
@ -1315,7 +1314,7 @@ We now determine the location of the joints on the fixed platform.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Aa = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
t = <span class="org-rainbow-delimiters-depth-1">(</span>Zs<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
@ -1327,7 +1326,7 @@ And the location of the joints on the mobile platform
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ab = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
t = <span class="org-rainbow-delimiters-depth-1">(</span>Ze<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
Ab<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
@ -1340,7 +1339,7 @@ And we plot the legs.
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
|
||||
plot3<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>Ab<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span>,Aa<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-rainbow-delimiters-depth-2">[</span>Ab<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">)</span>,Aa<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-rainbow-delimiters-depth-2">[</span>Ab<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-3">)</span>,Aa<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-string">'k-'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
hold off;
|
||||
@ -1364,7 +1363,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-10-09 mer. 11:08</p>
|
||||
<p class="date">Created: 2019-12-12 jeu. 20:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -617,4 +617,4 @@ And we plot the legs.
|
||||
|
||||
* Bibliography :ignore:
|
||||
bibliographystyle:unsrt
|
||||
bibliography:references.bib
|
||||
bibliography:ref.bib
|
||||
|
69
index.html
69
index.html
@ -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-10-09 mer. 11:07 -->
|
||||
<!-- 2019-12-19 jeu. 15:14 -->
|
||||
<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>
|
||||
@ -193,12 +193,12 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</style>
|
||||
<link rel="stylesheet" type="text/css" href="css/htmlize.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/>
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
<script src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script src="js/readtheorg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
||||
<script src="./js/jquery.min.js"></script>
|
||||
<script src="./js/bootstrap.min.js"></script>
|
||||
<script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
<script src="./js/readtheorg.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
@ -261,7 +261,10 @@ for the JavaScript code in this tag.
|
||||
TeX: { equationNumbers: {autoNumber: "AMS"},
|
||||
MultLineWidth: "85%",
|
||||
TagSide: "right",
|
||||
TagIndent: ".8em"
|
||||
TagIndent: ".8em",
|
||||
Macros: {
|
||||
bm: ["{\\boldsymbol #1}",1],
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@ -272,8 +275,12 @@ for the JavaScript code in this tag.
|
||||
<div id="content">
|
||||
<h1 class="title">Stewart Platforms</h1>
|
||||
|
||||
<div id="outline-container-orge672724" class="outline-2">
|
||||
<h2 id="orge672724"><span class="section-number-2">1</span> Simscape Model</h2>
|
||||
<p>
|
||||
<a class='org-ref-reference' href="#preumont07_six_axis_singl_stage_activ">preumont07_six_axis_singl_stage_activ</a>
|
||||
</p>
|
||||
|
||||
<div id="outline-container-org9cd44e0" class="outline-2">
|
||||
<h2 id="org9cd44e0"><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>
|
||||
@ -282,8 +289,8 @@ for the JavaScript code in this tag.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfce4cb7" class="outline-2">
|
||||
<h2 id="orgfce4cb7"><span class="section-number-2">2</span> Architecture Study</h2>
|
||||
<div id="outline-container-org7a44762" class="outline-2">
|
||||
<h2 id="org7a44762"><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>
|
||||
@ -294,8 +301,8 @@ for the JavaScript code in this tag.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org92e9216" class="outline-2">
|
||||
<h2 id="org92e9216"><span class="section-number-2">3</span> Motion Control</h2>
|
||||
<div id="outline-container-org77767cc" class="outline-2">
|
||||
<h2 id="org77767cc"><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>
|
||||
@ -304,16 +311,16 @@ 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 id="outline-container-org9d06c58" class="outline-2">
|
||||
<h2 id="org9d06c58"><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 id="outline-container-orgffe6651" class="outline-3">
|
||||
<h3 id="orgffe6651"><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 id="outline-container-org6b92660" class="outline-4">
|
||||
<h4 id="org6b92660"><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:
|
||||
@ -329,8 +336,8 @@ Then, the choice of \(O_B\) changes the Jacobian.
|
||||
</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 id="outline-container-orgcec2e05" class="outline-4">
|
||||
<h4 id="orgcec2e05"><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} \]
|
||||
@ -347,8 +354,8 @@ For very small displacements \(\delta q\) and \(\delta X\), we have \(\delta q =
|
||||
</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 id="outline-container-orgbf33a4e" class="outline-4">
|
||||
<h4 id="orgbf33a4e"><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 \]
|
||||
@ -362,8 +369,8 @@ With:
|
||||
</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 id="outline-container-org3710914" class="outline-3">
|
||||
<h3 id="org3710914"><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 \]
|
||||
@ -396,8 +403,8 @@ The compliance element \(C_{ij}\) is then the stiffness
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge5eb09a" class="outline-3">
|
||||
<h3 id="orge5eb09a"><span class="section-number-3">4.3</span> Coupling</h3>
|
||||
<div id="outline-container-orgd5d2c08" class="outline-3">
|
||||
<h3 id="orgd5d2c08"><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\) ?
|
||||
@ -418,7 +425,7 @@ What causes the coupling from \(F_i\) to \(X_i\) ?
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org064c4c6" class="figure">
|
||||
<div id="orgc118680" 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>
|
||||
@ -441,7 +448,9 @@ Thus, the system is uncoupled if \(G\) and \(K\) are diagonal.
|
||||
|
||||
<p>
|
||||
|
||||
<a href="references.bib">references.bib</a>
|
||||
<h1 class='org-ref-bib-h1'>Bibliography</h1>
|
||||
<ul class='org-ref-bib'><li><a id="preumont07_six_axis_singl_stage_activ">[preumont07_six_axis_singl_stage_activ]</a> <a name="preumont07_six_axis_singl_stage_activ"></a>Preumont, Horodinca, Romanescu, de, Marneffe, Avraam, Deraemaeker, Bossens, & Abu Hanieh, A Six-Axis Single-Stage Active Vibration Isolator Based on Stewart Platform, <i>Journal of Sound and Vibration</i>, <b>300(3-5)</b>, 644-661 (2007). <a href="https://doi.org/10.1016/j.jsv.2006.07.050">link</a>. <a href="http://dx.doi.org/10.1016/j.jsv.2006.07.050">doi</a>.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
22
index.org
22
index.org
@ -3,12 +3,12 @@
|
||||
#+OPTIONS: toc:nil
|
||||
#+OPTIONS: html-postamble:nil
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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/readtheorg.js"></script>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="./js/jquery.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/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
|
||||
@ -21,7 +21,10 @@
|
||||
#+PROPERTY: header-args:latex+ :output-dir figs
|
||||
:END:
|
||||
|
||||
* Simscape Model
|
||||
* 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]]
|
||||
|
||||
@ -35,7 +38,8 @@
|
||||
- Active Damping
|
||||
- Inertial Control
|
||||
- Decentralized Control
|
||||
* Notes about Stewart platforms
|
||||
|
||||
* Notes about Stewart platforms :noexport:
|
||||
** Jacobian
|
||||
*** Relation to platform parameters
|
||||
A Jacobian is defined by:
|
||||
@ -104,4 +108,4 @@ Thus, the system is uncoupled if $G$ and $K$ are diagonal.
|
||||
|
||||
* Bibliography :ignore:
|
||||
bibliographystyle:unsrt
|
||||
bibliography:references.bib
|
||||
bibliography:ref.bib
|
||||
|
Loading…
Reference in New Issue
Block a user