Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
towr::TimeDiscretizationConstraint Class Referenceabstract

Constraints evaluated at discretized times along a trajectory. More...

#include <time_discretization_constraint.h>

Inheritance diagram for towr::TimeDiscretizationConstraint:
Inheritance graph
[legend]

Public Types

using Bounds = ifopt::Bounds
 
using VecTimes = std::vector< double >
 
- Public Types inherited from ifopt::ConstraintSet
typedef std::shared_ptr< ConstraintSetPtr
 
typedef Composite::Ptr VariablesPtr
 
- Public Types inherited from ifopt::Component
typedef Eigen::SparseMatrix< double, Eigen::RowMajor > Jacobian
 
typedef std::shared_ptr< ComponentPtr
 
typedef std::vector< BoundsVecBound
 
typedef Eigen::VectorXd VectorXd
 

Public Member Functions

void FillJacobianBlock (std::string var_set, Jacobian &) const override
 
VecBound GetBounds () const override
 
Eigen::VectorXd GetValues () const override
 
 TimeDiscretizationConstraint (double T, double dt, std::string constraint_name)
 Constructs a constraint for ifopt. More...
 
 TimeDiscretizationConstraint (const VecTimes &dts, std::string name)
 construct a constraint for ifopt. More...
 
virtual ~TimeDiscretizationConstraint ()=default
 
- Public Member Functions inherited from ifopt::ConstraintSet
 ConstraintSet (int n_constraints, const std::string &name)
 
Jacobian GetJacobian () const final
 
void LinkWithVariables (const VariablesPtr &x)
 
virtual ~ConstraintSet ()=default
 
- Public Member Functions inherited from ifopt::Component
 Component (int num_rows, const std::string &name)
 
std::string GetName () const
 
int GetRows () const
 
virtual void Print (double tolerance, int &index_start) const
 
void SetRows (int num_rows)
 
virtual ~Component ()=default
 

Protected Member Functions

int GetNumberOfNodes () const
 
- Protected Member Functions inherited from ifopt::ConstraintSet
const VariablesPtr GetVariables () const
 

Protected Attributes

VecTimes dts_
 times at which the constraint is evaluated. More...
 

Private Member Functions

virtual void UpdateBoundsAtInstance (double t, int k, VecBound &b) const =0
 Sets upper/lower bound a specific time t, corresponding to node k. More...
 
virtual void UpdateConstraintAtInstance (double t, int k, VectorXd &g) const =0
 Sets the constraint value a specific time t, corresponding to node k. More...
 
virtual void UpdateJacobianAtInstance (double t, int k, std::string var_set, Jacobian &jac) const =0
 Sets Jacobian rows at a specific time t, corresponding to node k. More...
 

Additional Inherited Members

- Static Public Attributes inherited from ifopt::Component
static const int kSpecifyLater
 

Detailed Description

Constraints evaluated at discretized times along a trajectory.

Often one want to check the values of a specific constraint, e.g. RangeOfMotion, or DynamicConstraint at specific times t along the trajectory. This class is responsible for building the overall Jacobian from the individual Jacobians at each time instance.

Definition at line 50 of file time_discretization_constraint.h.

Member Typedef Documentation

◆ Bounds

Definition at line 53 of file time_discretization_constraint.h.

◆ VecTimes

using towr::TimeDiscretizationConstraint::VecTimes = std::vector<double>

Definition at line 52 of file time_discretization_constraint.h.

Constructor & Destructor Documentation

◆ TimeDiscretizationConstraint() [1/2]

towr::TimeDiscretizationConstraint::TimeDiscretizationConstraint ( double  T,
double  dt,
std::string  constraint_name 
)

Constructs a constraint for ifopt.

Parameters
TThe total duration of the trajectory.
dtThe discretization interval at which each constraint is evaluated.
constraint_nameThe name of the constraint.

Definition at line 37 of file time_discretization_constraint.cc.

◆ TimeDiscretizationConstraint() [2/2]

towr::TimeDiscretizationConstraint::TimeDiscretizationConstraint ( const VecTimes dts,
std::string  name 
)

construct a constraint for ifopt.

Parameters
dtsTime instances at which to evaluate the constraints.
nameThe name of the constraint.

Definition at line 52 of file time_discretization_constraint.cc.

◆ ~TimeDiscretizationConstraint()

virtual towr::TimeDiscretizationConstraint::~TimeDiscretizationConstraint ( )
virtualdefault

Member Function Documentation

◆ FillJacobianBlock()

void towr::TimeDiscretizationConstraint::FillJacobianBlock ( std::string  var_set,
Jacobian jac 
) const
overridevirtual

Implements ifopt::ConstraintSet.

Definition at line 90 of file time_discretization_constraint.cc.

◆ GetBounds()

TimeDiscretizationConstraint::VecBound towr::TimeDiscretizationConstraint::GetBounds ( ) const
overridevirtual

Implements ifopt::Component.

Definition at line 78 of file time_discretization_constraint.cc.

◆ GetNumberOfNodes()

int towr::TimeDiscretizationConstraint::GetNumberOfNodes ( ) const
protected

Definition at line 60 of file time_discretization_constraint.cc.

◆ GetValues()

TimeDiscretizationConstraint::VectorXd towr::TimeDiscretizationConstraint::GetValues ( ) const
overridevirtual

Implements ifopt::Component.

Definition at line 66 of file time_discretization_constraint.cc.

◆ UpdateBoundsAtInstance()

virtual void towr::TimeDiscretizationConstraint::UpdateBoundsAtInstance ( double  t,
int  k,
VecBound b 
) const
privatepure virtual

Sets upper/lower bound a specific time t, corresponding to node k.

Parameters
tThe time along the trajectory to set the bounds.
kThe index of the time t, so t=k*dt

Implemented in towr::DynamicConstraint, towr::RangeOfMotionConstraint, and towr::BaseMotionConstraint.

◆ UpdateConstraintAtInstance()

virtual void towr::TimeDiscretizationConstraint::UpdateConstraintAtInstance ( double  t,
int  k,
VectorXd g 
) const
privatepure virtual

Sets the constraint value a specific time t, corresponding to node k.

Parameters
tThe time along the trajectory to set the constraint.
kThe index of the time t, so t=k*dt

Implemented in towr::DynamicConstraint, towr::RangeOfMotionConstraint, and towr::BaseMotionConstraint.

◆ UpdateJacobianAtInstance()

virtual void towr::TimeDiscretizationConstraint::UpdateJacobianAtInstance ( double  t,
int  k,
std::string  var_set,
Jacobian jac 
) const
privatepure virtual

Sets Jacobian rows at a specific time t, corresponding to node k.

Parameters
tThe time along the trajcetory to set the bounds.
kThe index of the time t, so t=k*dt
var_setThe name of the ifopt variables currently being queried for.

Implemented in towr::DynamicConstraint, towr::RangeOfMotionConstraint, and towr::BaseMotionConstraint.

Member Data Documentation

◆ dts_

VecTimes towr::TimeDiscretizationConstraint::dts_
protected

times at which the constraint is evaluated.

Definition at line 77 of file time_discretization_constraint.h.


The documentation for this class was generated from the following files:


towr
Author(s): Alexander W. Winkler
autogenerated on Mon Feb 28 2022 23:54:22