Improvements related to models where joint-actuator relationship is not one-to-one:

- Add `joint-actuatorforcerange` for clamping total actuator force at joints. Add `sensor-jointactuatorfrc` for sensing total actuator forces on a single joint.
See [documentation](https://mujoco.readthedocs.io/en/latest//modeling.html#actuator-force-clamping) for justification and use cases.
- Add simple car model to `model/`.
- Move actuation-related test models into `engine/testdata/actuation/`.

PiperOrigin-RevId: 549355941
Change-Id: I27f6c1f80426d73a2811ef5ae74684a228b2fbd1
This commit is contained in:
Yuval Tassa
2023-07-19 10:28:24 -07:00
committed by Copybara-Service
parent 7603b07a20
commit 51aa375af0
29 changed files with 453 additions and 105 deletions
+26 -23
View File
@@ -325,29 +325,30 @@ public enum mjtSensor : int{
mjSENS_ACTUATORPOS = 12,
mjSENS_ACTUATORVEL = 13,
mjSENS_ACTUATORFRC = 14,
mjSENS_BALLQUAT = 15,
mjSENS_BALLANGVEL = 16,
mjSENS_JOINTLIMITPOS = 17,
mjSENS_JOINTLIMITVEL = 18,
mjSENS_JOINTLIMITFRC = 19,
mjSENS_TENDONLIMITPOS = 20,
mjSENS_TENDONLIMITVEL = 21,
mjSENS_TENDONLIMITFRC = 22,
mjSENS_FRAMEPOS = 23,
mjSENS_FRAMEQUAT = 24,
mjSENS_FRAMEXAXIS = 25,
mjSENS_FRAMEYAXIS = 26,
mjSENS_FRAMEZAXIS = 27,
mjSENS_FRAMELINVEL = 28,
mjSENS_FRAMEANGVEL = 29,
mjSENS_FRAMELINACC = 30,
mjSENS_FRAMEANGACC = 31,
mjSENS_SUBTREECOM = 32,
mjSENS_SUBTREELINVEL = 33,
mjSENS_SUBTREEANGMOM = 34,
mjSENS_CLOCK = 35,
mjSENS_PLUGIN = 36,
mjSENS_USER = 37,
mjSENS_JOINTACTFRC = 15,
mjSENS_BALLQUAT = 16,
mjSENS_BALLANGVEL = 17,
mjSENS_JOINTLIMITPOS = 18,
mjSENS_JOINTLIMITVEL = 19,
mjSENS_JOINTLIMITFRC = 20,
mjSENS_TENDONLIMITPOS = 21,
mjSENS_TENDONLIMITVEL = 22,
mjSENS_TENDONLIMITFRC = 23,
mjSENS_FRAMEPOS = 24,
mjSENS_FRAMEQUAT = 25,
mjSENS_FRAMEXAXIS = 26,
mjSENS_FRAMEYAXIS = 27,
mjSENS_FRAMEZAXIS = 28,
mjSENS_FRAMELINVEL = 29,
mjSENS_FRAMEANGVEL = 30,
mjSENS_FRAMELINACC = 31,
mjSENS_FRAMEANGACC = 32,
mjSENS_SUBTREECOM = 33,
mjSENS_SUBTREELINVEL = 34,
mjSENS_SUBTREEANGMOM = 35,
mjSENS_CLOCK = 36,
mjSENS_PLUGIN = 37,
mjSENS_USER = 38,
}
public enum mjtStage : int{
mjSTAGE_NONE = 0,
@@ -1987,12 +1988,14 @@ public unsafe struct mjModel_ {
public int* jnt_bodyid;
public int* jnt_group;
public byte* jnt_limited;
public byte* jnt_actfrclimited;
public double* jnt_solref;
public double* jnt_solimp;
public double* jnt_pos;
public double* jnt_axis;
public double* jnt_stiffness;
public double* jnt_range;
public double* jnt_actfrcrange;
public double* jnt_margin;
public double* jnt_user;
public int* dof_bodyid;