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 
35 #include <SimplePlugin.hh>
36 #include <deque>
37 #include <jrl/walkgen/pgtypes.hh>
39 #include <sstream>
40 #include <string>
41 #include <vector>
42 
43 namespace PatternGeneratorJRL {
49 class FootConstraintsAsLinearSystem : public SimplePlugin {
50  public:
52  FootConstraintsAsLinearSystem(SimplePluginManager *aSPM, PinocchioRobot *aPR);
53 
56 
63  int ComputeLinearSystem(std::vector<CH_Point> aVecOfPoints,
64  Eigen::MatrixXd &A, Eigen::MatrixXd &B,
65  Eigen::VectorXd &C);
66 
71  std::deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
72  std::deque<FootAbsolutePosition> &RightFootAbsolutePositions,
73  std::deque<LinearConstraintInequality_t *>
74  &QueueOfLConstraintInequalities,
75  double ConstraintOnX, double ConstraintOnY);
76 
80  std::deque<FootAbsolutePosition> &LeftFootAbsolutePositions,
81  std::deque<FootAbsolutePosition> &RightFootAbsolutePositions,
82  std::deque<LinearConstraintInequality_t *>
83  &QueueOfLConstraintInequalities,
84  double ConstraintOnX, double ConstraintOnY);
85 
87  int FindSimilarConstraints(Eigen::MatrixXd &A,
88  std::vector<int> &SimilarConstraints);
89 
94  virtual void CallMethod(std::string &Method, std::istringstream &Args);
95 
96  private:
97  /* ! Reference on the Humanoid Specificities. */
98  PinocchioRobot *m_PR;
99 };
100 } // namespace PatternGeneratorJRL
101 #endif /* _FOOT_CONSTRAINTS_AS_LINEAR_SYSTEM_H_ */
PatternGeneratorJRL::FootConstraintsAsLinearSystem::CallMethod
virtual void CallMethod(std::string &Method, std::istringstream &Args)
Definition: FootConstraintsAsLinearSystem.cpp:461
PatternGeneratorJRL::FootConstraintsAsLinearSystem::ComputeLinearSystem
int ComputeLinearSystem(std::vector< CH_Point > aVecOfPoints, Eigen::MatrixXd &A, Eigen::MatrixXd &B, Eigen::VectorXd &C)
Definition: FootConstraintsAsLinearSystem.cpp:80
PatternGeneratorJRL::FootConstraintsAsLinearSystem
Definition: FootConstraintsAsLinearSystem.hh:49
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:48
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:218
pgtypes.hh
PatternGeneratorJRL::PinocchioRobot
Definition: pinocchiorobot.hh:60
PatternGeneratorJRL::FootConstraintsAsLinearSystem::~FootConstraintsAsLinearSystem
~FootConstraintsAsLinearSystem()
Definition: FootConstraintsAsLinearSystem.cpp:46
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:39