Moved all the simulink files in each folders
This commit is contained in:
@@ -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>
|
||||
<!-- 2019-12-11 mer. 17:33 -->
|
||||
<!-- 2019-12-12 jeu. 11:25 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Matlab Functions used for the NASS Project</title>
|
||||
@@ -258,34 +258,33 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org05ce9cd">1. Functions</a>
|
||||
<li><a href="#orgac71426">1. Functions</a>
|
||||
<ul>
|
||||
<li><a href="#orgd234316">1.1. computePsdDispl</a></li>
|
||||
<li><a href="#orga7dcbe9">1.2. computeSetpoint</a></li>
|
||||
<li><a href="#org38afc80">1.3. converErrorBasis</a></li>
|
||||
<li><a href="#orge0e5103">1.4. generateDiagPidControl</a></li>
|
||||
<li><a href="#orga0abbff">1.5. identifyPlant</a></li>
|
||||
<li><a href="#orgd0e3a86">1.6. runSimulation</a></li>
|
||||
<li><a href="#org288e05d">1.7. Inverse Kinematics of the Hexapod</a></li>
|
||||
<li><a href="#org33a19ae">1.8. computeReferencePose</a></li>
|
||||
<li><a href="#orga30ed3e">1.1. computePsdDispl</a></li>
|
||||
<li><a href="#org164599d">1.2. computeSetpoint</a></li>
|
||||
<li><a href="#org0d7c91f">1.3. converErrorBasis</a></li>
|
||||
<li><a href="#orge57e769">1.4. generateDiagPidControl</a></li>
|
||||
<li><a href="#orgb953a5b">1.5. identifyPlant</a></li>
|
||||
<li><a href="#org442df30">1.6. Inverse Kinematics of the Hexapod</a></li>
|
||||
<li><a href="#orgce14673">1.7. computeReferencePose</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org05ce9cd" class="outline-2">
|
||||
<h2 id="org05ce9cd"><span class="section-number-2">1</span> Functions</h2>
|
||||
<div id="outline-container-orgac71426" class="outline-2">
|
||||
<h2 id="orgac71426"><span class="section-number-2">1</span> Functions</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
<a id="org1c061a7"></a>
|
||||
<a id="org8643823"></a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-orgd234316" class="outline-3">
|
||||
<h3 id="orgd234316"><span class="section-number-3">1.1</span> computePsdDispl</h3>
|
||||
<div id="outline-container-orga30ed3e" class="outline-3">
|
||||
<h3 id="orga30ed3e"><span class="section-number-3">1.1</span> computePsdDispl</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
<a id="orgabe5453"></a>
|
||||
<a id="orgeb6170e"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -321,11 +320,11 @@ This Matlab function is accessible <a href="../src/computePsdDispl.m">here</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga7dcbe9" class="outline-3">
|
||||
<h3 id="orga7dcbe9"><span class="section-number-3">1.2</span> computeSetpoint</h3>
|
||||
<div id="outline-container-org164599d" class="outline-3">
|
||||
<h3 id="org164599d"><span class="section-number-3">1.2</span> computeSetpoint</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
<a id="org879cac6"></a>
|
||||
<a id="org5f98a47"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -397,11 +396,11 @@ setpoint<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-hi
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org38afc80" class="outline-3">
|
||||
<h3 id="org38afc80"><span class="section-number-3">1.3</span> converErrorBasis</h3>
|
||||
<div id="outline-container-org0d7c91f" class="outline-3">
|
||||
<h3 id="org0d7c91f"><span class="section-number-3">1.3</span> converErrorBasis</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
<a id="org1e357a7"></a>
|
||||
<a id="orgdf67397"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -539,11 +538,11 @@ error_nass = <span class="org-rainbow-delimiters-depth-1">[</span>dx; dy; dz; th
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge0e5103" class="outline-3">
|
||||
<h3 id="orge0e5103"><span class="section-number-3">1.4</span> generateDiagPidControl</h3>
|
||||
<div id="outline-container-orge57e769" class="outline-3">
|
||||
<h3 id="orge57e769"><span class="section-number-3">1.4</span> generateDiagPidControl</h3>
|
||||
<div class="outline-text-3" id="text-1-4">
|
||||
<p>
|
||||
<a id="org0799e34"></a>
|
||||
<a id="org94ba4ce"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -574,11 +573,11 @@ This Matlab function is accessible <a href="../src/generateDiagPidControl.m">her
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga0abbff" class="outline-3">
|
||||
<h3 id="orga0abbff"><span class="section-number-3">1.5</span> identifyPlant</h3>
|
||||
<div id="outline-container-orgb953a5b" class="outline-3">
|
||||
<h3 id="orgb953a5b"><span class="section-number-3">1.5</span> identifyPlant</h3>
|
||||
<div class="outline-text-3" id="text-1-5">
|
||||
<p>
|
||||
<a id="org348e5c9"></a>
|
||||
<a id="org2662524"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -670,84 +669,11 @@ This Matlab function is accessible <a href="../src/identifyPlant.m">here</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd0e3a86" class="outline-3">
|
||||
<h3 id="orgd0e3a86"><span class="section-number-3">1.6</span> runSimulation</h3>
|
||||
<div id="outline-container-org442df30" class="outline-3">
|
||||
<h3 id="org442df30"><span class="section-number-3">1.6</span> Inverse Kinematics of the Hexapod</h3>
|
||||
<div class="outline-text-3" id="text-1-6">
|
||||
<p>
|
||||
<a id="orgc58251f"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This Matlab function is accessible <a href="../src/runSimulation.m">here</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[]</span></span> = <span class="org-function-name">runSimulation</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">sys_name</span>, <span class="org-variable-name">sys_mass</span>, <span class="org-variable-name">ctrl_type</span>, <span class="org-variable-name">act_damp</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Load the controller and save it for the simulation</span></span>
|
||||
<span class="org-keyword">if</span> strcmp<span class="org-rainbow-delimiters-depth-1">(</span>ctrl_type, <span class="org-string">'cl'</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">&&</span> strcmp<span class="org-rainbow-delimiters-depth-1">(</span>act_damp, <span class="org-string">'none'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
K_obj = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/K_fb.mat'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
K = K_obj.<span class="org-rainbow-delimiters-depth-1">(</span>sprintf<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">'K_%s_%s'</span>, sys_mass, sys_name)); <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
save<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span><span class="org-rainbow-delimiters-depth-3">)</span>;
|
||||
<span class="org-keyword">elseif</span> strcmp<span class="org-rainbow-delimiters-depth-3">(</span>ctrl_type, <span class="org-string">'cl'</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-type">&&</span> strcmp<span class="org-rainbow-delimiters-depth-3">(</span>act_damp, <span class="org-string">'iff'</span><span class="org-rainbow-delimiters-depth-3">)</span>
|
||||
K_obj = load<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">'./mat/K_fb_iff.mat'</span><span class="org-rainbow-delimiters-depth-3">)</span>;
|
||||
K = K_obj.<span class="org-rainbow-delimiters-depth-3">(</span>sprintf<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">'K_%s_%s_iff'</span>, sys_mass, sys_name)); <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
save<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span><span class="org-rainbow-delimiters-depth-5">)</span>;
|
||||
<span class="org-keyword">elseif</span> strcmp<span class="org-rainbow-delimiters-depth-5">(</span>ctrl_type, <span class="org-string">'ol'</span><span class="org-rainbow-delimiters-depth-5">)</span>
|
||||
K = tf<span class="org-rainbow-delimiters-depth-5">(</span>zeros<span class="org-rainbow-delimiters-depth-6">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>; <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
save<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span><span class="org-rainbow-delimiters-depth-5">)</span>;
|
||||
<span class="org-keyword">else</span>
|
||||
error<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'ctrl_type should be cl or ol'</span><span class="org-rainbow-delimiters-depth-5">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Active Damping</span></span>
|
||||
<span class="org-keyword">if</span> strcmp<span class="org-rainbow-delimiters-depth-5">(</span>act_damp, <span class="org-string">'iff'</span><span class="org-rainbow-delimiters-depth-5">)</span>
|
||||
K_iff_crit = load<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'./mat/K_iff_crit.mat'</span><span class="org-rainbow-delimiters-depth-5">)</span>;
|
||||
K_iff = K_iff_crit.<span class="org-rainbow-delimiters-depth-5">(</span>sprintf<span class="org-rainbow-delimiters-depth-6">(</span><span class="org-string">'K_iff_%s_%s'</span>, sys_mass, sys_name)); <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
save<span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">elseif</span> strcmp<span class="org-rainbow-delimiters-depth-7">(</span>act_damp, <span class="org-string">'none'</span><span class="org-rainbow-delimiters-depth-7">)</span>
|
||||
K_iff = tf<span class="org-rainbow-delimiters-depth-7">(</span>zeros<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>; <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
save<span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%%</span></span>
|
||||
<span class="org-keyword">if</span> strcmp<span class="org-rainbow-delimiters-depth-7">(</span>sys_name, <span class="org-string">'pz'</span><span class="org-rainbow-delimiters-depth-7">)</span>
|
||||
initializeNanoHexapod<span class="org-rainbow-delimiters-depth-7">(</span>struct<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-string">'actuator'</span>, <span class="org-string">'piezo'</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">elseif</span> strcmp<span class="org-rainbow-delimiters-depth-7">(</span>sys_name, <span class="org-string">'vc'</span><span class="org-rainbow-delimiters-depth-7">)</span>
|
||||
initializeNanoHexapod<span class="org-rainbow-delimiters-depth-7">(</span>struct<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-string">'actuator'</span>, <span class="org-string">'lorentz'</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">else</span>
|
||||
error<span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">'sys_name should be pz or vc'</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
|
||||
<span class="org-keyword">if</span> strcmp<span class="org-rainbow-delimiters-depth-7">(</span>sys_mass, <span class="org-string">'light'</span><span class="org-rainbow-delimiters-depth-7">)</span>
|
||||
initializeSample<span class="org-rainbow-delimiters-depth-7">(</span>struct<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-string">'mass'</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">elseif</span> strcmp<span class="org-rainbow-delimiters-depth-7">(</span>sys_mass, <span class="org-string">'heavy'</span><span class="org-rainbow-delimiters-depth-7">)</span>
|
||||
initializeSample<span class="org-rainbow-delimiters-depth-7">(</span>struct<span class="org-rainbow-delimiters-depth-8">(</span><span class="org-string">'mass'</span>, <span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">else</span>
|
||||
error<span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">'sys_mass should be light or heavy'</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the simulation</span></span>
|
||||
<span class="org-matlab-simulink-keyword">sim</span><span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">'sim_nano_station_ctrl.slx'</span><span class="org-rainbow-delimiters-depth-7">)</span>;
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Split the Dsample matrix into vectors</span></span>
|
||||
<span class="org-rainbow-delimiters-depth-7">[</span>Dx, Dy, Dz, Rx, Ry, Rz<span class="org-rainbow-delimiters-depth-7">]</span> = matSplit<span class="org-rainbow-delimiters-depth-7">(</span>Es.Data, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-7">)</span>; <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
time = Dsample.Time; <span class="org-comment">%#</span><span class="org-comment"><span class="org-bold">ok</span></span>
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Save the result</span></span>
|
||||
filename = sprintf<span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">'sim_%s_%s_%s_%s'</span>, sys_mass, sys_name, ctrl_type, act_damp);
|
||||
save<span class="org-rainbow-delimiters-depth-8">(</span>sprintf<span class="org-rainbow-delimiters-depth-9">(</span><span class="org-string">'./mat/%s.mat'</span>, filename), ...
|
||||
<span class="org-string">'time'</span>, <span class="org-string">'Dx'</span>, <span class="org-string">'Dy'</span>, <span class="org-string">'Dz'</span>, <span class="org-string">'Rx'</span>, <span class="org-string">'Ry'</span>, <span class="org-string">'Rz'</span>, <span class="org-string">'K'</span><span class="org-rainbow-delimiters-depth-9">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org288e05d" class="outline-3">
|
||||
<h3 id="org288e05d"><span class="section-number-3">1.7</span> Inverse Kinematics of the Hexapod</h3>
|
||||
<div class="outline-text-3" id="text-1-7">
|
||||
<p>
|
||||
<a id="orgd4c4eda"></a>
|
||||
<a id="org7102666"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -779,11 +705,11 @@ This Matlab function is accessible <a href="src/inverseKinematicsHexapod.m">here
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org33a19ae" class="outline-3">
|
||||
<h3 id="org33a19ae"><span class="section-number-3">1.8</span> computeReferencePose</h3>
|
||||
<div class="outline-text-3" id="text-1-8">
|
||||
<div id="outline-container-orgce14673" class="outline-3">
|
||||
<h3 id="orgce14673"><span class="section-number-3">1.7</span> computeReferencePose</h3>
|
||||
<div class="outline-text-3" id="text-1-7">
|
||||
<p>
|
||||
<a id="org14f924b"></a>
|
||||
<a id="org11721fe"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -876,7 +802,7 @@ This Matlab function is accessible <a href="src/computeReferencePose.m">here</a>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2019-12-11 mer. 17:33</p>
|
||||
<p class="date">Created: 2019-12-12 jeu. 11:25</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@@ -407,74 +407,6 @@ This Matlab function is accessible [[file:../src/identifyPlant.m][here]].
|
||||
end
|
||||
#+end_src
|
||||
|
||||
** runSimulation
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../src/runSimulation.m
|
||||
:header-args:matlab+: :comments none :mkdirp yes :eval no
|
||||
:END:
|
||||
<<sec:runSimulation>>
|
||||
|
||||
This Matlab function is accessible [[file:../src/runSimulation.m][here]].
|
||||
|
||||
#+begin_src matlab
|
||||
function [] = runSimulation(sys_name, sys_mass, ctrl_type, act_damp)
|
||||
%% Load the controller and save it for the simulation
|
||||
if strcmp(ctrl_type, 'cl') && strcmp(act_damp, 'none')
|
||||
K_obj = load('./mat/K_fb.mat');
|
||||
K = K_obj.(sprintf('K_%s_%s', sys_mass, sys_name)); %#ok
|
||||
save('./mat/controllers.mat', 'K');
|
||||
elseif strcmp(ctrl_type, 'cl') && strcmp(act_damp, 'iff')
|
||||
K_obj = load('./mat/K_fb_iff.mat');
|
||||
K = K_obj.(sprintf('K_%s_%s_iff', sys_mass, sys_name)); %#ok
|
||||
save('./mat/controllers.mat', 'K');
|
||||
elseif strcmp(ctrl_type, 'ol')
|
||||
K = tf(zeros(6)); %#ok
|
||||
save('./mat/controllers.mat', 'K');
|
||||
else
|
||||
error('ctrl_type should be cl or ol');
|
||||
end
|
||||
|
||||
%% Active Damping
|
||||
if strcmp(act_damp, 'iff')
|
||||
K_iff_crit = load('./mat/K_iff_crit.mat');
|
||||
K_iff = K_iff_crit.(sprintf('K_iff_%s_%s', sys_mass, sys_name)); %#ok
|
||||
save('./mat/controllers.mat', 'K_iff', '-append');
|
||||
elseif strcmp(act_damp, 'none')
|
||||
K_iff = tf(zeros(6)); %#ok
|
||||
save('./mat/controllers.mat', 'K_iff', '-append');
|
||||
end
|
||||
|
||||
%%
|
||||
if strcmp(sys_name, 'pz')
|
||||
initializeNanoHexapod(struct('actuator', 'piezo'));
|
||||
elseif strcmp(sys_name, 'vc')
|
||||
initializeNanoHexapod(struct('actuator', 'lorentz'));
|
||||
else
|
||||
error('sys_name should be pz or vc');
|
||||
end
|
||||
|
||||
if strcmp(sys_mass, 'light')
|
||||
initializeSample(struct('mass', 1));
|
||||
elseif strcmp(sys_mass, 'heavy')
|
||||
initializeSample(struct('mass', 50));
|
||||
else
|
||||
error('sys_mass should be light or heavy');
|
||||
end
|
||||
|
||||
%% Run the simulation
|
||||
sim('sim_nano_station_ctrl.slx');
|
||||
|
||||
%% Split the Dsample matrix into vectors
|
||||
[Dx, Dy, Dz, Rx, Ry, Rz] = matSplit(Es.Data, 1); %#ok
|
||||
time = Dsample.Time; %#ok
|
||||
|
||||
%% Save the result
|
||||
filename = sprintf('sim_%s_%s_%s_%s', sys_mass, sys_name, ctrl_type, act_damp);
|
||||
save(sprintf('./mat/%s.mat', filename), ...
|
||||
'time', 'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz', 'K');
|
||||
end
|
||||
#+end_src
|
||||
|
||||
** Inverse Kinematics of the Hexapod
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../src/inverseKinematicsHexapod.m
|
||||
|
Reference in New Issue
Block a user