Runtime disabling of actuators according to group.
Added `option-actuatorgroupdisable` attribute and associated `mjOption.disableactuator` integer bitfield, used to disable sets of actuators at runtime according to their group. - The first 6 actuator groups are toggleable in the `simulate` viewer. - Minor refactor and cleanup of actuator documentation. https://youtu.be/H9qG9Zf2W44 Fixes #1092. PiperOrigin-RevId: 578335600 Change-Id: I4cf663b90ea768e4380acfa2fe3b8c15c7cbb568
This commit is contained in:
committed by
Copybara-Service
parent
45878b7eef
commit
893c404230
@@ -909,6 +909,16 @@ void mjXWriter::Option(XMLElement* root) {
|
||||
WriteAttrInt(section, "sdf_iterations", model->option.sdf_iterations, opt.sdf_iterations);
|
||||
WriteAttrInt(section, "sdf_initpoints", model->option.sdf_initpoints, opt.sdf_initpoints);
|
||||
|
||||
// actuator group disable
|
||||
int disabled_groups[31];
|
||||
int ndisabled = 0;
|
||||
for (int i = 0; i < 31; ++i) {
|
||||
if (model->option.disableactuator & (1 << i)) {
|
||||
disabled_groups[ndisabled++] = i;
|
||||
}
|
||||
}
|
||||
WriteAttr(section, "actuatorgroupdisable", ndisabled, disabled_groups);
|
||||
|
||||
// write disable/enable flags if any of them are set; invert while writing
|
||||
if (model->option.disableflags || model->option.enableflags) {
|
||||
XMLElement* sub = InsertEnd(section, "flag");
|
||||
|
||||
Reference in New Issue
Block a user