dehaeze18_sampl_stabil_for_.../tikz/index.org

1056 lines
45 KiB
Org Mode
Raw Normal View History

2019-10-31 11:14:28 +01:00
#+TITLE: Sample Stabilization for Tomography Experiments in Presence of Large Plant Uncertainty - Tikz Figures
:DRAWER:
#+HTML_LINK_HOME: ../index.html
2020-11-12 10:38:26 +01:00
#+HTML_LINK_UP: ../index.html
2019-10-31 11:14:28 +01:00
2020-11-12 10:38:26 +01:00
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
2019-10-31 11:14:28 +01:00
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/thesis/papers/dehaeze18_sampl_stabil_for_tomog_exper/tikz/}{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 raw replace :buffer no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports both
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :noweb yes
#+PROPERTY: header-args:latex+ :output-dir figs
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
Configuration file is accessible [[file:config.org][here]].
* Fig 1: Schematic representation of the ID31 end station
#+begin_src latex :file schematic_sys_without_nass.pdf :tangle figs/schematic_sys_without_nass.tex :exports results
\begin{tikzpicture}
% Parameters
\def\blockw{6.0cm}
\def\blockh{1.2cm}
\def\tiltdeg{3}
\coordinate[] (rotationpoint) at (0, 4.5*\blockh);
\begin{scope}[rotate around={\tiltdeg:(rotationpoint)}]
% Tilt
\path[] ([shift=(-120:4*\blockh)]rotationpoint) coordinate(beginarc) arc (-120:-110:4*\blockh) %
-- ([shift=(-70:4*\blockh)]rotationpoint) arc (-70:-60:4*\blockh)%
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) coordinate(tiltte) -| cycle;
% Spindle
\coordinate[] (spindlese) at (spindlesw-|spindlene);
\draw[fill=black!30] ($(spindlese)+(-0.1,0.1)+(-0.1*\blockw, 0)$) -| ($(spindlene)+(-0.1, 0)$) -| coordinate[pos=0.25](spindletop) ($(spindlesw)+(0.1,0.1)$) -| ++(0.1*\blockw, -\blockh) -| coordinate[pos=0.25](spindlebot) cycle;
% \draw[dashed, color=black!60] ($(spindletop)+(0, 0.2)$) -- ($(spindlebot)+(0,-0.2)$);
% Tilt
\draw[fill=black!60] ([shift=(-120:4*\blockh)]rotationpoint) coordinate(beginarc) arc (-120:-110:4*\blockh) %
-- ([shift=(-70:4*\blockh)]rotationpoint) arc (-70:-60:4*\blockh)%
|- coordinate (tiltne) ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) -| cycle;
% Micro-Hexapod
\begin{scope}[shift={(spindletop)}]
% Parameters definitions
\def\baseh{0.22*\blockh} % Height of the base
\def\naceh{0.18*\blockh} % Height of the nacelle
\def\baser{0.22*\blockw} % Radius of the base
\def\nacer{0.18*\blockw} % Radius of the nacelle
\def\armr{0.2*\blockh} % Radius of the arms
\def\basearmborder{0.2}
\def\nacearmborder{0.2}
\def\xnace{0} \def\ynace{\blockh-\naceh} \def\anace{0}
\def\xbase{0} \def\ybase{0} \def\abase{0}
% Hexapod1
\begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
% Base
\draw[fill=white] (-\baser, 0) coordinate[](uhexabot) rectangle (\baser, \baseh);
\coordinate[] (armbasel) at (-\baser+\basearmborder+\armr, \baseh);
\coordinate[] (armbasec) at (0, \baseh);
\coordinate[] (armbaser) at (\baser-\basearmborder-\armr, \baseh);
\begin{scope}[shift={(\xnace, \ynace)}, rotate=\anace]
\draw[fill=white] (-\nacer, 0) rectangle (\nacer, \naceh);
\coordinate[] (uhexatop) at (0, \naceh);
\coordinate[] (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
\coordinate[] (armnacec) at (0, 0);
\coordinate[] (armnacer) at (\nacer-\nacearmborder-\armr, 0);
\end{scope}
\draw[] (armbasec) -- (armnacer);
\draw[] (armbasec) -- (armnacel);
\draw[] (armbasel) -- coordinate(mhexaw) (armnacel);
\draw[] (armbasel) -- (armnacec);
\draw[] (armbaser) -- (armnacec);
\draw[] (armbaser) -- coordinate(mhexae) (armnacer);
\end{scope}
\end{scope}
% Sample
\begin{scope}[shift={(uhexatop)}]
\draw[fill=white] (-0.1*\blockw, 0) coordinate[](samplebot) rectangle coordinate[pos=0.5](samplecenter) (0.1*\blockw, \blockh) coordinate[](samplene);
\coordinate[](samplenw) at (-0.1*\blockw, \blockh);
\end{scope}
\end{scope}
\begin{scope}[shift={(0, -0.3*\blockh)}]
% Translation Stage - fixed part
\draw[fill=black!40] (-0.5*\blockw, 0) coordinate[](tyb) rectangle (0.5*\blockw, 0.15*\blockh);
\coordinate[] (measposbot) at (0.5*\blockw, 0);
% Translation Stage - mobile part
\draw[fill=black!10, fill opacity=0.5] (-0.5*\blockw, 0.2*\blockh) -- (-0.5*\blockw, 1.5*\blockh) coordinate[](tyt) -- (0.5*\blockw, 1.5*\blockh) -- (0.5*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.2*\blockh) -- cycle;
% Translation Guidance
\draw[dashed, color=black!60] ($(-0.5*\blockw, 0)+( 0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
\draw[dashed, color=black!60] ($( 0.5*\blockw, 0)+(-0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
\draw[fill, color=black] ($( 0.5*\blockw, 0)+(-0.075*\blockw,1.0*\blockh)$) circle (0.04);
\node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$T_y$] at ($( 0.5*\blockw, 0)+(-0.075*\blockw,1.0*\blockh)$){};
% Tilt Guidance
\draw[dashed, color=black!60] ([shift=(-107:4.1*\blockh)]rotationpoint) arc (-107:-120:4.1*\blockh);
\draw[dashed, color=black!60] ([shift=( -73:4.1*\blockh)]rotationpoint) arc (-73:-60:4.1*\blockh);
\end{scope}
% Vertical line
\draw[dashed, color=black] (samplecenter) -- ++(0, -4*\blockh);
\begin{scope}[rotate around={\tiltdeg:(samplecenter)}]
\draw[dashed, color=black] (samplecenter) -- ++(0, -4*\blockh);
\node[] at ($(samplecenter)+(0, -2.3*\blockh)$) {\AxisRotator[rotate=-90]};
\node[right, shift={(0.3,0)}] at ($(samplecenter)+(0, -2.3*\blockh)$) {$\theta_z$};
\end{scope}
\draw[->] ([shift=(-90:3.6*\blockh)]samplecenter) arc (-90:-87:3.6*\blockh) node[right]{$\theta_y$};
% Laser
\begin{scope}[shift={(samplecenter)}]
\draw[color=red, -<-=0.5] (samplecenter) node[circle, fill=red, inner sep=0pt, minimum size=3pt]{} -- node[midway, above, color=black]{X-ray} ($(samplecenter)+(0.5*\blockw,0)$);
% \draw[color=red, -<-=0.5] (samplecenter) node[circle, fill=red, inner sep=0pt, minimum size=3pt]{} -- ($(samplecenter)+(0.5*\blockw,0)$);
\end{scope}
% Axis
\begin{scope}[shift={(-0.35*\blockw, 3*\blockh)}]
\def\axissize{0.8cm}
\draw[->] (0, 0) -- ++(0, \axissize) node[right]{$z$};
\draw[->] (0, 0) -- ++(-\axissize, 0) node[above]{$x$};
\draw[fill, color=black] (0, 0) circle (0.05*\axissize);
\node[draw, circle, inner sep=0pt, minimum size=0.4*\axissize, label=right:$y$] (yaxis) at (0, 0){};
% \node[draw, circle, inner sep=0pt, cross, minimum size=0.4*\axissize, label=left:$y$] (yaxis) at (0, 0){};
\end{scope}
% NUMBERS
% Granite
\node[labelc, anchor=west] (char) at (tyb) {1};
% Translation stage
\node[labelc, anchor=north west] (char) at (tyt) {2};
% Tilt Stage
\node[labelc, anchor=north east] (char) at (tiltne) {3};
% Spindle
\node[labelc, anchor=north east] (char) at (spindlene) {4};
% Micro-Hexapod
\node[labelc, anchor=east] (char) at (mhexaw) {5};
% Sample
\node[labelc, anchor=north west] (char) at (samplenw) {6};
% % Measurement
% \draw[dashed, color=black!50] (measposbot) -- ++(1,0) coordinate (measposbotend);
% \draw[dashed, color=black!50] (measpostop) -- (measpostop-|measposbotend) coordinate (measpostopend);
% \draw[<->, dashed] ($(measposbotend)+(-0.3, 0)$) -- node[midway, right](d){$d$} ($(measpostopend)+(-0.3, 0)$);
% % Control
% \draw[<->] (nassfbot) -- node[midway, right](F){$F$} (nassftop);
% \def\blockw{1.2cm}
% \def\blockh{1.0cm}
% \node[draw, fill=white, block, right=0.6 of F] (K){$K$};
% \draw[->] (d.east) -- ++(0.2, 0) |- (K.east);
% \draw[->] (K.west) -- (F.east);
% \coordinate[] (labelx) at (-0.52*\blockw, 0);
% \coordinate[] (labelb) at (-0.28*\blockw, 0);
% % Curly braces
% \draw [decorate,decoration={brace,amplitude=5pt}] (tyb-|labelx) -- coordinate[midway](labelty) (tyt-|labelx);
% \draw [decorate,decoration={brace,amplitude=5pt}] ($(uhexabot-|labelb)+(0,0.05)$) -- coordinate[midway](labeluhexa) ($(uhexatop-|labelb)+(0,-0.05)$);
% \draw [decorate,decoration={brace,amplitude=5pt}] ($(nhexabot-|labelb)+(0,0.05)$) -- coordinate[midway](labelnhexa) ($(nhexatop-|labelb)+(0,-0.05)$);
% \draw [decorate,decoration={brace,amplitude=5pt}] ($(samplebot-|labelb)+(0,0.05)$) -- coordinate[midway](labelsample) ($(samplenw-|labelb)+(0,-0.05)$);
% Labels
% \node[left,xshift=-0.2cm] at (labeluhexa) {Hexapod};
% \node[left,xshift=-0.2cm] at (labelnhexa) {NASS};
% \node[left,xshift=-0.2cm] at (labelsample) {Sample};
% \node[left,xshift=-0.2cm, align=right] at (labelty) {Translation\\Stage};
% \draw[<-] ($0.5*(tiltte)+0.5*(beginarc)$) coordinate(arrowtilt) -- (arrowtilt-|labelty) node[left,xshift=-0.3cm] {Tilt Stage};
% \draw[<-] ($(spindlesw)+(0.5, 0.4)$) -- ++(-0.8, 0.5) coordinate(arrowspindle) -- (arrowspindle-|labelty) node[left,xshift=-0.3cm] {Spindle};
\end{tikzpicture}
#+end_src
#+name: fig:schematic_sys_without_nass
#+caption: Schematic representation of the ID31 end station ([[./figs/schematic_sys_without_nass.png][png]], [[./figs/schematic_sys_without_nass.pdf][pdf]], [[./figs/schematic_sys_without_nass.tex][tex]]).
#+RESULTS:
[[file:figs/schematic_sys_without_nass.png]]
* Fig 2: CAD View of the ID31 end station
#+begin_src latex :file assemblage.pdf :tangle figs/assemblage.tex :exports both
2020-11-12 10:38:26 +01:00
\graphicspath{{~/Cloud/tikz/org/img/}}
2019-10-31 11:14:28 +01:00
\begin{tikzpicture}
\tikzstyle{legend}=[draw, text width=4.2cm, align=center]
\node[inner sep=0pt, anchor=south west] (assemblage) at (0,0)
{\includegraphics[width=0.42\textwidth]{/home/thomas/Cloud/thesis/papers/dehaeze18_sampl_stabil_for_tomog_exper/tikz/img/assemblage_img.png}};
\coordinate[] (aheight) at (assemblage.north west);
\coordinate[] (awidth) at (assemblage.south east);
\coordinate[] (xrightlabel) at (-0.2, 0);
\coordinate[] (xleftlabel) at ($(awidth)+(0.2, 0)$);
% Translation Stage
\coordinate[] (ty) at ($0.5*(aheight)+0.1*(awidth)$);
\draw[<-] (ty) -- (ty-|xrightlabel) node[left, legend]{Translation Stage\\$\SI{-5}{m\metre} < T_y < \SI{5}{m\metre}$};
% Sample Interface
\coordinate[] (sampleint) at ($0.77*(aheight)+0.5*(awidth)$);
\coordinate[] (sampleintmid) at ($(sampleint)+(-1, -0.5)$);
\draw[<-] (sampleint) -- (sampleintmid) -- (sampleintmid-|xrightlabel) node[left, legend]{Sample Interface};
% Sample
\coordinate[] (sample) at ($0.9*(aheight)+0.5*(awidth)$);
\draw[<-] (sample) -- (sample-|xrightlabel) node[left, legend]{Sample Environment\\$\SI{1}{\kg} < M < \SI{50}{\kg}$};
% Tilt Stage
\coordinate[] (tilt) at ($0.55*(aheight)+0.78*(awidth)$);
\coordinate[] (tiltmid) at ($(tilt)+(1, 0.5)$);
\draw[<-] (tilt) -- (tiltmid) -- (tiltmid-|xleftlabel) node[right, legend]{Tilt Stage\\$\ang{-3} < \theta_y < \ang{3}$};
% Spindle
\coordinate[] (spindle) at ($0.53*(aheight)+0.33*(awidth)$);
\coordinate[] (spindlemid) at ($(spindle)+(-1, -1.5)$);
\draw[<-] (spindle) -- (spindlemid) -- (spindlemid-|xrightlabel) node[left, legend]{Spindle\\$\SI{1}{rpm} < \dot{\theta_z} < \SI{60}{rpm}$};
% Center of gravity compensation
\coordinate[] (axisc) at ($0.65*(aheight)+0.65*(awidth)$);
\coordinate[] (axiscmid) at ($(axisc)+(1, 1.5)$);
\draw[<-] (axisc) -- (axiscmid) -- (axiscmid-|xleftlabel) node[right, legend]{Center of gravity\\compensation system};
% Micro Hexapod
\coordinate[] (hexapod) at ($0.52*(aheight)+0.6*(awidth)$);
\coordinate[] (hexapodmid) at ($(hexapod)+(1, -1.0)$);
\draw[<-] (hexapod) -- (hexapodmid) -- (hexapodmid-|xleftlabel) node[right, legend]{Long Stroke Hexapod\\$\SI{-10}{m\metre} < T_{x y z} < \SI{10}{m\metre}$\\$\ang{-3} < \theta_{x y z} < \ang{3}$};
% Frame
\coordinate[] (frame) at ($0.14*(aheight)+0.65*(awidth)$);
\draw[<-] (frame) -- (frame-|xleftlabel) node[right, legend]{Frame fixed\\on the granite};
% X-Ray
\draw[color=red, ->-=0.7] ($0.92*(aheight)+0.8*(awidth)$) -- node[above, color=black]{X-ray} ++(190:1.8);
% Size of the setup
\draw[dashed, <->, color=black!70, line width=0.5pt] ($0.03*(aheight)+0.35*(awidth)$) -- node[below, color=black, pos=0.6]{$\approx\SI{1}{m}$} ($0.14*(aheight)+0.98*(awidth)$);
\draw[dashed, <->, color=black!70, line width=0.5pt] ($0.032*(aheight)+0.32*(awidth)$) -- node[left, color=black, pos=0.4]{$\approx\SI{1}{m}$} ($0.305*(aheight)+0.0*(awidth)$);
% Axis
\begin{scope}[shift={(0.0, 0.7)}]
\draw[->] (0, 0) -- ++(195:0.8) node[above] {$x$};
\draw[->] (0, 0) -- ++(90:0.9) node[right] {$z$};
\draw[->] (0, 0) -- ++(-40:0.7) node[above] {$y$};
\end{scope}
\end{tikzpicture}
#+end_src
#+name: fig:assemblage
#+caption: CAD View of the ID31 end station ([[./figs/assemblage.png][png]], [[./figs/assemblage.pdf][pdf]], [[./figs/assemblage.tex][tex]]).
#+RESULTS:
[[file:figs/assemblage.png]]
* Fig 3: Picture of the ID31 end station
#+begin_src latex :file exp_setup.pdf :tangle figs/exp_setup.tex :exports both
\begin{tikzpicture}
\node[inner sep=0pt, anchor=south west] (photo) at (0,0)
{\includegraphics[width=0.39\textwidth]{/home/thomas/Cloud/thesis/papers/dehaeze18_sampl_stabil_for_tomog_exper/tikz/img/exp_setup_photo.png}};
\coordinate[] (aheight) at (photo.north west);
\coordinate[] (awidth) at (photo.south east);
\coordinate[] (granite) at ($0.1*(aheight)+0.1*(awidth)$);
\coordinate[] (trans) at ($0.5*(aheight)+0.4*(awidth)$);
\coordinate[] (tilt) at ($0.65*(aheight)+0.75*(awidth)$);
\coordinate[] (hexapod) at ($0.7*(aheight)+0.5*(awidth)$);
\coordinate[] (sample) at ($0.9*(aheight)+0.55*(awidth)$);
% Granite
\node[labelc] at (granite) {1};
% Translation stage
\node[labelc] at (trans) {2};
% Tilt Stage
\node[labelc] at (tilt) {3};
% Micro-Hexapod
\node[labelc] at (hexapod) {4};
% Sample
\node[labelc] at (sample) {5};
% Axis
\begin{scope}[shift={($0.07*(aheight)+0.87*(awidth)$)}]
\draw[->] (0, 0) -- ++(55:0.7) node[above] {$y$};
\draw[->] (0, 0) -- ++(90:0.9) node[left] {$z$};
\draw[->] (0, 0) -- ++(-20:0.7) node[above] {$x$};
\end{scope}
\end{tikzpicture}
#+end_src
#+name: fig:exp_setup
#+caption: Picture of the ID31 end station ([[./figs/exp_setup.png][png]], [[./figs/exp_setup.pdf][pdf]], [[./figs/exp_setup.tex][tex]]).
#+RESULTS:
[[file:figs/exp_setup.png]]
* Fig 4: Schematic representation of the NASS added below the sample and the control architecture used
#+begin_src latex :file system_control.pdf :tangle figs/system_control.tex :exports results
\begin{tikzpicture}
% Parameters
\def\blockw{6.0cm}
\def\blockh{1.2cm}
% Translation Stage
\begin{scope}
% Translation Stage - fixed part
\draw[fill=black!40] (-0.5*\blockw, 0) coordinate[](tyb) rectangle (0.5*\blockw, 0.15*\blockh);
\coordinate[] (measposbot) at (0.5*\blockw, 0);
% Tilt
\path[] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) %
-- ([shift=(-70:4*\blockh)]0, 4.9*\blockh) arc (-70:-60:4*\blockh)%
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) coordinate(tiltte) -| cycle;
% Spindle
\coordinate[] (spindlese) at (spindlesw-|spindlene);
\draw[fill=black!30] ($(spindlese)+(-0.1,0.1)+(-0.1*\blockw, 0)$) -| ($(spindlene)+(-0.1, 0)$) -| coordinate[pos=0.25](spindletop) ($(spindlesw)+(0.1,0.1)$) -| ++(0.1*\blockw, -\blockh) -| coordinate[pos=0.25](spindlebot) cycle;
\draw[dashed, color=black!60] ($(spindletop)+(0, 0.2)$) -- ($(spindlebot)+(0,-0.2)$);
% Tilt
\draw[fill=black!60] ([shift=(-120:4*\blockh)]0, 4.9*\blockh) coordinate(beginarc) arc (-120:-110:4*\blockh) %
-- ([shift=(-70:4*\blockh)]0, 4.9*\blockh) arc (-70:-60:4*\blockh)%
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) -| cycle;
% Translation Stage - mobile part
\draw[fill=black!10, fill opacity=0.5] (-0.5*\blockw, 0.2*\blockh) -- (-0.5*\blockw, 1.5*\blockh) coordinate[](tyt) -- (0.5*\blockw, 1.5*\blockh) -- (0.5*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.2*\blockh) -- cycle;
% Translation Guidance
\draw[dashed, color=black!60] ($(-0.5*\blockw, 0)+( 0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
\draw[dashed, color=black!60] ($( 0.5*\blockw, 0)+(-0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
% Tilt Guidance
\draw[dashed, color=black!60] ([shift=(-110:4*\blockh)]0, 4.8*\blockh) arc (-110:-120:4*\blockh);
\draw[dashed, color=black!60] ([shift=( -70:4*\blockh)]0, 4.8*\blockh) arc (-70:-60:4*\blockh);
\end{scope}
% Micro-Hexapod
\begin{scope}[shift={(spindletop)}]
% Parameters definitions
\def\baseh{0.2*\blockh} % Height of the base
\def\naceh{0.2*\blockh} % Height of the nacelle
\def\baser{0.22*\blockw} % Radius of the base
\def\nacer{0.18*\blockw} % Radius of the nacelle
\def\armr{0.2*\blockh} % Radius of the arms
\def\basearmborder{0.2}
\def\nacearmborder{0.2}
\def\xnace{0} \def\ynace{\blockh-\naceh} \def\anace{0}
\def\xbase{0} \def\ybase{0} \def\abase{0}
% Hexapod1
\begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
% Base
\draw[fill=white] (-\baser, 0) coordinate[](uhexabot) rectangle (\baser, \baseh);
\coordinate[] (armbasel) at (-\baser+\basearmborder+\armr, \baseh);
\coordinate[] (armbasec) at (0, \baseh);
\coordinate[] (armbaser) at (\baser-\basearmborder-\armr, \baseh);
% Nacelle1
\begin{scope}[shift={(\xnace, \ynace)}, rotate=\anace]
\draw[fill=white] (-\nacer, 0) rectangle (\nacer, \naceh);
\coordinate[] (uhexatop) at (0, \naceh);
\coordinate[] (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
\coordinate[] (armnacec) at (0, 0);
\coordinate[] (armnacer) at (\nacer-\nacearmborder-\armr, 0);
\end{scope}
% Nacelle1 END
\draw[] (armbasec) -- (armnacer);
\draw[] (armbasec) -- (armnacel);
\draw[] (armbasel) -- (armnacel);
\draw[] (armbasel) -- (armnacec);
\draw[] (armbaser) -- (armnacec);
\draw[] (armbaser) -- (armnacer);
\end{scope}
\end{scope}
% NASS
\begin{scope}[shift={(uhexatop)}]
% Parameters definitions
\def\baseh{0.1*\blockh} % Height of the base
\def\naceh{0.1*\blockh} % Height of the nacelle
\def\baser{0.16*\blockw} % Radius of the base
\def\nacer{0.14*\blockw} % Radius of the nacelle
\def\armr{0.1*\blockh} % Radius of the arms
\def\basearmborder{0.2}
\def\nacearmborder{0.2}
\def\xnace{0} \def\ynace{0.6*\blockh-\naceh} \def\anace{0}
\def\xbase{0} \def\ybase{0} \def\abase{0}
% Hexapod1
\begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
% Base
\draw[fill=red!50!black] (-\baser, 0) coordinate[](nhexabot) rectangle (\baser, \baseh);
\coordinate[] (armbasel) at (-\baser+\basearmborder+\armr, \baseh);
\coordinate[] (armbasec) at (0, \baseh);
\coordinate[] (armbaser) at (\baser-\basearmborder-\armr, \baseh);
% Nacelle1
\begin{scope}[shift={(\xnace, \ynace)}, rotate=\anace]
\draw[fill=red!50!black] (-\nacer, 0) rectangle (\nacer, \naceh);
\coordinate[] (nhexatop) at (0, \naceh);
\coordinate[] (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
\coordinate[] (armnacec) at (0, 0);
\coordinate[] (armnacer) at (\nacer-\nacearmborder-\armr, 0);
\coordinate[] (measpostop) at (\nacer, \naceh);
\end{scope}
% Nacelle1 END
\draw[color=red!50!black] (armbasec) -- (armnacer);
\draw[color=red!50!black] (armbasec) -- (armnacel);
\draw[color=red!50!black] (armbasel) -- (armnacel);
\draw[color=red!50!black] (armbasel) -- (armnacec);
\draw[color=red!50!black] (armbaser) -- (armnacec);
\draw[color=red!50!black] (armbaser) -- (armnacer);
% Force actuator
\coordinate[] (nassfbot) at (0.8*\baser, \baseh);
\coordinate[] (nassftop) at (armnacec-|nassfbot);
\end{scope}
\end{scope}
% Sample
\begin{scope}[shift={(nhexatop)}]
\draw[fill=white] (-0.1*\blockw, 0) coordinate[](samplebot) rectangle coordinate[pos=0.5](samplecenter) (0.1*\blockw, \blockh) coordinate[](sampletop);
\end{scope}
% Laser
\begin{scope}[shift={(samplecenter)}]
\draw[color=red, -<-=0.5] (samplecenter) node[circle, fill=red, inner sep=0pt, minimum size=3pt]{} -- node[midway, above, color=black]{X-ray} ($(samplecenter)+(0.5*\blockw,0)$);
\end{scope}
%% Measurement
\draw[dashed, color=black!50] (measposbot) -- ++(0.8,0) coordinate (measposbotend);
\draw[dashed, color=black!50] (measpostop) -- (measpostop-|measposbotend) coordinate (measpostopend);
\draw[<->, dashed] ($(measposbotend)+(-0.2, 0)$) -- node[midway, left](d){$d$} ($(measpostopend)+(-0.2, 0)$);
%% Control
\draw[<->, line width=0.5pt] (nassfbot) -- node[midway, right](F){$F$} (nassftop);
\node[draw, block={2.3em}{1.7em}, right=0.3 of F] (K){$K$};
\draw[->] (d.west) -| ($(K.east)+(0.5, 0)$) -- (K.east);
\draw[->] (K.west) -- (F.east);
\end{tikzpicture}
#+end_src
#+name: fig:system_control
#+caption: Schematic representation of the NASS added below the sample and the control architecture used ([[./figs/system_control.png][png]], [[./figs/system_control.pdf][pdf]], [[./figs/system_control.tex][tex]]).
#+RESULTS:
[[file:figs/system_control.png]]
* Fig 5: Transfer function from a force applied by the NASS to the displacement of the sample
#+name: fig:G_x_mass
#+caption: Transfer function from a force applied by the NASS to the displacement of the sample ([[./figs/G_x_mass.png][png]], [[./figs/G_x_mass.pdf][pdf]]).
#+RESULTS:
[[file:figs/G_x_mass.png]]
* Fig 6: General control configuration applied to the end station
#+begin_src latex :file general_conf_K.pdf :tangle figs/general_conf_K.tex :exports both
\begin{tikzpicture}
% Blocs
\node[block={2.5cm}{2cm}] (P) {P};
\node[block={2.5cm}{2cm}, below=1 of P, scale=0.6] (K) {\[%
\begin{pmatrix}
K_{T_x} & 0 & \cdots & 0 \\
0 & \ddots & \ddots & \vdots \\
\vdots & \ddots & \ddots & 0 \\
0 & \cdots & 0 & K_{\theta_z} \\
\end{pmatrix}
\]};
% Block names
\node[above] at (P.north) {End Station};
\node[above] at (K.north) {Controller};
% Input and outputs coordinates
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west)$);
\coordinate[] (inputu) at ($(P.south west)!0.25!(P.north west)$);
\coordinate[] (outputz) at ($(P.south east)!0.75!(P.north east)$);
\coordinate[] (outputv) at ($(P.south east)!0.25!(P.north east)$);
% Connections and labels
\draw[<-] (inputw) node[above left]{$w$} -- ++(-0.8, 0);
\draw[<-] (inputu) node[above left]{$F$} -- ++(-0.8, 0) |- (K.west);
\draw[->] (outputz) node[above right]{$z$} -- ++(0.8, 0);
\draw[->] (outputv) node[above right]{$d$} -- ++(0.8, 0) |- (K.east);
\end{tikzpicture}
#+end_src
#+name: fig:general_conf_K
#+caption: General control configuration applied to the end station ([[./figs/general_conf_K.png][png]], [[./figs/general_conf_K.pdf][pdf]], [[./figs/general_conf_K.tex][tex]]).
#+RESULTS:
[[file:figs/general_conf_K.png]]
* Fig 7: Bode plot of the loop gain for the control in the x direction
#+begin_src latex :file loopgain.pdf :tangle figs/loopgain.tex :exports results
\setlength\fwidth{6cm}
\setlength\fheight{4cm}
\definecolor{mycolor1}{rgb}{0.00000,0.44700,0.74100}%
\begin{tikzpicture}
\begin{axis}[%
width=\fwidth,
height=0.468\fheight,
at={(0\fwidth,0\fheight)},
scale only axis,
xmode=log,
xmin=0.001,
xmax=1000,
xminorticks=true,
xlabel={Frequency [Hz]},
ymin=-180,
ymax=0,
ytick={-180, -90, 0},
ylabel={Phase [deg]},
xminorgrids
]
\addplot [color=mycolor1, line width=1.5pt, forget plot]
table[row sep=crcr]{%
0.001 -86.9230400300902\\
0.00113254131515284 -86.5161615171006\\
0.00128264983052803 -86.0557813841993\\
0.00145265392594678 -85.5350002408076\\
0.00164519058775369 -84.9460899281546\\
0.00186324631193151 -84.2804214998321\\
0.00211020342856859 -83.5283999677203\\
0.00238989256623109 -82.6794134157273\\
0.00270665207003317 -81.7218075729806\\
0.00306539529505651 -80.6429015759928\\
0.00347168681892662 -79.4290665745648\\
0.00393182875570566 -78.065895985946\\
0.00445295850994262 -76.538504078701\\
0.00504315948717143 -74.8319968731543\\
0.00571158647812626 -72.9321634787283\\
0.00655868565957134 -70.5792954692951\\
0.00753142016597439 -67.9593596120116\\
0.00864842327573189 -65.0664370245527\\
0.0100693863147606 -61.5741194134637\\
0.0118870769771187 -57.421656103812\\
0.0146273335620117 -51.8219472331176\\
0.020956623994805 -41.5941699296152\\
0.0272543253128104 -34.3147123276736\\
0.0330764978074424 -29.3522854368237\\
0.0390473523688559 -25.4714274931074\\
0.0454629546953248 -22.2505877719071\\
0.0522056752784682 -19.6091054797758\\
0.0599484250318932 -17.2353430360798\\
0.0688395206964551 -15.1167931083143\\
0.0790492762269657 -13.2363433974286\\
0.0895265712599616 -11.7313485137543\\
0.101392540755881 -10.3884198836668\\
0.114831241454353 -9.19270190007785\\
0.130051125217337 -8.129867210165\\
0.147288272390749 -7.18639582677577\\
0.166810053720008 -6.34973164966198\\
0.188919277620761 -5.60835214561624\\
0.21395888713434 -4.95177917643261\\
0.242317279423763 -4.37055207200137\\
0.274434330322828 -3.85617846234896\\
0.310808217386903 -3.40107416303749\\
0.352003147279672 -2.99850045087254\\
0.398658107358031 -2.64250524757711\\
0.451496777203605 -2.32787399109969\\
0.511338753841437 -2.05009640659685\\
0.579112264764194 -1.80535734119462\\
0.655868565957134 -1.59056413001801\\
0.742798248256497 -1.40343141244551\\
0.829695852083464 -1.25923533113843\\
0.926759330114683 -1.13580182223197\\
1.02096066230607 -1.04567008665731\\
1.10928986489522 -0.983076466909012\\
1.18870769771187 -0.942748031361987\\
1.25631660247414 -0.919492395190701\\
1.32777082935543 -0.905645505513149\\
1.38401609657311 -0.902495748073335\\
1.44264395121811 -0.906637885889353\\
1.50375532129977 -0.919350533688032\\
1.5674554102056 -0.942283818027818\\
1.63385387780984 -0.977590942238891\\
1.7030650292528 -1.02811983230166\\
1.77520801171768 -1.09769941794892\\
1.85040701954232 -1.19157983197587\\
1.92879150802077 -1.31713239076257\\
2.01049641626046 -1.48500742420691\\
2.0956623994805 -1.71114152687935\\
2.18443607114946 -2.02044130104792\\
2.27697025538168 -2.45403813004899\\
2.37342425002384 -3.08492033944978\\
2.47396410088675 -4.05587348265055\\
2.54334576130472 -5.03584114101898\\
2.61467321180114 -6.49907553279095\\
2.68800102153763 -8.88214292906235\\
2.76338529005317 -13.354064152394\\
2.80186655645918 -17.3986658770742\\
2.84088369018327 -24.2751390526001\\
2.88044415339625 -37.781789043342\\
3.04427221206439 -153.089412264589\\
3.12964801067081 -163.361838014791\\
3.2174181506764 -167.646995232098\\
3.30764978074424 -169.946059814047\\
3.40041193270367 -171.357679809003\\
3.54445567397035 -172.655016160482\\
3.6946012051994 -173.436137635495\\
3.85110700232562 -173.933812817475\\
4.01424249049931 -174.257393246655\\
4.18428850790151 -174.4646688106\\
4.36153778920815 -174.588695605604\\
4.48385594802129 -174.635301329573\\
4.60960448682849 -174.657754988001\\
4.6737951079925 -174.660827208184\\
4.73887960971767 -174.658832887219\\
4.8717802187946 -174.640476674262\\
5.00840798984813 -174.603950791937\\
5.22056752784682 -174.516428210249\\
5.441714286866 -174.389392765672\\
5.67222897164457 -174.219814333695\\
5.91250841383182 -174.000798395784\\
6.16296625513279 -173.719605189933\\
6.42403365939436 -173.353437736057\\
6.6961600548533 -172.8600623009\\
6.97981390783064 -172.154567905915\\
7.17556091893683 -171.479151685091\\
7.37679760252756 -170.505033346522\\
7.58367791499744 -168.953501864271\\
7.79636013040541 -166.039227129299\\
7.90492762269657 -163.326399484374\\
8.01500696156551 -158.425074974019\\
8.12661920009201 -147.163534154026\\
8.23978568452855 -108.490722009947\\
8.35452805838285 -39.2987527386226\\
8.47086826655735 -16.8673944739431\\
8.70843149769058 -5.34729407739999\\
8.95265712599616 -1.65005171340454\\
9.20373199661849 0.152175631815396\\
9.59360828709328 1.68981529224504\\
10 2.57693032874369\\
10.4236067397639 3.15733209351166\\
10.8651577465251 3.56217310328162\\
11.3254131515284 3.84724990024554\\
11.8051652856881 4.03703864714163\\
12.1362379834424 4.11495115930705\\
12.4765955263085 4.15359855581249\\
12.6503372039588 4.15747732307207\\
12.8264983052803 4.15043280598672\\
13.0051125217337 4.13183659520382\\
13.3698374182498 4.05678039326017\\
13.7447909267756 3.92430359475409\\
14.1302599059955 3.72339859325277\\
14.5265392594678 3.43912195016375\\
15.1418932530433 2.80995290344029\\
15.7833140565207 1.84144930317055\\
16.4519058775369 0.357600406773344\\
17.1488196987055 -1.95805932965996\\
17.629753752872 -4.24769467342912\\
18.1241754737421 -7.49879374268141\\
18.6324631193151 -12.2895185907882\\
19.1550055557359 -19.6586546321866\\
19.6922025547921 -31.4767017779205\\
20.2444650997683 -50.3815406826951\\
21.6938351838516 -108.829423515067\\
22.3022329796589 -121.551731912588\\
22.9276931286572 -129.314261975131\\
23.5706941399678 -134.162367162735\\
24.2317279423763 -137.232072144463\\
24.911300260678 -139.111199098336\\
25.6099310025844 -140.072854680469\\
25.9665597293484 -140.231509177618\\
26.3281546564798 -140.155965300896\\
26.6947849403426 -139.803432624913\\
27.0665207003317 -139.093236181157\\
27.4434330322828 -137.878977744969\\
27.8255940220721 -135.89172273756\\
28.2130767593954 -132.623017321418\\
28.605955351758 -127.107024286851\\
29.8177229001969 -94.9300384636171\\
30.2329468440578 -103.828100398765\\
31.0808217386903 -135.723061113021\\
31.9524750575915 -144.530826342356\\
32.8485736602995 -146.764803761063\\
33.7698031082518 -147.383975143133\\
34.240061379715 -147.464959137832\\
34.7168681892662 -147.465768456844\\
35.2003147279672 -147.412812105583\\
36.1874981241128 -147.204400166182\\
37.7204249341695 -146.744853741172\\
40.4209583979642 -145.784576097822\\
45.1496777203605 -144.012151723289\\
69.3171727615563 -136.903840188638\\
76.3629826128223 -135.635375465298\\
81.8300681586717 -134.889641861299\\
87.6885609458755 -134.304824213283\\
92.6759330114683 -133.962419777004\\
96.6017479952245 -133.776557449691\\
102.096066230607 -133.602011570544\\
110.928986489522 -133.37236734447\\
115.628013120735 -133.182903594213\\
120.526093687088 -132.884672766565\\
125.631660247414 -132.453724169695\\
132.777082935543 -131.692904291565\\
156.74554102056 -129.240997662534\\
165.660595894989 -128.680395334725\\
175.082703173578 -128.277734622978\\
185.040701954232 -127.945081262175\\
187.617469143913 -127.820094314385\\
190.230118866895 -127.573368660463\\
195.565071586593 -125.952899216536\\
198.288394912704 -127.086793358268\\
201.049641626046 -127.12566028822\\
203.849339825241 -126.802951397854\\
206.688024962902 -126.078681186513\\
209.56623994805 -124.471962454244\\
212.484535249894 -120.238438418219\\
218.443607114946 -90.7600450671552\\
224.569799553979 -122.445868680239\\
227.697025538168 -125.738988609759\\
234.082727617828 -127.907664531251\\
240.647515001538 -128.721847293873\\
250.841505927762 -129.407668937987\\
268.800102153763 -130.224611859747\\
288.044415339625 -130.869017615199\\
300.246170908546 -131.125027941194\\
312.964801067081 -131.267297460602\\
317.322963473503 -131.317798256336\\
321.74181506764 -131.398779497843\\
326.222200971169 -131.536370879424\\
335.371015200291 -132.072009002596\\
349.577557436321 -133.495123305872\\
379.82153061908 -136.503731402986\\
412.68208457029 -138.883629456353\\
651.349094627294 -151.296712222682\\
758.367791499744 -155.305634720384\\
933.189771573347 -160.939627474856\\
1000 -163.089713371593\\
};
\draw[<->] (200, -180) -- node[left]{$\Delta\phi$} (200, -127);
\end{axis}
\begin{axis}[%
width=\fwidth,
height=0.468\fheight,
at={(0\fwidth,0.53\fheight)},
scale only axis,
xmode=log,
xmin=0.001,
xmax=1000,
xtick={0.001,0.01,0.1,1,10,100,1000},
xticklabels={{}},
xminorticks=true,
ymode=log,
ymin=0.1,
ymax=10000,
ytick={1, 100, 10000},
yticklabels={{$10^0$}, {$10^2$}, {$10^4$}},
yminorticks=true,
ylabel={Amplitude},
xminorgrids,
yminorgrids
]
\addplot [color=mycolor1, line width=1.5pt, forget plot]
table[row sep=crcr]{%
0.001 4422.92805227793\\
0.00328485736603004 1365.31862071646\\
0.00540421642070592 851.028353579162\\
0.00753142016597438 632.653237306165\\
0.0097946966706954 509.595911658568\\
0.0122204468663149 432.413356356167\\
0.0150375532129974 377.661157222189\\
0.0182499324481615 339.019826082366\\
0.0218443607114943 311.846377672925\\
0.0261467321180109 291.384120920123\\
0.0317322963473498 275.223592402322\\
0.0390473523688556 263.013082563784\\
0.0493962174387832 253.746973448817\\
0.065134909462728 247.006069407616\\
0.0933189771573324 242.294146668305\\
0.153527502878042 239.72600231592\\
0.294082017058706 240.030635865746\\
0.483820966492596 243.498710820624\\
0.674262224177834 249.295070811676\\
0.852964449974102 256.991790045004\\
1.02096066230605 266.579744717582\\
1.1887076977119 278.947958161191\\
1.34626057929891 293.779246196022\\
1.50375532129974 312.661093047946\\
1.65660595894991 336.185831446107\\
1.79992850678248 364.669087749645\\
1.92879150802078 397.755267940252\\
2.06688024962908 444.686960935947\\
2.18443607114943 498.687405697471\\
2.30867799418717 578.140511304515\\
2.43998629725955 705.49461262437\\
2.54334576130465 864.909089681418\\
2.65108360190854 1150.06397953612\\
2.72543253128103 1506.15645554669\\
2.8018665564592 2228.3370936465\\
2.8804441533963 4193.22407546881\\
2.92055551218275 6067.22774922962\\
2.96122543798803 5767.93091362259\\
3.08666494333727 1919.21060989611\\
3.21741815067637 1022.91140002102\\
3.40041193270371 594.941650908705\\
3.59381366380463 399.789258032443\\
3.85110700232557 268.344597258036\\
4.24255643071778 168.542908273869\\
4.93962174387832 88.8944916899213\\
5.91250841383188 41.6193619266362\\
6.42403365939419 27.7139106670782\\
6.8839520696455 18.3939139229947\\
7.27548352919622 12.0540140950493\\
7.58367791499719 7.82435961362363\\
7.79636013040524 5.22341787877031\\
8.0150069615654 2.80090242471201\\
8.23978568452852 0.851222686892883\\
8.35452805838287 1.10279073449891\\
8.58882855954625 3.0597069105514\\
8.82969995549409 5.10178151912975\\
9.20373199661822 8.05539647260134\\
9.59360828709315 10.8672597721215\\
10.1392540755881 14.4783720901258\\
10.8651577465254 18.8768193229402\\
11.8051652856881 24.255174820108\\
13.7447909267754 35.9992755224308\\
15.3527502878042 48.989108545494\\
16.4519058775366 61.9675236867468\\
17.3876240021625 78.2815769152408\\
18.3765620038817 105.759628528362\\
19.4217468148902 157.125319034049\\
20.2444650997681 212.311484261712\\
20.5263775270925 223.395136619031\\
20.8122156998634 223.31019692555\\
21.102034285686 211.480808183564\\
21.6938351838519 170.401012319889\\
23.5706941399673 83.0113918816975\\
25.2582002696278 52.3889785574963\\
29.0043049386399 23.0579347642099\\
29.4082017058706 24.4565997966304\\
30.6539529505653 49.7034890482232\\
32.8485736603005 28.6861284535607\\
34.7168681892656 22.3457836268213\\
37.2023668141307 17.729174858676\\
40.9838367175726 13.6240017002393\\
45.7784053837662 10.5334890367744\\
52.5679112201842 7.94129019098635\\
61.204983724767 6.02168414080117\\
73.2596542821523 4.48575405397529\\
92.6759330114688 3.1513822405149\\
115.628013120738 2.24687301549495\\
142.283045721435 1.63031165449062\\
190.230118866895 1.07794465396548\\
192.879150802078 1.0470765391348\\
195.565071586595 1.05528467531233\\
201.04964162605 0.990057161720141\\
206.688024962908 0.906527126546888\\
212.484535249888 0.776923494421282\\
215.443469003188 0.720692210359804\\
221.485523372636 1.37364107537187\\
227.697025538168 1.14258167143738\\
234.082727617829 1.03095880733361\\
243.998629725955 0.937175973822169\\
261.467321180109 0.834076758655\\
300.246170908555 0.684629245816208\\
321.741815067637 0.630828877951377\\
359.381366380463 0.561557761925202\\
407.014245321944 0.468733319273131\\
567.222897164455 0.282413087945242\\
707.701066118189 0.196058644388651\\
1000 0.108243919936631\\
};
\node[color=red,cross out,draw, inner sep=0pt, outer sep=0pt, minimum size=4pt] at (0.0218, 311.84) {};
\node[color=red,circle,draw, inner sep=0pt, outer sep=0pt, minimum size=4pt] at (73.259, 4.4857) {};
\node[color=red,cross out,draw, inner sep=0pt, outer sep=0pt, minimum size=4pt] at (567.22,0.282) {};
\draw [decorate,decoration={brace,amplitude=3pt}] (73, 50) -- node[above]{Lead} (567, 50);
\draw [decorate,decoration={brace,mirror,amplitude=3pt}] (0.001, 50) -- node[below]{Integral} (0.023, 50);
\end{axis}
\end{tikzpicture}%
#+end_src
#+name: fig:loopgain
#+caption: Bode plot of the loop gain for the control in the x direction ([[./figs/loopgain.png][png]], [[./figs/loopgain.pdf][pdf]], [[./figs/loopgain.tex][tex]]).
#+RESULTS:
[[file:figs/loopgain.png]]
* Fig 8: Positioning error of the sample in the x and y direction during the simulation of a tomography experiment
#+name: fig:exp_w_wo_nass_xy
#+caption: Positioning error of the sample in the x and y direction during the simulation of a tomography experiment ([[./figs/exp_w_wo_nass_xy.png][png]], [[./figs/exp_w_wo_nass_xy.pdf][pdf]]).
#+RESULTS:
[[file:figs/exp_w_wo_nass_xy.png]]
* Fig 1: Schematic of the Tomography Experiment (Poster)
#+begin_src latex :file exp_full_setup.pdf :tangle figs/exp_full_setup.tex :exports results
\begin{tikzpicture}
% Parameters
\def\blockw{6.0cm}
\def\blockh{1.2cm}
\def\tiltdeg{3}
\coordinate[] (rotationpoint) at (0, 4.5*\blockh);
\begin{scope}[rotate around={\tiltdeg:(rotationpoint)}]
% Tilt
\path[] ([shift=(-120:4*\blockh)]rotationpoint) coordinate(beginarc) arc (-120:-110:4*\blockh) %
-- ([shift=(-70:4*\blockh)]rotationpoint) arc (-70:-60:4*\blockh)%
|- ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) coordinate(tiltte) -| cycle;
% Spindle
\coordinate[] (spindlese) at (spindlesw-|spindlene);
\draw[fill=black!30] ($(spindlese)+(-0.1,0.1)+(-0.1*\blockw, 0)$) -| ($(spindlene)+(-0.1, 0)$) -| coordinate[pos=0.25](spindletop) ($(spindlesw)+(0.1,0.1)$) -| ++(0.1*\blockw, -\blockh) -| coordinate[pos=0.25](spindlebot) cycle;
% \draw[dashed, color=black!60] ($(spindletop)+(0, 0.2)$) -- ($(spindlebot)+(0,-0.2)$);
% Tilt
\draw[fill=black!60] ([shift=(-120:4*\blockh)]rotationpoint) coordinate(beginarc) arc (-120:-110:4*\blockh) %
-- ([shift=(-70:4*\blockh)]rotationpoint) arc (-70:-60:4*\blockh)%
|- coordinate (tiltne) ++(-0.15*\blockw, 0.6*\blockh) coordinate (spindlene)%
|- ($(beginarc) + (0.15*\blockw, 0.2*\blockh)$) coordinate (spindlesw) -- ++(0, 0.4*\blockh) -| cycle;
% Micro-Hexapod
\begin{scope}[shift={(spindletop)}]
% Parameters definitions
\def\baseh{0.22*\blockh} % Height of the base
\def\naceh{0.18*\blockh} % Height of the nacelle
\def\baser{0.22*\blockw} % Radius of the base
\def\nacer{0.18*\blockw} % Radius of the nacelle
\def\armr{0.2*\blockh} % Radius of the arms
\def\basearmborder{0.2}
\def\nacearmborder{0.2}
\def\xnace{0} \def\ynace{\blockh-\naceh} \def\anace{0}
\def\xbase{0} \def\ybase{0} \def\abase{0}
% Hexapod1
\begin{scope}[shift={(\xbase, \ybase)}, rotate=\abase]
% Base
\draw[fill=white] (-\baser, 0) coordinate[](uhexabot) rectangle (\baser, \baseh);
\coordinate[] (armbasel) at (-\baser+\basearmborder+\armr, \baseh);
\coordinate[] (armbasec) at (0, \baseh);
\coordinate[] (armbaser) at (\baser-\basearmborder-\armr, \baseh);
\begin{scope}[shift={(\xnace, \ynace)}, rotate=\anace]
\draw[fill=white] (-\nacer, 0) rectangle (\nacer, \naceh);
\coordinate[] (uhexatop) at (0, \naceh);
\coordinate[] (armnacel) at (-\nacer+\nacearmborder+\armr, 0);
\coordinate[] (armnacec) at (0, 0);
\coordinate[] (armnacer) at (\nacer-\nacearmborder-\armr, 0);
\end{scope}
\draw[] (armbasec) -- (armnacer);
\draw[] (armbasec) -- (armnacel);
\draw[] (armbasel) -- coordinate(mhexaw) (armnacel);
\draw[] (armbasel) -- (armnacec);
\draw[] (armbaser) -- (armnacec);
\draw[] (armbaser) -- coordinate(mhexae) (armnacer);
\end{scope}
\end{scope}
% Sample
\begin{scope}[shift={(uhexatop)}]
\draw[fill=white] (-0.1*\blockw, 0) coordinate[](samplebot) rectangle coordinate[pos=0.5](samplecenter) node[pos=0.5, above]{Sample} (0.1*\blockw, \blockh) coordinate[](samplene);
\coordinate[](samplenw) at (-0.1*\blockw, \blockh);
\end{scope}
\end{scope}
\begin{scope}[shift={(0, -0.3*\blockh)}]
% Translation Stage - fixed part
\draw[fill=black!40] (-0.5*\blockw, 0) coordinate[](tyb) rectangle (0.5*\blockw, 0.15*\blockh);
\coordinate[] (measposbot) at (0.5*\blockw, 0);
% Translation Stage - mobile part
\draw[fill=black!10, fill opacity=0.5] (-0.5*\blockw, 0.2*\blockh) -- (-0.5*\blockw, 1.5*\blockh) coordinate[](tyt) -- (0.5*\blockw, 1.5*\blockh) -- (0.5*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.2*\blockh) -- (0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.8*\blockh) -- (-0.35*\blockw, 0.2*\blockh) -- cycle;
% Translation Guidance
\draw[dashed, color=black!60] ($(-0.5*\blockw, 0)+( 0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
\draw[dashed, color=black!60] ($( 0.5*\blockw, 0)+(-0.075*\blockw,0.5*\blockh)$) circle (0.2*\blockh);
% Tilt Guidance
\draw[dashed, color=black!60] ([shift=(-107:4.1*\blockh)]rotationpoint) arc (-107:-120:4.1*\blockh);
\draw[dashed, color=black!60] ([shift=( -73:4.1*\blockh)]rotationpoint) arc (-73:-60:4.1*\blockh);
\end{scope}
% % Vertical line
% \draw[dashed, color=black] (samplecenter) -- ++(0, -4*\blockh);
% \begin{scope}[rotate around={\tiltdeg:(samplecenter)}]
% \draw[dashed, color=black] (samplecenter) -- ++(0, -4*\blockh);
% \node[] at ($(samplecenter)+(0, -2.3*\blockh)$) {\AxisRotator[rotate=-90]};
% \node[right, shift={(0.3,0)}] at ($(samplecenter)+(0, -2.3*\blockh)$) {$\theta_z$};
% \end{scope}
% \draw[->] ([shift=(-90:3.6*\blockh)]samplecenter) arc (-90:-87:3.6*\blockh) node[right]{$\theta_y$};
% Laser
\begin{scope}[shift={(samplecenter)}]
\draw[color=red, -<-=0.3] (samplecenter) node[circle, fill=red, inner sep=0pt, minimum size=3pt]{} -- node[pos=0.3, above, color=black]{X-ray} ($(samplecenter)+(1.2*\blockw,0)$);
\end{scope}
% Axis
\begin{scope}[shift={(-0.35*\blockw, 3*\blockh)}]
\def\axissize{0.8cm}
\draw[->] (0, 0) -- ++(0, \axissize) node[right]{$z$};
\draw[->] (0, 0) -- ++(-\axissize, 0) node[above]{$x$};
\draw[fill, color=black] (0, 0) circle (0.05*\axissize);
\node[draw, circle, inner sep=0pt, minimum size=0.4*\axissize, label=right:$y$] (yaxis) at (0, 0){};
% \node[draw, circle, inner sep=0pt, cross, minimum size=0.4*\axissize, label=left:$y$] (yaxis) at (0, 0){};
\end{scope}
\node[fit={($(-0.6*\blockw, -0.5*\blockh)$) ($(0.6*\blockw, 4*\blockh)$)}, inner sep=0pt, draw, dashed, color=gray, label={Positioning Station}] (possystem) {};
\draw[fill=black!30] ($(tyb)+(-5, -1)$) coordinate[](granitesw) rectangle node[pos=0.5]{Granite Frame} ($(measposbot)+(5, 0)$) coordinate[](granitene);
% Focusing Optics
\draw[fill=black!20] ($(granitene)+(-1.5, 3)$) rectangle ++(-1, 2);
\draw[spring] ($(granitene)+(-2, 0)$) -- ++(0, 3);
\node[fit={($(granitene)+(-2.8, -0.2)$) ($(granitene)+(-1.2, 5.2)$)}, inner sep=0pt, draw, dashed, color=gray, label={Focusing Optics}] () {};
% Measurement Optics
\draw[fill=black!20] ($(granitesw)+(1.5, 4)$) rectangle ++(1, 2);
\draw[spring] ($(granitesw)+(2, 1)$) -- ++(0, 3);
\node[fit={($(granitesw)+(2.8, 0.8)$) ($(granitesw)+(1.2, 6.2)$)}, inner sep=0pt, draw, dashed, color=gray, label={Imagery System}] () {};
\end{tikzpicture}
#+end_src
#+name: fig:exp_full_setup
#+caption: Schematic of the Tomography Experiment ([[./figs/exp_full_setup.png][png]], [[./figs/exp_full_setup.pdf][pdf]], [[./figs/exp_full_setup.tex][tex]]).
#+RESULTS:
[[file:figs/exp_full_setup.png]]