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

Removing mx_reduced by creating "biorbd wrapper" #881

Merged
merged 109 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
26b9e0b
initial thoughts
EveCharbie Jun 21, 2024
a05e823
made the changes to the biorbd_model
EveCharbie Jun 21, 2024
f24034e
just adding todos
pariterre Sep 23, 2024
c8b1752
removed some MX
EveCharbie Sep 18, 2024
ad48e26
some more
EveCharbie Sep 19, 2024
c63ca11
typos
EveCharbie Sep 19, 2024
21bc253
self.external_forces, -translational_forces, protocol
EveCharbie Sep 19, 2024
8b9cc78
fixed some tests
EveCharbie Sep 19, 2024
14020d4
JCS
EveCharbie Sep 19, 2024
f638af0
blacked
EveCharbie Sep 19, 2024
420d5d1
fixed some dynamics
EveCharbie Sep 20, 2024
55ee414
test_dynamics
EveCharbie Sep 20, 2024
7952c05
blacked
EveCharbie Sep 20, 2024
e62002c
multi_model
EveCharbie Sep 20, 2024
f36058c
fixed parameters
EveCharbie Sep 20, 2024
b1edf72
youpsi
EveCharbie Sep 20, 2024
04ac46c
blacked
EveCharbie Sep 20, 2024
c022af5
rocking those parameters!
EveCharbie Sep 21, 2024
55e8983
blacked
EveCharbie Sep 21, 2024
7eefd9b
removed .mx from optimization_variables (seems to work)
EveCharbie Sep 21, 2024
d58bf8f
time consuming time parameter --'
EveCharbie Sep 21, 2024
5e5e551
blacked
EveCharbie Sep 21, 2024
5656f86
woups
EveCharbie Sep 23, 2024
b4d7185
tests start to look good
EveCharbie Sep 23, 2024
9d7e8d3
blacked
EveCharbie Sep 23, 2024
dd18390
SOCP tests
EveCharbie Sep 23, 2024
bfdb781
completely removed mx
EveCharbie Sep 23, 2024
c78098e
blacked
EveCharbie Sep 23, 2024
f275729
ok
EveCharbie Sep 23, 2024
133dd74
made requested changes except f_ext
EveCharbie Sep 23, 2024
80cdbee
blacked
EveCharbie Sep 23, 2024
9d40d5c
Added a TODO
pariterre Sep 25, 2024
e05d6d5
translational_forces and muscles
EveCharbie Sep 26, 2024
7eae07a
consequences for being lazy ))))))))
EveCharbie Sep 26, 2024
72c6cfc
Fixed tests (few remaining)
EveCharbie Sep 27, 2024
073cdf3
blacked
EveCharbie Sep 27, 2024
7673fa0
named the in and out in Function
EveCharbie Sep 27, 2024
4e1c11a
Fixed the last tests I could
EveCharbie Sep 27, 2024
00deadf
with pariterre
EveCharbie Oct 1, 2024
ea8ffb2
Started to move towards translations
pariterre Oct 1, 2024
0fd6336
continued + removed self.translation...
EveCharbie Oct 5, 2024
c56e79c
fixed dynamics except DAE_INVERSE
EveCharbie Oct 5, 2024
8f720e4
blacked
EveCharbie Oct 5, 2024
91bc961
fixed the alg_states missing tests
EveCharbie Oct 7, 2024
07e8b6e
fixed some tests
EveCharbie Oct 7, 2024
dcb89cb
temporary commit for ipuch
EveCharbie Oct 11, 2024
7d7f7c9
fixed holonomic (@ipuch, could you please check carefully this commit?)
EveCharbie Oct 23, 2024
80a9829
first idea of an external_force interface
EveCharbie Oct 23, 2024
a7f5583
test external forces work
EveCharbie Oct 24, 2024
e49f1d5
added tests
EveCharbie Oct 24, 2024
7fd0713
blacked
EveCharbie Oct 24, 2024
113ad54
removed DAE (RigidBodyDynamics)
EveCharbie Oct 24, 2024
4ee879c
fixed external_forces in tests/examples
EveCharbie Oct 24, 2024
ef9638d
blacked
EveCharbie Oct 24, 2024
84f5287
gitignore
EveCharbie Oct 24, 2024
39c21bc
shard 1 (-acados, -vector_orientation)
EveCharbie Oct 24, 2024
e9b7afd
shard 3 (changed values because implicit)
EveCharbie Oct 24, 2024
0570dc8
shard 4 (-soft contacts)
EveCharbie Oct 24, 2024
fc2f800
shard 6 (removing explicit formulation)
EveCharbie Oct 24, 2024
02a7066
blacked
EveCharbie Oct 24, 2024
ed23461
forgot to remove implicit
EveCharbie Oct 24, 2024
1517dbe
some changes requested by ipuch
EveCharbie Oct 28, 2024
978c2d2
blacked
EveCharbie Oct 28, 2024
fb25101
Holonomic ok
EveCharbie Oct 29, 2024
d71cb9a
important typo
EveCharbie Oct 29, 2024
46ee47f
blacked
EveCharbie Oct 29, 2024
8bb744b
fixed some tests
EveCharbie Oct 29, 2024
f145d20
deg fix
EveCharbie Oct 29, 2024
687c0e2
deleted track_vector_orientation
EveCharbie Oct 29, 2024
2317196
removed commented lines
EveCharbie Oct 29, 2024
12a35d8
comment
EveCharbie Oct 29, 2024
5a3fcf5
blacked
EveCharbie Oct 29, 2024
e1ba6c6
made changes requested by pariterre
EveCharbie Oct 30, 2024
d052ac8
fixed the symbolic problem
EveCharbie Oct 30, 2024
2f42904
blacked
EveCharbie Oct 30, 2024
ac9a691
first example external_force rolls
Ipuch Oct 30, 2024
b771b59
refactor : more tests to pass
Ipuch Oct 30, 2024
d65c63a
fix: model external force set
Ipuch Oct 30, 2024
d1ab3c3
early tests changes not there yet
Ipuch Oct 30, 2024
d699a84
made changes requested by pariterre
EveCharbie Oct 30, 2024
dc3b4cc
fixed the symbolic problem
EveCharbie Oct 30, 2024
31c9e17
blacked
EveCharbie Oct 30, 2024
207d9d4
fix: multiple force
Ipuch Oct 30, 2024
36729ba
docs
Ipuch Oct 30, 2024
651f2d3
tests: failed but rolled
Ipuch Oct 30, 2024
bd2ea77
fix: segmentation faults, but rolling on a complete test
Ipuch Oct 31, 2024
9d320bc
tests : extra_test for the class itself
Ipuch Oct 31, 2024
3efdc48
retrieve the force mx otherwise, sothiing is applied.
Ipuch Oct 31, 2024
cd2ca84
test: delete test but not values
Ipuch Oct 31, 2024
cdf22eb
tests : no working yet
Ipuch Oct 31, 2024
9d51c88
fix: for sure
Ipuch Oct 31, 2024
7676f72
fix:
Ipuch Oct 31, 2024
6780f0c
clean: polish exemple
Ipuch Oct 31, 2024
7e4a91a
fix: see you tomorrow
Ipuch Oct 31, 2024
41f17b5
test together are separate does the same.
Ipuch Nov 1, 2024
2fc1928
docs and fix: point application in local
Ipuch Nov 1, 2024
d2edb7f
tests: make them all pass !
Ipuch Nov 1, 2024
0313d4a
clean and fix
Ipuch Nov 1, 2024
1d75f71
feat: marker assignement works fine
Ipuch Nov 1, 2024
5785807
refactor: force_dispatch
Ipuch Nov 1, 2024
79cfcb8
refactor: spring mass
Ipuch Nov 1, 2024
49969a3
refactor: slight displacing variable in a method
Ipuch Nov 1, 2024
9091a67
Merge branch 'removing_mx_reduced' into charbiebranch
Ipuch Nov 1, 2024
7812c0a
Auto stash before checking out "HEAD"
Ipuch Nov 1, 2024
bb1dfe7
refactor: example
Ipuch Nov 1, 2024
f429573
docs: viewer tracked markers
Ipuch Nov 5, 2024
959c700
clean: dead comment
Ipuch Nov 8, 2024
0064c2a
refactor: defects = None root dynamics
Ipuch Nov 8, 2024
1cdaf8e
refactor: -= instead of +=-
Ipuch Nov 8, 2024
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
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,6 @@ venv.bak/
# pycharm
.idea

