#include <Mathematics/FootConstraintsAsLinearSystem.hh>
Public Member Functions | |
FootConstraintsAsLinearSystem (SimplePluginManager *aSPM, CjrlHumanoidDynamicRobot *aHS) | |
~FootConstraintsAsLinearSystem () | |
int | ComputeLinearSystem (std::vector< CH_Point > aVecOfPoints, MAL_MATRIX(&A, double), MAL_MATRIX(&B, double), MAL_VECTOR(&C, double)) |
int | BuildLinearConstraintInequalities (std::deque< FootAbsolutePosition > &LeftFootAbsolutePositions, std::deque< FootAbsolutePosition > &RightFootAbsolutePositions, std::deque< LinearConstraintInequality_t * > &QueueOfLConstraintInequalities, double ConstraintOnX, double ConstraintOnY) |
int | BuildLinearConstraintInequalities2 (std::deque< FootAbsolutePosition > &LeftFootAbsolutePositions, std::deque< FootAbsolutePosition > &RightFootAbsolutePositions, std::deque< LinearConstraintInequality_t * > &QueueOfLConstraintInequalities, double ConstraintOnX, double ConstraintOnY) |
int | FindSimilarConstraints (MAL_MATRIX(&A, double), std::vector< int > &SimilarConstraints) |
virtual void | CallMethod (std::string &Method, std::istringstream &Args) |
This class generates matrix representation of linear constraint based on foot position. It handles a stack of constraint on a sliding mode for QP solving.
FootConstraintsAsLinearSystem::FootConstraintsAsLinearSystem | ( | SimplePluginManager * | aSPM, |
CjrlHumanoidDynamicRobot * | aHS | ||
) |
Constructor
int FootConstraintsAsLinearSystem::BuildLinearConstraintInequalities | ( | std::deque< FootAbsolutePosition > & | LeftFootAbsolutePositions, |
std::deque< FootAbsolutePosition > & | RightFootAbsolutePositions, | ||
std::deque< LinearConstraintInequality_t * > & | QueueOfLConstraintInequalities, | ||
double | ConstraintOnX, | ||
double | ConstraintOnY | ||
) |
Build a queue of constraint Inequalities based on a list of Foot Absolute Position.
References ComputeLinearSystem(), PatternGeneratorJRL::ComputeConvexHull::DoComputeConvexHull(), FindSimilarConstraints(), CjrlFoot::getAnklePositionInLocalFrame(), CjrlFoot::getSoleSize(), CjrlHumanoidDynamicRobot::leftFoot(), CjrlHumanoidDynamicRobot::rightFoot(), PatternGeneratorJRL::LinearConstraintInequality_s::SimilarConstraints, and PatternGeneratorJRL::LinearConstraintInequality_s::StartingTime.
int PatternGeneratorJRL::FootConstraintsAsLinearSystem::BuildLinearConstraintInequalities2 | ( | std::deque< FootAbsolutePosition > & | LeftFootAbsolutePositions, |
std::deque< FootAbsolutePosition > & | RightFootAbsolutePositions, | ||
std::deque< LinearConstraintInequality_t * > & | QueueOfLConstraintInequalities, | ||
double | ConstraintOnX, | ||
double | ConstraintOnY | ||
) |
Build a queue of constraint Inequalities based on a list of Foot Absolute Position.
void FootConstraintsAsLinearSystem::CallMethod | ( | std::string & | Method, |
std::istringstream & | Args | ||
) | [virtual] |
Reimplement the interface of SimplePluginManager
[in] | Method,: | The method to be called. |
[in] | Args,: | Arguments of the methods. |
int FootConstraintsAsLinearSystem::ComputeLinearSystem | ( | std::vector< CH_Point > | aVecOfPoints, |
MAL_MATRIX &, | double, | ||
MAL_MATRIX &, | double, | ||
MAL_VECTOR &, | double | ||
) |
Compute the linear system associated with the set of points specified by aVecOfPoints. aVecOfPoints is supposed to represent the convex hull of the robot contact points with the ground.
References a, b, c, MAL_MATRIX, MAL_MATRIX_RESIZE, MAL_RET_A_by_B, MAL_VECTOR, MAL_VECTOR_DIM, MAL_VECTOR_RESIZE, and n.
Referenced by BuildLinearConstraintInequalities().
int FootConstraintsAsLinearSystem::FindSimilarConstraints | ( | MAL_MATRIX &, | double, |
std::vector< int > & | SimilarConstraints | ||
) |
Find Similar Constraints
References MAL_MATRIX, and MAL_MATRIX_NB_ROWS.
Referenced by BuildLinearConstraintInequalities().