ocra-wbi-plugins
Doxygen documentation for the ocra-wbi-plugins repository
ocra-wbi-plugins/ocra-icub-clients/walking-client/include/walking-client/constraintsStructs.h
Go to the documentation of this file.
00001 #ifndef _CONSTRAINTS_STRUCTS_H_
00002 #define  _CONSTRAINTS_STRUCTS_H_
00003 
00004 #include <Eigen/Core>
00005 
00006 struct ShapeConstraintsStruct {
00007     struct boundingStruct {
00008         Eigen::MatrixXd C;
00009         Eigen::VectorXd d;
00010         Eigen::MatrixXd Cbar;
00011         Eigen::VectorXd dbar;
00012         Eigen::VectorXd fhistory;
00013     };
00014     struct constancyStruct {
00015         // Upper bound of the discontinuities in a and b. S = (Sx, Sy)
00016         Eigen::Vector2d S;
00017         Eigen::MatrixXd C1;
00018         Eigen::MatrixXd C2;
00019         Eigen::VectorXd d;
00020         Eigen::VectorXd dBar;
00021         Eigen::MatrixXd Cbar1;
00022         Eigen::MatrixXd Cbar2;
00023         Eigen::VectorXd fHistory;
00024     };
00025     struct sequentialityStruct {
00026         Eigen::MatrixXd C;
00027         Eigen::VectorXd d;
00028         Eigen::MatrixXd Cbar;
00029         Eigen::VectorXd dBar;
00030         Eigen::VectorXd fHistory;
00031     };
00032 
00033     Eigen::MatrixXd Cbar;
00034     Eigen::VectorXd dbar;
00035     Eigen::VectorXd fHistory;
00036     boundingStruct bounding;
00037     constancyStruct constancy;
00038     sequentialityStruct sequentiality;
00039 };
00040 
00041 struct AdmissibilityConstraintsStruct {
00042     struct SSandDSAlternation {
00043         Eigen::MatrixXd C1;
00044         Eigen::MatrixXd C2;
00045         Eigen::VectorXd d;
00046         Eigen::MatrixXd C1bar;
00047         Eigen::MatrixXd C2bar;
00048         Eigen::VectorXd dBar;
00049         Eigen::VectorXd fHistory;
00050     };
00051     struct SingleSupport {
00052         Eigen::MatrixXd C;
00053         Eigen::VectorXd d;
00054         Eigen::MatrixXd Cbar;
00055         Eigen::VectorXd dBar;
00056         Eigen::VectorXd S;
00057         Eigen::VectorXd fHistory;
00058     };
00059     struct ContactConfigurationHistory {
00060         Eigen::MatrixXd C1;
00061         Eigen::MatrixXd C2;
00062         Eigen::VectorXd d;
00063         Eigen::MatrixXd C1bar;
00064         Eigen::MatrixXd C2bar;
00065         Eigen::VectorXd dBar;
00066         Eigen::VectorXd fHistory;
00067     };
00068     struct ContactConfigurationEnforcement {
00069         Eigen::MatrixXd C;
00070         Eigen::VectorXd d;
00071         Eigen::MatrixXd Cbar;
00072         Eigen::VectorXd dBar;
00073         Eigen::VectorXd fHistory;
00074     };
00075     Eigen::MatrixXd Cbar;
00076     Eigen::VectorXd dbar;
00077     Eigen::VectorXd fHistory;
00078     SSandDSAlternation ssAndDoubleSupportAlternation;
00079     SingleSupport singleSupport;
00080     ContactConfigurationHistory contactConfigurationHistory;
00081     ContactConfigurationEnforcement contactConfigurationEnforcement;
00082 };
00083 
00084 enum CONSTRAINTS_TYPE {
00085     SHAPE_CONSTRAINTS = 0,
00086     ADMISSIBILITY_CONSTRAINTS,
00087     WALKING_CONSTRAINTS
00088 };
00089 
00090 
00091 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines