Track separate kv property for position actuators

This commit is contained in:
Bálint Hodossy
2024-05-27 11:48:11 +01:00
parent 7ca8a629a2
commit adbbcc4ff5
2 changed files with 9 additions and 1 deletions
@@ -35,6 +35,7 @@ namespace Mujoco {
private SerializedProperty _biasPrm; private SerializedProperty _biasPrm;
// Position actuator properties. // Position actuator properties.
private SerializedProperty _kp; private SerializedProperty _kp;
private SerializedProperty _kvp;
// Velocity actuator properties. // Velocity actuator properties.
private SerializedProperty _kv; private SerializedProperty _kv;
// Cylinder actuator properties. // Cylinder actuator properties.
@@ -70,6 +71,7 @@ namespace Mujoco {
_biasPrm = customParams.FindPropertyRelative("BiasPrm"); _biasPrm = customParams.FindPropertyRelative("BiasPrm");
// Position actuator properties. // Position actuator properties.
_kp = customParams.FindPropertyRelative("Kp"); _kp = customParams.FindPropertyRelative("Kp");
_kvp = customParams.FindPropertyRelative("Kvp");
// Velocity actuator properties. // Velocity actuator properties.
_kv = customParams.FindPropertyRelative("Kv"); _kv = customParams.FindPropertyRelative("Kv");
// Cylinder actuator properties. // Cylinder actuator properties.
@@ -166,6 +168,7 @@ namespace Mujoco {
private void EditPositionParams(MjActuator.CustomParameters parameters) { private void EditPositionParams(MjActuator.CustomParameters parameters) {
EditorGUILayout.PropertyField(_kp); EditorGUILayout.PropertyField(_kp);
EditorGUILayout.PropertyField(_kvp, new GUIContent("Kv"));
} }
private void EditVelocityParams(MjActuator.CustomParameters parameters) { private void EditVelocityParams(MjActuator.CustomParameters parameters) {
+6 -1
View File
@@ -164,11 +164,16 @@ public class MjActuator : MjComponent {
[AbsoluteValue] [AbsoluteValue]
public float Kp = 1.0f; public float Kp = 1.0f;
public void PositionToMjcf(XmlElement mjcf) { [AbsoluteValue]
public float Kvp;
public void PositionToMjcf(XmlElement mjcf) {
mjcf.SetAttribute("kp", MjEngineTool.MakeLocaleInvariant($"{Math.Abs(Kp)}")); mjcf.SetAttribute("kp", MjEngineTool.MakeLocaleInvariant($"{Math.Abs(Kp)}"));
mjcf.SetAttribute("kv", MjEngineTool.MakeLocaleInvariant($"{Math.Abs(Kvp)}"));
} }
public void PositionFromMjcf(XmlElement mjcf) { public void PositionFromMjcf(XmlElement mjcf) {
Kp = mjcf.GetFloatAttribute("kp", defaultValue: 1.0f); Kp = mjcf.GetFloatAttribute("kp", defaultValue: 1.0f);
Kvp = mjcf.GetFloatAttribute("kv", defaultValue: 0f);
} }
//// Velocity actuator parameters. //// Velocity actuator parameters.