diff --git a/.gitignore b/.gitignore index 6b7e1a4..d7a02f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -mat/ -figures/ ltximg/ slprj/ matlab/slprj/ diff --git a/figs/test_joints_bench_side.pdf b/figs/test_joints_bench_side.pdf index ea4c50e..2ff77d8 100644 Binary files a/figs/test_joints_bench_side.pdf and b/figs/test_joints_bench_side.pdf differ diff --git a/figs/test_joints_bench_side.png b/figs/test_joints_bench_side.png index 4bd30e5..6e5ba23 100644 Binary files a/figs/test_joints_bench_side.png and b/figs/test_joints_bench_side.png differ diff --git a/figs/test_joints_bench_side.svg b/figs/test_joints_bench_side.svg index 76209a0..d44ec72 100644 --- a/figs/test_joints_bench_side.svg +++ b/figs/test_joints_bench_side.svg @@ -1,20 +1,20 @@ + height="573.24438" + viewBox="0 0 255.17623 573.24438" + sodipodi:docname="test_joints_bench_side.svg" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> @@ -45,12 +45,12 @@ + id="clipPath1"> @@ -64,15 +64,15 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="2536" - inkscape:window-height="1371" + inkscape:window-width="2560" + inkscape:window-height="1440" id="namedview1683" showgrid="false" inkscape:zoom="1.0921915" - inkscape:cx="104.29565" - inkscape:cy="437.15096" - inkscape:window-x="12" - inkscape:window-y="57" + inkscape:cx="104.3773" + inkscape:cy="436.7366" + inkscape:window-x="0" + inkscape:window-y="0" inkscape:window-maximized="0" inkscape:current-layer="g1689" inkscape:document-rotation="0" @@ -80,7 +80,10 @@ inkscape:snap-smooth-nodes="true" inkscape:snap-intersection-paths="true" inkscape:snap-object-midpoints="false" - inkscape:snap-page="true" /> + inkscape:snap-page="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> + + + bis.dxf - scale = 1.000000, origin = (0.000000, 0.000000), method = manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interfacewith plates + Interfacewith APA + + + + x rotation + y rotation + + + + + diff --git a/figs/test_joints_profilometer_image.jpg b/figs/test_joints_profilometer_image.jpg new file mode 100644 index 0000000..b00e85e Binary files /dev/null and b/figs/test_joints_profilometer_image.jpg differ diff --git a/figs/test_joints_profilometer_setup.jpg b/figs/test_joints_profilometer_setup.jpg new file mode 100644 index 0000000..8050c48 Binary files /dev/null and b/figs/test_joints_profilometer_setup.jpg differ diff --git a/figs/test_joints_profilometer_setup.pdf b/figs/test_joints_profilometer_setup.pdf new file mode 100644 index 0000000..65bf207 Binary files /dev/null and b/figs/test_joints_profilometer_setup.pdf differ diff --git a/figs/test_joints_profilometer_setup.png b/figs/test_joints_profilometer_setup.png new file mode 100644 index 0000000..ed3e207 Binary files /dev/null and b/figs/test_joints_profilometer_setup.png differ diff --git a/figs/test_joints_profilometer_setup.svg b/figs/test_joints_profilometer_setup.svg new file mode 100644 index 0000000..ebe61b9 --- /dev/null +++ b/figs/test_joints_profilometer_setup.svg @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figs/test_joints_size_hist.pdf b/figs/test_joints_size_hist.pdf index 00fcc26..38c08a1 100644 Binary files a/figs/test_joints_size_hist.pdf and b/figs/test_joints_size_hist.pdf differ diff --git a/figs/test_joints_size_hist.png b/figs/test_joints_size_hist.png index 3b8e2a7..cd20957 100644 Binary files a/figs/test_joints_size_hist.png and b/figs/test_joints_size_hist.png differ diff --git a/figs/test_joints_soft_measure_size.jpg b/figs/test_joints_soft_measure_size.jpg deleted file mode 100644 index c1063b7..0000000 Binary files a/figs/test_joints_soft_measure_size.jpg and /dev/null differ diff --git a/figs/test_joints_xz_plane.pdf b/figs/test_joints_xz_plane.pdf new file mode 100644 index 0000000..9aef2c6 Binary files /dev/null and b/figs/test_joints_xz_plane.pdf differ diff --git a/figs/test_joints_xz_plane.png b/figs/test_joints_xz_plane.png new file mode 100644 index 0000000..0c3b4ab Binary files /dev/null and b/figs/test_joints_xz_plane.png differ diff --git a/figs/test_joints_xz_plane.svg b/figs/test_joints_xz_plane.svg new file mode 100644 index 0000000..beb664d --- /dev/null +++ b/figs/test_joints_xz_plane.svg @@ -0,0 +1,255 @@ + + + + 12600009.DXF - scale = 1.000000, origin = (0.000000, 0.000000), method = manual + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figs/test_joints_y_flex_meas_setup.jpg b/figs/test_joints_y_flex_meas_setup.jpg deleted file mode 100644 index 6694082..0000000 Binary files a/figs/test_joints_y_flex_meas_setup.jpg and /dev/null differ diff --git a/figs/test_joints_y_flex_meas_setup.pdf b/figs/test_joints_y_flex_meas_setup.pdf deleted file mode 100644 index 2232fee..0000000 Binary files a/figs/test_joints_y_flex_meas_setup.pdf and /dev/null differ diff --git a/figs/test_joints_y_flex_meas_setup.png b/figs/test_joints_y_flex_meas_setup.png deleted file mode 100644 index 5c8554e..0000000 Binary files a/figs/test_joints_y_flex_meas_setup.png and /dev/null differ diff --git a/figs/test_joints_yz_plane.pdf b/figs/test_joints_yz_plane.pdf new file mode 100644 index 0000000..d19a5e4 Binary files /dev/null and b/figs/test_joints_yz_plane.pdf differ diff --git a/figs/test_joints_yz_plane.png b/figs/test_joints_yz_plane.png new file mode 100644 index 0000000..fec93f8 Binary files /dev/null and b/figs/test_joints_yz_plane.png differ diff --git a/figs/test_joints_yz_plane.svg b/figs/test_joints_yz_plane.svg new file mode 100644 index 0000000..933f18b --- /dev/null +++ b/figs/test_joints_yz_plane.svg @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test-bench-flexible-joints.org b/test-bench-flexible-joints.org index 85a75d1..7e9b5b5 100644 --- a/test-bench-flexible-joints.org +++ b/test-bench-flexible-joints.org @@ -114,8 +114,8 @@ Compilation of the following reports: - [ ] Also check start of this report: [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/nano_hexapod.org][nano_hexapod]] Model of the flexible joints Maybe add a section for the model of the flexible joints (of maybe this was done in the "detailed design" section?) -- [ ] Maybe say that some flexible joints where not machined properly (show picture with deformed machining and one with "chips" stuck inside) -- [ ] Explain why the encoder is here: in line with the measurement, no "abbe errors" +- [X] Maybe say that some flexible joints where not machined properly (show picture with deformed machining and one with "chips" stuck inside) +- [X] Explain why the encoder is here: in line with the measurement, no "abbe errors" Goal: - Characterization of flexible joints: @@ -128,17 +128,22 @@ Goal: - Section 6 is most important: measurement results - Conclusion +** TODO [#B] Add symbols for the different characteristics + +- Axial Stiffness: $k_z$ +- Shear Stiffness: $k_x$, $k_y$ +- Bending Stiffness: $k_{R_x}$, $k_{R_y}$ +- Torsion Stiffness: $k_{R_z}$ +- Bending Stroke: $\theta_{R_x\text{max}}$, $\theta_{R_y\text{max}}$ +- Torsion Stroke: $\theta_{R_z\text{max}}$ * Introduction :ignore: -Ideally, these flexible joints would behave as perfect ball joints, that is to say: -- no bending and torsional stiffnesses -- infinite shear and axial stiffnesses -- un-limited bending and torsional stroke -- no friction, no backlash +At both ends of the nano-hexapod struts, a flexible spherical joint is used. +Ideally, these flexible joints would behave as perfect spherical joints, that is to say no bending and torsional stiffnesses, infinite shear and axial stiffnesses, unlimited bending and torsional stroke, no friction and no backlash. -The real characteristics of the flexible joints will influence the dynamics of the Nano-Hexapod. -Using a multi-body dynamical model of the nano-hexapod, the specifications in term of stiffness and stroke of the flexible joints have been determined and summarized in Table ref:tab:test_joints_specs. +Deviations from this ideal properties will impact the dynamics of the Nano-Hexapod and could limit the attainable performances. +During the detailed design phase, specifications in term of stiffness and stroke have been determined and are summarized in Table ref:tab:test_joints_specs. #+name: tab:test_joints_specs #+caption: Specifications for the flexible joints and estimated characteristics from the Finite Element Model @@ -153,76 +158,97 @@ Using a multi-body dynamical model of the nano-hexapod, the specifications in te | Bending Stroke | $> 1\,\text{mrad}$ | 24.5 | | Torsion Stroke | $> 5\,\mu\text{rad}$ | | -Then, the classical geometry of a flexible ball joint shown in Figure ref:fig:test_joints_fem_geometry has been optimized in order to meet the requirements. -This has been done using a Finite Element Software and the obtained joint's characteristics are summarized in Table ref:tab:test_joints_specs. +After optimization using a finite element model, the geometry shown in Figure ref:fig:test_joints_schematic has been obtained and the corresponding flexible joints characteristics are summarized in Table ref:tab:test_joints_specs. +This flexible joint is a monolithic piece of stainless steel[fn:1] manufactured using wire electrical discharge machining. +It serves several functions as shown in Figure ref:fig:test_joints_iso, such as: +- Rigid interfacing with the nano-hexapod plates (yellow surfaces) +- Rigid interfacing with the amplified piezoelectric actuator (blue surface) +- Allow two rotations between the "yellow" and the "blue" interfaces. + The rotation axes are represented by the dashed lines which are intersecting -#+name: fig:test_joints_fem_geometry -#+caption: Flexible part of the Joint used for FEM - CAD view -#+attr_latex: :width 0.5\linewidth -[[file:figs/test_joints_fem_geometry.png]] +#+name: fig:test_joints_schematic +#+caption: Geometry of the optimized flexible joints +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_iso}ISO view} +#+attr_latex: :options {0.39\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/test_joints_iso.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_yz_plane}YZ plane} +#+attr_latex: :options {0.3\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/test_joints_yz_plane.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_xz_plane}XZ plane} +#+attr_latex: :options {0.3\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/test_joints_xz_plane.png]] +#+end_subfigure +#+end_figure -The obtained geometry are defined in the [[file:doc/flex_joints.pdf][drawings of the flexible joints]]. -The material is a special kind of stainless steel called "F16PH". - -The flexible joints can be seen on Figure ref:fig:test_joints_received. +16 flexible joints have been ordered (shown in Figure ref:fig:test_joints_received) such some selection can be made for the 12 that will be used on the nano-hexapod. #+name: fig:test_joints_received #+caption: 15 of the 16 flexible joints -#+attr_latex: :width \linewidth +#+attr_latex: :width 0.8\linewidth [[file:figs/test_joints_received.jpg]] -In this document, we present a test-bench that has been developed in order to measure the bending stiffness of flexible joints. - -It is structured as follow: -- Section ref:sec:test_joints_flex_dim_meas: each flexible joint is measured using a profile projector -- Section ref:sec:test_joints_test_bench_desc: the stiffness measurement bench is presented -- Section ref:sec:test_joints_error_budget: an error budget is performed in order to estimate the accuracy of the measured stiffness -- Section ref:sec:test_joints_first_measurements: first measurements are performed -- Section ref:sec:test_joints_bending_stiffness_meas: the bending stiffness of the flexible joints are measured +In this document, the received flexible joints are characterize to make sure they are fulfilling the requirements and such that they can well be modelled. +First, the flexible joints are visually inspected, and the minimum gaps (responsible for most of the joint compliance) are measured (Section ref:sec:test_joints_flex_dim_meas). +Then, a test bench is developed to measure the bending stiffness of the flexible joints. +The development of this test bench is presented in Section ref:sec:test_joints_test_bench_desc, including a noise budget and some requirements in terms of instrumentation. +Finally, the test bench is manufacturer and used to measure the bending stiffnesses of all the flexible joints. +Results are shown in Section ref:sec:test_joints_bending_stiffness_meas #+name: tab:test_joints_section_matlab_code #+caption: Report sections and corresponding Matlab files #+attr_latex: :environment tabularx :width 0.6\linewidth :align lX #+attr_latex: :center t :booktabs t -| *Sections* | *Matlab File* | -|-----------------------------+--------------------| -| Section ref:sec:test_joints | =test_joints_1_.m= | -| | | -| | | +| *Sections* | *Matlab File* | +|----------------------------------------------------+--------------------------------------| +| Section ref:sec:test_joints_flex_dim_meas | =test_joints_1_dim_meas.m= | +| Section ref:sec:test_joints_test_bench_desc | =test_joints_2_bench_dimensioning.m= | +| Section ref:sec:test_joints_bending_stiffness_meas | =test_joints_3_bending_stiff_meas.m= | + +* Flexible Joints Model :noexport: +<> + +The model of the flexible joint is composed of 3 solid bodies as shown in Figure [[fig:simscape_model_flexible_joint]] which are connected by joints representing the flexibility of the joint. + +We can represent: +- the bending flexibility $k_{R_x}$, $k_{R_y}$ +- the torsional flexibility $k_{R_z}$ +- the axial flexibility $k_z$ + +The configurations and the represented flexibilities are summarized in Table [[tab:flex_type_conf]]. + +#+name: tab:flex_type_conf +#+caption: Flexible joint's configuration and associated represented flexibility +#+attr_latex: :environment tabularx :width 0.6\linewidth :align lXXX +#+attr_latex: :center t :booktabs t :float t +| =flex_type= | Bending | Torsional | Axial | +|-------------+---------+-----------+-------| +| =2dof= | x | | | +| =3dof= | x | x | | +| =4dof= | x | x | x | + +Of course, adding more DoF for the flexible joint will induce an addition of many states for the nano-hexapod simscape model. + +#+name: fig:simscape_model_flexible_joint +#+caption: 3D view of the Sismcape model for the Flexible joint (4DoF configuration) +#+attr_latex: :width 0.8\linewidth +[[file:figs/simscape_model_flexible_joint.png]] * Dimensional Measurements :PROPERTIES: :header-args:matlab+: :tangle matlab/test_joints_1_dim_meas.m :END: <> -** Measurement Bench - -The axis corresponding to the flexible joints are defined in Figure ref:fig:test_joints_axis. - -#+name: fig:test_joints_axis -#+caption: Define axis for the flexible joints -#+attr_latex: :width 0.3\linewidth -[[file:figs/test_joints_axis.png]] - -The dimensions of the flexible part in the Y-Z plane will contribute to the X-bending stiffness. -Similarly, the dimensions of the flexible part in the X-Z plane will contribute to the Y-bending stiffness. - -The setup to measure the dimension of the "X" flexible beam is shown in Figure ref:fig:test_joints_y_flex_meas_setup. - -#+name: fig:test_joints_y_flex_meas_setup -#+caption: Setup to measure the dimension of the flexible beam corresponding to the X-bending stiffness -#+attr_latex: :width 1.0\linewidth -[[file:figs/test_joints_y_flex_meas_setup.png]] - -What we typically observe is shown in Figure ref:fig:test_joints_soft_measure_size. -It is then possible to estimate to dimension of the flexible beam with an accuracy of $\approx 5\,\mu m$, - -#+name: fig:test_joints_soft_measure_size -#+attr_latex: :width 1.0\linewidth -#+caption: Image used to measure the flexible joint's dimensions -[[file:figs/test_joints_soft_measure_size.jpg]] - ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> @@ -244,17 +270,46 @@ It is then possible to estimate to dimension of the flexible beam with an accura <> #+end_src +** Measurement Bench + +The dimensions of the flexible part in the Y-Z plane will contribute to the X-bending stiffness. +Similarly, the dimensions of the flexible part in the X-Z plane will contribute to the Y-bending stiffness. + +The setup to measure the dimension of the "X" flexible beam is shown in Figure ref:fig:test_joints_profilometer_setup. + +What we typically observe is shown in Figure ref:fig:test_joints_profilometer_image. +It is then possible to estimate to dimension of the flexible beam with an accuracy of $\approx 5\,\mu m$, + +#+name: fig:test_joints_profilometer +#+caption: Setup to measure the dimension of the flexible beam corresponding to the X-bending stiffness. The flexible joint is fixed to the profilometer (\subref{fig:test_joints_profilometer_image}) and a image is obtained with which the gap can be estimated (\subref{fig:test_joints_profilometer_setup}) +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_profilometer_image}Flexible joint fixed on the profilometer} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/test_joints_profilometer_image.jpg]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_profilometer_setup}Obtain image to estimate the gap} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/test_joints_profilometer_setup.png]] +#+end_subfigure +#+end_figure + ** Measurement Results -# - Strange shape: 5 +The specified flexible beam thickness (gap) is $250\,\mu m$. +Four gaps are measured for each flexible joints (2 in the $x$ direction and 2 in the $y$ direction). +The "beam thickness" is then estimated to be the mean between the gaps measured on opposite sides. -The expected flexible beam thickness is $250\,\mu m$. -However, it is more important that the thickness of all beams are close to each other. +An histogram of the measured beam thicknesses is shown in Figure ref:fig:test_joints_size_hist. +The measured thickness is less thant the specified value of $250\,\mu m$, but this optical method may not be very accurate as the estimated gap can depend on the lighting of the part and of its proper alignment. -The dimension of the beams are been measured at each end to be able to estimate the mean of the beam thickness. - -All the measured dimensions are summarized in Table ref:tab:test_joints_flex_dim. +However, what is more important than the true value of the thickness is the consistency between all the flexible joints. #+begin_src matlab :exports none +%% Measured gap for the 16 flexible joints meas_flex = [[223, 226, 224, 214]; [229, 231, 237, 224]; [234, 230, 239, 231]; @@ -273,40 +328,13 @@ meas_flex = [[223, 226, 224, 214]; [213, 210, 230, 229]]; #+end_src -#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) -data2orgtable(meas_flex, {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}, {'Y1', 'Y2', 'X1', 'X2'}, ' %.0f '); -#+end_src - -#+name: tab:test_joints_flex_dim -#+caption: Measured Dimensions of the flexible beams in $\mu m$ -#+attr_latex: :environment tabularx :width 0.4\linewidth :align Xcccc -#+attr_latex: :center t :booktabs t :float t -#+RESULTS: -| | Y1 | Y2 | X1 | X2 | -|----+-----+-----+-----+-----| -| 1 | 223 | 226 | 224 | 214 | -| 2 | 229 | 231 | 237 | 224 | -| 3 | 234 | 230 | 239 | 231 | -| 4 | 233 | 227 | 229 | 232 | -| 5 | 225 | 212 | 228 | 228 | -| 6 | 220 | 221 | 224 | 220 | -| 7 | 206 | 207 | 228 | 226 | -| 8 | 230 | 224 | 224 | 223 | -| 9 | 223 | 231 | 228 | 233 | -| 10 | 228 | 230 | 235 | 231 | -| 11 | 197 | 207 | 211 | 204 | -| 12 | 227 | 226 | 225 | 226 | -| 13 | 215 | 228 | 231 | 220 | -| 14 | 216 | 224 | 224 | 221 | -| 15 | 209 | 214 | 220 | 221 | -| 16 | 213 | 210 | 230 | 229 | - -An histogram of these measured dimensions is shown in Figure ref:fig:test_joints_size_hist. #+begin_src matlab :exports none +%% Histogram of the measured gap figure; histogram([(meas_flex(:,1)+meas_flex(:,2))/2,(meas_flex(:,3)+meas_flex(:,4))/2], 7) -xlabel("Beam's Thickness [$\mu m$]"); +xlabel("Measured beam thickness [$\mu m$]"); +xticks([200, 205, 210, 215, 220, 225, 230, 235]) #+end_src #+begin_src matlab :tangle no :exports results :results file replace @@ -314,7 +342,7 @@ exportFig('figs/test_joints_size_hist.pdf', 'width', 'normal', 'height', 'normal #+end_src #+name: fig:test_joints_size_hist -#+caption: Histogram for the (16x2) measured beams' thickness +#+caption: Histogram for the (16x2) measured beams' thickness #+RESULTS: [[file:figs/test_joints_size_hist.png]] @@ -330,8 +358,11 @@ save('./mat/flex_meas_dim.mat', 'meas_flex'); ** Bad flexible joints +Using this profilometer allowed to detect flexible joints with manufacturing defects such as non-symmetrical shape (see Figure ref:fig:test_joints_bad_shape) or flexible joints with machining chips stuck in the gap (see Figure ref:fig:test_joints_bad_chips). + #+name: fig:test_joints_bad #+caption: Example of two flexible joints that were considered unsatisfactory after visual inspection +#+attr_latex: :options [htbp] #+begin_figure #+attr_latex: :caption \subcaption{\label{fig:test_joints_bad_shape}Non-Symmetrical shape} #+attr_latex: :options {0.49\textwidth} @@ -347,35 +378,21 @@ save('./mat/flex_meas_dim.mat', 'meas_flex'); #+end_subfigure #+end_figure -* Measurement Test Bench - Bending Stiffness +* Development of the Measurement Test Bench :PROPERTIES: :header-args:matlab+: :tangle matlab/test_joints_2_bench_dimensioning.m :END: <> ** Introduction :ignore: -The most important characteristic of the flexible joint that we want to measure is its bending stiffness $k_{R_x} \approx k_{R_y}$. +The most important characteristic of the flexible joint to be measured is its bending stiffness $k_{R_x} \approx k_{R_y}$. -To do so, we have to apply a torque $T_x$ on the flexible joint and measure its angular deflection $\theta_x$. -The stiffness is then -\begin{equation} +To estimate the bending stiffness, the basic idea is to apply a torque $T_{x}$ to the flexible joints and to measure its angular deflection $\theta_{x}$. +Then, the bending stiffness can be computed from equation eqref:eq:test_joints_bending_stiffness. + +\begin{equation}\label{eq:test_joints_bending_stiffness} k_{R_x} = \frac{T_x}{\theta_x} \end{equation} -As it is quite difficult to apply a pure torque, a force will be applied instead. -The application point of the force should far enough from the flexible part such that the obtained bending is much larger than the displacement in shear. - -The working principle of the bench is schematically shown in Figure ref:fig:test_joints_bench_working_principle. -One part of the flexible joint is fixed. On the mobile part, a force $F_x$ is applied which is equivalent to a torque applied on the flexible joint center. -The induced rotation is measured with a displacement sensor $d_x$. - -#+name: fig:test_joints_bench_working_principle -#+caption: Test Bench - working principle -[[file:figs/test_joints_bench_working_principle.png]] - - -This test-bench will be used to have a first approximation of the bending stiffnesss and stroke of the flexible joints. -Another test-bench, better engineered will be used to measure the flexible joint's characteristics with better accuracy. - ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> @@ -397,14 +414,28 @@ Another test-bench, better engineered will be used to measure the flexible joint <> #+end_src -** Flexible joint Geometry -The flexible joint used for the Nano-Hexapod is shown in Figure ref:fig:test_joints_bend_geometry. -Its bending stiffness is foreseen to be $k_{R_y}\approx 5\,\frac{Nm}{rad}$ and its stroke $\theta_{y,\text{max}}\approx 25\,mrad$. +** Measurement principle +As it is difficult to apply a pure torque, a "linear" force can be applied instead. +The application point of the force should be far enough from the rotation axis such that the resulting bending motion is much larger than the displacement due to shear. + +The working principle of the measurement bench is schematically shown in Figure ref:fig:test_joints_bench_working_principle. +One part of the flexible joint is fixed. +On the mobile part, a force $F_x$ is applied which is equivalent to a torque applied on the flexible joint center. +The induced rotation is measured with a displacement sensor $d_x$. + +#+name: fig:test_joints_bench_working_principle +#+caption: Test Bench - working principle +[[file:figs/test_joints_bench_working_principle.png]] #+name: fig:test_joints_bend_geometry #+caption: Geometry of the flexible joint [[file:figs/test_joints_bend_geometry.png]] +This test-bench will be used to have a first approximation of the bending stiffnesss and stroke of the flexible joints. + +The flexible joint used for the Nano-Hexapod is shown in Figure ref:fig:test_joints_bend_geometry. +Its bending stiffness is foreseen to be $k_{R_y}\approx 5\,\frac{Nm}{rad}$ and its stroke $\theta_{y,\text{max}}\approx 25\,mrad$. + The height between the flexible point (center of the joint) and the point where external forces are applied is $h = 20\,mm$. Let's define the parameters on Matlab. @@ -414,7 +445,7 @@ Rxmax = 25e-3; % Bending Stroke [rad] h = 20e-3; % Height [m] #+end_src -** Required external applied force +**** Required external applied force The bending $\theta_y$ of the flexible joint due to the force $F_x$ is: \begin{equation} @@ -440,7 +471,7 @@ sprintf('\\begin{equation} F_{x,max} = %.1f\\, [N] \\end{equation}', Fxmax) The measurement range of the force sensor should then be higher than $6.2\,N$. -** Required actuator stroke and sensors range +**** Required actuator stroke and sensors range The flexible joint is designed to allow a bending motion of $\pm 25\,mrad$. The corresponding stroke at the location of the force sensor is: @@ -460,7 +491,7 @@ sprintf('\\begin{equation} d_{max} = %.1f\\, [mm] \\end{equation}', 1e3*dxmax) In order to test the full range of the flexible joint, the stroke of the translation stage used to move the force sensor should be higher than $0.5\,mm$. Similarly, the measurement range of the displacement sensor should also be higher than $0.5\,mm$. -** Test Bench +** Developped test bench A CAD view of the measurement bench is shown in Figure ref:fig:test_joints_bench_overview. @@ -472,27 +503,31 @@ Here are the different elements used in this bench: #+end_note Both the measured force and displacement are acquired at the same time using a Speedgoat machine. - -#+name: fig:test_joints_bench_overview -#+caption: Schematic of the test bench to measure the bending stiffness of the flexible joints -#+attr_latex: :width 0.8\linewidth -[[file:figs/test_joints_bench_overview.png]] +Explain why the encoder is here: in line with the measurement, no "abbe errors" A side view of the bench with the important quantities are shown in Figure ref:fig:test_joints_bench_side. -#+name: fig:test_joints_bench_side -#+caption: Schematic of the test bench to measure the bending stiffness of the flexible joints -#+attr_latex: :width 0.25\linewidth -#+attr_html: :width 300px +#+name: fig:test_joints_bench +#+caption: Caption with reference to sub figure (\subref{fig:fig_label_a}) +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_bench_overview}Schematic of the test bench to measure the bending stiffness of the flexible joints} +#+attr_latex: :options {0.78\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/test_joints_bench_overview.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:test_joints_bench_side}Zoom} +#+attr_latex: :options {0.21\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth [[file:figs/test_joints_bench_side.png]] +#+end_subfigure +#+end_figure -* Error budget -:PROPERTIES: -:header-args:matlab+: :tangle matlab/test_joints_3_error_budget.m -:END: -<> -** Introduction :ignore: - +** Error budget +<> +**** Introduction :ignore: Many things can impact the accuracy of the measured bending stiffness such as: - Errors in the force and displacement measurement - Shear effects @@ -502,28 +537,7 @@ Many things can impact the accuracy of the measured bending stiffness such as: In this section, we wish to estimate the attainable accuracy with the current bench, and identified the limiting factors. -** 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 - -** Finite Element Model +**** Finite Element Model From the Finite Element Model, the stiffness and stroke of the flexible joint have been computed and summarized in Tables ref:tab:test_joints_axial_shear_prop and ref:tab:test_joints_bending_torsion_prop. #+begin_src matlab :exports none @@ -574,7 +588,7 @@ data2orgtable([kb, 1e3*Fb, 1e3*Xb; kt, 1e3*Ft, 1e3*Xt], {'Bending', 'Torsional'} | Bending | 5 | 118 | 24 | | Torsional | 260 | 1508 | 6 | -** Setup +**** Setup The setup is schematically represented in Figure ref:fig:test_joints_bench_side_bis. @@ -586,7 +600,7 @@ The height between the joint's center and the force application point is: h = 25e-3; % Height [m] #+end_src -** Effect of Bending +**** Effect of Bending The torque applied is: \begin{equation} M_y = F_x \cdot h @@ -603,7 +617,7 @@ The measured displacement is: D_b = h \tan(\theta_y) = h \tan\left( \frac{F_x \cdot h}{k_{R_y}} \right) \label{eq:bending_stiffness_formula} \end{equation} -** Computation of the bending stiffness +**** Computation of the bending stiffness From equation eqref:eq:bending_stiffness_formula, we can compute the bending stiffness: \begin{equation} k_{R_y} = \frac{F_x \cdot h}{\tan^{-1}\left( \frac{D_b}{h} \right)} @@ -619,13 +633,13 @@ And therefore, to precisely measure $k_{R_y}$, we need to: - precisely measure the applied force $F_x$ - precisely now the height of the force application point $h$ -** Estimation error due to force and displacement sensors accuracy +**** Estimation error due to force and displacement sensors accuracy The maximum error on the measured displacement with the encoder is 40 nm. This quite negligible compared to the measurement range of 0.5 mm. The accuracy of the force sensor is around 1% and therefore, we should expect to have an accuracy on the measured stiffness of at most 1%. -** Estimation error due to Shear +**** Estimation error due to Shear The effect of Shear on the measured displacement is simply: \begin{equation} D_s = \frac{F_x}{k_s} @@ -648,7 +662,7 @@ sprintf('The measurement error due to Shear is %.1f %%', 100*abs(1-1/(1 + kb/(ks #+RESULTS: : The measurement error due to Shear is 0.1 % -** Estimation error due to force sensor compression +**** Estimation error due to force sensor compression The measured displacement is not done directly at the joint's location. The force sensor compression will then induce an error on the joint's stiffness. @@ -681,7 +695,7 @@ sprintf('The measurement error due to height estimation errors is %.1f %%', 100* #+RESULTS: : The measurement error due to height estimation errors is 0.8 % -** Estimation error due to height estimation error +**** Estimation error due to height estimation error Let's consider an error in the estimation of the height from the application of the force to the joint's center: \begin{equation} h_{\text{est}} = h (1 + \epsilon) @@ -708,20 +722,41 @@ sprintf('The measurement error due to height estimation errors of %.1f [mm] is % #+RESULTS: : The measurement error due to height estimation errors of 0.2 [mm] is 1.6 % -** Conclusion +**** Conclusion +:PROPERTIES: +:UNNUMBERED: t +:END: + Based on the above analysis, we should expect no better than few percent of accuracy using the current test-bench. This is well enough for a first estimation of the bending stiffness of the flexible joints. -Another measurement bench allowing better accuracy will be developed. - -* First Measurements +* Bending Stiffness Measurement :PROPERTIES: -:header-args:matlab+: :tangle matlab/test_joints_4_first_meas.m +:header-args:matlab+: :tangle ./matlab/test_joints_3_bending_stiff_meas.m :END: -<> -** Introduction :ignore: +<> +** Introduction -- *Encoder*: [[file:doc/L-9517-9448-05-B_Data_sheet_RESOLUTE_BiSS_en.pdf][Renishaw Resolute 1nm]] +A picture of the bench used to measure the X-bending stiffness of the flexible joints is shown in Figure ref:fig:test_joints_picture_bench_overview. +A closer view on flexible joint is shown in Figure ref:fig:test_joints_picture_bench_close and a zoom on the force sensor tip is shown in Figure ref:fig:test_joints_picture_bench_zoom. + +#+name: fig:test_joints_picture_bench_overview +#+caption: Side view of the flexible joint stiffness bench. X-Bending stiffness is measured. +#+attr_latex: :width \linewidth +[[file:figs/test_joints_picture_bench_overview.jpg]] + +#+name: fig:test_joints_picture_bench_close +#+caption: Zoom on the flexible joint - Side view +#+attr_latex: :width \linewidth +[[file:figs/test_joints_picture_bench_close.jpg]] + + +#+name: fig:test_joints_picture_bench_zoom +#+caption: Zoom on the tip of the force sensor +#+attr_latex: :width 0.4\linewidth +[[file:figs/test_joints_picture_bench_zoom.jpg]] + +The same bench used to measure the Y-bending stiffness of the flexible joint by pivoting the flexible joint by 90 degrees. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -927,55 +962,6 @@ sprintf('k = %.2f [N/um]', 1e-6*1/fit_k(1)); #+RESULTS: : k = 0.76 [N/um] -* Bending Stiffness Measurement -:PROPERTIES: -:header-args:matlab+: :tangle ./matlab/test_joints_5_bending_stiff_meas.m -:END: -<> -** Introduction - -A picture of the bench used to measure the X-bending stiffness of the flexible joints is shown in Figure ref:fig:test_joints_picture_bench_overview. -A closer view on flexible joint is shown in Figure ref:fig:test_joints_picture_bench_close and a zoom on the force sensor tip is shown in Figure ref:fig:test_joints_picture_bench_zoom. - -#+name: fig:test_joints_picture_bench_overview -#+caption: Side view of the flexible joint stiffness bench. X-Bending stiffness is measured. -#+attr_latex: :width \linewidth -[[file:figs/test_joints_picture_bench_overview.jpg]] - -#+name: fig:test_joints_picture_bench_close -#+caption: Zoom on the flexible joint - Side view -#+attr_latex: :width \linewidth -[[file:figs/test_joints_picture_bench_close.jpg]] - - -#+name: fig:test_joints_picture_bench_zoom -#+caption: Zoom on the tip of the force sensor -#+attr_latex: :width 0.4\linewidth -[[file:figs/test_joints_picture_bench_zoom.jpg]] - -The same bench used to measure the Y-bending stiffness of the flexible joint by pivoting the flexible joint by 90 degrees. - -** 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 - ** Analysis of one measurement In this section is shown how the data are analysis in order to measured: @@ -1345,6 +1331,10 @@ exportFig('figs/test_joints_thickness_stiffness.pdf', 'width', 'wide', 'height', [[file:figs/test_joints_thickness_stiffness.png]] ** Conclusion +:PROPERTIES: +:UNNUMBERED: t +:END: + #+begin_important The measured bending stiffness and bending stroke of the flexible joints are very close to the estimated one using a Finite Element Model. @@ -1379,3 +1369,7 @@ addpath('./mat/'); % Path for data %% Colors for the figures colors = colororder; #+END_SRC + +* Footnotes + +[fn:1]The alloy used is called /F16PH/, also refereed as "1.4542" diff --git a/test-bench-flexible-joints.pdf b/test-bench-flexible-joints.pdf index ac025ff..666e2b2 100644 Binary files a/test-bench-flexible-joints.pdf and b/test-bench-flexible-joints.pdf differ diff --git a/test-bench-flexible-joints.tex b/test-bench-flexible-joints.tex index 85c7214..2688ee8 100644 --- a/test-bench-flexible-joints.tex +++ b/test-bench-flexible-joints.tex @@ -1,4 +1,4 @@ -% Created 2024-03-25 Mon 16:49 +% Created 2024-04-04 Thu 17:36 % Intended LaTeX compiler: pdflatex \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} @@ -12,7 +12,7 @@ pdftitle={Flexible Joints - Test Bench}, pdfkeywords={}, pdfsubject={}, - pdfcreator={Emacs 29.2 (Org mode 9.7)}, + pdfcreator={Emacs 29.3 (Org mode 9.7)}, pdflang={English}} \usepackage{biblatex} @@ -22,19 +22,13 @@ \tableofcontents \clearpage -Ideally, these flexible joints would behave as perfect ball joints, that is to say: -\begin{itemize} -\item no bending and torsional stiffnesses -\item infinite shear and axial stiffnesses -\item un-limited bending and torsional stroke -\item no friction, no backlash -\end{itemize} +At both ends of the nano-hexapod struts, a flexible spherical joint is used. +Ideally, these flexible joints would behave as perfect spherical joints, that is to say no bending and torsional stiffnesses, infinite shear and axial stiffnesses, unlimited bending and torsional stroke, no friction and no backlash. -The real characteristics of the flexible joints will influence the dynamics of the Nano-Hexapod. -Using a multi-body dynamical model of the nano-hexapod, the specifications in term of stiffness and stroke of the flexible joints have been determined and summarized in Table \ref{tab:test_joints_specs}. +Deviations from this ideal properties will impact the dynamics of the Nano-Hexapod and could limit the attainable performances. +During the detailed design phase, specifications in term of stiffness and stroke have been determined and are summarized in Table \ref{tab:test_joints_specs}. \begin{table}[htbp] -\caption{\label{tab:test_joints_specs}Specifications for the flexible joints and estimated characteristics from the Finite Element Model} \centering \begin{tabularx}{0.5\linewidth}{Xcc} \toprule @@ -48,120 +42,108 @@ Bending Stroke & \(> 1\,\text{mrad}\) & 24.5\\ Torsion Stroke & \(> 5\,\mu\text{rad}\) & \\ \bottomrule \end{tabularx} +\caption{\label{tab:test_joints_specs}Specifications for the flexible joints and estimated characteristics from the Finite Element Model} + \end{table} -Then, the classical geometry of a flexible ball joint shown in Figure \ref{fig:test_joints_fem_geometry} has been optimized in order to meet the requirements. -This has been done using a Finite Element Software and the obtained joint's characteristics are summarized in Table \ref{tab:test_joints_specs}. +After optimization using a finite element model, the geometry shown in Figure \ref{fig:test_joints_schematic} has been obtained and the corresponding flexible joints characteristics are summarized in Table \ref{tab:test_joints_specs}. +This flexible joint is a monolithic piece of stainless steel\footnote{The alloy used is called \emph{F16PH}, also refereed as ``1.4542''} manufactured using wire electrical discharge machining. +It serves several functions as shown in Figure \ref{fig:test_joints_iso}, such as: +\begin{itemize} +\item Rigid interfacing with the nano-hexapod plates (yellow surfaces) +\item Rigid interfacing with the amplified piezoelectric actuator (blue surface) +\item Allow two rotations between the ``yellow'' and the ``blue'' interfaces. +The rotation axes are represented by the dashed lines which are intersecting +\end{itemize} \begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=0.5\linewidth]{figs/test_joints_fem_geometry.png} -\caption{\label{fig:test_joints_fem_geometry}Flexible part of the Joint used for FEM - CAD view} +\begin{subfigure}{0.39\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/test_joints_iso.png} +\end{center} +\subcaption{\label{fig:test_joints_iso}ISO view} +\end{subfigure} +\begin{subfigure}{0.3\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/test_joints_yz_plane.png} +\end{center} +\subcaption{\label{fig:test_joints_yz_plane}YZ plane} +\end{subfigure} +\begin{subfigure}{0.3\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/test_joints_xz_plane.png} +\end{center} +\subcaption{\label{fig:test_joints_xz_plane}XZ plane} +\end{subfigure} +\caption{\label{fig:test_joints_schematic}Geometry of the optimized flexible joints} \end{figure} -The obtained geometry are defined in the \href{doc/flex\_joints.pdf}{drawings of the flexible joints}. -The material is a special kind of stainless steel called ``F16PH''. - -The flexible joints can be seen on Figure \ref{fig:test_joints_received}. +16 flexible joints have been ordered (shown in Figure \ref{fig:test_joints_received}) such some selection can be made for the 12 that will be used on the nano-hexapod. \begin{figure}[htbp] \centering -\includegraphics[scale=1,width=\linewidth]{figs/test_joints_received.jpg} +\includegraphics[scale=1,width=0.8\linewidth]{figs/test_joints_received.jpg} \caption{\label{fig:test_joints_received}15 of the 16 flexible joints} \end{figure} -In this document, we present a test-bench that has been developed in order to measure the bending stiffness of flexible joints. - -It is structured as follow: -\begin{itemize} -\item Section \ref{sec:test_joints_flex_dim_meas}: each flexible joint is measured using a profile projector -\item Section \ref{sec:test_joints_test_bench_desc}: the stiffness measurement bench is presented -\item Section \ref{sec:test_joints_error_budget}: an error budget is performed in order to estimate the accuracy of the measured stiffness -\item Section \ref{sec:test_joints_first_measurements}: first measurements are performed -\item Section \ref{sec:test_joints_bending_stiffness_meas}: the bending stiffness of the flexible joints are measured -\end{itemize} +In this document, the received flexible joints are characterize to make sure they are fulfilling the requirements and such that they can well be modelled. +First, the flexible joints are visually inspected, and the minimum gaps (responsible for most of the joint compliance) are measured (Section \ref{sec:test_joints_flex_dim_meas}). +Then, a test bench is developed to measure the bending stiffness of the flexible joints. +The development of this test bench is presented in Section \ref{sec:test_joints_test_bench_desc}, including a noise budget and some requirements in terms of instrumentation. +Finally, the test bench is manufacturer and used to measure the bending stiffnesses of all the flexible joints. +Results are shown in Section \ref{sec:test_joints_bending_stiffness_meas} \begin{table}[htbp] -\caption{\label{tab:test_joints_section_matlab_code}Report sections and corresponding Matlab files} \centering \begin{tabularx}{0.6\linewidth}{lX} \toprule \textbf{Sections} & \textbf{Matlab File}\\ \midrule -Section \ref{sec:test_joints} & \texttt{test\_joints\_1\_.m}\\ - & \\ - & \\ +Section \ref{sec:test_joints_flex_dim_meas} & \texttt{test\_joints\_1\_dim\_meas.m}\\ +Section \ref{sec:test_joints_test_bench_desc} & \texttt{test\_joints\_2\_bench\_dimensioning.m}\\ +Section \ref{sec:test_joints_bending_stiffness_meas} & \texttt{test\_joints\_3\_bending\_stiff\_meas.m}\\ \bottomrule \end{tabularx} +\caption{\label{tab:test_joints_section_matlab_code}Report sections and corresponding Matlab files} + \end{table} \chapter{Dimensional Measurements} \label{sec:test_joints_flex_dim_meas} \section{Measurement Bench} -The axis corresponding to the flexible joints are defined in Figure \ref{fig:test_joints_axis}. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=0.3\linewidth]{figs/test_joints_axis.png} -\caption{\label{fig:test_joints_axis}Define axis for the flexible joints} -\end{figure} - The dimensions of the flexible part in the Y-Z plane will contribute to the X-bending stiffness. Similarly, the dimensions of the flexible part in the X-Z plane will contribute to the Y-bending stiffness. -The setup to measure the dimension of the ``X'' flexible beam is shown in Figure \ref{fig:test_joints_y_flex_meas_setup}. +The setup to measure the dimension of the ``X'' flexible beam is shown in Figure \ref{fig:test_joints_profilometer_setup}. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=1.0\linewidth]{figs/test_joints_y_flex_meas_setup.png} -\caption{\label{fig:test_joints_y_flex_meas_setup}Setup to measure the dimension of the flexible beam corresponding to the X-bending stiffness} -\end{figure} - -What we typically observe is shown in Figure \ref{fig:test_joints_soft_measure_size}. +What we typically observe is shown in Figure \ref{fig:test_joints_profilometer_image}. It is then possible to estimate to dimension of the flexible beam with an accuracy of \(\approx 5\,\mu m\), \begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=1.0\linewidth]{figs/test_joints_soft_measure_size.jpg} -\caption{\label{fig:test_joints_soft_measure_size}Image used to measure the flexible joint's dimensions} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/test_joints_profilometer_image.jpg} +\end{center} +\subcaption{\label{fig:test_joints_profilometer_image}Flexible joint fixed on the profilometer} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/test_joints_profilometer_setup.png} +\end{center} +\subcaption{\label{fig:test_joints_profilometer_setup}Obtain image to estimate the gap} +\end{subfigure} +\caption{\label{fig:test_joints_profilometer}Setup to measure the dimension of the flexible beam corresponding to the X-bending stiffness. The flexible joint is fixed to the profilometer (\subref{fig:test_joints_profilometer_image}) and a image is obtained with which the gap can be estimated (\subref{fig:test_joints_profilometer_setup})} \end{figure} \section{Measurement Results} -The expected flexible beam thickness is \(250\,\mu m\). -However, it is more important that the thickness of all beams are close to each other. +The specified flexible beam thickness (gap) is \(250\,\mu m\). +Four gaps are measured for each flexible joints (2 in the \(x\) direction and 2 in the \(y\) direction). +The ``beam thickness'' is then estimated to be the mean between the gaps measured on opposite sides. -The dimension of the beams are been measured at each end to be able to estimate the mean of the beam thickness. +An histogram of the measured beam thicknesses is shown in Figure \ref{fig:test_joints_size_hist}. +The measured thickness is less thant the specified value of \(250\,\mu m\), but this optical method may not be very accurate as the estimated gap can depend on the lighting of the part and of its proper alignment. -All the measured dimensions are summarized in Table \ref{tab:test_joints_flex_dim}. - -\begin{table}[htbp] -\caption{\label{tab:test_joints_flex_dim}Measured Dimensions of the flexible beams in \(\mu m\)} -\centering -\begin{tabularx}{0.4\linewidth}{Xcccc} -\toprule - & Y1 & Y2 & X1 & X2\\ -\midrule -1 & 223 & 226 & 224 & 214\\ -2 & 229 & 231 & 237 & 224\\ -3 & 234 & 230 & 239 & 231\\ -4 & 233 & 227 & 229 & 232\\ -5 & 225 & 212 & 228 & 228\\ -6 & 220 & 221 & 224 & 220\\ -7 & 206 & 207 & 228 & 226\\ -8 & 230 & 224 & 224 & 223\\ -9 & 223 & 231 & 228 & 233\\ -10 & 228 & 230 & 235 & 231\\ -11 & 197 & 207 & 211 & 204\\ -12 & 227 & 226 & 225 & 226\\ -13 & 215 & 228 & 231 & 220\\ -14 & 216 & 224 & 224 & 221\\ -15 & 209 & 214 & 220 & 221\\ -16 & 213 & 210 & 230 & 229\\ -\bottomrule -\end{tabularx} -\end{table} - -An histogram of these measured dimensions is shown in Figure \ref{fig:test_joints_size_hist}. +However, what is more important than the true value of the thickness is the consistency between all the flexible joints. \begin{figure}[htbp] \centering @@ -170,7 +152,9 @@ An histogram of these measured dimensions is shown in Figure \ref{fig:test_joint \end{figure} \section{Bad flexible joints} -\begin{figure} +Using this profilometer allowed to detect flexible joints with manufacturing defects such as non-symmetrical shape (see Figure \ref{fig:test_joints_bad_shape}) or flexible joints with machining chips stuck in the gap (see Figure \ref{fig:test_joints_bad_chips}). + +\begin{figure}[htbp] \begin{subfigure}{0.49\textwidth} \begin{center} \includegraphics[scale=1,height=6cm]{figs/test_joints_bad_shape.jpg} @@ -185,21 +169,23 @@ An histogram of these measured dimensions is shown in Figure \ref{fig:test_joint \end{subfigure} \caption{\label{fig:test_joints_bad}Example of two flexible joints that were considered unsatisfactory after visual inspection} \end{figure} -\chapter{Measurement Test Bench - Bending Stiffness} +\chapter{Development of the Measurement Test Bench} \label{sec:test_joints_test_bench_desc} -The most important characteristic of the flexible joint that we want to measure is its bending stiffness \(k_{R_x} \approx k_{R_y}\). +The most important characteristic of the flexible joint to be measured is its bending stiffness \(k_{R_x} \approx k_{R_y}\). -To do so, we have to apply a torque \(T_x\) on the flexible joint and measure its angular deflection \(\theta_x\). -The stiffness is then -\begin{equation} +To estimate the bending stiffness, the basic idea is to apply a torque \(T_{x}\) to the flexible joints and to measure its angular deflection \(\theta_{x}\). +Then, the bending stiffness can be computed from equation \eqref{eq:test_joints_bending_stiffness}. + +\begin{equation}\label{eq:test_joints_bending_stiffness} k_{R_x} = \frac{T_x}{\theta_x} \end{equation} +\section{Measurement principle} +As it is difficult to apply a pure torque, a ``linear'' force can be applied instead. +The application point of the force should be far enough from the rotation axis such that the resulting bending motion is much larger than the displacement due to shear. -As it is quite difficult to apply a pure torque, a force will be applied instead. -The application point of the force should far enough from the flexible part such that the obtained bending is much larger than the displacement in shear. - -The working principle of the bench is schematically shown in Figure \ref{fig:test_joints_bench_working_principle}. -One part of the flexible joint is fixed. On the mobile part, a force \(F_x\) is applied which is equivalent to a torque applied on the flexible joint center. +The working principle of the measurement bench is schematically shown in Figure \ref{fig:test_joints_bench_working_principle}. +One part of the flexible joint is fixed. +On the mobile part, a force \(F_x\) is applied which is equivalent to a torque applied on the flexible joint center. The induced rotation is measured with a displacement sensor \(d_x\). \begin{figure}[htbp] @@ -208,23 +194,21 @@ The induced rotation is measured with a displacement sensor \(d_x\). \caption{\label{fig:test_joints_bench_working_principle}Test Bench - working principle} \end{figure} - -This test-bench will be used to have a first approximation of the bending stiffnesss and stroke of the flexible joints. -Another test-bench, better engineered will be used to measure the flexible joint's characteristics with better accuracy. -\section{Flexible joint Geometry} -The flexible joint used for the Nano-Hexapod is shown in Figure \ref{fig:test_joints_bend_geometry}. -Its bending stiffness is foreseen to be \(k_{R_y}\approx 5\,\frac{Nm}{rad}\) and its stroke \(\theta_{y,\text{max}}\approx 25\,mrad\). - \begin{figure}[htbp] \centering \includegraphics[scale=1]{figs/test_joints_bend_geometry.png} \caption{\label{fig:test_joints_bend_geometry}Geometry of the flexible joint} \end{figure} +This test-bench will be used to have a first approximation of the bending stiffnesss and stroke of the flexible joints. + +The flexible joint used for the Nano-Hexapod is shown in Figure \ref{fig:test_joints_bend_geometry}. +Its bending stiffness is foreseen to be \(k_{R_y}\approx 5\,\frac{Nm}{rad}\) and its stroke \(\theta_{y,\text{max}}\approx 25\,mrad\). + The height between the flexible point (center of the joint) and the point where external forces are applied is \(h = 20\,mm\). Let's define the parameters on Matlab. -\section{Required external applied force} +\paragraph{Required external applied force} The bending \(\theta_y\) of the flexible joint due to the force \(F_x\) is: \begin{equation} @@ -240,7 +224,7 @@ And we obtain: \begin{equation} F_{x,max} = 6.2\, [N] \end{equation} The measurement range of the force sensor should then be higher than \(6.2\,N\). -\section{Required actuator stroke and sensors range} +\paragraph{Required actuator stroke and sensors range} The flexible joint is designed to allow a bending motion of \(\pm 25\,mrad\). The corresponding stroke at the location of the force sensor is: @@ -250,7 +234,7 @@ The corresponding stroke at the location of the force sensor is: In order to test the full range of the flexible joint, the stroke of the translation stage used to move the force sensor should be higher than \(0.5\,mm\). Similarly, the measurement range of the displacement sensor should also be higher than \(0.5\,mm\). -\section{Test Bench} +\section{Developped test bench} A CAD view of the measurement bench is shown in Figure \ref{fig:test_joints_bench_overview}. @@ -264,22 +248,27 @@ Here are the different elements used in this bench: \end{note} Both the measured force and displacement are acquired at the same time using a Speedgoat machine. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=0.8\linewidth]{figs/test_joints_bench_overview.png} -\caption{\label{fig:test_joints_bench_overview}Schematic of the test bench to measure the bending stiffness of the flexible joints} -\end{figure} +Explain why the encoder is here: in line with the measurement, no ``abbe errors'' A side view of the bench with the important quantities are shown in Figure \ref{fig:test_joints_bench_side}. \begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=0.25\linewidth]{figs/test_joints_bench_side.png} -\caption{\label{fig:test_joints_bench_side}Schematic of the test bench to measure the bending stiffness of the flexible joints} +\begin{subfigure}{0.78\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/test_joints_bench_overview.png} +\end{center} +\subcaption{\label{fig:test_joints_bench_overview}Schematic of the test bench to measure the bending stiffness of the flexible joints} +\end{subfigure} +\begin{subfigure}{0.21\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/test_joints_bench_side.png} +\end{center} +\subcaption{\label{fig:test_joints_bench_side}Zoom} +\end{subfigure} +\caption{\label{fig:test_joints_bench}Caption with reference to sub figure (\subref{fig:fig_label_a})} \end{figure} -\chapter{Error budget} -\label{sec:test_joints_error_budget} +\section{Error budget} +\label{ssec:test_joints_error_budget} Many things can impact the accuracy of the measured bending stiffness such as: \begin{itemize} \item Errors in the force and displacement measurement @@ -289,11 +278,10 @@ Many things can impact the accuracy of the measured bending stiffness such as: \end{itemize} In this section, we wish to estimate the attainable accuracy with the current bench, and identified the limiting factors. -\section{Finite Element Model} +\paragraph{Finite Element Model} From the Finite Element Model, the stiffness and stroke of the flexible joint have been computed and summarized in Tables \ref{tab:test_joints_axial_shear_prop} and \ref{tab:test_joints_bending_torsion_prop}. \begin{table}[htbp] -\caption{\label{tab:test_joints_axial_shear_prop}Axial/Shear characteristics} \centering \begin{tabularx}{0.6\linewidth}{Xccc} \toprule @@ -303,10 +291,11 @@ Axial & 94 & 469 & 5\\ Shear & 13 & 242 & 19\\ \bottomrule \end{tabularx} +\caption{\label{tab:test_joints_axial_shear_prop}Axial/Shear characteristics} + \end{table} \begin{table}[htbp] -\caption{\label{tab:test_joints_bending_torsion_prop}Bending/Torsion characteristics} \centering \begin{tabularx}{0.7\linewidth}{Xccc} \toprule @@ -316,8 +305,10 @@ Bending & 5 & 118 & 24\\ Torsional & 260 & 1508 & 6\\ \bottomrule \end{tabularx} +\caption{\label{tab:test_joints_bending_torsion_prop}Bending/Torsion characteristics} + \end{table} -\section{Setup} +\paragraph{Setup} The setup is schematically represented in Figure \ref{fig:test_joints_bench_side_bis}. @@ -325,7 +316,7 @@ The force is applied on top of the flexible joint with a distance \(h\) with the The displacement of the flexible joint is also measured at the same height. The height between the joint's center and the force application point is: -\section{Effect of Bending} +\paragraph{Effect of Bending} The torque applied is: \begin{equation} M_y = F_x \cdot h @@ -341,7 +332,7 @@ The measured displacement is: \begin{equation} D_b = h \tan(\theta_y) = h \tan\left( \frac{F_x \cdot h}{k_{R_y}} \right) \label{eq:bending_stiffness_formula} \end{equation} -\section{Computation of the bending stiffness} +\paragraph{Computation of the bending stiffness} From equation \eqref{eq:bending_stiffness_formula}, we can compute the bending stiffness: \begin{equation} k_{R_y} = \frac{F_x \cdot h}{\tan^{-1}\left( \frac{D_b}{h} \right)} @@ -358,12 +349,12 @@ And therefore, to precisely measure \(k_{R_y}\), we need to: \item precisely measure the applied force \(F_x\) \item precisely now the height of the force application point \(h\) \end{itemize} -\section{Estimation error due to force and displacement sensors accuracy} +\paragraph{Estimation error due to force and displacement sensors accuracy} The maximum error on the measured displacement with the encoder is 40 nm. This quite negligible compared to the measurement range of 0.5 mm. The accuracy of the force sensor is around 1\% and therefore, we should expect to have an accuracy on the measured stiffness of at most 1\%. -\section{Estimation error due to Shear} +\paragraph{Estimation error due to Shear} The effect of Shear on the measured displacement is simply: \begin{equation} D_s = \frac{F_x}{k_s} @@ -382,7 +373,7 @@ The estimated bending stiffness \(k_{\text{est}}\) will then be: \begin{verbatim} The measurement error due to Shear is 0.1 % \end{verbatim} -\section{Estimation error due to force sensor compression} +\paragraph{Estimation error due to force sensor compression} The measured displacement is not done directly at the joint's location. The force sensor compression will then induce an error on the joint's stiffness. @@ -405,7 +396,7 @@ The estimated bending stiffness \(k_{\text{est}}\) will then be: \begin{verbatim} The measurement error due to height estimation errors is 0.8 % \end{verbatim} -\section{Estimation error due to height estimation error} +\paragraph{Estimation error due to height estimation error} Let's consider an error in the estimation of the height from the application of the force to the joint's center: \begin{equation} h_{\text{est}} = h (1 + \epsilon) @@ -424,16 +415,36 @@ And the stiffness estimation error is: \begin{verbatim} The measurement error due to height estimation errors of 0.2 [mm] is 1.6 % \end{verbatim} -\section{Conclusion} +\paragraph*{Conclusion} Based on the above analysis, we should expect no better than few percent of accuracy using the current test-bench. This is well enough for a first estimation of the bending stiffness of the flexible joints. +\chapter{Bending Stiffness Measurement} +\label{sec:test_joints_bending_stiffness_meas} +\section{Introduction} -Another measurement bench allowing better accuracy will be developed. -\chapter{First Measurements} -\label{sec:test_joints_first_measurements} -\begin{itemize} -\item \textbf{Encoder}: \href{doc/L-9517-9448-05-B\_Data\_sheet\_RESOLUTE\_BiSS\_en.pdf}{Renishaw Resolute 1nm} -\end{itemize} +A picture of the bench used to measure the X-bending stiffness of the flexible joints is shown in Figure \ref{fig:test_joints_picture_bench_overview}. +A closer view on flexible joint is shown in Figure \ref{fig:test_joints_picture_bench_close} and a zoom on the force sensor tip is shown in Figure \ref{fig:test_joints_picture_bench_zoom}. + +\begin{figure}[htbp] +\centering +\includegraphics[scale=1,width=\linewidth]{figs/test_joints_picture_bench_overview.jpg} +\caption{\label{fig:test_joints_picture_bench_overview}Side view of the flexible joint stiffness bench. X-Bending stiffness is measured.} +\end{figure} + +\begin{figure}[htbp] +\centering +\includegraphics[scale=1,width=\linewidth]{figs/test_joints_picture_bench_close.jpg} +\caption{\label{fig:test_joints_picture_bench_close}Zoom on the flexible joint - Side view} +\end{figure} + + +\begin{figure}[htbp] +\centering +\includegraphics[scale=1,width=0.4\linewidth]{figs/test_joints_picture_bench_zoom.jpg} +\caption{\label{fig:test_joints_picture_bench_zoom}Zoom on the tip of the force sensor} +\end{figure} + +The same bench used to measure the Y-bending stiffness of the flexible joint by pivoting the flexible joint by 90 degrees. \section{Force Sensor Calibration} \begin{note} @@ -518,33 +529,6 @@ And we obtain the following stiffness: \begin{verbatim} k = 0.76 [N/um] \end{verbatim} -\chapter{Bending Stiffness Measurement} -\label{sec:test_joints_bending_stiffness_meas} -\section{Introduction} - -A picture of the bench used to measure the X-bending stiffness of the flexible joints is shown in Figure \ref{fig:test_joints_picture_bench_overview}. -A closer view on flexible joint is shown in Figure \ref{fig:test_joints_picture_bench_close} and a zoom on the force sensor tip is shown in Figure \ref{fig:test_joints_picture_bench_zoom}. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=\linewidth]{figs/test_joints_picture_bench_overview.jpg} -\caption{\label{fig:test_joints_picture_bench_overview}Side view of the flexible joint stiffness bench. X-Bending stiffness is measured.} -\end{figure} - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=\linewidth]{figs/test_joints_picture_bench_close.jpg} -\caption{\label{fig:test_joints_picture_bench_close}Zoom on the flexible joint - Side view} -\end{figure} - - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1,width=0.4\linewidth]{figs/test_joints_picture_bench_zoom.jpg} -\caption{\label{fig:test_joints_picture_bench_zoom}Zoom on the tip of the force sensor} -\end{figure} - -The same bench used to measure the Y-bending stiffness of the flexible joint by pivoting the flexible joint by 90 degrees. \section{Analysis of one measurement} In this section is shown how the data are analysis in order to measured: @@ -597,7 +581,6 @@ Now, let's estimate the bending stiffness and stroke for all the flexible joints The results are summarized in Table \ref{tab:test_joints_meas_results_x_dir} for the X direction and in Table \ref{tab:test_joints_meas_results_y_dir} for the Y direction. \begin{table}[htbp] -\caption{\label{tab:test_joints_meas_results_x_dir}Measured characteristics of the flexible joints in the X direction} \centering \begin{tabularx}{0.6\linewidth}{cccc} \toprule @@ -621,10 +604,11 @@ The results are summarized in Table \ref{tab:test_joints_meas_results_x_dir} for 16 & 6.0 & 148.7 & 17.5\\ \bottomrule \end{tabularx} +\caption{\label{tab:test_joints_meas_results_x_dir}Measured characteristics of the flexible joints in the X direction} + \end{table} \begin{table}[htbp] -\caption{\label{tab:test_joints_meas_results_y_dir}Measured characteristics of the flexible joints in the Y direction} \centering \begin{tabularx}{0.6\linewidth}{cccc} \toprule @@ -648,6 +632,8 @@ The results are summarized in Table \ref{tab:test_joints_meas_results_x_dir} for 16 & 5.3 & 291.1 & 17.7\\ \bottomrule \end{tabularx} +\caption{\label{tab:test_joints_meas_results_y_dir}Measured characteristics of the flexible joints in the Y direction} + \end{table} \section{Analysis} The dispersion of the measured bending stiffness is shown in Figure \ref{fig:test_joints_bend_stiff_hist} and of the bending stroke in Figure \ref{fig:test_joints_bend_stroke_hist}. @@ -671,7 +657,7 @@ The relation between the measured beam thickness and the measured bending stiffn \includegraphics[scale=1]{figs/test_joints_thickness_stiffness.png} \caption{\label{fig:test_joints_thickness_stiffness}Measured bending stiffness as a function of the estimated flexible beam thickness} \end{figure} -\section{Conclusion} +\section*{Conclusion} \begin{important} The measured bending stiffness and bending stroke of the flexible joints are very close to the estimated one using a Finite Element Model.