Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Redesign integrators to integrate both dynamics and costs #54

Open
ManifoldFR opened this issue Mar 16, 2023 · 0 comments
Open

RFC: Redesign integrators to integrate both dynamics and costs #54

ManifoldFR opened this issue Mar 16, 2023 · 0 comments
Labels

Comments

@ManifoldFR
Copy link
Member

ManifoldFR commented Mar 16, 2023

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).

https://github.com/Simple-Robotics/proxddp/blob/daa1efe9dc2da2de751578a12968501cc742432a/include/proxddp/core/stage-model.hpp#L16-L24

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?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant