A wrapper to call OSQP using Drake's MathematicalProgram.
For details about OSQP's available options, refer to the OSQP manual. Drake uses OSQP's default values for all options except following:
- Drake defaults to
polish=true
(upstream default is false
).
- Drake defaults to
adaptive_rho_interval=ADAPTIVE_RHO_FIXED
to make the output deterministic (upstream default is 0
, which uses non-deterministic timing measurements to establish the interval). N.B. Generally the interval should be an integer multiple of check_termination
, so if you choose to override either option you should probably override both at once.
At the end of OsqpSolver::Solve() function, we always return the value of the primal and dual variables inside the OSQP solver, regardless of the solver status (whether it is optimal, infeasible, unbounded, etc), except when the problem has an invalid input. Users should always check the solver status before interpreting the returned primal and dual variables.
|
| OsqpSolver () |
|
| ~OsqpSolver () final |
|
MathematicalProgramResult | Solve (const MathematicalProgram &prog, const std::optional< Eigen::VectorXd > &initial_guess=std::nullopt, const std::optional< SolverOptions > &solver_options=std::nullopt) const |
| Like SolverInterface::Solve(), but the result is a return value instead of an output argument. More...
|
|
void | Solve (const MathematicalProgram &, const std::optional< Eigen::VectorXd > &, const std::optional< SolverOptions > &, MathematicalProgramResult *) const override |
|
|
| OsqpSolver (const OsqpSolver &)=delete |
|
OsqpSolver & | operator= (const OsqpSolver &)=delete |
|
| OsqpSolver (OsqpSolver &&)=delete |
|
OsqpSolver & | operator= (OsqpSolver &&)=delete |
|
| ~SolverBase () override |
|
MathematicalProgramResult | Solve (const MathematicalProgram &prog, const std::optional< Eigen::VectorXd > &initial_guess=std::nullopt, const std::optional< SolverOptions > &solver_options=std::nullopt) const |
| Like SolverInterface::Solve(), but the result is a return value instead of an output argument. More...
|
|
void | Solve (const MathematicalProgram &, const std::optional< Eigen::VectorXd > &, const std::optional< SolverOptions > &, MathematicalProgramResult *) const override |
| Solves an optimization program with optional initial guess and solver options. More...
|
|
bool | available () const override |
| Returns true iff support for this solver has been compiled into Drake. More...
|
|
bool | enabled () const override |
| Returns true iff this solver is properly configured for use at runtime. More...
|
|
SolverId | solver_id () const final |
| Returns the identifier of this solver. More...
|
|
bool | AreProgramAttributesSatisfied (const MathematicalProgram &) const override |
| Returns true iff the program's attributes are compatible with this solver's capabilities. More...
|
|
std::string | ExplainUnsatisfiedProgramAttributes (const MathematicalProgram &) const override |
| Describes the reasons (if any) why the program is incompatible with this solver's capabilities. More...
|
|
| SolverBase (const SolverBase &)=delete |
|
SolverBase & | operator= (const SolverBase &)=delete |
|
| SolverBase (SolverBase &&)=delete |
|
SolverBase & | operator= (SolverBase &&)=delete |
|
virtual | ~SolverInterface () |
|
| SolverInterface (const SolverInterface &)=delete |
|
SolverInterface & | operator= (const SolverInterface &)=delete |
|
| SolverInterface (SolverInterface &&)=delete |
|
SolverInterface & | operator= (SolverInterface &&)=delete |
|