10 #ifndef SPATIAL_DYN_ALGORITHMS_OPSPACE_DYNAMICS_H_
11 #define SPATIAL_DYN_ALGORITHMS_OPSPACE_DYNAMICS_H_
15 #include "spatial_dyn/eigen/spatial_math.h"
16 #include "spatial_dyn/structs/articulated_body.h"
17 #include "spatial_dyn/structs/options.h"
22 bool IsSingular(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J,
double svd_epsilon = 0);
24 Eigen::VectorXd
InverseDynamics(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J,
25 const Eigen::VectorXd& ddx, Eigen::MatrixXd *N =
nullptr,
26 const std::map<size_t, SpatialForced>& f_external = {},
27 const InverseDynamicsOptions& options = {});
29 const Eigen::MatrixXd&
Inertia(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J,
30 double svd_epsilon = 0);
32 const Eigen::MatrixXd&
InertiaInverse(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J);
34 const Eigen::MatrixXd& JacobianDynamicInverse(
const ArticulatedBody& ab,
35 const Eigen::MatrixXd& J,
36 double svd_epsilon = 0);
40 const Eigen::Vector3d& offset = Eigen::Vector3d::Zero(),
41 double svd_epsilon = 0);
43 Eigen::VectorXd
Gravity(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J,
44 double svd_epsilon = 0);
46 Eigen::VectorXd ExternalForces(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J,
47 const std::map<size_t, SpatialForced>& f_external = {},
48 double svd_epsilon = 0);
50 Eigen::VectorXd
Friction(
const ArticulatedBody& ab,
const Eigen::MatrixXd& J,
51 const Eigen::Ref<const Eigen::VectorXd> tau,
52 double svd_epsilon = 0,
double stiction_epsilon = 0.01);
55 const Eigen::Matrix6d& InertiaAba(
const ArticulatedBody& ab,
int idx_link = -1,
56 const Eigen::Vector3d& offset = Eigen::Vector3d::Zero(),
57 double svd_epsilon = 0);
59 const Eigen::Matrix6d&
InertiaInverseAba(
const ArticulatedBody& ab,
int idx_link = -1,
60 const Eigen::Vector3d& offset = Eigen::Vector3d::Zero());
62 Eigen::Vector6d CentrifugalCoriolisAba(
const ArticulatedBody& ab,
int idx_link = -1,
63 const Eigen::Vector3d& offset = Eigen::Vector3d::Zero(),
64 double svd_epsilon = 0);
66 Eigen::Vector6d GravityAba(
const ArticulatedBody& ab,
int idx_link = -1,
67 const Eigen::Vector3d& offset = Eigen::Vector3d::Zero(),
68 const std::map<size_t, SpatialForced>& f_external = {},
69 double svd_epsilon = 0);
const Eigen::MatrixXd & InertiaInverseAba(const ArticulatedBody &ab)
Definition: forward_dynamics.cc:146
const Eigen::LDLT< Eigen::MatrixXd > & InertiaInverse(const ArticulatedBody &ab)
Definition: forward_dynamics.cc:137
const Eigen::VectorXd & Gravity(const ArticulatedBody &ab)
Definition: inverse_dynamics.cc:144
const Eigen::VectorXd & CentrifugalCoriolis(const ArticulatedBody &ab)
Definition: inverse_dynamics.cc:99
Eigen::VectorXd Friction(const ArticulatedBody &ab, Eigen::Ref< const Eigen::VectorXd > tau, bool compensate, double stiction_epsilon)
Definition: inverse_dynamics.cc:199
Eigen::VectorXd InverseDynamics(const ArticulatedBody &ab, const Eigen::VectorXd &ddq, const std::map< size_t, SpatialForced > &f_external, const InverseDynamicsOptions &options)
Definition: inverse_dynamics.cc:21
const Eigen::MatrixXd & Inertia(const ArticulatedBody &ab)
Definition: inverse_dynamics.cc:223
Definition: discrete_dynamics.cc:21