-
Notifications
You must be signed in to change notification settings - Fork 40
Description
After discussing with @jcarpent, we concluded that we should have integrator classes integrate both dynamics and costs - the IntegratorRK2 would then apply the Runge-Kutta rule to both the continuous-time dynamics and the cost function itself. Cost functions would not need to be scaled by dt when added to a stage. This is closer to the behaviour of IntegratedActionModel classes in Crocoddyl, which inherit from ActionModelAbstract.
This change would have integrators inherit from the StageModelTpl template class which describes discrete-time stages for the transcribed OCP. Constructors for integrators would then take the continuous-time dynamics, a cost function, and integrator parameters - we won't be adding a class similar to crocoddyl's DifferentialActionModelAbstract which makes the API cumbersome.
We would also not replace the terminal cost or constraints by a full stage with timestep dt=1 (which is what crocoddyl does).
Some questions:
- how to handle additional constraints (e.g. control bounds, waypoints) in an integrator ? Should constraints that apply over a shooting interval be "integrated" in some way? How to mark that a constraint is only "punctual", i.e. only applies at the shooting node itself?