Skip to content

Commit 5b8d264

Browse files
1 parent 55eadf3 commit 5b8d264

5 files changed

+17
-14
lines changed

doxygen_cxx/classdrake_1_1systems_1_1controllers_1_1_inverse_dynamics.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@
178178
</pre><p> where <code>M(q)</code> is the mass matrix, <code>C(q, v)v</code> is the bias term containing Coriolis and gyroscopic effects, <code>τ_g(q)</code> is the vector of generalized forces due to gravity and <code>τ_app</code> contains applied forces from force elements added to the multibody model (this can include damping, springs, etc. See MultibodyPlant::CalcForceElementsContribution()).</p>
179179
<p>The system also provides a pure gravity compensation mode via an option in the constructor. In this case, the output is simply </p><pre>
180180
τ_id = -τ_g(q).
181-
</pre><dl class="section note"><dt>Note</dt><dd>As an alternative to adding a controller to your diagram, gravity compensation can be modeled by disabling gravity for a given model instance, see MultibodyPlant::set_gravity_enabled().</dd></dl>
181+
</pre><dl class="section note"><dt>Note</dt><dd>As an alternative to adding a controller to your diagram, gravity compensation can be modeled by disabling gravity for a given model instance, see MultibodyPlant::set_gravity_enabled(), unless the gravity compensation needs to be accounted for when evaluating effort limits.</dd></dl>
182182
<p><a class="el" href="classdrake_1_1systems_1_1controllers_1_1_inverse_dynamics_controller.html" title="A state feedback controller that uses a PidController to generate desired accelerations,...">InverseDynamicsController</a> uses a PID controller to generate desired acceleration and uses this class to compute generalized forces. Use this class directly if desired acceleration is computed differently.</p>
183183
<table align="center" cellpadding="0" cellspacing="0">
184184
<tr align="center">

doxygen_cxx/classdrake_1_1systems_1_1controllers_1_1_inverse_dynamics_controller.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@
193193
</table>
194194
</td></tr>
195195
</table>
196-
<dl class="section note"><dt>Note</dt><dd>As an alternative to adding a separate controller system to your diagram, you can model gravity compensation with PD controllers using MultibodyPlant APIs. Refer to MultibodyPlant::set_gravity_enabled() as an alternative to modeling gravity compensation. To model PD controlled actuators, refer to <a class="el" href="classdrake_1_1multibody_1_1_multibody_plant.html#mbp_actuation">Actuation</a>.</dd></dl>
197196
<p>The desired acceleration port shown in <span style="color:gray">gray</span> may be absent, depending on the arguments passed to the constructor.</p>
198197
<p>Note that this class assumes the robot is fully actuated, its position and velocity have the same dimension, and it does not have a floating base. If violated, the program will abort. This controller was not designed for closed-loop systems: the controller accounts for neither constraint forces nor actuator forces applied at loop constraints. Use on such systems is not recommended.</p>
199198
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classdrake_1_1systems_1_1controllers_1_1_inverse_dynamics.html" title="Solves inverse dynamics with no consideration for joint actuator force limits.">InverseDynamics</a> for an accounting of <a class="el" href="namespacedrake.html#adcc2d90ce6051e150effadd72fac548c" title="Checks truth for all elements in matrix m.">all</a> forces incorporated into the inverse dynamics computation.</dd></dl>

doxygen_cxx/classdrake_1_1systems_1_1controllers_1_1_joint_stiffness_controller.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
</td></tr>
194194
</table>
195195
<p>Note that the joint impedance control as implemented on Kuka's iiwa and Franka' Panda is best modeled as a stiffness controller (unless one were to model the actual elastic joints and rotor-inertia shaping). See <a href="https://manipulation.csail.mit.edu/force.html">https://manipulation.csail.mit.edu/force.html</a> for more details.</p>
196+
<dl class="section note"><dt>Note</dt><dd>As an alternative to adding a separate controller system to your diagram, you can model a JointStiffness controller using MultibodyPlant APIs. Refer to MultibodyPlant::set_gravity_enabled() as an alternative to modeling gravity compensation (unless the gravity compensation terms need to be accounted for when computing effort limits). To model PD controlled actuators, refer to <a class="el" href="classdrake_1_1multibody_1_1_multibody_plant.html#mbp_actuation">Actuation</a>.</dd></dl>
196197
<dl class="tparams"><dt>Template Parameters</dt><dd>
197198
<table class="tparams">
198199
<tr><td class="paramname">T</td><td>The scalar type, which must be one of the <a class="el" href="group__default__scalars.html">default scalars</a>. </td></tr>

