Add recommendation for flexible joints
This commit is contained in:
599
delta-robot.html
599
delta-robot.html
@@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2025-12-02 Tue 15:33 -->
|
||||
<!-- 2025-12-02 Tue 16:08 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Delta Robot</title>
|
||||
<meta name="author" content="Dehaeze Thomas" />
|
||||
@@ -38,43 +38,52 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents" role="doc-toc">
|
||||
<ul>
|
||||
<li><a href="#org27506b9">1. Geometry</a></li>
|
||||
<li><a href="#org1adb3ee">2. Kinematics: Jacobian Matrix and Mobility</a></li>
|
||||
<li><a href="#org603ccc6">3. Kinematics: Degrees of Freedom</a></li>
|
||||
<li><a href="#org88264b0">4. Kinematics: Number of modes</a></li>
|
||||
<li><a href="#org7f469de">5. Flexible Joint Design</a>
|
||||
<li><a href="#org3e81dc8">1. Studied Geometry</a></li>
|
||||
<li><a href="#orgaa65a8a">2. Kinematics: Jacobian Matrix and Mobility</a></li>
|
||||
<li><a href="#org9f53811">3. Kinematics: Degrees of Freedom</a></li>
|
||||
<li><a href="#org534ad74">4. Kinematics: Number of modes</a></li>
|
||||
<li><a href="#org97c3c13">5. Flexible Joint Design</a>
|
||||
<ul>
|
||||
<li><a href="#org56c40c7">5.1. Studied Geometry</a></li>
|
||||
<li><a href="#org8cef7a8">5.2. Stiffness seen by the actuator</a></li>
|
||||
<li><a href="#orgaf5193b">5.3. Bending Stiffness</a></li>
|
||||
<li><a href="#org1d8d21a">5.4. Axial Stiffness</a></li>
|
||||
<li><a href="#org439f6c2">5.5. Torsional Stiffness</a></li>
|
||||
<li><a href="#org8c09ae7">5.6. Shear Stiffness</a></li>
|
||||
<li><a href="#org5f740e7">5.7. Effect of cube’s size</a>
|
||||
<li><a href="#orgd837bf2">5.1. Studied Geometry</a></li>
|
||||
<li><a href="#orgad7f9e4">5.2. Bending Stiffness</a>
|
||||
<ul>
|
||||
<li><a href="#orga3a8b34">5.7.1. Effect on the plant dynamics</a></li>
|
||||
<li><a href="#org18443f4">5.7.2. Effect on the compliance</a></li>
|
||||
<li><a href="#orgea15e0a">5.2.1. Stiffness seen by the actuator, and decrease of the achievable stroke</a></li>
|
||||
<li><a href="#org2f22a71">5.2.2. Effect on the coupling</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7e1cd7b">5.8. Effect of the strut length ?</a>
|
||||
<li><a href="#org712e050">5.3. Axial Stiffness</a></li>
|
||||
<li><a href="#org716a92b">5.4. Torsional Stiffness</a></li>
|
||||
<li><a href="#org031c26f">5.5. Shear Stiffness</a></li>
|
||||
<li><a href="#orgd32bf80">5.6. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org76b25f1">6. Effect of the Geometry</a>
|
||||
<ul>
|
||||
<li><a href="#org945fe3a">5.8.1. Effect on the plant dynamics</a></li>
|
||||
<li><a href="#orgb2de208">5.8.2. Effect on the compliance</a></li>
|
||||
<li><a href="#org51e9a9b">6.1. Effect of cube’s size</a>
|
||||
<ul>
|
||||
<li><a href="#org8bb4129">6.1.1. Effect on the plant dynamics</a></li>
|
||||
<li><a href="#orge21d460">6.1.2. Effect on the compliance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org4999aef">5.9. Having the Center of Mass at the cube’s center</a></li>
|
||||
<li><a href="#orgc5d83a6">5.10. Conclusion</a></li>
|
||||
<li><a href="#orgdeb7742">6.2. Effect of the strut length</a>
|
||||
<ul>
|
||||
<li><a href="#orgc8740b1">6.2.1. Effect on the compliance</a></li>
|
||||
<li><a href="#org924ba25">6.2.2. Effect on the plant dynamics</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7840f5a">6. Conclusion</a></li>
|
||||
<li><a href="#org24827ae">6.3. Having the Center of Mass at the cube’s center</a></li>
|
||||
<li><a href="#orgea55578">6.4. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0ecfbfc">7. Conclusion</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<a id="sec:delta_robot_introduction"></a>
|
||||
<a id="sec:delta_robot_kinematics"></a>
|
||||
</p>
|
||||
<div id="outline-container-org27506b9" class="outline-2">
|
||||
<h2 id="org27506b9"><span class="section-number-2">1.</span> Geometry</h2>
|
||||
<div id="outline-container-org3e81dc8" class="outline-2">
|
||||
<h2 id="org3e81dc8"><span class="section-number-2">1.</span> Studied Geometry</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
The Delta Robot geometry is defined as shown in Figure <a href="#fig:delta_robot_schematic">1</a>.
|
||||
@@ -147,6 +156,14 @@ It has a mass of ~300g</li>
|
||||
Let’s initialize a Delta Robot architecture, and plot the obtained geometry (Figures <a href="#fig:delta_robot_architecture">2</a> and <a href="#fig:delta_robot_architecture_top">3</a>).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-matlab-comment-heading">%% Geometry
|
||||
</span>d = 50e<span class="org-builtin">-</span>3; <span class="org-comment-delimiter">% </span><span class="org-comment">Cube's edge length [m]
|
||||
</span>b = 20e<span class="org-builtin">-</span>3; <span class="org-comment-delimiter">% </span><span class="org-comment">Distance between cube's vertices and top joints [m]
|
||||
</span>L = 50e<span class="org-builtin">-</span>3; <span class="org-comment-delimiter">% </span><span class="org-comment">Length of the struts [m]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_architecture" class="figure">
|
||||
<p><img src="figs/delta_robot_architecture.png" alt="delta_robot_architecture.png" />
|
||||
@@ -162,8 +179,8 @@ Let’s initialize a Delta Robot architecture, and plot the obtained geometr
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org1adb3ee" class="outline-2">
|
||||
<h2 id="org1adb3ee"><span class="section-number-2">2.</span> Kinematics: Jacobian Matrix and Mobility</h2>
|
||||
<div id="outline-container-orgaa65a8a" class="outline-2">
|
||||
<h2 id="orgaa65a8a"><span class="section-number-2">2.</span> Kinematics: Jacobian Matrix and Mobility</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
There are three actuators in the following directions \(\hat{s}_1\), \(\hat{s}_2\) and \(\hat{s}_3\);
|
||||
@@ -220,7 +237,7 @@ Depending on how the YZ plane is oriented (i.e., depending on the Rz angle of th
|
||||
<div id="fig:delta_robot_2d_workspace" class="figure">
|
||||
<p><img src="figs/delta_robot_2d_workspace.png" alt="delta_robot_2d_workspace.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>2D mobility for different orientations</p>
|
||||
<p><span class="figure-number">Figure 5: </span>2D mobility for different orientations and worst case</p>
|
||||
</div>
|
||||
|
||||
<pre class="example">
|
||||
@@ -236,8 +253,8 @@ Maximum YZ mobility for an angle of 270 degrees, square with edge size of 117 um
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org603ccc6" class="outline-2">
|
||||
<h2 id="org603ccc6"><span class="section-number-2">3.</span> Kinematics: Degrees of Freedom</h2>
|
||||
<div id="outline-container-org9f53811" class="outline-2">
|
||||
<h2 id="org9f53811"><span class="section-number-2">3.</span> Kinematics: Degrees of Freedom</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<p>
|
||||
In the perfect case (flexible joints having no stiffness in bending, and infinite stiffness in torsion and in the axial direction), the top platform is allowed to move only in the X, Y and Z directions while the three rotations are fixed.
|
||||
@@ -249,7 +266,7 @@ If only the torsional compliance is considered, or only the axial compliance, th
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This is shown below with the Simscape model:
|
||||
This is shown below with the Simscape model.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -283,80 +300,6 @@ If we consider the torsion of the flexible joints:
|
||||
We get the same result.
|
||||
</p>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1.00000000008084e-06</td>
|
||||
<td class="org-right">5.61161767954149e-17</td>
|
||||
<td class="org-right">1.71532908969278e-16</td>
|
||||
<td class="org-right">-5.07840362381474e-20</td>
|
||||
<td class="org-right">6.66481298362927e-20</td>
|
||||
<td class="org-right">-2.97485996797085e-20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">9.44550093013109e-17</td>
|
||||
<td class="org-right">9.99999999981042e-07</td>
|
||||
<td class="org-right">-1.31365181854596e-16</td>
|
||||
<td class="org-right">2.20736442292089e-20</td>
|
||||
<td class="org-right">-8.27761658859861e-20</td>
|
||||
<td class="org-right">-5.51841106039072e-20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">1.5172479677791e-16</td>
|
||||
<td class="org-right">7.57916759433382e-18</td>
|
||||
<td class="org-right">9.9999999983089e-07</td>
|
||||
<td class="org-right">2.71965732539802e-20</td>
|
||||
<td class="org-right">-5.0088900526952e-21</td>
|
||||
<td class="org-right">4.20708731166142e-20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3.7990974483635e-15</td>
|
||||
<td class="org-right">-1.49195278352597e-15</td>
|
||||
<td class="org-right">1.09166051384021e-15</td>
|
||||
<td class="org-right">-4.60992688885629e-28</td>
|
||||
<td class="org-right">4.46894514064728e-28</td>
|
||||
<td class="org-right">-6.04202812027976e-29</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">1.92223678174906e-15</td>
|
||||
<td class="org-right">3.62267008376981e-15</td>
|
||||
<td class="org-right">-5.42452104276465e-15</td>
|
||||
<td class="org-right">3.7737029650938e-28</td>
|
||||
<td class="org-right">-2.99601307180469e-28</td>
|
||||
<td class="org-right">-3.30297132145485e-28</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3.79407058351761e-16</td>
|
||||
<td class="org-right">-3.46944690994006e-17</td>
|
||||
<td class="org-right">9.05659407516431e-16</td>
|
||||
<td class="org-right">-1.33615244419949e-28</td>
|
||||
<td class="org-right">6.31115609464934e-29</td>
|
||||
<td class="org-right">-1.07596265815569e-29</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<p>
|
||||
If we consider the axial of the flexible joints:
|
||||
</p>
|
||||
@@ -370,165 +313,19 @@ If we consider the axial of the flexible joints:
|
||||
We get the same result.
|
||||
</p>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1.0100082922792e-06</td>
|
||||
<td class="org-right">-8.23544084894984e-12</td>
|
||||
<td class="org-right">-1.12982601885747e-11</td>
|
||||
<td class="org-right">-1.30123733161505e-19</td>
|
||||
<td class="org-right">3.61079565098929e-21</td>
|
||||
<td class="org-right">-2.56479299609534e-20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">-8.23691147427908e-12</td>
|
||||
<td class="org-right">1.01002426764947e-06</td>
|
||||
<td class="org-right">1.16488393394949e-11</td>
|
||||
<td class="org-right">-9.17271935353013e-20</td>
|
||||
<td class="org-right">-1.39093131659514e-20</td>
|
||||
<td class="org-right">-8.92049690205949e-21</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">-1.12984563170605e-11</td>
|
||||
<td class="org-right">1.1646579416975e-11</td>
|
||||
<td class="org-right">1.01001628184113e-06</td>
|
||||
<td class="org-right">-1.2624013403036e-19</td>
|
||||
<td class="org-right">-4.41063676650963e-22</td>
|
||||
<td class="org-right">2.01282903077792e-20</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3.25566266033832e-16</td>
|
||||
<td class="org-right">7.02470264849632e-18</td>
|
||||
<td class="org-right">1.34879235410707e-17</td>
|
||||
<td class="org-right">-4.42814771779206e-29</td>
|
||||
<td class="org-right">1.06332319737688e-30</td>
|
||||
<td class="org-right">-8.04051214064698e-30</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">-2.34669385520782e-15</td>
|
||||
<td class="org-right">1.03658500184429e-16</td>
|
||||
<td class="org-right">2.10026418149746e-15</td>
|
||||
<td class="org-right">3.04125606965025e-29</td>
|
||||
<td class="org-right">-1.07347740796227e-29</td>
|
||||
<td class="org-right">1.00530401393662e-28</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">-2.76788049700945e-16</td>
|
||||
<td class="org-right">-3.49174266014038e-17</td>
|
||||
<td class="org-right">1.36253386200494e-15</td>
|
||||
<td class="org-right">-1.31490052587614e-28</td>
|
||||
<td class="org-right">-1.10493913866777e-30</td>
|
||||
<td class="org-right">3.45058758900066e-29</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
No we consider both finite torsional stiffness and finite axial stiffness.
|
||||
In that case we get some compliance in rotation.
|
||||
So it is a combination of axial and torsion stiffness that gives some rotational stiffness of the top platform.
|
||||
</p>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1.01000347398415e-06</td>
|
||||
<td class="org-right">1.08760660507374e-12</td>
|
||||
<td class="org-right">6.48998902114602e-12</td>
|
||||
<td class="org-right">-1.68758827983914e-12</td>
|
||||
<td class="org-right">2.72734564017018e-12</td>
|
||||
<td class="org-right">-1.13327901508316e-12</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">-1.7269667100718e-13</td>
|
||||
<td class="org-right">1.01000152837256e-06</td>
|
||||
<td class="org-right">4.09018170284123e-13</td>
|
||||
<td class="org-right">-9.80286569772779e-13</td>
|
||||
<td class="org-right">-9.94629340226498e-13</td>
|
||||
<td class="org-right">8.3468855003368e-13</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">5.40707734744154e-12</td>
|
||||
<td class="org-right">-1.46859567258244e-12</td>
|
||||
<td class="org-right">1.0099981133678e-06</td>
|
||||
<td class="org-right">3.34755457607493e-12</td>
|
||||
<td class="org-right">-6.56764113866634e-12</td>
|
||||
<td class="org-right">1.26237249518737e-12</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2.67935189951885e-13</td>
|
||||
<td class="org-right">-6.64493555908236e-14</td>
|
||||
<td class="org-right">7.44661955503977e-13</td>
|
||||
<td class="org-right">1.59744415094004e-05</td>
|
||||
<td class="org-right">-6.97585818773949e-13</td>
|
||||
<td class="org-right">1.44845764745933e-13</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">1.91880640934689e-14</td>
|
||||
<td class="org-right">-1.31284160978049e-13</td>
|
||||
<td class="org-right">-5.83827721443037e-13</td>
|
||||
<td class="org-right">4.97550111979747e-13</td>
|
||||
<td class="org-right">1.5974440506229e-05</td>
|
||||
<td class="org-right">8.27388125221276e-14</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">1.63302978397554e-14</td>
|
||||
<td class="org-right">-6.29948151015302e-14</td>
|
||||
<td class="org-right">1.11798835985125e-13</td>
|
||||
<td class="org-right">-4.74438363934587e-14</td>
|
||||
<td class="org-right">-1.39110944875938e-13</td>
|
||||
<td class="org-right">3.99840072236264e-06</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Therefore, to model some compliance of the top platform in rotation, both the axial compliance and the torsional compliance of the flexible joints should be considered.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org88264b0" class="outline-2">
|
||||
<h2 id="org88264b0"><span class="section-number-2">4.</span> Kinematics: Number of modes</h2>
|
||||
<div id="outline-container-org534ad74" class="outline-2">
|
||||
<h2 id="org534ad74"><span class="section-number-2">4.</span> Kinematics: Number of modes</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<p>
|
||||
In the perfect condition (i.e. infinite stiffness in torsion and in compression of the flexible joints), the system has 6 states (i.e. 3 modes, one for each DoF: X, Y and Z).
|
||||
@@ -544,46 +341,41 @@ State-space model with 3 outputs, 3 inputs, and 6 states.
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org7f469de" class="outline-2">
|
||||
<h2 id="org7f469de"><span class="section-number-2">5.</span> Flexible Joint Design</h2>
|
||||
<div id="outline-container-org97c3c13" class="outline-2">
|
||||
<h2 id="org97c3c13"><span class="section-number-2">5.</span> Flexible Joint Design</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<p>
|
||||
<a id="sec:delta_robot_flexible_joints"></a>
|
||||
</p>
|
||||
<p>
|
||||
The goal is to extract specifications for the flexible joints of the six struts.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The two most critical flexible joints imperfections are:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>The axial stiffness, that should be high enough</li>
|
||||
<li>The bending stiffness, that should be low enough</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The shear and torsional stiffnesses are not foreseen to be very problematic, but their impact will be evaluated.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
First, the dynamics of a “perfect” Delta-Robot is identified (i.e. with perfect 2DoF rotational joints).
|
||||
First, in Section <a href="#ssec:delta_robot_flexible_joints_geometry">5.1</a>, the dynamics of a “perfect” Delta-Robot is identified (i.e. with perfect 2DoF rotational joints).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then, the impact of the flexible joint’s imperfections will be studied.
|
||||
The goal is to extract specifications for the flexible joints of the six struts, in terms of:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>bending stiffness (Section <a href="#ssec:delta_robot_flexible_joints_bending">5.2</a>)</li>
|
||||
<li>axial stiffness (Section <a href="#ssec:delta_robot_flexible_joints_axial">5.3</a>)</li>
|
||||
<li>torsional stiffness (Section <a href="#ssec:delta_robot_flexible_joints_torsion">5.4</a>)</li>
|
||||
<li>shear stiffness (Section <a href="#ssec:delta_robot_flexible_joints_shear">5.5</a>)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="outline-container-org56c40c7" class="outline-3">
|
||||
<h3 id="org56c40c7"><span class="section-number-3">5.1.</span> Studied Geometry</h3>
|
||||
<div id="outline-container-orgd837bf2" class="outline-3">
|
||||
<h3 id="orgd837bf2"><span class="section-number-3">5.1.</span> Studied Geometry</h3>
|
||||
<div class="outline-text-3" id="text-5-1">
|
||||
<p>
|
||||
<a id="ssec:delta_robot_flexible_joints_geometry"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The cube’s edge length is equal to 50mm, the distance between cube’s vertices and top joints is 20mm and the length of the struts (i.e. the distance between the two flexible joints of the same strut) is 50mm.
|
||||
The actuator stiffness is \(1\,N/\mu m\).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The obtained geometry is shown in Figure <a href="#fig:delta_robot_studied_geometry">7</a>.
|
||||
The obtained geometry is shown in Figure [].
|
||||
</p>
|
||||
|
||||
|
||||
@@ -608,10 +400,17 @@ The dynamics is shown in Figure <a href="#fig:delta_robot_dynamics_perfect">8</a
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org8cef7a8" class="outline-3">
|
||||
<h3 id="org8cef7a8"><span class="section-number-3">5.2.</span> Stiffness seen by the actuator</h3>
|
||||
<div id="outline-container-orgad7f9e4" class="outline-3">
|
||||
<h3 id="orgad7f9e4"><span class="section-number-3">5.2.</span> Bending Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-2">
|
||||
<p>
|
||||
<a id="ssec:delta_robot_flexible_joints_bending"></a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-orgea15e0a" class="outline-4">
|
||||
<h4 id="orgea15e0a"><span class="section-number-4">5.2.1.</span> Stiffness seen by the actuator, and decrease of the achievable stroke</h4>
|
||||
<div class="outline-text-4" id="text-5-2-1">
|
||||
<p>
|
||||
Because the flexible joints will have some bending stiffness, the actuator in one direction will “see” some stiffness due to the struts in the other directions.
|
||||
This will limit its effective stroke.
|
||||
We want this parallel stiffness to be much smaller than the stiffness of the actuator.
|
||||
@@ -641,11 +440,8 @@ Therefore, we should aim at \(k_f < 50\,Nm/\text{rad}\).
|
||||
<p>
|
||||
This should be validated with the final geometry.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgaf5193b" class="outline-3">
|
||||
<h3 id="orgaf5193b"><span class="section-number-3">5.3.</span> Bending Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-3">
|
||||
|
||||
|
||||
<p>
|
||||
Then, the dynamics is identified for a bending Stiffness of \(50\,Nm/\text{rad}\) and compared with a Delta robot with no bending stiffness in Figure <a href="#fig:delta_robot_bending_stiffness_dynamics">10</a>.
|
||||
</p>
|
||||
@@ -664,11 +460,46 @@ It is not critical from a dynamical point of view, it just decreases the achieva
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org1d8d21a" class="outline-3">
|
||||
<h3 id="org1d8d21a"><span class="section-number-3">5.4.</span> Axial Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-4">
|
||||
<div id="outline-container-org2f22a71" class="outline-4">
|
||||
<h4 id="org2f22a71"><span class="section-number-4">5.2.2.</span> Effect on the coupling</h4>
|
||||
<div class="outline-text-4" id="text-5-2-2">
|
||||
<p>
|
||||
Now, the effect of the axial stiffness on the dynamics is studied (Figure <a href="#fig:delta_robot_axial_stiffness_dynamics">11</a>).
|
||||
Here, reasonable values for the flexible joints (modelled as a 6DoF joint) stiffness are taken:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>Torsional stiffness of 500Nm/rad</li>
|
||||
<li>Axial stiffness of 100N/um</li>
|
||||
<li>Shear stiffness of 100N/um</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
And the bending stiffness is varied from low to high values.
|
||||
The obtained dynamics is shown in Figure <a href="#fig:delta_robot_bending_stiffness_couplign">11</a>.
|
||||
It can be seen that the low frequency coupling increases when the bending stiffness increases.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Therefore, the bending stiffness of the flexible joints should be minimized (10Nm/rad could be a reasonable objective).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_bending_stiffness_couplign" class="figure">
|
||||
<p><img src="figs/delta_robot_bending_stiffness_couplign.png" alt="delta_robot_bending_stiffness_couplign.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 11: </span>Effect of the bending stiffness of the flexible joints on the coupling</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org712e050" class="outline-3">
|
||||
<h3 id="org712e050"><span class="section-number-3">5.3.</span> Axial Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-3">
|
||||
<p>
|
||||
<a id="ssec:delta_robot_flexible_joints_axial"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Now, the effect of the axial stiffness on the dynamics is studied (Figure <a href="#fig:delta_robot_axial_stiffness_dynamics">12</a>).
|
||||
Additional modes can be observed on the plant dynamics, which could limit the achievable bandwidth.
|
||||
Therefore the axial stiffness should be maximized.
|
||||
Having the axial stiffness 100 times stiffer than the actuator stiffness seems reasonable.
|
||||
@@ -679,37 +510,41 @@ Therefore, we should aim at \(k_a > 100\,N/\mu m\).
|
||||
<div id="fig:delta_robot_axial_stiffness_dynamics" class="figure">
|
||||
<p><img src="figs/delta_robot_axial_stiffness_dynamics.png" alt="delta_robot_axial_stiffness_dynamics.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 11: </span>Effect of the joint’s axial stiffness on the plant dynamics</p>
|
||||
<p><span class="figure-number">Figure 12: </span>Effect of the joint’s axial stiffness on the plant dynamics</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org439f6c2" class="outline-3">
|
||||
<h3 id="org439f6c2"><span class="section-number-3">5.5.</span> Torsional Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-5">
|
||||
<div id="outline-container-org716a92b" class="outline-3">
|
||||
<h3 id="org716a92b"><span class="section-number-3">5.4.</span> Torsional Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-4">
|
||||
<p>
|
||||
<a id="ssec:delta_robot_flexible_joints_torsion"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Now the compliance in torsion of the flexible joints is considered.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If we look at the compliance of the delta robot in rotation as a function of the torsional stiffness of the flexible joints (Figure <a href="#fig:delta_robot_kt_compliance">12</a>), we see almost no effect: the system is not made more stiff by increasing the torsional stiffness of the joints.
|
||||
If we look at the compliance of the delta robot in rotation as a function of the torsional stiffness of the flexible joints (Figure <a href="#fig:delta_robot_kt_compliance">13</a>), we see almost no effect: the system is not made more stiff by increasing the torsional stiffness of the joints.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_kt_compliance" class="figure">
|
||||
<p><img src="figs/delta_robot_kt_compliance.png" alt="delta_robot_kt_compliance.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 12: </span>Effect of the joint’s torsional stiffness on the Delta Robot compliance</p>
|
||||
<p><span class="figure-number">Figure 13: </span>Effect of the joint’s torsional stiffness on the Delta Robot compliance</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
If we have a look at the effect of the torsional stiffness on the plant dynamics (Figure <a href="#fig:delta_robot_kt_dynamics">13</a>), we see almost no effect, except when super high values are reached (\(10^6\,Nm/\text{rad}\)), which are unrealistic.
|
||||
If we have a look at the effect of the torsional stiffness on the plant dynamics (Figure <a href="#fig:delta_robot_kt_dynamics">14</a>), we see almost no effect, except when super high values are reached (\(10^6\,Nm/\text{rad}\)), which are unrealistic.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_kt_dynamics" class="figure">
|
||||
<p><img src="figs/delta_robot_kt_dynamics.png" alt="delta_robot_kt_dynamics.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 13: </span>Effect of the joint’s torsional stiffness on the Delta Robot plant dynamics</p>
|
||||
<p><span class="figure-number">Figure 14: </span>Effect of the joint’s torsional stiffness on the Delta Robot plant dynamics</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
@@ -717,11 +552,15 @@ Therefore, the torsional stiffness is not a super important metric for the desig
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org8c09ae7" class="outline-3">
|
||||
<h3 id="org8c09ae7"><span class="section-number-3">5.6.</span> Shear Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-6">
|
||||
<div id="outline-container-org031c26f" class="outline-3">
|
||||
<h3 id="org031c26f"><span class="section-number-3">5.5.</span> Shear Stiffness</h3>
|
||||
<div class="outline-text-3" id="text-5-5">
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_shear_stiffness_compliance">14</a>, the shear stiffness of the flexible joints has some effect on the compliance in translation and almost no effect on the compliance in rotation.
|
||||
<a id="ssec:delta_robot_flexible_joints_shear"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_shear_stiffness_compliance">15</a>, the shear stiffness of the flexible joints has some effect on the compliance in translation and almost no effect on the compliance in rotation.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -733,13 +572,69 @@ A value of \(100\,N/\mu m\) seems reasonable.
|
||||
<div id="fig:delta_robot_shear_stiffness_compliance" class="figure">
|
||||
<p><img src="figs/delta_robot_shear_stiffness_compliance.png" alt="delta_robot_shear_stiffness_compliance.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 14: </span>Effect of the shear stiffness of the flexible joints on the Delta Robot compliance</p>
|
||||
<p><span class="figure-number">Figure 15: </span>Effect of the shear stiffness of the flexible joints on the Delta Robot compliance</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org5f740e7" class="outline-3">
|
||||
<h3 id="org5f740e7"><span class="section-number-3">5.7.</span> Effect of cube’s size</h3>
|
||||
<div class="outline-text-3" id="text-5-7">
|
||||
<div id="outline-container-orgd32bf80" class="outline-3">
|
||||
<h3 id="orgd32bf80"><span class="section-number-3">5.6.</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-5-6">
|
||||
<table id="tab:delta_robot_flexible_joints_recommendations" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<caption class="t-above"><span class="table-number">Table 1:</span> Recommendations for the flexible joints</caption>
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-left">Joint’s Stiffness</th>
|
||||
<th scope="col" class="org-left">Effect</th>
|
||||
<th scope="col" class="org-left">Recommendation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left">Bending</td>
|
||||
<td class="org-left">Can reduce the stroke, and increase the coupling</td>
|
||||
<td class="org-left">Below 50 to 10 Nm/rad</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Axial</td>
|
||||
<td class="org-left">Add modes that can limit the feedback bandwidth</td>
|
||||
<td class="org-left">As high as possible, at least 100 Nm/um</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Torsion</td>
|
||||
<td class="org-left">Minor effect</td>
|
||||
<td class="org-left">No recommendation</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Shear</td>
|
||||
<td class="org-left">Can limit the stiffness of the system</td>
|
||||
<td class="org-left">As high as possible (less important than the axial stiffness), above 100 N/um if possible</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org76b25f1" class="outline-2">
|
||||
<h2 id="org76b25f1"><span class="section-number-2">6.</span> Effect of the Geometry</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<p>
|
||||
<a id="sec:delta_robot_flexible_geometry"></a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-org51e9a9b" class="outline-3">
|
||||
<h3 id="org51e9a9b"><span class="section-number-3">6.1.</span> Effect of cube’s size</h3>
|
||||
<div class="outline-text-3" id="text-6-1">
|
||||
<p>
|
||||
Let’s choose reasonable values for the flexible joints:
|
||||
</p>
|
||||
@@ -754,15 +649,15 @@ Let’s choose reasonable values for the flexible joints:
|
||||
And we see the effect of changing the cube’s size.
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-orga3a8b34" class="outline-4">
|
||||
<h4 id="orga3a8b34"><span class="section-number-4">5.7.1.</span> Effect on the plant dynamics</h4>
|
||||
<div class="outline-text-4" id="text-5-7-1">
|
||||
<div id="outline-container-org8bb4129" class="outline-4">
|
||||
<h4 id="org8bb4129"><span class="section-number-4">6.1.1.</span> Effect on the plant dynamics</h4>
|
||||
<div class="outline-text-4" id="text-6-1-1">
|
||||
<ul class="org-ul">
|
||||
<li class="off"><code>[ ]</code> <b>Understand why such different dynamics between 3dof_a joints and 6dof joints with very high shear stiffnesses</b></li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The effect of the cube’s size on the plant dynamics is shown in Figure <a href="#fig:delta_robot_cube_size_plant_dynamics">15</a>:
|
||||
The effect of the cube’s size on the plant dynamics is shown in Figure <a href="#fig:delta_robot_cube_size_plant_dynamics">16</a>:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>coupling decreases with the cube’s size</li>
|
||||
@@ -774,22 +669,22 @@ The effect of the cube’s size on the plant dynamics is shown in Figure <a
|
||||
<div id="fig:delta_robot_cube_size_plant_dynamics" class="figure">
|
||||
<p><img src="figs/delta_robot_cube_size_plant_dynamics.png" alt="delta_robot_cube_size_plant_dynamics.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 15: </span>Effect of the cube’s size on the plant dynamics</p>
|
||||
<p><span class="figure-number">Figure 16: </span>Effect of the cube’s size on the plant dynamics</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org18443f4" class="outline-4">
|
||||
<h4 id="org18443f4"><span class="section-number-4">5.7.2.</span> Effect on the compliance</h4>
|
||||
<div class="outline-text-4" id="text-5-7-2">
|
||||
<div id="outline-container-orge21d460" class="outline-4">
|
||||
<h4 id="orge21d460"><span class="section-number-4">6.1.2.</span> Effect on the compliance</h4>
|
||||
<div class="outline-text-4" id="text-6-1-2">
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_cube_size_compliance_rotation">16</a>, the stiffness of the delta robot in rotation increases with the cube’s size.
|
||||
As shown in Figure <a href="#fig:delta_robot_cube_size_compliance_rotation">17</a>, the stiffness of the delta robot in rotation increases with the cube’s size.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_cube_size_compliance_rotation" class="figure">
|
||||
<p><img src="figs/delta_robot_cube_size_compliance_rotation.png" alt="delta_robot_cube_size_compliance_rotation.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 16: </span>Effect of the cube’s size on the rotational compliance of the top platform</p>
|
||||
<p><span class="figure-number">Figure 17: </span>Effect of the cube’s size on the rotational compliance of the top platform</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
@@ -798,9 +693,9 @@ With a cube size of 50mm, the resonance frequency is already above 1kHz with see
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org7e1cd7b" class="outline-3">
|
||||
<h3 id="org7e1cd7b"><span class="section-number-3">5.8.</span> Effect of the strut length ?</h3>
|
||||
<div class="outline-text-3" id="text-5-8">
|
||||
<div id="outline-container-orgdeb7742" class="outline-3">
|
||||
<h3 id="orgdeb7742"><span class="section-number-3">6.2.</span> Effect of the strut length</h3>
|
||||
<div class="outline-text-3" id="text-6-2">
|
||||
<p>
|
||||
Let’s choose reasonable values for the flexible joints:
|
||||
</p>
|
||||
@@ -814,16 +709,45 @@ Let’s choose reasonable values for the flexible joints:
|
||||
And we see the effect of changing the strut length.
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-org945fe3a" class="outline-4">
|
||||
<h4 id="org945fe3a"><span class="section-number-4">5.8.1.</span> Effect on the plant dynamics</h4>
|
||||
<div class="outline-text-4" id="text-5-8-1">
|
||||
<div id="outline-container-orgc8740b1" class="outline-4">
|
||||
<h4 id="orgc8740b1"><span class="section-number-4">6.2.1.</span> Effect on the compliance</h4>
|
||||
<div class="outline-text-4" id="text-6-2-1">
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_strut_length_plant_dynamics">17</a>, having longer struts:
|
||||
As shown in Figure <a href="#fig:delta_robot_strut_length_compliance_rotation">18</a>, the strut length has an effect on the system stiffness in translation (left plot) but almost not in rotation (right plot).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Indeed, the stiffness in rotation is a combination of:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>The stiffness of the actuator</li>
|
||||
<li>The shear and axial stiffness of the flexible joints</li>
|
||||
<li>The bending and torsional stiffness of the flexible joints, combine with the strut length</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_strut_length_compliance_rotation" class="figure">
|
||||
<p><img src="figs/delta_robot_strut_length_compliance_rotation.png" alt="delta_robot_strut_length_compliance_rotation.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 18: </span>Effect of the cube’s size on the rotational compliance of the top platform</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org924ba25" class="outline-4">
|
||||
<h4 id="org924ba25"><span class="section-number-4">6.2.2.</span> Effect on the plant dynamics</h4>
|
||||
<div class="outline-text-4" id="text-6-2-2">
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_strut_length_plant_dynamics">19</a>, having longer struts:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>decreases the main resonance frequency: this means that the stiffness in the X,Y and Z directions is decreased when the length of the strut is longer.
|
||||
This is reasonable as the “lever” arm is getting larger, so the bending stiffness and compression of the flexible joints have a larger effect on the top platform compliance.</li>
|
||||
<li>decreases the low frequency coupling: this effect is more difficult to physically understand</li>
|
||||
<li>decreases the low frequency coupling: this effect is more difficult to physically understand
|
||||
Probably: when pushing with one actuator, it induces some rotation of the struts corresponding to the other two actuators.
|
||||
This rotation is proportional to the strut length.
|
||||
Then, this rotation, combined with the limited compliance in bending of the flexible joints induces some force applied on the other actuators, hence the coupling.
|
||||
This is similar to what was observed when varying the bending stiffness of the flexible joints: the coupling was increased with an increased of the bending stiffness (See Figure <a href="#fig:delta_robot_bending_stiffness_couplign">11</a>)
|
||||
<b>So we should also observed a decrease of the coupling when decreasing the bending stiffness of the actuators</b></li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
@@ -835,35 +759,20 @@ So, the struts length can be optimized to not decrease too much the stiffness of
|
||||
<div id="fig:delta_robot_strut_length_plant_dynamics" class="figure">
|
||||
<p><img src="figs/delta_robot_strut_length_plant_dynamics.png" alt="delta_robot_strut_length_plant_dynamics.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 17: </span>Effect of the cube’s size on the plant dynamics</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgb2de208" class="outline-4">
|
||||
<h4 id="orgb2de208"><span class="section-number-4">5.8.2.</span> Effect on the compliance</h4>
|
||||
<div class="outline-text-4" id="text-5-8-2">
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_strut_length_compliance_rotation">18</a>, the strut length has an effect on the system stiffness in translation (left plot) but almost not in rotation (right plot).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="fig:delta_robot_strut_length_compliance_rotation" class="figure">
|
||||
<p><img src="figs/delta_robot_strut_length_compliance_rotation.png" alt="delta_robot_strut_length_compliance_rotation.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 18: </span>Effect of the cube’s size on the rotational compliance of the top platform</p>
|
||||
<p><span class="figure-number">Figure 19: </span>Effect of the Strut length on the plant dynamics</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org4999aef" class="outline-3">
|
||||
<h3 id="org4999aef"><span class="section-number-3">5.9.</span> Having the Center of Mass at the cube’s center</h3>
|
||||
<div class="outline-text-3" id="text-5-9">
|
||||
<div id="outline-container-org24827ae" class="outline-3">
|
||||
<h3 id="org24827ae"><span class="section-number-3">6.3.</span> Having the Center of Mass at the cube’s center</h3>
|
||||
<div class="outline-text-3" id="text-6-3">
|
||||
<p>
|
||||
To make things easier, we take a top platform with no mass, mass-less struts, and we put a payload on top of the platform.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
As shown in Figure <a href="#fig:delta_robot_CoM_pos_effect_plant">19</a>, having the CoM of the payload at the cube’s center allow to have better decoupling properties above the suspension mode of the system (i.e. above the first mode).
|
||||
As shown in Figure <a href="#fig:delta_robot_CoM_pos_effect_plant">20</a>, having the CoM of the payload at the cube’s center allow to have better decoupling properties above the suspension mode of the system (i.e. above the first mode).
|
||||
This could allow to have a bandwidth exceeding the frequency of the first mode.
|
||||
But how sensitive this decoupling is to the exact position of the CoM still need to be studied.
|
||||
</p>
|
||||
@@ -872,21 +781,21 @@ But how sensitive this decoupling is to the exact position of the CoM still need
|
||||
<div id="fig:delta_robot_CoM_pos_effect_plant" class="figure">
|
||||
<p><img src="figs/delta_robot_CoM_pos_effect_plant.png" alt="delta_robot_CoM_pos_effect_plant.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 19: </span>Effect of the payload’s Center of Mass position with respect to the cube’s size on the plant dynamics</p>
|
||||
<p><span class="figure-number">Figure 20: </span>Effect of the payload’s Center of Mass position with respect to the cube’s size on the plant dynamics</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgc5d83a6" class="outline-3">
|
||||
<h3 id="orgc5d83a6"><span class="section-number-3">5.10.</span> Conclusion</h3>
|
||||
<div id="outline-container-orgea55578" class="outline-3">
|
||||
<h3 id="orgea55578"><span class="section-number-3">6.4.</span> Conclusion</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org7840f5a" class="outline-2">
|
||||
<h2 id="org7840f5a"><span class="section-number-2">6.</span> Conclusion</h2>
|
||||
<div id="outline-container-org0ecfbfc" class="outline-2">
|
||||
<h2 id="org0ecfbfc"><span class="section-number-2">7.</span> Conclusion</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2025-12-02 Tue 15:33</p>
|
||||
<p class="date">Created: 2025-12-02 Tue 16:08</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
382
delta-robot.org
382
delta-robot.org
@@ -89,7 +89,7 @@
|
||||
#+END_SRC
|
||||
|
||||
* The Delta Robot Kinematics :ignore:
|
||||
<<sec:delta_robot_introduction>>
|
||||
<<sec:delta_robot_kinematics>>
|
||||
** Introduction :ignore:
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@@ -116,7 +116,7 @@
|
||||
<<m-init-other>>
|
||||
#+end_src
|
||||
|
||||
** Geometry
|
||||
** Studied Geometry
|
||||
The Delta Robot geometry is defined as shown in Figure [[fig:delta_robot_schematic]].
|
||||
|
||||
The geometry is fully defined by three parameters:
|
||||
@@ -157,12 +157,14 @@ Dynamical properties:
|
||||
|
||||
Let's initialize a Delta Robot architecture, and plot the obtained geometry (Figures [[fig:delta_robot_architecture]] and [[fig:delta_robot_architecture_top]]).
|
||||
|
||||
#+begin_src matlab
|
||||
#+begin_src matlab :exports code
|
||||
%% Geometry
|
||||
d = 50e-3; % Cube's edge length [m]
|
||||
b = 20e-3; % Distance between cube's vertices and top joints [m]
|
||||
L = 50e-3; % Length of the struts [m]
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
%% Initialize the Delta Robot
|
||||
delta_robot = initializeStewartPlatform();
|
||||
delta_robot = generateDeltaRobot(delta_robot, 'd', d, 'b', b, 'L', L);
|
||||
@@ -219,6 +221,7 @@ The Jacobian matrix is defined as shown in eqref:eq:delta_robot_jacobian.
|
||||
\end{equation}
|
||||
|
||||
#+begin_src matlab
|
||||
%% Jacobian matrix
|
||||
s1 = delta_robot.geometry.As(:,1);
|
||||
s2 = delta_robot.geometry.As(:,3);
|
||||
s3 = delta_robot.geometry.As(:,5);
|
||||
@@ -239,6 +242,7 @@ It links the small actuator displacement to the top platform displacement eqref:
|
||||
The achievable workspace is a cube whose edge length is equal to the actuator stroke.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Estimation of the mobility
|
||||
L_max = 50e-6; % Maximum actuator stroke (+/-) [m]
|
||||
|
||||
thetas = linspace(0, pi, 100);
|
||||
@@ -312,7 +316,7 @@ L = 1/sqrt(2)*min(abs(rs(i,:)));
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results none
|
||||
%% 2D mobility for different orientations
|
||||
%% 2D mobility for different orientations and worst case
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:length(phis)
|
||||
@@ -333,7 +337,7 @@ exportFig('figs/delta_robot_2d_workspace.pdf', 'width', 'normal', 'height', 'tal
|
||||
#+end_src
|
||||
|
||||
#+name: fig:delta_robot_2d_workspace
|
||||
#+caption: 2D mobility for different orientations
|
||||
#+caption: 2D mobility for different orientations and worst case
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_2d_workspace.png]]
|
||||
|
||||
@@ -414,7 +418,7 @@ In the perfect case (flexible joints having no stiffness in bending, and infinit
|
||||
In order to have some compliance in rotation, the flexible joints need to have some compliance in torsion *and* in the axial direction.
|
||||
If only the torsional compliance is considered, or only the axial compliance, the top platform will still not be able to do any rotation.
|
||||
|
||||
This is shown below with the Simscape model:
|
||||
This is shown below with the Simscape model.
|
||||
|
||||
Perfect Delta Robot:
|
||||
- infinite axial stiffness
|
||||
@@ -483,20 +487,10 @@ delta_robot = initializeJointDynamics(delta_robot, 'type_F', '3dof', 'type_M', '
|
||||
G_kt = linearize(mdl, io);
|
||||
G_kt.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
|
||||
G_kt.OutputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results value replace :exports results :tangle no
|
||||
dcgain(G_kt)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| 1.00000000008084e-06 | 5.61161767954149e-17 | 1.71532908969278e-16 | -5.07840362381474e-20 | 6.66481298362927e-20 | -2.97485996797085e-20 |
|
||||
| 9.44550093013109e-17 | 9.99999999981042e-07 | -1.31365181854596e-16 | 2.20736442292089e-20 | -8.27761658859861e-20 | -5.51841106039072e-20 |
|
||||
| 1.5172479677791e-16 | 7.57916759433382e-18 | 9.9999999983089e-07 | 2.71965732539802e-20 | -5.0088900526952e-21 | 4.20708731166142e-20 |
|
||||
| 3.7990974483635e-15 | -1.49195278352597e-15 | 1.09166051384021e-15 | -4.60992688885629e-28 | 4.46894514064728e-28 | -6.04202812027976e-29 |
|
||||
| 1.92223678174906e-15 | 3.62267008376981e-15 | -5.42452104276465e-15 | 3.7737029650938e-28 | -2.99601307180469e-28 | -3.30297132145485e-28 |
|
||||
| 3.79407058351761e-16 | -3.46944690994006e-17 | 9.05659407516431e-16 | -1.33615244419949e-28 | 6.31115609464934e-29 | -1.07596265815569e-29 |
|
||||
|
||||
|
||||
If we consider the axial of the flexible joints:
|
||||
- finite axial stiffness
|
||||
@@ -513,20 +507,10 @@ delta_robot = initializeJointDynamics(delta_robot, 'type_F', '2dof_a', 'type_M',
|
||||
G_ka = linearize(mdl, io);
|
||||
G_ka.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
|
||||
G_ka.OutputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results value replace :exports results :tangle no
|
||||
dcgain(G_ka)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| 1.0100082922792e-06 | -8.23544084894984e-12 | -1.12982601885747e-11 | -1.30123733161505e-19 | 3.61079565098929e-21 | -2.56479299609534e-20 |
|
||||
| -8.23691147427908e-12 | 1.01002426764947e-06 | 1.16488393394949e-11 | -9.17271935353013e-20 | -1.39093131659514e-20 | -8.92049690205949e-21 |
|
||||
| -1.12984563170605e-11 | 1.1646579416975e-11 | 1.01001628184113e-06 | -1.2624013403036e-19 | -4.41063676650963e-22 | 2.01282903077792e-20 |
|
||||
| 3.25566266033832e-16 | 7.02470264849632e-18 | 1.34879235410707e-17 | -4.42814771779206e-29 | 1.06332319737688e-30 | -8.04051214064698e-30 |
|
||||
| -2.34669385520782e-15 | 1.03658500184429e-16 | 2.10026418149746e-15 | 3.04125606965025e-29 | -1.07347740796227e-29 | 1.00530401393662e-28 |
|
||||
| -2.76788049700945e-16 | -3.49174266014038e-17 | 1.36253386200494e-15 | -1.31490052587614e-28 | -1.10493913866777e-30 | 3.45058758900066e-29 |
|
||||
|
||||
No we consider both finite torsional stiffness and finite axial stiffness.
|
||||
In that case we get some compliance in rotation.
|
||||
So it is a combination of axial and torsion stiffness that gives some rotational stiffness of the top platform.
|
||||
@@ -539,20 +523,10 @@ delta_robot = initializeJointDynamics(delta_robot, 'type_F', '3dof_a', 'type_M',
|
||||
G_ka_kt = linearize(mdl, io);
|
||||
G_ka_kt.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
|
||||
G_ka_kt.OutputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results value replace :exports results :tangle no
|
||||
dcgain(G_ka_kt)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| 1.01000347398415e-06 | 1.08760660507374e-12 | 6.48998902114602e-12 | -1.68758827983914e-12 | 2.72734564017018e-12 | -1.13327901508316e-12 |
|
||||
| -1.7269667100718e-13 | 1.01000152837256e-06 | 4.09018170284123e-13 | -9.80286569772779e-13 | -9.94629340226498e-13 | 8.3468855003368e-13 |
|
||||
| 5.40707734744154e-12 | -1.46859567258244e-12 | 1.0099981133678e-06 | 3.34755457607493e-12 | -6.56764113866634e-12 | 1.26237249518737e-12 |
|
||||
| 2.67935189951885e-13 | -6.64493555908236e-14 | 7.44661955503977e-13 | 1.59744415094004e-05 | -6.97585818773949e-13 | 1.44845764745933e-13 |
|
||||
| 1.91880640934689e-14 | -1.31284160978049e-13 | -5.83827721443037e-13 | 4.97550111979747e-13 | 1.5974440506229e-05 | 8.27388125221276e-14 |
|
||||
| 1.63302978397554e-14 | -6.29948151015302e-14 | 1.11798835985125e-13 | -4.74438363934587e-14 | -1.39110944875938e-13 | 3.99840072236264e-06 |
|
||||
|
||||
Therefore, to model some compliance of the top platform in rotation, both the axial compliance and the torsional compliance of the flexible joints should be considered.
|
||||
|
||||
** Kinematics: Number of modes
|
||||
@@ -608,17 +582,14 @@ size(G)
|
||||
<<sec:delta_robot_flexible_joints>>
|
||||
** Introduction :ignore:
|
||||
|
||||
The goal is to extract specifications for the flexible joints of the six struts.
|
||||
|
||||
The two most critical flexible joints imperfections are:
|
||||
- The axial stiffness, that should be high enough
|
||||
- The bending stiffness, that should be low enough
|
||||
|
||||
The shear and torsional stiffnesses are not foreseen to be very problematic, but their impact will be evaluated.
|
||||
|
||||
First, the dynamics of a "perfect" Delta-Robot is identified (i.e. with perfect 2DoF rotational joints).
|
||||
First, in Section [[ssec:delta_robot_flexible_joints_geometry]], the dynamics of a "perfect" Delta-Robot is identified (i.e. with perfect 2DoF rotational joints).
|
||||
|
||||
Then, the impact of the flexible joint's imperfections will be studied.
|
||||
The goal is to extract specifications for the flexible joints of the six struts, in terms of:
|
||||
- bending stiffness (Section [[ssec:delta_robot_flexible_joints_bending]])
|
||||
- axial stiffness (Section [[ssec:delta_robot_flexible_joints_axial]])
|
||||
- torsional stiffness (Section [[ssec:delta_robot_flexible_joints_torsion]])
|
||||
- shear stiffness (Section [[ssec:delta_robot_flexible_joints_shear]])
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@@ -646,11 +617,12 @@ Then, the impact of the flexible joint's imperfections will be studied.
|
||||
#+end_src
|
||||
|
||||
** Studied Geometry
|
||||
<<ssec:delta_robot_flexible_joints_geometry>>
|
||||
|
||||
The cube's edge length is equal to 50mm, the distance between cube's vertices and top joints is 20mm and the length of the struts (i.e. the distance between the two flexible joints of the same strut) is 50mm.
|
||||
The actuator stiffness is $1\,N/\mu m$.
|
||||
|
||||
The obtained geometry is shown in Figure [[fig:delta_robot_studied_geometry]].
|
||||
The obtained geometry is shown in Figure [].
|
||||
|
||||
#+begin_src matlab
|
||||
%% Geometry
|
||||
@@ -749,7 +721,9 @@ exportFig('figs/delta_robot_dynamics_perfect.pdf', 'width', 'wide', 'height', 'n
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_dynamics_perfect.png]]
|
||||
|
||||
** Stiffness seen by the actuator
|
||||
** Bending Stiffness
|
||||
<<ssec:delta_robot_flexible_joints_bending>>
|
||||
*** Stiffness seen by the actuator, and decrease of the achievable stroke
|
||||
|
||||
Because the flexible joints will have some bending stiffness, the actuator in one direction will "see" some stiffness due to the struts in the other directions.
|
||||
This will limit its effective stroke.
|
||||
@@ -799,7 +773,6 @@ Therefore, we should aim at $k_f < 50\,Nm/\text{rad}$.
|
||||
|
||||
This should be validated with the final geometry.
|
||||
|
||||
** Bending Stiffness
|
||||
|
||||
Then, the dynamics is identified for a bending Stiffness of $50\,Nm/\text{rad}$ and compared with a Delta robot with no bending stiffness in Figure [[fig:delta_robot_bending_stiffness_dynamics]].
|
||||
|
||||
@@ -854,7 +827,98 @@ exportFig('figs/delta_robot_bending_stiffness_dynamics.pdf', 'width', 'wide', 'h
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_bending_stiffness_dynamics.png]]
|
||||
|
||||
*** Effect on the coupling
|
||||
|
||||
Here, reasonable values for the flexible joints (modelled as a 6DoF joint) stiffness are taken:
|
||||
- Torsional stiffness of 500Nm/rad
|
||||
- Axial stiffness of 100N/um
|
||||
- Shear stiffness of 100N/um
|
||||
|
||||
And the bending stiffness is varied from low to high values.
|
||||
The obtained dynamics is shown in Figure [[fig:delta_robot_bending_stiffness_couplign]].
|
||||
It can be seen that the low frequency coupling increases when the bending stiffness increases.
|
||||
|
||||
Therefore, the bending stiffness of the flexible joints should be minimized (10Nm/rad could be a reasonable objective).
|
||||
|
||||
#+begin_src matlab
|
||||
%% Effect of bending stiffness on the plant dynamics
|
||||
d = 50e-3; % Cube's edge length [m]
|
||||
b = 20e-3; % Distance between cube's vertices and top joints [m]
|
||||
L = 50e-3; % Length of the struts [m]
|
||||
|
||||
delta_robot = initializeStewartPlatform();
|
||||
delta_robot = generateDeltaRobot(delta_robot, 'd', d, 'b', b, 'L', L);
|
||||
delta_robot = computeJointsPose(delta_robot);
|
||||
delta_robot = initializeActuatorDynamics(delta_robot, 'type', '1dof', 'k', k);
|
||||
delta_robot = initializeCylindricalStruts(delta_robot);
|
||||
delta_robot = computeJacobian(delta_robot);
|
||||
delta_robot = initializeStewartPose(delta_robot);
|
||||
|
||||
joint_axial = 100e6; % [N/m]
|
||||
joint_shear = 100e6; % [N/m]
|
||||
joint_bending = 50; % [Nm/rad]
|
||||
joint_torsion = 500; % [Nm/rad]
|
||||
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||
io(io_i) = linio([mdl, '/delta_robot'], 1, 'openoutput'); io_i = io_i + 1; % Actuator Displacement [m]
|
||||
|
||||
Kfs = [1, 10, 100, 1000];
|
||||
Gkf = {zeros(size(Kfs))};
|
||||
|
||||
for i = 1:length(Kfs)
|
||||
delta_robot = initializeJointDynamics(delta_robot, 'type_F', '6dof', 'type_M', '6dof', 'Ka', joint_axial, 'Kf', Kfs(i), 'Kt', joint_torsion, 'Ks', joint_shear);
|
||||
|
||||
%% Run the linearization
|
||||
G = linearize(mdl, io);
|
||||
G.InputName = {'F1', 'F2', 'F3'};
|
||||
G.OutputName = {'D1', 'D2', 'D3'};
|
||||
|
||||
Gkf(i) = {G};
|
||||
end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results none
|
||||
%% Effect of the bending stiffness of the flexible joints on the coupling
|
||||
freqs = logspace(0, 4, 1000);
|
||||
figure;
|
||||
tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||
ax1 = nexttile();
|
||||
hold on;
|
||||
for i = 1:length(Kfs)
|
||||
plot(freqs, abs(squeeze(freqresp(Gkf{i}(1, 1), freqs, 'Hz'))), ...
|
||||
'DisplayName', sprintf('$D_i/F_i$, $k_f = %.0f Nm/rad$', Kfs(i)));
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(Gkf{1}(1, 2), freqs, 'Hz'))), 'color', [colors(1, :), 0.5], ...
|
||||
'DisplayName', 'coupling');
|
||||
plot(freqs, abs(squeeze(freqresp(Gkf{1}(1, 3), freqs, 'Hz'))), 'color', [colors(1, :), 0.5], ...
|
||||
'HandleVisibility', 'off');
|
||||
for i = 2:length(Kfs)
|
||||
plot(freqs, abs(squeeze(freqresp(Gkf{i}(1, 2), freqs, 'Hz'))), 'color', [colors(i, :), 0.5], ...
|
||||
'HandleVisibility', 'off');
|
||||
plot(freqs, abs(squeeze(freqresp(Gkf{i}(1, 3), freqs, 'Hz'))), 'color', [colors(i, :), 0.5], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude [m/N]');
|
||||
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||
leg.ItemTokenSize(1) = 15;
|
||||
xlim([1, 1e4]);
|
||||
ylim([1e-12, 1e-4])
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/delta_robot_bending_stiffness_couplign.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:delta_robot_bending_stiffness_couplign
|
||||
#+caption: Effect of the bending stiffness of the flexible joints on the coupling
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_bending_stiffness_couplign.png]]
|
||||
|
||||
** Axial Stiffness
|
||||
<<ssec:delta_robot_flexible_joints_axial>>
|
||||
|
||||
Now, the effect of the axial stiffness on the dynamics is studied (Figure [[fig:delta_robot_axial_stiffness_dynamics]]).
|
||||
Additional modes can be observed on the plant dynamics, which could limit the achievable bandwidth.
|
||||
@@ -909,6 +973,8 @@ exportFig('figs/delta_robot_axial_stiffness_dynamics.pdf', 'width', 'wide', 'hei
|
||||
[[file:figs/delta_robot_axial_stiffness_dynamics.png]]
|
||||
|
||||
** Torsional Stiffness
|
||||
<<ssec:delta_robot_flexible_joints_torsion>>
|
||||
|
||||
Now the compliance in torsion of the flexible joints is considered.
|
||||
|
||||
If we look at the compliance of the delta robot in rotation as a function of the torsional stiffness of the flexible joints (Figure [[fig:delta_robot_kt_compliance]]), we see almost no effect: the system is not made more stiff by increasing the torsional stiffness of the joints.
|
||||
@@ -1032,6 +1098,7 @@ exportFig('figs/delta_robot_kt_dynamics.pdf', 'width', 'wide', 'height', 'normal
|
||||
Therefore, the torsional stiffness is not a super important metric for the design of the delta robot.
|
||||
|
||||
** Shear Stiffness
|
||||
<<ssec:delta_robot_flexible_joints_shear>>
|
||||
|
||||
As shown in Figure [[fig:delta_robot_shear_stiffness_compliance]], the shear stiffness of the flexible joints has some effect on the compliance in translation and almost no effect on the compliance in rotation.
|
||||
|
||||
@@ -1108,6 +1175,45 @@ exportFig('figs/delta_robot_shear_stiffness_compliance.pdf', 'width', 'full', 'h
|
||||
[[file:figs/delta_robot_shear_stiffness_compliance.png]]
|
||||
|
||||
|
||||
** Conclusion
|
||||
|
||||
#+name: tab:delta_robot_flexible_joints_recommendations
|
||||
#+caption: Recommendations for the flexible joints
|
||||
| Joint's Stiffness | Effect | Recommendation |
|
||||
|-------------------+--------------------------------------------------+-------------------------------------------------------------------------------------------|
|
||||
| Bending | Can reduce the stroke, and increase the coupling | Below 50 to 10 Nm/rad |
|
||||
| Axial | Add modes that can limit the feedback bandwidth | As high as possible, at least 100 Nm/um |
|
||||
| Torsion | Minor effect | No recommendation |
|
||||
| Shear | Can limit the stiffness of the system | As high as possible (less important than the axial stiffness), above 100 N/um if possible |
|
||||
|
||||
* Effect of the Geometry
|
||||
<<sec:delta_robot_flexible_geometry>>
|
||||
** Introduction :ignore:
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :noweb yes
|
||||
<<m-init-path>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :eval no :noweb yes
|
||||
<<m-init-path-tangle>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :noweb yes
|
||||
<<m-init-simscape>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :noweb yes
|
||||
<<m-init-other>>
|
||||
#+end_src
|
||||
|
||||
** Effect of cube's size
|
||||
*** Introduction :ignore:
|
||||
|
||||
@@ -1268,7 +1374,7 @@ exportFig('figs/delta_robot_cube_size_compliance_rotation.pdf', 'width', 'wide',
|
||||
|
||||
With a cube size of 50mm, the resonance frequency is already above 1kHz with seems reasonable.
|
||||
|
||||
** Effect of the strut length ?
|
||||
** Effect of the strut length
|
||||
*** Introduction :ignore:
|
||||
Let's choose reasonable values for the flexible joints:
|
||||
- Bending stiffness of 50Nm/rad
|
||||
@@ -1277,94 +1383,15 @@ Let's choose reasonable values for the flexible joints:
|
||||
|
||||
And we see the effect of changing the strut length.
|
||||
|
||||
*** Effect on the plant dynamics
|
||||
|
||||
As shown in Figure [[fig:delta_robot_strut_length_plant_dynamics]], having longer struts:
|
||||
- decreases the main resonance frequency: this means that the stiffness in the X,Y and Z directions is decreased when the length of the strut is longer.
|
||||
This is reasonable as the "lever" arm is getting larger, so the bending stiffness and compression of the flexible joints have a larger effect on the top platform compliance.
|
||||
- decreases the low frequency coupling: this effect is more difficult to physically understand
|
||||
|
||||
But even with relatively short struts (20mm and above), the low frequency decoupling is already around two orders of magnitude, which is enough from a control point of view.
|
||||
So, the struts length can be optimized to not decrease too much the stiffness of the platform while still getting good low frequency decoupling.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Effect of torsional stiffness on the plant dynamics
|
||||
joint_axial = 100e6; % [N/m]
|
||||
joint_bending = 50; % [Nm/rad]
|
||||
joint_torsion = 500; % [Nm/rad]
|
||||
|
||||
% Geometry
|
||||
d = 50e-3; % Cube's edge length [m]
|
||||
b = 20e-3; % Distance between cube's vertices and top joints [m]
|
||||
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||
io(io_i) = linio([mdl, '/delta_robot'], 1, 'openoutput'); io_i = io_i + 1; % Actuator Displacement [m]
|
||||
|
||||
% Cube's size
|
||||
strut_length = [10e-3, 20e-3, 50e-3, 100e-3];
|
||||
G_strut_length = {zeros(size(strut_length))};
|
||||
|
||||
for i = 1:length(strut_length)
|
||||
delta_robot = initializeStewartPlatform();
|
||||
delta_robot = generateDeltaRobot(delta_robot, 'd', d, 'b', b, 'L', strut_length(i));
|
||||
delta_robot = computeJointsPose(delta_robot);
|
||||
delta_robot = initializeActuatorDynamics(delta_robot, 'type', '1dof', 'k', k);
|
||||
delta_robot = initializeJointDynamics(delta_robot, 'type_F', '3dof_a', 'type_M', '2dof_a', 'Ka', joint_axial, 'Kf', joint_bending, 'Kt', joint_torsion);
|
||||
delta_robot = initializeCylindricalStruts(delta_robot);
|
||||
delta_robot = computeJacobian(delta_robot);
|
||||
delta_robot = initializeStewartPose(delta_robot);
|
||||
|
||||
%% Run the linearization
|
||||
G = linearize(mdl, io);
|
||||
G.InputName = {'F1', 'F2', 'F3'};
|
||||
G.OutputName = {'D1', 'D2', 'D3'};
|
||||
|
||||
G_strut_length(i) = {G};
|
||||
end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results none
|
||||
%% Effect of the cube's size on the plant dynamics
|
||||
freqs = logspace(0, 4, 1000);
|
||||
figure;
|
||||
tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||
ax1 = nexttile();
|
||||
hold on;
|
||||
for i = 1:length(strut_length)
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{i}(1, 1), freqs, 'Hz'))), 'color', colors(i,:), ...
|
||||
'DisplayName', sprintf('$D_1/F_1$, $L = %.0f$ mm', 1e3*strut_length(i)));
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{1}(1, 2), freqs, 'Hz'))), 'color', [colors(1,:), 0.2], ...
|
||||
'DisplayName', 'coupling');
|
||||
for i = 2:length(strut_length)
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{i}(1, 2), freqs, 'Hz'))), 'color', [colors(i,:), 0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{i}(1, 3), freqs, 'Hz'))), 'color', [colors(i,:), 0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude [m/N]');
|
||||
leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1);
|
||||
leg.ItemTokenSize(1) = 15;
|
||||
% xlim([1, 1e4]);
|
||||
ylim([1e-12, 1e-4])
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/delta_robot_strut_length_plant_dynamics.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:delta_robot_strut_length_plant_dynamics
|
||||
#+caption: Effect of the cube's size on the plant dynamics
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_strut_length_plant_dynamics.png]]
|
||||
|
||||
*** Effect on the compliance
|
||||
|
||||
As shown in Figure [[fig:delta_robot_strut_length_compliance_rotation]], the strut length has an effect on the system stiffness in translation (left plot) but almost not in rotation (right plot).
|
||||
|
||||
Indeed, the stiffness in rotation is a combination of:
|
||||
- The stiffness of the actuator
|
||||
- The shear and axial stiffness of the flexible joints
|
||||
- The bending and torsional stiffness of the flexible joints, combine with the strut length
|
||||
|
||||
#+begin_src matlab
|
||||
%% Effect of torsional stiffness on the plant dynamics
|
||||
joint_axial = 100e6; % [N/m]
|
||||
@@ -1445,6 +1472,95 @@ exportFig('figs/delta_robot_strut_length_compliance_rotation.pdf', 'width', 'ful
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_strut_length_compliance_rotation.png]]
|
||||
|
||||
*** Effect on the plant dynamics
|
||||
|
||||
As shown in Figure [[fig:delta_robot_strut_length_plant_dynamics]], having longer struts:
|
||||
- decreases the main resonance frequency: this means that the stiffness in the X,Y and Z directions is decreased when the length of the strut is longer.
|
||||
This is reasonable as the "lever" arm is getting larger, so the bending stiffness and compression of the flexible joints have a larger effect on the top platform compliance.
|
||||
- decreases the low frequency coupling: this effect is more difficult to physically understand
|
||||
Probably: when pushing with one actuator, it induces some rotation of the struts corresponding to the other two actuators.
|
||||
This rotation is proportional to the strut length.
|
||||
Then, this rotation, combined with the limited compliance in bending of the flexible joints induces some force applied on the other actuators, hence the coupling.
|
||||
This is similar to what was observed when varying the bending stiffness of the flexible joints: the coupling was increased with an increased of the bending stiffness (See Figure [[fig:delta_robot_bending_stiffness_couplign]])
|
||||
*So we should also observed a decrease of the coupling when decreasing the bending stiffness of the actuators*
|
||||
|
||||
But even with relatively short struts (20mm and above), the low frequency decoupling is already around two orders of magnitude, which is enough from a control point of view.
|
||||
So, the struts length can be optimized to not decrease too much the stiffness of the platform while still getting good low frequency decoupling.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Effect of torsional stiffness on the plant dynamics
|
||||
joint_axial = 100e6; % [N/m]
|
||||
joint_bending = 50; % [Nm/rad]
|
||||
joint_torsion = 500; % [Nm/rad]
|
||||
|
||||
% Geometry
|
||||
d = 50e-3; % Cube's edge length [m]
|
||||
b = 20e-3; % Distance between cube's vertices and top joints [m]
|
||||
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||
io(io_i) = linio([mdl, '/delta_robot'], 1, 'openoutput'); io_i = io_i + 1; % Actuator Displacement [m]
|
||||
|
||||
% Cube's size
|
||||
strut_length = [10e-3, 20e-3, 50e-3, 100e-3];
|
||||
G_strut_length = {zeros(size(strut_length))};
|
||||
|
||||
for i = 1:length(strut_length)
|
||||
delta_robot = initializeStewartPlatform();
|
||||
delta_robot = generateDeltaRobot(delta_robot, 'd', d, 'b', b, 'L', strut_length(i));
|
||||
delta_robot = computeJointsPose(delta_robot);
|
||||
delta_robot = initializeActuatorDynamics(delta_robot, 'type', '1dof', 'k', k);
|
||||
delta_robot = initializeJointDynamics(delta_robot, 'type_F', '3dof_a', 'type_M', '2dof_a', 'Ka', joint_axial, 'Kf', joint_bending, 'Kt', joint_torsion);
|
||||
delta_robot = initializeCylindricalStruts(delta_robot);
|
||||
delta_robot = computeJacobian(delta_robot);
|
||||
delta_robot = initializeStewartPose(delta_robot);
|
||||
|
||||
%% Run the linearization
|
||||
G = linearize(mdl, io);
|
||||
G.InputName = {'F1', 'F2', 'F3'};
|
||||
G.OutputName = {'D1', 'D2', 'D3'};
|
||||
|
||||
G_strut_length(i) = {G};
|
||||
end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results none
|
||||
%% Effect of the cube's size on the plant dynamics
|
||||
freqs = logspace(0, 4, 1000);
|
||||
figure;
|
||||
tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||
ax1 = nexttile();
|
||||
hold on;
|
||||
for i = 1:length(strut_length)
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{i}(1, 1), freqs, 'Hz'))), 'color', colors(i,:), ...
|
||||
'DisplayName', sprintf('$D_1/F_1$, $L = %.0f$ mm', 1e3*strut_length(i)));
|
||||
end
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{1}(1, 2), freqs, 'Hz'))), 'color', [colors(1,:), 0.2], ...
|
||||
'DisplayName', 'coupling');
|
||||
for i = 2:length(strut_length)
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{i}(1, 2), freqs, 'Hz'))), 'color', [colors(i,:), 0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
plot(freqs, abs(squeeze(freqresp(G_strut_length{i}(1, 3), freqs, 'Hz'))), 'color', [colors(i,:), 0.2], ...
|
||||
'HandleVisibility', 'off');
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude [m/N]');
|
||||
leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1);
|
||||
leg.ItemTokenSize(1) = 15;
|
||||
% xlim([1, 1e4]);
|
||||
ylim([1e-12, 1e-4])
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/delta_robot_strut_length_plant_dynamics.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:delta_robot_strut_length_plant_dynamics
|
||||
#+caption: Effect of the Strut length on the plant dynamics
|
||||
#+RESULTS:
|
||||
[[file:figs/delta_robot_strut_length_plant_dynamics.png]]
|
||||
|
||||
** Having the Center of Mass at the cube's center
|
||||
|
||||
To make things easier, we take a top platform with no mass, mass-less struts, and we put a payload on top of the platform.
|
||||
|
||||
BIN
delta-robot.pdf
BIN
delta-robot.pdf
Binary file not shown.
159
delta-robot.tex
159
delta-robot.tex
@@ -1,4 +1,4 @@
|
||||
% Created 2025-12-02 Tue 15:22
|
||||
% Created 2025-12-02 Tue 16:08
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
\tableofcontents
|
||||
|
||||
\clearpage
|
||||
\label{sec:delta_robot_introduction}
|
||||
\chapter{Geometry}
|
||||
\label{sec:delta_robot_kinematics}
|
||||
\chapter{Studied Geometry}
|
||||
The Delta Robot geometry is defined as shown in Figure \ref{fig:delta_robot_schematic}.
|
||||
|
||||
The geometry is fully defined by three parameters:
|
||||
@@ -80,6 +80,13 @@ It has a mass of \textasciitilde{}300g
|
||||
|
||||
Let's initialize a Delta Robot architecture, and plot the obtained geometry (Figures \ref{fig:delta_robot_architecture} and \ref{fig:delta_robot_architecture_top}).
|
||||
|
||||
\begin{minted}[]{matlab}
|
||||
%% Geometry
|
||||
d = 50e-3; % Cube's edge length [m]
|
||||
b = 20e-3; % Distance between cube's vertices and top joints [m]
|
||||
L = 50e-3; % Length of the struts [m]
|
||||
\end{minted}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/delta_robot_architecture.png}
|
||||
@@ -134,7 +141,7 @@ Depending on how the YZ plane is oriented (i.e., depending on the Rz angle of th
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/delta_robot_2d_workspace.png}
|
||||
\caption{\label{fig:delta_robot_2d_workspace}2D mobility for different orientations}
|
||||
\caption{\label{fig:delta_robot_2d_workspace}2D mobility for different orientations and worst case}
|
||||
\end{figure}
|
||||
|
||||
\phantomsection
|
||||
@@ -155,7 +162,7 @@ In the perfect case (flexible joints having no stiffness in bending, and infinit
|
||||
In order to have some compliance in rotation, the flexible joints need to have some compliance in torsion \textbf{and} in the axial direction.
|
||||
If only the torsional compliance is considered, or only the axial compliance, the top platform will still not be able to do any rotation.
|
||||
|
||||
This is shown below with the Simscape model:
|
||||
This is shown below with the Simscape model.
|
||||
|
||||
Perfect Delta Robot:
|
||||
\begin{itemize}
|
||||
@@ -182,20 +189,6 @@ If we consider the torsion of the flexible joints:
|
||||
|
||||
We get the same result.
|
||||
|
||||
\begin{table}[htbp]
|
||||
\label{}
|
||||
\centering
|
||||
\begin{tabular}{rrrrrr}
|
||||
1.00000000008084e-06 & 5.61161767954149e-17 & 1.71532908969278e-16 & -5.07840362381474e-20 & 6.66481298362927e-20 & -2.97485996797085e-20\\
|
||||
9.44550093013109e-17 & 9.99999999981042e-07 & -1.31365181854596e-16 & 2.20736442292089e-20 & -8.27761658859861e-20 & -5.51841106039072e-20\\
|
||||
1.5172479677791e-16 & 7.57916759433382e-18 & 9.9999999983089e-07 & 2.71965732539802e-20 & -5.0088900526952e-21 & 4.20708731166142e-20\\
|
||||
3.7990974483635e-15 & -1.49195278352597e-15 & 1.09166051384021e-15 & -4.60992688885629e-28 & 4.46894514064728e-28 & -6.04202812027976e-29\\
|
||||
1.92223678174906e-15 & 3.62267008376981e-15 & -5.42452104276465e-15 & 3.7737029650938e-28 & -2.99601307180469e-28 & -3.30297132145485e-28\\
|
||||
3.79407058351761e-16 & -3.46944690994006e-17 & 9.05659407516431e-16 & -1.33615244419949e-28 & 6.31115609464934e-29 & -1.07596265815569e-29\\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
If we consider the axial of the flexible joints:
|
||||
\begin{itemize}
|
||||
\item finite axial stiffness
|
||||
@@ -205,36 +198,10 @@ If we consider the axial of the flexible joints:
|
||||
|
||||
We get the same result.
|
||||
|
||||
\begin{table}[htbp]
|
||||
\label{}
|
||||
\centering
|
||||
\begin{tabular}{rrrrrr}
|
||||
1.0100082922792e-06 & -8.23544084894984e-12 & -1.12982601885747e-11 & -1.30123733161505e-19 & 3.61079565098929e-21 & -2.56479299609534e-20\\
|
||||
-8.23691147427908e-12 & 1.01002426764947e-06 & 1.16488393394949e-11 & -9.17271935353013e-20 & -1.39093131659514e-20 & -8.92049690205949e-21\\
|
||||
-1.12984563170605e-11 & 1.1646579416975e-11 & 1.01001628184113e-06 & -1.2624013403036e-19 & -4.41063676650963e-22 & 2.01282903077792e-20\\
|
||||
3.25566266033832e-16 & 7.02470264849632e-18 & 1.34879235410707e-17 & -4.42814771779206e-29 & 1.06332319737688e-30 & -8.04051214064698e-30\\
|
||||
-2.34669385520782e-15 & 1.03658500184429e-16 & 2.10026418149746e-15 & 3.04125606965025e-29 & -1.07347740796227e-29 & 1.00530401393662e-28\\
|
||||
-2.76788049700945e-16 & -3.49174266014038e-17 & 1.36253386200494e-15 & -1.31490052587614e-28 & -1.10493913866777e-30 & 3.45058758900066e-29\\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
No we consider both finite torsional stiffness and finite axial stiffness.
|
||||
In that case we get some compliance in rotation.
|
||||
So it is a combination of axial and torsion stiffness that gives some rotational stiffness of the top platform.
|
||||
|
||||
\begin{table}[htbp]
|
||||
\label{}
|
||||
\centering
|
||||
\begin{tabular}{rrrrrr}
|
||||
1.01000347398415e-06 & 1.08760660507374e-12 & 6.48998902114602e-12 & -1.68758827983914e-12 & 2.72734564017018e-12 & -1.13327901508316e-12\\
|
||||
-1.7269667100718e-13 & 1.01000152837256e-06 & 4.09018170284123e-13 & -9.80286569772779e-13 & -9.94629340226498e-13 & 8.3468855003368e-13\\
|
||||
5.40707734744154e-12 & -1.46859567258244e-12 & 1.0099981133678e-06 & 3.34755457607493e-12 & -6.56764113866634e-12 & 1.26237249518737e-12\\
|
||||
2.67935189951885e-13 & -6.64493555908236e-14 & 7.44661955503977e-13 & 1.59744415094004e-05 & -6.97585818773949e-13 & 1.44845764745933e-13\\
|
||||
1.91880640934689e-14 & -1.31284160978049e-13 & -5.83827721443037e-13 & 4.97550111979747e-13 & 1.5974440506229e-05 & 8.27388125221276e-14\\
|
||||
1.63302978397554e-14 & -6.29948151015302e-14 & 1.11798835985125e-13 & -4.74438363934587e-14 & -1.39110944875938e-13 & 3.99840072236264e-06\\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
Therefore, to model some compliance of the top platform in rotation, both the axial compliance and the torsional compliance of the flexible joints should be considered.
|
||||
\chapter{Kinematics: Number of modes}
|
||||
|
||||
@@ -250,25 +217,23 @@ State-space model with 3 outputs, 3 inputs, and 6 states.
|
||||
\end{verbatim}
|
||||
\chapter{Flexible Joint Design}
|
||||
\label{sec:delta_robot_flexible_joints}
|
||||
The goal is to extract specifications for the flexible joints of the six struts.
|
||||
|
||||
The two most critical flexible joints imperfections are:
|
||||
\begin{itemize}
|
||||
\item The axial stiffness, that should be high enough
|
||||
\item The bending stiffness, that should be low enough
|
||||
\end{itemize}
|
||||
|
||||
The shear and torsional stiffnesses are not foreseen to be very problematic, but their impact will be evaluated.
|
||||
|
||||
First, the dynamics of a ``perfect'' Delta-Robot is identified (i.e. with perfect 2DoF rotational joints).
|
||||
First, in Section \ref{ssec:delta_robot_flexible_joints_geometry}, the dynamics of a ``perfect'' Delta-Robot is identified (i.e. with perfect 2DoF rotational joints).
|
||||
|
||||
Then, the impact of the flexible joint's imperfections will be studied.
|
||||
The goal is to extract specifications for the flexible joints of the six struts, in terms of:
|
||||
\begin{itemize}
|
||||
\item bending stiffness (Section \ref{ssec:delta_robot_flexible_joints_bending})
|
||||
\item axial stiffness (Section \ref{ssec:delta_robot_flexible_joints_axial})
|
||||
\item torsional stiffness (Section \ref{ssec:delta_robot_flexible_joints_torsion})
|
||||
\item shear stiffness (Section \ref{ssec:delta_robot_flexible_joints_shear})
|
||||
\end{itemize}
|
||||
\section{Studied Geometry}
|
||||
\label{ssec:delta_robot_flexible_joints_geometry}
|
||||
|
||||
The cube's edge length is equal to 50mm, the distance between cube's vertices and top joints is 20mm and the length of the struts (i.e. the distance between the two flexible joints of the same strut) is 50mm.
|
||||
The actuator stiffness is \(1\,N/\mu m\).
|
||||
|
||||
The obtained geometry is shown in Figure \ref{fig:delta_robot_studied_geometry}.
|
||||
The obtained geometry is shown in Figure [].
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
@@ -286,7 +251,9 @@ The dynamics is shown in Figure \ref{fig:delta_robot_dynamics_perfect}.
|
||||
\includegraphics[scale=1]{figs/delta_robot_dynamics_perfect.png}
|
||||
\caption{\label{fig:delta_robot_dynamics_perfect}Dynamics of the delta robot with perfect joints}
|
||||
\end{figure}
|
||||
\section{Stiffness seen by the actuator}
|
||||
\section{Bending Stiffness}
|
||||
\label{ssec:delta_robot_flexible_joints_bending}
|
||||
\subsection{Stiffness seen by the actuator, and decrease of the achievable stroke}
|
||||
|
||||
Because the flexible joints will have some bending stiffness, the actuator in one direction will ``see'' some stiffness due to the struts in the other directions.
|
||||
This will limit its effective stroke.
|
||||
@@ -307,7 +274,7 @@ If we want the parallel stiffness to be much smaller than the stiffness of the a
|
||||
Therefore, we should aim at \(k_f < 50\,Nm/\text{rad}\).
|
||||
|
||||
This should be validated with the final geometry.
|
||||
\section{Bending Stiffness}
|
||||
|
||||
|
||||
Then, the dynamics is identified for a bending Stiffness of \(50\,Nm/\text{rad}\) and compared with a Delta robot with no bending stiffness in Figure \ref{fig:delta_robot_bending_stiffness_dynamics}.
|
||||
|
||||
@@ -320,7 +287,28 @@ It is not critical from a dynamical point of view, it just decreases the achieva
|
||||
\includegraphics[scale=1]{figs/delta_robot_bending_stiffness_dynamics.png}
|
||||
\caption{\label{fig:delta_robot_bending_stiffness_dynamics}Effect of the bending stiffness on the dynamics}
|
||||
\end{figure}
|
||||
\subsection{Effect on the coupling}
|
||||
|
||||
Here, reasonable values for the flexible joints (modelled as a 6DoF joint) stiffness are taken:
|
||||
\begin{itemize}
|
||||
\item Torsional stiffness of 500Nm/rad
|
||||
\item Axial stiffness of 100N/um
|
||||
\item Shear stiffness of 100N/um
|
||||
\end{itemize}
|
||||
|
||||
And the bending stiffness is varied from low to high values.
|
||||
The obtained dynamics is shown in Figure \ref{fig:delta_robot_bending_stiffness_couplign}.
|
||||
It can be seen that the low frequency coupling increases when the bending stiffness increases.
|
||||
|
||||
Therefore, the bending stiffness of the flexible joints should be minimized (10Nm/rad could be a reasonable objective).
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/delta_robot_bending_stiffness_couplign.png}
|
||||
\caption{\label{fig:delta_robot_bending_stiffness_couplign}Effect of the bending stiffness of the flexible joints on the coupling}
|
||||
\end{figure}
|
||||
\section{Axial Stiffness}
|
||||
\label{ssec:delta_robot_flexible_joints_axial}
|
||||
|
||||
Now, the effect of the axial stiffness on the dynamics is studied (Figure \ref{fig:delta_robot_axial_stiffness_dynamics}).
|
||||
Additional modes can be observed on the plant dynamics, which could limit the achievable bandwidth.
|
||||
@@ -334,6 +322,8 @@ Therefore, we should aim at \(k_a > 100\,N/\mu m\).
|
||||
\caption{\label{fig:delta_robot_axial_stiffness_dynamics}Effect of the joint's axial stiffness on the plant dynamics}
|
||||
\end{figure}
|
||||
\section{Torsional Stiffness}
|
||||
\label{ssec:delta_robot_flexible_joints_torsion}
|
||||
|
||||
Now the compliance in torsion of the flexible joints is considered.
|
||||
|
||||
If we look at the compliance of the delta robot in rotation as a function of the torsional stiffness of the flexible joints (Figure \ref{fig:delta_robot_kt_compliance}), we see almost no effect: the system is not made more stiff by increasing the torsional stiffness of the joints.
|
||||
@@ -354,6 +344,7 @@ If we have a look at the effect of the torsional stiffness on the plant dynamics
|
||||
|
||||
Therefore, the torsional stiffness is not a super important metric for the design of the delta robot.
|
||||
\section{Shear Stiffness}
|
||||
\label{ssec:delta_robot_flexible_joints_shear}
|
||||
|
||||
As shown in Figure \ref{fig:delta_robot_shear_stiffness_compliance}, the shear stiffness of the flexible joints has some effect on the compliance in translation and almost no effect on the compliance in rotation.
|
||||
|
||||
@@ -365,6 +356,22 @@ A value of \(100\,N/\mu m\) seems reasonable.
|
||||
\includegraphics[scale=1]{figs/delta_robot_shear_stiffness_compliance.png}
|
||||
\caption{\label{fig:delta_robot_shear_stiffness_compliance}Effect of the shear stiffness of the flexible joints on the Delta Robot compliance}
|
||||
\end{figure}
|
||||
\section{Conclusion}
|
||||
|
||||
\begin{table}[htbp]
|
||||
\caption{\label{tab:delta_robot_flexible_joints_recommendations}Recommendations for the flexible joints}
|
||||
\centering
|
||||
\begin{tabular}{lll}
|
||||
Joint's Stiffness & Effect & Recommendation\\
|
||||
\hline
|
||||
Bending & Can reduce the stroke, and increase the coupling & Below 50 to 10 Nm/rad\\
|
||||
Axial & Add modes that can limit the feedback bandwidth & As high as possible, at least 100 Nm/um\\
|
||||
Torsion & Minor effect & No recommendation\\
|
||||
Shear & Can limit the stiffness of the system & As high as possible (less important than the axial stiffness), above 100 N/um if possible\\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
\chapter{Effect of the Geometry}
|
||||
\label{sec:delta_robot_flexible_geometry}
|
||||
\section{Effect of cube's size}
|
||||
Let's choose reasonable values for the flexible joints:
|
||||
\begin{itemize}
|
||||
@@ -404,7 +411,7 @@ As shown in Figure \ref{fig:delta_robot_cube_size_compliance_rotation}, the stif
|
||||
\end{figure}
|
||||
|
||||
With a cube size of 50mm, the resonance frequency is already above 1kHz with seems reasonable.
|
||||
\section{Effect of the strut length ?}
|
||||
\section{Effect of the strut length}
|
||||
Let's choose reasonable values for the flexible joints:
|
||||
\begin{itemize}
|
||||
\item Bending stiffness of 50Nm/rad
|
||||
@@ -413,6 +420,22 @@ Let's choose reasonable values for the flexible joints:
|
||||
\end{itemize}
|
||||
|
||||
And we see the effect of changing the strut length.
|
||||
\subsection{Effect on the compliance}
|
||||
|
||||
As shown in Figure \ref{fig:delta_robot_strut_length_compliance_rotation}, the strut length has an effect on the system stiffness in translation (left plot) but almost not in rotation (right plot).
|
||||
|
||||
Indeed, the stiffness in rotation is a combination of:
|
||||
\begin{itemize}
|
||||
\item The stiffness of the actuator
|
||||
\item The shear and axial stiffness of the flexible joints
|
||||
\item The bending and torsional stiffness of the flexible joints, combine with the strut length
|
||||
\end{itemize}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/delta_robot_strut_length_compliance_rotation.png}
|
||||
\caption{\label{fig:delta_robot_strut_length_compliance_rotation}Effect of the cube's size on the rotational compliance of the top platform}
|
||||
\end{figure}
|
||||
\subsection{Effect on the plant dynamics}
|
||||
|
||||
As shown in Figure \ref{fig:delta_robot_strut_length_plant_dynamics}, having longer struts:
|
||||
@@ -420,6 +443,11 @@ As shown in Figure \ref{fig:delta_robot_strut_length_plant_dynamics}, having lon
|
||||
\item decreases the main resonance frequency: this means that the stiffness in the X,Y and Z directions is decreased when the length of the strut is longer.
|
||||
This is reasonable as the ``lever'' arm is getting larger, so the bending stiffness and compression of the flexible joints have a larger effect on the top platform compliance.
|
||||
\item decreases the low frequency coupling: this effect is more difficult to physically understand
|
||||
Probably: when pushing with one actuator, it induces some rotation of the struts corresponding to the other two actuators.
|
||||
This rotation is proportional to the strut length.
|
||||
Then, this rotation, combined with the limited compliance in bending of the flexible joints induces some force applied on the other actuators, hence the coupling.
|
||||
This is similar to what was observed when varying the bending stiffness of the flexible joints: the coupling was increased with an increased of the bending stiffness (See Figure \ref{fig:delta_robot_bending_stiffness_couplign})
|
||||
\textbf{So we should also observed a decrease of the coupling when decreasing the bending stiffness of the actuators}
|
||||
\end{itemize}
|
||||
|
||||
But even with relatively short struts (20mm and above), the low frequency decoupling is already around two orders of magnitude, which is enough from a control point of view.
|
||||
@@ -428,16 +456,7 @@ So, the struts length can be optimized to not decrease too much the stiffness of
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/delta_robot_strut_length_plant_dynamics.png}
|
||||
\caption{\label{fig:delta_robot_strut_length_plant_dynamics}Effect of the cube's size on the plant dynamics}
|
||||
\end{figure}
|
||||
\subsection{Effect on the compliance}
|
||||
|
||||
As shown in Figure \ref{fig:delta_robot_strut_length_compliance_rotation}, the strut length has an effect on the system stiffness in translation (left plot) but almost not in rotation (right plot).
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/delta_robot_strut_length_compliance_rotation.png}
|
||||
\caption{\label{fig:delta_robot_strut_length_compliance_rotation}Effect of the cube's size on the rotational compliance of the top platform}
|
||||
\caption{\label{fig:delta_robot_strut_length_plant_dynamics}Effect of the Strut length on the plant dynamics}
|
||||
\end{figure}
|
||||
\section{Having the Center of Mass at the cube's center}
|
||||
|
||||
|
||||
BIN
figs/delta_robot_bending_stiffness_couplign.pdf
Normal file
BIN
figs/delta_robot_bending_stiffness_couplign.pdf
Normal file
Binary file not shown.
BIN
figs/delta_robot_bending_stiffness_couplign.png
Normal file
BIN
figs/delta_robot_bending_stiffness_couplign.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 137 KiB |
BIN
figs/delta_robot_strut_length_plant_dynamics.pdf
Normal file
BIN
figs/delta_robot_strut_length_plant_dynamics.pdf
Normal file
Binary file not shown.
BIN
figs/delta_robot_strut_length_plant_dynamics.png
Normal file
BIN
figs/delta_robot_strut_length_plant_dynamics.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
Binary file not shown.
Reference in New Issue
Block a user