Compare commits

..

No commits in common. "bb1364416bab5aa5a2ebfd9a6f1ddf7e805b73cf" and "f7510ef5c4e29f7fddee5d71af92af30d6ebb218" have entirely different histories.

17 changed files with 354 additions and 226 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -345,9 +345,7 @@ meas_flex = [[223, 226, 224, 214];
#+begin_src matlab :exports none #+begin_src matlab :exports none
%% Histogram of the measured gap %% Histogram of the measured gap
figure; figure;
hold on;
histogram([(meas_flex(:,1)+meas_flex(:,2))/2,(meas_flex(:,3)+meas_flex(:,4))/2], 7) histogram([(meas_flex(:,1)+meas_flex(:,2))/2,(meas_flex(:,3)+meas_flex(:,4))/2], 7)
hold off;
xlabel("Measured beam thickness [$\mu m$]"); xlabel("Measured beam thickness [$\mu m$]");
xticks([200, 205, 210, 215, 220, 225, 230, 235]) xticks([200, 205, 210, 215, 220, 225, 230, 235])
#+end_src #+end_src
@ -733,6 +731,7 @@ A closer view on the force sensor tip is shown in Figure ref:fig:test_joints_pic
#+end_src #+end_src
** Load Cell Calibration ** Load Cell Calibration
In order to estimate the measured errors of the load cell "FC2231", it is compared against another load cell[fn:5]. In order to estimate the measured errors of the load cell "FC2231", it is compared against another load cell[fn:5].
The two load cells are measured simultaneously while they are pushed against each other (see Figure ref:fig:test_joints_force_sensor_calib_picture). The two load cells are measured simultaneously while they are pushed against each other (see Figure ref:fig:test_joints_force_sensor_calib_picture).
The contact between the two load cells is well defined as one has a spherical interface while the other has a flat surface. The contact between the two load cells is well defined as one has a spherical interface while the other has a flat surface.
@ -781,7 +780,7 @@ exportFig('figs/test_joints_force_sensor_calib_fit.pdf', 'width', 'half', 'heigh
#+end_src #+end_src
#+name: fig:test_joints_force_sensor_calib #+name: fig:test_joints_force_sensor_calib
#+caption: Estimation of the load cell accuracy. A picture of the measurement bench is shown in (\subref{fig:test_joints_force_sensor_calib_picture}). Comparison of the two measured forces is made in (\subref{fig:test_joints_force_sensor_calib_fit}) #+caption: Caption with reference to sub figure (\subref{fig:test_joints_force_sensor_calib_picture}), (\subref{fig:test_joints_force_sensor_calib_fit})
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:test_joints_force_sensor_calib_picture}Zoom on the two force sensors in contact} #+attr_latex: :caption \subcaption{\label{fig:test_joints_force_sensor_calib_picture}Zoom on the two force sensors in contact}
@ -839,10 +838,10 @@ exportFig('figs/test_joints_force_sensor_stiffness_fit.pdf', 'width', 'half', 'h
#+end_src #+end_src
#+name: fig:test_joints_meas_force_sensor_stiffness #+name: fig:test_joints_meas_force_sensor_stiffness
#+caption: Estimation of the load cell stiffness. Measurement setup is shown in (\subref{fig:test_joints_meas_force_sensor_stiffness_picture}). Measurement results is shown in (\subref{fig:test_joints_force_sensor_stiffness_fit}). #+caption: Estimation of the load cell stiffness. Measurement setup is shown in (\subref{fig:test_joints_meas_force_sensor_stiffness_picture}). Measurement results is shown in (\subref{fig:test_joints_meas_force_sensor_stiffness_fit}).
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:test_joints_meas_force_sensor_stiffness_picture}Picture of the measurement bench} #+attr_latex: :caption \subcaption{\label{fig:test_joints_meas_force_sensor_stiffness_picture}Picture of the test}
#+attr_latex: :options {0.49\textwidth} #+attr_latex: :options {0.49\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :height 5.5cm #+attr_latex: :height 5.5cm
@ -867,52 +866,62 @@ The bending stiffness of the flexible joint can be estimated by computing the sl
The bending stroke can also be estimated as shown in Figure ref:fig:test_joints_meas_F_d_lin_fit and is found to be $\theta_{y,\text{max}} = 20.9\,\text{mrad}$. The bending stroke can also be estimated as shown in Figure ref:fig:test_joints_meas_F_d_lin_fit and is found to be $\theta_{y,\text{max}} = 20.9\,\text{mrad}$.
#+begin_src matlab #+begin_src matlab
%% Estimate the bending stiffness and stroke from the measurement - First Flexible joint %% Load Measured Data for first flexible joint
% Load Measured Data for first flexible joint
load('meas_stiff_flex_1_x.mat', 't', 'F', 'd'); load('meas_stiff_flex_1_x.mat', 't', 'F', 'd');
% Start measurement at t = 0.2 s %% Zero the force
F = F - mean(F(t > 0.1 & t < 0.3));
%% Start measurement at t = 0.2 s
d = d(t > 0.2); d = d(t > 0.2);
F = F(t > 0.2); F = F(t > 0.2);
t = t(t > 0.2); t = t - t(1); t = t(t > 0.2); t = t - t(1);
% Zero the force %% Compute torque and angular displacement
F = F - mean(F(t < 0.2)); h = 22.5e-3; % Height [m]
Ty = h * F; % Applied torque in [Nm]
thetay = atan2(d, h); % Measured angle in [rad]
%% Reset the measured angular stroke such that it is equal at zero when the load cell touches the flexible joint
% Find when the force sensor touches the flexible joint % Find when the force sensor touches the flexible joint
i_l_start = find(F > 0.3, 1, 'first'); i_l_start = find(F > 0.3, 1, 'first');
% Reset the measured diplacement at that point
% thetay = thetay - thetay(i_l_start);
% Compute torque and angular displacement %% Determine the linear region and region when touching the mechanical stop
h = 22.5e-3; % Height [m]
Tx = h * F; % Applied torque in [Nm]
thetax = atan2(d - d(i_l_start), h); % Measured angle in [rad]
% Find then the maximum torque is applied % Find then the maximum torque is applied
[~, i_s_stop] = max(Tx); [~, i_s_stop] = max(Ty);
% Linear region stops ~ when 90% of the stroke is reached % Linear region stops ~ when 90% of the stroke is reached
i_l_stop = find(thetax > 0.9*thetax(i_s_stop), 1, 'first'); i_l_stop = find(thetay > 0.9*thetay(i_s_stop), 1, 'first');
% Mechanical "Stop" region start ~20Nmm before maximum torque is applied % Mechanical "Stop" region start ~20Nmm before maximum torque is applied
i_s_start = find(Tx > max(Tx)-20e-3, 1, 'first'); i_s_start = find(Ty > max(Ty)-20e-3, 1, 'first');
% Linear fit in the "linear" region %% Define variables for the two regions
fit_l = polyfit(Tx(i_l_start:i_l_stop), thetax(i_l_start:i_l_stop), 1); % Linear Region
Ty_l = Ty(i_l_start:i_l_stop);
thetay_l = thetay(i_l_start:i_l_stop);
% Linear fit in the "mechanical stop" region % "Mechanical stop" Region
fit_s = polyfit(Tx(i_s_start:i_s_stop), thetax(i_s_start:i_s_stop), 1); Ty_s = Ty(i_s_start:i_s_stop);
thetay_s = thetay(i_s_start:i_s_stop);
% Reset displacement more precisely based on fit %% Fit the best straight line for the two regions
thetax = thetax - fit_l(2); fit_l = polyfit(Ty_l, thetay_l, 1);
fit_s = polyfit(Ty_s, thetay_s, 1);
%% Reset displacement more precisely based on fit
thetay = thetay - fit_l(2);
fit_s(2) = fit_s(2) - fit_l(2); fit_s(2) = fit_s(2) - fit_l(2);
fit_l(2) = 0; fit_l(2) = 0;
%% Estimation of the bending stiffness %% Estimation of the bending stiffness
kRx_l = 1/fit_l(1); % Bending Stiffness [Nm/rad] kRy_l = 1/fit_l(1); % Bending Stiffness [Nm/rad]
kRx_s = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad] kRy_s = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad]
%% Estimation of the bending stroke %% Estimation of the bending stroke
% This is done by finding the intersection of the two linear fits % This is done by finding the intersection of the two linear fits
theta_max = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)); % Maximum angular stroke [rad] theta_max = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)); % Maximum angular stroke [rad]
Tx_at_theta_max = (fit_s(2) - fit_l(2))/(fit_l(1) - fit_s(1)); Ty_at_theta_max = (fit_s(2) - fit_l(2))/(fit_l(1) - fit_s(1));
#+end_src #+end_src
#+begin_src matlab :exports none :results none #+begin_src matlab :exports none :results none
@ -928,14 +937,14 @@ plot(0.4*cos(0:0.01:2*pi)+3, ...
1.1*sin(0:0.01:2*pi)+4.8, 'k--'); 1.1*sin(0:0.01:2*pi)+4.8, 'k--');
text(3.5, 4.8, sprintf('Mechanical\nStop'), 'horizontalalignment', 'left'); text(3.5, 4.8, sprintf('Mechanical\nStop'), 'horizontalalignment', 'left');
hold off; hold off;
ylabel('Force $F_y$ [N]'); ylabel('Force $F_x$ [N]');
ylim([-4, 6]) ylim([-4, 6])
ylimr = get(gca,'Ylim'); ylimr = get(gca,'Ylim');
yyaxis right yyaxis right
plot(t, 1e3*d); plot(t, 1e3*d);
xlabel('Time [s]'); xlabel('Time [s]');
ylabel('Displacement $d_y$ [mm]'); ylabel('Displacement $d_x$ [mm]');
xlim([0,5]); xlim([0,5]);
% Make the force and displacement superimpose % Make the force and displacement superimpose
ylim([0.364 - 4*(0.8315-0.364)/4.095, 0.364 + 6*(0.8315-0.364)/4.095]) ylim([0.364 - 4*(0.8315-0.364)/4.095, 0.364 + 6*(0.8315-0.364)/4.095])
@ -947,23 +956,22 @@ exportFig('figs/test_joints_meas_bend_time.pdf', 'width', 'half', 'height', 'nor
#+begin_src matlab :exports none #+begin_src matlab :exports none
% Regions where to plot the fitted data % Regions where to plot the fitted data
Tx_l_fit = [0, Tx_at_theta_max]; Ty_l_fit = [0, Ty_at_theta_max];
Tx_s_fit = [Tx_at_theta_max, Tx(i_s_stop)]; Ty_s_fit = [Ty_at_theta_max, Ty(i_s_stop)];
figure; figure;
hold on; hold on;
plot(Tx(1:i_s_stop), 1e3*thetax(1:i_s_stop), '-k', 'DisplayName', 'Raw data') plot(Ty(1:i_s_stop), 1e3*thetay(1:i_s_stop), '-k', 'DisplayName', 'Raw data')
plot(Tx_l_fit, 1e3*(Tx_l_fit*fit_l(1) + fit_l(2)), '--', 'DisplayName', sprintf('$k_{R_x} = %.1f$ Nm/rad', kRx_l)) plot(Ty_l_fit, 1e3*(Ty_l_fit*fit_l(1) + fit_l(2)), '--', 'DisplayName', sprintf('$k_{R_y} = %.1f$ Nm/rad', kRy_l))
plot(Tx_s_fit, 1e3*(Tx_s_fit*fit_s(1) + fit_s(2)), '--', 'DisplayName', sprintf('$k_{R_x,stop} = %.0f$ Nm/rad', kRx_s)) plot(Ty_s_fit, 1e3*(Ty_s_fit*fit_s(1) + fit_s(2)), '--', 'DisplayName', sprintf('$k_{R_y,stop} = %.0f$ Nm/rad', kRy_s))
plot([0, Tx_at_theta_max], [1e3*theta_max, 1e3*theta_max], 'k--', 'HandleVisibility', 'off') plot([0, Ty_at_theta_max], [1e3*theta_max, 1e3*theta_max], 'k--', 'HandleVisibility', 'off')
plot([0, Tx_at_theta_max], [0, 0], 'k--', 'HandleVisibility', 'off')
anArrow = annotation('doublearrow', 'LineWidth', 0.5); anArrow = annotation('doublearrow', 'LineWidth', 0.5);
anArrow.Parent = gca; anArrow.Parent = gca;
anArrow.Position = [0.05, 0, 0, 1e3*fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1))]; anArrow.Position = [0.05, 0, 0, 1e3*fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1))];
text(0.052, 0.4*1e3*fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)), sprintf('$\\theta_{x,\\max} = %.1f$ mrad', 1e3*theta_max), 'horizontalalignment', 'left'); text(0.052, 0.4*1e3*fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)), sprintf('$\\theta_{y,\\max} = %.1f$ mrad', 1e3*theta_max), 'horizontalalignment', 'left');
hold off; hold off;
xlabel('Torque $T_x$ [Nm]'); xlabel('Torque $T_y$ [Nm]');
ylabel('Angle $\theta_x$ [mrad]'); ylabel('Angle $\theta_y$ [mrad]');
xlim([0, 0.15]); xlim([0, 0.15]);
ylim([-5,25]); ylim([-5,25]);
leg = legend('location', 'southeast', 'FontSize', 8); leg = legend('location', 'southeast', 'FontSize', 8);
@ -975,7 +983,7 @@ exportFig('figs/test_joints_meas_F_d_lin_fit.pdf', 'width', 'half', 'height', 'n
#+end_src #+end_src
#+name: fig:test_joints_meas_example #+name: fig:test_joints_meas_example
#+caption: Results obtained on the first flexible joint. Measured force and displacement are shown in (\subref{fig:test_joints_meas_bend_time}). The estimated angular displacement $\theta_x$ as a function of the estimated applied torque $T_{x}$ is shown in (\subref{fig:test_joints_meas_F_d_lin_fit}). The bending stiffness $k_{R_x}$ of the flexible joint can be estimated by computing a best linear fit (red dashed line). #+caption: Results obtained on the first flexible joint. Measured force and displacement are shown in (\subref{fig:test_joints_meas_bend_time}). The estimated angular displacement $\theta_y$ as a function of the estimated applied torque $T_{y}$ is shown in (\subref{fig:test_joints_meas_F_d_lin_fit}). The bending stiffness $k_{R_y}$ of the flexible joint can be estimated by computing a best linear fit (red dashed line).
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:test_joints_meas_bend_time}Force and displacement measured as a function of time} #+attr_latex: :caption \subcaption{\label{fig:test_joints_meas_bend_time}Force and displacement measured as a function of time}
@ -992,190 +1000,243 @@ exportFig('figs/test_joints_meas_F_d_lin_fit.pdf', 'width', 'half', 'height', 'n
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
** Measured flexible joint stiffnesses ** TODO Comparison of the measured Stiffnesses
The same measurement is performed for all the 16 flexible joints, both in the $x$ and $y$ directions. Now, let's estimate the bending stiffness and stroke for all the flexible joints.
The measured angular motion as a function of the applied torque are shown in Figure ref:fig:test_joints_meas_bending_all_raw_data for all the 16 flexible joints.
This gives a first idea of the dispersion of the measured bending stiffnesses (i.e. slope of the linear region) and of the angular stroke. #+begin_src matlab :exports none
%% Initialize variables
An histogram of the measured bending stiffnesses is show in Figure ref:fig:test_joints_bend_stiff_hist. kRx = zeros(1,16);
Most of the bending stiffnesses are between $4.6\,Nm/rad$ and $5.0\,Nm/rad$. kSx = zeros(1,16);
Rmx = zeros(1,16);
for i = 1:16
%% Load the data
load(['meas_stiff_flex_' num2str(i) '_x.mat'], 't', 'F', 'd');
%% Automatic Zero of the force
F = F - mean(F(t > 0.1 & t < 0.3));
%% Start measurement at t = 0.2 s
d = d(t > 0.2);
F = F(t > 0.2);
t = t(t > 0.2); t = t - t(1);
%% Estimate linear region and "stop" region
i_l_start = find(F > 0.3, 1, 'first');
d = d - d(i_l_start);
[~, i_s_stop] = max(F);
i_l_stop = find(d > 0.9*d(i_s_stop), 1, 'first');
i_s_start = find(F > max(F)-1, 1, 'first');
F_l = F(i_l_start:i_l_stop);
d_l = d(i_l_start:i_l_stop);
F_s = F(i_s_start:i_s_stop);
d_s = d(i_s_start:i_s_stop);
%% Straight line fit
fit_l = polyfit(F_l, d_l, 1);
fit_s = polyfit(F_s, d_s, 1);
%% Reset displacement based on fit
d = d - fit_l(2);
fit_s(2) = fit_s(2) - fit_l(2);
fit_l(2) = 0;
%% Estimated Stroke
d_max = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1));
%% Save stiffnesses and stroke
kRx(i) = (h)^2/fit_l(1);
kSx(i) = (h)^2/fit_s(1);
Rmx(i) = atan2(d_max,h);
end
#+end_src
#+begin_src matlab :exports none
%% Initialize variables
kRy = zeros(1,16);
kSy = zeros(1,16);
Rmy = zeros(1,16);
for i = 1:16
%% Load the data
load(['meas_stiff_flex_' num2str(i) '_y.mat'], 't', 'F', 'd');
%% Automatic Zero of the force
F = F - mean(F(t > 0.1 & t < 0.3));
%% Start measurement at t = 0.2 s
d = d(t > 0.2);
F = F(t > 0.2);
t = t(t > 0.2); t = t - t(1);
%% Estimate linear region and "stop" region
i_l_start = find(F > 0.3, 1, 'first');
d = d - d(i_l_start);
[~, i_s_stop] = max(F);
i_l_stop = find(d > 0.9*d(i_s_stop), 1, 'first');
i_s_start = find(F > max(F)-1, 1, 'first');
F_l = F(i_l_start:i_l_stop);
d_l = d(i_l_start:i_l_stop);
F_s = F(i_s_start:i_s_stop);
d_s = d(i_s_start:i_s_stop);
%% Straight line fit
fit_l = polyfit(F_l, d_l, 1);
fit_s = polyfit(F_s, d_s, 1);
%% Reset displacement based on fit
d = d - fit_l(2);
fit_s(2) = fit_s(2) - fit_l(2);
fit_l(2) = 0;
%% Estimated Stroke
d_max = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1));
%% Save stiffnesses and stroke
kRy(i) = (h)^2/fit_l(1);
kSy(i) = (h)^2/fit_s(1);
Rmy(i) = atan2(d_max,h);
end
#+end_src
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_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
data2orgtable([kRx; kSx; 1e3*Rmx]', {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}, {'$R_{R_x}$ [Nm/rad]', '$k_{R_x,s}$ [Nm/rad]', '$R_{x,\text{max}}$ [mrad]'}, ' %.1f ');
#+end_src
#+name: tab:test_joints_meas_results_x_dir
#+caption: Measured characteristics of the flexible joints in the X direction
#+attr_latex: :environment tabularx :width 0.6\linewidth :align cccc
#+attr_latex: :center t :booktabs t :float t
#+RESULTS:
| | $R_{R_x}$ [Nm/rad] | $k_{R_x,s}$ [Nm/rad] | $R_{x,\text{max}}$ [mrad] |
|----+--------------------+----------------------+---------------------------|
| 1 | 5.5 | 173.6 | 18.9 |
| 2 | 6.1 | 195.0 | 17.6 |
| 3 | 6.1 | 191.3 | 17.7 |
| 4 | 5.8 | 136.7 | 18.3 |
| 5 | 5.7 | 88.9 | 22.0 |
| 6 | 5.7 | 183.9 | 18.7 |
| 7 | 5.7 | 157.9 | 17.9 |
| 8 | 5.8 | 166.1 | 17.9 |
| 9 | 5.8 | 159.5 | 18.2 |
| 10 | 6.0 | 143.6 | 18.1 |
| 11 | 5.0 | 163.8 | 17.7 |
| 12 | 6.1 | 111.9 | 17.0 |
| 13 | 6.0 | 142.0 | 17.4 |
| 14 | 5.8 | 130.1 | 17.9 |
| 15 | 5.7 | 170.7 | 18.6 |
| 16 | 6.0 | 148.7 | 17.5 |
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
data2orgtable([kRy; kSy; 1e3*Rmy]', {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}, {'$R_{R_y}$ [Nm/rad]', '$k_{R_y,s}$ [Nm/rad]', '$R_{y,\text{may}}$ [mrad]'}, ' %.1f ');
#+end_src
#+name: tab:test_joints_meas_results_y_dir
#+caption: Measured characteristics of the flexible joints in the Y direction
#+attr_latex: :environment tabularx :width 0.6\linewidth :align cccc
#+attr_latex: :center t :booktabs t :float t
#+RESULTS:
| | $R_{R_y}$ [Nm/rad] | $k_{R_y,s}$ [Nm/rad] | $R_{y,\text{may}}$ [mrad] |
|----+--------------------+----------------------+---------------------------|
| 1 | 5.7 | 323.5 | 17.9 |
| 2 | 5.9 | 306.0 | 17.2 |
| 3 | 6.0 | 224.4 | 16.8 |
| 4 | 5.7 | 247.3 | 17.8 |
| 5 | 5.8 | 250.9 | 13.0 |
| 6 | 5.8 | 244.5 | 17.8 |
| 7 | 5.3 | 214.8 | 18.1 |
| 8 | 5.8 | 217.2 | 17.6 |
| 9 | 5.7 | 225.0 | 17.6 |
| 10 | 6.0 | 254.7 | 17.3 |
| 11 | 4.9 | 261.1 | 18.4 |
| 12 | 5.9 | 161.5 | 16.7 |
| 13 | 6.1 | 227.6 | 16.8 |
| 14 | 5.9 | 221.3 | 17.8 |
| 15 | 5.4 | 241.5 | 17.8 |
| 16 | 5.3 | 291.1 | 17.7 |
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.
#+begin_src matlab :exports none #+begin_src matlab :exports none
%% Measure the bending stiffness and Stroke for all the flexible joints
figure; figure;
hold on; hold on;
histogram(kRx, 'DisplayName', '$k_{R_x}$')
histogram(kRy, 'DisplayName', '$k_{R_y}$')
hold off;
xlabel('Bending Stiffness [Nm/rad]')
legend('FontSize', 8);
#+end_src
%% Start with the X-bending #+begin_src matlab :tangle no :exports results :results file replace
% Initialize variables exportFig('figs/test_joints_bend_stiff_hist.pdf', 'width', 'wide', 'height', 'normal');
Rx = zeros(1,16); % Bending stiffnesses [Nm/rad] #+end_src
kSx = zeros(1,16); % Bending stiffnesses at "stop" [Nm/rad]
Rmx = zeros(1,16); % Bending stroke [rad]
for i = 1:16 #+name: fig:test_joints_bend_stiff_hist
% Load the data #+caption: Histogram of the measured bending stiffness
load(sprintf('meas_stiff_flex_%i_x.mat', i), 't', 'F', 'd'); #+RESULTS:
[[file:figs/test_joints_bend_stiff_hist.png]]
% Start measurement at t = 0.2 s #+begin_src matlab :exports none
d = d(t > 0.2); figure;
F = F(t > 0.2); hold on;
t = t(t > 0.2); t = t - t(1); histogram(1e3*Rmx, 'DisplayName', '$k_{R_x}$')
histogram(1e3*Rmy, 'DisplayName', '$k_{R_y}$')
hold off;
xlabel('Bending Stroke [mrad]')
legend('FontSize', 8);
#+end_src
% Zero the force #+begin_src matlab :tangle no :exports results :results file replace
F = F - mean(F(t < 0.2)); exportFig('figs/test_joints_bend_stroke_hist.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
% Find when the force sensor touches the flexible joint #+name: fig:test_joints_bend_stroke_hist
i_l_start = find(F > 0.3, 1, 'first'); #+caption: Histogram of the measured bending stroke
#+RESULTS:
[[file:figs/test_joints_bend_stroke_hist.png]]
% Zero the displacement when it comes in contact The relation between the measured beam thickness and the measured bending stiffness is shown in Figure ref:fig:test_joints_thickness_stiffness.
d = d - d(i_l_start);
% Compute torque and angular displacement #+begin_src matlab :exports none
h = 22.5e-3; % Height [m] load('flex_meas_dim.mat', 'meas_flex');
Tx = h * F; % Applied torque in [Nm] figure;
thetax = atan2(d, h); % Measured angle in [rad] hold on;
plot((meas_flex(:,1)+meas_flex(:,2))/2, kRx, 'o', 'DisplayName', '$x$')
% Find then the maximum torque is applied plot((meas_flex(:,3)+meas_flex(:,4))/2, kRy, 'o', 'DisplayName', '$y$')
[~, i_s_stop] = max(Tx); hold off;
% Linear region stops ~ when 90% of the stroke is reached xlabel('Flexible Beam Thickness [$\mu m$]');
i_l_stop = find(thetax > 0.9*thetax(i_s_stop), 1, 'first'); ylabel('Bending Stiffness [Nm/rad]');
% Mechanical "Stop" region start ~20Nmm before maximum torque is applied
i_s_start = find(Tx > max(Tx)-20e-3, 1, 'first');
% Linear fit in the "linear" region
fit_l = polyfit(Tx(i_l_start:i_l_stop), thetax(i_l_start:i_l_stop), 1);
% Linear fit in the "mechanical stop" region
fit_s = polyfit(Tx(i_s_start:i_s_stop), thetax(i_s_start:i_s_stop), 1);
% Reset displacement more precisely based on fit
thetax = thetax - fit_l(2);
fit_s(2) = fit_s(2) - fit_l(2);
fit_l(2) = 0;
% Estimation of the bending stiffness and bending stroke
kRx(i) = 1/fit_l(1); % Bending Stiffness [Nm/rad]
kSx(i) = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad]
Rmx(i) = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)); % Maximum angular stroke [rad]
if i == 1
plot(Tx(1:10:i_s_stop), 1e3*thetax(1:10:i_s_stop), '-', 'color', [colors(1,:), 0.4], ...
'DisplayName', '$k_{R_x}$')
else
plot(Tx(1:10:i_s_stop), 1e3*thetax(1:10:i_s_stop), '-', 'color', [colors(1,:), 0.4], ...
'HandleVisibility', 'off')
end
end
%% Continue with the Y-bending
% Initialize variables
kRy = zeros(1,16); % Bending stiffnesses [Nm/rad]
kSy = zeros(1,16); % Bending stiffnesses at "stop" [Nm/rad]
Rmy = zeros(1,16); % Bending stroke [rad]
for i = 1:16
% Load the data
load(sprintf('meas_stiff_flex_%i_y.mat', i), 't', 'F', 'd');
% Start measurement at t = 0.2 s
d = d(t > 0.2);
F = F(t > 0.2);
t = t(t > 0.2); t = t - t(1);
% Zero the force
F = F - mean(F(t < 0.2));
% Find when the force sensor touches the flexible joint
i_l_start = find(F > 0.3, 1, 'first');
% Zero the displacement when it comes in contact
d = d - d(i_l_start);
% Compute torque and angular displacement
h = 22.5e-3; % Height [m]
Ty = h * F; % Applied torque in [Nm]
thetay = atan2(d, h); % Measured angle in [rad]
% Find then the maximum torque is applied
[~, i_s_stop] = max(Ty);
% Linear region stops ~ when 90% of the stroke is reached
i_l_stop = find(thetay > 0.9*thetay(i_s_stop), 1, 'first');
% Mechanical "Stop" region start ~20Nmm before maximum torque is applied
i_s_start = find(Ty > max(Ty)-20e-3, 1, 'first');
% Linear fit in the "linear" region
fit_l = polyfit(Ty(i_l_start:i_l_stop), thetay(i_l_start:i_l_stop), 1);
% Linear fit in the "mechanical stop" region
fit_s = polyfit(Ty(i_s_start:i_s_stop), thetay(i_s_start:i_s_stop), 1);
% Reset displacement more precisely based on fit
thetay = thetay - fit_l(2);
fit_s(2) = fit_s(2) - fit_l(2);
fit_l(2) = 0;
% Estimation of the bending stiffness and bending stroke
kRy(i) = 1/fit_l(1); % Bending Stiffness [Nm/rad]
kSy(i) = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad]
Rmy(i) = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)); % Maximum angular stroke [rad]
if i == 1
plot(Ty(1:10:i_s_stop), 1e3*thetay(1:10:i_s_stop), '-', 'color', [colors(2,:), 0.4], ...
'DisplayName', '$k_{R_y}$')
else
plot(Ty(1:10:i_s_stop), 1e3*thetay(1:10:i_s_stop), '-', 'color', [colors(2,:), 0.4], ...
'HandleVisibility', 'off')
end
end
xlabel('Torque $T$ [Nm]');
ylabel('Angle $\theta$ [mrad]');
xlim([0, 0.15]);
ylim([-5,25]);
legend('location', 'southeast', 'FontSize', 8); legend('location', 'southeast', 'FontSize', 8);
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file replace #+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/test_joints_meas_bending_all_raw_data.pdf', 'width', 'half', 'height', 'normal'); exportFig('figs/test_joints_thickness_stiffness.pdf', 'width', 'wide', 'height', 'normal');
#+end_src #+end_src
#+begin_src matlab :exports none #+name: fig:test_joints_thickness_stiffness
figure; #+caption: Measured bending stiffness as a function of the estimated flexible beam thickness
histogram([kRx, kRy], [4:0.2:5]) #+RESULTS:
xlabel('Bending stiffness [Nm/rad]') [[file:figs/test_joints_thickness_stiffness.png]]
xticks([4:0.2:5])
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/test_joints_bend_stiff_hist.pdf', 'width', 'half', 'height', 'normal');
#+end_src
#+name: fig:test_joints_meas_bending_results
#+caption: Result of measured $k_{R_x}$ and $k_{R_y}$ stiffnesses for all the 16 flexible joints. Raw data are shown in (\subref{fig:test_joints_meas_bending_all_raw_data}). An histogram of the measured stiffnesses is shown in (\subref{fig:test_joints_bend_stiff_hist})
#+attr_latex: :options [htbp]
#+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:test_joints_meas_bending_all_raw_data}Measured torque and angular motion for all the flexible joints}
#+attr_latex: :options {0.49\textwidth}
#+begin_subfigure
#+attr_latex: :height 5.3cm
[[file:figs/test_joints_meas_bending_all_raw_data.png]]
#+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:test_joints_bend_stiff_hist}Histogram of the measured bending stiffness in the x and y directions}
#+attr_latex: :options {0.49\textwidth}
#+begin_subfigure
#+attr_latex: :height 5.3cm
[[file:figs/test_joints_bend_stiff_hist.png]]
#+end_subfigure
#+end_figure
** Conclusion ** Conclusion
:PROPERTIES: :PROPERTIES:
:UNNUMBERED: t :UNNUMBERED: t
:END: :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. The measured bending stiffness and bending stroke of the flexible joints are very close to the estimated one using a Finite Element Model.
The characteristics of all the flexible joints are also quite close to each other. The characteristics of all the flexible joints are also quite close to each other.
This should allow us to model them with unique parameters. This should allow us to model them with unique parameters.
#+end_important
* Conclusion * Conclusion
<<sec:test_joints_conclusion>> <<sec:test_joints_conclusion>>

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2024-04-06 Sat 00:30 % Created 2024-04-05 Fri 17:52
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -29,7 +29,6 @@ Deviations from this ideal properties will impact the dynamics of the Nano-Hexap
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}. 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] \begin{table}[htbp]
\caption{\label{tab:test_joints_specs}Specifications for the flexible joints and estimated characteristics from the Finite Element Model}
\centering \centering
\begin{tabularx}{0.5\linewidth}{Xcc} \begin{tabularx}{0.5\linewidth}{Xcc}
\toprule \toprule
@ -42,6 +41,8 @@ Torsion Stiffness & \(< 500\,Nm/\text{rad}\) & 260\\
Bending Stroke & \(> 1\,\text{mrad}\) & 24.5\\ Bending Stroke & \(> 1\,\text{mrad}\) & 24.5\\
\bottomrule \bottomrule
\end{tabularx} \end{tabularx}
\caption{\label{tab:test_joints_specs}Specifications for the flexible joints and estimated characteristics from the Finite Element Model}
\end{table} \end{table}
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}. 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}.
@ -103,7 +104,6 @@ Finally, the test bench is manufacturer and used to measure the bending stiffnes
Results are shown in Section \ref{sec:test_joints_bending_stiffness_meas} Results are shown in Section \ref{sec:test_joints_bending_stiffness_meas}
\begin{table}[htbp] \begin{table}[htbp]
\caption{\label{tab:test_joints_section_matlab_code}Report sections and corresponding Matlab files}
\centering \centering
\begin{tabularx}{0.6\linewidth}{lX} \begin{tabularx}{0.6\linewidth}{lX}
\toprule \toprule
@ -114,6 +114,8 @@ Section \ref{sec:test_joints_test_bench_desc} & \texttt{test\_joints\_2\_bench\_
Section \ref{sec:test_joints_bending_stiffness_meas} & \texttt{test\_joints\_3\_bending\_stiff\_meas.m}\\ Section \ref{sec:test_joints_bending_stiffness_meas} & \texttt{test\_joints\_3\_bending\_stiff\_meas.m}\\
\bottomrule \bottomrule
\end{tabularx} \end{tabularx}
\caption{\label{tab:test_joints_section_matlab_code}Report sections and corresponding Matlab files}
\end{table} \end{table}
\chapter{Dimensional Measurements} \chapter{Dimensional Measurements}
\label{sec:test_joints_flex_dim_meas} \label{sec:test_joints_flex_dim_meas}
@ -357,7 +359,6 @@ The most important source of error comes from estimation error of the distance b
An overall accuracy of \(\approx 5\,\%\) can be expected with this measurement bench, which should be enough for a first estimation of the bending stiffness of the flexible joints. An overall accuracy of \(\approx 5\,\%\) can be expected with this measurement bench, which should be enough for a first estimation of the bending stiffness of the flexible joints.
\begin{table}[htbp] \begin{table}[htbp]
\caption{\label{tab:test_joints_error_budget}Summary of the error budget for the estimation of the bending stiffness}
\centering \centering
\begin{tabularx}{0.4\linewidth}{lX} \begin{tabularx}{0.4\linewidth}{lX}
\toprule \toprule
@ -370,6 +371,8 @@ Displacement sensor & \(\epsilon_d < 0.01\,\%\)\\
Force sensor & \(\epsilon_F < 1\,\%\)\\ Force sensor & \(\epsilon_F < 1\,\%\)\\
\bottomrule \bottomrule
\end{tabularx} \end{tabularx}
\caption{\label{tab:test_joints_error_budget}Summary of the error budget for the estimation of the bending stiffness}
\end{table} \end{table}
\chapter{Bending Stiffness Measurement} \chapter{Bending Stiffness Measurement}
\label{sec:test_joints_bending_stiffness_meas} \label{sec:test_joints_bending_stiffness_meas}
@ -394,6 +397,7 @@ A closer view on the force sensor tip is shown in Figure \ref{fig:test_joints_pi
\caption{\label{fig:test_joints_picture_bench}Caption with reference to sub figure (\subref{fig:fig_label_a})} \caption{\label{fig:test_joints_picture_bench}Caption with reference to sub figure (\subref{fig:fig_label_a})}
\end{figure} \end{figure}
\section{Load Cell Calibration} \section{Load Cell Calibration}
In order to estimate the measured errors of the load cell ``FC2231'', it is compared against another load cell\footnote{XFL212R-50N from TE Connectivity. Measurement range is \(50\,N\). Specified accuracy is \(1\,\%\) of the full range}. In order to estimate the measured errors of the load cell ``FC2231'', it is compared against another load cell\footnote{XFL212R-50N from TE Connectivity. Measurement range is \(50\,N\). Specified accuracy is \(1\,\%\) of the full range}.
The two load cells are measured simultaneously while they are pushed against each other (see Figure \ref{fig:test_joints_force_sensor_calib_picture}). The two load cells are measured simultaneously while they are pushed against each other (see Figure \ref{fig:test_joints_force_sensor_calib_picture}).
The contact between the two load cells is well defined as one has a spherical interface while the other has a flat surface. The contact between the two load cells is well defined as one has a spherical interface while the other has a flat surface.
@ -415,11 +419,11 @@ However, the estimated non-linearity is bellow \(1\,\%\) for forces between \(0.
\end{center} \end{center}
\subcaption{\label{fig:test_joints_force_sensor_calib_fit}Measured two force and linear fit} \subcaption{\label{fig:test_joints_force_sensor_calib_fit}Measured two force and linear fit}
\end{subfigure} \end{subfigure}
\caption{\label{fig:test_joints_force_sensor_calib}Estimation of the load cell accuracy. A picture of the measurement bench is shown in (\subref{fig:test_joints_force_sensor_calib_picture}). Comparison of the two measured forces is made in (\subref{fig:test_joints_force_sensor_calib_fit})} \caption{\label{fig:test_joints_force_sensor_calib}Caption with reference to sub figure (\subref{fig:test_joints_force_sensor_calib_picture}), (\subref{fig:test_joints_force_sensor_calib_fit})}
\end{figure} \end{figure}
\section{Load Cell Stiffness} \section{Load Cell Stiffness}
The objective of this measurement is to estimate the stiffness \(k_F\) of the force sensor. The objective of this measurement is to estimate the stiffness \(k_F\) of the force sensor.
To do so, a stiff element (much stiffer than the estimated \(k_F \approx 1\,N/\mu m\)) is fixed in front of the force sensor as shown in Figure \ref{fig:test_joints_meas_force_sensor_stiffness_picture}. To do so, a stiff element (much stiffer than the estimated \(k_F \approx 1\,N/\mu m\)) is fixed in front of the force sensor as shown in Figure \ref{fig:test_joints_meas_force_sensor_stiffness}.
Then, the force sensor is pushed again this stiff element while the force and the encoder displacement are measured. Then, the force sensor is pushed again this stiff element while the force and the encoder displacement are measured.
Measured displacement as a function of the force is shown in Figure \ref{fig:test_joints_force_sensor_stiffness_fit}. Measured displacement as a function of the force is shown in Figure \ref{fig:test_joints_force_sensor_stiffness_fit}.
The load cell stiffness can then be estimated by computing a linear fit, and is found to be \(k_F \approx 0.75\,N/\mu m\). The load cell stiffness can then be estimated by computing a linear fit, and is found to be \(k_F \approx 0.75\,N/\mu m\).
@ -429,7 +433,7 @@ The load cell stiffness can then be estimated by computing a linear fit, and is
\begin{center} \begin{center}
\includegraphics[scale=1,height=5.5cm]{figs/test_joints_meas_force_sensor_stiffness_picture.jpg} \includegraphics[scale=1,height=5.5cm]{figs/test_joints_meas_force_sensor_stiffness_picture.jpg}
\end{center} \end{center}
\subcaption{\label{fig:test_joints_meas_force_sensor_stiffness_picture}Picture of the measurement bench} \subcaption{\label{fig:test_joints_meas_force_sensor_stiffness_picture}Picture of the test}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.49\textwidth} \begin{subfigure}{0.49\textwidth}
\begin{center} \begin{center}
@ -437,9 +441,10 @@ The load cell stiffness can then be estimated by computing a linear fit, and is
\end{center} \end{center}
\subcaption{\label{fig:test_joints_force_sensor_stiffness_fit}Measured displacement as a function of the force} \subcaption{\label{fig:test_joints_force_sensor_stiffness_fit}Measured displacement as a function of the force}
\end{subfigure} \end{subfigure}
\caption{\label{fig:test_joints_meas_force_sensor_stiffness}Estimation of the load cell stiffness. Measurement setup is shown in (\subref{fig:test_joints_meas_force_sensor_stiffness_picture}). Measurement results is shown in (\subref{fig:test_joints_force_sensor_stiffness_fit}).} \caption{\label{fig:test_joints_meas_force_sensor_stiffness}Estimation of the load cell stiffness. (\subref{fig:test_joints_meas_force_sensor_stiffness_picture}) (\subref{fig:test_joints_meas_force_sensor_stiffness_fit})}
\end{figure} \end{figure}
\section{Bending Stiffness estimation} \section{Analysis of one measurement}
The actual stiffness measurement in now performed by manually moving the translation stage from a start position where the force sensor is not yet in contact with the flexible joint to a position where flexible joint is on its mechanical stop. The actual stiffness measurement in now performed by manually moving the translation stage from a start position where the force sensor is not yet in contact with the flexible joint to a position where flexible joint is on its mechanical stop.
The measured force and displacement as a function of time are shown in Figure \ref{fig:test_joints_meas_bend_time}. The measured force and displacement as a function of time are shown in Figure \ref{fig:test_joints_meas_bend_time}.
@ -462,36 +467,98 @@ The bending stroke can also be estimated as shown in Figure \ref{fig:test_joints
\end{center} \end{center}
\subcaption{\label{fig:test_joints_meas_F_d_lin_fit}Angular displacement measured as a function of the applied torque} \subcaption{\label{fig:test_joints_meas_F_d_lin_fit}Angular displacement measured as a function of the applied torque}
\end{subfigure} \end{subfigure}
\caption{\label{fig:test_joints_meas_example}Results obtained on the first flexible joint. Measured force and displacement are shown in (\subref{fig:test_joints_meas_bend_time}). The estimated angular displacement \(\theta_x\) as a function of the estimated applied torque \(T_{x}\) is shown in (\subref{fig:test_joints_meas_F_d_lin_fit}). The bending stiffness \(k_{R_x}\) of the flexible joint can be estimated by computing a best linear fit (red dashed line).} \caption{\label{fig:test_joints_meas_example}Results obtained on the first flexible joint. Measured force and displacement are shown in (\subref{fig:test_joints_meas_bend_time}). The estimated angular displacement \(\theta_y\) as a function of the estimated applied torque \(T_{y}\) is shown in (\subref{fig:test_joints_meas_F_d_lin_fit}). The bending stiffness \(k_{R_y}\) of the flexible joint can be estimated by computing a best linear fit (red dashed line).}
\end{figure} \end{figure}
\section{Measured flexible joint stiffnesses} \section{Bending stiffness and bending stroke of all the flexible joints}
The same measurement is performed for all the 16 flexible joints, both in the \(x\) and \(y\) directions.
The measured angular motion as a function of the applied torque are shown in Figure \ref{fig:test_joints_meas_bending_all_raw_data} for all the 16 flexible joints.
This gives a first idea of the dispersion of the measured bending stiffnesses (i.e. slope of the linear region) and of the angular stroke.
An histogram of the measured bending stiffnesses is show in Figure \ref{fig:test_joints_bend_stiff_hist}. Now, let's estimate the bending stiffness and stroke for all the flexible joints.
Most of the bending stiffnesses are between \(4.6\,Nm/rad\) and \(5.0\,Nm/rad\).
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]
\centering
\begin{tabularx}{0.6\linewidth}{cccc}
\toprule
& \(R_{R_x}\) {[}Nm/rad] & \(k_{R_x,s}\) {[}Nm/rad] & \(R_{x,\text{max}}\) {[}mrad]\\
\midrule
1 & 5.5 & 173.6 & 18.9\\
2 & 6.1 & 195.0 & 17.6\\
3 & 6.1 & 191.3 & 17.7\\
4 & 5.8 & 136.7 & 18.3\\
5 & 5.7 & 88.9 & 22.0\\
6 & 5.7 & 183.9 & 18.7\\
7 & 5.7 & 157.9 & 17.9\\
8 & 5.8 & 166.1 & 17.9\\
9 & 5.8 & 159.5 & 18.2\\
10 & 6.0 & 143.6 & 18.1\\
11 & 5.0 & 163.8 & 17.7\\
12 & 6.1 & 111.9 & 17.0\\
13 & 6.0 & 142.0 & 17.4\\
14 & 5.8 & 130.1 & 17.9\\
15 & 5.7 & 170.7 & 18.6\\
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]
\centering
\begin{tabularx}{0.6\linewidth}{cccc}
\toprule
& \(R_{R_y}\) {[}Nm/rad] & \(k_{R_y,s}\) {[}Nm/rad] & \(R_{y,\text{may}}\) {[}mrad]\\
\midrule
1 & 5.7 & 323.5 & 17.9\\
2 & 5.9 & 306.0 & 17.2\\
3 & 6.0 & 224.4 & 16.8\\
4 & 5.7 & 247.3 & 17.8\\
5 & 5.8 & 250.9 & 13.0\\
6 & 5.8 & 244.5 & 17.8\\
7 & 5.3 & 214.8 & 18.1\\
8 & 5.8 & 217.2 & 17.6\\
9 & 5.7 & 225.0 & 17.6\\
10 & 6.0 & 254.7 & 17.3\\
11 & 4.9 & 261.1 & 18.4\\
12 & 5.9 & 161.5 & 16.7\\
13 & 6.1 & 227.6 & 16.8\\
14 & 5.9 & 221.3 & 17.8\\
15 & 5.4 & 241.5 & 17.8\\
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}.
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.49\textwidth} \centering
\begin{center} \includegraphics[scale=1]{figs/test_joints_bend_stiff_hist.png}
\includegraphics[scale=1,height=5.3cm]{figs/test_joints_meas_bending_all_raw_data.png} \caption{\label{fig:test_joints_bend_stiff_hist}Histogram of the measured bending stiffness}
\end{center} \end{figure}
\subcaption{\label{fig:test_joints_meas_bending_all_raw_data}Measured torque and angular motion for all the flexible joints}
\end{subfigure} \begin{figure}[htbp]
\begin{subfigure}{0.49\textwidth} \centering
\begin{center} \includegraphics[scale=1]{figs/test_joints_bend_stroke_hist.png}
\includegraphics[scale=1,height=5.3cm]{figs/test_joints_bend_stiff_hist.png} \caption{\label{fig:test_joints_bend_stroke_hist}Histogram of the measured bending stroke}
\end{center} \end{figure}
\subcaption{\label{fig:test_joints_bend_stiff_hist}Histogram of the measured bending stiffness in the x and y directions}
\end{subfigure} The relation between the measured beam thickness and the measured bending stiffness is shown in Figure \ref{fig:test_joints_thickness_stiffness}.
\caption{\label{fig:test_joints_meas_bending_results}Result of measured \(k_{R_x}\) and \(k_{R_y}\) stiffnesses for all the 16 flexible joints. Raw data are shown in (\subref{fig:test_joints_meas_bending_all_raw_data}). An histogram of the measured stiffnesses is shown in (\subref{fig:test_joints_bend_stiff_hist})}
\begin{figure}[htbp]
\centering
\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} \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. The measured bending stiffness and bending stroke of the flexible joints are very close to the estimated one using a Finite Element Model.
The characteristics of all the flexible joints are also quite close to each other. The characteristics of all the flexible joints are also quite close to each other.
This should allow us to model them with unique parameters. This should allow us to model them with unique parameters.
\end{important}
\chapter{Conclusion} \chapter{Conclusion}
\label{sec:test_joints_conclusion} \label{sec:test_joints_conclusion}
\printbibliography[heading=bibintoc,title={Bibliography}] \printbibliography[heading=bibintoc,title={Bibliography}]