Go to the documentation of this file.
25 #ifndef SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_STRUCTURED_OCP_DISCRETIZATION_GRIDS_FULL_DISCRETIZATION_GRID_BASE_H_
26 #define SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_STRUCTURED_OCP_DISCRETIZATION_GRIDS_FULL_DISCRETIZATION_GRID_BASE_H_
39 class FullDiscretizationGridBase :
public DiscretizationGridInterface
42 using Ptr = std::shared_ptr<FullDiscretizationGridBase>;
43 using UPtr = std::unique_ptr<FullDiscretizationGridBase>;
53 GridUpdateResult
update(
const Eigen::VectorXd& x0, ReferenceTrajectoryInterface& xref, ReferenceTrajectoryInterface& uref, NlpFunctions& nlp_fun,
55 ReferenceTrajectoryInterface* sref =
nullptr,
const Eigen::VectorXd* prev_u =
nullptr,
double prev_u_dt = 0,
56 ReferenceTrajectoryInterface* xinit =
nullptr, ReferenceTrajectoryInterface* uinit =
nullptr)
override;
71 void clear()
override;
76 void setN(
int n,
bool try_resample =
true)
override;
82 int getN()
const override {
return _x_seq.size() + 1; }
98 const Eigen::VectorXd&
getState(
int k)
const
107 void getVertices(std::vector<VertexInterface*>& vertices)
override;
109 #ifdef MESSAGE_SUPPORT
110 void fromMessage(
const messages::DiscretizationGrid& message, std::stringstream* issues)
override {}
111 void toMessage(messages::DiscretizationGrid& message)
const override {}
115 virtual void initializeSequences(
const Eigen::VectorXd& x0,
const Eigen::VectorXd& xf, ReferenceTrajectoryInterface& uref, NlpFunctions& nlp_fun);
116 virtual void initializeSequences(
const Eigen::VectorXd& x0,
const Eigen::VectorXd& xf, ReferenceTrajectoryInterface& xref,
141 std::vector<VectorVertex>
_u_seq;
164 #endif // SRC_OPTIMAL_CONTROL_INCLUDE_CORBO_OPTIMAL_CONTROL_STRUCTURED_OCP_DISCRETIZATION_GRIDS_FULL_DISCRETIZATION_GRID_BASE_H_
DiscretizationGridInterface::Ptr getInstance() const override=0
Return a newly created shared instance of the implemented class.
virtual bool isValid() const
std::vector< VectorVertex > _u_seq
double getFirstDt() const override
Interface class for reference trajectories.
std::unique_ptr< FullDiscretizationGridBase > UPtr
bool isTimeVariableGrid() const override
std::vector< VectorVertex > _x_seq
void setInitialDt(double dt) override
void setFiniteDifferencesCollocationMethod(FiniteDifferencesCollocationInterface::Ptr fd_eval)
Eigen::Matrix< bool, -1, 1 > _xf_fixed
void getStateAndControlTimeSeries(TimeSeries::Ptr x_sequence, TimeSeries::Ptr u_sequence, double t_max=CORBO_INF_DBL) const override
Return state and control trajectory as time series object (shared instance)
bool isUniformGrid() const override
bool hasSingleDt() const override
GridUpdateResult update(const Eigen::VectorXd &x0, ReferenceTrajectoryInterface &xref, ReferenceTrajectoryInterface &uref, NlpFunctions &nlp_fun, OptimizationEdgeSet &edges, SystemDynamicsInterface::Ptr dynamics, bool new_run, const Time &t, ReferenceTrajectoryInterface *sref=nullptr, const Eigen::VectorXd *prev_u=nullptr, double prev_u_dt=0, ReferenceTrajectoryInterface *xinit=nullptr, ReferenceTrajectoryInterface *uinit=nullptr) override
CostIntegrationRule _cost_integration
constexpr const double CORBO_INF_DBL
Representation for infinity (double version)
bool checkAndInitializeXfFixedFlags(int dim_x)
double getInitialDt() const override
void getVertices(std::vector< VertexInterface * > &vertices) override
const Eigen::VectorXd & values() const
Read-access to the underlying value vector.
virtual ~FullDiscretizationGridBase()=default
virtual bool isDtFixedIntended() const
std::vector< VertexInterface * > _active_vertices
std::shared_ptr< DiscretizationGridInterface > Ptr
virtual void warmStartShifting(const Eigen::VectorXd &x0)
const NlpFunctions * _nlp_fun
double getFinalTime() const override
int findNearestState(const Eigen::VectorXd &x0)
virtual bool adaptGrid(bool new_run, NlpFunctions &nlp_fun)
const Eigen::VectorXd & getState(int k) const
bool hasConstantControls() const override
void setWarmStart(bool active)
PartiallyFixedVectorVertex _xf
void setCostIntegrationRule(CostIntegrationRule integration)
bool providesStateTrajectory() const override
virtual bool isGridAdaptActive() const
virtual void createEdges(NlpFunctions &nlp_fun, OptimizationEdgeSet &edges, SystemDynamicsInterface::Ptr dynamics)=0
bool isEmpty() const override
std::shared_ptr< SystemDynamicsInterface > Ptr
std::vector< VertexInterface * > & getActiveVertices() override
void setXfFixed(const Eigen::Matrix< bool, -1, 1 > &xf_fixed)
virtual void initializeSequences(const Eigen::VectorXd &x0, const Eigen::VectorXd &xf, ReferenceTrajectoryInterface &uref, NlpFunctions &nlp_fun)
virtual bool isMovingHorizonWarmStartActive() const
std::shared_ptr< FiniteDifferencesCollocationInterface > Ptr
void setN(int n, bool try_resample=true) override
Return dimension of the control input dimension in the grid.
const double & value() const
Get underlying value.
int getN() const override
int getInitialN() const override
Vertex implementation for scalar values.
FiniteDifferencesCollocationInterface::Ptr _fd_eval
void computeActiveVertices() override
FullDiscretizationGridBase()=default
std::shared_ptr< FullDiscretizationGridBase > Ptr
std::shared_ptr< TimeSeries > Ptr
virtual void resampleTrajectory(int n_new)
void setModified(bool modified)
bool getFirstControlInput(Eigen::VectorXd &u0) override
Vector based vertex with support for partially fixed components.
void updateBounds(const NlpFunctions &nlp_fun)
control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:05:45