# Personnal stuff
Misc/

# Remove symbolic links to bioptim in examples and tests folder
examples/*/biorbd_optim
examples/biorbd_optim
Expand Down
27 changes: 6 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,6 @@ As a tour guide that uses this binder, you can watch the `bioptim` workshop that
- [CostType](#enum-costtype)
- [SolutionIntegrator](#enum-solutionintegrator)
- [QuadratureRule](#enum-quadraturerule)
- [RigidBodyDynamics](#enum-rigidbodydynamics)
- [SoftContactDynamics](#enum-softcontactdynamics)
- [DefectType](#enum-defecttype)

Expand Down Expand Up @@ -1226,11 +1225,11 @@ This constraint assumes that the normal forces is positive (that is having an ad
- **TRACK_COM_VELOCITY** — Constraints the center of mass velocity toward a target. The extra parameter `axis_to_track: Axis = (Axis.X, Axis.Y, Axis.Z)` can be provided to specify the axes along which the velocity should be tracked.
- **TRACK_CONTACT_FORCES** — Tracks the non-acceleration point reaction forces toward a target.
- **TRACK_LINEAR_MOMENTUM** — Constraints the linear momentum toward a target. The extra parameter `axis_to_track: Axis = (Axis.X, Axis.Y, Axis.Z)` can be sent to specify the axes along which the momentum should be tracked.
- **TRACK_MARKER_WITH_SEGMENT_AXIS** — Tracks a marker using a segment, that is aligning an axis toward the marker. The extra parameters `marker_idx: int`, `segment_idx: int`, and `axis: Axis` must be passed to the `Constraint` constructor
- **TRACK_MARKER_WITH_SEGMENT_AXIS** — Tracks a marker using a segment, that is aligning an axis toward the marker. The extra parameters `marker_idx: int`, `segment_index: int`, and `axis: Axis` must be passed to the `Constraint` constructor
- **TRACK_MARKERS_VELOCITY** — Tracks the skin marker velocities toward a target.
- **TRACK_MARKERS** — Tracks the skin markers toward a target. The extra parameter `axis_to_track: Axis = (Axis.X, Axis.Y, Axis.Z)` can be provided to specify the axes along which the markers should be tracked.
- **TRACK_MUSCLES_CONTROL** — Tracks the muscles (part of the control variables) toward a target.
- **TRACK_SEGMENT_WITH_CUSTOM_RT** —Links a segment with an RT (for instance, an Inertial Measurement Unit). It does so by computing the homogenous transformation between the segment and the RT and then converting this to Euler angles. The extra parameters `segment_idx: int` and `rt_idx: int` must be passed to the `Constraint` constructor.
- **TRACK_SEGMENT_WITH_CUSTOM_RT** —Links a segment with an RT (for instance, an Inertial Measurement Unit). It does so by computing the homogenous transformation between the segment and the RT and then converting this to Euler angles. The extra parameters `segment_index: int` and `rt_index: int` must be passed to the `Constraint` constructor.
- **TRACK_STATE** — Tracks the state's variable toward a target.
- **TRACK_TORQUE** — Tracks the generalized forces (part of the control variables) toward a target.
- **CUSTOM** — The user should not directly send CUSTOM, but the user should pass the custom_constraint function directly. You can look at Constraint and ConstraintList sections for more information about how to define custom constraints.
Expand Down Expand Up @@ -1322,11 +1321,11 @@ Here a list of objective function with its type (Lagrange and/or Mayer) in alpha
- **SUPERIMPOSE_MARKERS** (Lagrange and Mayer) — Tracks one marker with another one. The extra parameters `first_marker_idx: int` and `second_marker_idx: int` informs which markers are to be superimposed
- **TRACK_ALL_CONTROLS (Lagrange)** — Tracks all the control variables toward a target.
- **TRACK_CONTACT_FORCES** (Lagrange) — Tracks the non-acceleration points of the reaction forces toward a target.
- **TRACK_MARKER_WITH_SEGMENT_AXIS** (Lagrange and Mayer) — Minimizes the distance between a marker and an axis of a segment, that is aligning an axis toward the marker. The extra parameters `marker_idx: int`, `segment_idx: int` and `axis: Axis` must be passed to the `Objective` constructor
- **TRACK_MARKER_WITH_SEGMENT_AXIS** (Lagrange and Mayer) — Minimizes the distance between a marker and an axis of a segment, that is aligning an axis toward the marker. The extra parameters `marker_idx: int`, `segment_index: int` and `axis: Axis` must be passed to the `Objective` constructor
- **TRACK_MARKERS_VELOCITY or TRACK_MARKERS_ACCELERATION** (Lagrange and Mayer) — Tracks the marker velocities or accelerations toward a target.
- **TRACK_MARKERS** (Lagrange and Mayer) — Tracks the skin markers towards a target. The extra parameter `axis_to_track: Axis = (Axis.X, Axis.Y, Axis.Z)` can be sent to specify the axes along which the markers should be tracked.
- **TRACK_MUSCLES_CONTROL** (Lagrange) — Tracks the muscles' controls (part of the control variables) toward a target.
- **TRACK_SEGMENT_WITH_CUSTOM_RT** (Lagrange and Mayer) — Minimizes the distance between a segment and an RT (for instance, an Inertial Measurement Unit). It does so by computing the homogenous transformation between the segment and the RT and then converting this to Euler angles. The extra parameters `segment_idx: int` and `rt_idx: int` must be passed to the `Objective` constructor.
- **TRACK_SEGMENT_WITH_CUSTOM_RT** (Lagrange and Mayer) — Minimizes the distance between a segment and an RT (for instance, an Inertial Measurement Unit). It does so by computing the homogenous transformation between the segment and the RT and then converting this to Euler angles. The extra parameters `segment_index: int` and `rt_index: int` must be passed to the `Objective` constructor.
- **TRACK_SOFT_CONTACT_FORCES** (Lagrange) — Tracks the external forces induced by soft contacts toward a target.
- **TRACK_STATE** (Lagrange and Mayer) — Tracks the state variable toward a target.
- **TRACK_TORQUE** (Lagrange — Tracks the generalized forces (part of the control variables) toward a target.
Expand Down Expand Up @@ -1746,14 +1745,6 @@ The type of integration used to integrate the cost function terms of Lagrange:
- APPROXIMATE_TRAPEZOIDAL: The integral is approximated by a trapezoidal rule using the state at the beginning of the next interval.
- TRAPEZOIDAL: The integral is approximated by a trapezoidal rule using the state at the end of the current interval.

### Enum: RigidBodyDynamics
The type of transcription of any dynamics (e.g., rigidbody_dynamics or soft_contact_dynamics):
- ODE: the dynamics is handled explicitly in the continuity constraint of the ordinary differential equation of the Direct Multiple Shooting approach.
- DAE_INVERSE_DYNAMICS: it adds an extra control *qddot* to respect inverse dynamics on nodes; this is a DAE-constrained OCP.
- DAE_FORWARD_DYNAMICS: it adds an extra control *qddot* to respect forward dynamics on nodes; this is a DAE-constrained OCP.
- DAE_INVERSE_DYNAMICS_JERK: it adds an extra control *qdddot* and an extra state *qddot* to respect inverse dynamics on nodes; this is a DAE-constrained OCP.
- DAE_FORWARD_DYNAMICS_JERK: it adds an extra control *qdddot* and an extra state *qddot* to respect forward dynamics on nodes; this is a DAE-constrained OCP.

### Enum: SoftContactDynamics
The type of transcription of any dynamics (e.g., rigidbody_dynamics or soft_contact_dynamics):
- ODE: soft contact dynamics is handled explicitly.
Expand Down Expand Up @@ -1910,9 +1901,6 @@ example, a spring) can be found at 'examples/torque_driven_ocp/spring_load.py'
`Bioptim` expects `external_forces` to be a np.ndarray [6 x n x n_shooting], where the six components are
[Mx, My, Mz, Fx, Fy, Fz], expressed at the origin of the global reference frame for each node.

### The [example_implicit_dynamics.py](./bioptim/examples/getting_started/example_implicit_dynamics.py) file
*#TODO*

### The [example_inequality_constraint.py](./bioptim/examples/getting_started/example_inequality_constraint.py) file
This example mimics what a jumper does when maximizing the predicted height of the center of mass at the peak of an aerial phase. It does so with a simplistic two segments model.
It is a clone of 'torque_driven_ocp/maximize_predicted_height_CoM.py' using
Expand Down Expand Up @@ -2366,7 +2354,7 @@ definition of the constraints of the problem:
```python
constraints = ConstraintList()
constraints.add(
ConstraintFcn.TRACK_MARKER_WITH_SEGMENT_AXIS, node=Node.ALL, marker_idx=1, segment_idx=2, axis=Axis.X
ConstraintFcn.TRACK_MARKER_WITH_SEGMENT_AXIS, node=Node.ALL, marker_idx=1, segment_index=2, axis=Axis.X
)
```

Expand All @@ -2380,12 +2368,9 @@ the rest is fully optimized. It is designed to show how to use the tracking RT f
any RT (for instance, Inertial Measurement Unit [IMU]) with a body segment.

To implement this tracking task, we use the `ConstraintFcn.TRACK_SEGMENT_WITH_CUSTOM_RT` constraint function, which
minimizes the distance between a segment and an RT. The extra parameters `segment_idx: int` and `rt_idx: int` must be
minimizes the distance between a segment and an RT. The extra parameters `segment_index: int` and `rt_index: int` must be
passed to the Objective constructor.

### The [track_vector_orientation.py](./bioptim/examples/track/track_vector_orientation.py) file
*#TODO*

## Moving estimation horizon (MHE)
In this section, we perform MHE on the pendulum example.

Expand Down
71 changes: 46 additions & 25 deletions bioptim/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,33 +164,50 @@

"""

from .misc.__version__ import __version__
from .dynamics.configure_problem import ConfigureProblem, DynamicsFcn, DynamicsList, Dynamics
from .dynamics.dynamics_functions import DynamicsFunctions
from .dynamics.configure_problem import ConfigureProblem, DynamicsFcn, DynamicsList, Dynamics
from .dynamics.dynamics_evaluation import DynamicsEvaluation
from .dynamics.dynamics_evaluation import DynamicsEvaluation
from .dynamics.dynamics_functions import DynamicsFunctions
from .dynamics.dynamics_functions import DynamicsFunctions
from .dynamics.fatigue.effort_perception import EffortPerception, TauEffortPerception
from .dynamics.fatigue.effort_perception import EffortPerception, TauEffortPerception
from .dynamics.fatigue.fatigue_dynamics import FatigueList
from .dynamics.fatigue.fatigue_dynamics import FatigueList
from .dynamics.fatigue.xia_fatigue import XiaFatigue, XiaTauFatigue, XiaFatigueStabilized
from .dynamics.fatigue.michaud_fatigue import MichaudFatigue, MichaudTauFatigue
from .dynamics.fatigue.effort_perception import EffortPerception, TauEffortPerception
from .dynamics.fatigue.michaud_fatigue import MichaudFatigue, MichaudTauFatigue
from .dynamics.fatigue.xia_fatigue import XiaFatigue, XiaTauFatigue, XiaFatigueStabilized
from .dynamics.fatigue.xia_fatigue import XiaFatigue, XiaTauFatigue, XiaFatigueStabilized
from .dynamics.ode_solver import OdeSolver, OdeSolverBase
from .dynamics.ode_solver import OdeSolver, OdeSolverBase
from .gui.online_callback_server import PlottingServer
from .gui.online_callback_server import PlottingServer
from .gui.plot import CustomPlot
from .gui.plot import CustomPlot
from .interfaces import Solver
from .interfaces import Solver
from .models.biorbd.biorbd_model import BiorbdModel
from .models.biorbd.multi_biorbd_model import MultiBiorbdModel
from .models.biorbd.holonomic_biorbd_model import HolonomicBiorbdModel
from .models.biorbd.variational_biorbd_model import VariationalBiorbdModel
from .models.biorbd.stochastic_biorbd_model import StochasticBiorbdModel
from .models.holonomic_constraints import HolonomicConstraintsFcn, HolonomicConstraintsList
from .models.protocols.stochastic_biomodel import StochasticBioModel
from .models.protocols.biomodel import BioModel
from .limits.constraints import ConstraintFcn, ConstraintList, Constraint, ParameterConstraintList
from .limits.phase_transition import PhaseTransitionFcn, PhaseTransitionList, PhaseTransition
from .limits.constraints import ConstraintFcn, ConstraintList, Constraint, ParameterConstraintList
from .limits.fatigue_path_conditions import FatigueBounds, FatigueInitialGuess
from .limits.fatigue_path_conditions import FatigueBounds, FatigueInitialGuess
from .limits.multinode_constraint import MultinodeConstraintFcn, MultinodeConstraintList, MultinodeConstraint
from .limits.multinode_constraint import MultinodeConstraintFcn, MultinodeConstraintList, MultinodeConstraint
from .limits.multinode_objective import MultinodeObjectiveFcn, MultinodeObjectiveList, MultinodeObjective
from .limits.multinode_objective import MultinodeObjectiveFcn, MultinodeObjectiveList, MultinodeObjective
from .limits.objective_functions import ObjectiveFcn, ObjectiveList, Objective, ParameterObjectiveList
from .limits.objective_functions import ObjectiveFcn, ObjectiveList, Objective, ParameterObjectiveList
from .limits.path_conditions import BoundsList, InitialGuessList, Bounds, InitialGuess
from .limits.fatigue_path_conditions import FatigueBounds, FatigueInitialGuess
from .limits.path_conditions import BoundsList, InitialGuessList, Bounds, InitialGuess
from .limits.penalty_controller import PenaltyController
from .limits.penalty_controller import PenaltyController
from .limits.penalty_helpers import PenaltyHelpers
from .limits.penalty_helpers import PenaltyHelpers
from .limits.phase_transition import PhaseTransitionFcn, PhaseTransitionList, PhaseTransition
from .limits.phase_transition import PhaseTransitionFcn, PhaseTransitionList, PhaseTransition
from .misc.__version__ import __version__
from .misc.__version__ import __version__
from .misc.casadi_expand import lt, le, gt, ge, if_else, if_else_zero
from .misc.casadi_expand import lt, le, gt, ge, if_else, if_else_zero
from .misc.enums import (
Axis,
Node,
Expand All @@ -202,7 +219,6 @@
VariableType,
SolutionIntegrator,
QuadratureRule,
RigidBodyDynamics,
SoftContactDynamics,
DefectType,
MagnitudeType,
Expand All @@ -211,25 +227,30 @@
OnlineOptim,
)
from .misc.mapping import BiMappingList, BiMapping, Mapping, NodeMapping, NodeMappingList, SelectionMapping, Dependency
from .misc.mapping import BiMappingList, BiMapping, Mapping, NodeMapping, NodeMappingList, SelectionMapping, Dependency
from .models.biorbd.biorbd_model import BiorbdModel
from .models.biorbd.external_forces import ExternalForceSetTimeSeries
from .models.biorbd.holonomic_biorbd_model import HolonomicBiorbdModel
from .models.biorbd.multi_biorbd_model import MultiBiorbdModel
from .models.biorbd.stochastic_biorbd_model import StochasticBiorbdModel
from .models.biorbd.variational_biorbd_model import VariationalBiorbdModel
from .models.holonomic_constraints import HolonomicConstraintsFcn, HolonomicConstraintsList
from .models.protocols.biomodel import BioModel
from .models.protocols.stochastic_biomodel import StochasticBioModel
from .optimization.multi_start import MultiStart
from .optimization.non_linear_program import NonLinearProgram
from .optimization.optimal_control_program import OptimalControlProgram
from .optimization.receding_horizon_optimization import MovingHorizonEstimator, NonlinearModelPredictiveControl
from .optimization.optimization_variable import OptimizationVariableList
from .optimization.parameters import ParameterList, ParameterContainer
from .optimization.problem_type import SocpType
from .optimization.receding_horizon_optimization import (
CyclicNonlinearModelPredictiveControl,
CyclicMovingHorizonEstimator,
MultiCyclicNonlinearModelPredictiveControl,
)
from .optimization.parameters import ParameterList, ParameterContainer
from .optimization.receding_horizon_optimization import MovingHorizonEstimator, NonlinearModelPredictiveControl
from .optimization.solution.solution import Solution
from .optimization.solution.solution_data import SolutionMerge, TimeAlignment
from .optimization.optimization_variable import OptimizationVariableList
from .optimization.stochastic_optimal_control_program import StochasticOptimalControlProgram
from .optimization.variable_scaling import VariableScalingList, VariableScaling
from .optimization.variational_optimal_control_program import VariationalOptimalControlProgram

from .optimization.stochastic_optimal_control_program import StochasticOptimalControlProgram
from .optimization.problem_type import SocpType
from .misc.casadi_expand import lt, le, gt, ge, if_else, if_else_zero

from .gui.plot import CustomPlot
from .gui.online_callback_server import PlottingServer
Loading
Loading