diff --git a/docs/cubic-configuration.html b/docs/cubic-configuration.html index b4da0d2..b9d11cc 100644 --- a/docs/cubic-configuration.html +++ b/docs/cubic-configuration.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +The discovery of the Cubic configuration is done in geng94_six_degree_of_freed_activ. -Further analysis is conducted in
-The specificity of the Cubic configuration is that each actuator is orthogonal with the others. +The specificity of the Cubic configuration is that each actuator is orthogonal with the others:
+++the active struts are arranged in a mutually orthogonal configuration connecting the corners of a cube. +
+
The cubic (or orthogonal) configuration of the Stewart platform is now widely used (preumont07_six_axis_singl_stage_activ,jafari03_orthog_gough_stewar_platf_microm).
-According to preumont07_six_axis_singl_stage_activ, the cubic configuration provides a uniform stiffness in all directions and minimizes the crosscoupling from actuator to sensor of different legs (being orthogonal to each other). +According to preumont07_six_axis_singl_stage_activ:
+++This topology provides a uniform control capability and a uniform stiffness in all directions, and it minimizes the cross-coupling amongst actuators and sensors of different legs (being orthogonal to each other). +
+
To generate and study the Cubic configuration, generateCubicConfiguration
is used (description in section 2.1).
@@ -327,7 +336,37 @@ The goal is to study the benefits of using a cubic configuration:
+First, we have to understand what is the physical meaning of the Stiffness matrix \(\bm{K}\). +
+ ++The Stiffness matrix links forces \(\bm{f}\) and torques \(\bm{n}\) applied on the mobile platform at \(\{B\}\) to the displacement \(\Delta\bm{\mathcal{X}}\) of the mobile platform represented by \(\{B\}\) with respect to \(\{A\}\): +\[ \bm{\mathcal{F}} = \bm{K} \Delta\bm{\mathcal{X}} \] +
+ ++with: +
++If the stiffness matrix is inversible, its inverse is the compliance matrix: \(\bm{C} = \bm{K}^{-1\) and: +\[ \Delta \bm{\mathcal{X}} = C \bm{\mathcal{F}} \] +
+ ++Thus, if the stiffness matrix is diagonal, the compliance matrix is also diagonal and a force (resp. torque) \(\bm{\mathcal{F}}_i\) applied on the mobile platform at \(\{B\}\) will induce a pure translation (resp. rotation) of the mobile platform represented by \(\{B\}\) with respect to \(\{A\}\). +
+ ++One has to note that this is only valid in a static way. +
H = 100e-3; % height of the Stewart platform [m] +MO_B = -H/2; % Position {B} with respect to {M} [m] +Hc = H; % Size of the useful part of the cube [m] +FOc = H + MO_B; % Center of the cube with respect to {F} ++
stewart = initializeStewartPlatform(); -stewart = initializeFramesPositions(stewart, 'H', 100e-3, 'MO_B', -50e-3); -stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0); +stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B); +stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0); stewart = computeJointsPose(stewart); -stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1)); +stewart = initializeStrutDynamics(stewart, 'K', ones(6,1)); stewart = computeJacobian(stewart); stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 175e-3, 'Mpr', 150e-3);@@ -444,12 +491,20 @@ We create a cubic Stewart platform with center of the cube located at the center The Jacobian matrix is not estimated at the location of the center of the cube. +
H = 100e-3; % height of the Stewart platform [m] +MO_B = 20e-3; % Position {B} with respect to {M} [m] +Hc = H; % Size of the useful part of the cube [m] +FOc = H/2; % Center of the cube with respect to {F} ++
stewart = initializeStewartPlatform(); -stewart = initializeFramesPositions(stewart, 'H', 100e-3, 'MO_B', 0); -stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0); +stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B); +stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0); stewart = computeJointsPose(stewart); -stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1)); +stewart = initializeStrutDynamics(stewart, 'K', ones(6,1)); stewart = computeJacobian(stewart); stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 175e-3, 'Mpr', 150e-3);@@ -483,8 +538,8 @@ stewart = initializeCylindricalPlatforms(stewart, 'Fpr'
-Here, the “center” of the Stewart platform is not at the cube center (figure 4). +Here, the “center” of the Stewart platform is not at the cube center (figure 4). The Jacobian is estimated at the cube center.
- --
-Figure 4: Not centered cubic configuration
+H = 80e-3; % height of the Stewart platform [m] +MO_B = -30e-3; % Position {B} with respect to {M} [m] +Hc = 100e-3; % Size of the useful part of the cube [m] +FOc = H + MO_B; % Center of the cube with respect to {F} +
stewart = initializeStewartPlatform(); -stewart = initializeFramesPositions(stewart, 'H', 80e-3, 'MO_B', -40e-3); -stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0); +stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B); +stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0); stewart = computeJointsPose(stewart); -stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1)); +stewart = initializeStrutDynamics(stewart, 'K', ones(6,1)); stewart = computeJacobian(stewart); stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 175e-3, 'Mpr', 150e-3);@@ -567,7 +623,7 @@ stewart = initializeCylindricalPlatforms(stewart, 'Fpr'
-
Figure 5: Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center (png, pdf)
+Figure 4: Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center (png, pdf)