Implements the direct collocation constraints for a first-order hold on the input and a cubic polynomial representation of the state trajectories.
Note that the DirectCollocation implementation allocates only ONE of these constraints, but binds that constraint multiple times (with different decision variables, along the trajectory).
|
| DirectCollocationConstraint (const systems::System< double > &system, const systems::Context< double > &context, std::variant< systems::InputPortSelection, systems::InputPortIndex > input_port_index=systems::InputPortSelection::kUseFirstInputIfItExists, bool assume_non_continuous_states_are_fixed=false) |
|
| DirectCollocationConstraint (const systems::System< AutoDiffXd > &system, systems::Context< AutoDiffXd > *context_sample, systems::Context< AutoDiffXd > *context_next_sample, systems::Context< AutoDiffXd > *context_collocation, std::variant< systems::InputPortSelection, systems::InputPortIndex > input_port_index=systems::InputPortSelection::kUseFirstInputIfItExists, bool assume_non_continuous_states_are_fixed=false) |
| Constructor which supports passing different mutable contexts for the different evaluation times. More...
|
|
| ~DirectCollocationConstraint () override=default |
|
int | num_states () const |
|
int | num_inputs () const |
|
|
| DirectCollocationConstraint (const DirectCollocationConstraint &)=delete |
|
DirectCollocationConstraint & | operator= (const DirectCollocationConstraint &)=delete |
|
| DirectCollocationConstraint (DirectCollocationConstraint &&)=delete |
|
DirectCollocationConstraint & | operator= (DirectCollocationConstraint &&)=delete |
|
template<typename DerivedLB , typename DerivedUB > |
| Constraint (int num_constraints, int num_vars, const Eigen::MatrixBase< DerivedLB > &lb, const Eigen::MatrixBase< DerivedUB > &ub, const std::string &description="") |
| Constructs a constraint which has num_constraints rows, with an input num_vars x 1 vector. More...
|
|
| Constraint (int num_constraints, int num_vars) |
| Constructs a constraint which has num_constraints rows, with an input num_vars x 1 vector, with no bounds. More...
|
|
bool | CheckSatisfied (const Eigen::Ref< const Eigen::VectorXd > &x, double tol=1E-6) const |
| Return whether this constraint is satisfied by the given value, x . More...
|
|
bool | CheckSatisfied (const Eigen::Ref< const AutoDiffVecXd > &x, double tol=1E-6) const |
|
symbolic::Formula | CheckSatisfied (const Eigen::Ref< const VectorX< symbolic::Variable >> &x) const |
|
const Eigen::VectorXd & | lower_bound () const |
|
const Eigen::VectorXd & | upper_bound () const |
|
int | num_constraints () const |
| Number of rows in the output constraint. More...
|
|
| Constraint (const Constraint &)=delete |
|
Constraint & | operator= (const Constraint &)=delete |
|
| Constraint (Constraint &&)=delete |
|
Constraint & | operator= (Constraint &&)=delete |
|
virtual | ~EvaluatorBase () |
|
void | Eval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const |
| Evaluates the expression. More...
|
|
void | Eval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const |
| Evaluates the expression. More...
|
|
void | Eval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const |
| Evaluates the expression. More...
|
|
void | set_description (const std::string &description) |
| Set a human-friendly description for the evaluator. More...
|
|
const std::string & | get_description () const |
| Getter for a human-friendly description for the evaluator. More...
|
|
std::ostream & | Display (std::ostream &os, const VectorX< symbolic::Variable > &vars) const |
| Formats this evaluator into the given stream using vars for the bound decision variable names. More...
|
|
std::ostream & | Display (std::ostream &os) const |
| Formats this evaluator into the given stream, without displaying the decision variables it is bound to. More...
|
|
std::string | ToLatex (const VectorX< symbolic::Variable > &vars, int precision=3) const |
| Returns a LaTeX string describing this evaluator. More...
|
|
int | num_vars () const |
| Getter for the number of variables, namely the number of rows in x, as used in Eval(x, y). More...
|
|
int | num_outputs () const |
| Getter for the number of outputs, namely the number of rows in y, as used in Eval(x, y). More...
|
|
void | SetGradientSparsityPattern (const std::vector< std::pair< int, int >> &gradient_sparsity_pattern) |
| Set the sparsity pattern of the gradient matrix ∂y/∂x (the gradient of y value in Eval, w.r.t x in Eval) . More...
|
|
const std::optional< std::vector< std::pair< int, int > > > & | gradient_sparsity_pattern () const |
| Returns the vector of (row_index, col_index) that contains all the entries in the gradient of Eval function (∂y/∂x) whose value could be non-zero, namely if ∂yᵢ/∂xⱼ could be non-zero, then the pair (i, j) is in gradient_sparsity_pattern. More...
|
|
bool | is_thread_safe () const |
| Returns whether it is safe to call Eval in parallel. More...
|
|
| EvaluatorBase (const EvaluatorBase &)=delete |
|
EvaluatorBase & | operator= (const EvaluatorBase &)=delete |
|
| EvaluatorBase (EvaluatorBase &&)=delete |
|
EvaluatorBase & | operator= (EvaluatorBase &&)=delete |
|
|
| DirectCollocationConstraint (std::pair< std::unique_ptr< systems::System< AutoDiffXd >>, std::unique_ptr< systems::Context< AutoDiffXd >>> owned_pair, const systems::System< AutoDiffXd > *system, systems::Context< AutoDiffXd > *context_sample, systems::Context< AutoDiffXd > *context_next_sample, systems::Context< AutoDiffXd > *context_collocation, int num_states, int num_inputs, std::variant< systems::InputPortSelection, systems::InputPortIndex > input_port_index, bool assume_non_continuous_states_are_fixed) |
|
void | DoEval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const override |
| Implements expression evaluation for scalar type double. More...
|
|
void | DoEval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const override |
| Implements expression evaluation for scalar type AutoDiffXd. More...
|
|
void | DoEval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const override |
| Implements expression evaluation for scalar type symbolic::Expression. More...
|
|
void | UpdateLowerBound (const Eigen::Ref< const Eigen::VectorXd > &new_lb) |
| Updates the lower bound. More...
|
|
void | UpdateUpperBound (const Eigen::Ref< const Eigen::VectorXd > &new_ub) |
| Updates the upper bound. More...
|
|
void | set_bounds (const Eigen::Ref< const Eigen::VectorXd > &new_lb, const Eigen::Ref< const Eigen::VectorXd > &new_ub) |
| Set the upper and lower bounds of the constraint. More...
|
|
virtual bool | DoCheckSatisfied (const Eigen::Ref< const Eigen::VectorXd > &x, const double tol) const |
|
virtual bool | DoCheckSatisfied (const Eigen::Ref< const AutoDiffVecXd > &x, const double tol) const |
|
virtual symbolic::Formula | DoCheckSatisfied (const Eigen::Ref< const VectorX< symbolic::Variable >> &x) const |
|
| EvaluatorBase (int num_outputs, int num_vars, const std::string &description="") |
| Constructs a evaluator. More...
|
|
virtual std::ostream & | DoDisplay (std::ostream &os, const VectorX< symbolic::Variable > &vars) const |
| NVI implementation of Display. More...
|
|
virtual std::string | DoToLatex (const VectorX< symbolic::Variable > &vars, int precision) const |
|
void | set_num_outputs (int num_outputs) |
|
void | set_is_thread_safe (bool is_thread_safe) |
|