hpp-bezier-com-traj  4.10.0
Multi contact trajectory generation for the COM using Bezier curves
common_solve_methods.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2018, LAAS-CNRS
3  * Author: Steve Tonneau
4  */
5 
6 #ifndef BEZIER_COM_TRAJ_LIB_COMMON_SOLVE_H
7 #define BEZIER_COM_TRAJ_LIB_COMMON_SOLVE_H
8 
12 #include <hpp/bezier-com-traj/solver/solver-abstract.hpp>
13 
14 #include <Eigen/Dense>
15 
16 namespace bezier_com_traj {
17 
27  const std::vector<waypoint6_t>& wps, const std::vector<curves::Bern<double> >& bernstein, int numSteps);
28 
40  const ContactData& cData, const std::vector<waypoint6_t>& wps, const std::vector<waypoint6_t>& wpL,
41  const bool useAngMomentum, bool& fail);
42 
54 BEZIER_COM_TRAJ_DLLAPI std::pair<MatrixXX, VectorX> compute6dControlPointEqualities(
55  const ContactData& cData, const std::vector<waypoint6_t>& wps, const std::vector<waypoint6_t>& wpL,
56  const bool useAngMomentum, bool& fail);
57 
73  Cref_vectorX initGuess, Cref_vectorX minBounds, Cref_vectorX maxBounds,
74  const solvers::SolverType solver = solvers::SOLVER_QUADPROG);
86  Cref_matrixXX H, Cref_vectorX g, Cref_vectorX initGuess,
87  const solvers::SolverType solver = solvers::SOLVER_QUADPROG);
88 
95 BEZIER_COM_TRAJ_DLLAPI ResultData solve(const std::pair<MatrixXX, VectorX>& Ab, const std::pair<MatrixXX, VectorX>& Hg,
96  const VectorX& init,
97  const solvers::SolverType solver = solvers::SOLVER_QUADPROG);
98 
111 BEZIER_COM_TRAJ_DLLAPI ResultData solve(const std::pair<MatrixXX, VectorX>& Ab, const std::pair<MatrixXX, VectorX>& Dd,
112  const std::pair<MatrixXX, VectorX>& Hg, Cref_vectorX minBounds,
113  Cref_vectorX maxBounds, const VectorX& init,
114  const solvers::SolverType solver = solvers::SOLVER_QUADPROG);
115 
116 template <typename Point>
117 BEZIER_COM_TRAJ_DLLAPI std::vector<std::pair<double, Point> > computeDiscretizedWaypoints(const ProblemData& pData,
118  double T,
119  const T_time& timeArray);
120 
121 template <typename Point>
122 BEZIER_COM_TRAJ_DLLAPI std::vector<std::pair<double, Point> > computeDiscretizedAccelerationWaypoints(
123  const ProblemData& pData, double T, const T_time& timeArray);
124 
125 } // end namespace bezier_com_traj
126 
127 #include "common_solve_methods.inl"
128 
129 #endif
bezier_com_traj::compute6dControlPointEqualities
BEZIER_COM_TRAJ_DLLAPI std::pair< MatrixXX, VectorX > compute6dControlPointEqualities(const ContactData &cData, const std::vector< waypoint6_t > &wps, const std::vector< waypoint6_t > &wpL, const bool useAngMomentum, bool &fail)
compute6dControlPointEqualities Given linear and angular control waypoints, compute the equality matr...
bezier_com_traj::compute6dControlPointInequalities
BEZIER_COM_TRAJ_DLLAPI std::pair< MatrixXX, VectorX > compute6dControlPointInequalities(const ContactData &cData, const std::vector< waypoint6_t > &wps, const std::vector< waypoint6_t > &wpL, const bool useAngMomentum, bool &fail)
compute6dControlPointInequalities Given linear and angular control waypoints, compute the inequality ...
Definition: common_solve_methods.cpp:82
BEZIER_COM_TRAJ_DLLAPI
#define BEZIER_COM_TRAJ_DLLAPI
Definition: local_config.hh:52
bezier_com_traj::ContactData
Contact data contains all the contact information relative to a contact phase: contact points and nor...
Definition: data.hh:27
bezier_com_traj::VectorX
centroidal_dynamics::VectorX VectorX
Definition: definitions.hh:23
waypoints_definition.hh
bezier_com_traj::ComputeDiscretizedWaypoints
BEZIER_COM_TRAJ_DLLAPI std::vector< waypoint6_t > ComputeDiscretizedWaypoints(const std::vector< waypoint6_t > &wps, const std::vector< curves::Bern< double > > &bernstein, int numSteps)
ComputeDiscretizedWaypoints Given the waypoints defining a bezier curve, computes a discretization of...
Definition: common_solve_methods.cpp:8
bezier_com_traj::T_time
std::vector< std::pair< double, int > > T_time
Definition: definitions.hh:58
bezier_com_traj::ResultData
solvers::ResultData ResultData
Definition: data.hh:111
local_config.hh
bezier_com_traj::solve
BEZIER_COM_TRAJ_DLLAPI ResultData solve(Cref_matrixXX A, Cref_vectorX b, Cref_matrixXX H, Cref_vectorX g, Cref_vectorX initGuess, Cref_vectorX minBounds, Cref_vectorX maxBounds, const solvers::SolverType solver=solvers::SOLVER_QUADPROG)
solve x' h x + 2 g' x, subject to A*x <= b using quadprog
bezier_com_traj::computeDiscretizedWaypoints
BEZIER_COM_TRAJ_DLLAPI std::vector< std::pair< double, Point > > computeDiscretizedWaypoints(const ProblemData &pData, double T, const T_time &timeArray)
bezier_com_traj::Cref_vectorX
const typedef Eigen::Ref< const VectorX > & Cref_vectorX
Definition: definitions.hh:32
bezier_com_traj::computeDiscretizedAccelerationWaypoints
BEZIER_COM_TRAJ_DLLAPI std::vector< std::pair< double, Point > > computeDiscretizedAccelerationWaypoints(const ProblemData &pData, double T, const T_time &timeArray)
data.hh
bezier_com_traj::Cref_matrixXX
const typedef Eigen::Ref< const MatrixXX > & Cref_matrixXX
Definition: definitions.hh:33
bezier_com_traj
Definition: common_solve_methods.hh:16
bezier_com_traj::ProblemData
Defines all the inputs of the problem: Initial and terminal constraints, as well as selected cost fun...
Definition: data.hh:88