Add filterexact and actearly options to MuJoCo.

When filterexact is a new dyntype which is just like the existing `filter`, but the activation state is integrated with exact integration, instead of simple Euler integration.

When actearly is specified on a general actuator, `qfrc_actuator` is computed using the next timestep's `act` value, instead of the current value.

PiperOrigin-RevId: 554438423
Change-Id: If901e4988fa6b518d6f3097f149770665a189a4b
This commit is contained in:
Nimrod Gileadi
2023-08-07 04:49:42 -07:00
committed by Copybara-Service
parent f0f535ed04
commit 2c3297b3e7
17 changed files with 441 additions and 79 deletions
+4 -2
View File
@@ -250,8 +250,9 @@ public enum mjtDyn : int{
mjDYN_NONE = 0,
mjDYN_INTEGRATOR = 1,
mjDYN_FILTER = 2,
mjDYN_MUSCLE = 3,
mjDYN_USER = 4,
mjDYN_FILTEREXACT = 3,
mjDYN_MUSCLE = 4,
mjDYN_USER = 5,
}
public enum mjtGain : int{
mjGAIN_FIXED = 0,
@@ -2184,6 +2185,7 @@ public unsafe struct mjModel_ {
public double* actuator_dynprm;
public double* actuator_gainprm;
public double* actuator_biasprm;
public byte* actuator_actearly;
public double* actuator_ctrlrange;
public double* actuator_forcerange;
public double* actuator_actrange;