9 #ifndef SOBEC_RESIDUAL_FEET_COLLISION_HPP_
10 #define SOBEC_RESIDUAL_FEET_COLLISION_HPP_
12 #include <crocoddyl/core/residual-base.hpp>
13 #include <crocoddyl/multibody/data/multibody.hpp>
14 #include <crocoddyl/multibody/fwd.hpp>
15 #include <crocoddyl/multibody/states/multibody.hpp>
20 using namespace crocoddyl;
28 template <
typename _Scalar>
31 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
35 typedef ResidualModelAbstractTpl<Scalar>
Base;
52 const pinocchio::FrameIndex frame_id1,
53 const pinocchio::FrameIndex frame_id2,
54 const std::size_t nu);
66 const pinocchio::FrameIndex frame_id1,
67 const pinocchio::FrameIndex frame_id2);
77 virtual void calc(
const boost::shared_ptr<ResidualDataAbstract>& data,
78 const Eigen::Ref<const VectorXs>&
x,
79 const Eigen::Ref<const VectorXs>& u);
88 virtual void calcDiff(
const boost::shared_ptr<ResidualDataAbstract>& data,
89 const Eigen::Ref<const VectorXs>&
x,
90 const Eigen::Ref<const VectorXs>& u);
91 virtual boost::shared_ptr<ResidualDataAbstract> createData(
95 const pinocchio::FrameIndex& get_frame_id1()
const;
97 const pinocchio::FrameIndex& get_frame_id2()
const;
100 void set_frame_id1(
const pinocchio::FrameIndex& fid1);
102 void set_frame_id2(
const pinocchio::FrameIndex& fid2);
107 using Base::u_dependent_;
109 using Base::v_dependent_;
112 pinocchio::FrameIndex frame_id1;
113 pinocchio::FrameIndex frame_id2;
114 typename StateMultibody::PinocchioModel
118 template <
typename _Scalar>
120 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
124 typedef ResidualDataAbstractTpl<Scalar>
Base;
127 typedef Eigen::Matrix<Scalar, 2, Eigen::Dynamic>
Matrix2xs;
131 template <
template <
typename Scalar>
class Model>
135 J1(6, model->get_state()->get_nv()),
136 J2(6, model->get_state()->get_nv()),
137 dJ(2, model->get_state()->get_nv()),
140 DataCollectorMultibodyTpl<Scalar>* d =
141 dynamic_cast<DataCollectorMultibodyTpl<Scalar>*
>(shared);
144 "Invalid argument: the shared data should be derived from "
145 "DataCollectorMultibody");
149 pinocchio = d->pinocchio;
175 #endif // SOBEC_RESIDUAL_FEET_COLLISION_HPP_