25 #ifndef SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_STRUCTURED_OCP_STRUCTURED_OPTIMAL_CONTROL_PROBLEM_H_ 26 #define SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_STRUCTURED_OCP_STRUCTURED_OPTIMAL_CONTROL_PROBLEM_H_ 43 using Ptr = std::shared_ptr<StructuredOptimalControlProblem>;
44 using UPtr = std::unique_ptr<StructuredOptimalControlProblem>;
81 void setBounds(
const Eigen::VectorXd& x_lb,
const Eigen::VectorXd& x_ub,
const Eigen::VectorXd& u_lb,
const Eigen::VectorXd& u_ub);
82 void setStateBounds(
const Eigen::VectorXd& x_lb,
const Eigen::VectorXd& x_ub);
83 void setControlBounds(
const Eigen::VectorXd& u_lb,
const Eigen::VectorXd& u_ub);
154 #ifdef MESSAGE_SUPPORT 155 void toMessage(corbo::messages::OptimalControlProblem& message)
const override;
156 void fromMessage(
const corbo::messages::OptimalControlProblem& message, std::stringstream* issues =
nullptr)
override;
159 void reset()
override;
191 #endif // SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_STRUCTURED_OCP_STRUCTURED_OPTIMAL_CONTROL_PROBLEM_H_
NlpSolverInterface::Ptr _solver
OptimalControlProblemInterface::Ptr getInstance() const override
void setSystemDynamics(SystemDynamicsInterface::Ptr dynamics)
OptimalControlProblemStatistics::Ptr _statistics
std::shared_ptr< BaseHyperGraphOptimizationProblem > Ptr
#define FACTORY_REGISTER_OCP(type)
FinalStageConstraint::Ptr final_stage_constraints
void setHyperGraphOptimizationProblem(BaseHyperGraphOptimizationProblem::Ptr optim_prob)
Eigen::VectorXd ControlVector
StageCost::Ptr stage_cost
DiscretizationGridInterface::Ptr _grid
std::shared_ptr< OptimalControlProblemInterface > Ptr
bool providesFutureStates() const override
Interface class for signal targets.
Representation of time stamps.
void setStageInequalityConstraint(StageInequalityConstraint::Ptr stage_ineq)
virtual ~StructuredOptimalControlProblem()
std::shared_ptr< StageEqualityConstraint > Ptr
void setOptimizedTimeSeriesDt(double dt)
std::shared_ptr< StageInequalityConstraint > Ptr
void getTimeSeries(TimeSeries::Ptr x_sequence, TimeSeries::Ptr u_sequence, double t_max=CORBO_INF_DBL) override
std::shared_ptr< OptimalControlProblemStatistics > Ptr
TimeSeries::Ptr _ts_x_cache
bool initialize() override
SystemDynamicsInterface::Ptr _dynamics
double getCurrentObjectiveValue() override
std::shared_ptr< FinalStageConstraint > Ptr
void setFinalStageConstraint(FinalStageConstraint::Ptr final_stage_constraint)
TimeSeries::Ptr _ts_u_cache
std::shared_ptr< OptimizationEdgeSet > Ptr
double getFirstDt() const override
void setSolver(NlpSolverInterface::Ptr solver)
void setStageCost(StageCost::Ptr stage_cost)
void setStatisticsObject(OptimalControlProblemStatistics::Ptr statistics)
constexpr const double CORBO_INF_DBL
Representation for infinity (double version)
void setBounds(const Eigen::VectorXd &x_lb, const Eigen::VectorXd &x_ub, const Eigen::VectorXd &u_lb, const Eigen::VectorXd &u_ub)
bool getFirstControlInput(ControlVector &u0) const override
bool isConstantControlAction() const override
FinalStageCost::Ptr final_stage_cost
void setDiscretizationGrid(DiscretizationGridInterface::Ptr grid)
void setPreviousControlInputDt(double dt) override
void setOptimizedTimeSeriesTf(double tf)
std::unique_ptr< OptimalControlProblemInterface > UPtr
int getControlInputDimension() const override
A matrix or vector expression mapping an existing expression.
bool compute(const StateVector &x, ReferenceTrajectoryInterface &xref, ReferenceTrajectoryInterface &uref, ReferenceTrajectoryInterface *sref, const Time &t, bool new_run, SignalTargetInterface *signal_target=nullptr, ReferenceTrajectoryInterface *xinit=nullptr, ReferenceTrajectoryInterface *uinit=nullptr, const std::string &ns="") override
void setStageEqualityConstraint(StageEqualityConstraint::Ptr stage_eq)
bool providesFutureControls() const override
int getN() const override
BaseHyperGraphOptimizationProblem::Ptr _optim_prob
bool _increase_n_if_infeas
void setStateBounds(const Eigen::VectorXd &x_lb, const Eigen::VectorXd &x_ub)
Interface class for reference trajectories.
std::shared_ptr< DiscretizationGridInterface > Ptr
Eigen::VectorXd StateVector
void setStagePreprocessor(StagePreprocessor::Ptr stage_preprocessor)
std::shared_ptr< NlpSolverInterface > Ptr
StructuredOptimalControlProblem()
std::shared_ptr< StagePreprocessor > Ptr
std::shared_ptr< StageCost > Ptr
OptimizationEdgeSet::Ptr _edges
StageInequalityConstraint::Ptr stage_inequalities
std::shared_ptr< TimeSeries > Ptr
int getStateDimension() const override
std::shared_ptr< FinalStageCost > Ptr
void setPreviousControlInput(const Eigen::Ref< const ControlVector > &u_prev, double dt) override
StageEqualityConstraint::Ptr stage_equalities
StagePreprocessor::Ptr stage_preprocessor
void setControlBounds(const Eigen::VectorXd &u_lb, const Eigen::VectorXd &u_ub)
std::shared_ptr< SystemDynamicsInterface > Ptr
void setFinalStageCost(FinalStageCost::Ptr final_stage_cost)
OptimalControlProblemStatistics::Ptr getStatistics() const override
DiscretizationGridInterface::Ptr getDiscretizationGrid()
const NlpFunctions & getNlpFunctions() const