Constraints evaluated at discretized times along a trajectory. More...
#include <time_discretization_constraint.h>
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. | |
TimeDiscretizationConstraint (const VecTimes &dts, std::string name) | |
construct a constraint for ifopt. | |
virtual | ~TimeDiscretizationConstraint () |
Protected Member Functions | |
int | GetNumberOfNodes () const |
Protected Attributes | |
VecTimes | dts_ |
times at which the constraint is evaluated. | |
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. | |
virtual void | UpdateConstraintAtInstance (double t, int k, VectorXd &g) const =0 |
Sets the constraint value a specific time t, corresponding to node k. | |
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. |
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.
towr::TimeDiscretizationConstraint::TimeDiscretizationConstraint | ( | double | T, |
double | dt, | ||
std::string | constraint_name | ||
) |
Constructs a constraint for ifopt.
T | The total duration of the trajectory. |
dt | The discretization interval at which each constraint is evaluated. |
constraint_name | The name of the constraint. |
Definition at line 37 of file time_discretization_constraint.cc.
towr::TimeDiscretizationConstraint::TimeDiscretizationConstraint | ( | const VecTimes & | dts, |
std::string | name | ||
) |
construct a constraint for ifopt.
dts | Time instances at which to evaluate the constraints. |
name | The name of the constraint. |
Definition at line 52 of file time_discretization_constraint.cc.
virtual towr::TimeDiscretizationConstraint::~TimeDiscretizationConstraint | ( | ) | [virtual] |
void towr::TimeDiscretizationConstraint::FillJacobianBlock | ( | std::string | var_set, |
Jacobian & | jac | ||
) | const [override] |
Definition at line 90 of file time_discretization_constraint.cc.
TimeDiscretizationConstraint::VecBound towr::TimeDiscretizationConstraint::GetBounds | ( | ) | const [override] |
Definition at line 78 of file time_discretization_constraint.cc.
int towr::TimeDiscretizationConstraint::GetNumberOfNodes | ( | ) | const [protected] |
Definition at line 60 of file time_discretization_constraint.cc.
TimeDiscretizationConstraint::VectorXd towr::TimeDiscretizationConstraint::GetValues | ( | ) | const [override] |
Definition at line 66 of file time_discretization_constraint.cc.
virtual void towr::TimeDiscretizationConstraint::UpdateBoundsAtInstance | ( | double | t, |
int | k, | ||
VecBound & | b | ||
) | const [private, pure virtual] |
Sets upper/lower bound a specific time t, corresponding to node k.
t | The time along the trajectory to set the bounds. |
k | The index of the time t, so t=k*dt |
in/out] | b The complete vector of bounds, for which the corresponding row must be set. |
Implemented in towr::DynamicConstraint, towr::RangeOfMotionConstraint, and towr::BaseMotionConstraint.
virtual void towr::TimeDiscretizationConstraint::UpdateConstraintAtInstance | ( | double | t, |
int | k, | ||
VectorXd & | g | ||
) | const [private, pure virtual] |
Sets the constraint value a specific time t, corresponding to node k.
t | The time along the trajectory to set the constraint. |
k | The index of the time t, so t=k*dt |
in/out] | g The complete vector of constraint values, for which the corresponding row must be filled. |
Implemented in towr::DynamicConstraint, towr::RangeOfMotionConstraint, and towr::BaseMotionConstraint.
virtual void towr::TimeDiscretizationConstraint::UpdateJacobianAtInstance | ( | double | t, |
int | k, | ||
std::string | var_set, | ||
Jacobian & | jac | ||
) | const [private, pure virtual] |
Sets Jacobian rows at a specific time t, corresponding to node k.
t | The time along the trajcetory to set the bounds. |
k | The index of the time t, so t=k*dt |
var_set | The name of the ifopt variables currently being queried for. |
in/out] | jac The complete Jacobian, for which the corresponding row and columns must be set. |
Implemented in towr::DynamicConstraint, towr::RangeOfMotionConstraint, and towr::BaseMotionConstraint.
VecTimes towr::TimeDiscretizationConstraint::dts_ [protected] |
times at which the constraint is evaluated.
Definition at line 77 of file time_discretization_constraint.h.