|
void | disableGridAdaptation () |
| Disable grid adapation. More...
|
|
| FiniteDifferencesVariableGridSE2 ()=default |
|
corbo::DiscretizationGridInterface::Ptr | getInstance () const override |
| Return a newly created shared instance of the implemented class. More...
|
|
void | setDtBounds (double dt_lb, double dt_ub) |
| Set lower and upper bounds for the temporal resolution. More...
|
|
void | setGridAdaptSimpleShrinkingHorizon (bool adapt_first_iter=false) |
| Set grid adaptation strategy to 'shrinking horizon'. More...
|
|
void | setGridAdaptTimeBasedAggressiveEstimate (int n_max, double dt_hyst_ratio=0.1, bool adapt_first_iter=false) |
| Set grid adaptation strategy to 'aggressive'. More...
|
|
void | setGridAdaptTimeBasedSingleStep (int n_max, double dt_hyst_ratio=0.1, bool adapt_first_iter=false) |
| Set grid adaptation strategy to 'single step'. More...
|
|
void | setNmin (int n_min) |
| Set minium grid size for grid adaptation. More...
|
|
virtual | ~FiniteDifferencesVariableGridSE2 ()=default |
|
| FiniteDifferencesGridSE2 ()=default |
| Default constructor. More...
|
|
virtual | ~FiniteDifferencesGridSE2 ()=default |
| Default destructor. More...
|
|
void | clear () override |
|
int | findClosestPose (double x_ref, double y_ref, int start_idx=0, double *distance=nullptr) const |
| Find the closest pose (first part of the state vector) on the grid w.r.t. to a provided reference point. More...
|
|
| FullDiscretizationGridBaseSE2 ()=default |
|
std::vector< VertexInterface * > & | getActiveVertices () override |
|
double | getDt () const |
| get current temporal resolution More...
|
|
double | getDtRef () const |
| get current reference temporal resolution More...
|
|
double | getFinalTime () const override |
|
bool | getFirstControlInput (Eigen::VectorXd &u0) override |
|
double | getFirstDt () const override |
|
double | getInitialDt () const override |
|
int | getInitialN () const override |
|
int | getN () const override |
| get current horizon length More...
|
|
int | getNRef () const |
| get reference horizon length More...
|
|
const Eigen::VectorXd & | getState (int k) const |
| Return state at time stamp k. More...
|
|
void | getStateAndControlTimeSeries (TimeSeries::Ptr x_sequence, TimeSeries::Ptr u_sequence, double t_max=corbo::CORBO_INF_DBL) const override |
|
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) |
| Set cost integration rule. More...
|
|
void | setDtRef (double dt) |
| set reference temporal resolution More...
|
|
void | setFiniteDifferencesCollocationMethod (corbo::FiniteDifferencesCollocationInterface::Ptr fd_eval) |
| Set finite differences collocation method. More...
|
|
void | setInitialDt (double dt) override |
|
void | setN (int n, bool try_resample=true) override |
|
void | setNRef (int n) |
| set reference horizon length More...
|
|
void | setWarmStart (bool active) |
| activate or deactive warmstart More...
|
|
void | setXfFixed (const Eigen::Matrix< bool, -1, 1 > &xf_fixed) |
| Set individual components of the final state to fixed or unfixed. More...
|
|
corbo::GridUpdateResult | update (const Eigen::VectorXd &x0, ReferenceTrajectoryInterface &xref, ReferenceTrajectoryInterface &uref, NlpFunctions &nlp_fun, OptimizationEdgeSet &edges, SystemDynamicsInterface::Ptr dynamics, bool new_run, const corbo::Time &t, ReferenceTrajectoryInterface *sref=nullptr, const Eigen::VectorXd *prev_u=nullptr, double prev_u_dt=0, ReferenceTrajectoryInterface *xinit=nullptr, ReferenceTrajectoryInterface *uinit=nullptr) override |
|
virtual | ~FullDiscretizationGridBaseSE2 ()=default |
|
| DiscretizationGridInterface ()=default |
|
| DiscretizationGridInterface (int state_dim, int control_dim) |
|
virtual | ~DiscretizationGridInterface ()=default |
|
void | applyIncrementNonFixed (const Eigen::Ref< const Eigen::VectorXd > &increment) |
|
void | applyIncrementNonFixed (int idx, double increment) |
|
void | backupParametersActiveVertices () |
|
void | clearConnectedEdges () |
|
void | computeVertexIndices () |
|
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 () |
|
|
bool | adaptGrid (bool new_run, NlpFunctions &nlp_fun) override |
|
bool | adaptGridSimpleShrinkingHorizon (NlpFunctions &nlp_fun) |
|
bool | adaptGridTimeBasedAggressiveEstimate (NlpFunctions &nlp_fun) |
|
bool | adaptGridTimeBasedSingleStep (NlpFunctions &nlp_fun) |
|
bool | isDtFixedIntended () const override |
|
bool | isGridAdaptActive () const override |
|
bool | isMovingHorizonWarmStartActive () const override |
|
void | createEdges (NlpFunctions &nlp_fun, OptimizationEdgeSet &edges, SystemDynamicsInterface::Ptr dynamics) override |
|
bool | checkAndInitializeXfFixedFlags (int dim_x) |
|
void | computeActiveVertices () override |
|
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 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) |
|
Finite differences grid with variable resolution for SE2.
This class implements a full discretization grid with finite difference collocation. The temporal resolution is free. This grid corresponds to the global uniform grid in time-optimal MPC as defined in [1,2].
[1] C. Rösmann, F. Hoffmann und T. Bertram: Timed-Elastic-Bands for Time-Optimal Point-to-Point Nonlinear Model Predictive Control, ECC 2015. [2] C. Rösmann: Time-optimal nonlinear model predictive control - Direct transcription methods with variable discretization and structural sparsity exploitation. Dissertation, TU Dortmund University, Oct. 2019.
- See also
- FiniteDifferencesGridSE2
- Author
- Christoph Rösmann (chris.nosp@m.toph.nosp@m..roes.nosp@m.mann.nosp@m.@tu-d.nosp@m.ortm.nosp@m.und.d.nosp@m.e)
Definition at line 67 of file finite_differences_variable_grid_se2.h.