ID.h
Go to the documentation of this file.
1 /*
2  * Copyright 2012-2019 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
7 // includes
8 // std
9 #include <vector>
10 
11 // SpaceVecAlg
12 #include <rbdyn/config.hh>
13 
14 #include <SpaceVecAlg/SpaceVecAlg>
15 
16 namespace rbd
17 {
18 class MultiBody;
19 struct MultiBodyConfig;
20 
24 class RBDYN_DLLAPI InverseDynamics
25 {
26 public:
29  InverseDynamics(const MultiBody & mb);
30 
38  void inverseDynamics(const MultiBody & mb, MultiBodyConfig & mbc);
45  void inverseDynamicsNoInertia(const MultiBody & mb, MultiBodyConfig & mbc);
46 
47  // safe version for python binding
48 
52  void sInverseDynamics(const MultiBody & mb, MultiBodyConfig & mbc);
56  void sInverseDynamicsNoInertia(const MultiBody & mb, MultiBodyConfig & mbc);
57 
63  const std::vector<sva::ForceVecd> & f() const;
64 
65 private:
72  void computeJointTorques(const MultiBody & mb, MultiBodyConfig & mbc);
73 
74 private:
78  std::vector<sva::ForceVecd> f_;
79 };
80 
81 } // namespace rbd
rbd::MultiBody
Definition: MultiBody.h:29
rbd
Definition: common.h:20
rbd::MultiBodyConfig
Definition: MultiBodyConfig.h:23
rbd::InverseDynamics
Definition: ID.h:24
rbd::InverseDynamics::InverseDynamics
InverseDynamics()
Definition: ID.h:27