1#ifndef ROBOTOC_SWITCHING_TIME_OPTIMIZATION_HPP_
2#define ROBOTOC_SWITCHING_TIME_OPTIMIZATION_HPP_
130 const
double primal_step_size,
131 const
double dual_step_size, const
Direction& d);
138 bool is_sto_enabled_;
140 Eigen::VectorXd lt_, h_, dts_;
141 Eigen::MatrixXd Qtt_;
Data used in constraint components. Composed by slack, dual (Lagrange multiplier),...
Definition: constraint_component_data.hpp:17
Constraints of the switching time optimization problems.
Definition: sto_constraints.hpp:23
Stack of the cost function of the switching time optimization (STO) problem. Composed by cost functio...
Definition: sto_cost_function.hpp:24
The switching time optimization (STO) problem.
Definition: switching_time_optimization.hpp:24
SwitchingTimeOptimization(SwitchingTimeOptimization &&) noexcept=default
Default move constructor.
double maxDualStepSize() const
Gets the maximum dual step size of the fraction-to-boundary-rule.
void evalKKT(const TimeDiscretization &time_discretization, KKTMatrix &kkt_matrix, KKTResidual &kkt_residual)
Computes the KKT residual and matrix.
double maxPrimalStepSize() const
Gets the maximum primal step size of the fraction-to-boundary-rule.
void setRegularization(const double sto_reg)
Sets the regularization paremeter on the STO problem.
const PerformanceIndex & getEval() const
Gets the performance index of the evaluation.
void computeStepSizes(const TimeDiscretization &time_discretization, const Direction &d)
Computes the step sizes via the fraction-to-boundary-rule.
~SwitchingTimeOptimization()=default
Default destructor.
void initConstraints(const TimeDiscretization &time_discretization)
Initializes the priaml-dual interior point method for inequality constraints.
void integrateSolution(const TimeDiscretization &time_discretization, const double primal_step_size, const double dual_step_size, const Direction &d)
Computes the initial state direction.
SwitchingTimeOptimization(const SwitchingTimeOptimization &)=default
Default copy constructor.
SwitchingTimeOptimization(const OCP &ocp)
Construct the STO problem.
SwitchingTimeOptimization()
Default constructor.
void evalSTO(const TimeDiscretization &time_discretization)
Computes the cost and constraint violations.
SwitchingTimeOptimization & operator=(const SwitchingTimeOptimization &)=default
Default copy assign operator.
bool isFeasible(const TimeDiscretization &time_discretization)
Checks whether the solution is feasible under inequality constraints.
Time discretization of the optimal control problem.
Definition: time_discretization.hpp:20
Definition: constraint_component_base.hpp:17
aligned_vector< SplitKKTMatrix > KKTMatrix
The KKT matrix of the optimal control problem.
Definition: kkt_matrix.hpp:16
aligned_vector< SplitDirection > Direction
Newton direction of the solution to the optimal control problem.
Definition: direction.hpp:16
aligned_vector< SplitKKTResidual > KKTResidual
The KKT residual of the optimal control problem.
Definition: kkt_residual.hpp:16
The optimal control problem.
Definition: ocp.hpp:22