C Interface#
The C Interface of acados is an efficient interface to the core functionalities of acados.
It provides setters and getters that can be used to interact with the core of acados with negligible computational overhead.
Setters and getters for matrices use column-major format.
If you want to use acados directly from C or C++, it is recommended to only use the functions in in interfaces/acados_c/, which encapsulate the acados core, i.e. the functionality implemented in acados/.
Disclaimer: the C interface is NOT thoroughly documented using docstrings.
It is recommended to instead look at the header files in interfaces/acados_c/.
Examples#
Note that the MATLAB and Python interfaces can be used to code generate C examples which are cleaner than some of the plain C examples in examples/c.
A recommended workflow is thus to prototype an NMPC controller from one of the high-level interfaces and deploy the generated code with minor modifications in a C, C++ or ROS framework.
A very important resource are the templated C files used by the template based interfaces (Python and code generation for MATLAB and Octave), which show how to use the C interface properly.
These templates are actively maintained and tested using CI.
The templates can be found in interfaces/acados_template/acados_template/c_templates_tera.
docstring based documentation#
- dense_qp_interface
dense_qp_solver_tdense_qp_config_create()dense_qp_dims_create()dense_qp_in_create()dense_qp_out_create()dense_qp_opts_create()dense_qp_calculate_size()dense_qp_assign()dense_qp_create()dense_qp_solve()dense_qp_inf_norm_residuals()dense_qp_set_field_double_array()dense_qp_set_field_int_array()dense_qp_get_field_double_array()dense_qp_get_field_int_array()dense_qp_solver_plandense_qp_solverdense_qp_dimsdense_qp_indense_qp_outdense_qp_resdense_qp_res_wsdense_qp_seeddense_qp_solver_config_calculate_size()dense_qp_solver_config_assign()dense_qp_dims_calculate_size()dense_qp_dims_assign()dense_qp_dims_set()dense_qp_in_calculate_size()dense_qp_in_assign()dense_qp_out_calculate_size()dense_qp_out_assign()dense_qp_out_get()dense_qp_res_calculate_size()dense_qp_res_assign()dense_qp_res_workspace_calculate_size()dense_qp_res_workspace_assign()dense_qp_compute_t()dense_qp_res_compute()dense_qp_res_compute_nrm_inf()dense_qp_seed_calculate_size()dense_qp_seed_assign()dense_qp_stack_slacks_dims_upperbound()dense_qp_stack_slacks_dims_from_idxs_rev()dense_qp_stack_slacks_recover_nsb_nsg_from_idxs_rev()dense_qp_stack_slacks()dense_qp_unstack_slacks()qp_solver_configqp_info
- ocp_qp_interface
ocp_qp_solver_tocp_qp_xcond_solver_config_initialize_from_plan()ocp_qp_xcond_solver_config_create()ocp_qp_xcond_solver_config_free()ocp_qp_dims_create()ocp_qp_dims_free()ocp_qp_xcond_solver_dims_create()ocp_qp_xcond_solver_dims_create_from_ocp_qp_dims()ocp_qp_xcond_solver_dims_free()ocp_qp_xcond_solver_dims_set()ocp_qp_in_create()ocp_qp_in_set()ocp_qp_in_free()ocp_qp_out_create()ocp_qp_out_free()ocp_qp_out_get()ocp_qp_xcond_solver_opts_create()ocp_qp_xcond_solver_opts_free()ocp_qp_xcond_solver_opts_set()ocp_qp_calculate_size()ocp_qp_assign()ocp_qp_create()ocp_qp_solver_destroy()ocp_qp_x_cond_solver_free()ocp_qp_solve()ocp_qp_inf_norm_residuals()ocp_qp_solver_plan_tocp_qp_solver
- sim_interface
sim_solver_tsim_config_create()sim_config_destroy()sim_dims_create()sim_dims_destroy()sim_dims_set()sim_dims_get()sim_dims_get_from_attr()sim_in_create()sim_in_destroy()sim_in_set()sim_out_create()sim_out_destroy()sim_out_get()sim_opts_create()sim_opts_destroy()sim_opts_set()sim_opts_get()sim_calculate_size()sim_assign()sim_solver_create()sim_solver_destroy()sim_solve()sim_precompute()sim_solver_set()sim_solver_plan_tsim_solversim_function_tsim_config_calculate_size()sim_config_assign()sim_in_calculate_size()sim_in_assign()sim_in_assign_and_advance()sim_in_set_()sim_out_calculate_size()sim_out_assign()sim_out_get_()sim_opts_set_()sim_opts_get_()sim_insim_infosim_outsim_optssim_config
- ocp_nlp_interface
ocp_nlp_plan_tocp_nlp_solverocp_nlp_solver_tocp_nlp_dynamics_tocp_nlp_constraints_tocp_nlp_reg_tocp_nlp_globalization_tocp_nlp_plan_create()ocp_nlp_plan_destroy()ocp_nlp_config_create()ocp_nlp_config_destroy()ocp_nlp_dims_create()ocp_nlp_dims_destroy()ocp_nlp_in_create()ocp_nlp_in_destroy()ocp_nlp_in_set()ocp_nlp_dynamics_model_set_external_param_fun()ocp_nlp_cost_model_set_external_param_fun()ocp_nlp_constraints_model_set_external_param_fun()ocp_nlp_in_set_params_sparse()ocp_nlp_in_get()ocp_nlp_dynamics_model_set()ocp_nlp_cost_model_set()ocp_nlp_cost_model_get()ocp_nlp_constraints_model_set()ocp_nlp_constraints_model_get()ocp_nlp_out_create()ocp_nlp_out_destroy()ocp_nlp_out_set()ocp_nlp_out_set_values_to_zero()ocp_nlp_out_get()ocp_nlp_get_at_stage()ocp_nlp_get_from_iterate()ocp_nlp_get_all()ocp_nlp_set_all()ocp_nlp_dims_get_from_attr()ocp_nlp_constraint_dims_get_from_attr()ocp_nlp_cost_dims_get_from_attr()ocp_nlp_qp_dims_get_from_attr()ocp_nlp_dims_get_total_from_attr()ocp_nlp_solver_opts_create()ocp_nlp_solver_opts_destroy()ocp_nlp_solver_opts_set()ocp_nlp_solver_opts_set_at_stage()ocp_nlp_solver_create()ocp_nlp_solver_destroy()ocp_nlp_solve()ocp_nlp_setup_qp_matrices_and_factorize()ocp_nlp_solver_reset_qp_memory()ocp_nlp_precompute()ocp_nlp_eval_cost()ocp_nlp_eval_constraints()ocp_nlp_eval_params_jac()ocp_nlp_eval_residuals()ocp_nlp_eval_param_sens()ocp_nlp_eval_lagrange_grad_p()ocp_nlp_eval_solution_sens_adj_p()ocp_nlp_get()ocp_nlp_set()ocp_nlp_plan_t::ocp_qp_solver_planocp_nlp_plan_t::relaxed_ocp_qp_solver_planocp_nlp_plan_t::sim_solver_planocp_nlp_plan_t::nlp_solverocp_nlp_plan_t::regularizationocp_nlp_plan_t::globalizationocp_nlp_plan_t::nlp_costocp_nlp_plan_t::nlp_dynamicsocp_nlp_plan_t::nlp_constraintsocp_nlp_plan_t::Nocp_nlp_solver::configocp_nlp_solver::dimsocp_nlp_solver::optsocp_nlp_solver::memocp_nlp_solver::work
- condensing_interface
- external_function_interface
external_function_param_generic_create()external_function_param_generic_free()external_function_casadi_create()external_function_casadi_free()external_function_casadi_create_array()external_function_casadi_free_array()external_function_param_casadi_create()external_function_param_casadi_free()external_function_param_casadi_create_array()external_function_param_casadi_free_array()external_function_external_param_casadi_create()external_function_external_param_casadi_free()external_function_external_param_generic_create()external_function_external_param_generic_free()ext_fun_arg_texternal_function_get_workspace_requirement_if_defined()external_function_set_fun_workspace_if_defined()external_function_opts_set_to_default()external_function_param_generic_struct_size()external_function_param_generic_calculate_size()external_function_param_generic_assign()external_function_param_generic_wrapper()external_function_param_generic_get_nparam()external_function_param_generic_set_param()external_function_param_generic_get_external_workspace_requirement()external_function_param_generic_set_external_workspace()external_function_casadi_struct_size()external_function_casadi_calculate_size()external_function_casadi_assign()external_function_casadi_wrapper()external_function_casadi_get_external_workspace_requirement()external_function_casadi_set_external_workspace()external_function_param_casadi_struct_size()external_function_param_casadi_calculate_size()external_function_param_casadi_assign()external_function_param_casadi_wrapper()external_function_param_casadi_get_nparam()external_function_param_casadi_get_external_workspace_requirement()external_function_param_casadi_set_external_workspace()external_function_external_param_casadi_struct_size()external_function_external_param_casadi_calculate_size()external_function_external_param_casadi_assign()external_function_external_param_casadi_wrapper()external_function_external_param_casadi_get_external_workspace_requirement()external_function_external_param_casadi_set_external_workspace()external_function_external_param_generic_struct_size()external_function_external_param_generic_calculate_size()external_function_external_param_generic_assign()external_function_external_param_generic_wrapper()external_function_external_param_generic_set_param_ptr()external_function_external_param_generic_get_external_workspace_requirement()external_function_external_param_generic_set_external_workspace()colmaj_argsblasfeo_dmat_argsblasfeo_dvec_argsexternal_function_optsexternal_function_genericexternal_function_param_genericexternal_function_casadiexternal_function_param_casadiexternal_function_external_param_casadiexternal_function_external_param_generic