From b3e630459a1f57df174b2f8e62004859290bb4df Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Wed, 11 Dec 2019 09:33:46 +0100 Subject: [PATCH] Update the way the micro-hexapod is initialize (pitch-roll-yaw) Next verified that the function to compute the wanted sample position is working => yes --- metrology/index.html | 313 +++++++++++------- metrology/index.org | 78 +++-- simscape/index.org | 103 ++++-- simscape/sim_nano_station_disp.slx | Bin 35116 -> 34891 bytes simscape/sim_nano_station_metrology.slx | Bin 35552 -> 35899 bytes simscape_subsystems/hexapod_leg.slx | Bin 26042 -> 26789 bytes .../micro_hexapod_rigid_simple.slx | Bin 56835 -> 56839 bytes simscape_subsystems/nass_references.slx | Bin 29882 -> 31205 bytes src/computeReferencePose.m | 34 +- src/initializeMicroHexapod.m | 24 +- src/initializeReferences.m | 49 ++- 11 files changed, 380 insertions(+), 221 deletions(-) diff --git a/metrology/index.html b/metrology/index.html index 45057fb..5292ab0 100644 --- a/metrology/index.html +++ b/metrology/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Metrology @@ -262,7 +262,10 @@ for the JavaScript code in this tag. TeX: { equationNumbers: {autoNumber: "AMS"}, MultLineWidth: "85%", TagSide: "right", - TagIndent: ".8em" + TagIndent: ".8em", + Macros: { + bm: ["{\\boldsymbol #1}",1], + } } }); @@ -280,24 +283,25 @@ for the JavaScript code in this tag.

Table of Contents

@@ -310,29 +314,63 @@ Also, all the stages can be perfectly positioned.

-In section 1, we verify that the function developed to compute the wanted pose (translation and orientation) of the sample with respect to the granite can be determined from the wanted position of each stage (translation stage, tilt stage, spindle and micro-hexapod). +First, in section 1, is explained how the measurement of the position of the sample with respect to the granite is performed. +

+ +

+In section 2, we verify that the function developed to compute the wanted pose (translation and orientation) of the sample with respect to the granite can be determined from the wanted position of each stage (translation stage, tilt stage, spindle and micro-hexapod). To do so, we impose a perfect displacement and all the stage, we perfectly measure the position of the sample with respect to the granite, and we verify that this measured position corresponds to the computed wanted pose of the sample.

-Then, in section 2, we introduce some positioning error in the position stages. +Then, in section 3, we introduce some positioning error in the position stages. The positioning error of the sample expressed with respect to the granite frame (the one measured) is expressed in a frame connected to the NASS top platform. Finally, we move the NASS such that it compensate for the positioning error that are expressed in the frame of the NASS, and we verify that the positioning error of the sample is well compensated.

-
-

1 Verify that the function to compute the reference pose is correct

+
+

1 How do we measure the position of the sample with respect to the granite

- + +A transform sensor block gives the translation and orientation of the follower frame with respect to the base frame. +

+ +

+The base frame is fixed to the granite and located at the initial sample location that defines the zero position. +

+ +

+The follower frame is attached to the sample (or more precisely to the reflector). +

+ +

+The outputs of the transform sensor are: +

+
    +
  • the 3 translations x, y and z in meter
  • +
  • the rotation matrix \(\bm{R}\) that permits to rotate the base frame into the follower frame.
  • +
+ +

+We can then determine extract other orientation conventions such that Euler angles or screw axis. +

+
+
+ +
+

2 Verify that the function to compute the reference pose is correct

+
+

+

The goal here is to perfectly move the station and verify that there is no mismatch between the metrology measurement and the computation of the reference pose.

-
-

1.1 Prepare the Simulation

-
+
+

2.1 Prepare the Simulation

+

We load the configuration.

@@ -349,6 +387,23 @@ We set a small StopTime.
+

+We initialize all the stages. +

+
+
initializeGround();
+initializeGranite();
+initializeTy();
+initializeRy();
+initializeRz();
+initializeMicroHexapod();
+initializeAxisc();
+initializeMirror();
+initializeNanoHexapod(struct('actuator', 'piezo'));
+initializeSample(struct('mass', 50));
+
+
+

We setup the reference path to be constant.

@@ -359,17 +414,17 @@ We setup the reference path to be constant. 'Dy_amplitude', 5e-3, ... % Amplitude of the displacement [m] 'Dy_period', 1, ... % Period of the displacement [s] 'Ry_type', 'constant', ... % Either "constant" / "triangular" / "sinusoidal" - 'Ry_amplitude', -1, ... % Amplitude [deg] + 'Ry_amplitude', -1*pi/180, ... % Amplitude [rad] 'Ry_period', 10, ... % Period of the displacement [s] 'Rz_type', 'constant', ... % Either "constant" / "rotating" - 'Rz_amplitude', -135, ... % Initial angle [deg] + 'Rz_amplitude', -135*pi/180, ... % Initial angle [rad] 'Rz_period', 1, ... % Period of the rotating [s] 'Dh_type', 'constant', ... % For now, only constant is implemented - 'Dh_pos', [0; 0; 0; -3; 1; 3], ... % Initial position [m,m,m,deg,deg,deg] of the top platform + 'Dh_pos', [0.01; 0.02; -0.03; -3*pi/180; 1*pi/180; 3*pi/180], ... % Initial position [m,m,m,rad,rad,rad] of the top platform 'Rm_type', 'constant', ... % For now, only constant is implemented 'Rm_pos', [0, pi]', ... % Initial position of the two masses 'Dn_type', 'constant', ... % For now, only constant is implemented - 'Dn_pos', [0; 0; 0; 0; 0; 0] ... % Initial position [m,m,m,deg,deg,deg] of the top platform + 'Dn_pos', [1e-3; 2e-3; 3e-3; 1*pi/180; 0; 1*pi/180] ... % Initial position [m,m,m,rad,rad,rad] of the top platform ); initializeReferences(opts); @@ -384,6 +439,7 @@ No position error for now (perfect positioning). Rye = 0; % [rad] Rze = 0; % [rad] Dhe = zeros(6,1); % [m,rad] +Dne = zeros(6,1); % [m,rad]
@@ -397,9 +453,9 @@ And we run the simulation.
-
-

1.2 Verify that the pose of the sample is the same as the computed one

-
+
+

2.2 Verify that the pose of the sample is the same as the computed one

+

Let's denote:

@@ -413,8 +469,8 @@ Let's denote: We have then computed:

    -
  • \({}^W\boldsymbol{T}_R\) which corresponds to the wanted pose of the sample with respect to the granite
  • -
  • \({}^W\boldsymbol{T}_M\) which corresponds to the measured pose of the sample with respect to the granite
  • +
  • \({}^W\bm{T}_R\) which corresponds to the wanted pose of the sample with respect to the granite
  • +
  • \({}^W\bm{T}_M\) which corresponds to the measured pose of the sample with respect to the granite

@@ -422,10 +478,9 @@ We load the reference and we compute the desired trajectory of the sample in the

n = length(Dref.Dy.Time);
-
 WTr = zeros(4, 4, n);
 for i = 1:n
-  WTr(:, :, i) = computeReferencePose(Dref.Dy.Data(i), Dref.Ry.Data(i), Dref.Rz.Data(i), Dref.Dh.Data(i,:));
+  WTr(:, :, i) = computeReferencePose(Dref.Dy.Data(i), Dref.Ry.Data(i), Dref.Rz.Data(i), Dref.Dh.Data(i,:), Dref.Dn.Data(i,:));
 end
 
