control-toolbox / control-toolbox/CTSolvers.jl

[Roadmap] CTIndirect — system to define shooting equations and indirect solvers

Open
#167 0 comments 0 reactions 1 assignee Claimed by @ocots View on GitHub
roadmap
Dominant language
Julia
Stars
2
Forks
0
Avg merge
6h 21m
Merged PRs (30d)
7

Description

## Objective

Create a new package (CTIndirect) that provides a system to define shooting equations in a simpler way than manually writing them. The associated solvers (Newton, BVP solvers, etc.) will live in CTSolvers.jl.

## Motivation

Currently, indirect shooting requires manually writing the shooting function, which is tedious and error-prone. A dedicated system would greatly simplify the workflow. The following examples illustrate the current approach and motivate this work:

- [Goddard — Indirect shooting](https://control-toolbox.org/Tutorials.jl/stable/tutorial-goddard.html#Indirect-shooting)
- [Double integrator (energy) — Indirect method](https://control-toolbox.org/OptimalControl.jl/stable/example-double-integrator-energy.html#Indirect-method)
- [Double integrator (time) — Indirect method](https://control-toolbox.org/OptimalControl.jl/stable/example-double-integrator-time.html#Indirect-method)
- [Control free — Indirect method](https://control-toolbox.org/OptimalControl.jl/stable/example-control-free.html#Indirect-method)
- [Control and variable — Indirect](https://control-toolbox.org/OptimalControl.jl/stable/example-control-and-variable.html#example-control-and-variable-indirect-1)
- [Singular control — Indirect shooting](https://control-toolbox.org/OptimalControl.jl/stable/example-singular-control.html#Indirect-shooting-method)
- [State constraint — Indirect method](https://control-toolbox.org/OptimalControl.jl/stable/example-state-constraint.html#Indirect-method:-constrained-case)

## Next steps

A brainstorming is needed to decide:
- What to create in CTIndirect vs CTSolvers
- Which solvers to implement (Newton, BVP solvers, etc.)
- How to interface with CTFlows and CTLie

## References

- [Design document](https://github.com/control-toolbox/benchmark-paper/blob/add-vanderpol-problem/code/problems-studies/indirect-shooting-design.md)
- [CTSolvers.jl](https://github.com/control-toolbox/CTSolvers.jl)
- [Roadmap comment](https://github.com/orgs/control-toolbox/discussions/68#discussioncomment-17584843)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.