Publish project

This commit is contained in:
Thomas Dehaeze 2020-08-05 16:23:11 +02:00
parent 09dad1482c
commit 009481ff75
2 changed files with 487 additions and 234 deletions

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-08-05 mer. 13:27 -->
<!-- 2020-08-05 mer. 16:23 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Kinematic Study of the Stewart Platform</title>
<meta name="generator" content="Org mode" />
@ -55,14 +55,14 @@
</li>
<li><a href="#org86b4b35">4. Estimation of the range validity of the approximate inverse kinematics</a>
<ul>
<li><a href="#orga78aa66">4.1. Stewart architecture definition</a></li>
<li><a href="#org6a6a5df">4.1. Stewart architecture definition</a></li>
<li><a href="#orgd83ccf3">4.2. Comparison for &ldquo;pure&rdquo; translations</a></li>
<li><a href="#org4871c83">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org63255f9">5. Estimated required actuator stroke from specified platform mobility</a>
<ul>
<li><a href="#orgadaa219">5.1. Stewart architecture definition</a></li>
<li><a href="#org94b26cb">5.1. Stewart architecture definition</a></li>
<li><a href="#orgde50dd3">5.2. Wanted translations and rotations</a></li>
<li><a href="#org24e45ca">5.3. Needed stroke for &ldquo;pure&rdquo; rotations or translations</a></li>
<li><a href="#orgf6ba90c">5.4. Needed stroke for &ldquo;combined&rdquo; rotations or translations</a></li>
@ -70,21 +70,29 @@
</li>
<li><a href="#orgbbbf7b3">6. Estimated platform mobility from specified actuator stroke</a>
<ul>
<li><a href="#org6a6a5df">6.1. Stewart architecture definition</a></li>
<li><a href="#org39d80a1">6.1. Stewart architecture definition</a></li>
<li><a href="#org2c6819e">6.2. Pure translations</a></li>
</ul>
</li>
<li><a href="#orgad495dd">7. Estimation of the Joint required Stroke</a>
<ul>
<li><a href="#orgae20178">7.1. Example of the initialization of a Stewart Platform</a></li>
<li><a href="#org0eac36f">7.1. Estimation with an analytical model</a></li>
<li><a href="#org22e7362">7.2. Estimation using the Simscape Model</a>
<ul>
<li><a href="#org74fd123">7.2.1. Model Init</a></li>
<li><a href="#org55b87b1">7.2.2. Controller design to be close to the wanted displacement</a></li>
<li><a href="#org88ff9a1">7.2.3. Simulations</a></li>
<li><a href="#org881aa14">7.2.4. Results</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgc4916dc">8. Functions</a>
<ul>
<li><a href="#org26e8b28">8.1. <code>computeJacobian</code>: Compute the Jacobian Matrix</a>
<ul>
<li><a href="#orgcde905e">Function description</a></li>
<li><a href="#org5be121e">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc074bc3">Function description</a></li>
<li><a href="#orgdc0187a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org0cd57b5">Compute Jacobian Matrix</a></li>
<li><a href="#orge21dcfc">Compute Stiffness Matrix</a></li>
<li><a href="#orgae76071">Compute Compliance Matrix</a></li>
@ -94,17 +102,17 @@
<li><a href="#orgb82066f">8.2. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul>
<li><a href="#org89930b7">Theory</a></li>
<li><a href="#orgb66d0e9">Function description</a></li>
<li><a href="#org0aeb7ad">Optional Parameters</a></li>
<li><a href="#orga54645b">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge700de7">Function description</a></li>
<li><a href="#org9a855b1">Optional Parameters</a></li>
<li><a href="#orgea92a02">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org0d64c23">Compute</a></li>
</ul>
</li>
<li><a href="#orgf5d8f0b">8.3. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul>
<li><a href="#orgc074bc3">Function description</a></li>
<li><a href="#org9a855b1">Optional Parameters</a></li>
<li><a href="#orgdc0187a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org2c9d954">Function description</a></li>
<li><a href="#org2acccf0">Optional Parameters</a></li>
<li><a href="#orgbc9683a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge5ade24">Computation</a></li>
</ul>
</li>
@ -451,8 +459,8 @@ This will also gives us the range for which the approximate forward kinematic is
</p>
</div>
<div id="outline-container-orga78aa66" class="outline-3">
<h3 id="orga78aa66"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div id="outline-container-org6a6a5df" class="outline-3">
<h3 id="org6a6a5df"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We first define some general Stewart architecture.
@ -552,8 +560,8 @@ This is what is analyzed in this section.
</p>
</div>
<div id="outline-container-orgadaa219" class="outline-3">
<h3 id="orgadaa219"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div id="outline-container-org94b26cb" class="outline-3">
<h3 id="org94b26cb"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-5-1">
<p>
Let&rsquo;s first define the Stewart platform architecture that we want to study.
@ -972,8 +980,8 @@ However, for small displacements, we can use the Jacobian as an approximate solu
</p>
</div>
<div id="outline-container-org6a6a5df" class="outline-3">
<h3 id="org6a6a5df"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div id="outline-container-org39d80a1" class="outline-3">
<h3 id="org39d80a1"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-6-1">
<p>
Let&rsquo;s first define the Stewart platform architecture that we want to study.
@ -1089,8 +1097,8 @@ We can also approximate the mobility by a sphere with a radius equal to the mini
<h2 id="orgad495dd"><span class="section-number-2">7</span> Estimation of the Joint required Stroke</h2>
<div class="outline-text-2" id="text-7">
</div>
<div id="outline-container-orgae20178" class="outline-3">
<h3 id="orgae20178"><span class="section-number-3">7.1</span> Example of the initialization of a Stewart Platform</h3>
<div id="outline-container-org0eac36f" class="outline-3">
<h3 id="org0eac36f"><span class="section-number-3">7.1</span> Estimation with an analytical model</h3>
<div class="outline-text-3" id="text-7-1">
<p>
Let&rsquo;s first define the Stewart Platform Geometry.
@ -1099,34 +1107,59 @@ Let&rsquo;s first define the Stewart Platform Geometry.
<pre class="src src-matlab">stewart = initializeStewartPlatform();
stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 150e-3);
stewart = generateGeneralConfiguration(stewart);
stewart = computeJointsPose(stewart);
stewart = computeJointsPose(stewart, 'AP', [0; 0; 0]);
As_init = stewart.geometry.As;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Tx_max = 50e-6; % Translation [m]
Ty_max = 50e-6; % Translation [m]
Tz_max = 50e-6; % Translation [m]
<pre class="src src-matlab">Tx_max = 60e-6; % Translation [m]
Ty_max = 60e-6; % Translation [m]
Tz_max = 60e-6; % Translation [m]
Rx_max = 30e-6; % Rotation [rad]
Ry_max = 30e-6; % Rotation [rad]
Rz_max = 0; % Rotation [rad]
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Ps = [2*(dec2bin(0:3^2-2,3)-'0')-1].*[Tx_max Ty_max Tz_max];
<pre class="src src-matlab">Ps = [2*(dec2bin(0:5^2-1,5)-'0')-1, zeros(5^2, 1)].*[Tx_max Ty_max Tz_max Rx_max Ry_max Rz_max];
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">flex_ang = zeros(size(Ps, 1), 6);
Rxs = zeros(size(Ps, 1), 6)
Rys = zeros(size(Ps, 1), 6)
Rzs = zeros(size(Ps, 1), 6)
for Ps_i = 1:size(Ps, 1)
stewart.geometry.FO_M = [0; 0; 90e-3] + Ps(Ps_i, :)';
Rx = [1 0 0;
0 cos(Ps(Ps_i, 4)) -sin(Ps(Ps_i, 4));
0 sin(Ps(Ps_i, 4)) cos(Ps(Ps_i, 4))];
stewart = generateGeneralConfiguration(stewart);
stewart = computeJointsPose(stewart);
Ry = [ cos(Ps(Ps_i, 5)) 0 sin(Ps(Ps_i, 5));
0 1 0;
-sin(Ps(Ps_i, 5)) 0 cos(Ps(Ps_i, 5))];
Rz = [cos(Ps(Ps_i, 6)) -sin(Ps(Ps_i, 6)) 0;
sin(Ps(Ps_i, 6)) cos(Ps(Ps_i, 6)) 0;
0 0 1];
ARB = Rz*Ry*Rx;
stewart = computeJointsPose(stewart, 'AP', Ps(Ps_i, 1:3)', 'ARB', ARB);
flex_ang(Ps_i, :) = acos(sum(As_init.*stewart.geometry.As));
for l_i = 1:6
MRf = stewart.platform_M.MRb(:,:,l_i)*(ARB')*(stewart.platform_F.FRa(:,:,l_i)');
Rys(Ps_i, l_i) = atan2(MRf(1,3), sqrt(MRf(1,1)^2 + MRf(2,2)^2));
Rxs(Ps_i, l_i) = atan2(-MRf(2,3)/cos(Rys(Ps_i, l_i)), MRf(3,3)/cos(Rys(Ps_i, l_i)));
Rzs(Ps_i, l_i) = atan2(-MRf(1,2)/cos(Rys(Ps_i, l_i)), MRf(1,1)/cos(Rys(Ps_i, l_i)));
end
end
</pre>
</div>
@ -1140,8 +1173,195 @@ And the maximum bending of the flexible joints is: (in [mrad])
</div>
<pre class="example">
0.90937
1.1704
</pre>
<div class="org-src-container">
<pre class="src src-matlab">1e3*max(max(sqrt(Rxs.^2 + Rys.^2)))
</pre>
</div>
<pre class="example">
0.075063
</pre>
<div class="org-src-container">
<pre class="src src-matlab">1e3*max(max(Rzs))
</pre>
</div>
<pre class="example">
0.04666
</pre>
</div>
</div>
<div id="outline-container-org22e7362" class="outline-3">
<h3 id="org22e7362"><span class="section-number-3">7.2</span> Estimation using the Simscape Model</h3>
<div class="outline-text-3" id="text-7-2">
</div>
<div id="outline-container-org74fd123" class="outline-4">
<h4 id="org74fd123"><span class="section-number-4">7.2.1</span> Model Init</h4>
<div class="outline-text-4" id="text-7-2-1">
<div class="org-src-container">
<pre class="src src-matlab">open('stewart_platform_model.slx')
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
stewart = generateGeneralConfiguration(stewart);
stewart = computeJointsPose(stewart);
stewart = initializeStrutDynamics(stewart);
stewart = initializeJointDynamics(stewart, 'type_F', 'universal_p', 'type_M', 'spherical_p');
stewart = initializeCylindricalPlatforms(stewart);
stewart = initializeCylindricalStruts(stewart);
stewart = computeJacobian(stewart);
stewart = initializeStewartPose(stewart);
stewart = initializeInertialSensor(stewart, 'type', 'accelerometer', 'freq', 5e3);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">ground = initializeGround('type', 'rigid');
payload = initializePayload('type', 'none');
controller = initializeController('type', 'open-loop');
disturbances = initializeDisturbances();
references = initializeReferences(stewart);
</pre>
</div>
</div>
</div>
<div id="outline-container-org55b87b1" class="outline-4">
<h4 id="org55b87b1"><span class="section-number-4">7.2.2</span> Controller design to be close to the wanted displacement</h4>
<div class="outline-text-4" id="text-7-2-2">
<div class="org-src-container">
<pre class="src src-matlab">%% Name of the Simulink File
mdl = 'stewart_platform_model';
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'dLm'); io_i = io_i + 1; % Relative Displacement Outputs [m]
%% Run the linearization
G = linearize(mdl, io);
G.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
G.OutputName = {'L1', 'L2', 'L3', 'L4', 'L5', 'L6'};
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">wc = 2*pi*30;
Kl = diag(1./diag(abs(freqresp(G, wc)))) * wc/s * 1/(1 + s/3/wc);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController('type', 'ref-track-L');
</pre>
</div>
</div>
</div>
<div id="outline-container-org88ff9a1" class="outline-4">
<h4 id="org88ff9a1"><span class="section-number-4">7.2.3</span> Simulations</h4>
<div class="outline-text-4" id="text-7-2-3">
<div class="org-src-container">
<pre class="src src-matlab">Tx_max = 60e-6; % Translation [m]
Ty_max = 60e-6; % Translation [m]
Tz_max = 60e-6; % Translation [m]
Rx_max = 30e-6; % Rotation [rad]
Ry_max = 30e-6; % Rotation [rad]
Rz_max = 0; % Rotation [rad]
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Ps = [2*(dec2bin(0:5^2-1,5)-'0')-1, zeros(5^2, 1)].*[Tx_max Ty_max Tz_max Rx_max Ry_max Rz_max];
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">cl_perf = zeros(size(Ps, 1), 1); % Closed loop performance [percentage]
Rs = zeros(size(Ps, 1), 5); % Max Flexor angles for the 6 legs [mrad]
for Ps_i = 1:size(Ps, 1)
fprintf('Experiment %i over %i', Ps_i, size(Ps, 1));
references = initializeReferences(stewart, 't', 0, 'r', Ps(Ps_i, :)');
set_param('stewart_platform_model','StopTime','0.1');
sim('stewart_platform_model');
cl_perf(Ps_i) = 100*max(abs((simout.y.dLm.Data(end, :) - references.rL.Data(:,1,1)')./simout.y.dLm.Data(end, :)));
Rs(Ps_i, :) = [max(abs(1e3*simout.y.Rf.Data(end, 1:2:end))), max(abs(1e3*simout.y.Rf.Data(end, 2:2:end))), max(abs(1e3*simout.y.Rm.Data(end, 1:3:end))), max(abs(1e3*simout.y.Rm.Data(end, 2:3:end))), max(abs(1e3*simout.y.Rm.Data(end, 3:3:end)))]';
end
</pre>
</div>
<p>
Verify that the simulations are all correct:
</p>
<div class="org-src-container">
<pre class="src src-matlab">max(cl_perf)
</pre>
</div>
<pre class="example">
8.1147
</pre>
</div>
</div>
<div id="outline-container-org881aa14" class="outline-4">
<h4 id="org881aa14"><span class="section-number-4">7.2.4</span> Results</h4>
<div class="outline-text-4" id="text-7-2-4">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-right">Stroke [mrad]</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Rx bot</td>
<td class="org-right">1.03</td>
</tr>
<tr>
<td class="org-left">Ry bot</td>
<td class="org-right">0.93</td>
</tr>
<tr>
<td class="org-left">Rx top</td>
<td class="org-right">1.06</td>
</tr>
<tr>
<td class="org-left">Ry top</td>
<td class="org-right">0.95</td>
</tr>
<tr>
<td class="org-left">Rz top</td>
<td class="org-right">0.03</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
@ -1165,9 +1385,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</p>
</div>
<div id="outline-container-orgcde905e" class="outline-4">
<h4 id="orgcde905e">Function description</h4>
<div class="outline-text-4" id="text-orgcde905e">
<div id="outline-container-orgc074bc3" class="outline-4">
<h4 id="orgc074bc3">Function description</h4>
<div class="outline-text-4" id="text-orgc074bc3">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJacobian(stewart)
% computeJacobian -
@ -1190,9 +1410,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</div>
</div>
<div id="outline-container-org5be121e" class="outline-4">
<h4 id="org5be121e">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5be121e">
<div id="outline-container-orgdc0187a" class="outline-4">
<h4 id="orgdc0187a">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgdc0187a">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'As'), 'stewart.geometry should have attribute As')
As = stewart.geometry.As;
@ -1300,9 +1520,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-orgb66d0e9" class="outline-4">
<h4 id="orgb66d0e9">Function description</h4>
<div class="outline-text-4" id="text-orgb66d0e9">
<div id="outline-container-orge700de7" class="outline-4">
<h4 id="orge700de7">Function description</h4>
<div class="outline-text-4" id="text-orge700de7">
<div class="org-src-container">
<pre class="src src-matlab">function [Li, dLi] = inverseKinematics(stewart, args)
% inverseKinematics - Compute the needed length of each strut to have the wanted position and orientation of {B} with respect to {A}
@ -1326,9 +1546,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org0aeb7ad" class="outline-4">
<h4 id="org0aeb7ad">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0aeb7ad">
<div id="outline-container-org9a855b1" class="outline-4">
<h4 id="org9a855b1">Optional Parameters</h4>
<div class="outline-text-4" id="text-org9a855b1">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1340,9 +1560,9 @@ end
</div>
</div>
<div id="outline-container-orga54645b" class="outline-4">
<h4 id="orga54645b">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orga54645b">
<div id="outline-container-orgea92a02" class="outline-4">
<h4 id="orgea92a02">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgea92a02">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'Aa'), 'stewart.geometry should have attribute Aa')
Aa = stewart.geometry.Aa;
@ -1386,9 +1606,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p>
</div>
<div id="outline-container-orgc074bc3" class="outline-4">
<h4 id="orgc074bc3">Function description</h4>
<div class="outline-text-4" id="text-orgc074bc3">
<div id="outline-container-org2c9d954" class="outline-4">
<h4 id="org2c9d954">Function description</h4>
<div class="outline-text-4" id="text-org2c9d954">
<div class="org-src-container">
<pre class="src src-matlab">function [P, R] = forwardKinematicsApprox(stewart, args)
% forwardKinematicsApprox - Computed the approximate pose of {B} with respect to {A} from the length of each strut and using
@ -1410,9 +1630,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-org9a855b1" class="outline-4">
<h4 id="org9a855b1">Optional Parameters</h4>
<div class="outline-text-4" id="text-org9a855b1">
<div id="outline-container-org2acccf0" class="outline-4">
<h4 id="org2acccf0">Optional Parameters</h4>
<div class="outline-text-4" id="text-org2acccf0">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1423,9 +1643,9 @@ end
</div>
</div>
<div id="outline-container-orgdc0187a" class="outline-4">
<h4 id="orgdc0187a">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgdc0187a">
<div id="outline-container-orgbc9683a" class="outline-4">
<h4 id="orgbc9683a">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgbc9683a">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.kinematics, 'J'), 'stewart.kinematics should have attribute J')
J = stewart.kinematics.J;
@ -1490,7 +1710,7 @@ We then compute the corresponding rotation matrix.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-08-05 mer. 13:27</p>
<p class="date">Created: 2020-08-05 mer. 16:23</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-08-05 mer. 13:27 -->
<!-- 2020-08-05 mer. 16:23 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Definition of the Architecture</title>
<meta name="generator" content="Org mode" />
@ -63,93 +63,94 @@
<ul>
<li><a href="#orgd89f0e1">5.1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul>
<li><a href="#org7181227">Documentation</a></li>
<li><a href="#orgb2bf5c6">Function description</a></li>
<li><a href="#orgd9476c2">Documentation</a></li>
<li><a href="#orgd5f2c51">Function description</a></li>
<li><a href="#orgd567fc1">Initialize the Stewart structure</a></li>
</ul>
</li>
<li><a href="#orgb11894c">5.2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a>
<ul>
<li><a href="#orga7be221">Documentation</a></li>
<li><a href="#org863d1d3">Function description</a></li>
<li><a href="#orgdce9aac">Optional Parameters</a></li>
<li><a href="#orge1df9c8">Documentation</a></li>
<li><a href="#org3913fad">Function description</a></li>
<li><a href="#org84462af">Optional Parameters</a></li>
<li><a href="#org458592e">Compute the position of each frame</a></li>
<li><a href="#org37e77bd">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org1c152b9">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9057387">5.3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a>
<ul>
<li><a href="#orgccbec16">Documentation</a></li>
<li><a href="#org0dcd5d9">Function description</a></li>
<li><a href="#orge1ca954">Optional Parameters</a></li>
<li><a href="#org2b8fb20">Documentation</a></li>
<li><a href="#orga75f162">Function description</a></li>
<li><a href="#org8c0fa82">Optional Parameters</a></li>
<li><a href="#org232e4c2">Compute the pose</a></li>
<li><a href="#org0172101">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org7d2bd07">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org861f6de">5.4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul>
<li><a href="#org792126c">Documentation</a></li>
<li><a href="#orgf19ecda">Function description</a></li>
<li><a href="#org5a1dea6">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orga2f43b2">Documentation</a></li>
<li><a href="#orge08cff0">Function description</a></li>
<li><a href="#org80cc25e">Optional Parameters</a></li>
<li><a href="#orge80fdc3">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org52b0d4c">Compute the position of the Joints</a></li>
<li><a href="#org4b76b0f">Compute the strut length and orientation</a></li>
<li><a href="#orgd621d5e">Compute the orientation of the Joints</a></li>
<li><a href="#orgb2a5a68">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org6b7e5e3">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org329bef9">5.5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a>
<ul>
<li><a href="#org429011f">Function description</a></li>
<li><a href="#org4da5bce">Optional Parameters</a></li>
<li><a href="#orgf36d5d7">Function description</a></li>
<li><a href="#orgdf77824">Optional Parameters</a></li>
<li><a href="#org3d3ef62">Use the Inverse Kinematic function</a></li>
<li><a href="#org3644165">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orge1d36d3">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org6ff5b31">5.6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul>
<li><a href="#org253b4cd">Function description</a></li>
<li><a href="#org13fbe78">Optional Parameters</a></li>
<li><a href="#org3f08708">Function description</a></li>
<li><a href="#orgc95505f">Optional Parameters</a></li>
<li><a href="#org25a390a">Compute the Inertia matrices of platforms</a></li>
<li><a href="#orga727639">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orga790eb3">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org60aa215">5.7. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a>
<ul>
<li><a href="#org69cb862">Function description</a></li>
<li><a href="#orgfecb96a">Optional Parameters</a></li>
<li><a href="#org9ef7d35">Function description</a></li>
<li><a href="#orgf9adc42">Optional Parameters</a></li>
<li><a href="#orgc056498">Compute the properties of the cylindrical struts</a></li>
<li><a href="#orgbb75c79">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgd6e7b8e">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org3ad0cd1">5.8. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a>
<ul>
<li><a href="#org644a545">Documentation</a></li>
<li><a href="#org1087174">Function description</a></li>
<li><a href="#org1d5df22">Optional Parameters</a></li>
<li><a href="#orgb41c182">Documentation</a></li>
<li><a href="#org7469459">Function description</a></li>
<li><a href="#orgd6e68a1">Optional Parameters</a></li>
<li><a href="#orgadb8327">Add Stiffness and Damping properties of each strut</a></li>
</ul>
</li>
<li><a href="#orgd8d403e">5.9. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a>
<ul>
<li><a href="#orgd9476c2">Documentation</a></li>
<li><a href="#org735ff89">Function description</a></li>
<li><a href="#org61b25a1">Optional Parameters</a></li>
<li><a href="#orgb291f1f">Documentation</a></li>
<li><a href="#org98773bb">Function description</a></li>
<li><a href="#orgbf25719">Optional Parameters</a></li>
<li><a href="#org9b435e8">Compute the total stiffness and damping</a></li>
<li><a href="#orgbf0b770">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgab1a3e9">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org65c17b2">5.10. <code>initializeFlexibleStrutDynamics</code>: Model each strut with a flexible element</a>
<ul>
<li><a href="#org2a93196">Function description</a></li>
<li><a href="#org779b6ee">Optional Parameters</a></li>
<li><a href="#org1558b41">Function description</a></li>
<li><a href="#org9943987">Optional Parameters</a></li>
<li><a href="#orge6e22da">Compute the axial offset</a></li>
<li><a href="#org45924a8">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgaa827a8">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgeb6173a">5.11. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a>
<ul>
<li><a href="#org82b5379">Function description</a></li>
<li><a href="#org3826fbc">Optional Parameters</a></li>
<li><a href="#org631a17c">Function description</a></li>
<li><a href="#org7757d0a">Optional Parameters</a></li>
<li><a href="#orgc6d4183">Add Actuator Type</a></li>
<li><a href="#orgc0e613c">Add Stiffness and Damping in Translation of each strut</a></li>
<li><a href="#org04698fc">Add Stiffness and Damping in Rotation of each strut</a></li>
@ -160,17 +161,17 @@
<ul>
<li><a href="#orgd667bbb">Geophone - Working Principle</a></li>
<li><a href="#orgca7729f">Accelerometer - Working Principle</a></li>
<li><a href="#orga7d6f90">Function description</a></li>
<li><a href="#org2094c7b">Optional Parameters</a></li>
<li><a href="#org51c5de0">Function description</a></li>
<li><a href="#org0d6b1bf">Optional Parameters</a></li>
<li><a href="#org463075d">Compute the properties of the sensor</a></li>
<li><a href="#org1c152b9">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org51c0261">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org5266e9d">5.13. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a>
<ul>
<li><a href="#org7e63888">Function description</a></li>
<li><a href="#org019aa17">Optional Parameters</a></li>
<li><a href="#orge80fdc3">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge68732a">Function description</a></li>
<li><a href="#orgd45485c">Optional Parameters</a></li>
<li><a href="#org772540a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc088b18">Figure Creation, Frames and Homogeneous transformations</a></li>
<li><a href="#orgc25a979">Fixed Base elements</a></li>
<li><a href="#org8417772">Mobile Platform elements</a></li>
@ -181,8 +182,8 @@
</li>
<li><a href="#org3db8668">5.14. <code>describeStewartPlatform</code>: Display some text describing the current defined Stewart Platform</a>
<ul>
<li><a href="#orgd5f2c51">Function description</a></li>
<li><a href="#org84462af">Optional Parameters</a></li>
<li><a href="#orgcf374f3">Function description</a></li>
<li><a href="#orgd50a826">Optional Parameters</a></li>
<li><a href="#org0ad0d00">5.14.1. Geometry</a></li>
<li><a href="#org3d00e31">5.14.2. Actuators</a></li>
<li><a href="#org0933fe4">5.14.3. Joints</a></li>
@ -673,11 +674,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p>
</div>
<div id="outline-container-org7181227" class="outline-4">
<h4 id="org7181227">Documentation</h4>
<div class="outline-text-4" id="text-org7181227">
<div id="outline-container-orgd9476c2" class="outline-4">
<h4 id="orgd9476c2">Documentation</h4>
<div class="outline-text-4" id="text-orgd9476c2">
<div id="orgea8a0ad" class="figure">
<div id="orgd1429c3" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Definition of the position of the frames</p>
@ -685,9 +686,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div>
</div>
<div id="outline-container-orgb2bf5c6" class="outline-4">
<h4 id="orgb2bf5c6">Function description</h4>
<div class="outline-text-4" id="text-orgb2bf5c6">
<div id="outline-container-orgd5f2c51" class="outline-4">
<h4 id="orgd5f2c51">Function description</h4>
<div class="outline-text-4" id="text-orgd5f2c51">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStewartPlatform()
% initializeStewartPlatform - Initialize the stewart structure
@ -746,11 +747,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p>
</div>
<div id="outline-container-orga7be221" class="outline-4">
<h4 id="orga7be221">Documentation</h4>
<div class="outline-text-4" id="text-orga7be221">
<div id="outline-container-orge1df9c8" class="outline-4">
<h4 id="orge1df9c8">Documentation</h4>
<div class="outline-text-4" id="text-orge1df9c8">
<div id="orgd1429c3" class="figure">
<div id="orgda43da5" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Definition of the position of the frames</p>
@ -758,9 +759,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org863d1d3" class="outline-4">
<h4 id="org863d1d3">Function description</h4>
<div class="outline-text-4" id="text-org863d1d3">
<div id="outline-container-org3913fad" class="outline-4">
<h4 id="org3913fad">Function description</h4>
<div class="outline-text-4" id="text-org3913fad">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeFramesPositions(stewart, args)
% initializeFramesPositions - Initialize the positions of frames {A}, {B}, {F} and {M}
@ -783,9 +784,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-orgdce9aac" class="outline-4">
<h4 id="orgdce9aac">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgdce9aac">
<div id="outline-container-org84462af" class="outline-4">
<h4 id="org84462af">Optional Parameters</h4>
<div class="outline-text-4" id="text-org84462af">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -813,9 +814,9 @@ FO_A = MO_B + FO_M; % Position of {A} with respect to {F} [m]
</div>
</div>
<div id="outline-container-org37e77bd" class="outline-4">
<h4 id="org37e77bd">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org37e77bd">
<div id="outline-container-org1c152b9" class="outline-4">
<h4 id="org1c152b9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org1c152b9">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M;
@ -839,9 +840,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p>
</div>
<div id="outline-container-orgccbec16" class="outline-4">
<h4 id="orgccbec16">Documentation</h4>
<div class="outline-text-4" id="text-orgccbec16">
<div id="outline-container-org2b8fb20" class="outline-4">
<h4 id="org2b8fb20">Documentation</h4>
<div class="outline-text-4" id="text-org2b8fb20">
<p>
Joints are positions on a circle centered with the Z axis of {F} and {M} and at a chosen distance from {F} and {M}.
The radius of the circles can be chosen as well as the angles where the joints are located (see Figure <a href="#org4c354b6">9</a>).
@ -856,9 +857,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org0dcd5d9" class="outline-4">
<h4 id="org0dcd5d9">Function description</h4>
<div class="outline-text-4" id="text-org0dcd5d9">
<div id="outline-container-orga75f162" class="outline-4">
<h4 id="orga75f162">Function description</h4>
<div class="outline-text-4" id="text-orga75f162">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateGeneralConfiguration(stewart, args)
% generateGeneralConfiguration - Generate a Very General Configuration
@ -883,9 +884,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-orge1ca954" class="outline-4">
<h4 id="orge1ca954">Optional Parameters</h4>
<div class="outline-text-4" id="text-orge1ca954">
<div id="outline-container-org8c0fa82" class="outline-4">
<h4 id="org8c0fa82">Optional Parameters</h4>
<div class="outline-text-4" id="text-org8c0fa82">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -920,9 +921,9 @@ end
</div>
</div>
<div id="outline-container-org0172101" class="outline-4">
<h4 id="org0172101">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org0172101">
<div id="outline-container-org7d2bd07" class="outline-4">
<h4 id="org7d2bd07">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org7d2bd07">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@ -944,9 +945,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p>
</div>
<div id="outline-container-org792126c" class="outline-4">
<h4 id="org792126c">Documentation</h4>
<div class="outline-text-4" id="text-org792126c">
<div id="outline-container-orga2f43b2" class="outline-4">
<h4 id="orga2f43b2">Documentation</h4>
<div class="outline-text-4" id="text-orga2f43b2">
<div id="org8ffb841" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@ -956,14 +957,14 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-orgf19ecda" class="outline-4">
<h4 id="orgf19ecda">Function description</h4>
<div class="outline-text-4" id="text-orgf19ecda">
<div id="outline-container-orge08cff0" class="outline-4">
<h4 id="orge08cff0">Function description</h4>
<div class="outline-text-4" id="text-orge08cff0">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJointsPose(stewart)
<pre class="src src-matlab">function [stewart] = computeJointsPose(stewart, args)
% computeJointsPose -
%
% Syntax: [stewart] = computeJointsPose(stewart)
% Syntax: [stewart] = computeJointsPose(stewart, args)
%
% Inputs:
% - stewart - A structure with the following fields
@ -972,6 +973,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
% - platform_F.FO_A [3x1] - Position of {A} with respect to {F}
% - platform_M.MO_B [3x1] - Position of {B} with respect to {M}
% - geometry.FO_M [3x1] - Position of {M} with respect to {F}
% - args - Can have the following fields:
% - AP [3x1] - The wanted position of {B} with respect to {A}
% - ARB [3x3] - The rotation matrix that gives the wanted orientation of {B} with respect to {A}
%
% Outputs:
% - stewart - A structure with the following added fields
@ -991,9 +995,23 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org5a1dea6" class="outline-4">
<h4 id="org5a1dea6">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5a1dea6">
<div id="outline-container-org80cc25e" class="outline-4">
<h4 id="org80cc25e">Optional Parameters</h4>
<div class="outline-text-4" id="text-org80cc25e">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
args.AP (3,1) double {mustBeNumeric} = zeros(3,1)
args.ARB (3,3) double {mustBeNumeric} = eye(3)
end
</pre>
</div>
</div>
</div>
<div id="outline-container-orge80fdc3" class="outline-4">
<h4 id="orge80fdc3">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orge80fdc3">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, 'Fa'), 'stewart.platform_F should have attribute Fa')
Fa = stewart.platform_F.Fa;
@ -1020,11 +1038,26 @@ FO_M = stewart.geometry.FO_M;
<div class="org-src-container">
<pre class="src src-matlab">Aa = Fa - repmat(FO_A, [1, 6]);
Bb = Mb - repmat(MO_B, [1, 6]);
</pre>
</div>
Ab = Bb - repmat(-MO_B-FO_M+FO_A, [1, 6]);
<p>
Original:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Ab = Bb - repmat(-MO_B-FO_M+FO_A, [1, 6]);
Ba = Aa - repmat( MO_B+FO_M-FO_A, [1, 6]);
</pre>
</div>
<p>
Translation &amp; Rotation: (Rotation and then translation)
</p>
<div class="org-src-container">
<pre class="src src-matlab">Ab = args.ARB *Bb - repmat(-args.AP, [1, 6]);
Ba = args.ARB'*Aa - repmat( args.AP, [1, 6]);
</pre>
</div>
</div>
</div>
@ -1064,9 +1097,9 @@ end
</div>
</div>
<div id="outline-container-orgb2a5a68" class="outline-4">
<h4 id="orgb2a5a68">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgb2a5a68">
<div id="outline-container-org6b7e5e3" class="outline-4">
<h4 id="org6b7e5e3">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org6b7e5e3">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab;
@ -1099,9 +1132,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p>
</div>
<div id="outline-container-org429011f" class="outline-4">
<h4 id="org429011f">Function description</h4>
<div class="outline-text-4" id="text-org429011f">
<div id="outline-container-orgf36d5d7" class="outline-4">
<h4 id="orgf36d5d7">Function description</h4>
<div class="outline-text-4" id="text-orgf36d5d7">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStewartPose(stewart, args)
% initializeStewartPose - Determine the initial stroke in each leg to have the wanted pose
@ -1125,9 +1158,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org4da5bce" class="outline-4">
<h4 id="org4da5bce">Optional Parameters</h4>
<div class="outline-text-4" id="text-org4da5bce">
<div id="outline-container-orgdf77824" class="outline-4">
<h4 id="orgdf77824">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgdf77824">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1149,9 +1182,9 @@ end
</div>
</div>
<div id="outline-container-org3644165" class="outline-4">
<h4 id="org3644165">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org3644165">
<div id="outline-container-orge1d36d3" class="outline-4">
<h4 id="orge1d36d3">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orge1d36d3">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre>
@ -1172,9 +1205,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p>
</div>
<div id="outline-container-org253b4cd" class="outline-4">
<h4 id="org253b4cd">Function description</h4>
<div class="outline-text-4" id="text-org253b4cd">
<div id="outline-container-org3f08708" class="outline-4">
<h4 id="org3f08708">Function description</h4>
<div class="outline-text-4" id="text-org3f08708">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeCylindricalPlatforms(stewart, args)
% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms
@ -1208,9 +1241,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-org13fbe78" class="outline-4">
<h4 id="org13fbe78">Optional Parameters</h4>
<div class="outline-text-4" id="text-org13fbe78">
<div id="outline-container-orgc95505f" class="outline-4">
<h4 id="orgc95505f">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc95505f">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1245,9 +1278,9 @@ end
</div>
</div>
<div id="outline-container-orga727639" class="outline-4">
<h4 id="orga727639">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orga727639">
<div id="outline-container-orga790eb3" class="outline-4">
<h4 id="orga790eb3">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orga790eb3">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1;
@ -1283,9 +1316,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p>
</div>
<div id="outline-container-org69cb862" class="outline-4">
<h4 id="org69cb862">Function description</h4>
<div class="outline-text-4" id="text-org69cb862">
<div id="outline-container-org9ef7d35" class="outline-4">
<h4 id="org9ef7d35">Function description</h4>
<div class="outline-text-4" id="text-org9ef7d35">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeCylindricalStruts(stewart, args)
% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts
@ -1318,9 +1351,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-orgfecb96a" class="outline-4">
<h4 id="orgfecb96a">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgfecb96a">
<div id="outline-container-orgf9adc42" class="outline-4">
<h4 id="orgf9adc42">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf9adc42">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1370,9 +1403,9 @@ end
</div>
</div>
<div id="outline-container-orgbb75c79" class="outline-4">
<h4 id="orgbb75c79">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgbb75c79">
<div id="outline-container-orgd6e7b8e" class="outline-4">
<h4 id="orgd6e7b8e">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgd6e7b8e">
<div class="org-src-container">
<pre class="src src-matlab">switch args.type_M
case 'cylindrical'
@ -1418,9 +1451,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p>
</div>
<div id="outline-container-org644a545" class="outline-4">
<h4 id="org644a545">Documentation</h4>
<div class="outline-text-4" id="text-org644a545">
<div id="outline-container-orgb41c182" class="outline-4">
<h4 id="orgb41c182">Documentation</h4>
<div class="outline-text-4" id="text-orgb41c182">
<div id="orgbbfb204" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@ -1449,9 +1482,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org62
</div>
</div>
<div id="outline-container-org1087174" class="outline-4">
<h4 id="org1087174">Function description</h4>
<div class="outline-text-4" id="text-org1087174">
<div id="outline-container-org7469459" class="outline-4">
<h4 id="org7469459">Function description</h4>
<div class="outline-text-4" id="text-org7469459">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStrutDynamics(stewart, args)
% initializeStrutDynamics - Add Stiffness and Damping properties of each strut
@ -1473,9 +1506,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org62
</div>
</div>
<div id="outline-container-org1d5df22" class="outline-4">
<h4 id="org1d5df22">Optional Parameters</h4>
<div class="outline-text-4" id="text-org1d5df22">
<div id="outline-container-orgd6e68a1" class="outline-4">
<h4 id="orgd6e68a1">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgd6e68a1">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1513,9 +1546,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p>
</div>
<div id="outline-container-orgd9476c2" class="outline-4">
<h4 id="orgd9476c2">Documentation</h4>
<div class="outline-text-4" id="text-orgd9476c2">
<div id="outline-container-orgb291f1f" class="outline-4">
<h4 id="orgb291f1f">Documentation</h4>
<div class="outline-text-4" id="text-orgb291f1f">
<p>
An amplified piezoelectric actuator is shown in Figure <a href="#org9e7e9ad">13</a>.
</p>
@ -1548,9 +1581,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgcf
</div>
</div>
<div id="outline-container-org735ff89" class="outline-4">
<h4 id="org735ff89">Function description</h4>
<div class="outline-text-4" id="text-org735ff89">
<div id="outline-container-org98773bb" class="outline-4">
<h4 id="org98773bb">Function description</h4>
<div class="outline-text-4" id="text-org98773bb">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut
@ -1578,9 +1611,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgcf
</div>
</div>
<div id="outline-container-org61b25a1" class="outline-4">
<h4 id="org61b25a1">Optional Parameters</h4>
<div class="outline-text-4" id="text-org61b25a1">
<div id="outline-container-orgbf25719" class="outline-4">
<h4 id="orgbf25719">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgbf25719">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1605,9 +1638,9 @@ C = args.Ca + args.Cr;
</div>
</div>
<div id="outline-container-orgbf0b770" class="outline-4">
<h4 id="orgbf0b770">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgbf0b770">
<div id="outline-container-orgab1a3e9" class="outline-4">
<h4 id="orgab1a3e9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgab1a3e9">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2;
@ -1637,9 +1670,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutDynami
</p>
</div>
<div id="outline-container-org2a93196" class="outline-4">
<h4 id="org2a93196">Function description</h4>
<div class="outline-text-4" id="text-org2a93196">
<div id="outline-container-org1558b41" class="outline-4">
<h4 id="org1558b41">Function description</h4>
<div class="outline-text-4" id="text-org1558b41">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeFlexibleStrutDynamics(stewart, args)
% initializeFlexibleStrutDynamics - Add Stiffness and Damping properties of each strut
@ -1660,9 +1693,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutDynami
</div>
</div>
<div id="outline-container-org779b6ee" class="outline-4">
<h4 id="org779b6ee">Optional Parameters</h4>
<div class="outline-text-4" id="text-org779b6ee">
<div id="outline-container-org9943987" class="outline-4">
<h4 id="org9943987">Optional Parameters</h4>
<div class="outline-text-4" id="text-org9943987">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1688,9 +1721,9 @@ end
</div>
</div>
<div id="outline-container-org45924a8" class="outline-4">
<h4 id="org45924a8">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org45924a8">
<div id="outline-container-orgaa827a8" class="outline-4">
<h4 id="orgaa827a8">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgaa827a8">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 3;
@ -1721,9 +1754,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p>
</div>
<div id="outline-container-org82b5379" class="outline-4">
<h4 id="org82b5379">Function description</h4>
<div class="outline-text-4" id="text-org82b5379">
<div id="outline-container-org631a17c" class="outline-4">
<h4 id="org631a17c">Function description</h4>
<div class="outline-text-4" id="text-org631a17c">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeJointDynamics(stewart, args)
% initializeJointDynamics - Add Stiffness and Damping properties for the spherical joints
@ -1758,9 +1791,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div>
</div>
<div id="outline-container-org3826fbc" class="outline-4">
<h4 id="org3826fbc">Optional Parameters</h4>
<div class="outline-text-4" id="text-org3826fbc">
<div id="outline-container-org7757d0a" class="outline-4">
<h4 id="org7757d0a">Optional Parameters</h4>
<div class="outline-text-4" id="text-org7757d0a">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1994,9 +2027,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-orga7d6f90" class="outline-4">
<h4 id="orga7d6f90">Function description</h4>
<div class="outline-text-4" id="text-orga7d6f90">
<div id="outline-container-org51c5de0" class="outline-4">
<h4 id="org51c5de0">Function description</h4>
<div class="outline-text-4" id="text-org51c5de0">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeInertialSensor(stewart, args)
% initializeInertialSensor - Initialize the inertial sensor in each strut
@ -2022,9 +2055,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org2094c7b" class="outline-4">
<h4 id="org2094c7b">Optional Parameters</h4>
<div class="outline-text-4" id="text-org2094c7b">
<div id="outline-container-org0d6b1bf" class="outline-4">
<h4 id="org0d6b1bf">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0d6b1bf">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -2065,9 +2098,9 @@ end
</div>
</div>
<div id="outline-container-org1c152b9" class="outline-4">
<h4 id="org1c152b9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org1c152b9">
<div id="outline-container-org51c0261" class="outline-4">
<h4 id="org51c0261">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org51c0261">
<div class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre>
@ -2088,9 +2121,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p>
</div>
<div id="outline-container-org7e63888" class="outline-4">
<h4 id="org7e63888">Function description</h4>
<div class="outline-text-4" id="text-org7e63888">
<div id="outline-container-orge68732a" class="outline-4">
<h4 id="orge68732a">Function description</h4>
<div class="outline-text-4" id="text-orge68732a">
<div class="org-src-container">
<pre class="src src-matlab">function [] = displayArchitecture(stewart, args)
% displayArchitecture - 3D plot of the Stewart platform architecture
@ -2119,9 +2152,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-org019aa17" class="outline-4">
<h4 id="org019aa17">Optional Parameters</h4>
<div class="outline-text-4" id="text-org019aa17">
<div id="outline-container-orgd45485c" class="outline-4">
<h4 id="orgd45485c">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgd45485c">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -2142,9 +2175,9 @@ end
</div>
</div>
<div id="outline-container-orge80fdc3" class="outline-4">
<h4 id="orge80fdc3">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orge80fdc3">
<div id="outline-container-org772540a" class="outline-4">
<h4 id="org772540a">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org772540a">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, 'FO_A'), 'stewart.platform_F should have attribute FO_A')
FO_A = stewart.platform_F.FO_A;
@ -2482,9 +2515,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</p>
</div>
<div id="outline-container-orgd5f2c51" class="outline-4">
<h4 id="orgd5f2c51">Function description</h4>
<div class="outline-text-4" id="text-orgd5f2c51">
<div id="outline-container-orgcf374f3" class="outline-4">
<h4 id="orgcf374f3">Function description</h4>
<div class="outline-text-4" id="text-orgcf374f3">
<div class="org-src-container">
<pre class="src src-matlab">function [] = describeStewartPlatform(stewart)
% describeStewartPlatform - Display some text describing the current defined Stewart Platform
@ -2500,9 +2533,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</div>
</div>
<div id="outline-container-org84462af" class="outline-4">
<h4 id="org84462af">Optional Parameters</h4>
<div class="outline-text-4" id="text-org84462af">
<div id="outline-container-orgd50a826" class="outline-4">
<h4 id="orgd50a826">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgd50a826">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -2651,7 +2684,7 @@ end
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-08-05 mer. 13:27</p>
<p class="date">Created: 2020-08-05 mer. 16:23</p>
</div>
</body>
</html>