9 #ifndef SOBEC_RESIDUAL_FLY_HIGH_HPP_
10 #define SOBEC_RESIDUAL_FLY_HIGH_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;
31 template <
typename _Scalar>
34 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
38 typedef ResidualModelAbstractTpl<Scalar>
Base;
58 const pinocchio::FrameIndex frame_id,
59 const Scalar slope,
const std::size_t nu);
72 const pinocchio::FrameIndex frame_id,
83 virtual void calc(
const boost::shared_ptr<ResidualDataAbstract>& data,
84 const Eigen::Ref<const VectorXs>&
x,
85 const Eigen::Ref<const VectorXs>& u);
94 virtual void calcDiff(
const boost::shared_ptr<ResidualDataAbstract>& data,
95 const Eigen::Ref<const VectorXs>&
x,
96 const Eigen::Ref<const VectorXs>& u);
97 virtual boost::shared_ptr<ResidualDataAbstract> createData(
103 const pinocchio::FrameIndex& get_frame_id()
const;
108 void set_frame_id(
const pinocchio::FrameIndex& fid);
116 using Base::u_dependent_;
118 using Base::v_dependent_;
121 pinocchio::FrameIndex frame_id;
123 typename StateMultibody::PinocchioModel
127 template <
typename _Scalar>
129 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
133 typedef ResidualDataAbstractTpl<Scalar>
Base;
139 template <
template <
typename Scalar>
class Model>
143 d_dq(6, model->get_state()->get_nv()),
144 d_dv(6, model->get_state()->get_nv()),
145 l_dnu_dq(6, model->get_state()->get_nv()),
146 l_dnu_dv(6, model->get_state()->get_nv()),
147 o_dv_dq(3, model->get_state()->get_nv()),
148 o_dv_dv(3, model->get_state()->get_nv()),
149 o_Jw(3, model->get_state()->get_nv()),
150 vxJ(3, model->get_state()->get_nv()) {
153 DataCollectorMultibodyTpl<Scalar>* d =
154 dynamic_cast<DataCollectorMultibodyTpl<Scalar>*
>(shared);
157 "Invalid argument: the shared data should be derived from "
158 "DataCollectorMultibody");
162 pinocchio = d->pinocchio;
194 #endif // SOBEC_RESIDUAL_FLY_HIGH_HPP_