Compute nano hexapod geometry

This commit is contained in:
Thomas Dehaeze 2025-04-01 15:09:50 +02:00
parent e19528610c
commit 8b1bafb88e
18 changed files with 180 additions and 190 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -94,7 +94,7 @@
Prefix is =detail_kinematics= Prefix is =detail_kinematics=
Talk about the optimization of the nano-hexapod: geometry, stiffness, etc... Talk about the optimization of the nano-hexapod: geometry, stiffness, etc...
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org::*Optimal Nano-Hexapod Design][Optimal Nano-Hexapod Design]] - [X] [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org::*Optimal Nano-Hexapod Design][Optimal Nano-Hexapod Design]]
- [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org - [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org
- [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/flexible-stewart-platform.org - [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/flexible-stewart-platform.org
Not so interesting Not so interesting
@ -104,18 +104,17 @@ Talk about the optimization of the nano-hexapod: geometry, stiffness, etc...
For instance we want to precisely position =bi= with respect to the top platform For instance we want to precisely position =bi= with respect to the top platform
Optimal geometry? Optimal geometry?
- [ ] *Cubic architecture*? - [X] *Cubic architecture*?
Cubic configuration file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org Cubic configuration file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org
https://tdehaeze.github.io/stewart-simscape/cubic-configuration.html https://tdehaeze.github.io/stewart-simscape/cubic-configuration.html
- [ ] Kinematics - [X] Kinematics
- [ ] Trade-off for the strut orientation - [X] Trade-off for the strut orientation
- [ ] Requirements in terms of positioning of the joints - [X] Requirements in terms of positioning of the joints
- [ ] Not a lot of differences, no specificity of cubic architecture, no specific positioning - [X] Not a lot of differences, no specificity of cubic architecture, no specific positioning
- [X] https://research.tdehaeze.xyz/stewart-simscape/docs/bibliography.html
- [ ] https://research.tdehaeze.xyz/stewart-simscape/docs/bibliography.html - [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org::*Estimated required actuator stroke from specified platform mobility][Estimated required actuator stroke from specified platform mobility]]
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org::*Estimated required actuator stroke from specified platform mobility][Estimated required actuator stroke from specified platform mobility]] - [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org::*Estimation of the Joint required Stroke][Estimation of the Joint required Stroke]]
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org::*Estimation of the Joint required Stroke][Estimation of the Joint required Stroke]]
** Not used ** Not used
#+begin_src latex :file detail_kinematics_cubic_schematic.pdf #+begin_src latex :file detail_kinematics_cubic_schematic.pdf
@ -200,7 +199,8 @@ Optimal geometry?
#+RESULTS: #+RESULTS:
[[file:figs/detail_kinematics_cubic_schematic.png]] [[file:figs/detail_kinematics_cubic_schematic.png]]
** TODO [#A] Copy relevant parts of reports ** DONE [#A] Copy relevant parts of reports
CLOSED: [2025-04-01 Tue 15:09]
** DONE [#A] Structure the review of Stewart platforms ** DONE [#A] Structure the review of Stewart platforms
CLOSED: [2025-03-30 Sun 11:38] CLOSED: [2025-03-30 Sun 11:38]
@ -318,8 +318,8 @@ inv(stewart.kinematics.J)*[42.8; 40.8; 29.3; 0; 0; 0]
stewart.kinematics.J*[-6.4; -0.89; 24.6; 136.3; -348.7; -89.2] stewart.kinematics.J*[-6.4; -0.89; 24.6; 136.3; -348.7; -89.2]
#+end_src #+end_src
** TODO [#A] Compute all the figures ** DONE [#A] Compute all the figures
SCHEDULED: <2025-04-01 Tue> CLOSED: [2025-04-01 Tue 15:09] SCHEDULED: <2025-04-01 Tue>
** DONE [#B] Verify cubic architecture in literature ** DONE [#B] Verify cubic architecture in literature
CLOSED: [2025-04-01 Tue 11:31] CLOSED: [2025-04-01 Tue 11:31]
@ -1161,7 +1161,7 @@ displayArchitecture(stewart_vert, 'labels', false, 'frames', false, 'F_color', c
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/detail_kinematics_stewart_mobility_vert_struts.pdf', 'width', 'half', 'height', 'normal'); exportFig('figs/detail_kinematics_stewart_mobility_vert_struts.pdf', 'width', 'third', 'height', 'tall');
#+end_src #+end_src
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
@ -1180,7 +1180,7 @@ displayArchitecture(stewart_hori, 'labels', false, 'frames', false, 'F_color', c
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/detail_kinematics_stewart_mobility_hori_struts.pdf', 'width', 'half', 'height', 'normal'); exportFig('figs/detail_kinematics_stewart_mobility_hori_struts.pdf', 'width', 'third', 'height', 'tall');
#+end_src #+end_src
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
@ -1243,31 +1243,29 @@ view(105, 15);
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/detail_kinematics_mobility_translation_strut_orientation.pdf', 'width', 'full', 'height', 'tall', 'simplify', true); exportFig('figs/detail_kinematics_mobility_translation_strut_orientation.pdf', 'width', 'full', 'height', 'full', 'simplify', true);
#+end_src #+end_src
#+name: fig:detail_kinematics_stewart_mobility_examples #+name: fig:detail_kinematics_stewart_mobility_examples
#+caption: Effect of strut orientation on the obtained mobility in translation. Two Stewart platform geometry are considered: struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_vert_struts}) and struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_hori_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_translation_strut_orientation}). #+caption: Effect of strut orientation on the obtained mobility in translation. Two Stewart platform geometry are considered: struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_vert_struts}) and struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_hori_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_translation_strut_orientation}).
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_vert_struts}Struts oriented vertically} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_vert_struts}Vertical struts}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.25\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_stewart_mobility_vert_struts.png]] [[file:figs/detail_kinematics_stewart_mobility_vert_struts.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_hori_struts}Struts oriented horizontally} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_hori_struts}Horizontal struts}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.25\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_stewart_mobility_hori_struts.png]] [[file:figs/detail_kinematics_stewart_mobility_hori_struts.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_mobility_translation_strut_orientation}Translational mobility}
\bigskip #+attr_latex: :options {0.46\textwidth}
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_mobility_translation_strut_orientation}Translational mobility of the two configurations}
#+attr_latex: :options {0.95\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_mobility_translation_strut_orientation.png]] [[file:figs/detail_kinematics_mobility_translation_strut_orientation.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
@ -1308,7 +1306,7 @@ displayArchitecture(stewart_close, 'labels', false, 'frames', false, 'F_color',
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/detail_kinematics_stewart_mobility_close_struts.pdf', 'width', 'full', 'height', 'short'); exportFig('figs/detail_kinematics_stewart_mobility_close_struts.pdf', 'width', 'third', 'height', 'short');
#+end_src #+end_src
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
@ -1328,7 +1326,7 @@ displayArchitecture(stewart_space, 'labels', false, 'frames', false, 'F_color',
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/detail_kinematics_stewart_mobility_space_struts.pdf', 'width', 'full', 'height', 'short'); exportFig('figs/detail_kinematics_stewart_mobility_space_struts.pdf', 'width', 'third', 'height', 'short');
#+end_src #+end_src
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
@ -1393,24 +1391,22 @@ exportFig('figs/detail_kinematics_mobility_angle_strut_distance.pdf', 'width', '
#+caption: Effect of strut position on the obtained mobility in rotation. Two Stewart platform geometry are considered: struts close to each other (\subref{fig:detail_kinematics_stewart_mobility_close_struts}) and struts further appart (\subref{fig:detail_kinematics_stewart_mobility_space_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_angle_strut_distance}). #+caption: Effect of strut position on the obtained mobility in rotation. Two Stewart platform geometry are considered: struts close to each other (\subref{fig:detail_kinematics_stewart_mobility_close_struts}) and struts further appart (\subref{fig:detail_kinematics_stewart_mobility_space_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_angle_strut_distance}).
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_close_struts}Struts oriented closeically} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_close_struts}Struts close together}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.25\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_stewart_mobility_close_struts.png]] [[file:figs/detail_kinematics_stewart_mobility_close_struts.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_space_struts}Struts oriented spacezontally} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_stewart_mobility_space_struts}Struts far apart}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.25\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_stewart_mobility_space_struts.png]] [[file:figs/detail_kinematics_stewart_mobility_space_struts.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_mobility_angle_strut_distance}Rotational mobility}
\bigskip #+attr_latex: :options {0.46\textwidth}
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_mobility_angle_strut_distance}Translational mobility of the two configurations}
#+attr_latex: :options {0.95\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_mobility_angle_strut_distance.png]] [[file:figs/detail_kinematics_mobility_angle_strut_distance.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
@ -1633,7 +1629,7 @@ exportFig('figs/detail_kinematics_cubic_architecture_example_small.pdf', 'width'
#+end_src #+end_src
#+name: fig:detail_kinematics_cubic_architecture_examples #+name: fig:detail_kinematics_cubic_architecture_examples
#+caption: Caption with reference to sub figure (\subref{fig:detail_kinematics_cubic_architecture_example}) (\subref{fig:detail_kinematics_cubic_architecture_example_small}) #+caption: Typical Stewart platform cubic architectures. (\subref{fig:detail_kinematics_cubic_architecture_example}) (\subref{fig:detail_kinematics_cubic_architecture_example_small})
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_architecture_example}sub caption a} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_architecture_example}sub caption a}
@ -1933,19 +1929,19 @@ Coordinates of the cube's vertices relevant for the top joints, expressed with r
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_schematic_full}Full cube} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_schematic_full}Full cube}
#+attr_latex: :options {0.33\textwidth} #+attr_latex: :options {0.33\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :width 0.9\linewidth #+attr_latex: :scale 0.6
[[file:figs/detail_kinematics_cubic_schematic_full.png]] [[file:figs/detail_kinematics_cubic_schematic_full.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_schematic}Cube's portion} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_schematic}Cube's portion}
#+attr_latex: :options {0.33\textwidth} #+attr_latex: :options {0.33\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :width 0.9\linewidth #+attr_latex: :scale 0.6
[[file:figs/detail_kinematics_cubic_schematic.png]] [[file:figs/detail_kinematics_cubic_schematic.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_schematic_off_centered}Off Centered} #+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_cubic_schematic_off_centered}Off Centered}
#+attr_latex: :options {0.33\textwidth} #+attr_latex: :options {0.33\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :width 0.9\linewidth #+attr_latex: :scale 0.6
[[file:figs/detail_kinematics_cubic_schematic_off_centered.png]] [[file:figs/detail_kinematics_cubic_schematic_off_centered.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
@ -3575,13 +3571,21 @@ Requirements:
- The nano-hexapod should fit within a cylinder with radius of $120\,mm$ and with a height of $95\,mm$. - The nano-hexapod should fit within a cylinder with radius of $120\,mm$ and with a height of $95\,mm$.
- In terms of mobility: uniform mobility in XYZ directions (100um) - In terms of mobility: uniform mobility in XYZ directions (100um)
- In terms of stiffness: ?? - In terms of stiffness: ??
Having the resonance frequencies well above the maximum rotational velocity of $2\pi\,\text{rad/s}$ to limit the gyroscopic effects.
Having the resonance below the problematic modes of the micro-station to decouple from the micro-station complex dynamics.
- In terms of dynamics: - In terms of dynamics:
- be able to apply IFF in a decentralized way with good robustness and performances (good damping of modes) - be able to apply IFF in a decentralized way with good robustness and performances (good damping of modes)
- good decoupling for the HAC - good decoupling for the HAC
For the NASS, the payloads can have various inertia, with masses ranging from 1 to 50kg. The main difficulty for the design optimization of the nano-hexapod, is that the payloads will have various inertia, with masses ranging from 1 to 50kg.
It is therefore not possible to have one geometry that gives good dynamical properties for all the payloads. It is therefore not possible to have one geometry that gives good dynamical properties for all the payloads.
It could have been an option to have a cubic architecture as proposed in section ref:ssec:detail_kinematics_cubic_design, but having the cube's center 150mm above the top platform would have lead to platforms well exceeding the maximum available size.
In that case, each payload would have to be calibrated in inertia before placing on top of the nano-hexapod, which would require a lot of work from the future users.
Considering the fact that it would not be possible to have the center of mass at the cube's center, the cubic architecture is not of great value here.
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>> <<matlab-dir>>
@ -3614,6 +3618,11 @@ Make reasonable choice (close to the final choice).
Say that it is good enough to make all the calculations. Say that it is good enough to make all the calculations.
The geometry will be slightly refined during the detailed mechanical design for several reason: easy of mount, manufacturability, ... The geometry will be slightly refined during the detailed mechanical design for several reason: easy of mount, manufacturability, ...
Obtained geometry is shown in Figure ref:fig:detail_kinematics_nano_hexapod.
Height between the top plates is 95mm.
Joints are offset by 15mm from the plate surfaces, and are positioned along a circle with radius 120mm for the fixed joints and 110mm for the mobile joints.
The positioning angles (Figure ref:fig:detail_kinematics_nano_hexapod_top) are $[255, 285, 15, 45, 135, 165]$ degrees for the top joints and $[220, 320, 340, 80, 100, 200]$ degrees for the bottom joints.
#+begin_src matlab #+begin_src matlab
%% Obtained Nano Hexapod Design %% Obtained Nano Hexapod Design
nano_hexapod = initializeStewartPlatform(); nano_hexapod = initializeStewartPlatform();
@ -3631,12 +3640,63 @@ nano_hexapod = generateGeneralConfiguration(nano_hexapod, ...
nano_hexapod = computeJointsPose(nano_hexapod); nano_hexapod = computeJointsPose(nano_hexapod);
nano_hexapod = initializeStrutDynamics(nano_hexapod, 'k', 1); nano_hexapod = initializeStrutDynamics(nano_hexapod, 'k', 1);
nano_hexapod = computeJacobian(nano_hexapod); nano_hexapod = computeJacobian(nano_hexapod);
nano_hexapod = initializeCylindricalPlatforms(nano_hexapod, 'Fpr', 130e-3, 'Mpr', 120e-3); nano_hexapod = initializeCylindricalPlatforms(nano_hexapod, 'Fpr', 125e-3, 'Mpr', 115e-3);
displayArchitecture(nano_hexapod, 'labels', true);
#+end_src #+end_src
- [ ] Show the obtained geometry and the main parameters. #+begin_src matlab :exports none :results none
%% Obtained architecture for the Nano Hexapod
figure;
displayArchitecture(nano_hexapod, 'labels', true, 'frames', false);
% Bottom circle
h = 15e-3;
r = 120e-3;
theta = linspace(0, 2*pi, 100);
x = r * cos(theta);
y = r * sin(theta);
z = h * ones(size(theta)); % All points at same height
plot3(x, y, z, '--', 'color', [colors(1,:)], 'LineWidth', 0.5);
for i = 1:6
plot3([0, nano_hexapod.platform_F.Fa(1,i)], [0, nano_hexapod.platform_F.Fa(2,i)], [h,h], '--', 'color', [colors(1,:)], 'LineWidth', 0.5);
end
% Top circle
h = 95e-3 - 15e-3;
r = 110e-3;
theta = linspace(0, 2*pi, 100);
x = r * cos(theta);
y = r * sin(theta);
z = h * ones(size(theta)); % All points at same height
plot3(x, y, z, '--', 'color', [colors(2,:)], 'LineWidth', 0.5);
for i = 1:6
plot3([0, nano_hexapod.platform_M.Mb(1,i)], [0, nano_hexapod.platform_M.Mb(2,i)], [h,h], '--', 'color', [colors(2,:)], 'LineWidth', 0.5);
end
#+end_src
#+begin_src matlab :tangle no :exports results :results file none
exportFig('figs/detail_kinematics_nano_hexapod_iso.pdf', 'width', 'normal', 'height', 'tall');
#+end_src
#+begin_src matlab :tangle no :exports results :results file none
view([0,90])
exportFig('figs/detail_kinematics_nano_hexapod_top.pdf', 'width', 600, 'height', 'tall');
#+end_src
#+name: fig:detail_kinematics_nano_hexapod
#+caption: Obtained architecture for the Nano Hexapod
#+attr_latex: :options [htbp]
#+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_nano_hexapod_iso}Isometric view}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_nano_hexapod_iso.png]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_nano_hexapod_top}Top view}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_nano_hexapod_top.png]]
#+end_subfigure
#+end_figure
This geometry will be used for: This geometry will be used for:
- estimate required actuator stroke - estimate required actuator stroke

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2025-04-01 Tue 10:48 % Created 2025-04-01 Tue 14:18
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -40,7 +40,6 @@ Geometry, Actuators, Sensors, Joints
\end{itemize} \end{itemize}
\chapter{Review of Stewart platforms} \chapter{Review of Stewart platforms}
\label{sec:orga98587b}
\label{sec:detail_kinematics_stewart_review} \label{sec:detail_kinematics_stewart_review}
\begin{itemize} \begin{itemize}
\item As was explained in the conceptual phase, Stewart platform have the following key elements: \item As was explained in the conceptual phase, Stewart platform have the following key elements:
@ -178,7 +177,6 @@ Conclusion:
\end{itemize} \end{itemize}
\chapter{Effect of geometry on Stewart platform properties} \chapter{Effect of geometry on Stewart platform properties}
\label{sec:orgf04ec9c}
\label{sec:detail_kinematics_geometry} \label{sec:detail_kinematics_geometry}
\begin{itemize} \begin{itemize}
\item As was shown during the conceptual phase, the geometry of the Stewart platform influences: \item As was shown during the conceptual phase, the geometry of the Stewart platform influences:
@ -193,8 +191,7 @@ Conclusion:
One important tool to study this is the Jacobian matrix which depends on the \(\bm{b}_i\) (join position w.r.t top platform) and \(\hat{\bm{s}}_i\) (orientation of struts). One important tool to study this is the Jacobian matrix which depends on the \(\bm{b}_i\) (join position w.r.t top platform) and \(\hat{\bm{s}}_i\) (orientation of struts).
The choice of frames (\(\{A\}\) and \(\{B\}\)), independently of the physical Stewart platform geometry, impacts the obtained kinematics and stiffness matrix, as it is defined for forces and motion evaluated at the chosen frame. The choice of frames (\(\{A\}\) and \(\{B\}\)), independently of the physical Stewart platform geometry, impacts the obtained kinematics and stiffness matrix, as it is defined for forces and motion evaluated at the chosen frame.
\section{Platform Mobility} \section{Platform Mobility / Workspace}
\label{sec:org62e6343}
The mobility of the Stewart platform (or any manipulator) is here defined as the range of motion that it can perform. The mobility of the Stewart platform (or any manipulator) is here defined as the range of motion that it can perform.
It corresponds to the set of possible pose (i.e. combined translation and rotation) of frame \{B\} with respect to frame \{A\}. It corresponds to the set of possible pose (i.e. combined translation and rotation) of frame \{B\} with respect to frame \{A\}.
It should therefore be represented in a six dimensional space. It should therefore be represented in a six dimensional space.
@ -228,8 +225,13 @@ As will be shown in Section \ref{sec:detail_kinematics_cubic}, there are some ge
As the mobility is of dimension six, it is difficult to represent. As the mobility is of dimension six, it is difficult to represent.
Depending on the applications, only the translation mobility or the rotation mobility may be represented. Depending on the applications, only the translation mobility or the rotation mobility may be represented.
\begin{quote}
Although there is no human readable way to represent the complete workspace, some projections of the full workspace can be drawn.
\end{quote}
Difficulty of studying workspace of parallel manipulators.
\paragraph{Mobility in translation} \paragraph{Mobility in translation}
\label{sec:orga53467d}
Here, for simplicity, only translations are first considered: Here, for simplicity, only translations are first considered:
\begin{itemize} \begin{itemize}
@ -245,6 +247,7 @@ The sphere with radius \(d\) is shown in Figure \ref{fig:detail_kinematics_mobil
Note that no platform angular motion is here considered. When combining angular motion, the linear stroke decreases. Note that no platform angular motion is here considered. When combining angular motion, the linear stroke decreases.
\item When considering some symmetry in the system (as typically the case), the shape becomes a Trigonal trapezohedron whose height and width depends on the orientation of the struts. \item When considering some symmetry in the system (as typically the case), the shape becomes a Trigonal trapezohedron whose height and width depends on the orientation of the struts.
We only get 6 faces as usually the Stewart platform consists of 3 sets of 2 parallels struts. We only get 6 faces as usually the Stewart platform consists of 3 sets of 2 parallels struts.
\item In reality, portion of spheres, but well approximated by flat surfaces for short stroke hexapods.
\end{itemize} \end{itemize}
\begin{figure}[htbp] \begin{figure}[htbp]
@ -271,31 +274,28 @@ To better understand how the geometry of the Stewart platform impacts the transl
\end{itemize} \end{itemize}
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.25\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_stewart_mobility_vert_struts.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_stewart_mobility_vert_struts.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_stewart_mobility_vert_struts}Struts oriented vertically} \subcaption{\label{fig:detail_kinematics_stewart_mobility_vert_struts}Vertical struts}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.25\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_stewart_mobility_hori_struts.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_stewart_mobility_hori_struts.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_stewart_mobility_hori_struts}Struts oriented horizontally} \subcaption{\label{fig:detail_kinematics_stewart_mobility_hori_struts}Horizontal struts}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.46\textwidth}
\bigskip
\begin{subfigure}{0.95\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_mobility_translation_strut_orientation.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_mobility_translation_strut_orientation.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_mobility_translation_strut_orientation}Translational mobility of the two configurations} \subcaption{\label{fig:detail_kinematics_mobility_translation_strut_orientation}Translational mobility}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_kinematics_stewart_mobility_examples}Effect of strut orientation on the obtained mobility in translation. Two Stewart platform geometry are considered: struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_vert_struts}) and struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_hori_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_translation_strut_orientation}).} \caption{\label{fig:detail_kinematics_stewart_mobility_examples}Effect of strut orientation on the obtained mobility in translation. Two Stewart platform geometry are considered: struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_vert_struts}) and struts oriented vertically (\subref{fig:detail_kinematics_stewart_mobility_hori_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_translation_strut_orientation}).}
\end{figure} \end{figure}
\paragraph{Mobility in rotation} \paragraph{Mobility in rotation}
\label{sec:org25f8d00}
As shown by equation \eqref{eq:detail_kinematics_jacobian}, the rotational mobility depends both on the orientation of the struts and on the location of the top joints. As shown by equation \eqref{eq:detail_kinematics_jacobian}, the rotational mobility depends both on the orientation of the struts and on the location of the top joints.
@ -318,31 +318,28 @@ Somehow, the level arm is increased, so any strut vibration gets amplified.
Therefore, the designed Stewart platform should just have the necessary mobility. Therefore, the designed Stewart platform should just have the necessary mobility.
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.25\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_stewart_mobility_close_struts.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_stewart_mobility_close_struts.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_stewart_mobility_close_struts}Struts oriented closeically} \subcaption{\label{fig:detail_kinematics_stewart_mobility_close_struts}Struts close together}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.25\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_stewart_mobility_space_struts.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_stewart_mobility_space_struts.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_stewart_mobility_space_struts}Struts oriented spacezontally} \subcaption{\label{fig:detail_kinematics_stewart_mobility_space_struts}Struts far apart}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.46\textwidth}
\bigskip
\begin{subfigure}{0.95\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_kinematics_mobility_angle_strut_distance.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_kinematics_mobility_angle_strut_distance.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_mobility_angle_strut_distance}Translational mobility of the two configurations} \subcaption{\label{fig:detail_kinematics_mobility_angle_strut_distance}Rotational mobility}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_kinematics_stewart_mobility_examples}Effect of strut position on the obtained mobility in rotation. Two Stewart platform geometry are considered: struts close to each other (\subref{fig:detail_kinematics_stewart_mobility_close_struts}) and struts further appart (\subref{fig:detail_kinematics_stewart_mobility_space_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_angle_strut_distance}).} \caption{\label{fig:detail_kinematics_stewart_mobility_examples}Effect of strut position on the obtained mobility in rotation. Two Stewart platform geometry are considered: struts close to each other (\subref{fig:detail_kinematics_stewart_mobility_close_struts}) and struts further appart (\subref{fig:detail_kinematics_stewart_mobility_space_struts}). Obtained mobility for both geometry are shown in (\subref{fig:detail_kinematics_mobility_angle_strut_distance}).}
\end{figure} \end{figure}
\paragraph{Combined translations and rotations} \paragraph{Combined translations and rotations}
\label{sec:orge05b0c2}
It is possible to consider combined translations and rotations. It is possible to consider combined translations and rotations.
Displaying such mobility is more complex. Displaying such mobility is more complex.
@ -352,7 +349,6 @@ For a fixed geometry and a wanted mobility (combined translations and rotations)
It will be done in Section \ref{sec:detail_kinematics_nano_hexapod} to estimate the required actuator stroke for the nano-hexapod geometry. It will be done in Section \ref{sec:detail_kinematics_nano_hexapod} to estimate the required actuator stroke for the nano-hexapod geometry.
\section{Stiffness} \section{Stiffness}
\label{sec:orgdbcd7f4}
Stiffness matrix: Stiffness matrix:
\begin{itemize} \begin{itemize}
\item defines how the nano-hexapod deforms (frame \(\{B\}\) with respect to frame \(\{A\}\)) due to static forces/torques applied on \(\{B\}\). \item defines how the nano-hexapod deforms (frame \(\{B\}\) with respect to frame \(\{A\}\)) due to static forces/torques applied on \(\{B\}\).
@ -379,7 +375,6 @@ Obtained stiffness matrix linearly depends on the strut stiffness \(k\) \eqref{e
\end{equation} \end{equation}
\paragraph{Translation Stiffness} \paragraph{Translation Stiffness}
\label{sec:org4d7dc00}
XYZ stiffnesses: XYZ stiffnesses:
\begin{itemize} \begin{itemize}
@ -401,7 +396,6 @@ If struts more vertical (Figure \ref{fig:detail_kinematics_stewart_mobility_vert
Opposite conclusions if struts are not horizontal (Figure \ref{fig:detail_kinematics_stewart_mobility_hori_struts}). Opposite conclusions if struts are not horizontal (Figure \ref{fig:detail_kinematics_stewart_mobility_hori_struts}).
\paragraph{Rotational Stiffness} \paragraph{Rotational Stiffness}
\label{sec:orga650239}
Rotational stiffnesses: Rotational stiffnesses:
\begin{itemize} \begin{itemize}
@ -417,7 +411,6 @@ Struts further apart:
\end{itemize} \end{itemize}
\paragraph{Diagonal Stiffness Matrix} \paragraph{Diagonal Stiffness Matrix}
\label{sec:org78eda0e}
Having the stiffness matrix \(\bm{K}\) diagonal can be beneficial for control purposes as it would make the plant in the cartesian frame decoupled at low frequency. Having the stiffness matrix \(\bm{K}\) diagonal can be beneficial for control purposes as it would make the plant in the cartesian frame decoupled at low frequency.
@ -428,9 +421,7 @@ For specific configurations, it is possible to have a diagonal K matrix.
This will be discussed in Section \ref{ssec:detail_kinematics_cubic_static}. This will be discussed in Section \ref{ssec:detail_kinematics_cubic_static}.
\section{Dynamical properties} \section{Dynamical properties}
\label{sec:org12cf271}
\paragraph{In the Cartesian Frame} \paragraph{In the Cartesian Frame}
\label{sec:orgaa53b5e}
Dynamical equations (both in the cartesian frame and in the frame of the struts) for the Stewart platform were derived during the conceptual phase with simplifying assumptions (massless struts and perfect joints). Dynamical equations (both in the cartesian frame and in the frame of the struts) for the Stewart platform were derived during the conceptual phase with simplifying assumptions (massless struts and perfect joints).
The dynamics depends both on the geometry (Jacobian matrix) but also on the payload being placed on top of the platform. The dynamics depends both on the geometry (Jacobian matrix) but also on the payload being placed on top of the platform.
@ -443,7 +434,6 @@ These are studied in Section \ref{ssec:detail_kinematics_cubic_dynamic}.
\end{equation} \end{equation}
\paragraph{In the frame of the Struts} \paragraph{In the frame of the Struts}
\label{sec:org5d4c9d1}
In the frame of the struts, the equations of motion are well decoupled at low frequency. In the frame of the struts, the equations of motion are well decoupled at low frequency.
This is why most of Stewart platforms are controlled in the frame of the struts: bellow the resonance frequency, the system is decoupled and SISO control may be applied for each strut. This is why most of Stewart platforms are controlled in the frame of the struts: bellow the resonance frequency, the system is decoupled and SISO control may be applied for each strut.
@ -457,13 +447,11 @@ Can the geometry be optimized to have lower coupling between the struts?
This will be studied with the cubic architecture. This will be studied with the cubic architecture.
\paragraph{Dynamic Isotropy} \paragraph{Dynamic Isotropy}
\label{sec:org25ba974}
\cite{afzali-far16_vibrat_dynam_isotr_hexap_analy_studies}: \cite{afzali-far16_vibrat_dynam_isotr_hexap_analy_studies}:
``\textbf{Dynamic isotropy}, leading to equal eigenfrequencies, is a powerful optimization measure.'' ``\textbf{Dynamic isotropy}, leading to equal eigenfrequencies, is a powerful optimization measure.''
\section*{Conclusion} \section*{Conclusion}
\label{sec:orgf4da83b}
The effects of two changes in the manipulator's geometry, namely the position and orientation of the legs, are summarized in Table \ref{tab:detail_kinematics_geometry}. The effects of two changes in the manipulator's geometry, namely the position and orientation of the legs, are summarized in Table \ref{tab:detail_kinematics_geometry}.
These results could have been easily deduced based on some mechanical principles, but thanks to the kinematic analysis, they can be quantified. These results could have been easily deduced based on some mechanical principles, but thanks to the kinematic analysis, they can be quantified.
@ -495,7 +483,6 @@ Horizontal rotation stroke & \(\searrow\) & \(\searrow\)\\
\end{table} \end{table}
\chapter{The Cubic Architecture} \chapter{The Cubic Architecture}
\label{sec:orga162ee4}
\label{sec:detail_kinematics_cubic} \label{sec:detail_kinematics_cubic}
The Cubic configuration for the Stewart platform was first proposed in \cite{geng94_six_degree_of_freed_activ}. The Cubic configuration for the Stewart platform was first proposed in \cite{geng94_six_degree_of_freed_activ}.
@ -526,7 +513,7 @@ Similar to the Stewart platform of Figure \ref{fig:detail_kinematics_ulb_pz}.
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_cubic_architecture_example_small}sub caption b} \subcaption{\label{fig:detail_kinematics_cubic_architecture_example_small}sub caption b}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_kinematics_cubic_architecture_examples}Caption with reference to sub figure (\subref{fig:detail_kinematics_cubic_architecture_example}) (\subref{fig:detail_kinematics_cubic_architecture_example_small})} \caption{\label{fig:detail_kinematics_cubic_architecture_examples}Typical Stewart platform cubic architectures. (\subref{fig:detail_kinematics_cubic_architecture_example}) (\subref{fig:detail_kinematics_cubic_architecture_example_small})}
\end{figure} \end{figure}
@ -556,10 +543,8 @@ In this section:
\item It is determined if the cubic architecture is interested for the nano-hexapod \item It is determined if the cubic architecture is interested for the nano-hexapod
\end{itemize} \end{itemize}
\section{Static Properties} \section{Static Properties}
\label{sec:orgf15f5ef}
\label{ssec:detail_kinematics_cubic_static} \label{ssec:detail_kinematics_cubic_static}
\paragraph{Stiffness matrix for the Cubic architecture} \paragraph{Stiffness matrix for the Cubic architecture}
\label{sec:org6999200}
Consider the cubic architecture shown in Figure \ref{fig:detail_kinematics_cubic_schematic_full}. Consider the cubic architecture shown in Figure \ref{fig:detail_kinematics_cubic_schematic_full}.
The unit vectors corresponding to the edges of the cube are described by \eqref{eq:detail_kinematics_cubic_s}. The unit vectors corresponding to the edges of the cube are described by \eqref{eq:detail_kinematics_cubic_s}.
@ -584,19 +569,19 @@ Coordinates of the cube's vertices relevant for the top joints, expressed with r
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.33\textwidth} \begin{subfigure}{0.33\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.9\linewidth]{figs/detail_kinematics_cubic_schematic_full.png} \includegraphics[scale=1,scale=0.6]{figs/detail_kinematics_cubic_schematic_full.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_cubic_schematic_full}Full cube} \subcaption{\label{fig:detail_kinematics_cubic_schematic_full}Full cube}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.33\textwidth} \begin{subfigure}{0.33\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.9\linewidth]{figs/detail_kinematics_cubic_schematic.png} \includegraphics[scale=1,scale=0.6]{figs/detail_kinematics_cubic_schematic.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_cubic_schematic}Cube's portion} \subcaption{\label{fig:detail_kinematics_cubic_schematic}Cube's portion}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.33\textwidth} \begin{subfigure}{0.33\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.9\linewidth]{figs/detail_kinematics_cubic_schematic_off_centered.png} \includegraphics[scale=1,scale=0.6]{figs/detail_kinematics_cubic_schematic_off_centered.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_kinematics_cubic_schematic_off_centered}Off Centered} \subcaption{\label{fig:detail_kinematics_cubic_schematic_off_centered}Off Centered}
\end{subfigure} \end{subfigure}
@ -633,7 +618,6 @@ The Stiffness matrix is diagonal for forces and torques applied on the top platf
\end{itemize} \end{itemize}
\paragraph{Effect of having frame \(\{B\}\) off-centered} \paragraph{Effect of having frame \(\{B\}\) off-centered}
\label{sec:org6f5ebda}
However, as soon as the location of the A and B frames are shifted from the cube's center, off diagonal elements in the stiffness matrix appear. However, as soon as the location of the A and B frames are shifted from the cube's center, off diagonal elements in the stiffness matrix appear.
@ -662,7 +646,6 @@ Note that the cube's center needs not to be at the ``center'' of the Stewart pla
This can lead to interesting architectures shown in Section \ref{ssec:detail_kinematics_cubic_design}. This can lead to interesting architectures shown in Section \ref{ssec:detail_kinematics_cubic_design}.
\paragraph{Uniform Mobility} \paragraph{Uniform Mobility}
\label{sec:orgc9ab766}
Uniform mobility in X,Y,Z directions (Figure \ref{fig:detail_kinematics_cubic_mobility_translations}) Uniform mobility in X,Y,Z directions (Figure \ref{fig:detail_kinematics_cubic_mobility_translations})
\begin{itemize} \begin{itemize}
@ -700,7 +683,6 @@ Also show mobility in Rx,Ry,Rz (Figure \ref{fig:detail_kinematics_cubic_mobility
\end{figure} \end{figure}
\section{Dynamical Decoupling} \section{Dynamical Decoupling}
\label{sec:orgb6fc32b}
\label{ssec:detail_kinematics_cubic_dynamic} \label{ssec:detail_kinematics_cubic_dynamic}
\begin{itemize} \begin{itemize}
\item[{$\square$}] \cite{mcinroy00_desig_contr_flexur_joint_hexap} \item[{$\square$}] \cite{mcinroy00_desig_contr_flexur_joint_hexap}
@ -719,7 +701,6 @@ If relative motion sensor are located in each strut (\(\bm{\mathcal{L}}\) is mea
We want to see if the Stewart platform has some special properties for control in the cartesian frame. We want to see if the Stewart platform has some special properties for control in the cartesian frame.
\paragraph{Low frequency and High frequency coupling} \paragraph{Low frequency and High frequency coupling}
\label{sec:orge8c133d}
As was derived during the conceptual design phase, the dynamics from \(\bm{\mathcal{F}}\) to \(\bm{\mathcal{X}}\) is described by \eqref{eq:detail_kinematics_transfer_function_cart} As was derived during the conceptual design phase, the dynamics from \(\bm{\mathcal{F}}\) to \(\bm{\mathcal{X}}\) is described by \eqref{eq:detail_kinematics_transfer_function_cart}
@ -779,7 +760,6 @@ To verify that,
\end{figure} \end{figure}
\paragraph{Payload's CoM at the cube's center} \paragraph{Payload's CoM at the cube's center}
\label{sec:orgb627cee}
It is therefore natural to try to have the cube's center and the center of mass of the moving part coincide at the same location. It is therefore natural to try to have the cube's center and the center of mass of the moving part coincide at the same location.
@ -812,7 +792,6 @@ Indeed, if a similar design than the one shown in Figure \ref{fig:detail_kinemat
\end{figure} \end{figure}
\paragraph{Conclusion} \paragraph{Conclusion}
\label{sec:org398201c}
\begin{itemize} \begin{itemize}
\item Some work to still be decoupled when considering flexible joint stiffness \item Some work to still be decoupled when considering flexible joint stiffness
@ -832,7 +811,7 @@ Some conclusions can be drawn from the above analysis:
\end{itemize} \end{itemize}
\section{Decentralized Control} \section{Decentralized Control}
\label{sec:orgf7427df} \label{ssec:detail_kinematics_decentralized_control}
From \cite{preumont07_six_axis_singl_stage_activ}, the cubic configuration ``\emph{minimizes the cross-coupling amongst actuators and sensors of different legs (being orthogonal to each other)}''. From \cite{preumont07_six_axis_singl_stage_activ}, the cubic configuration ``\emph{minimizes the cross-coupling amongst actuators and sensors of different legs (being orthogonal to each other)}''.
This would facilitate the use of decentralized control. This would facilitate the use of decentralized control.
@ -861,9 +840,7 @@ The struts are oriented more vertically to be far away from the cubic architectu
\includegraphics[scale=1,width=0.6\linewidth]{figs/detail_kinematics_non_cubic_payload.png} \includegraphics[scale=1,width=0.6\linewidth]{figs/detail_kinematics_non_cubic_payload.png}
\caption{\label{fig:detail_kinematics_non_cubic_payload}Stewart platform with non-cubic architecture} \caption{\label{fig:detail_kinematics_non_cubic_payload}Stewart platform with non-cubic architecture}
\end{figure} \end{figure}
\paragraph{Relative Displacement Sensors} \paragraph{Relative Displacement Sensors}
\label{sec:orgd6eec76}
The transfer functions from actuator force included in each strut to the relative motion of the struts are shown in Figure \ref{fig:detail_kinematics_decentralized_dL}. The transfer functions from actuator force included in each strut to the relative motion of the struts are shown in Figure \ref{fig:detail_kinematics_decentralized_dL}.
As expected from the equations of motion from \(\bm{f}\) to \(\bm{\mathcal{L}}\) \eqref{eq:nhexa_transfer_function_struts}, the \(6 \times 6\) plants are decoupled at low frequency. As expected from the equations of motion from \(\bm{f}\) to \(\bm{\mathcal{L}}\) \eqref{eq:nhexa_transfer_function_struts}, the \(6 \times 6\) plants are decoupled at low frequency.
@ -891,7 +868,6 @@ Note that the resonance frequencies are not the same in both cases as having the
\end{figure} \end{figure}
\paragraph{Force Sensors} \paragraph{Force Sensors}
\label{sec:org876f014}
Similarly, the transfer functions from actuator force to force sensors included in each strut are extracted both for the cubic and non-cubic Stewart platforms. Similarly, the transfer functions from actuator force to force sensors included in each strut are extracted both for the cubic and non-cubic Stewart platforms.
@ -914,12 +890,10 @@ The results are shown in Figure \ref{fig:detail_kinematics_decentralized_fn}.
\end{figure} \end{figure}
\paragraph{Conclusion} \paragraph{Conclusion}
\label{sec:org3face46}
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut and thus provides no advantages for decentralized control. The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut and thus provides no advantages for decentralized control.
\section{Cubic architecture with Cube's center above the top platform} \section{Cubic architecture with Cube's center above the top platform}
\label{sec:orgdc7560d}
\label{ssec:detail_kinematics_cubic_design} \label{ssec:detail_kinematics_cubic_design}
As was shown in Section \ref{ssec:detail_kinematics_cubic_dynamic}, the cubic architecture can have very interesting dynamical properties when the center of mass of the moving body is at the cube's center. As was shown in Section \ref{ssec:detail_kinematics_cubic_dynamic}, the cubic architecture can have very interesting dynamical properties when the center of mass of the moving body is at the cube's center.
@ -930,23 +904,24 @@ Or, typically the \(\{B\}\) frame is taken above the top platform where forces a
In this section, modifications of the Cubic architectures are proposed in order to be able to have the payload above the top platform while still benefiting from interesting dynamical properties of the cubic architecture. In this section, modifications of the Cubic architectures are proposed in order to be able to have the payload above the top platform while still benefiting from interesting dynamical properties of the cubic architecture.
There are three key parameters:
Say a 100mm tall Stewart platform needs to be designed with the CoM of the payload 20mm above the top platform.
The cube's center therefore needs to be positioned 20mm above the top platform.
The obtained design depends on the considered size of the cube
\paragraph{Small cube}
\label{sec:org1cbf4d9}
Similar to \cite{furutani04_nanom_cuttin_machin_using_stewar}, even though it is not mentioned that the system has a cubic configuration.
\begin{itemize} \begin{itemize}
\item[{$\square$}] Maybe output also side view / top view ? \item \(H\) height of the Stewart platform (distance from fix base to mobile platform)
\item[{$\square$}] Specify the cube's size each time \item \(H_c\) height of the cube, as shown in Figure \ref{fig:detail_kinematics_cubic_schematic_full}
\item[{$\square$}] At the end say that having the small cube means small rotational stiffnesses \item \(H_{CoM}\) height of the center of mass with respect to the mobile platform. It is also the cube's center.
\end{itemize} \end{itemize}
Cube: 40mm height The obtained design depends on the considered size of the cube \(H_c\) with respect to \(H\) and \(H_{CoM}\).
\paragraph{Small cube}
When the considered cube size is smaller than twice the height of the CoM, the obtained design looks like Figure \ref{fig:detail_kinematics_cubic_above_small}.
\begin{equation}\label{eq:detail_kinematics_cube_small}
H_c < 2 H_{CoM}
\end{equation}
This is similar to \cite{furutani04_nanom_cuttin_machin_using_stewar}, even though it is not mentioned that the system has a cubic configuration.
Adjacent struts are parallel to each other, which is quite different from the typical architecture in which parallel struts are opposite to each other.
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.36\textwidth} \begin{subfigure}{0.36\textwidth}
@ -971,9 +946,14 @@ Cube: 40mm height
\end{figure} \end{figure}
\paragraph{Medium sized cube} \paragraph{Medium sized cube}
\label{sec:orgdc0102b}
Similar to \cite{yang19_dynam_model_decoup_contr_flexib} (Figure \ref{fig:detail_kinematics_yang19}) Increasing the cube size with an height close to the stewart platform height leads to an architecture in which the struts are crossing.
\begin{equation}\label{eq:detail_kinematics_cube_medium}
2 H_{CoM} < H_c < 2 (H_{CoM} + H)
\end{equation}
This is similar to \cite{yang19_dynam_model_decoup_contr_flexib} (Figure \ref{fig:detail_kinematics_yang19} in page \pageref{fig:detail_kinematics_yang19}), even though it is not cubic (but the struts are crossing).
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.36\textwidth} \begin{subfigure}{0.36\textwidth}
@ -998,7 +978,12 @@ Similar to \cite{yang19_dynam_model_decoup_contr_flexib} (Figure \ref{fig:detail
\end{figure} \end{figure}
\paragraph{Large cube} \paragraph{Large cube}
\label{sec:orgaa7e4eb}
When the cube's height is more than twice the platform height added to the CoM height, the architecture shown in Figure \ref{fig:detail_kinematics_cubic_above_large} is obtained.
\begin{equation}\label{eq:detail_kinematics_cube_large}
2 (H_{CoM} + H) < H_c
\end{equation}
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.36\textwidth} \begin{subfigure}{0.36\textwidth}
@ -1022,74 +1007,25 @@ Similar to \cite{yang19_dynam_model_decoup_contr_flexib} (Figure \ref{fig:detail
\caption{\label{fig:detail_kinematics_cubic_above_large}Cubic architecture with cube's center above the top platform. A cube height of 240mm is used.} \caption{\label{fig:detail_kinematics_cubic_above_large}Cubic architecture with cube's center above the top platform. A cube height of 240mm is used.}
\end{figure} \end{figure}
\paragraph{Required size of the platforms} \paragraph{Platform size}
\label{sec:org1b13e30}
The minimum size of the platforms depends on the cube's size and the height between the platform and the cube's center. The top joints \(\bm{b}_i\) are located on a circle with radius \(R_{b_i}\) \eqref{eq:detail_kinematics_cube_top_joints}.
The bottom joints \(\bm{a}_i\) are located on a circle with radius \(R_{a_i}\) \eqref{eq:detail_kinematics_cube_bot_joints}.
Let's denote: \begin{subequations}\label{eq:detail_kinematics_cube_joints}
\begin{itemize}
\item \(H\) the height between the cube's center and the considered platform
\item \(D\) the size of the cube's edges
\end{itemize}
Let's denote by \(a\) and \(b\) the points of both ends of one of the cube's edge.
Initially, we have:
\begin{align} \begin{align}
a &= \frac{D}{2} \begin{bmatrix}-1 \\ -1 \\ 1\end{bmatrix} \\ R_{b_i} &= \sqrt{\frac{3}{2} H_c^2 + 2 H_{CoM}^2} \label{eq:detail_kinematics_cube_top_joints} \\
b &= \frac{D}{2} \begin{bmatrix} 1 \\ -1 \\ 1\end{bmatrix} R_{a_i} &= \sqrt{\frac{3}{2} H_c^2 + 2 (H_{CoM} + H)^2} \label{eq:detail_kinematics_cube_bot_joints}
\end{align} \end{align}
\end{subequations}
We rotate the cube around its center (origin of the rotated frame) such that one of its diagonal is vertical. The size of the platforms increase with the cube's size and the height of the location of the center of mass (also coincident with the cube's center).
\[ R = \begin{bmatrix} The size of the bottom platform also increases with the height of the Stewart platform.
\frac{2}{\sqrt{6}} & 0 & \frac{1}{\sqrt{3}} \\
\frac{-1}{\sqrt{6}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{3}} \\
\frac{-1}{\sqrt{6}} & \frac{-1}{\sqrt{2}} & \frac{1}{\sqrt{3}}
\end{bmatrix} \]
After rotation, the points \(a\) and \(b\) become:
\begin{align}
a &= \frac{D}{2} \begin{bmatrix}-\frac{\sqrt{2}}{\sqrt{3}} \\ -\sqrt{2} \\ -\frac{1}{\sqrt{3}}\end{bmatrix} \\
b &= \frac{D}{2} \begin{bmatrix} \frac{\sqrt{2}}{\sqrt{3}} \\ -\sqrt{2} \\ \frac{1}{\sqrt{3}}\end{bmatrix}
\end{align}
Points \(a\) and \(b\) define a vector \(u = b - a\) that gives the orientation of one of the Stewart platform strut:
\[ u = \frac{D}{\sqrt{3}} \begin{bmatrix} -\sqrt{2} \\ 0 \\ -1\end{bmatrix} \]
Then we want to find the intersection between the line that defines the strut with the plane defined by the height \(H\) from the cube's center.
To do so, we first find \(g\) such that:
\[ a_z + g u_z = -H \]
We obtain:
\begin{align}
g &= - \frac{H + a_z}{u_z} \\
&= \sqrt{3} \frac{H}{D} - \frac{1}{2}
\end{align}
Then, the intersection point \(P\) is given by:
\begin{align}
P &= a + g u \\
&= \begin{bmatrix}
H \sqrt{2} \\
D \frac{1}{\sqrt{2}} \\
H
\end{bmatrix}
\end{align}
Finally, the circle can contains the intersection point has a radius \(r\):
\begin{align}
r &= \sqrt{P_x^2 + P_y^2} \\
&= \sqrt{2 H^2 + \frac{1}{2}D^2}
\end{align}
By symmetry, we can show that all the other intersection points will also be on the circle with a radius \(r\).
For a small cube:
\[ r \approx \sqrt{2} H \]
As the rotational stiffness for the cubic architecture is scaled as the square of the cube's height \eqref{eq:detail_kinematics_cubic_stiffness}, the cube's size can be determined from the requirements in terms of rotational stiffness.
Then, using \eqref{eq:detail_kinematics_cube_joints}, the size of the top and bottom platforms can be determined.
\paragraph{Conclusion} \paragraph{Conclusion}
\label{sec:org962f0e9}
For each of the configuration, the Stiffness matrix is diagonal with \(k_x = k_y = k_y = 2k\) with \(k\) is the stiffness of each strut. For each of the configuration, the Stiffness matrix is diagonal with \(k_x = k_y = k_y = 2k\) with \(k\) is the stiffness of each strut.
However, the rotational stiffnesses are increasing with the cube's size but the required size of the platform is also increasing, so there is a trade-off here. However, the rotational stiffnesses are increasing with the cube's size but the required size of the platform is also increasing, so there is a trade-off here.
@ -1098,7 +1034,6 @@ We found that we can have a diagonal stiffness matrix using the cubic architectu
Depending on the cube's size, we obtain 3 different configurations. Depending on the cube's size, we obtain 3 different configurations.
\section*{Conclusion} \section*{Conclusion}
\label{sec:org1c5dc45}
Cubic architecture can be interesting when specific payloads are being used. Cubic architecture can be interesting when specific payloads are being used.
In that case, the center of mass of the payload should be placed at the center of the cube. In that case, the center of mass of the payload should be placed at the center of the cube.
For the classical architecture, it is often not possible. For the classical architecture, it is often not possible.
@ -1112,7 +1047,6 @@ Cubic architecture are attributed a number of properties that were found to be i
\end{itemize} \end{itemize}
\chapter{Nano Hexapod} \chapter{Nano Hexapod}
\label{sec:org5dd05cd}
\label{sec:detail_kinematics_nano_hexapod} \label{sec:detail_kinematics_nano_hexapod}
For the NASS, the chosen frame \(\{A\}\) and \(\{B\}\) coincide with the sample's point of interest, which is \(150\,mm\) above the top platform. For the NASS, the chosen frame \(\{A\}\) and \(\{B\}\) coincide with the sample's point of interest, which is \(150\,mm\) above the top platform.
@ -1131,7 +1065,6 @@ Requirements:
For the NASS, the payloads can have various inertia, with masses ranging from 1 to 50kg. For the NASS, the payloads can have various inertia, with masses ranging from 1 to 50kg.
It is therefore not possible to have one geometry that gives good dynamical properties for all the payloads. It is therefore not possible to have one geometry that gives good dynamical properties for all the payloads.
\section{Obtained Geometry} \section{Obtained Geometry}
\label{sec:org5ce1eba}
Take both platforms at maximum size. Take both platforms at maximum size.
Make reasonable choice (close to the final choice). Make reasonable choice (close to the final choice).
@ -1152,7 +1085,6 @@ This geometry will be used for:
It is only when the complete mechanical design is finished (Section \ldots{}), that the model will be updated. It is only when the complete mechanical design is finished (Section \ldots{}), that the model will be updated.
\section{Required Actuator stroke} \section{Required Actuator stroke}
\label{sec:orgf89f26c}
The actuator stroke to have the wanted mobility is computed. The actuator stroke to have the wanted mobility is computed.
@ -1175,7 +1107,6 @@ Here the worst case scenario is considered, meaning that whatever the angular po
Therefore, in Section \ldots{}, the specification for actuator stroke is +/-100um Therefore, in Section \ldots{}, the specification for actuator stroke is +/-100um
\section{Required Joint angular stroke} \section{Required Joint angular stroke}
\label{sec:org2799c77}
Now that the mobility of the Stewart platform is know, the corresponding flexible joint stroke can be estimated. Now that the mobility of the Stewart platform is know, the corresponding flexible joint stroke can be estimated.
@ -1185,7 +1116,6 @@ Will be used to design flexible joints.
\end{itemize} \end{itemize}
\chapter{Conclusion} \chapter{Conclusion}
\label{sec:org99763bc}
\label{sec:detail_kinematics_conclusion} \label{sec:detail_kinematics_conclusion}
Inertia used for experiments will be very broad => difficult to optimize the dynamics Inertia used for experiments will be very broad => difficult to optimize the dynamics