1#ifndef ROBOTOC_UNCONSTR_TERMINAL_STAGE_HPP_
2#define ROBOTOC_UNCONSTR_TERMINAL_STAGE_HPP_
40 const std::shared_ptr<CostFunction>& cost,
41 const std::shared_ptr<Constraints>& constraints);
Stack of the inequality constraints. Composed by constraint components that inherits ConstraintCompon...
Definition: constraints.hpp:30
Stack of the cost function. Composed by cost function components that inherits CostFunctionComponentB...
Definition: cost_function.hpp:30
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
Newton direction of the solution to the optimal control problem split into a time stage.
Definition: split_direction.hpp:20
The KKT matrix split into a time stage.
Definition: split_kkt_matrix.hpp:18
KKT residual split into each time stage.
Definition: split_kkt_residual.hpp:18
Solution to the optimal control problem split into a time stage.
Definition: split_solution.hpp:20
Definition: unconstr_terminal_stage.hpp:31
void updateDual(const double dual_step_size, UnconstrOCPData &data) const
Updates dual variables of the inequality constraints.
UnconstrTerminalStage()
Default constructor.
~UnconstrTerminalStage()=default
Default destructor.
double maxDualStepSize(const UnconstrOCPData &data) const
Computes the maximum dual size.
void initConstraints(Robot &robot, const GridInfo &grid_info, const SplitSolution &s, UnconstrOCPData &data) const
Initializes the constraints, i.e., set slack and dual variables.
bool isFeasible(Robot &robot, const GridInfo &grid_info, const SplitSolution &s, UnconstrOCPData &data) const
Checks whether the solution is feasible w.r.t. the inequality constraints.
double maxPrimalStepSize(const UnconstrOCPData &data) const
Computes the maximum primal step size.
UnconstrTerminalStage(UnconstrTerminalStage &&) noexcept=default
Default move constructor.
UnconstrOCPData createData(const Robot &robot) const
Creates the data.
void evalOCP(Robot &robot, const GridInfo &grid_info, const SplitSolution &s, UnconstrOCPData &data, SplitKKTResidual &kkt_residual) const
Computes the stage cost and constraint violation of this stage.
void updatePrimal(const Robot &robot, const double primal_step_size, const SplitDirection &d, SplitSolution &s, UnconstrOCPData &data) const
Updates primal variables of this stage.
UnconstrTerminalStage(const Robot &robot, const std::shared_ptr< CostFunction > &cost, const std::shared_ptr< Constraints > &constraints)
Constructs a split optimal control problem.
UnconstrTerminalStage(const UnconstrTerminalStage &)=default
Default copy constructor.
void expandPrimalAndDual(UnconstrOCPData &data, SplitDirection &d) const
Expands the primal and dual variables, i.e., computes the Newton direction of the condensed variables...
void evalKKT(Robot &robot, const GridInfo &grid_info, const SplitSolution &s, UnconstrOCPData &data, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual) const
Computes the KKT matrix and residual of this stage.
UnconstrTerminalStage & operator=(const UnconstrTerminalStage &)=default
Default copy assign operator.
Definition: constraint_component_base.hpp:17
Grid information.
Definition: grid_info.hpp:24
Data structure for the optimal control problem of unconstrained rigid-body systems.
Definition: unconstr_ocp_data.hpp:17