Much overdue, given the poor documentation (and poor code from yours truly). This will lean heavily on newly pushed #155 and some pending changes in #157 . Before I jump in, I want to get feedback on the external API (the internal-use functions, all currently marked public, will also be overhauled). For @yangwill and @yminchen who have used it, what would you like to see changed? The current constructor is
HybridDircon(plant, vec<n_dt>, vec<min_dt>, vec<max dt>, vec<constraints>, vec<options>)
options = (constraint scaling, relative constraint, start/end type, force regularization)
- First off, I'd suggest replacing
min/max_dt with min/max_T (using total time of a mode instead of dt time). It's more natural to think that way.
- Second, all those vectors need to go. One vector of a
DirconMode struct which captures everything.
DirconMode:
KinematicEvaluatorSet
num_dt
min_T
max_T
is_relative vector
start/end type
constraint scaling
force regularization
And then Dircon (no need for the "Hybrid" bit) can take either a single DirconMode or a vector of modes.
How does this look? Are there methods you'd like to see in an API? Features that would help debug? Get your requests in now!