pydrake/pydrake.systems.controllers.html

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,9 @@
551551
<p class="admonition-title">Note</p>
552552
<p>As an alternative to adding a controller to your diagram, gravity
553553
compensation can be modeled by disabling gravity for a given model
554-
instance, see MultibodyPlant::set_gravity_enabled().</p>
554+
instance, see MultibodyPlant::set_gravity_enabled(), unless the
555+
gravity compensation needs to be accounted for when evaluating
556+
effort limits.</p>
555557
</div>
556558
<p>InverseDynamicsController uses a PID controller to generate desired
557559
acceleration and uses this class to compute generalized forces. Use
@@ -672,16 +674,7 @@
672674
matrix. The subscript <code class="docutils literal notranslate"><span class="pre">_d</span></code> indicates desired values, and
673675
<code class="docutils literal notranslate"><span class="pre">vd_command</span></code> indicates the acceleration command (which includes the
674676
stabilization terms) passed to the inverse dynamics computation.</p>
675-
<table align=center cellpadding=0 cellspacing=0><tr align=center><td style="vertical-align:middle"><table cellspacing=0 cellpadding=0><tr><td align=right style="padding:5px 0px 5px 0px">estimated_state&rarr;</td></tr><tr><td align=right style="padding:5px 0px 5px 0px">desired_state&rarr;</td></tr><tr><td align=right style="padding:5px 0px 5px 0px"><span style="color:gray">desired_acceleration</span>&rarr;</td></tr></table></td><td align=center style="border:solid;padding-left:20px;padding-right:20px;vertical-align:middle" bgcolor=#F0F0F0>InverseDynamicsController</td><td style="vertical-align:middle"><table cellspacing=0 cellpadding=0><tr><td align=left style="padding:5px 0px 5px 0px">&rarr; actuation</td></tr><tr><td align=left style="padding:5px 0px 5px 0px">&rarr; generalized_force</td></tr></table></td></tr></table><div class="admonition note">
676-
<p class="admonition-title">Note</p>
677-
<p>As an alternative to adding a separate controller system to your
678-
diagram, you can model gravity compensation with PD controllers
679-
using MultibodyPlant APIs. Refer to
680-
MultibodyPlant::set_gravity_enabled() as an alternative to
681-
modeling gravity compensation. To model PD controlled actuators,
682-
refer to mbp_actuation “Actuation”.</p>
683-
</div>
684-
<p>The desired acceleration port shown in &lt;span
677+
<table align=center cellpadding=0 cellspacing=0><tr align=center><td style="vertical-align:middle"><table cellspacing=0 cellpadding=0><tr><td align=right style="padding:5px 0px 5px 0px">estimated_state&rarr;</td></tr><tr><td align=right style="padding:5px 0px 5px 0px">desired_state&rarr;</td></tr><tr><td align=right style="padding:5px 0px 5px 0px"><span style="color:gray">desired_acceleration</span>&rarr;</td></tr></table></td><td align=center style="border:solid;padding-left:20px;padding-right:20px;vertical-align:middle" bgcolor=#F0F0F0>InverseDynamicsController</td><td style="vertical-align:middle"><table cellspacing=0 cellpadding=0><tr><td align=left style="padding:5px 0px 5px 0px">&rarr; actuation</td></tr><tr><td align=left style="padding:5px 0px 5px 0px">&rarr; generalized_force</td></tr></table></td></tr></table><p>The desired acceleration port shown in &lt;span
685678
style=”color:gray”&gt;gray&lt;/span&gt; may be absent, depending on the
686679
arguments passed to the constructor.</p>
687680
<p>Note that this class assumes the robot is fully actuated, its position
@@ -816,6 +809,16 @@
816809
one were to model the actual elastic joints and rotor-inertia
817810
shaping). See <a class="reference external" href="https://manipulation.csail.mit.edu/force.html">https://manipulation.csail.mit.edu/force.html</a> for more
818811
details.</p>
812+
<div class="admonition note">
813+
<p class="admonition-title">Note</p>
814+
<p>As an alternative to adding a separate controller system to your
815+
diagram, you can model a JointStiffness controller using
816+
MultibodyPlant APIs. Refer to
817+
MultibodyPlant::set_gravity_enabled() as an alternative to
818+
modeling gravity compensation (unless the gravity compensation
819+
terms need to be accounted for when computing effort limits). To
820+
model PD controlled actuators, refer to mbp_actuation “Actuation”.</p>
821+
</div>
819822
<dl class="py method">
820823
<dt class="sig sig-object py" id="pydrake.systems.controllers.JointStiffnessController.__init__">
821824
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">self</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pydrake.systems.controllers.JointStiffnessController" title="pydrake.systems.controllers.JointStiffnessController"><span class="pre">pydrake.systems.controllers.JointStiffnessController</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">plant</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pydrake.multibody.plant.html#pydrake.multibody.plant.MultibodyPlant" title="pydrake.multibody.plant.MultibodyPlant"><span class="pre">pydrake.multibody.plant.MultibodyPlant</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">kp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">numpy.ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">numpy.float64</span><span class="p"><span class="pre">[</span></span><span class="pre">m</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kd</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">numpy.ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">numpy.float64</span><span class="p"><span class="pre">[</span></span><span class="pre">m</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#pydrake.systems.controllers.JointStiffnessController.__init__" title="Permalink to this definition"></a></dt>

pydrake/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)