Go to the documentation of this file.
9 #ifndef SOBEC_CONTACT_3D_HPP_
10 #define SOBEC_CONTACT_3D_HPP_
12 #include <crocoddyl/core/utils/deprecate.hpp>
13 #include <crocoddyl/core/utils/exception.hpp>
14 #include <crocoddyl/multibody/contact-base.hpp>
15 #include <crocoddyl/multibody/contacts/contact-3d.hpp>
16 #include <crocoddyl/multibody/fwd.hpp>
17 #include <pinocchio/algorithm/frames.hpp>
18 #include <pinocchio/algorithm/kinematics-derivatives.hpp>
19 #include <pinocchio/multibody/data.hpp>
20 #include <pinocchio/spatial/motion.hpp>
25 namespace newcontacts {
27 template <
typename _Scalar>
30 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
33 typedef crocoddyl::MathBaseTpl<Scalar>
MathBase;
34 typedef crocoddyl::ContactModel3DTpl<Scalar>
Base;
51 const pinocchio::FrameIndex
id,
const Vector3s& xref,
53 const Vector2s& gains = Vector2s::Zero(),
54 const pinocchio::ReferenceFrame type = pinocchio::LOCAL);
67 const pinocchio::FrameIndex
id,
const Vector3s& xref,
68 const Vector2s& gains = Vector2s::Zero(),
69 const pinocchio::ReferenceFrame type = pinocchio::LOCAL);
80 const boost::shared_ptr<crocoddyl::ContactDataAbstractTpl<Scalar>>& data,
81 const Eigen::Ref<const VectorXs>&
x);
91 const boost::shared_ptr<crocoddyl::ContactDataAbstractTpl<Scalar>>& data,
92 const Eigen::Ref<const VectorXs>&
x);
101 const boost::shared_ptr<crocoddyl::ContactDataAbstractTpl<Scalar>>& data,
107 virtual boost::shared_ptr<crocoddyl::ContactDataAbstractTpl<Scalar>>
108 createData(pinocchio::DataTpl<Scalar>*
const data);
128 void set_type(
const pinocchio::ReferenceFrame type);
133 const pinocchio::ReferenceFrame&
get_type()
const;
140 virtual void print(std::ostream& os)
const;
151 pinocchio::ReferenceFrame type_;
154 template <
typename _Scalar>
156 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
160 typedef crocoddyl::ContactData3DTpl<Scalar>
Base;
166 template <
template <
typename Scalar>
class Model>
168 pinocchio::DataTpl<Scalar>*
const data)
170 fJf(6, model->get_state()->get_nv()),
175 fXjdv_dq(6, model->get_state()->get_nv()),
176 fXjda_dq(6, model->get_state()->get_nv()),
177 fXjda_dv(6, model->get_state()->get_nv()),
180 model->get_state()->get_nv()) {
181 frame = model->get_id();
182 jMf = model->get_state()->get_pinocchio()->frames[frame].placement;
183 fXj = jMf.inverse().toActionMatrix();
198 type = model->get_type();
213 using Base::pinocchio;
215 pinocchio::MotionTpl<Scalar>
v;
216 pinocchio::MotionTpl<Scalar>
a;
231 pinocchio::ReferenceFrame
type;
245 #endif // SOBEC_CONTACT_3D_HPP_
Definition: activation-quad-ref.hpp:19