FD.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
// Eigen
12
#include <Eigen/Core>
13
14
// SpaceVecAlg
15
#include <rbdyn/config.hh>
16
17
#include <SpaceVecAlg/SpaceVecAlg>
18
19
namespace
rbd
20
{
21
class
MultiBody;
22
struct
MultiBodyConfig;
23
27
class
RBDYN_DLLAPI
ForwardDynamics
28
{
29
public
:
30
ForwardDynamics
() {}
32
ForwardDynamics
(
const
MultiBody
& mb);
33
41
void
forwardDynamics(
const
MultiBody
& mb,
MultiBodyConfig
& mbc);
42
48
void
computeH(
const
MultiBody
& mb,
const
MultiBodyConfig
& mbc);
49
56
void
computeC(
const
MultiBody
& mb,
const
MultiBodyConfig
& mbc);
57
59
const
Eigen::MatrixXd &
H
()
const
60
{
61
return
H_;
62
}
63
65
const
Eigen::VectorXd &
C
()
const
66
{
67
return
C_;
68
}
69
71
const
std::vector<sva::RBInertiad> &
inertiaSubTree
()
const
72
{
73
return
I_st_;
74
}
75
76
// safe version for python binding
77
81
void
sForwardDynamics(
const
MultiBody
& mb,
MultiBodyConfig
& mbc);
82
86
void
sComputeH(
const
MultiBody
& mb,
const
MultiBodyConfig
& mbc);
87
91
void
sComputeC(
const
MultiBody
& mb,
const
MultiBodyConfig
& mbc);
92
93
private
:
94
Eigen::MatrixXd H_;
95
Eigen::VectorXd C_;
96
97
// H computation
98
std::vector<sva::RBInertiad> I_st_;
99
std::vector<Eigen::Matrix<double, 6, Eigen::Dynamic>> F_;
100
101
// C computation
102
std::vector<sva::MotionVecd> acc_;
103
std::vector<sva::ForceVecd> f_;
104
105
// torque computation
106
Eigen::VectorXd tmpFd_;
107
108
std::vector<int> dofPos_;
109
110
Eigen::LDLT<Eigen::MatrixXd> ldlt_;
111
};
112
113
}
// namespace rbd
rbd::ForwardDynamics::H
const Eigen::MatrixXd & H() const
Definition:
FD.h:59
rbd::ForwardDynamics::inertiaSubTree
const std::vector< sva::RBInertiad > & inertiaSubTree() const
Definition:
FD.h:71
rbd::MultiBody
Definition:
MultiBody.h:29
rbd::ForwardDynamics::C
const Eigen::VectorXd & C() const
Definition:
FD.h:65
rbd
Definition:
common.h:20
rbd::ForwardDynamics::ForwardDynamics
ForwardDynamics()
Definition:
FD.h:30
rbd::MultiBodyConfig
Definition:
MultiBodyConfig.h:23
rbd::ForwardDynamics
Definition:
FD.h:27
src
RBDyn
RBDyn
FD.h
Generated by
1.8.17