#+TITLE: Nano Hexapod - Optimal Geometry
:DRAWER:
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
#+AUTHOR: Dehaeze Thomas
#+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html
#+HTML_HEAD:
#+HTML_HEAD:
#+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-image-default-width ""
#+LaTeX_CLASS: scrreprt
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]
#+LATEX_HEADER: \input{preamble.tex}
#+LATEX_HEADER_EXTRA: \input{preamble_extra.tex}
#+LATEX_HEADER_EXTRA: \bibliography{nass-geometry.bib}
#+BIND: org-latex-bib-compiler "biber"
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports none
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:matlab+ :tangle no
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
#+PROPERTY: header-args:latex+ :results file raw replace
#+PROPERTY: header-args:latex+ :buffer no
#+PROPERTY: header-args:latex+ :tangle no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports results
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
#+latex: \clearpage
* Build :noexport:
#+NAME: startblock
#+BEGIN_SRC emacs-lisp :results none :tangle no
(add-to-list 'org-latex-classes
'("scrreprt"
"\\documentclass{scrreprt}"
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
))
;; Remove automatic org heading labels
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
(when (org-export-derived-backend-p backend 'latex)
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
(add-to-list 'org-export-filter-headline-functions
'my-latex-filter-removeOrgAutoLabels)
;; Remove all org comments in the output LaTeX file
(defun delete-org-comments (backend)
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
'comment 'identity))
do
(setf (buffer-substring (org-element-property :begin comment)
(org-element-property :end comment))
"")))
(add-hook 'org-export-before-processing-hook 'delete-org-comments)
;; Use no package by default
(setq org-latex-packages-alist nil)
(setq org-latex-default-packages-alist nil)
;; Do not include the subtitle inside the title
(setq org-latex-subtitle-separate t)
(setq org-latex-subtitle-format "\\subtitle{%s}")
(setq org-export-before-parsing-hook '(org-ref-glossary-before-parsing
org-ref-acronyms-before-parsing))
#+END_SRC
* Notes :noexport:
** Notes
Prefix is =detail_kinematics=
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/matlab/stewart-simscape/org/kinematic-study.org
- [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/flexible-stewart-platform.org
Not so interesting
- [ ] Talk about what will influence the dynamics
It will influence the mechanical design.
For instance we want to precisely position =bi= with respect to the top platform
Optimal geometry?
- [ ] *Cubic architecture*?
Cubic configuration file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org
https://tdehaeze.github.io/stewart-simscape/cubic-configuration.html
- [ ] Kinematics
- [ ] Trade-off for the strut orientation
- [ ] Requirements in terms of positioning of the joints
- [ ] Not a lot of differences, no specificity of cubic architecture, no specific positioning
- [ ] https://research.tdehaeze.xyz/stewart-simscape/docs/bibliography.html
- [ ] [[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::*Estimation of the Joint required Stroke][Estimation of the Joint required Stroke]]
** TODO [#A] Copy relevant parts of reports
** TODO [#A] Structure the review of Stewart platforms
Focus on short stroke (<1 mm) stewart platforms with flexible joints.
- Actuators: voice coil, piezo
- Flexible joints
- Geometry:
- Cubic, non cubic, ...
- Control ? Maybe in the control section ?
** DONE [#A] Make table for review of Stewart platforms
CLOSED: [2025-03-19 Wed 18:25]
[[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org::*Built Stewart PLatforms][Built Stewart PLatforms]]
Link to figures.
In figure legend: link to references, mention the university and the application.
** TODO [#C] Create a function to plot the mobility of the Stewart platform
Arguments:
- choose to fix the orientation with ${}^{B}R_{A}$
- maximum stroke of each actuator (may be included in the Stewart object)
* Introduction :ignore:
- In the conceptual design phase, the geometry of the Stewart platform was not optimized
- In the detail design phase, we want to see if the geometry can be optimized to improve the overall performances
- Optimization criteria: mobility, stiffness, dynamical decoupling, more performance / bandwidth
Outline:
- Review of Stewart platform: Section ref:sec:detail_kinematics_stewart_review
Geometry, Actuators, Sensors, Joints
- Effect of geometry on the Stewart platform characteristics ref:sec:detail_kinematics_geometry
- Cubic configuration: benefits? ref:sec:detail_kinematics_cubic
* Review of Stewart platforms
<>
** Introduction :ignore:
- as was explained in the conceptual phase, Stewart platform have the following key elements:
- two plates
- flexible joints
- actuators
- sensors
- the geometry
- This results in various designs as shown in Table ref:tab:detail_kinematics_stewart_review
- The focus is here made on Stewart platforms for nano-positioning of vibration control.
Not on long stroke stewart platforms.
- All presented Stewart platforms are using flexible joints, as it is a prerequisites for nano-positioning capabilities.
- Most of stewart platforms are using voice coil actuators or piezoelectric actuators.
The actuators used for the Stewart platform will be chosen in the next section.
# TODO - Add reference to the section
- Depending on the application, various sensors are integrated in the struts or on the plates.
The choice of sensor for the nano-hexapod will be described in the next section.
# TODO - Add reference to the section
- [ ] Only keep integrated sensor and not external metrology
- [ ] Check for missing information
#+name: fig:detail_kinematics_stewart_examples_cubic
#+caption: Some examples of developped Stewart platform with Cubic geometry. (\subref{fig:detail_kinematics_jpl}), (\subref{fig:detail_kinematics_uw_gsp}), (\subref{fig:detail_kinematics_ulb_pz}), (\subref{fig:detail_kinematics_uqp})
#+attr_latex: :options [htbp]
#+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_jpl}California Institute of Technology - USA}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_jpl.jpg]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_uw_gsp}University of Wyoming - USA}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_uw_gsp.jpg]]
#+end_subfigure
\bigskip
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_ulb_pz}ULB - Belgium}
#+attr_latex: :options {0.53\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_ulb_pz.jpg]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_uqp}Naval Postgraduate School - USA}
#+attr_latex: :options {0.43\textwidth}
#+begin_subfigure
#+attr_latex: :width 0.95\linewidth
[[file:figs/detail_kinematics_uqp.jpg]]
#+end_subfigure
#+end_figure
#+name: fig:detail_kinematics_stewart_examples_non_cubic
#+caption: Some examples of developped Stewart platform with non-cubic geometry. (\subref{fig:detail_kinematics_pph}), (\subref{fig:detail_kinematics_zhang11}), (\subref{fig:detail_kinematics_yang19}), (\subref{fig:detail_kinematics_naves})
#+attr_latex: :options [htbp]
#+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_pph}Naval Postgraduate School - USA}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :height 5cm
[[file:figs/detail_kinematics_pph.jpg]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_zhang11}Beihang University - China}
#+attr_latex: :options {0.48\textwidth}
#+begin_subfigure
#+attr_latex: :height 5cm
[[file:figs/detail_kinematics_zhang11.jpg]]
#+end_subfigure
\bigskip
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_yang19}Nanjing University - China}
#+attr_latex: :options {0.43\textwidth}
#+begin_subfigure
#+attr_latex: :height 5cm
[[file:figs/detail_kinematics_yang19.jpg]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_kinematics_naves}University of Twente - Netherlands}
#+attr_latex: :options {0.53\textwidth}
#+begin_subfigure
#+attr_latex: :height 5cm
[[file:figs/detail_kinematics_naves.jpg]]
#+end_subfigure
#+end_figure
#+name: tab:detail_kinematics_stewart_review
#+caption: Examples of Stewart platform developed. When not specifically indicated, sensors are included in the struts. All presented Stewart platforms are using flexible joints. The table is sorted by "date"
#+attr_latex: :environment tabularx :width \linewidth :align llllX
#+attr_latex: :center t :booktabs t :font \scriptsize
| | *Geometry* | *Actuators* | *Sensors* | *Reference* |
|------------------------------------------+-------------------+------------------------------+------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | Cubic (6-UPU) | Magnetostrictive | Force (collocated), Accelerometers | [[cite:&geng93_six_degree_of_freed_activ;&geng94_six_degree_of_freed_activ;&geng95_intel_contr_system_multip_degree]] |
| Figure ref:fig:detail_kinematics_jpl | Cubic | Voice Coil (0.5 mm) | Force (collocated) | [[cite:&spanos95_soft_activ_vibrat_isolat;&rahman98_multiax]] |
| | Cubic | Voice Coil (10 mm) | Force, LVDT, Geophones | [[cite:&thayer98_stewar;&thayer02_six_axis_vibrat_isolat_system;&hauge04_sensor_contr_space_based_six]] |
| Figure ref:fig:detail_kinematics_uw_gsp | Cubic (CoM=CoK) | Voice Coil | Force | [[cite:&mcinroy99_dynam;&mcinroy99_precis_fault_toler_point_using_stewar_platf;&mcinroy00_desig_contr_flexur_joint_hexap;&li01_simul_vibrat_isolat_point_contr;&jafari03_orthog_gough_stewar_platf_microm]] |
| | Cubic | Piezoelectric ($25\,\mu m$) | Piezo force sensors | [[cite:&defendini00_techn]] |
| Figure ref:fig:detail_kinematics_ulb_pz | Cubic | APA ($50\,\mu m$) | Force sensor | [[cite:&abu02_stiff_soft_stewar_platf_activ]] |
| Figure ref:fig:detail_kinematics_pph | Non-Cubic | Voice Coil | Accelerometers | [[cite:&chen03_payload_point_activ_vibrat_isolat]] |
| | Cubic | Voice Coil | Force | [[cite:&hanieh03_activ_stewar;&preumont07_six_axis_singl_stage_activ]] |
| Figure ref:fig:detail_kinematics_uqp | Cubic | Piezoelectric ($50\,\mu m$) | Geophone aligned with the strut | [[cite:&agrawal04_algor_activ_vibrat_isolat_spacec]] |
| | Non-Cubic | Piezoelectric ($16\,\mu m$) | Eddy Current | [[cite:&furutani04_nanom_cuttin_machin_using_stewar]] |
| | Cubic | Piezoelectric ($120\,\mu m$) | External capacitive | [[cite:&ting06_desig_stewar_nanos_platf;&ting13_compos_contr_desig_stewar_nanos_platf]] |
| | Non-Cubic | Piezoelectric ($160\,\mu m$) | External capacitive (LION) | [[cite:&ting07_measur_calib_stewar_microm_system]] |
| Figure ref:fig:detail_kinematics_zhang11 | Non-cubic | Magnetostrictive | Inertial | [[cite:&zhang11_six_dof]] |
| | 6-SPS (Optimized) | Piezoelectric | Strain Gauge | [[cite:&du14_piezo_actuat_high_precis_flexib]] |
| | Cubic | Voice Coil | Accelerometer in each leg | [[cite:&chi15_desig_exper_study_vcm_based;&tang18_decen_vibrat_contr_voice_coil;&jiao18_dynam_model_exper_analy_stewar]] |
| | Cubic | Piezoelectric | Force Sensor + Accelerometer | [[cite:&wang16_inves_activ_vibrat_isolat_stewar]] |
| | Almost cubic | Voice Coil | Force Sensor + Accelerometer | [[cite:&beijen18_self_tunin_mimo_distur_feedf;&tjepkema12_activ_ph]] |
| Figure ref:fig:detail_kinematics_yang19 | 6-UPS (Cubic?) | Piezoelectric | Force, Position | [[cite:&yang19_dynam_model_decoup_contr_flexib]] |
| Figure ref:fig:detail_kinematics_naves | Non-Cubic | 3-phase rotary motor | Rotary Encoders | [[cite:&naves20_desig;&naves20_t_flex]] |
- [ ] https://research.tdehaeze.xyz/stewart-simscape/docs/bibliography.html
- [ ] Joints and actuators are optimized in the next section
* Effect of geometry on Stewart platform properties
<>
** Introduction :ignore:
- Remind that the choice of frames (independently of the physical geometry) impacts the obtained stiffness matrix (as it is defined as forces/motion evaluated at the chosen frame)
- Important: bi (join position w.r.t top platform) and si (orientation of struts)
For the nano-hexapod:
- Size requirements: Maximum height, maximum radius
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<>
#+end_src
#+begin_src matlab :tangle no :noweb yes
<>
#+end_src
#+begin_src matlab :eval no :noweb yes
<>
#+end_src
#+begin_src matlab :noweb yes
<>
#+end_src
** Stiffness
- Give some examples:
- struts further apart: higher angular stiffness, same linear stiffness
- orientation: more vertical => increase vertical stiffness, decrease horizontal stiffness
** Mobility and required joint and actuator stroke
- Comparison of the XYZ mobility (fixed orientation) for two geometry (or maybe only in the XY or YZ plane to see more clearly the differences)
- [ ] [[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]]
Will be useful to choose the actuators
- [ ] [[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]]
Will be useful to design the flexible joints
** Conclusion
:PROPERTIES:
:UNNUMBERED: t
:END:
- [ ] Table that summarize the findings
[[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org::*Optimal Nano-Hexapod Geometry][Optimal Nano-Hexapod Geometry]]
* The Cubic Architecture
:PROPERTIES:
:HEADER-ARGS:matlab+: :tangle matlab/detail_kinematics_1_.m
:END:
<>
** Introduction :ignore:
Cubic configuration file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<>
#+end_src
#+begin_src matlab :tangle no :noweb yes
<>
#+end_src
#+begin_src matlab :eval no :noweb yes
<>
#+end_src
#+begin_src matlab :noweb yes
<>
#+end_src
** The Cubic Architecture
From [[cite:&geng94_six_degree_of_freed_activ]], 7 properties of cubic configuration:
1) Uniformity in control capability in all directions
2) Uniformity in stiffness in all directions
3) Minimum cross coupling force effect among actuators
4) Facilitate collocated sensor-actuator control system design
5) Simple kinematics relationships
6) Simple dynamic analysis
7) Simple mechanical design
- Principle
- Examples of Stewart platform with Cubic architecture
- Different options?
Center of the cube above the top platform?
Where to mention that ? With examples
** Static Properties
Explain that we get diagonal K matrix => static decoupling in the cartesian frame.
Uniform mobility in X,Y,Z directions
** Dynamical Properties?
[[cite:&mcinroy00_desig_contr_flexur_joint_hexap]]
[[cite:&afzali-far16_vibrat_dynam_isotr_hexap_analy_studies]]:
- proposes an architecture where the CoM can be above the top platform
- "*Dynamic isotropy*, leading to equal eigenfrequencies, is a powerful optimization measure."
- Show examples where the dynamics can indeed be decoupled in the cartesian frame (i.e. decoupled K and M matrices)
- Better decoupling between the struts? not sure...
Compute the coupling between the struts for a cubic and non-cubic architecture
- Same resonance frequencies for suspension modes?
Maybe in one case: sphere at the CoM?
Could be nice to show that.
Say that this can be nice for optimal damping for instance (link to paper explaining that)
* Conclusion
<>
Inertia used for experiments will be very broad => difficult to optimize the dynamics
Specific geometry is not found to have a huge impact on performances.
Practical implementation is important.
Geometry impacts the static and dynamical characteristics of the Stewart platform.
Considering the design constrains, the slight change of geometry will not significantly impact the obtained results.
* Bibliography :ignore:
#+latex: \printbibliography[heading=bibintoc,title={Bibliography}]
* Helping Functions :noexport:
** Initialize Path
#+NAME: m-init-path
#+BEGIN_SRC matlab
%% Path for functions, data and scripts
addpath('./matlab/mat/'); % Path for data
addpath('./matlab/'); % Path for scripts
#+END_SRC
#+NAME: m-init-path-tangle
#+BEGIN_SRC matlab
%% Path for functions, data and scripts
addpath('./mat/'); % Path for data
#+END_SRC
** Initialize other elements
#+NAME: m-init-other
#+BEGIN_SRC matlab
%% Colors for the figures
colors = colororder;
#+END_SRC