dartsim / dart

DART: Dynamic Animation and Robotics Toolkit
http://dartsim.github.io/
BSD 2-Clause "Simplified" License
889 stars 286 forks source link

Make statefulness and properties of simulation artifacts more transparent #1089

Open mxgrey opened 6 years ago

mxgrey commented 6 years ago

With the introduction of Aspects to our dynamics objects, we've managed to get a clear handle on statefulness in our dynamics computations. However, this design pattern never made its way into simulation and constraint solving objects, so we end up with issues like #1086 . Having explicit properties may also help users to configure settings, like what was requested in #1068.

In general, these simulation classes could probably use a good deal of attention. A lot of them haven't really had much development in quite a few years now, and we have reason to believe they could be improved.

mxgrey commented 6 years ago

Adding to this, it seems I neglected a few fields in the Joint class: mConstraintimpulses, mVelocityChanges, and mImpulses all seem like they should actually belong to the Joint State, whereas they are currently just plain fields of the GenericJoint class. As a consequence, option 3 of this comment is failing to work, even though it should.

We should make a point of putting absolutely all data members of every class (that gets used in simulation) into a State, Properties, or Cache container, depending on the role of the data.