FootConstraintsAsLinearSystem.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2009, 2010,
3  *
4  * Francois Keith
5  * Olivier Stasse
6  *
7  *
8  * JRL, CNRS/AIST
9  *
10  * This file is part of walkGenJrl.
11  * walkGenJrl is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * walkGenJrl is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Lesser Public License for more details.
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with walkGenJrl. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * Research carried out within the scope of the
24  * Joint Japanese-French Robotics Laboratory (JRL)
25  */
26 /* This object generate matrix representation of linear
27  constraint based on foot position.
28  It handles a stack of constraint on a sliding mode
29  for QP solving. */
30 
31 #ifndef _FOOT_CONSTRAINTS_AS_LINEAR_SYSTEM_H_
32 #define _FOOT_CONSTRAINTS_AS_LINEAR_SYSTEM_H_
33 
34 #include <deque>
35 #include <sstream>
36 #include <string>
37 #include <vector>
38 
40 
42 #include <SimplePlugin.hh>
43 #include <jrl/walkgen/pgtypes.hh>
44 
45 namespace PatternGeneratorJRL {
51 class FootConstraintsAsLinearSystem : public SimplePlugin {
52 public:
54  FootConstraintsAsLinearSystem(SimplePluginManager *aSPM, PinocchioRobot *aPR);
55 
58 
65  int ComputeLinearSystem(std::vector<CH_Point> aVecOfPoints,
66  Eigen::MatrixXd &A, Eigen::MatrixXd &B,
67  Eigen::VectorXd &C);
68 
73  std::deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
74  std::deque<FootAbsolutePosition> &RightFootAbsolutePositions,
75  std::deque<LinearConstraintInequality_t *>
76  &QueueOfLConstraintInequalities,
77  double ConstraintOnX, double ConstraintOnY);
78 
82  std::deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
83  std::deque<FootAbsolutePosition> &RightFootAbsolutePositions,
84  std::deque<LinearConstraintInequality_t *>
85  &QueueOfLConstraintInequalities,
86  double ConstraintOnX, double ConstraintOnY);
87 
89  int FindSimilarConstraints(Eigen::MatrixXd &A,
90  std::vector<int> &SimilarConstraints);
91 
96  virtual void CallMethod(std::string &Method, std::istringstream &Args);
97 
98 private:
99  /* ! Reference on the Humanoid Specificities. */
100  PinocchioRobot *m_PR;
101 };
102 } // namespace PatternGeneratorJRL
103 #endif /* _FOOT_CONSTRAINTS_AS_LINEAR_SYSTEM_H_ */
PatternGeneratorJRL::FootConstraintsAsLinearSystem::CallMethod
virtual void CallMethod(std::string &Method, std::istringstream &Args)
Definition: FootConstraintsAsLinearSystem.cpp:469
PatternGeneratorJRL::FootConstraintsAsLinearSystem::ComputeLinearSystem
int ComputeLinearSystem(std::vector< CH_Point > aVecOfPoints, Eigen::MatrixXd &A, Eigen::MatrixXd &B, Eigen::VectorXd &C)
Definition: FootConstraintsAsLinearSystem.cpp:82
PatternGeneratorJRL::FootConstraintsAsLinearSystem
Definition: FootConstraintsAsLinearSystem.hh:51
PatternGeneratorJRL::FootConstraintsAsLinearSystem::BuildLinearConstraintInequalities2
int BuildLinearConstraintInequalities2(std::deque< FootAbsolutePosition > &LeftFootAbsolutePositions, std::deque< FootAbsolutePosition > &RightFootAbsolutePositions, std::deque< LinearConstraintInequality_t * > &QueueOfLConstraintInequalities, double ConstraintOnX, double ConstraintOnY)
PatternGeneratorJRL::FootConstraintsAsLinearSystem::FindSimilarConstraints
int FindSimilarConstraints(Eigen::MatrixXd &A, std::vector< int > &SimilarConstraints)
Definition: FootConstraintsAsLinearSystem.cpp:49
PatternGeneratorJRL::FootConstraintsAsLinearSystem::BuildLinearConstraintInequalities
int BuildLinearConstraintInequalities(std::deque< FootAbsolutePosition > &LeftFootAbsolutePositions, std::deque< FootAbsolutePosition > &RightFootAbsolutePositions, std::deque< LinearConstraintInequality_t * > &QueueOfLConstraintInequalities, double ConstraintOnX, double ConstraintOnY)
Definition: FootConstraintsAsLinearSystem.cpp:220
pgtypes.hh
PatternGeneratorJRL::PinocchioRobot
Definition: pinocchiorobot.hh:57
PatternGeneratorJRL::FootConstraintsAsLinearSystem::~FootConstraintsAsLinearSystem
~FootConstraintsAsLinearSystem()
Definition: FootConstraintsAsLinearSystem.cpp:47
pinocchiorobot.hh
PatternGeneratorJRL
\doc Simulate a rigid body
Definition: patterngeneratorinterface.hh:41
ConvexHull.hh
PatternGeneratorJRL::FootConstraintsAsLinearSystem::FootConstraintsAsLinearSystem
FootConstraintsAsLinearSystem(SimplePluginManager *aSPM, PinocchioRobot *aPR)
Definition: FootConstraintsAsLinearSystem.cpp:40