opensim-org / opensim-core

SimTK OpenSim C++ libraries and command-line applications, and Java/Python wrapping.
https://opensim.stanford.edu
Apache License 2.0
783 stars 316 forks source link

Replace `Controller`'s actuator set with a list `Socket` #3675

Closed nickbianco closed 7 months ago

nickbianco commented 8 months ago

Contoller currently manages a list of actuators using Set<Acutator>, which has several drawbacks including the need for custom connection code and a custom copy assignment operator to avoid memory leaks.

In particular, the custom copy assignment operator is blocking the usage of Sockets/Inputs for all derived classes in Controller. This change is necessary to support Controllers in Moco (#3605), which will require Inputs to pass control values from the NLP solver to each controller.

This issue is pending the merge of PR #3652.