3#ifdef ALIGATOR_WITH_PINOCCHIO
11template <
typename _Scalar>
15 static constexpr int NR = 2;
17 using Base = UnaryFunctionTpl<Scalar>;
18 using BaseData = StageFunctionDataTpl<Scalar>;
19 using Model = pinocchio::ModelTpl<Scalar>;
23 FlyHighResidualTpl(
const int ndx,
const Model &model,
24 const pinocchio::FrameIndex frame_id, Scalar slope,
27 void evaluate(
const ConstVectorRef &x, BaseData &data)
const;
28 void computeJacobians(
const ConstVectorRef &x, BaseData &data)
const;
30 shared_ptr<BaseData> createData()
const {
31 return std::make_shared<Data>(*
this);
34 const auto &getModel()
const {
return pin_model_; }
42template <
typename Scalar>
43using FlyHighResidualDataTpl =
typename FlyHighResidualTpl<Scalar>::Data;
45template <
typename Scalar>
47 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
52 Data(FlyHighResidualTpl
const &model)
53 : BaseData(model.ndx1, model.nu, model.nr)
54 , pdata_(model.pin_model_)
55 , d_dq(6, model.pin_model_.nv)
56 , d_dv(6, model.pin_model_.nv)
57 , l_dnu_dq(6, model.pin_model_.nv)
58 , l_dnu_dv(6, model.pin_model_.nv)
59 , o_dv_dq(3, model.pin_model_.nv)
60 , o_dv_dv(3, model.pin_model_.nv)
61 , vxJ(3, model.pin_model_.nv) {
71 pinocchio::DataTpl<Scalar> pdata_;
73 Matrix6Xs l_dnu_dq, l_dnu_dv;
74 Matrix3Xs o_dv_dq, o_dv_dv, vxJ;
80#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
81#include "aligator/modelling/multibody/fly-high.txx"
#define ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
::aligator::context::Scalar Scalar
Base struct for function data.
Represents unary functions of the form , with no control (or next-state) arguments.