#include <full_discretization_grid_base.h>
Public Types | |
enum | CostIntegrationRule { CostIntegrationRule::LeftSum, CostIntegrationRule::TrapezoidalRule } |
using | Ptr = std::shared_ptr< FullDiscretizationGridBase > |
using | UPtr = std::unique_ptr< FullDiscretizationGridBase > |
![]() | |
using | Ptr = std::shared_ptr< DiscretizationGridInterface > |
using | UPtr = std::unique_ptr< DiscretizationGridInterface > |
![]() | |
using | Ptr = std::shared_ptr< VertexSetInterface > |
Public Member Functions | |
void | clear () override |
FullDiscretizationGridBase ()=default | |
std::vector< VertexInterface * > & | getActiveVertices () override |
double | getDt () const |
double | getDtRef () const |
double | getFinalTime () const override |
bool | getFirstControlInput (Eigen::VectorXd &u0) override |
double | getFirstDt () const override |
double | getInitialDt () const override |
int | getInitialN () const override |
DiscretizationGridInterface::Ptr | getInstance () const override=0 |
Return a newly created shared instance of the implemented class. More... | |
int | getN () const override |
int | getNRef () const |
const Eigen::VectorXd & | getState (int k) const |
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) More... | |
void | getVertices (std::vector< VertexInterface *> &vertices) override |
bool | hasConstantControls () const override |
bool | hasSingleDt () const override |
bool | isEmpty () const override |
bool | isTimeVariableGrid () const override |
bool | isUniformGrid () const override |
virtual bool | isValid () const |
bool | providesStateTrajectory () const override |
void | setCostIntegrationRule (CostIntegrationRule integration) |
void | setDtRef (double dt) |
void | setFiniteDifferencesCollocationMethod (FiniteDifferencesCollocationInterface::Ptr fd_eval) |
void | setInitialDt (double dt) override |
void | setN (int n, bool try_resample=true) override |
Return dimension of the control input dimension in the grid. More... | |
void | setNRef (int n) |
void | setWarmStart (bool active) |
void | setXfFixed (const Eigen::Matrix< bool, -1, 1 > &xf_fixed) |
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 |
virtual | ~FullDiscretizationGridBase ()=default |
![]() | |
DiscretizationGridInterface ()=default | |
DiscretizationGridInterface (int state_dim, int control_dim) | |
virtual | ~DiscretizationGridInterface ()=default |
Virtual destructor. More... | |
![]() | |
void | applyIncrementNonFixed (const Eigen::Ref< const Eigen::VectorXd > &increment) |
Active vertices related methods. More... | |
void | applyIncrementNonFixed (int idx, double increment) |
void | backupParametersActiveVertices () |
void | clearConnectedEdges () |
void | computeVertexIndices () |
Precompute vertex indices in the hyper-graph (e.g. for the Jacobian or Hessian structure) More... | |
void | discardBackupParametersActiveVertices (bool all=false) |
void | getBounds (Eigen::Ref< Eigen::VectorXd > lb, Eigen::Ref< Eigen::VectorXd > ub) |
double | getLowerBound (int idx) |
int | getParameterDimension () |
double | getParameterValue (int idx) |
void | getParameterVector (Eigen::Ref< Eigen::VectorXd > x) |
double | getUpperBound (int idx) |
bool | isModified () const |
void | restoreBackupParametersActiveVertices (bool keep_backup) |
void | setBounds (const Eigen::Ref< const Eigen::VectorXd > &lb, const Eigen::Ref< const Eigen::VectorXd > &ub) |
void | setLowerBound (int idx, double lb) |
void | setModified (bool modified) |
void | setParameterValue (int idx, double x) |
void | setParameterVector (const Eigen::Ref< const Eigen::VectorXd > &x) |
void | setUpperBound (int idx, double ub) |
VertexSetInterface () | |
virtual | ~VertexSetInterface () |
Virtual destructor. More... | |
Protected Member Functions | |
virtual bool | adaptGrid (bool new_run, NlpFunctions &nlp_fun) |
bool | checkAndInitializeXfFixedFlags (int dim_x) |
void | computeActiveVertices () override |
virtual void | createEdges (NlpFunctions &nlp_fun, OptimizationEdgeSet &edges, SystemDynamicsInterface::Ptr dynamics)=0 |
int | findNearestState (const Eigen::VectorXd &x0) |
virtual void | initializeSequences (const Eigen::VectorXd &x0, const Eigen::VectorXd &xf, ReferenceTrajectoryInterface &uref, NlpFunctions &nlp_fun) |
virtual void | initializeSequences (const Eigen::VectorXd &x0, const Eigen::VectorXd &xf, ReferenceTrajectoryInterface &xref, ReferenceTrajectoryInterface &uref, NlpFunctions &nlp_fun) |
virtual bool | isDtFixedIntended () const |
virtual bool | isGridAdaptActive () const |
virtual bool | isMovingHorizonWarmStartActive () const |
virtual void | resampleTrajectory (int n_new) |
void | updateBounds (const NlpFunctions &nlp_fun) |
virtual void | warmStartShifting (const Eigen::VectorXd &x0) |
![]() | |
void | setLastControlRef (const Eigen::VectorXd &last_u_ref) |
void | setPreviousControl (const Eigen::VectorXd &prev_u, double prev_u_dt) |
![]() | |
void | setVertexIdx (VertexInterface &vertex, int idx) |
Protected Attributes | |
std::vector< VertexInterface * > | _active_vertices |
CostIntegrationRule | _cost_integration |
ScalarVertex | _dt |
double | _dt_lb = 0 |
double | _dt_ref = 0.1 |
double | _dt_ub = CORBO_INF_DBL |
FiniteDifferencesCollocationInterface::Ptr | _fd_eval = std::make_shared<CrankNicolsonDiffCollocation>() |
bool | _first_run = true |
int | _n_adapt = 0 |
int | _n_ref = 11 |
const NlpFunctions * | _nlp_fun = nullptr |
std::vector< VectorVertex > | _u_seq |
bool | _warm_start = false |
std::vector< VectorVertex > | _x_seq |
PartiallyFixedVectorVertex | _xf |
Eigen::Matrix< bool, -1, 1 > | _xf_fixed |
![]() | |
VectorVertex | _u_prev |
ScalarVertex | _u_prev_dt |
VectorVertex | _u_ref |
![]() | |
bool | _modified = true |
Additional Inherited Members | |
![]() | |
static Factory< DiscretizationGridInterface > & | getFactory () |
Get access to the accociated factory. More... | |
Definition at line 39 of file full_discretization_grid_base.h.
using corbo::FullDiscretizationGridBase::Ptr = std::shared_ptr<FullDiscretizationGridBase> |
Definition at line 42 of file full_discretization_grid_base.h.
using corbo::FullDiscretizationGridBase::UPtr = std::unique_ptr<FullDiscretizationGridBase> |
Definition at line 43 of file full_discretization_grid_base.h.
Enumerator | |
---|---|
LeftSum | |
TrapezoidalRule |
Definition at line 45 of file full_discretization_grid_base.h.
|
default |
|
virtualdefault |
|
inlineprotectedvirtual |
Reimplemented in corbo::FiniteDifferencesVariableGrid.
Definition at line 120 of file full_discretization_grid_base.h.
|
protected |
Definition at line 347 of file full_discretization_grid_base.cpp.
|
overridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 476 of file full_discretization_grid_base.cpp.
|
overrideprotectedvirtual |
Implements corbo::DiscretizationGridInterface.
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 514 of file full_discretization_grid_base.cpp.
|
protectedpure virtual |
|
protected |
Definition at line 287 of file full_discretization_grid_base.cpp.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 106 of file full_discretization_grid_base.h.
|
inline |
Definition at line 86 of file full_discretization_grid_base.h.
|
inline |
Definition at line 85 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 59 of file full_discretization_grid_base.h.
|
overridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 324 of file full_discretization_grid_base.cpp.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 58 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 78 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 79 of file full_discretization_grid_base.h.
|
overridepure virtual |
Return a newly created shared instance of the implemented class.
Implements corbo::DiscretizationGridInterface.
Implemented in corbo::FiniteDifferencesVariableGrid, corbo::FiniteDifferencesGrid, corbo::FiniteDifferencesGridMoveBlocking, and corbo::FullDiscretizationGridMoveBlockingBase.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 82 of file full_discretization_grid_base.h.
|
inline |
Definition at line 81 of file full_discretization_grid_base.h.
|
inline |
Definition at line 98 of file full_discretization_grid_base.h.
|
overridevirtual |
Return state and control trajectory as time series object (shared instance)
Implements corbo::DiscretizationGridInterface.
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 529 of file full_discretization_grid_base.cpp.
|
overridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 501 of file full_discretization_grid_base.cpp.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 61 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 62 of file full_discretization_grid_base.h.
|
protectedvirtual |
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 134 of file full_discretization_grid_base.cpp.
|
protectedvirtual |
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 181 of file full_discretization_grid_base.cpp.
|
inlineprotectedvirtual |
Reimplemented in corbo::FiniteDifferencesVariableGrid, and corbo::FiniteDifferencesGrid.
Definition at line 132 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 73 of file full_discretization_grid_base.h.
|
inlineprotectedvirtual |
Reimplemented in corbo::FiniteDifferencesVariableGrid.
Definition at line 134 of file full_discretization_grid_base.h.
|
inlineprotectedvirtual |
Reimplemented in corbo::FiniteDifferencesVariableGrid.
Definition at line 133 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 63 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 64 of file full_discretization_grid_base.h.
|
inlinevirtual |
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 74 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 65 of file full_discretization_grid_base.h.
|
protectedvirtual |
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 397 of file full_discretization_grid_base.cpp.
|
inline |
Definition at line 96 of file full_discretization_grid_base.h.
|
inline |
Definition at line 84 of file full_discretization_grid_base.h.
|
inline |
Definition at line 95 of file full_discretization_grid_base.h.
|
inlineoverridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 77 of file full_discretization_grid_base.h.
|
overridevirtual |
Return dimension of the control input dimension in the grid.
Implements corbo::DiscretizationGridInterface.
Definition at line 488 of file full_discretization_grid_base.cpp.
void corbo::FullDiscretizationGridBase::setNRef | ( | int | n | ) |
Definition at line 333 of file full_discretization_grid_base.cpp.
|
inline |
Definition at line 87 of file full_discretization_grid_base.h.
|
inline |
Definition at line 89 of file full_discretization_grid_base.h.
|
overridevirtual |
Implements corbo::DiscretizationGridInterface.
Definition at line 38 of file full_discretization_grid_base.cpp.
|
protected |
Definition at line 362 of file full_discretization_grid_base.cpp.
|
protectedvirtual |
Reimplemented in corbo::FullDiscretizationGridMoveBlockingBase.
Definition at line 230 of file full_discretization_grid_base.cpp.
|
protected |
Definition at line 143 of file full_discretization_grid_base.h.
|
protected |
Definition at line 159 of file full_discretization_grid_base.h.
|
protected |
Definition at line 150 of file full_discretization_grid_base.h.
|
protected |
Definition at line 156 of file full_discretization_grid_base.h.
|
protected |
Definition at line 149 of file full_discretization_grid_base.h.
|
protected |
Definition at line 157 of file full_discretization_grid_base.h.
|
protected |
Definition at line 138 of file full_discretization_grid_base.h.
|
protected |
Definition at line 152 of file full_discretization_grid_base.h.
|
protected |
Definition at line 148 of file full_discretization_grid_base.h.
|
protected |
Definition at line 147 of file full_discretization_grid_base.h.
|
protected |
Definition at line 145 of file full_discretization_grid_base.h.
|
protected |
Definition at line 141 of file full_discretization_grid_base.h.
|
protected |
Definition at line 151 of file full_discretization_grid_base.h.
|
protected |
Definition at line 140 of file full_discretization_grid_base.h.
|
protected |
Definition at line 142 of file full_discretization_grid_base.h.
|
protected |
Definition at line 155 of file full_discretization_grid_base.h.