Better estimate bending stiffness
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 42 KiB |
BIN
figs/test_joints_meas_bending_all_raw_data.pdf
Normal file
BIN
figs/test_joints_meas_bending_all_raw_data.png
Normal file
After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 34 KiB |
@ -345,7 +345,9 @@ 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
|
||||||
@ -731,7 +733,6 @@ 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.
|
||||||
@ -780,7 +781,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: Caption with reference to sub figure (\subref{fig:test_joints_force_sensor_calib_picture}), (\subref{fig:test_joints_force_sensor_calib_fit})
|
#+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})
|
||||||
#+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}
|
||||||
@ -838,10 +839,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_meas_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_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 test}
|
#+attr_latex: :caption \subcaption{\label{fig:test_joints_meas_force_sensor_stiffness_picture}Picture of the measurement bench}
|
||||||
#+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
|
||||||
@ -866,62 +867,52 @@ 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
|
||||||
%% Load Measured Data for first flexible joint
|
%% Estimate the bending stiffness and stroke from the measurement - 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');
|
||||||
|
|
||||||
%% Zero the force
|
% Start measurement at t = 0.2 s
|
||||||
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);
|
||||||
|
|
||||||
%% Compute torque and angular displacement
|
% Zero the force
|
||||||
h = 22.5e-3; % Height [m]
|
F = F - mean(F(t < 0.2));
|
||||||
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);
|
|
||||||
|
|
||||||
%% Determine the linear region and region when touching the mechanical stop
|
% Compute torque and angular displacement
|
||||||
|
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(Ty);
|
[~, i_s_stop] = max(Tx);
|
||||||
% Linear region stops ~ when 90% of the stroke is reached
|
% Linear region stops ~ when 90% of the stroke is reached
|
||||||
i_l_stop = find(thetay > 0.9*thetay(i_s_stop), 1, 'first');
|
i_l_stop = find(thetax > 0.9*thetax(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(Ty > max(Ty)-20e-3, 1, 'first');
|
i_s_start = find(Tx > max(Tx)-20e-3, 1, 'first');
|
||||||
|
|
||||||
%% Define variables for the two regions
|
% Linear fit in the "linear" region
|
||||||
% Linear Region
|
fit_l = polyfit(Tx(i_l_start:i_l_stop), thetax(i_l_start:i_l_stop), 1);
|
||||||
Ty_l = Ty(i_l_start:i_l_stop);
|
|
||||||
thetay_l = thetay(i_l_start:i_l_stop);
|
|
||||||
|
|
||||||
% "Mechanical stop" Region
|
% Linear fit in the "mechanical stop" region
|
||||||
Ty_s = Ty(i_s_start:i_s_stop);
|
fit_s = polyfit(Tx(i_s_start:i_s_stop), thetax(i_s_start:i_s_stop), 1);
|
||||||
thetay_s = thetay(i_s_start:i_s_stop);
|
|
||||||
|
|
||||||
%% Fit the best straight line for the two regions
|
% Reset displacement more precisely based on fit
|
||||||
fit_l = polyfit(Ty_l, thetay_l, 1);
|
thetax = thetax - fit_l(2);
|
||||||
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
|
||||||
kRy_l = 1/fit_l(1); % Bending Stiffness [Nm/rad]
|
kRx_l = 1/fit_l(1); % Bending Stiffness [Nm/rad]
|
||||||
kRy_s = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad]
|
kRx_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]
|
||||||
Ty_at_theta_max = (fit_s(2) - fit_l(2))/(fit_l(1) - fit_s(1));
|
Tx_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
|
||||||
@ -937,14 +928,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_x$ [N]');
|
ylabel('Force $F_y$ [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_x$ [mm]');
|
ylabel('Displacement $d_y$ [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])
|
||||||
@ -956,22 +947,23 @@ 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
|
||||||
Ty_l_fit = [0, Ty_at_theta_max];
|
Tx_l_fit = [0, Tx_at_theta_max];
|
||||||
Ty_s_fit = [Ty_at_theta_max, Ty(i_s_stop)];
|
Tx_s_fit = [Tx_at_theta_max, Tx(i_s_stop)];
|
||||||
|
|
||||||
figure;
|
figure;
|
||||||
hold on;
|
hold on;
|
||||||
plot(Ty(1:i_s_stop), 1e3*thetay(1:i_s_stop), '-k', 'DisplayName', 'Raw data')
|
plot(Tx(1:i_s_stop), 1e3*thetax(1:i_s_stop), '-k', 'DisplayName', 'Raw data')
|
||||||
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_l_fit, 1e3*(Tx_l_fit*fit_l(1) + fit_l(2)), '--', 'DisplayName', sprintf('$k_{R_x} = %.1f$ Nm/rad', kRx_l))
|
||||||
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(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([0, Ty_at_theta_max], [1e3*theta_max, 1e3*theta_max], 'k--', 'HandleVisibility', 'off')
|
plot([0, Tx_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_{y,\\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_{x,\\max} = %.1f$ mrad', 1e3*theta_max), 'horizontalalignment', 'left');
|
||||||
hold off;
|
hold off;
|
||||||
xlabel('Torque $T_y$ [Nm]');
|
xlabel('Torque $T_x$ [Nm]');
|
||||||
ylabel('Angle $\theta_y$ [mrad]');
|
ylabel('Angle $\theta_x$ [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);
|
||||||
@ -983,7 +975,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_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).
|
#+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).
|
||||||
#+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}
|
||||||
@ -1000,210 +992,208 @@ exportFig('figs/test_joints_meas_F_d_lin_fit.pdf', 'width', 'half', 'height', 'n
|
|||||||
#+end_subfigure
|
#+end_subfigure
|
||||||
#+end_figure
|
#+end_figure
|
||||||
|
|
||||||
** TODO Comparison of the measured Stiffnesses
|
** Measured flexible joint stiffnesses
|
||||||
Now, let's estimate the bending stiffness and stroke for 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.
|
||||||
|
Most of the bending stiffnesses are between $4.6\,Nm/rad$ and $5.0\,Nm/rad$.
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
%% Initialize variables
|
%% Measure the bending stiffness and Stroke for all the flexible joints
|
||||||
kRx = zeros(1,16);
|
figure;
|
||||||
kSx = zeros(1,16);
|
hold on;
|
||||||
Rmx = zeros(1,16);
|
|
||||||
|
%% Start with the X-bending
|
||||||
|
% Initialize variables
|
||||||
|
Rx = zeros(1,16); % Bending stiffnesses [Nm/rad]
|
||||||
|
kSx = zeros(1,16); % Bending stiffnesses at "stop" [Nm/rad]
|
||||||
|
Rmx = zeros(1,16); % Bending stroke [rad]
|
||||||
|
|
||||||
for i = 1:16
|
for i = 1:16
|
||||||
%% Load the data
|
% Load the data
|
||||||
load(['meas_stiff_flex_' num2str(i) '_x.mat'], 't', 'F', 'd');
|
load(sprintf('meas_stiff_flex_%i_x.mat', i), 't', 'F', 'd');
|
||||||
|
|
||||||
%% Automatic Zero of the force
|
% Start measurement at t = 0.2 s
|
||||||
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);
|
||||||
|
|
||||||
%% Estimate linear region and "stop" region
|
% 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');
|
i_l_start = find(F > 0.3, 1, 'first');
|
||||||
|
|
||||||
|
% Zero the displacement when it comes in contact
|
||||||
d = d - d(i_l_start);
|
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);
|
% Compute torque and angular displacement
|
||||||
d_l = d(i_l_start:i_l_stop);
|
h = 22.5e-3; % Height [m]
|
||||||
|
Tx = h * F; % Applied torque in [Nm]
|
||||||
|
thetax = atan2(d, h); % Measured angle in [rad]
|
||||||
|
|
||||||
F_s = F(i_s_start:i_s_stop);
|
% Find then the maximum torque is applied
|
||||||
d_s = d(i_s_start:i_s_stop);
|
[~, i_s_stop] = max(Tx);
|
||||||
|
% Linear region stops ~ when 90% of the stroke is reached
|
||||||
|
i_l_stop = find(thetax > 0.9*thetax(i_s_stop), 1, 'first');
|
||||||
|
% Mechanical "Stop" region start ~20Nmm before maximum torque is applied
|
||||||
|
i_s_start = find(Tx > max(Tx)-20e-3, 1, 'first');
|
||||||
|
|
||||||
%% Straight line fit
|
% Linear fit in the "linear" region
|
||||||
fit_l = polyfit(F_l, d_l, 1);
|
fit_l = polyfit(Tx(i_l_start:i_l_stop), thetax(i_l_start:i_l_stop), 1);
|
||||||
fit_s = polyfit(F_s, d_s, 1);
|
|
||||||
|
|
||||||
%% Reset displacement based on fit
|
% Linear fit in the "mechanical stop" region
|
||||||
d = d - fit_l(2);
|
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_s(2) = fit_s(2) - fit_l(2);
|
||||||
fit_l(2) = 0;
|
fit_l(2) = 0;
|
||||||
|
|
||||||
%% Estimated Stroke
|
% Estimation of the bending stiffness and bending stroke
|
||||||
d_max = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1));
|
kRx(i) = 1/fit_l(1); % Bending Stiffness [Nm/rad]
|
||||||
|
kSx(i) = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad]
|
||||||
%% Save stiffnesses and stroke
|
Rmx(i) = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)); % Maximum angular stroke [rad]
|
||||||
kRx(i) = (h)^2/fit_l(1);
|
|
||||||
kSx(i) = (h)^2/fit_s(1);
|
|
||||||
Rmx(i) = atan2(d_max,h);
|
|
||||||
|
|
||||||
|
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
|
end
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
%% Continue with the Y-bending
|
||||||
%% Initialize variables
|
% Initialize variables
|
||||||
kRy = zeros(1,16);
|
kRy = zeros(1,16); % Bending stiffnesses [Nm/rad]
|
||||||
kSy = zeros(1,16);
|
kSy = zeros(1,16); % Bending stiffnesses at "stop" [Nm/rad]
|
||||||
Rmy = zeros(1,16);
|
Rmy = zeros(1,16); % Bending stroke [rad]
|
||||||
|
|
||||||
for i = 1:16
|
for i = 1:16
|
||||||
%% Load the data
|
% Load the data
|
||||||
load(['meas_stiff_flex_' num2str(i) '_y.mat'], 't', 'F', 'd');
|
load(sprintf('meas_stiff_flex_%i_y.mat', i), 't', 'F', 'd');
|
||||||
|
|
||||||
%% Automatic Zero of the force
|
% Start measurement at t = 0.2 s
|
||||||
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);
|
||||||
|
|
||||||
%% Estimate linear region and "stop" region
|
% 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');
|
i_l_start = find(F > 0.3, 1, 'first');
|
||||||
|
|
||||||
|
% Zero the displacement when it comes in contact
|
||||||
d = d - d(i_l_start);
|
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);
|
% Compute torque and angular displacement
|
||||||
d_l = d(i_l_start:i_l_stop);
|
h = 22.5e-3; % Height [m]
|
||||||
|
Ty = h * F; % Applied torque in [Nm]
|
||||||
|
thetay = atan2(d, h); % Measured angle in [rad]
|
||||||
|
|
||||||
F_s = F(i_s_start:i_s_stop);
|
% Find then the maximum torque is applied
|
||||||
d_s = d(i_s_start:i_s_stop);
|
[~, 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');
|
||||||
|
|
||||||
%% Straight line fit
|
% Linear fit in the "linear" region
|
||||||
fit_l = polyfit(F_l, d_l, 1);
|
fit_l = polyfit(Ty(i_l_start:i_l_stop), thetay(i_l_start:i_l_stop), 1);
|
||||||
fit_s = polyfit(F_s, d_s, 1);
|
|
||||||
|
|
||||||
%% Reset displacement based on fit
|
% Linear fit in the "mechanical stop" region
|
||||||
d = d - fit_l(2);
|
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_s(2) = fit_s(2) - fit_l(2);
|
||||||
fit_l(2) = 0;
|
fit_l(2) = 0;
|
||||||
|
|
||||||
%% Estimated Stroke
|
% Estimation of the bending stiffness and bending stroke
|
||||||
d_max = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1));
|
kRy(i) = 1/fit_l(1); % Bending Stiffness [Nm/rad]
|
||||||
|
kSy(i) = 1/fit_s(1); % Mechanical "Stop" Stiffness [Nm/rad]
|
||||||
%% Save stiffnesses and stroke
|
Rmy(i) = fit_l(1)*fit_s(2)/(fit_l(1) - fit_s(1)); % Maximum angular stroke [rad]
|
||||||
kRy(i) = (h)^2/fit_l(1);
|
|
||||||
kSy(i) = (h)^2/fit_s(1);
|
|
||||||
Rmy(i) = atan2(d_max,h);
|
|
||||||
|
|
||||||
|
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
|
||||||
|
end
|
||||||
|
|
||||||
|
xlabel('Torque $T$ [Nm]');
|
||||||
|
ylabel('Angle $\theta$ [mrad]');
|
||||||
|
xlim([0, 0.15]);
|
||||||
|
ylim([-5,25]);
|
||||||
|
legend('location', 'southeast', 'FontSize', 8);
|
||||||
#+end_src
|
#+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 :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/test_joints_meas_bending_all_raw_data.pdf', 'width', 'half', 'height', 'normal');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
figure;
|
||||||
|
histogram([kRx, kRy], [4:0.2:5])
|
||||||
|
xlabel('Bending stiffness [Nm/rad]')
|
||||||
|
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
|
||||||
|
|
||||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
#+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 ');
|
data2orgtable([kRx; kRy]', {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}, {'$R_{R_x}$ [Nm/rad]', '$k_{R_y}$ [Nm/rad]'}, ' %.1f ');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+name: tab:test_joints_meas_results_x_dir
|
#+name: tab:test_joints_meas_results_x_dir
|
||||||
#+caption: Measured characteristics of the flexible joints in the X direction
|
#+caption: Measured bending stiffnesses
|
||||||
#+attr_latex: :environment tabularx :width 0.6\linewidth :align cccc
|
#+attr_latex: :environment tabularx :width 0.6\linewidth :align Xccc
|
||||||
#+attr_latex: :center t :booktabs t :float t
|
#+attr_latex: :center t :booktabs t :float t
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
| | $R_{R_x}$ [Nm/rad] | $k_{R_x,s}$ [Nm/rad] | $R_{x,\text{max}}$ [mrad] |
|
| | $R_{R_x}$ [Nm/rad] | $k_{R_y}$ [Nm/rad] | |
|
||||||
|----+--------------------+----------------------+---------------------------|
|
|----+--------------------+--------------------+---|
|
||||||
| 1 | 5.5 | 173.6 | 18.9 |
|
| 1 | 4.4 | 4.6 | X |
|
||||||
| 2 | 6.1 | 195.0 | 17.6 |
|
| 2 | 5.0 | 4.8 | X |
|
||||||
| 3 | 6.1 | 191.3 | 17.7 |
|
| 3 | 5.0 | 4.8 | X |
|
||||||
| 4 | 5.8 | 136.7 | 18.3 |
|
| 4 | 4.7 | 4.6 | X |
|
||||||
| 5 | 5.7 | 88.9 | 22.0 |
|
| 5 | 4.6 | 4.7 | X |
|
||||||
| 6 | 5.7 | 183.9 | 18.7 |
|
| 6 | 4.6 | 4.7 | X |
|
||||||
| 7 | 5.7 | 157.9 | 17.9 |
|
| 7 | 4.7 | 4.3 | |
|
||||||
| 8 | 5.8 | 166.1 | 17.9 |
|
| 8 | 4.7 | 4.7 | X |
|
||||||
| 9 | 5.8 | 159.5 | 18.2 |
|
| 9 | 4.7 | 4.6 | X |
|
||||||
| 10 | 6.0 | 143.6 | 18.1 |
|
| 10 | 4.9 | 4.8 | X |
|
||||||
| 11 | 5.0 | 163.8 | 17.7 |
|
| 11 | 4.0 | 3.9 | |
|
||||||
| 12 | 6.1 | 111.9 | 17.0 |
|
| 12 | 4.9 | 4.8 | X |
|
||||||
| 13 | 6.0 | 142.0 | 17.4 |
|
| 13 | 4.9 | 4.9 | X |
|
||||||
| 14 | 5.8 | 130.1 | 17.9 |
|
| 14 | 4.7 | 4.7 | X |
|
||||||
| 15 | 5.7 | 170.7 | 18.6 |
|
| 15 | 4.6 | 4.4 | |
|
||||||
| 16 | 6.0 | 148.7 | 17.5 |
|
| 16 | 4.9 | 4.3 | |
|
||||||
|
|
||||||
#+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
|
|
||||||
figure;
|
|
||||||
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
|
|
||||||
|
|
||||||
#+begin_src matlab :tangle no :exports results :results file replace
|
|
||||||
exportFig('figs/test_joints_bend_stiff_hist.pdf', 'width', 'wide', 'height', 'normal');
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+name: fig:test_joints_bend_stiff_hist
|
|
||||||
#+caption: Histogram of the measured bending stiffness
|
|
||||||
#+RESULTS:
|
|
||||||
[[file:figs/test_joints_bend_stiff_hist.png]]
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
|
||||||
figure;
|
|
||||||
hold on;
|
|
||||||
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
|
|
||||||
|
|
||||||
#+begin_src matlab :tangle no :exports results :results file replace
|
|
||||||
exportFig('figs/test_joints_bend_stroke_hist.pdf', 'width', 'wide', 'height', 'normal');
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+name: fig:test_joints_bend_stroke_hist
|
|
||||||
#+caption: Histogram of the measured bending stroke
|
|
||||||
#+RESULTS:
|
|
||||||
[[file:figs/test_joints_bend_stroke_hist.png]]
|
|
||||||
|
|
||||||
The relation between the measured beam thickness and the measured bending stiffness is shown in Figure ref:fig:test_joints_thickness_stiffness.
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
load('flex_meas_dim.mat', 'meas_flex');
|
load('flex_meas_dim.mat', 'meas_flex');
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
% Created 2024-04-05 Fri 17:52
|
% Created 2024-04-06 Sat 00:18
|
||||||
% Intended LaTeX compiler: pdflatex
|
% Intended LaTeX compiler: pdflatex
|
||||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ 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
|
||||||
@ -41,8 +42,6 @@ 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}.
|
||||||
@ -104,6 +103,7 @@ 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,8 +114,6 @@ 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}
|
||||||
@ -359,6 +357,7 @@ 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
|
||||||
@ -371,8 +370,6 @@ 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}
|
||||||
@ -397,7 +394,6 @@ 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.
|
||||||
@ -423,7 +419,7 @@ However, the estimated non-linearity is bellow \(1\,\%\) for forces between \(0.
|
|||||||
\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}.
|
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}.
|
||||||
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\).
|
||||||
@ -441,10 +437,9 @@ 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. (\subref{fig:test_joints_meas_force_sensor_stiffness_picture}) (\subref{fig:test_joints_meas_force_sensor_stiffness_fit})}
|
\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}).}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\section{Analysis of one measurement}
|
\section{Bending Stiffness estimation}
|
||||||
|
|
||||||
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}.
|
||||||
@ -467,85 +462,54 @@ 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_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).}
|
\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).}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\section{Bending stiffness and bending stroke of all the flexible joints}
|
\section{Measured flexible joint 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 torque and angular motion are all shown in Figure \ref{fig:test_joints_meas_bending_all_raw_data}.
|
||||||
|
|
||||||
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]
|
||||||
\centering
|
\begin{subfigure}{0.49\textwidth}
|
||||||
\includegraphics[scale=1]{figs/test_joints_bend_stiff_hist.png}
|
\begin{center}
|
||||||
\caption{\label{fig:test_joints_bend_stiff_hist}Histogram of the measured bending stiffness}
|
\includegraphics[scale=1,height=5.3cm]{figs/test_joints_meas_bending_all_raw_data.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_joints_meas_bending_all_raw_data}Measured torque and angular motion for all the flexible joints}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.49\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[scale=1,height=5.3cm]{figs/test_joints_bend_stiff_hist.png}
|
||||||
|
\end{center}
|
||||||
|
\subcaption{\label{fig:test_joints_bend_stiff_hist}Histogram of the measured bending stiffness in the x and y directions}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{\label{fig:test_joints_meas_bending_results}Result of measured stiffnesses for all the 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})}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{table}[htbp]
|
||||||
|
\caption{\label{tab:test_joints_meas_results_x_dir}Measured bending stiffnesses}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=1]{figs/test_joints_bend_stroke_hist.png}
|
\begin{tabularx}{0.6\linewidth}{Xccc}
|
||||||
\caption{\label{fig:test_joints_bend_stroke_hist}Histogram of the measured bending stroke}
|
\toprule
|
||||||
\end{figure}
|
& \(R_{R_x}\) {[}Nm/rad] & \(k_{R_y}\) {[}Nm/rad] & \\
|
||||||
|
\midrule
|
||||||
The relation between the measured beam thickness and the measured bending stiffness is shown in Figure \ref{fig:test_joints_thickness_stiffness}.
|
1 & 4.4 & 4.6 & X\\
|
||||||
|
2 & 5.0 & 4.8 & X\\
|
||||||
|
3 & 5.0 & 4.8 & X\\
|
||||||
|
4 & 4.7 & 4.6 & X\\
|
||||||
|
5 & 4.6 & 4.7 & X\\
|
||||||
|
6 & 4.6 & 4.7 & X\\
|
||||||
|
7 & 4.7 & 4.3 & \\
|
||||||
|
8 & 4.7 & 4.7 & X\\
|
||||||
|
9 & 4.7 & 4.6 & X\\
|
||||||
|
10 & 4.9 & 4.8 & X\\
|
||||||
|
11 & 4.0 & 3.9 & \\
|
||||||
|
12 & 4.9 & 4.8 & X\\
|
||||||
|
13 & 4.9 & 4.9 & X\\
|
||||||
|
14 & 4.7 & 4.7 & X\\
|
||||||
|
15 & 4.6 & 4.4 & \\
|
||||||
|
16 & 4.9 & 4.3 & \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
|