Go to the documentation of this file.
32 #include <pinocchio/algorithm/aba.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)
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 StateDelta(const StateVector &x_1, const StateVector &x_2) override
Eigen::Matrix< T, NX, 1 > StateVector
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)
#define REGISTER_DYNAMICS_SOLVER_TYPE(TYPE, DERIV)
std::unique_ptr< pinocchio::Data > pinocchio_data_
Eigen::VectorXd xdot_analytic_
int get_num_state_derivative() const
void dDifference(const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianIn_t > &Jin, int self, const Eigen::MatrixBase< JacobianOut_t > &Jout, const ArgumentPosition arg)
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::Matrix< T, NU, 1 > ControlVector
void Integrate(const StateVector &x, const StateVector &dx, const double dt, StateVector &xout) override
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const container::aligned_vector< ForceDerived > &fext, const Convention rf=Convention::LOCAL)
StateVector f(const StateVector &x, const ControlVector &u) override