9 #ifndef CROCODDYL_MULTIBODY_FRICTION_CONE_HPP_ 10 #define CROCODDYL_MULTIBODY_FRICTION_CONE_HPP_ 12 #include "crocoddyl/multibody/fwd.hpp" 13 #include "crocoddyl/core/mathbase.hpp" 17 template <
typename _Scalar>
20 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
22 typedef _Scalar Scalar;
24 typedef typename MathBase::Vector3s Vector3s;
25 typedef typename MathBase::Matrix3s Matrix3s;
26 typedef typename MathBase::VectorXs VectorXs;
27 typedef typename MathBase::MatrixXs MatrixXs;
28 typedef typename MathBase::MatrixX3s MatrixX3s;
29 typedef typename MathBase::Quaternions Quaternions;
32 FrictionConeTpl(
const Vector3s& normal,
const Scalar& mu, std::size_t nf = 4,
bool inner_appr =
true,
33 const Scalar& min_nforce = Scalar(0.),
34 const Scalar& max_nforce = std::numeric_limits<Scalar>::max());
38 void update(
const Vector3s& normal,
const Scalar& mu,
bool inner_appr =
true,
const Scalar& min_nforce = Scalar(0.),
39 const Scalar& max_nforce = std::numeric_limits<Scalar>::max());
41 const MatrixX3s& get_A()
const;
42 const VectorXs& get_lb()
const;
43 const VectorXs& get_ub()
const;
44 const Vector3s& get_nsurf()
const;
45 const Scalar& get_mu()
const;
46 const std::size_t& get_nf()
const;
47 const bool& get_inner_appr()
const;
48 const Scalar& get_min_nforce()
const;
49 const Scalar& get_max_nforce()
const;
51 template <
class Scalar>
52 friend std::ostream& operator<<(std::ostream& os, const FrictionConeTpl<Scalar>& X);
70 #include "crocoddyl/multibody/friction-cone.hxx" 72 #endif // CROCODDYL_MULTIBODY_FRICTION_CONE_HPP_