Implemented amplified actuators

This commit is contained in:
2020-05-20 16:41:34 +02:00
parent 945741a795
commit 1466105c77
24 changed files with 1370 additions and 727 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-05-20 mer. 15:49 -->
<!-- 2020-05-20 mer. 16:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Simscape Model</title>
<meta name="generator" content="Org mode" />
@@ -36,85 +36,85 @@
<ul>
<li><a href="#orgcaca5e0">1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul>
<li><a href="#org5817617">Documentation</a></li>
<li><a href="#org7d81110">Function description</a></li>
<li><a href="#org8dc2620">Documentation</a></li>
<li><a href="#orgb2b186c">Function description</a></li>
<li><a href="#org3622825">Initialize the Stewart structure</a></li>
</ul>
</li>
<li><a href="#orgac25f89">2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a>
<ul>
<li><a href="#org60fadfe">Documentation</a></li>
<li><a href="#org3f0f259">Function description</a></li>
<li><a href="#orgada2d6f">Optional Parameters</a></li>
<li><a href="#org736bb40">Documentation</a></li>
<li><a href="#orgb82d77f">Function description</a></li>
<li><a href="#org8e4bfab">Optional Parameters</a></li>
<li><a href="#org7d50d54">Compute the position of each frame</a></li>
<li><a href="#orgd7c92be">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgecc27b3">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgccb31c6">3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a>
<ul>
<li><a href="#org722f89f">Documentation</a></li>
<li><a href="#org37642a9">Function description</a></li>
<li><a href="#org8175ecb">Optional Parameters</a></li>
<li><a href="#orgc9244b9">Compute the pose</a></li>
<li><a href="#org010e928">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgd270a86">Documentation</a></li>
<li><a href="#org22aadcf">Function description</a></li>
<li><a href="#orga6492a4">Optional Parameters</a></li>
<li><a href="#org3231a85">Compute the pose</a></li>
<li><a href="#org13d89d2">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9944c04">4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul>
<li><a href="#org1084538">Documentation</a></li>
<li><a href="#org1da2a38">Function description</a></li>
<li><a href="#org02f1320">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgf8b573b">Documentation</a></li>
<li><a href="#org85d30c9">Function description</a></li>
<li><a href="#org87cdb4a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge87b302">Compute the position of the Joints</a></li>
<li><a href="#org3a7e3c5">Compute the strut length and orientation</a></li>
<li><a href="#org9e1258f">Compute the orientation of the Joints</a></li>
<li><a href="#orgab9893e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org47a4205">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org1315282">5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a>
<ul>
<li><a href="#org3df7fa5">Function description</a></li>
<li><a href="#org7ad7e23">Optional Parameters</a></li>
<li><a href="#org9a7c718">Function description</a></li>
<li><a href="#orga7f6cb4">Optional Parameters</a></li>
<li><a href="#orgbb9abb5">Use the Inverse Kinematic function</a></li>
<li><a href="#org8f6d297">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orga35dd52">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org4674203">6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul>
<li><a href="#org600d8b6">Function description</a></li>
<li><a href="#org7126edc">Optional Parameters</a></li>
<li><a href="#orge53472d">Function description</a></li>
<li><a href="#orgc31cfe7">Optional Parameters</a></li>
<li><a href="#orgf654de0">Compute the Inertia matrices of platforms</a></li>
<li><a href="#org1282acb">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orga779e2f">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgb0a1d7b">7. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a>
<ul>
<li><a href="#org415806e">Function description</a></li>
<li><a href="#org46ba207">Optional Parameters</a></li>
<li><a href="#orgf6fcb94">Function description</a></li>
<li><a href="#org8990e71">Optional Parameters</a></li>
<li><a href="#orgd943059">Compute the properties of the cylindrical struts</a></li>
<li><a href="#orgec9a313">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org53395cc">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgae8d0dc">8. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a>
<ul>
<li><a href="#org1e0bcd1">Documentation</a></li>
<li><a href="#org70074aa">Function description</a></li>
<li><a href="#orgc77ced4">Optional Parameters</a></li>
<li><a href="#org15ad3b5">Documentation</a></li>
<li><a href="#org5318aec">Function description</a></li>
<li><a href="#org153d169">Optional Parameters</a></li>
<li><a href="#org3c2e550">Add Stiffness and Damping properties of each strut</a></li>
</ul>
</li>
<li><a href="#org682a09c">9. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a>
<ul>
<li><a href="#orgb4491ea">Documentation</a></li>
<li><a href="#org32024c4">Function description</a></li>
<li><a href="#orgb9c096a">Optional Parameters</a></li>
<li><a href="#orgc4169f8">Documentation</a></li>
<li><a href="#org44de918">Function description</a></li>
<li><a href="#org3966929">Optional Parameters</a></li>
<li><a href="#org2e42182">Compute the total stiffness and damping</a></li>
<li><a href="#orgd8d2d38">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgfed23b2">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgbc5232e">10. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a>
<ul>
<li><a href="#org9987af0">Function description</a></li>
<li><a href="#orgfa09700">Optional Parameters</a></li>
<li><a href="#orgcc4b26d">Function description</a></li>
<li><a href="#org047804e">Optional Parameters</a></li>
<li><a href="#orgd5b8278">Add Actuator Type</a></li>
<li><a href="#org51cf135">Add Stiffness and Damping in Translation of each strut</a></li>
<li><a href="#org1e8eceb">Add Stiffness and Damping in Rotation of each strut</a></li>
@@ -124,17 +124,17 @@
<ul>
<li><a href="#orgcfc37af">Geophone - Working Principle</a></li>
<li><a href="#org986e38f">Accelerometer - Working Principle</a></li>
<li><a href="#orgf891c99">Function description</a></li>
<li><a href="#org3120ee8">Optional Parameters</a></li>
<li><a href="#orgcb6bebb">Function description</a></li>
<li><a href="#org5ec99a5">Optional Parameters</a></li>
<li><a href="#org1c3d7c8">Compute the properties of the sensor</a></li>
<li><a href="#org81ff88b">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org5e33aa2">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgd6baa46">12. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a>
<ul>
<li><a href="#org84f3d13">Function description</a></li>
<li><a href="#org74d4ce4">Optional Parameters</a></li>
<li><a href="#org3b35a3d">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc70c9a5">Function description</a></li>
<li><a href="#org63006a7">Optional Parameters</a></li>
<li><a href="#org86735ca">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgb11fd92">Figure Creation, Frames and Homogeneous transformations</a></li>
<li><a href="#org7cd8fee">Fixed Base elements</a></li>
<li><a href="#orgacb8eb7">Mobile Platform elements</a></li>
@@ -145,8 +145,8 @@
</li>
<li><a href="#orgecfd55f">13. <code>describeStewartPlatform</code>: Display some text describing the current defined Stewart Platform</a>
<ul>
<li><a href="#org6e4f9f6">Function description</a></li>
<li><a href="#org1dcd763">Optional Parameters</a></li>
<li><a href="#orgb99230a">Function description</a></li>
<li><a href="#orged88325">Optional Parameters</a></li>
<li><a href="#org1d49caa">13.1. Geometry</a></li>
<li><a href="#orgcb66771">13.2. Actuators</a></li>
<li><a href="#org4630b77">13.3. Joints</a></li>
@@ -155,39 +155,39 @@
</li>
<li><a href="#org65fc289">14. <code>generateCubicConfiguration</code>: Generate a Cubic Configuration</a>
<ul>
<li><a href="#org56bb069">Function description</a></li>
<li><a href="#org8dc2620">Documentation</a></li>
<li><a href="#org9269fce">Optional Parameters</a></li>
<li><a href="#org90eac03">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc164e8d">Function description</a></li>
<li><a href="#org0d467b7">Documentation</a></li>
<li><a href="#orgda76f80">Optional Parameters</a></li>
<li><a href="#org4a5a3cf">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge94a885">Position of the Cube</a></li>
<li><a href="#org3231a85">Compute the pose</a></li>
<li><a href="#orgb046d7e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orge8af7a8">Compute the pose</a></li>
<li><a href="#org32b44aa">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9e8cbfa">15. <code>computeJacobian</code>: Compute the Jacobian Matrix</a>
<ul>
<li><a href="#org9b984be">Function description</a></li>
<li><a href="#orga0158ff">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org2c08fbd">Function description</a></li>
<li><a href="#org8071a1b">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org9bcd9b9">Compute Jacobian Matrix</a></li>
<li><a href="#orgf08eda6">Compute Stiffness Matrix</a></li>
<li><a href="#orgd164132">Compute Compliance Matrix</a></li>
<li><a href="#orgecc27b3">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgbf70f7a">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org03168fc">16. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul>
<li><a href="#orgbdc5fb1">Theory</a></li>
<li><a href="#org988305f">Function description</a></li>
<li><a href="#org954d921">Optional Parameters</a></li>
<li><a href="#org2e35685">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org18c9841">Function description</a></li>
<li><a href="#org848fb1f">Optional Parameters</a></li>
<li><a href="#org8be974b">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org8b70a76">Compute</a></li>
</ul>
</li>
<li><a href="#org278d55b">17. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul>
<li><a href="#orgb2b186c">Function description</a></li>
<li><a href="#org8e4bfab">Optional Parameters</a></li>
<li><a href="#org87cdb4a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org07e11bf">Function description</a></li>
<li><a href="#org918179d">Optional Parameters</a></li>
<li><a href="#orgf157791">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgf17cab9">Computation</a></li>
</ul>
</li>
@@ -273,11 +273,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p>
</div>
<div id="outline-container-org5817617" class="outline-3">
<h3 id="org5817617">Documentation</h3>
<div class="outline-text-3" id="text-org5817617">
<div id="outline-container-org8dc2620" class="outline-3">
<h3 id="org8dc2620">Documentation</h3>
<div class="outline-text-3" id="text-org8dc2620">
<div id="orgb66cd49" class="figure">
<div id="org321fc67" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Definition of the position of the frames</p>
@@ -285,9 +285,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div>
</div>
<div id="outline-container-org7d81110" class="outline-3">
<h3 id="org7d81110">Function description</h3>
<div class="outline-text-3" id="text-org7d81110">
<div id="outline-container-orgb2b186c" class="outline-3">
<h3 id="orgb2b186c">Function description</h3>
<div class="outline-text-3" id="text-orgb2b186c">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStewartPlatform()
% initializeStewartPlatform - Initialize the stewart structure
@@ -346,11 +346,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p>
</div>
<div id="outline-container-org60fadfe" class="outline-3">
<h3 id="org60fadfe">Documentation</h3>
<div class="outline-text-3" id="text-org60fadfe">
<div id="outline-container-org736bb40" class="outline-3">
<h3 id="org736bb40">Documentation</h3>
<div class="outline-text-3" id="text-org736bb40">
<div id="org321fc67" class="figure">
<div id="org805d4f8" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Definition of the position of the frames</p>
@@ -358,9 +358,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org3f0f259" class="outline-3">
<h3 id="org3f0f259">Function description</h3>
<div class="outline-text-3" id="text-org3f0f259">
<div id="outline-container-orgb82d77f" class="outline-3">
<h3 id="orgb82d77f">Function description</h3>
<div class="outline-text-3" id="text-orgb82d77f">
<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}
@@ -383,9 +383,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-orgada2d6f" class="outline-3">
<h3 id="orgada2d6f">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgada2d6f">
<div id="outline-container-org8e4bfab" class="outline-3">
<h3 id="org8e4bfab">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8e4bfab">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -413,9 +413,9 @@ FO_A = MO_B + FO_M; % Position of {A} with respect to {F} [m]
</div>
</div>
<div id="outline-container-orgd7c92be" class="outline-3">
<h3 id="orgd7c92be">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgd7c92be">
<div id="outline-container-orgecc27b3" class="outline-3">
<h3 id="orgecc27b3">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgecc27b3">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M;
@@ -439,9 +439,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p>
</div>
<div id="outline-container-org722f89f" class="outline-3">
<h3 id="org722f89f">Documentation</h3>
<div class="outline-text-3" id="text-org722f89f">
<div id="outline-container-orgd270a86" class="outline-3">
<h3 id="orgd270a86">Documentation</h3>
<div class="outline-text-3" id="text-orgd270a86">
<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="#org449c886">3</a>).
@@ -456,9 +456,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org37642a9" class="outline-3">
<h3 id="org37642a9">Function description</h3>
<div class="outline-text-3" id="text-org37642a9">
<div id="outline-container-org22aadcf" class="outline-3">
<h3 id="org22aadcf">Function description</h3>
<div class="outline-text-3" id="text-org22aadcf">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateGeneralConfiguration(stewart, args)
% generateGeneralConfiguration - Generate a Very General Configuration
@@ -483,9 +483,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org8175ecb" class="outline-3">
<h3 id="org8175ecb">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8175ecb">
<div id="outline-container-orga6492a4" class="outline-3">
<h3 id="orga6492a4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orga6492a4">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -501,9 +501,9 @@ end
</div>
</div>
<div id="outline-container-orgc9244b9" class="outline-3">
<h3 id="orgc9244b9">Compute the pose</h3>
<div class="outline-text-3" id="text-orgc9244b9">
<div id="outline-container-org3231a85" class="outline-3">
<h3 id="org3231a85">Compute the pose</h3>
<div class="outline-text-3" id="text-org3231a85">
<div class="org-src-container">
<pre class="src src-matlab">Fa = zeros(3,6);
Mb = zeros(3,6);
@@ -520,9 +520,9 @@ end
</div>
</div>
<div id="outline-container-org010e928" class="outline-3">
<h3 id="org010e928">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org010e928">
<div id="outline-container-org13d89d2" class="outline-3">
<h3 id="org13d89d2">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org13d89d2">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@@ -544,9 +544,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p>
</div>
<div id="outline-container-org1084538" class="outline-3">
<h3 id="org1084538">Documentation</h3>
<div class="outline-text-3" id="text-org1084538">
<div id="outline-container-orgf8b573b" class="outline-3">
<h3 id="orgf8b573b">Documentation</h3>
<div class="outline-text-3" id="text-orgf8b573b">
<div id="org20f7106" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@@ -556,9 +556,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org1da2a38" class="outline-3">
<h3 id="org1da2a38">Function description</h3>
<div class="outline-text-3" id="text-org1da2a38">
<div id="outline-container-org85d30c9" class="outline-3">
<h3 id="org85d30c9">Function description</h3>
<div class="outline-text-3" id="text-org85d30c9">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJointsPose(stewart)
% computeJointsPose -
@@ -591,9 +591,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org02f1320" class="outline-3">
<h3 id="org02f1320">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org02f1320">
<div id="outline-container-org87cdb4a" class="outline-3">
<h3 id="org87cdb4a">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org87cdb4a">
<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;
@@ -664,9 +664,9 @@ end
</div>
</div>
<div id="outline-container-orgab9893e" class="outline-3">
<h3 id="orgab9893e">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgab9893e">
<div id="outline-container-org47a4205" class="outline-3">
<h3 id="org47a4205">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org47a4205">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab;
@@ -699,9 +699,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p>
</div>
<div id="outline-container-org3df7fa5" class="outline-3">
<h3 id="org3df7fa5">Function description</h3>
<div class="outline-text-3" id="text-org3df7fa5">
<div id="outline-container-org9a7c718" class="outline-3">
<h3 id="org9a7c718">Function description</h3>
<div class="outline-text-3" id="text-org9a7c718">
<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
@@ -725,9 +725,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org7ad7e23" class="outline-3">
<h3 id="org7ad7e23">Optional Parameters</h3>
<div class="outline-text-3" id="text-org7ad7e23">
<div id="outline-container-orga7f6cb4" class="outline-3">
<h3 id="orga7f6cb4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orga7f6cb4">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -749,9 +749,9 @@ end
</div>
</div>
<div id="outline-container-org8f6d297" class="outline-3">
<h3 id="org8f6d297">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org8f6d297">
<div id="outline-container-orga35dd52" class="outline-3">
<h3 id="orga35dd52">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orga35dd52">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre>
@@ -772,9 +772,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p>
</div>
<div id="outline-container-org600d8b6" class="outline-3">
<h3 id="org600d8b6">Function description</h3>
<div class="outline-text-3" id="text-org600d8b6">
<div id="outline-container-orge53472d" class="outline-3">
<h3 id="orge53472d">Function description</h3>
<div class="outline-text-3" id="text-orge53472d">
<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
@@ -808,9 +808,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-org7126edc" class="outline-3">
<h3 id="org7126edc">Optional Parameters</h3>
<div class="outline-text-3" id="text-org7126edc">
<div id="outline-container-orgc31cfe7" class="outline-3">
<h3 id="orgc31cfe7">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgc31cfe7">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -845,9 +845,9 @@ end
</div>
</div>
<div id="outline-container-org1282acb" class="outline-3">
<h3 id="org1282acb">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org1282acb">
<div id="outline-container-orga779e2f" class="outline-3">
<h3 id="orga779e2f">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orga779e2f">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1;
@@ -883,9 +883,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p>
</div>
<div id="outline-container-org415806e" class="outline-3">
<h3 id="org415806e">Function description</h3>
<div class="outline-text-3" id="text-org415806e">
<div id="outline-container-orgf6fcb94" class="outline-3">
<h3 id="orgf6fcb94">Function description</h3>
<div class="outline-text-3" id="text-orgf6fcb94">
<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
@@ -918,9 +918,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-org46ba207" class="outline-3">
<h3 id="org46ba207">Optional Parameters</h3>
<div class="outline-text-3" id="text-org46ba207">
<div id="outline-container-org8990e71" class="outline-3">
<h3 id="org8990e71">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8990e71">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -968,9 +968,9 @@ end
</div>
</div>
<div id="outline-container-orgec9a313" class="outline-3">
<h3 id="orgec9a313">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgec9a313">
<div id="outline-container-org53395cc" class="outline-3">
<h3 id="org53395cc">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org53395cc">
<div class="org-src-container">
<pre class="src src-matlab">stewart.struts_M.type = 1;
@@ -1006,9 +1006,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p>
</div>
<div id="outline-container-org1e0bcd1" class="outline-3">
<h3 id="org1e0bcd1">Documentation</h3>
<div class="outline-text-3" id="text-org1e0bcd1">
<div id="outline-container-org15ad3b5" class="outline-3">
<h3 id="org15ad3b5">Documentation</h3>
<div class="outline-text-3" id="text-org15ad3b5">
<div id="org99aef3e" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@@ -1037,9 +1037,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgd4
</div>
</div>
<div id="outline-container-org70074aa" class="outline-3">
<h3 id="org70074aa">Function description</h3>
<div class="outline-text-3" id="text-org70074aa">
<div id="outline-container-org5318aec" class="outline-3">
<h3 id="org5318aec">Function description</h3>
<div class="outline-text-3" id="text-org5318aec">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStrutDynamics(stewart, args)
% initializeStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1061,14 +1061,23 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgd4
</div>
</div>
<div id="outline-container-orgc77ced4" class="outline-3">
<h3 id="orgc77ced4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgc77ced4">
<div id="outline-container-org153d169" class="outline-3">
<h3 id="org153d169">Optional Parameters</h3>
<div class="outline-text-3" id="text-org153d169">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
args.type char {mustBeMember(args.type,{'classical', 'amplified'})} = 'classical'
args.K (6,1) double {mustBeNumeric, mustBeNonnegative} = 20e6*ones(6,1)
args.C (6,1) double {mustBeNumeric, mustBeNonnegative} = 2e1*ones(6,1)
args.k1 (6,1) double {mustBeNumeric} = 1e6
args.ke (6,1) double {mustBeNumeric} = 5e6
args.ka (6,1) double {mustBeNumeric} = 60e6
args.c1 (6,1) double {mustBeNumeric} = 10
args.ce (6,1) double {mustBeNumeric} = 10
args.ca (6,1) double {mustBeNumeric} = 10
args.me (6,1) double {mustBeNumeric} = 0.05
args.ma (6,1) double {mustBeNumeric} = 0.05
end
</pre>
</div>
@@ -1079,10 +1088,26 @@ end
<h3 id="org3c2e550">Add Stiffness and Damping properties of each strut</h3>
<div class="outline-text-3" id="text-org3c2e550">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 1;
<pre class="src src-matlab">if strcmp(args.type, 'classical')
stewart.actuators.type = 1;
elseif strcmp(args.type, 'amplified')
stewart.actuators.type = 2;
end
stewart.actuators.K = args.K;
stewart.actuators.C = args.C;
stewart.actuators.k1 = args.k1;
stewart.actuators.c1 = args.c1;
stewart.actuators.ka = args.ka;
stewart.actuators.ca = args.ca;
stewart.actuators.ke = args.ke;
stewart.actuators.ce = args.ce;
stewart.actuators.ma = args.ma;
stewart.actuators.me = args.me;
</pre>
</div>
</div>
@@ -1101,9 +1126,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p>
</div>
<div id="outline-container-orgb4491ea" class="outline-3">
<h3 id="orgb4491ea">Documentation</h3>
<div class="outline-text-3" id="text-orgb4491ea">
<div id="outline-container-orgc4169f8" class="outline-3">
<h3 id="orgc4169f8">Documentation</h3>
<div class="outline-text-3" id="text-orgc4169f8">
<p>
An amplified piezoelectric actuator is shown in Figure <a href="#orgab58ac0">7</a>.
</p>
@@ -1136,9 +1161,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org7a
</div>
</div>
<div id="outline-container-org32024c4" class="outline-3">
<h3 id="org32024c4">Function description</h3>
<div class="outline-text-3" id="text-org32024c4">
<div id="outline-container-org44de918" class="outline-3">
<h3 id="org44de918">Function description</h3>
<div class="outline-text-3" id="text-org44de918">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1166,9 +1191,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org7a
</div>
</div>
<div id="outline-container-orgb9c096a" class="outline-3">
<h3 id="orgb9c096a">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgb9c096a">
<div id="outline-container-org3966929" class="outline-3">
<h3 id="org3966929">Optional Parameters</h3>
<div class="outline-text-3" id="text-org3966929">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1193,9 +1218,9 @@ C = args.Ca + args.Cr;
</div>
</div>
<div id="outline-container-orgd8d2d38" class="outline-3">
<h3 id="orgd8d2d38">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgd8d2d38">
<div id="outline-container-orgfed23b2" class="outline-3">
<h3 id="orgfed23b2">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgfed23b2">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2;
@@ -1225,9 +1250,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p>
</div>
<div id="outline-container-org9987af0" class="outline-3">
<h3 id="org9987af0">Function description</h3>
<div class="outline-text-3" id="text-org9987af0">
<div id="outline-container-orgcc4b26d" class="outline-3">
<h3 id="orgcc4b26d">Function description</h3>
<div class="outline-text-3" id="text-orgcc4b26d">
<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
@@ -1266,9 +1291,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div>
</div>
<div id="outline-container-orgfa09700" class="outline-3">
<h3 id="orgfa09700">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgfa09700">
<div id="outline-container-org047804e" class="outline-3">
<h3 id="org047804e">Optional Parameters</h3>
<div class="outline-text-3" id="text-org047804e">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1476,9 +1501,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-orgf891c99" class="outline-3">
<h3 id="orgf891c99">Function description</h3>
<div class="outline-text-3" id="text-orgf891c99">
<div id="outline-container-orgcb6bebb" class="outline-3">
<h3 id="orgcb6bebb">Function description</h3>
<div class="outline-text-3" id="text-orgcb6bebb">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeInertialSensor(stewart, args)
% initializeInertialSensor - Initialize the inertial sensor in each strut
@@ -1504,9 +1529,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org3120ee8" class="outline-3">
<h3 id="org3120ee8">Optional Parameters</h3>
<div class="outline-text-3" id="text-org3120ee8">
<div id="outline-container-org5ec99a5" class="outline-3">
<h3 id="org5ec99a5">Optional Parameters</h3>
<div class="outline-text-3" id="text-org5ec99a5">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1547,9 +1572,9 @@ end
</div>
</div>
<div id="outline-container-org81ff88b" class="outline-3">
<h3 id="org81ff88b">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org81ff88b">
<div id="outline-container-org5e33aa2" class="outline-3">
<h3 id="org5e33aa2">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org5e33aa2">
<div class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre>
@@ -1570,9 +1595,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p>
</div>
<div id="outline-container-org84f3d13" class="outline-3">
<h3 id="org84f3d13">Function description</h3>
<div class="outline-text-3" id="text-org84f3d13">
<div id="outline-container-orgc70c9a5" class="outline-3">
<h3 id="orgc70c9a5">Function description</h3>
<div class="outline-text-3" id="text-orgc70c9a5">
<div class="org-src-container">
<pre class="src src-matlab">function [] = displayArchitecture(stewart, args)
% displayArchitecture - 3D plot of the Stewart platform architecture
@@ -1601,9 +1626,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-org74d4ce4" class="outline-3">
<h3 id="org74d4ce4">Optional Parameters</h3>
<div class="outline-text-3" id="text-org74d4ce4">
<div id="outline-container-org63006a7" class="outline-3">
<h3 id="org63006a7">Optional Parameters</h3>
<div class="outline-text-3" id="text-org63006a7">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1624,9 +1649,9 @@ end
</div>
</div>
<div id="outline-container-org3b35a3d" class="outline-3">
<h3 id="org3b35a3d">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org3b35a3d">
<div id="outline-container-org86735ca" class="outline-3">
<h3 id="org86735ca">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org86735ca">
<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;
@@ -1964,9 +1989,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</p>
</div>
<div id="outline-container-org6e4f9f6" class="outline-3">
<h3 id="org6e4f9f6">Function description</h3>
<div class="outline-text-3" id="text-org6e4f9f6">
<div id="outline-container-orgb99230a" class="outline-3">
<h3 id="orgb99230a">Function description</h3>
<div class="outline-text-3" id="text-orgb99230a">
<div class="org-src-container">
<pre class="src src-matlab">function [] = describeStewartPlatform(stewart)
% describeStewartPlatform - Display some text describing the current defined Stewart Platform
@@ -1982,9 +2007,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</div>
</div>
<div id="outline-container-org1dcd763" class="outline-3">
<h3 id="org1dcd763">Optional Parameters</h3>
<div class="outline-text-3" id="text-org1dcd763">
<div id="outline-container-orged88325" class="outline-3">
<h3 id="orged88325">Optional Parameters</h3>
<div class="outline-text-3" id="text-orged88325">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2133,9 +2158,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</p>
</div>
<div id="outline-container-org56bb069" class="outline-3">
<h3 id="org56bb069">Function description</h3>
<div class="outline-text-3" id="text-org56bb069">
<div id="outline-container-orgc164e8d" class="outline-3">
<h3 id="orgc164e8d">Function description</h3>
<div class="outline-text-3" id="text-orgc164e8d">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateCubicConfiguration(stewart, args)
% generateCubicConfiguration - Generate a Cubic Configuration
@@ -2160,9 +2185,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</div>
</div>
<div id="outline-container-org8dc2620" class="outline-3">
<h3 id="org8dc2620">Documentation</h3>
<div class="outline-text-3" id="text-org8dc2620">
<div id="outline-container-org0d467b7" class="outline-3">
<h3 id="org0d467b7">Documentation</h3>
<div class="outline-text-3" id="text-org0d467b7">
<div id="org70070f0" class="figure">
<p><img src="figs/cubic-configuration-definition.png" alt="cubic-configuration-definition.png" />
@@ -2172,9 +2197,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</div>
</div>
<div id="outline-container-org9269fce" class="outline-3">
<h3 id="org9269fce">Optional Parameters</h3>
<div class="outline-text-3" id="text-org9269fce">
<div id="outline-container-orgda76f80" class="outline-3">
<h3 id="orgda76f80">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgda76f80">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2188,9 +2213,9 @@ end
</div>
</div>
<div id="outline-container-org90eac03" class="outline-3">
<h3 id="org90eac03">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org90eac03">
<div id="outline-container-org4a5a3cf" class="outline-3">
<h3 id="org4a5a3cf">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org4a5a3cf">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'H'), 'stewart.geometry should have attribute H')
H = stewart.geometry.H;
@@ -2225,9 +2250,9 @@ CCm = [Cc(:,2), Cc(:,2), Cc(:,4), Cc(:,4), Cc(:,6), Cc(:,6)]; % CCm(:,i) corresp
</div>
</div>
<div id="outline-container-org3231a85" class="outline-3">
<h3 id="org3231a85">Compute the pose</h3>
<div class="outline-text-3" id="text-org3231a85">
<div id="outline-container-orge8af7a8" class="outline-3">
<h3 id="orge8af7a8">Compute the pose</h3>
<div class="outline-text-3" id="text-orge8af7a8">
<p>
We can compute the vector of each leg \({}^{C}\hat{\bm{s}}_{i}\) (unit vector from \({}^{C}C_{f}\) to \({}^{C}C_{m}\)).
</p>
@@ -2247,9 +2272,9 @@ Mb = CCf + [0; 0; args.FOc-H] + ((H-args.MHb-(args.FOc-args.Hc/2))./CSi(3,:)).*C
</div>
</div>
<div id="outline-container-orgb046d7e" class="outline-3">
<h3 id="orgb046d7e">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgb046d7e">
<div id="outline-container-org32b44aa" class="outline-3">
<h3 id="org32b44aa">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org32b44aa">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@@ -2271,9 +2296,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</p>
</div>
<div id="outline-container-org9b984be" class="outline-3">
<h3 id="org9b984be">Function description</h3>
<div class="outline-text-3" id="text-org9b984be">
<div id="outline-container-org2c08fbd" class="outline-3">
<h3 id="org2c08fbd">Function description</h3>
<div class="outline-text-3" id="text-org2c08fbd">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJacobian(stewart)
% computeJacobian -
@@ -2296,9 +2321,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</div>
</div>
<div id="outline-container-orga0158ff" class="outline-3">
<h3 id="orga0158ff">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-orga0158ff">
<div id="outline-container-org8071a1b" class="outline-3">
<h3 id="org8071a1b">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org8071a1b">
<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;
@@ -2344,9 +2369,9 @@ Ki = stewart.actuators.K;
</div>
</div>
<div id="outline-container-orgecc27b3" class="outline-3">
<h3 id="orgecc27b3">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgecc27b3">
<div id="outline-container-orgbf70f7a" class="outline-3">
<h3 id="orgbf70f7a">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgbf70f7a">
<div class="org-src-container">
<pre class="src src-matlab">stewart.kinematics.J = J;
stewart.kinematics.K = K;
@@ -2406,9 +2431,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org988305f" class="outline-3">
<h3 id="org988305f">Function description</h3>
<div class="outline-text-3" id="text-org988305f">
<div id="outline-container-org18c9841" class="outline-3">
<h3 id="org18c9841">Function description</h3>
<div class="outline-text-3" id="text-org18c9841">
<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}
@@ -2432,9 +2457,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org954d921" class="outline-3">
<h3 id="org954d921">Optional Parameters</h3>
<div class="outline-text-3" id="text-org954d921">
<div id="outline-container-org848fb1f" class="outline-3">
<h3 id="org848fb1f">Optional Parameters</h3>
<div class="outline-text-3" id="text-org848fb1f">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2446,9 +2471,9 @@ end
</div>
</div>
<div id="outline-container-org2e35685" class="outline-3">
<h3 id="org2e35685">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org2e35685">
<div id="outline-container-org8be974b" class="outline-3">
<h3 id="org8be974b">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org8be974b">
<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;
@@ -2492,9 +2517,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p>
</div>
<div id="outline-container-orgb2b186c" class="outline-3">
<h3 id="orgb2b186c">Function description</h3>
<div class="outline-text-3" id="text-orgb2b186c">
<div id="outline-container-org07e11bf" class="outline-3">
<h3 id="org07e11bf">Function description</h3>
<div class="outline-text-3" id="text-org07e11bf">
<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
@@ -2516,9 +2541,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-org8e4bfab" class="outline-3">
<h3 id="org8e4bfab">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8e4bfab">
<div id="outline-container-org918179d" class="outline-3">
<h3 id="org918179d">Optional Parameters</h3>
<div class="outline-text-3" id="text-org918179d">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2529,9 +2554,9 @@ end
</div>
</div>
<div id="outline-container-org87cdb4a" class="outline-3">
<h3 id="org87cdb4a">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org87cdb4a">
<div id="outline-container-orgf157791" class="outline-3">
<h3 id="orgf157791">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-orgf157791">
<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;
@@ -2586,7 +2611,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-05-20 mer. 15:49</p>
<p class="date">Created: 2020-05-20 mer. 16:41</p>
</div>
</body>
</html>