BSpline¶
Functions
- 
void interpolate(InputDataSet Input, int Num, int P, OutputDataSet *Output)¶
- This function takes the Input structure, performs the BSpline interpolation and outputs the result into Output structure 
- 
void approximate(InputDataSet Input, int Num, int Q, int P, OutputDataSet *Output)¶
- This function takes the Input structure, performs the BSpline LS approximation and outputs the result into Output structure 
- 
void basisFunction(double t, Eigen::VectorXd U, int I, int P, double *NN, double *NN1, double *NN2)¶
- This function calculates the basis functions NN of order P, and derivatives NN1, NN2, for a given time t and knot vector U 
- 
class InputDataSet¶
- #include <BSpline.h>The InputDataSet class contains the information about the points that must be interpolated. It is used as a data structure to intialize the inputs that are passed to the interpolating function. Public Functions - 
InputDataSet()¶
- This constructor initializes an Input structure for BSpline interpolation 
 - 
InputDataSet(Eigen::VectorXd X1, Eigen::VectorXd X2, Eigen::VectorXd X3)¶
- The constructor requires 3 N-dimensional vectors containing the coordinates of the waypoints 
 - 
~InputDataSet()¶
- Generic destructor 
 - 
void setXDot_0(Eigen::Vector3d XDot_0)¶
- Set the first derivative of the starting point (optional) 
 - 
void setXDot_N(Eigen::Vector3d XDot_N)¶
- Set the first derivative of the last point (optional) 
 - 
void setXDDot_0(Eigen::Vector3d XDDot_0)¶
- Set the second derivative of the starting point (optional) 
 - 
void setXDDot_N(Eigen::Vector3d XDDot_N)¶
- Set the second derivative of the last point (optional) 
 - 
void setT(Eigen::VectorXd T)¶
- Set the time tags for each waypoint (optional). Cannot be imposed together with avg velocity norm below 
 - 
void setW(Eigen::VectorXd W)¶
- Set the weights for each waypoint. Weights are used in the LS approximation 
 - 
void setAvgXDot(double AvgXDot)¶
- Set the average velocity norm (optional). Cannot be imposed together with time tag vector above 
 Public Members - 
double AvgXDot¶
- desired average velocity norm 
 - 
Eigen::VectorXd T¶
- time tags: specifies at what time each waypoint is hit 
 - 
Eigen::VectorXd W¶
- weight vector for the LS approximation 
 - 
Eigen::VectorXd X1¶
- coordinate #1 of the waypoints 
 - 
Eigen::VectorXd X2¶
- coordinate #2 of the waypoints 
 - 
Eigen::VectorXd X3¶
- coordinate #3 of the waypoints 
 - 
Eigen::Vector3d XDot_0¶
- 3D vector containing the first derivative at starting point 
 - 
Eigen::Vector3d XDot_N¶
- 3D vector containing the first derivative at final point 
 - 
Eigen::Vector3d XDDot_0¶
- 3D vector containing the second derivative at starting point 
 - 
Eigen::Vector3d XDDot_N¶
- 3D vector containing the second derivative at final point 
 - 
bool T_flag¶
- indicates that time tags have been specified; if true, AvgXDot_flag is false 
 - 
bool AvgXDot_flag¶
- indicates that avg velocity norm has been specified; if true, T_flag is false 
 - 
bool W_flag¶
- indicates that weight vector has been specified 
 - 
bool XDot_0_flag¶
- indicates that first derivative at starting point has been specified 
 - 
bool XDot_N_flag¶
- indicates that first derivative at final point has been specified 
 - 
bool XDDot_0_flag¶
- indicates that second derivative at starting point has been specified 
 - 
bool XDDot_N_flag¶
- indicates that second derivative at final point has been specified 
 
- 
InputDataSet()¶
- 
class OutputDataSet¶
- #include <BSpline.h>The OutputDataSet class is used as a data structure to contain the interpolated function and its first- and second-order derivatives, together with the time-tag vector T. Public Functions - 
OutputDataSet()¶
- This constructor initializes an Output structure for BSpline interpolation 
 - 
~OutputDataSet()¶
- Generic destructor 
 - 
void getData(double t, double x[3], double xDot[3], double xDDot[3])¶
- This method returns x, xDot and xDDot at the desired input time T 
 - 
double getStates(double t, int derivative, int index)¶
- This method returns single coordinates of x, xDot and xDDot at the desired input time T. - It is designed to be accessible from Python 
 Public Members - 
Eigen::VectorXd T¶
- time tags for each point of the interpolated trajectory 
 - 
Eigen::VectorXd X1¶
- coordinate #1 of the interpolated trajectory 
 - 
Eigen::VectorXd X2¶
- coordinate #2 of the interpolated trajectory 
 - 
Eigen::VectorXd X3¶
- coordinate #3 of the interpolated trajectory 
 - 
Eigen::VectorXd XD1¶
- first derivative of coordinate #1 of the interpolated trajectory 
 - 
Eigen::VectorXd XD2¶
- first derivative of coordinate #2 of the interpolated trajectory 
 - 
Eigen::VectorXd XD3¶
- first derivative of coordinate #3 of the interpolated trajectory 
 - 
Eigen::VectorXd XDD1¶
- second derivative of coordinate #1 of the interpolated trajectory 
 - 
Eigen::VectorXd XDD2¶
- second derivative of coordinate #2 of the interpolated trajectory 
 - 
Eigen::VectorXd XDD3¶
- second derivative of coordinate #3 of the interpolated trajectory 
 - 
int P¶
- polynomial degree of the BSpline 
 - 
Eigen::VectorXd U¶
- knot vector of the BSpline 
 - 
Eigen::VectorXd C1¶
- coordinate #1 of the control points 
 - 
Eigen::VectorXd C2¶
- coordinate #2 of the control points 
 - 
Eigen::VectorXd C3¶
- coordinate #3 of the control points 
 
- 
OutputDataSet()¶