@@ -445,13 +500,13 @@ WTm( @@ -463,21 +518,21 @@ WTr( WTr(1:3, 4, end)-WTm(1:3, 4, end) ans = - 5.38287405101034e-15 - 9.42822209193395e-15 - -7.25141518012618e-16 + 1.8027246362351e-14 + 1.40408518145563e-14 + 6.93889390390723e-17 WTr(1:3, 1:3, end)'*WTm(1:3, 1:3, end)-eye(3) ans = - 1.53210777398272e-14 -1.60173523749974e-14 -7.42461647718073e-16 - 1.60683098771042e-14 1.53210777398272e-14 -2.33146835171283e-15 - -3.95516952522712e-16 -1.72084568816899e-15 9.2370555648813e-14 + 1.59872115546023e-14 -1.56629266848118e-14 -3.71230823859037e-16 + 1.56742023874057e-14 1.59872115546023e-14 -2.12330153459561e-15 + -1.14144804719274e-15 -5.51642065360625e-16 9.28146448586631e-14
-
-

1.3 Conclusion

-
+
+

2.3 Conclusion

+

We are able to compute the wanted position and orientation of the sample. @@ -489,11 +544,11 @@ Both the measurement and the theory gives the same result.

-
-

2 Verify that the function to convert the position error in the frame fixed to the nano-hexapod is working

-
+
+

3 Verify that the function to convert the position error in the frame fixed to the nano-hexapod is working

+

- +

We now introduce some positioning error in the stage. @@ -504,9 +559,9 @@ This will induce a global positioning error of the sample with respect to the de We want to verify that we are able to measure this positioning error and convert it in the frame attached to the Nano-hexapod.

-
-

2.1 Prepare the Simulation

-
+
+

3.1 Prepare the Simulation

+

We load the configuration.

@@ -532,15 +587,15 @@ We setup the reference path to be constant. 'Dy_type', 'constant', ... % Either "constant" / "triangular" / "sinusoidal" 'Dy_amplitude', 0, ... % Amplitude of the displacement [m] 'Ry_type', 'constant', ... % Either "constant" / "triangular" / "sinusoidal" - 'Ry_amplitude', 0, ... % Amplitude [deg] + 'Ry_amplitude', 0, ... % Amplitude [rad] 'Rz_type', 'constant', ... % Either "constant" / "rotating" - 'Rz_amplitude', 180, ... % Initial angle [deg] + 'Rz_amplitude', 0*pi/180, ... % Initial angle [rad] 'Dh_type', 'constant', ... % For now, only constant is implemented - 'Dh_pos', [0; 0; 0; 0; 0; 0], ... % Initial position [m,m,m,deg,deg,deg] of the top platform + 'Dh_pos', [0; 0; 0; 0; 0; 0], ... % Initial position [m,m,m,rad,rad,rad] of the top platform 'Rm_type', 'constant', ... % For now, only constant is implemented 'Rm_pos', [0, pi]', ... % Initial position of the two masses 'Dn_type', 'constant', ... % For now, only constant is implemented - 'Dn_pos', [0; 0; 0; 0; 0; 0] ... % Initial position [m,m,m,deg,deg,deg] of the top platform + 'Dn_pos', [0; 0; 0; 0; 0; 0] ... % Initial position [m,m,m,rad,rad,rad] of the top platform ); initializeReferences(opts); @@ -554,7 +609,10 @@ Now we introduce some positioning error.
Dye = 0; % [m]
 Rye = 0; % [rad]
 Rze = 0; % [rad]
-Dhe = [1e-3 ; 3e-3 ; 2e-3 ; 1e-3 ; 2e-3 ; 3e-3]; % [m,rad]
+Dhe = [1e-3 ; 0 ; 2e-3 ; 1e-3 ; 0 ; 3e-3]; % [m,rad]
+% Dhe = zeros(6,1);
+% Dne = [1e-3 ; 0 ; 2e-3 ; 0 ; 3e-3 ; 1e-3]; % [m,rad]
+Dne = zeros(6,1);
 
@@ -568,45 +626,44 @@ And we run the simulation.
-
-

2.2 Compute the wanted pose of the sample in the NASS Base from the metrology and the reference

-
+
+

3.2 Compute the wanted pose of the sample in the NASS Base from the metrology and the reference

+

Now that we have introduced some positioning error, the computed wanted pose and the measured pose will not be the same.

-We would like to compute \({}^M\boldsymbol{T}_R\) which corresponds to the wanted pose of the sample expressed in a frame attached to the top platform of the nano-hexapod (frame \(\{M\}\)). +We would like to compute \({}^M\bm{T}_R\) which corresponds to the wanted pose of the sample expressed in a frame attached to the top platform of the nano-hexapod (frame \(\{M\}\)).

We have:

\begin{align} - {}^M\boldsymbol{T}_R &= {}^M\boldsymbol{T}_W \cdot {}^W\boldsymbol{T}_R \\ - &= {}^W{\boldsymbol{T}_M}^{-1} \cdot {}^W\boldsymbol{T}_R + {}^M\bm{T}_R &= {}^M\bm{T}_W \cdot {}^W\bm{T}_R \\ + &= {}^W{\bm{T}_M}^{-1} \cdot {}^W\bm{T}_R \end{align}

-The top platform of the nano-hexapod is considered to be rigidly connected to the sample, thus, \({}^M\boldsymbol{T}_R\) corresponds to the pose error of the sample with respect to the nano-hexapod platform. +The top platform of the nano-hexapod is considered to be rigidly connected to the sample, thus, \({}^M\bm{T}_R\) corresponds to the pose error of the sample with respect to the nano-hexapod platform.

-We load the reference and we compute the desired trajectory of the sample in the form of an homogeneous transformation matrix \({}^W\boldsymbol{T}_R\). +We load the reference and we compute the desired trajectory of the sample in the form of an homogeneous transformation matrix \({}^W\bm{T}_R\).

n = length(Dref.Dy.Time);
-
 WTr = zeros(4, 4, n);
 for i = 1:n
-  WTr(:, :, i) = computeReferencePose(Dref.Dy.Data(i), Dref.Ry.Data(i), Dref.Rz.Data(i), Dref.Dh.Data(i,:));
+  WTr(:, :, i) = computeReferencePose(Dref.Dy.Data(i), Dref.Ry.Data(i), Dref.Rz.Data(i), Dref.Dh.Data(i,:), Dref.Dn.Data(i,:));
 end
 

We also measure in simulation the pose of the sample with respect to the granite. -From that we can compute the homogeneous transformation matrix \({}^W\boldsymbol{T}_M\). +From that we can compute the homogeneous transformation matrix \({}^W\bm{T}_M\).

n = length(Dsm.R.Time);
@@ -620,18 +677,19 @@ WTm(
 
MTr = zeros(4, 4, n);
@@ -644,6 +702,22 @@ Finally, we compute \({}^M\boldsymbol{T}_R\).
 

Verify that the pose error corresponds to the positioning error of the stages.

+
+
MTr(1:3, 1:3, end)
+Rx = [1 0       0;
+      0 cos(Erx) -sin(Erx);
+      0 sin(Erx)  cos(Erx)];
+
+Ry = [ cos(Ery) 0 sin(Ery);
+      0      1 0;
+      -sin(Ery) 0 cos(Ery)];
+
+Rz = [cos(Erz) -sin(Erz) 0;
+      sin(Erz)  cos(Erz) 0;
+      0       0      1];
+
+
+ @@ -677,10 +751,10 @@ Verify that the pose error corresponds to the positioning error of the stages. - + - + @@ -688,14 +762,14 @@ Verify that the pose error corresponds to the positioning error of the stages. -
-

2.3 Verify that be imposing the error motion on the nano-hexapod, we indeed have zero error at the end

-
+
+

3.3 Verify that be imposing the error motion on the nano-hexapod, we indeed have zero error at the end

+

-We now impose a displacement of the nano hexapod corresponding to the measured position error. +We now keep the wanted pose but we impose a displacement of the nano hexapod corresponding to the measured position error.

-
opts.Dn_pos = [Edx, Edy, Edz, 180/pi*Erx, 180/pi*Ery, 180/pi*Erz]';
+
opts.Dn_pos = [Edx, Edy, Edz, Erx, Ery, Erz]';
 initializeReferences(opts);
 
@@ -709,21 +783,12 @@ And we run the simulation.

-We load the reference and we compute the desired trajectory of the sample in the form of an homogeneous transformation matrix \({}^WT_R\). +We keep the old computed computed reference pose \({}^W\bm{T}_r\) even though we have change the nano hexapod reference, but this is not a real wanted reference but rather a adaptation to reject the positioning errors.

-
-
n = length(Dref.Dy.Time);
-
-WTr = zeros(4, 4, n);
-for i = 1:n
-  WTr(:, :, i) = computeReferencePose(Dref.Dy.Data(i), Dref.Ry.Data(i), Dref.Rz.Data(i), Dref.Dh.Data(i,:));
-end
-
-

As the displacement is perfect, we also measure in simulation the pose of the sample with respect to the granite. -From that we can compute the homogeneous transformation matrix \({}^WT_M\). +From that we can compute the homogeneous transformation matrix \({}^W\bm{T}_M\).

n = length(Dsm.R.Time);
@@ -735,7 +800,7 @@ WTm(
 
MTr = zeros(4, 4, n);
@@ -780,21 +845,21 @@ Verify that the pose error is small.
 
- - - - - - + + + + + +
Error -1.0e-03-3.0e-031.0e-06 -2.0e-03 -1.0e-03-2.0e-033.0e-06 -3.0e-03
Error1.2e-163.3e-162.3e-16-6.2e-171.1e-162.2e-16-3.0e-09-1.0e-093.0e-092.0e-09-1.0e-093.0e-09
-
-

2.4 Conclusion

-
+
+

3.4 Conclusion

+

Indeed, we are able to convert the position error in the frame of the NASS and then compensate these errors with the NASS. @@ -805,15 +870,15 @@ Indeed, we are able to convert the position error in the frame of the NASS and t

-
-

3 Functions

-
+
+

4 Functions

+
-
-

3.1 computeReferencePose

-
+
+

4.1 computeReferencePose

+

- +

@@ -821,13 +886,17 @@ This Matlab function is accessible here

-
function [WTr] = computeReferencePose(Dy, Ry, Rz, Dh)
+
function [WTr] = computeReferencePose(Dy, Ry, Rz, Dh, Dn)
 % computeReferencePose - Compute the homogeneous transformation matrix corresponding to the wanted pose of the sample
 %
-% Syntax: [WTr] = computeReferencePose(Dy, Ry, Rz, Dh)
+% Syntax: [WTr] = computeReferencePose(Dy, Ry, Rz, Dh, Dn)
 %
 % Inputs:
-%    - Dy, Ry, Rz, Dh -
+%    - Dy - Reference of the Translation Stage [m]
+%    - Ry - Reference of the Tilt Stage [rad]
+%    - Rz - Reference of the Spindle [rad]
+%    - Dh - Reference of the Micro Hexapod (Pitch, Roll, Yaw angles) [m, m, m, rad, rad, rad]
+%    - Dn - Reference of the Nano Hexapod [m, m, m, rad, rad, rad]
 %
 % Outputs:
 %    - WTr -
@@ -869,10 +938,30 @@ This Matlab function is accessible here
         0 0 1 Dh(3) ;
         0 0 0 1 ];
 
-  Rh(1:3, 1:3) = Rhx*Rhy*Rhz;
+  Rh(1:3, 1:3) = Rhz*Rhy*Rhx;
+
+  %% Nano-Hexapod
+  Rnx = [1 0           0;
+         0 cos(Dn(4)) -sin(Dn(4));
+         0 sin(Dn(4))  cos(Dn(4))];
+
+  Rny = [ cos(Dn(5)) 0 sin(Dn(5));
+         0           1 0;
+         -sin(Dn(5)) 0 cos(Dn(5))];
+
+  Rnz = [cos(Dn(6)) -sin(Dn(6)) 0;
+         sin(Dn(6))  cos(Dn(6)) 0;
+         0           0          1];
+
+  Rn = [1 0 0 Dn(1) ;
+        0 1 0 Dn(2) ;
+        0 0 1 Dn(3) ;
+        0 0 0 1 ];
+
+  Rn(1:3, 1:3) = Rnx*Rny*Rnz;
 
   %% Total Homogeneous transformation
-  WTr = Rty*Rry*Rrz*Rh;
+  WTr = Rty*Rry*Rrz*Rh*Rn;
 end
 
@@ -882,7 +971,7 @@ This Matlab function is accessible here

Author: Dehaeze Thomas

-

Created: 2019-12-06 ven. 12:02

+

Created: 2019-12-11 mer. 09:33

Validate

diff --git a/metrology/index.org b/metrology/index.org index 243325e..45f9388 100644 --- a/metrology/index.org +++ b/metrology/index.org @@ -64,7 +64,7 @@ The follower frame is attached to the sample (or more precisely to the reflector The outputs of the transform sensor are: - the 3 translations x, y and z in meter -- the rotation matrix $\boldsymbol{R}$ that permits to rotate the base frame into the follower frame. +- the *rotation matrix* $\bm{R}$ that permits to rotate the base frame into the follower frame. We can then determine extract other orientation conventions such that Euler angles or screw axis. @@ -101,6 +101,20 @@ We set a small =StopTime=. set_param(conf_simscape, 'StopTime', '0.5'); #+end_src +We initialize all the stages. +#+begin_src matlab + initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); + initializeMirror(); + initializeNanoHexapod(struct('actuator', 'piezo')); + initializeSample(struct('mass', 50)); +#+end_src + We setup the reference path to be constant. #+begin_src matlab opts = struct( ... @@ -115,11 +129,11 @@ We setup the reference path to be constant. 'Rz_amplitude', -135*pi/180, ... % Initial angle [rad] 'Rz_period', 1, ... % Period of the rotating [s] 'Dh_type', 'constant', ... % For now, only constant is implemented - 'Dh_pos', [0; 0; 0; -3*pi/180; 1*pi/180; 3*pi/180], ... % Initial position [m,m,m,rad,rad,rad] of the top platform + 'Dh_pos', [0.01; 0.02; -0.03; -3*pi/180; 1*pi/180; 3*pi/180], ... % Initial position [m,m,m,rad,rad,rad] of the top platform 'Rm_type', 'constant', ... % For now, only constant is implemented 'Rm_pos', [0, pi]', ... % Initial position of the two masses 'Dn_type', 'constant', ... % For now, only constant is implemented - 'Dn_pos', [1e-3; 0; 0; 1*pi/180; 0; 1*pi/180] ... % Initial position [m,m,m,rad,rad,rad] of the top platform + 'Dn_pos', [1e-3; 2e-3; 3e-3; 1*pi/180; 0; 1*pi/180] ... % Initial position [m,m,m,rad,rad,rad] of the top platform ); initializeReferences(opts); @@ -146,8 +160,8 @@ Let's denote: - $\{M\}$ the frame corresponding to the measured pose of the sample We have then computed: -- ${}^W\boldsymbol{T}_R$ which corresponds to the wanted pose of the sample with respect to the granite -- ${}^W\boldsymbol{T}_M$ which corresponds to the measured pose of the sample with respect to the granite +- ${}^W\bm{T}_R$ which corresponds to the wanted pose of the sample with respect to the granite +- ${}^W\bm{T}_M$ which corresponds to the measured pose of the sample with respect to the granite We load the reference and we compute the desired trajectory of the sample in the form of an homogeneous transformation matrix ${}^WT_R$. #+begin_src matlab @@ -169,11 +183,11 @@ From that we can compute the homogeneous transformation matrix ${}^WT_M$. #+end_src As the simulation is perfect (no measurement error and no motion error), we should have that -\[ {}^W\boldsymbol{T}_R = {}^W\boldsymbol{T}_M \] +\[ {}^W\bm{T}_R = {}^W\bm{T}_M \] Or are least: -\[ {}^W\boldsymbol{T}_R(1:3, 4) = {}^W\boldsymbol{T}_M(1:3, 4) \] -\[ {}^W\boldsymbol{R}_R^t \cdot {}^W\boldsymbol{R}_M = \boldsymbol{I}_3 \] +\[ {}^W\bm{T}_R(1:3, 4) = {}^W\bm{T}_M(1:3, 4) \] +\[ {}^W\bm{R}_R^t \cdot {}^W\bm{R}_M = \bm{I}_3 \] #+begin_src matlab :results output replace WTr(1:3, 4, end)-WTm(1:3, 4, end) @@ -184,14 +198,14 @@ Or are least: #+begin_example WTr(1:3, 4, end)-WTm(1:3, 4, end) ans = - -8.47173893536723e-15 - -1.38430933382949e-15 - -8.88361324636402e-16 + 1.8027246362351e-14 + 1.40408518145563e-14 + 6.93889390390723e-17 WTr(1:3, 1:3, end)'*WTm(1:3, 1:3, end)-eye(3) ans = - 2.66453525910038e-15 1.19459143341844e-15 -1.07098845850834e-17 - -1.185456383777e-15 2.66453525910038e-15 2.9392720896082e-16 - 1.07732002978906e-17 -2.9392720896082e-16 2.88657986402541e-15 + 1.59872115546023e-14 -1.56629266848118e-14 -3.71230823859037e-16 + 1.56742023874057e-14 1.59872115546023e-14 -2.12330153459561e-15 + -1.14144804719274e-15 -5.51642065360625e-16 9.28146448586631e-14 #+end_example ** Conclusion @@ -276,17 +290,17 @@ And we run the simulation. ** Compute the wanted pose of the sample in the NASS Base from the metrology and the reference Now that we have introduced some positioning error, the computed wanted pose and the measured pose will not be the same. -We would like to compute ${}^M\boldsymbol{T}_R$ which corresponds to the wanted pose of the sample expressed in a frame attached to the top platform of the nano-hexapod (frame $\{M\}$). +We would like to compute ${}^M\bm{T}_R$ which corresponds to the wanted pose of the sample expressed in a frame attached to the top platform of the nano-hexapod (frame $\{M\}$). We have: \begin{align} - {}^M\boldsymbol{T}_R &= {}^M\boldsymbol{T}_W \cdot {}^W\boldsymbol{T}_R \\ - &= {}^W{\boldsymbol{T}_M}^{-1} \cdot {}^W\boldsymbol{T}_R + {}^M\bm{T}_R &= {}^M\bm{T}_W \cdot {}^W\bm{T}_R \\ + &= {}^W{\bm{T}_M}^{-1} \cdot {}^W\bm{T}_R \end{align} -The top platform of the nano-hexapod is considered to be rigidly connected to the sample, thus, ${}^M\boldsymbol{T}_R$ corresponds to the pose error of the sample with respect to the nano-hexapod platform. +The top platform of the nano-hexapod is considered to be rigidly connected to the sample, thus, ${}^M\bm{T}_R$ corresponds to the pose error of the sample with respect to the nano-hexapod platform. -We load the reference and we compute the desired trajectory of the sample in the form of an homogeneous transformation matrix ${}^W\boldsymbol{T}_R$. +We load the reference and we compute the desired trajectory of the sample in the form of an homogeneous transformation matrix ${}^W\bm{T}_R$. #+begin_src matlab n = length(Dref.Dy.Time); WTr = zeros(4, 4, n); @@ -296,7 +310,7 @@ We load the reference and we compute the desired trajectory of the sample in the #+end_src We also measure in simulation the pose of the sample with respect to the granite. -From that we can compute the homogeneous transformation matrix ${}^W\boldsymbol{T}_M$. +From that we can compute the homogeneous transformation matrix ${}^W\bm{T}_M$. #+begin_src matlab n = length(Dsm.R.Time); WTm = zeros(4, 4, n); @@ -307,17 +321,17 @@ From that we can compute the homogeneous transformation matrix ${}^W\boldsymbol{ The *inverse of the transformation matrix* can be obtain by (it is less computation intensive than doing a full inverse) \begin{equation} - {}^B\boldsymbol{T}_A = {}^A\boldsymbol{T}_B^{-1} = + {}^B\bm{T}_A = {}^A\bm{T}_B^{-1} = \left[ \begin{array}{ccc|c} & & & \\ - & {}^A\boldsymbol{R}_B^T & & -{}^A \boldsymbol{R}_B^T {}^A\boldsymbol{P}_{O_B} \\ + & {}^A\bm{R}_B^T & & -{}^A \bm{R}_B^T {}^A\bm{P}_{O_B} \\ & & & \\ \hline 0 & 0 & 0 & 1 \\ \end{array} \right] \end{equation} -Finally, we compute ${}^M\boldsymbol{T}_R$. +Finally, we compute ${}^M\bm{T}_R$. #+begin_src matlab MTr = zeros(4, 4, n); for i = 1:n @@ -372,10 +386,10 @@ And we run the simulation. sim('simscape/sim_nano_station_metrology.slx'); #+end_src -We keep the old computed computed reference pose ${}^W\boldsymbol{T}_r$ even though we have change the nano hexapod reference, but this is not a real wanted reference but rather a adaptation to reject the positioning errors. +We keep the old computed computed reference pose ${}^W\bm{T}_r$ even though we have change the nano hexapod reference, but this is not a real wanted reference but rather a adaptation to reject the positioning errors. As the displacement is perfect, we also measure in simulation the pose of the sample with respect to the granite. -From that we can compute the homogeneous transformation matrix ${}^W\boldsymbol{T}_M$. +From that we can compute the homogeneous transformation matrix ${}^W\bm{T}_M$. #+begin_src matlab n = length(Dsm.R.Time); WTm = zeros(4, 4, n); @@ -384,7 +398,7 @@ From that we can compute the homogeneous transformation matrix ${}^W\boldsymbol{ WTm(4, 4, :) = 1; #+end_src -Finally, we compute ${}^M\boldsymbol{T}_R$. +Finally, we compute ${}^M\bm{T}_R$. #+begin_src matlab MTr = zeros(4, 4, n); for i = 1:n @@ -437,7 +451,7 @@ This Matlab function is accessible [[file:src/computeReferencePose.m][here]]. % - Dy - Reference of the Translation Stage [m] % - Ry - Reference of the Tilt Stage [rad] % - Rz - Reference of the Spindle [rad] - % - Dh - Reference of the Micro Hexapod [m, m, m, rad, rad, rad] + % - Dh - Reference of the Micro Hexapod (Pitch, Roll, Yaw angles) [m, m, m, rad, rad, rad] % - Dn - Reference of the Nano Hexapod [m, m, m, rad, rad, rad] % % Outputs: @@ -480,7 +494,7 @@ This Matlab function is accessible [[file:src/computeReferencePose.m][here]]. 0 0 1 Dh(3) ; 0 0 0 1 ]; - Rh(1:3, 1:3) = Rhx*Rhy*Rhz; + Rh(1:3, 1:3) = Rhz*Rhy*Rhx; %% Nano-Hexapod Rnx = [1 0 0; @@ -534,8 +548,8 @@ Let's define the following frames: The origin of $T$ is $O_T$ and is the wanted position of the sample. Thus: -- the *measurement* of the position of the sample corresponds to ${}^W O_S = \begin{bmatrix} {}^WP_{x,m} & {}^WP_{y,m} & {}^WP_{z,m} \end{bmatrix}^T$ in translation and to $\theta_m {}^W\boldsymbol{s}_m = \theta_m \cdot \begin{bmatrix} {}^Ws_{x,m} & {}^Ws_{y,m} & {}^Ws_{z,m} \end{bmatrix}^T$ in rotations -- the *wanted position* of the sample expressed w.r.t. the granite is ${}^W O_T = \begin{bmatrix} {}^WP_{x,r} & {}^WP_{y,r} & {}^WP_{z,r} \end{bmatrix}^T$ in translation and to $\theta_r {}^W\boldsymbol{s}_r = \theta_r \cdot \begin{bmatrix} {}^Ws_{x,r} & {}^Ws_{y,r} & {}^Ws_{z,r} \end{bmatrix}^T$ in rotations +- the *measurement* of the position of the sample corresponds to ${}^W O_S = \begin{bmatrix} {}^WP_{x,m} & {}^WP_{y,m} & {}^WP_{z,m} \end{bmatrix}^T$ in translation and to $\theta_m {}^W\bm{s}_m = \theta_m \cdot \begin{bmatrix} {}^Ws_{x,m} & {}^Ws_{y,m} & {}^Ws_{z,m} \end{bmatrix}^T$ in rotations +- the *wanted position* of the sample expressed w.r.t. the granite is ${}^W O_T = \begin{bmatrix} {}^WP_{x,r} & {}^WP_{y,r} & {}^WP_{z,r} \end{bmatrix}^T$ in translation and to $\theta_r {}^W\bm{s}_r = \theta_r \cdot \begin{bmatrix} {}^Ws_{x,r} & {}^Ws_{y,r} & {}^Ws_{z,r} \end{bmatrix}^T$ in rotations ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -655,7 +669,7 @@ Let's compute the corresponding orientation using screw axis. We then obtain the orientation measurement in the form of screw coordinate $\theta_m ({}^Ws_{x,m},\ {}^Ws_{y,m},\ {}^Ws_{z,m})^T$ where: - $\theta_m = \cos^{-1} \frac{\text{Tr}(R) - 1}{2}$ -- ${}^W\boldsymbol{s}_m$ is the eigen vector of the rotation matrix $R$ corresponding to the eigen value $\lambda = 1$ +- ${}^W\bm{s}_m$ is the eigen vector of the rotation matrix $R$ corresponding to the eigen value $\lambda = 1$ #+begin_src matlab thetam = acos((trace(STw(1:3, 1:3))-1)/2); % [rad] @@ -675,7 +689,7 @@ We then obtain the orientation measurement in the form of screw coordinate $\the The wanted position expressed with respect to the granite is ${}^WO_T$ and the measured position with respect to the granite is ${}^WO_S$, thus the *position error* expressed in $\{W\}$ is \[ {}^W E = {}^W O_T - {}^W O_S \] The same is true for rotations: -\[ \theta_\epsilon {}^W\boldsymbol{s}_\epsilon = \theta_r {}^W\boldsymbol{s}_r - \theta_m {}^W\boldsymbol{s}_m \] +\[ \theta_\epsilon {}^W\bm{s}_\epsilon = \theta_r {}^W\bm{s}_r - \theta_m {}^W\bm{s}_m \] #+begin_src matlab WPe = WPr - WPm; diff --git a/simscape/index.org b/simscape/index.org index 7909dc4..ee72cb4 100644 --- a/simscape/index.org +++ b/simscape/index.org @@ -755,8 +755,7 @@ This Matlab function is accessible [[file:../src/runSimulation.m][here]]. 'time', 'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz', 'K'); end #+end_src -* Initialize Elements -<> +* Helping Functions ** Experiment :PROPERTIES: :header-args:matlab+: :tangle ../src/initializeExperiment.m @@ -797,7 +796,6 @@ This Matlab function is accessible [[file:../src/initializeExperiment.m][here]]. :header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :eval no :results none :END: - <> This Matlab function is accessible [[file:../src/initializeInputs.m][here]]. @@ -817,7 +815,7 @@ This Matlab function is accessible [[file:../src/initializeInputs.m][here]]. 'Rz_amplitude', 0, ... % Initial angle [rad] 'Rz_period', 1, ... % Period of the rotating [s] 'Dh_type', 'constant', ... % For now, only constant is implemented - 'Dh_pos', [0; 0; 0; 0; 0; 0], ... % Initial position [m,m,m,rad,rad,rad] of the top platform + 'Dh_pos', [0; 0; 0; 0; 0; 0], ... % Initial position [m,m,m,rad,rad,rad] of the top platform (Pitch-Roll-Yaw Euler angles) 'Rm_type', 'constant', ... % For now, only constant is implemented 'Rm_pos', [0; pi], ... % Initial position of the two masses 'Dn_type', 'constant', ... % For now, only constant is implemented @@ -887,14 +885,37 @@ This Matlab function is accessible [[file:../src/initializeInputs.m][here]]. %% Micro-Hexapod t = [0, Ts]; Dh = zeros(length(t), 6); + Dhl = zeros(length(t), 6); switch opts.Dh_type case 'constant' Dh = [opts.Dh_pos, opts.Dh_pos]; + + load('./mat/stages.mat', 'micro_hexapod'); + + AP = [opts.Dh_pos(1) ; opts.Dh_pos(2) ; opts.Dh_pos(3)]; + + tx = opts.Dh_pos(4); + ty = opts.Dh_pos(5); + tz = opts.Dh_pos(6); + + ARB = [cos(tz) -sin(tz) 0; + sin(tz) cos(tz) 0; + 0 0 1]*... + [ cos(ty) 0 sin(ty); + 0 1 0; + -sin(ty) 0 cos(ty)]*... + [1 0 0; + 0 cos(tx) -sin(tx); + 0 sin(tx) cos(tx)]; + + [Dhl] = inverseKinematicsHexapod(micro_hexapod, AP, ARB); + Dhl = [Dhl, Dhl]; otherwise warning('Dh_type is not set correctly'); end Dh = struct('time', t, 'signals', struct('values', Dh)); + Dhl = struct('time', t, 'signals', struct('values', Dhl)); %% Axis Compensation - Rm t = [0, Ts]; @@ -914,7 +935,7 @@ This Matlab function is accessible [[file:../src/initializeInputs.m][here]]. Dn = struct('time', t, 'signals', struct('values', Dn)); %% Save - save('./mat/nass_references.mat', 'Dy', 'Ry', 'Rz', 'Dh', 'Rm', 'Dn', 'Ts'); + save('./mat/nass_references.mat', 'Dy', 'Ry', 'Rz', 'Dh', 'Dhl', 'Rm', 'Dn', 'Ts'); end #+end_src @@ -1108,6 +1129,42 @@ This Matlab function is accessible [[file:../src/initializeInputs.m][here]]. end #+end_src +** Inverse Kinematics of the Hexapod +:PROPERTIES: +:header-args:matlab+: :tangle ../src/inverseKinematicsHexapod.m +:header-args:matlab+: :comments org :mkdirp yes +:header-args:matlab+: :eval no :results none +:END: +<> + +This Matlab function is accessible [[file:src/inverseKinematicsHexapod.m][here]]. + +#+begin_src matlab + function [L] = inverseKinematicsHexapod(hexapod, AP, ARB) + % inverseKinematicsHexapod - Compute the initial position of each leg to have the wanted Hexapod's position + % + % Syntax: inverseKinematicsHexapod(hexapod, AP, ARB) + % + % Inputs: + % - hexapod - Hexapod object containing the geometry of the hexapod + % - AP - Position vector of point OB expressed in frame {A} in [m] + % - ARB - Rotation Matrix expressed in frame {A} + + % Wanted Length of the hexapod's legs [m] + L = zeros(6, 1); + + for i = 1:length(L) + Bbi = hexapod.pos_top_tranform(i, :)' - 1e-3*[0 ; 0 ; hexapod.TP.thickness+hexapod.Leg.sphere.top+hexapod.SP.thickness.top+hexapod.jacobian]; % [m] + Aai = hexapod.pos_base(i, :)' + 1e-3*[0 ; 0 ; hexapod.BP.thickness+hexapod.Leg.sphere.bottom+hexapod.SP.thickness.bottom-hexapod.h-hexapod.jacobian]; % [m] + + L(i) = sqrt(AP'*AP + Bbi'*Bbi + Aai'*Aai - 2*AP'*Aai + 2*AP'*(ARB*Bbi) - 2*(ARB*Bbi)'*Aai); + end + end +#+end_src + + +* Initialize Elements +<> ** Ground :PROPERTIES: :header-args:matlab+: :tangle ../src/initializeGround.m @@ -1420,19 +1477,19 @@ This Matlab function is accessible [[file:../src/initializeRz.m][here]]. ** Initialize Hexapod legs' length :PROPERTIES: -:header-args:matlab+: :tangle ../src/initializeHexapodPosition.m +:header-args:matlab+: :tangle ../src/inverseKinematicsHexapod.m :header-args:matlab+: :comments org :mkdirp yes :header-args:matlab+: :eval no :results none :END: -<> +<> -This Matlab function is accessible [[file:../src/initializeHexapodPosition.m][here]]. +This Matlab function is accessible [[file:../src/inverseKinematicsHexapod.m][here]]. #+begin_src matlab - function [hexapod] = initializeHexapodPosition(hexapod, AP, ARB) - % initializeHexapodPosition - + function [hexapod] = inverseKinematicsHexapod(hexapod, AP, ARB) + % inverseKinematicsHexapod - % - % Syntax: initializeHexapodPosition(hexapod, AP, ARB) + % Syntax: inverseKinematicsHexapod(hexapod, AP, ARB) % % Inputs: % - hexapod - Hexapod object containing the geometry of the hexapod @@ -1563,7 +1620,7 @@ This Matlab function is accessible [[file:../src/initializeMicroHexapod.m][here] micro_hexapod = initializeParameters(micro_hexapod); %% Setup equilibrium position of each leg - micro_hexapod.L0 = initializeHexapodPosition(micro_hexapod, opts.AP, opts.ARB); + micro_hexapod.L0 = inverseKinematicsHexapod(micro_hexapod, opts.AP, opts.ARB); %% Save save('./mat/stages.mat', 'micro_hexapod', '-append'); @@ -1666,28 +1723,6 @@ This Matlab function is accessible [[file:../src/initializeMicroHexapod.m][here] J(:, 1:3) = RM'; J(:, 4:6) = cross(M_pos_base, RM)'; end - - %% - function [L] = initializeHexapodPosition(hexapod, AP, ARB) - % initializeHexapodPosition - Compute the initial position of each leg to have the wanted Hexapod's position - % - % Syntax: initializeHexapodPosition(hexapod, AP, ARB) - % - % Inputs: - % - hexapod - Hexapod object containing the geometry of the hexapod - % - AP - Position vector of point OB expressed in frame {A} in [m] - % - ARB - Rotation Matrix expressed in frame {A} - - % Wanted Length of the hexapod's legs [m] - L = zeros(6, 1); - - for i = 1:length(L) - Bbi = hexapod.pos_top_tranform(i, :)' - 1e-3*[0 ; 0 ; hexapod.TP.thickness+hexapod.Leg.sphere.top+hexapod.SP.thickness.top+hexapod.jacobian]; % [m] - Aai = hexapod.pos_base(i, :)' + 1e-3*[0 ; 0 ; hexapod.BP.thickness+hexapod.Leg.sphere.bottom+hexapod.SP.thickness.bottom-micro_hexapod.h-hexapod.jacobian]; % [m] - - L(i) = sqrt(AP'*AP + Bbi'*Bbi + Aai'*Aai - 2*AP'*Aai + 2*AP'*(ARB*Bbi) - 2*(ARB*Bbi)'*Aai); - end - end end #+end_src diff --git a/simscape/sim_nano_station_disp.slx b/simscape/sim_nano_station_disp.slx index 99a295cd50037986140a94f0bde42c46a78068ea..97ea0d68f2a40ea8351d05c1581b39a5efb0bdf4 100644 GIT binary patch delta 13512 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 delta 13706 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 delta 13129 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 diff --git a/simscape_subsystems/hexapod_leg.slx b/simscape_subsystems/hexapod_leg.slx index 497b5defbed710689af6ee0a91e6f164938d13ce..44760e151326a69ed701d651988c084378e10142 100644 GIT binary patch delta 10352 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�VINbO59Uj50#u6@=OlEH~0HnY!M=T##yA#~KzcBLP z8w&t>y@@PVa56EM$D)d!+9dq4mo*j1%CD`c_gVu4>7$SGjb~U}juZpog z=|=KB-0Uw2m^0@t&%tAKNY-;OV~#vp0#mF^ixInRtD&a2IWlwg_n+5(%sq_hk^dYi z%hnwM;7b+M`RMVd?_U|V9f>~nhW(&w#qyo1TJ^=Czj)wDHpaVuwE zifn5Nn2p<+vJ$u;D|fk8JDd9P+z$A6v*Y?chbVp}t(J!y$*(~9*rDD z3uYv81B{$A4g^5mZwGY%kU8kf@q%+}&WCv|&*S#CKox;_puBZa*t^k&dXBF3AFAPnF5>azW%u zz09r>FW_8K505{JWGOmw*V4BDg(_I-k12den+)KIHU#X4W9{fTi7ZGofNqJ#{0g2QpYIN_Ta^^7jq=by|{HIYnX-e zF9Sv7czlv_UWZT>@@$`#U9=dqti_ctsXuCek`5^>pG1WbnIq&^?H89jhU$D@RK+YYRpz8$%;YQ8VC~5)wexp9wke{E0TDDbY)!dKJWd`L|!lk2}lnW}j=& zq3Mra-H-KWh7B_e_XblNc|9IM+m^|1rd2_Qsfc(|ickB0ekzDS#L7b12SB zQbB%Pg4*1xj{wnDoluR}CgLbQieNZ{IkPo_|Rs{V|pm@9S&kta@Ivc?5dwMgy zm(}4{G{ z<_Lmu-k35~h8-JHsBPW#B`%>Mv@%7wchOmTp!hGfU4LH@#rnE=MA%B^h~kPJOm*^h zz9=P+p28ow&36*RFwc*GNp1)*xzwzc_!C;7Ue+XT0+GBUx8Uc-{0n9^8oZX_aWk!X z;WO^{a^6<&JCV8A0ZCraYa zh$+IT9nQO*P%meFy*Eh~&M>t0Ys(_2-S}`E_AQ*LFA_L-A?{C2PR+`_Rv}@nv_>D< zqm*eGtTS>RwBY_5cdGU$;D+|ow40{PG7~NsitC!H!l$eKFQsMMGHy2~M0y<0shn27{%Jwa$ z=qd(Tr|PHZijrgiQ}P{`gWuvT-Gy37JjyE+&D(X?T)UxuYiJm=l5i1ApFANteclHq zz+IrtRam8MM8#MM8173ky$LkmfuA>X*4Zd@6a$XuFzyT8uLki28VS)7w$mW0e#kt` zR$S4JY%--hV|(Hk07h30xcBBMO(QzLP0~8(Cl#1}N=M->90)pthBON^Saag#im22i zeDQ}8#65rqDLjC3z`TH`@*acW1#yk48}>*`athF){5cb#3_Fct?ziekK!n}Q=R#2J zn%t5}Js;n-dU*W&lJay|n7Mu07tK@s%dWX)eYeQ5<~Ab{8!!%+A~+ntoJCzn!Ib0& zV+GxxVhL5|O{h+Et1L!NI8{r_@#F1{Z|?^u==-(&f4Nk^cy0cVT|cMI z@gJ#F7&?MP|C|ApGELfj?}vx@`@xF;PX8(I&G+)<6R=YU7Z|OBO!yD5S$=`8^_>mz z-b?WT_+KCoutSIaLs=`QGkM2*ANxCo>Te9xhcZT8+z(r%b#Xxjfo8hoAF4l+irz(z z-|fc!ONQGw|*+KGJ_rn^+GQv=qpv$NDiuM$>s% z-Mbk6y9)BZ#9e_=dTbwcX zIug7e&?*0|w2uR5qfh>!RR_?s;rc#e_It(odt@bGo&LW(@b4Ec5D>z@K*Y+xXMOq) zP5*sQ{)2m;@_Q*$1+FL&{6G8t^8z9J0RFGQs2Xrm6%ANmK=`3KouKqt?H%CtUa9{A z>Z^YM?+wU4)|Su^7Yt0}gC%Q7`XLJuZUHa%E@SXsiT;w!`Ugk?Y%+lV07lu?=E%MS zbl>aWb7au`(0FZ#^Dzjr5iVHszgU7sG#|46+-7s{Pe(o+2ng0+gBWQ6Lyc%4?ezZP F{troWId}j7 delta 9445 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 diff --git a/simscape_subsystems/micro_hexapod_rigid_simple.slx b/simscape_subsystems/micro_hexapod_rigid_simple.slx index ec6605931beb0db6f96df9cb52524a0b48f002be..c0e1823770a7ce71cb1cd7dc548a152b5265f710 100644 GIT binary patch delta 33625 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�C;{ZafU@E{Z%UDuCMQHhZ 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%0A30E!I@PH2-rQ!fHstimEH$ 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 AB>(^b delta 8210 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 P*g~6pUn5I6{s;X(v*;c% diff --git a/src/computeReferencePose.m b/src/computeReferencePose.m index a6c4177..e040d2a 100644 --- a/src/computeReferencePose.m +++ b/src/computeReferencePose.m @@ -9,13 +9,17 @@ % This Matlab function is accessible [[file:src/computeReferencePose.m][here]]. -function [WTr] = computeReferencePose(Dy, Ry, Rz, Dh) +function [WTr] = computeReferencePose(Dy, Ry, Rz, Dh, Dn) % computeReferencePose - Compute the homogeneous transformation matrix corresponding to the wanted pose of the sample % -% Syntax: [WTr] = computeReferencePose(Dy, Ry, Rz, Dh) +% Syntax: [WTr] = computeReferencePose(Dy, Ry, Rz, Dh, Dn) % % Inputs: -% - Dy, Ry, Rz, Dh - +% - Dy - Reference of the Translation Stage [m] +% - Ry - Reference of the Tilt Stage [rad] +% - Rz - Reference of the Spindle [rad] +% - Dh - Reference of the Micro Hexapod (Pitch, Roll, Yaw angles) [m, m, m, rad, rad, rad] +% - Dn - Reference of the Nano Hexapod [m, m, m, rad, rad, rad] % % Outputs: % - WTr - @@ -57,8 +61,28 @@ function [WTr] = computeReferencePose(Dy, Ry, Rz, Dh) 0 0 1 Dh(3) ; 0 0 0 1 ]; - Rh(1:3, 1:3) = Rhx*Rhy*Rhz; + Rh(1:3, 1:3) = Rhz*Rhy*Rhx; + + %% Nano-Hexapod + Rnx = [1 0 0; + 0 cos(Dn(4)) -sin(Dn(4)); + 0 sin(Dn(4)) cos(Dn(4))]; + + Rny = [ cos(Dn(5)) 0 sin(Dn(5)); + 0 1 0; + -sin(Dn(5)) 0 cos(Dn(5))]; + + Rnz = [cos(Dn(6)) -sin(Dn(6)) 0; + sin(Dn(6)) cos(Dn(6)) 0; + 0 0 1]; + + Rn = [1 0 0 Dn(1) ; + 0 1 0 Dn(2) ; + 0 0 1 Dn(3) ; + 0 0 0 1 ]; + + Rn(1:3, 1:3) = Rnx*Rny*Rnz; %% Total Homogeneous transformation - WTr = Rty*Rry*Rrz*Rh; + WTr = Rty*Rry*Rrz*Rh*Rn; end diff --git a/src/initializeMicroHexapod.m b/src/initializeMicroHexapod.m index eeeb604..96df29c 100644 --- a/src/initializeMicroHexapod.m +++ b/src/initializeMicroHexapod.m @@ -109,7 +109,7 @@ function [micro_hexapod] = initializeMicroHexapod(opts_param) micro_hexapod = initializeParameters(micro_hexapod); %% Setup equilibrium position of each leg - micro_hexapod.L0 = initializeHexapodPosition(micro_hexapod, opts.AP, opts.ARB); + micro_hexapod.L0 = inverseKinematicsHexapod(micro_hexapod, opts.AP, opts.ARB); %% Save save('./mat/stages.mat', 'micro_hexapod', '-append'); @@ -212,26 +212,4 @@ function [micro_hexapod] = initializeMicroHexapod(opts_param) J(:, 1:3) = RM'; J(:, 4:6) = cross(M_pos_base, RM)'; end - - %% - function [L] = initializeHexapodPosition(hexapod, AP, ARB) - % initializeHexapodPosition - Compute the initial position of each leg to have the wanted Hexapod's position - % - % Syntax: initializeHexapodPosition(hexapod, AP, ARB) - % - % Inputs: - % - hexapod - Hexapod object containing the geometry of the hexapod - % - AP - Position vector of point OB expressed in frame {A} in [m] - % - ARB - Rotation Matrix expressed in frame {A} - - % Wanted Length of the hexapod's legs [m] - L = zeros(6, 1); - - for i = 1:length(L) - Bbi = hexapod.pos_top_tranform(i, :)' - 1e-3*[0 ; 0 ; hexapod.TP.thickness+hexapod.Leg.sphere.top+hexapod.SP.thickness.top+hexapod.jacobian]; % [m] - Aai = hexapod.pos_base(i, :)' + 1e-3*[0 ; 0 ; hexapod.BP.thickness+hexapod.Leg.sphere.bottom+hexapod.SP.thickness.bottom-micro_hexapod.h-hexapod.jacobian]; % [m] - - L(i) = sqrt(AP'*AP + Bbi'*Bbi + Aai'*Aai - 2*AP'*Aai + 2*AP'*(ARB*Bbi) - 2*(ARB*Bbi)'*Aai); - end - end end diff --git a/src/initializeReferences.m b/src/initializeReferences.m index 4bfc4d4..3606c4b 100644 --- a/src/initializeReferences.m +++ b/src/initializeReferences.m @@ -17,13 +17,13 @@ function [ref] = initializeReferences(opts_param) 'Dy_amplitude', 0, ... % Amplitude of the displacement [m] 'Dy_period', 1, ... % Period of the displacement [s] 'Ry_type', 'constant', ... % Either "constant" / "triangular" / "sinusoidal" - 'Ry_amplitude', 0, ... % Amplitude [deg] + 'Ry_amplitude', 0, ... % Amplitude [rad] 'Ry_period', 10, ... % Period of the displacement [s] 'Rz_type', 'constant', ... % Either "constant" / "rotating" - 'Rz_amplitude', 0, ... % Initial angle [deg] + 'Rz_amplitude', 0, ... % Initial angle [rad] 'Rz_period', 1, ... % Period of the rotating [s] 'Dh_type', 'constant', ... % For now, only constant is implemented - 'Dh_pos', [0; 0; 0; 0; 0; 0], ... % Initial position [m,m,m,rad,rad,rad] of the top platform + 'Dh_pos', [0; 0; 0; 0; 0; 0], ... % Initial position [m,m,m,rad,rad,rad] of the top platform (Pitch-Roll-Yaw Euler angles) 'Rm_type', 'constant', ... % For now, only constant is implemented 'Rm_pos', [0; pi], ... % Initial position of the two masses 'Dn_type', 'constant', ... % For now, only constant is implemented @@ -64,13 +64,13 @@ function [ref] = initializeReferences(opts_param) switch opts.Ry_type case 'constant' - Ry(:) = pi/180*opts.Ry_amplitude; + Ry(:) = opts.Ry_amplitude; case 'triangular' - Ry(:) = -4*(pi/180*opts.Ry_amplitude) + 4*(pi/180*opts.Ry_amplitude)/opts.Ry_period*t; - Ry(t<0.75*opts.Ry_period) = 2*(pi/180*opts.Ry_amplitude) - 4*(pi/180*opts.Ry_amplitude)/opts.Ry_period*t(t<0.75*opts.Ry_period); - Ry(t<0.25*opts.Ry_period) = 4*(pi/180*opts.Ry_amplitude)/opts.Ry_period*t(t<0.25*opts.Ry_period); + Ry(:) = -4*opts.Ry_amplitude + 4*opts.Ry_amplitude/opts.Ry_period*t; + Ry(t<0.75*opts.Ry_period) = 2*opts.Ry_amplitude - 4*opts.Ry_amplitude/opts.Ry_period*t(t<0.75*opts.Ry_period); + Ry(t<0.25*opts.Ry_period) = 4*opts.Ry_amplitude/opts.Ry_period*t(t<0.25*opts.Ry_period); case 'sinusoidal' - Ry(:) = opts.Ry_amplitude*sin(2*pi/opts.Ry_period*t); + otherwise warning('Ry_type is not set correctly'); end @@ -82,9 +82,9 @@ function [ref] = initializeReferences(opts_param) switch opts.Rz_type case 'constant' - Rz(:) = pi/180*opts.Rz_amplitude; + Rz(:) = opts.Rz_amplitude; case 'rotating' - Rz(:) = pi/180*opts.Rz_amplitude+2*pi/opts.Rz_period*t; + Rz(:) = opts.Rz_amplitude+2*pi/opts.Rz_period*t; otherwise warning('Rz_type is not set correctly'); end @@ -93,16 +93,37 @@ function [ref] = initializeReferences(opts_param) %% Micro-Hexapod t = [0, Ts]; Dh = zeros(length(t), 6); - - opts.Dh_pos(4:6) = pi/180*opts.Dh_pos(4:6); % convert from [deg] to [rad] + Dhl = zeros(length(t), 6); switch opts.Dh_type case 'constant' Dh = [opts.Dh_pos, opts.Dh_pos]; + + load('./mat/stages.mat', 'micro_hexapod'); + + AP = [opts.Dh_pos(1) ; opts.Dh_pos(2) ; opts.Dh_pos(3)]; + + tx = opts.Dh_pos(4); + ty = opts.Dh_pos(5); + tz = opts.Dh_pos(6); + + ARB = [cos(tz) -sin(tz) 0; + sin(tz) cos(tz) 0; + 0 0 1]*... + [ cos(ty) 0 sin(ty); + 0 1 0; + -sin(ty) 0 cos(ty)]*... + [1 0 0; + 0 cos(tx) -sin(tx); + 0 sin(tx) cos(tx)]; + + [Dhl] = inverseKinematicsHexapod(micro_hexapod, AP, ARB); + Dhl = [Dhl, Dhl]; otherwise warning('Dh_type is not set correctly'); end Dh = struct('time', t, 'signals', struct('values', Dh)); + Dhl = struct('time', t, 'signals', struct('values', Dhl)); %% Axis Compensation - Rm t = [0, Ts]; @@ -113,8 +134,6 @@ function [ref] = initializeReferences(opts_param) t = [0, Ts]; Dn = zeros(length(t), 6); - opts.Dn_pos(4:6) = pi/180*opts.Dn_pos(4:6); % convert from [deg] to [rad] - switch opts.Dn_type case 'constant' Dn = [opts.Dn_pos, opts.Dn_pos]; @@ -124,5 +143,5 @@ function [ref] = initializeReferences(opts_param) Dn = struct('time', t, 'signals', struct('values', Dn)); %% Save - save('./mat/nass_references.mat', 'Dy', 'Ry', 'Rz', 'Dh', 'Rm', 'Dn', 'Ts'); + save('./mat/nass_references.mat', 'Dy', 'Ry', 'Rz', 'Dh', 'Dhl', 'Rm', 'Dn', 'Ts'); end