32 #include <pinocchio/algorithm/aba.hpp> 33 #include <pinocchio/algorithm/joint-configuration.hpp> 68 if (first_or_second != ArgumentPosition::ARG0 && first_or_second != ArgumentPosition::ARG1)
70 ThrowPretty(
"Can only take derivative w.r.t. x_1 or x_2, i.e., ARG0 or ARG1. Provided: " << first_or_second);
75 if (first_or_second == ArgumentPosition::ARG0)
92 const Eigen::VectorBlock<const Eigen::VectorXd>
q = x.head(
num_positions_);
94 const Eigen::VectorBlock<const Eigen::VectorXd>
a = dx.tail(
num_velocities_);
101 Eigen::VectorXd dx_times_dt = dt * dx;
108 case Integrator::SymplecticEuler:
StateVector f(const StateVector &x, const ControlVector &u) override
#define REGISTER_DYNAMICS_SOLVER_TYPE(TYPE, DERIV)
int get_num_state_derivative() const
StateVector StateDelta(const StateVector &x_1, const StateVector &x_2) override
void integrate(const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout)
Eigen::VectorXd xdot_analytic_
Eigen::MatrixXd dStateDelta(const StateVector &x_1, const StateVector &x_2, const ArgumentPosition first_or_second) override
void difference(const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< Tangent_t > &v)
void Integrate(const StateVector &x, const StateVector &dx, const double dt, StateVector &xout) override
Eigen::Matrix< T, NU, 1 > ControlVector
void aba(const int num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &tau, const Eigen::MatrixBase< TangentVectorPool3 > &a)
std::unique_ptr< pinocchio::Data > pinocchio_data_
void dDifference(const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J, const ArgumentPosition arg)
Eigen::Matrix< T, NX, 1 > StateVector