hpp-centroidal-dynamics
4.10.0
Utility classes for testing (robust) equilibrium of a system in contact with the environment, and other centroidal dynamics methods.
|
Go to the documentation of this file.
6 #ifndef HPP_CENTROIDAL_DYNAMICS_CENTROIDAL_DYNAMICS_HH
7 #define HPP_CENTROIDAL_DYNAMICS_CENTROIDAL_DYNAMICS_HH
22 EQUILIBRIUM_ALGORITHM_DIP
33 static bool m_is_cdd_initialized;
36 EquilibriumAlgorithm m_algorithm;
37 SolverLP m_solver_type;
40 unsigned int m_generatorsPerContact;
50 const unsigned max_num_cdd_trials;
52 const bool canonicalize_cdd_matrix;
63 double m_b0_to_emax_coefficient;
67 const bool perturbate =
false);
77 double convert_b0_to_emax(
double b0);
79 double convert_emax_to_b0(
double emax);
82 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
94 Equilibrium(
const std::string& name,
const double mass,
const unsigned int generatorsPerContact,
95 const SolverLP solver_type = SOLVER_LP_QPOASES,
bool useWarmStart =
true,
96 const unsigned int max_num_cdd_trials = 0,
const bool canonicalize_cdd_matrix =
false);
120 void setAlgorithm(EquilibriumAlgorithm algorithm);
133 bool setNewContacts(
const MatrixX3& contactPoints,
const MatrixX3& contactNormals,
const double frictionCoefficient,
134 const EquilibriumAlgorithm alg);
148 const double frictionCoefficient,
const EquilibriumAlgorithm alg);
173 LP_status computeEquilibriumRobustness(
Cref_vector3 com,
double& robustness);
218 LP_status checkRobustEquilibrium(
Cref_vector3 com,
bool& equilibrium,
double e_max = 0.0);
const typedef Eigen::Ref< const Vector6 > & Cref_vector6
Definition: util.hh:60
EQUILIBRIUM_ALGORITHM_IP
polytope projection algorithm
Definition: centroidal_dynamics.hh:21
const Vector3 m_gravity
mass of the system
Definition: centroidal_dynamics.hh:28
std::string getName()
Get the name of this object.
Definition: centroidal_dynamics.hh:116
EQUILIBRIUM_ALGORITHM_DLP
another primal LP formulation
Definition: centroidal_dynamics.hh:19
Eigen::Matrix< value_type, 3, 1 > Vector3
Definition: util.hh:32
virtual bool getUseWarmStart()
Definition: solver_LP_abstract.hh:122
const typedef Eigen::Ref< const MatrixX3 > & Cref_matrixX3
Definition: util.hh:63
Eigen::Matrix< value_type, 6, Eigen::Dynamic, Eigen::RowMajor > Matrix6X
Definition: util.hh:43
EQUILIBRIUM_ALGORITHM_LP
Definition: centroidal_dynamics.hh:17
Matrix6X m_G_centr
gravity vector
Definition: centroidal_dynamics.hh:30
Eigen::Ref< Vector3 > Ref_vector3
Definition: util.hh:50
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > MatrixXX
Definition: util.hh:47
virtual void setUseWarmStart(bool useWarmStart)
Definition: solver_LP_abstract.hh:124
const double m_mass
Definition: centroidal_dynamics.hh:27
#define CENTROIDAL_DYNAMICS_DLLAPI
Definition: local_config.hh:52
bool useWarmStart()
Returns the useWarmStart flag.
Definition: centroidal_dynamics.hh:104
const typedef Eigen::Ref< const Vector3 > & Cref_vector3
Definition: util.hh:59
Eigen::Matrix< value_type, Eigen::Dynamic, 3, Eigen::RowMajor > MatrixX3
Definition: util.hh:40
EQUILIBRIUM_ALGORITHM_LP2
primal LP formulation
Definition: centroidal_dynamics.hh:18
Eigen::Matrix< value_type, 6, 1 > Vector6
Definition: util.hh:34
EquilibriumAlgorithm getAlgorithm()
Definition: centroidal_dynamics.hh:118
void setUseWarmStart(bool uws)
Specifies whether the LP solver is allowed to use warm start.
Definition: centroidal_dynamics.hh:110
const typedef Eigen::Ref< const Matrix6X > & Cref_matrix6X
Definition: util.hh:65
Definition: centroidal_dynamics.hh:14
void setG(Cref_matrix6X G)
Definition: centroidal_dynamics.hh:150
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > VectorX
Definition: util.hh:35
Definition: centroidal_dynamics.hh:25
EQUILIBRIUM_ALGORITHM_PP
dual LP formulation
Definition: centroidal_dynamics.hh:20
Eigen::Matrix< value_type, Eigen::Dynamic, 3, Eigen::ColMajor > MatrixX3ColMajor
Definition: util.hh:70
Eigen::Matrix< value_type, 6, 3, Eigen::RowMajor > Matrix63
Definition: util.hh:45
const typedef Eigen::Ref< const Matrix63 > & Cref_matrix63
Definition: util.hh:66
Abstract interface for a Linear Program (LP) solver.
Definition: solver_LP_abstract.hh:41