Classes |
struct | IndexInfo |
| Holds information about the node the optimization index represents. More...
|
Public Types |
enum | Side { Start = 0,
End
} |
Public Member Functions |
void | AddFinalBound (Dx deriv, const std::vector< int > &dimensions, const VectorXd &val) |
| Restricts the last node in the spline.
|
void | AddObserver (ObserverPtr const spline) |
| Adds a dependent observer that gets notified when the nodes change.
|
void | AddStartBound (Dx deriv, const std::vector< int > &dimensions, const VectorXd &val) |
| Restricts the first node in the spline.
|
const std::vector< Node > | GetBoundaryNodes (int poly_id) const |
virtual VecBound | GetBounds () const override |
int | GetDim () const |
virtual std::vector< IndexInfo > | GetNodeInfoAtOptIndex (int idx) const =0 |
| The node information that the optimization index represents.
|
const std::vector< Node > | GetNodes () const |
int | GetPolynomialCount () const |
VectorXd | GetValues () const override |
int | Index (const IndexInfo &node_info) const |
| The index at which a specific node variable is stored.
|
int | Index (int node_id, Dx deriv, int node_dim) const |
void | InitializeNodesTowardsGoal (const VectorXd &initial_pos, const VectorXd &final_pos, double t_total) |
| Sets nodes pos/vel equally spaced from initial to final position.
|
void | SetVariables (const VectorXd &x) override |
| Sets the node position and velocity optimization variables.
|
Static Public Member Functions |
static int | GetNodeId (int poly_id, Side side) |
| The node ID that belongs to a specific side of a specific polynomial.
|
Protected Member Functions |
void | InitMembers (int n_nodes, int n_variables) |
| initializes the member variables.
|
| Nodes (int n_dim, const std::string &variable_name) |
virtual | ~Nodes () |
Protected Attributes |
VecBound | bounds_ |
| the bounds on the node values.
|
Private Member Functions |
void | AddBound (const IndexInfo &node_info, double value) |
| Restricts a specific optimization variables.
|
void | AddBounds (int node_id, Dx deriv, const std::vector< int > &dim, const VectorXd &values) |
| Bounds a specific node variables.
|
void | UpdateObservers () const |
| Notifies the subscribed observers that the node values changes.
|
Private Attributes |
int | n_dim_ |
std::vector< Node > | nodes_ |
std::vector< ObserverPtr > | observers_ |
Position and velocity of nodes used to generate a Hermite spline.
Instead of setting the polynomial coefficients directly, a third-order polynomial is also fully defined by the value and first-derivative of the start and end of the polynomial as well as the duration. This way of specifying a polynomial is called "Hermite". These are the node values of position and velocity.
- See also:
- class CubicHermitePolynomial
Definition at line 52 of file nodes.h.