Correct DC motor derivative calculation and enforce actearly.

PiperOrigin-RevId: 898983657
Change-Id: I008529eacf3e400696d26bd3a52a4cf4c1c12225
This commit is contained in:
Yuval Tassa
2026-04-13 07:18:28 -07:00
committed by Copybara-Service
parent bc83c24a4d
commit c004d144d1
6 changed files with 181 additions and 9 deletions
+26
View File
@@ -16,6 +16,18 @@
<joint name="joint4"/>
<geom size=".03"/>
</body>
<body name="motor5" pos="0 0.5 0">
<joint name="slide5" type="slide" axis="0 0 1"/>
<geom size=".03"/>
</body>
<body name="motor6" pos="0 0.6 0">
<joint name="slide6" type="slide" axis="0 0 1"/>
<geom size=".03"/>
</body>
<body name="motor7" pos="0 0.7 0">
<joint name="slide7" type="slide" axis="0 0 1"/>
<geom size=".03"/>
</body>
</worldbody>
<actuator>
@@ -31,5 +43,19 @@
<!-- DC motor with LuGre friction (sigma1 micro-damping) -->
<dcmotor name="dc_lugre" joint="joint4" motorconst="0.05" resistance="2.0"
damping="0.001" lugre="1e4 100 0.005 0.008 0.1"/>
<!-- Stateful current, voltage mode (back-EMF only through act_dot) -->
<dcmotor name="dc_stateful_v" joint="slide5"
motorconst="2.0" resistance="0.5" inductance="0 0.001"/>
<!-- Stateful current, position mode (controller + back-EMF through act_dot) -->
<dcmotor name="dc_stateful_pos" joint="slide6"
motorconst="1.0" resistance="1.0" inductance="0 0.001"
input="position" controller="10 0 5"/>
<!-- Stateful current, velocity mode -->
<dcmotor name="dc_stateful_vel" joint="slide7"
motorconst="1.0" resistance="1.0" inductance="0 0.001"
input="velocity" controller="5 0"/>
</actuator>
</mujoco>