ocp_nlp_interface¶
Typedefs
-
typedef struct ocp_nlp_plan_t
ocp_nlp_plan_t
¶ Structure to store the configuration of a non-linear program.
-
typedef struct ocp_nlp_solver
ocp_nlp_solver
¶ Structure to store the state/configuration for the non-linear programming solver.
Enums
-
enum
ocp_nlp_solver_t
¶ Solution methods for optimal control problems.
Values:
-
enumerator
SQP
¶
-
enumerator
SQP_RTI
¶
-
enumerator
INVALID_NLP_SOLVER
¶
-
enumerator
-
enum
ocp_nlp_dynamics_t
¶ Types of the system dynamics, discrete or continuous time.
Values:
-
enumerator
CONTINUOUS_MODEL
¶
-
enumerator
DISCRETE_MODEL
¶
-
enumerator
INVALID_DYNAMICS
¶
-
enumerator
-
enum
ocp_nlp_constraints_t
¶ Constraint types.
Values:
-
enumerator
BGH
¶ Comprises simple bounds, polytopic constraints, general non-linear constraints.
-
enumerator
BGP
¶ Comprises simple bounds, polytopic constraints, general non-linear constraints, and positive definite constraints.
-
enumerator
INVALID_CONSTRAINT
¶
-
enumerator
Functions
-
ACADOS_SYMBOL_EXPORT ocp_nlp_plan_t *
ocp_nlp_plan_create
(int N)¶ Constructs an empty plan struct (user nlp configuration), all fields are set to a default/invalid state.
- Parameters
N
: Horizon length
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_plan_destroy
(void *plan_)¶ Destructor for plan struct, frees memory.
- Parameters
plan_
: The plan struct to destroy.
-
ACADOS_SYMBOL_EXPORT ocp_nlp_config *
ocp_nlp_config_create
(ocp_nlp_plan_t plan)¶ Constructs an nlp configuration struct from a plan.
- Parameters
plan
: The plan (user nlp configuration).
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_config_destroy
(void *config_)¶ Desctructor of the nlp configuration.
- Parameters
config_
: The configuration struct.
-
ACADOS_SYMBOL_EXPORT ocp_nlp_dims *
ocp_nlp_dims_create
(void *config_)¶ Constructs an struct that contains the dimensions of the variables.
- Parameters
config_
: The configuration struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_dims_destroy
(void *dims_)¶ Destructor of The dimension struct.
- Parameters
dims_
: The dimension struct.
-
ACADOS_SYMBOL_EXPORT ocp_nlp_in *
ocp_nlp_in_create
(ocp_nlp_config *config, ocp_nlp_dims *dims)¶ Constructs an input struct for a non-linear programs.
- Parameters
config
: The configuration struct.dims
: The dimension struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_in_destroy
(void *in)¶ Destructor of the inputs struct.
- Parameters
in
: The inputs struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_in_set
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_in *in, int stage, const char *field, void *value)¶ Sets the sampling times for the given stage.
- Parameters
config
: The configuration struct.dims
: The dimension struct.in
: The inputs struct.stage
: Stage number.field
: Has to be “Ts” (TBC other options).value
: The sampling times (floating point).
-
ACADOS_SYMBOL_EXPORT int
ocp_nlp_dynamics_model_set
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_in *in, int stage, const char *fun_type, void *fun_ptr)¶ Sets the function pointers to the dynamics functions for the given stage.
- Parameters
config
: The configuration struct.dims
: The dimension struct.in
: The inputs struct.stage
: Stage number.fun_type
: The name of the function type, either impl_ode_fun, impl_ode_fun_jac_x_xdot, impl_ode_jac_x_xdot_u (TBC)fun_ptr
: Function pointer to the dynamics function.
-
ACADOS_SYMBOL_EXPORT int
ocp_nlp_cost_model_set
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_in *in, int stage, const char *field, void *value)¶ Sets the function pointers to the cost functions for the given stage.
- Parameters
config
: The configuration struct.dims
: The dimension struct.in
: The inputs struct.stage
: Stage number.field
: The name of the field, either nls_res_jac, y_ref, W (others TBC)value
: Cost values.
-
ACADOS_SYMBOL_EXPORT int
ocp_nlp_constraints_model_set
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_in *in, int stage, const char *field, void *value)¶ Sets the function pointers to the constraints functions for the given stage.
- Parameters
config
: The configuration struct.dims
: The dimension struct.in
: The inputs struct.stage
: Stage number.field
: The name of the field, either lb, ub (others TBC)value
: Constraints function or values.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_constraints_model_get
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_in *in, int stage, const char *field, void *value)¶
-
ACADOS_SYMBOL_EXPORT ocp_nlp_out *
ocp_nlp_out_create
(ocp_nlp_config *config, ocp_nlp_dims *dims)¶ Constructs an output struct for the non-linear program.
- Parameters
config
: The configuration struct.dims
: The dimension struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_out_destroy
(void *out)¶ Destructor of the output struct.
- Parameters
out
: The output struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_out_set
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_out *out, int stage, const char *field, void *value)¶ Sets fields in the output struct of an nlp solver, used to initialize the solver.
- Parameters
config
: The configuration struct.dims
: The dimension struct.out
: The output struct.stage
: Stage number.field
: The name of the field, either x, u, pi.value
: Initialization values.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_out_get
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_out *out, int stage, const char *field, void *value)¶ Gets values of fields in the output struct of an nlp solver.
- Parameters
config
: The configuration struct.dims
: The dimension struct.out
: The output struct.stage
: Stage number.field
: The name of the field, either x, u, z, pi.value
: Pointer to the output memory.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_get_at_stage
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_solver *solver, int stage, const char *field, void *value)¶
-
ACADOS_SYMBOL_EXPORT int
ocp_nlp_dims_get_from_attr
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_out *out, int stage, const char *field)¶
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_constraint_dims_get_from_attr
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_out *out, int stage, const char *field, int *dims_out)¶
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_cost_dims_get_from_attr
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_out *out, int stage, const char *field, int *dims_out)¶
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_qp_dims_get_from_attr
(ocp_nlp_config *config, ocp_nlp_dims *dims, ocp_nlp_out *out, int stage, const char *field, int *dims_out)¶
-
ACADOS_SYMBOL_EXPORT void *
ocp_nlp_solver_opts_create
(ocp_nlp_config *config, ocp_nlp_dims *dims)¶ Creates an options struct for the non-linear program.
- Parameters
config
: The configuration struct.dims
: The dimension struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_solver_opts_destroy
(void *opts)¶ Destructor of the options.
- Parameters
opts
: The options struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_solver_opts_set
(ocp_nlp_config *config, void *opts_, const char *field, void *value)¶ Sets an option.
- Parameters
config
: The configuration struct.opts_
: The options struct.field
: Name of the option.value
: Value of the option.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_solver_opts_set_at_stage
(ocp_nlp_config *config, void *opts_, int stage, const char *field, void *value)¶
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_solver_opts_update
(ocp_nlp_config *config, ocp_nlp_dims *dims, void *opts_)¶ TBC Updates the options.
- Parameters
config
: The configuration struct.dims
: The dimension struct.opts_
: The options struct.
-
ACADOS_SYMBOL_EXPORT ocp_nlp_solver *
ocp_nlp_solver_create
(ocp_nlp_config *config, ocp_nlp_dims *dims, void *opts_)¶ Creates an ocp solver.
- Return
The solver.
- Parameters
config
: The configuration struct.dims
: The dimension struct.opts_
: The options struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_solver_destroy
(void *solver)¶ Destructor of the solver.
- Parameters
solver
: The solver struct.
-
ACADOS_SYMBOL_EXPORT int
ocp_nlp_solve
(ocp_nlp_solver *solver, ocp_nlp_in *nlp_in, ocp_nlp_out *nlp_out)¶ Solves the optimal control problem.
Call ocp_nlp_precompute before calling this functions (TBC).
- Parameters
solver
: The solver struct.nlp_in
: The inputs struct.nlp_out
: The output struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_solver_reset_qp_memory
(ocp_nlp_solver *solver, ocp_nlp_in *nlp_in, ocp_nlp_out *nlp_out)¶ Resets the memory of the QP solver.
- Parameters
solver
: The solver struct.nlp_in
: The inputs struct.nlp_out
: The output struct.
-
ACADOS_SYMBOL_EXPORT int
ocp_nlp_precompute
(ocp_nlp_solver *solver, ocp_nlp_in *nlp_in, ocp_nlp_out *nlp_out)¶ Performs precomputations for the solver.
Needs to be called before ocl_nlp_solve (TBC).
- Parameters
solver
: The solver struct.nlp_in
: The inputs struct.nlp_out
: The output struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_eval_cost
(ocp_nlp_solver *solver, ocp_nlp_in *nlp_in, ocp_nlp_out *nlp_out)¶ Computes cost function value.
- Parameters
solver
: The solver struct.nlp_in
: The inputs struct.nlp_out
: The output struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_eval_residuals
(ocp_nlp_solver *solver, ocp_nlp_in *nlp_in, ocp_nlp_out *nlp_out)¶ Computes the residuals.
- Parameters
solver
: The solver struct.nlp_in
: The inputs struct.nlp_out
: The output struct.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_eval_param_sens
(ocp_nlp_solver *solver, char *field, int stage, int index, ocp_nlp_out *sens_nlp_out)¶
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_get
(ocp_nlp_config *config, ocp_nlp_solver *solver, const char *field, void *return_value_)¶ - Parameters
config
: The configuration struct.solver
: The solver struct.field
: Supports “sqp_iter”, “status”, “nlp_res”, “time_tot”, …return_value_
: Pointer to the output memory.
-
ACADOS_SYMBOL_EXPORT void
ocp_nlp_set
(ocp_nlp_config *config, ocp_nlp_solver *solver, int stage, const char *field, void *value)¶ Sets the initial guesses for the integrator for the given stage.
- Parameters
config
: The configuration struct.solver
: The ocp_nlp_solver struct.stage
: Stage number.field
: Supports “z_guess”, “xdot_guess” (IRK), “phi_guess” (GNSF-IRK)value
: The initial guess for the algebraic variables in the integrator (if continuous model is used).
-
struct
ocp_nlp_plan_t
- #include <ocp_nlp_interface.h>
Structure to store the configuration of a non-linear program.
Public Members
-
ocp_qp_solver_plan_t
ocp_qp_solver_plan
¶ QP solver configuration.
-
sim_solver_plan_t *
sim_solver_plan
¶ Simulation solver configuration for each stage.
-
ocp_nlp_solver_t
nlp_solver
¶ Nlp solver type.
-
ocp_nlp_reg_t
regularization
¶ Regularization type, defaults to no regularization.
-
ocp_nlp_cost_t *
nlp_cost
¶ Cost type for each stage.
-
ocp_nlp_dynamics_t *
nlp_dynamics
¶ Dynamics type for each stage.
-
ocp_nlp_constraints_t *
nlp_constraints
¶ Constraints type for each stage.
-
int
N
¶ Horizon length.
-
ocp_qp_solver_plan_t
-
struct
ocp_nlp_solver
- #include <ocp_nlp_interface.h>
Structure to store the state/configuration for the non-linear programming solver.