Add timeconst attribute to position actuator.
PiperOrigin-RevId: 635018979 Change-Id: I919573f4241ecb4a4c61c3b8b6641b31aa79eca4
This commit is contained in:
committed by
Copybara-Service
parent
875823ba96
commit
727893f0f2
@@ -177,9 +177,8 @@ const char* MJCF[nMJCF][mjXATTRNUM] = {
|
||||
"dyntype", "gaintype", "biastype", "dynprm", "gainprm", "biasprm", "actearly"},
|
||||
{"motor", "?", "8", "ctrllimited", "forcelimited", "ctrlrange", "forcerange",
|
||||
"gear", "cranklength", "user", "group"},
|
||||
{"position", "?", "11", "ctrllimited", "forcelimited", "ctrlrange", "inheritrange",
|
||||
"forcerange", "gear", "cranklength", "user", "group",
|
||||
"kp", "kv"},
|
||||
{"position", "?", "12", "ctrllimited", "forcelimited", "ctrlrange", "inheritrange",
|
||||
"forcerange", "gear", "cranklength", "user", "group", "kp", "kv", "timeconst"},
|
||||
{"velocity", "?", "9", "ctrllimited", "forcelimited", "ctrlrange", "forcerange",
|
||||
"gear", "cranklength", "user", "group",
|
||||
"kv"},
|
||||
@@ -390,11 +389,11 @@ const char* MJCF[nMJCF][mjXATTRNUM] = {
|
||||
"ctrllimited", "forcelimited", "ctrlrange", "forcerange",
|
||||
"lengthrange", "gear", "cranklength", "user",
|
||||
"joint", "jointinparent", "tendon", "slidersite", "cranksite", "site", "refsite"},
|
||||
{"position", "*", "21", "name", "class", "group",
|
||||
{"position", "*", "22", "name", "class", "group",
|
||||
"ctrllimited", "forcelimited", "ctrlrange", "inheritrange", "forcerange",
|
||||
"lengthrange", "gear", "cranklength", "user",
|
||||
"joint", "jointinparent", "tendon", "slidersite", "cranksite", "site", "refsite",
|
||||
"kp", "kv"},
|
||||
"kp", "kv", "timeconst"},
|
||||
{"velocity", "*", "19", "name", "class", "group",
|
||||
"ctrllimited", "forcelimited", "ctrlrange", "forcerange",
|
||||
"lengthrange", "gear", "cranklength", "user",
|
||||
@@ -2094,6 +2093,12 @@ void mjXReader::OneActuator(XMLElement* elem, mjsActuator* pact) {
|
||||
pact->biasprm[2] *= -1;
|
||||
}
|
||||
|
||||
if (ReadAttr(elem, "timeconst", 1, pact->dynprm, text)) {
|
||||
if (pact->dynprm[0] < 0)
|
||||
throw mjXError(elem, "timeconst cannot be negative");
|
||||
pact->dyntype = pact->dynprm[0] ? mjDYN_FILTEREXACT : mjDYN_NONE;
|
||||
}
|
||||
|
||||
ReadAttr(elem, "inheritrange", 1, &pact->inheritrange, text);
|
||||
if (pact->inheritrange > 0) {
|
||||
if (type == "position") {
|
||||
|
||||
Reference in New Issue
Block a user