diff --git a/include/bezier-com-traj/data.hh b/include/bezier-com-traj/data.hh index 02f2ffbc4a52e972fe756b8b705dea85a6d01f8a..0854d9c9cfed6539ded9a7b3101019e47ee4e4dc 100644 --- a/include/bezier-com-traj/data.hh +++ b/include/bezier-com-traj/data.hh @@ -18,6 +18,12 @@ namespace bezier_com_traj { + /** + * @brief Contact data contains all the contact information + * relative to a contact phase: contact points and normals + * (within Equilibrium object), as well as any additional + * kinematic and angular constraints. + */ struct BEZIER_COM_TRAJ_DLLAPI ContactData { ContactData() @@ -29,12 +35,17 @@ namespace bezier_com_traj ~ContactData(){} centroidal_dynamics::Equilibrium* contactPhase_; - MatrixX3 Kin_; - VectorX kin_; - MatrixX3 Ang_; - VectorX ang_; + MatrixX3 Kin_; // inequality kinematic constraints + VectorX kin_; + MatrixX3 Ang_; // inequality angular momentum constraints + VectorX ang_; }; + /** + * @brief Used to define the constraints on the trajectory generation problem. + * Flags are used to constrain initial and terminal com positions an derivatives. + * Additionally, the maximum acceleration can be bounded. + */ struct BEZIER_COM_TRAJ_DLLAPI Constraints { Constraints() @@ -58,6 +69,14 @@ namespace bezier_com_traj }; + /** + * @brief Defines all the inputs of the problem: + * Initial and terminal constraints, as well as selected + * cost functions. Also,a list of ContactData defines the + * different phases of the problem. While the method + * can handle any phase greater than one, using more + * than three phases is probably too constraining. + */ struct BEZIER_COM_TRAJ_DLLAPI ProblemData { ProblemData() @@ -78,6 +97,11 @@ namespace bezier_com_traj CostFunction costFunction_; }; + + /** + * @brief Struct used to return the results of the trajectory generation + * problem. + */ struct BEZIER_COM_TRAJ_DLLAPI ResultData { ResultData(): @@ -103,11 +127,16 @@ namespace bezier_com_traj x = (other.x); return *this; } - bool success_; - double cost_; - VectorX x; + bool success_; // whether the optimization was successful + double cost_; // cost evaluation for the solved control point + VectorX x; //control point }; + + /** + * @brief Specialized ResultData that computes the Bezier curves + * corresponding to the computed trajectory + */ struct BEZIER_COM_TRAJ_DLLAPI ResultDataCOMTraj : public ResultData { ResultDataCOMTraj(): @@ -119,10 +148,10 @@ namespace bezier_com_traj ~ResultDataCOMTraj(){} - bezier_t c_of_t_; - bezier_t dL_of_t_; - point_t dc1_; - point_t ddc1_; + bezier_t c_of_t_; // center of mass trajectory + bezier_t dL_of_t_; // angular momentum derivative trajectory + point_t dc1_; // terminal velocity + point_t ddc1_; //terminal acceleration }; } // end namespace bezier_com_traj