23 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25 typedef _Scalar Scalar;
29 typedef typename MathBase::VectorXs VectorXs;
30 typedef typename MathBase::MatrixXs MatrixXs;
33 const pinocchio::ReferenceFrame type,
34 const std::size_t nc);
37 "Use constructor that passes the type type of contact, this assumes is "
40 const std::size_t nc);)
43 virtual void calc(
const std::shared_ptr<ImpulseDataAbstract>& data,
44 const Eigen::Ref<const VectorXs>& x) = 0;
45 virtual void calcDiff(
const std::shared_ptr<ImpulseDataAbstract>& data,
46 const Eigen::Ref<const VectorXs>& x) = 0;
48 virtual void updateForce(
const std::shared_ptr<ImpulseDataAbstract>& data,
49 const VectorXs& force) = 0;
50 void updateForceDiff(
const std::shared_ptr<ImpulseDataAbstract>& data,
51 const MatrixXs& df_dx)
const;
52 void setZeroForce(
const std::shared_ptr<ImpulseDataAbstract>& data)
const;
53 void setZeroForceDiff(
const std::shared_ptr<ImpulseDataAbstract>& data)
const;
55 virtual std::shared_ptr<ImpulseDataAbstract> createData(
56 pinocchio::DataTpl<Scalar>*
const data);
58 const std::shared_ptr<StateMultibody>& get_state()
const;
59 std::size_t get_nc()
const;
60 DEPRECATED(
"Use get_nc().", std::size_t get_ni()
const;)
61 std::size_t get_nu()
const;
66 pinocchio::FrameIndex
get_id()
const;
71 void set_id(
const pinocchio::FrameIndex
id);
76 void set_type(
const pinocchio::ReferenceFrame type);
86 template <
class Scalar>
95 virtual void print(std::ostream& os)
const;
98 std::shared_ptr<StateMultibody> state_;
100 pinocchio::FrameIndex
id_;
106 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
108 typedef _Scalar Scalar;
111 typedef typename MathBase::VectorXs VectorXs;
112 typedef typename MathBase::MatrixXs MatrixXs;
113 typedef typename pinocchio::SE3Tpl<Scalar> SE3;
115 template <
template <
typename Scalar>
class Model>
117 pinocchio::DataTpl<Scalar>*
const data)
119 dv0_dq(model->get_nc(), model->get_state()->get_nv()),
120 dtau_dq(model->get_state()->get_nv(), model->get_state()->get_nv()) {
133 typename SE3::ActionMatrixType fXj;
State multibody representation.