8000 Update documentation & contributor list by FreyJo · Pull Request #1423 · acados/acados · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Update documentation & contributor list #1423

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

Merged
merged 4 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CONTRIBUTORS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ acados contributor list:
- Benjamin Michaud
- Daniel Geweth (Robert Bosch GmbH)
- Andrea Ghezzi (University Freiburg)
- Josip Kir Hromatko
- David Kiessling (KU Leuven)
- Greg Horn
- Jacob Grunnet
- Leonardo Cecchin (Robert Bosch GmbH)
Expand All @@ -36,6 +38,19 @@ acados contributor list:
- Severin Hänggi (ETH Zürich)
- Harald Schäfer (comma.ai)
- Sourish Pramanick
- Akash John Subash
- Franek Stark
- Dirk Reinhardt
- Henrik Hose
- Ian McInerney
- Jan Zwiener
- Rudolf Reiter (University Freiburg)
- Mohammed Hababeh
8000 - Alexander Sherikov
- Ajinkya Krishnakumar
- Federico Pizarro Bejarano
- Anton Pozharskiy (University Freiburg)
- Silvio Traversaro
- Adeeb Shihadeh (comma.ai)
- Martin Koch
- Miralem Saljanin (Uni Stuttgart)
Expand Down
22 changes: 14 additions & 8 deletions docs/list_of_projects/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,33 @@
# Other Projects that feature `acados`

## Software interfaced with `acados`
- [Rockit (Rapid Optimal Control kit)](https://gitlab.kuleuven.be/meco-software/rockit)
is a software framework to quickly prototype optimal control problems.
Notably, the software allows free end-time problems and multi-stage optimal problems.
The software is currently focused on direct methods and relies heavily on `CasADi`.
`acados` is interfaced as a `Rockit` solver by building on top of the Python interface of `acados`.

- [TuneMPC - a Python package for economic tuning of nonlinear model predictive control (NMPC) problems.](https://github.com/jdeschut/tunempc/)

- [leap-c (Learning Predictive Control)](https://github.com/leap-c/leap-c)

- [openpilot](https://github 10000 .com/commaai/openpilot/)
is an open source driver assistance system.
[It has over 150 supported car makes and models.](https://github.com/commaai/openpilot/blob/master/docs/CARS.md)
`acados` is used within openpilot for lateral and longitudinal MPC.
It uses the `Cython` wrapper to the `acados` OCP solver in its software stack.

- [Rockit (Rapid Optimal Control kit)](https://gitlab.kuleuven.be/meco-software/rockit)
is a software framework to quickly prototype optimal control problems.
Notably, the software allows free end-time problems and multi-stage optimal problems.
The software is currently focused on direct methods and relies heavily on `CasADi`.
`acados` is interfaced as a `Rockit` solver by building on top of the Python interface of `acados`.
- [COFLEX - COntrol scheme for large and FLEXible wind turbines](https://github.com/TUDelft-DataDrivenControl/COFLEX)

- [TuneMPC - a Python package for economic tuning of nonlinear model predictive control (NMPC) problems.](https://github.com/jdeschut/tunempc/)
- [bioptim - a Python library for optimal control in biomechanics.](https://github.com/pyomeca/bioptim)

- [acados-STM32 - acados Nonlinear MPC example (inverted pendulum control) using HPIPM on STM32H7 device (Cortex-M7 @ 400 MHz)](https://github.com/mindThomas/acados-STM32)

- [OpenOCL](https://github.com/OpenOCL/OpenOCL)
is an open-source Matlab toolbox for modeling and solving optimal control problems.
It can use `CasADi` with IPOPT as a solver.
It also provides a higher level interface to `acados`, which is based on the Matlab interface of `acados`.

- [bioptim - a Python library for optimal control in biomechanics.](https://github.com/pyomeca/bioptim)

## Papers featuring `acados`
### with embedded deployment
<!-- in collaboration with syscop -->
Expand All @@ -43,6 +48,7 @@ It also provides a higher level interface to `acados`, which is based on the Mat

- [Real-Time Neural MPC: Deep Learning Model Predictive Control for Quadrotors and Agile Robotic Platforms](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=10049101)

- [Agile perching maneuvers in birds and morphing-wing drones](https://www.nature.com/articles/s41467-024-52369-4)

### other
- [Contraction Properties of the Advanced Step Real-Time Iteration for NMPC — IFAC World Congress 2020](https://cdn.syscop.de/publications/Nurkanovic2020b.pdf)
Expand Down
9 changes: 9 additions & 0 deletions docs/python_interface/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,15 @@ The cython based wrapper is called [`AcadosOcpSolverCython`](#acados_template.ac
:exclude-members:
```

### OCP iterate classes
``` eval_rst
.. automodule:: acados_template.acados_ocp_iterate
:members:
:private-members:
:exclude-members:
```



### `AcadosModel`
``` eval_rst
Expand Down
14 changes: 14 additions & 0 deletions interfaces/acados_template/acados_template/acados_ocp_iterate.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@

@dataclass
class AcadosOcpFlattenedIterate:
"""
This class is used to store the primal-dual iterate of an optimal control problem in a flattened form.
This allows faster interactions with the solver.
"""
x: np.ndarray
u: np.ndarray
z: np.ndarray
Expand All @@ -47,6 +51,10 @@ class AcadosOcpFlattenedIterate:

@dataclass
class AcadosOcpFlattenedBatchIterate:
"""
Similar to :py:class:`~acados_template.acados_ocp.AcadosOcpFlattenedIterate` but with an additional field N_batch.
The fields x, u, z, sl, su, pi, lam are of shape (N_batch, nx_total), (N_batch, nu_total), etc.
"""
x: np.ndarray # shape (N_batch, nx_total)
u: np.ndarray # shape (N_batch, nu_total)
z: np.ndarray
Expand All @@ -59,6 +67,9 @@ class AcadosOcpFlattenedBatchIterate:

@dataclass
class AcadosOcpIterate:
"""
This class is used to store the primal-dual iterate of an optimal control problem.
"""

x_traj: List[np.ndarray]
u_traj: List[np.ndarray]
Expand All @@ -81,6 +92,9 @@ def flatten(self) -> AcadosOcpFlattenedIterate:

@dataclass
class AcadosOcpIterates:
"""
This class is used to store a list of :py:class:`~acados_template.acados_ocp.AcadosOcpIterate` objects.
"""

iterate_list: List[AcadosOcpIterate]
__iterate_fields = ["x", "u", "z", "sl", "su", "pi", "lam"]
Expand Down
Loading
0