Closed RussTedrake closed 5 years ago
- He was declaring the controller as
direct_feedthrough = False
... which meant thatVectorSystem
was not writing the input values toinp
. This is reasonable behavior, but I can see that it was very confusing (took me a few minutes and some printfs to realize it, too). Is there anything we can do to make that better?
I can't think of anything in the code that we could do, given the current mnemonics of using virtual overrides. That leaves us with just documentation, but it already says The @p input will be empty (zero-sized) when this System is declared to be non-direct-feedthrough.
. We could add that disclaimer to the constructor also, perhaps (as a caveat on the the direct_feedthrough
parameter documentation)?
- The real problem was that my commit #11472 ... direct feedthrough detection seems to have failed ... I think that the symbolic deduction should have gotten this one correct.
The reason symbolic sparsity did not provide an answer is that the Value<bool> left_stance
state variable of CompassGait
causes SystemSymbolicInspector to entirely give up.
From a student
It turns out that a few things were wrong: 1) he was declaring the controller as direct_feedthrough false... which meant that VectorSystem was not writing the input values to inp. This is reasonable behavior, but i can see that it was very confusing (took me a few minutes and some printfs to realize it, too). Is there anything we can do to make that better? 2) the real problem was that my commit https://github.com/RobotLocomotion/drake/pull/11472 -- which added an input to the compass gait -- the automatic direct feedthrough detection seems to have failed. I will add the proper dependency ticket now, but i think that the symbolic deduction should have gotten this one correct.