11 #include <RBDyn/MultiBody.h>
12 #include <RBDyn/MultiBodyConfig.h>
13 #include <RBDyn/MultiBodyGraph.h>
15 #include <RBDyn/parsers/urdf.h>
51 SET_OUTPUTS(
Robot, FK, FV, FA, NormalAcceleration, tau, CoM, H, C, Geometry, Dynamics)
70 const
std::
string & name,
71 rbd::MultiBodyGraph & mbg,
73 rbd::MultiBodyConfig mbc,
74 const rbd::parsers::Limits & limits = {{}, {}, {}, {}});
77 inline const std::string &
name()
const {
return name_; }
80 inline double mass()
const {
return mass_; }
103 inline const rbd::MultiBody &
mb()
const {
return mb_; }
105 inline rbd::MultiBody &
mb() {
return mb_; }
108 inline const rbd::MultiBodyConfig &
mbc()
const {
return mbc_; }
110 inline rbd::MultiBodyConfig &
mbc() {
return mbc_; }
113 inline const std::vector<sva::MotionVecd> &
normalAccB()
const {
return normalAccB_; }
115 inline std::vector<sva::MotionVecd> &
normalAccB() {
return normalAccB_; }
118 inline const Eigen::VectorXd &
lQBound()
const {
return lQBound_; }
120 inline Eigen::VectorXd &
lQBound() {
return lQBound_; }
123 inline const Eigen::VectorXd &
uQBound()
const {
return uQBound_; }
125 inline Eigen::VectorXd &
uQBound() {
return uQBound_; }
128 inline const Eigen::VectorXd &
lVelBound()
const {
return lVelBound_; }
130 inline Eigen::VectorXd &
lVelBound() {
return lVelBound_; }
133 inline const Eigen::VectorXd &
uVelBound()
const {
return uVelBound_; }
135 inline Eigen::VectorXd &
uVelBound() {
return uVelBound_; }
138 inline const Eigen::VectorXd &
lTauBound()
const {
return lTauBound_; }
140 inline Eigen::VectorXd &
lTauBound() {
return lTauBound_; }
143 inline const Eigen::VectorXd &
uTauBound()
const {
return uTauBound_; }
145 inline Eigen::VectorXd &
uTauBound() {
return uTauBound_; }
148 inline const Eigen::MatrixXd &
H()
const {
return fd_.H(); }
151 inline const Eigen::VectorXd &
C()
const {
return fd_.C(); }
154 inline const Eigen::Vector3d &
com()
const {
return com_; }
157 inline const sva::PTransformd &
bodyTransform(
const std::string & b)
const {
return bodyTransforms_.at(b); }
161 uint64_t last_tick_ = 0;
165 rbd::MultiBodyConfig mbc_;
166 std::vector<sva::MotionVecd> normalAccB_;
167 Eigen::VectorXd lQBound_;
168 Eigen::VectorXd uQBound_;
169 Eigen::VectorXd lVelBound_;
170 Eigen::VectorXd uVelBound_;
171 Eigen::VectorXd lTauBound_;
172 Eigen::VectorXd uTauBound_;
173 rbd::ForwardDynamics fd_;
174 std::map<std::string, sva::PTransformd> bodyTransforms_;
181 Eigen::Vector3d com_;
184 void computeNormalAccB();
197 void updateTimeDependency();
201 void updateNormalAcceleration();
#define SET_UPDATES(SelfT,...)
Definition: AbstractNode.h:138
#define SET_OUTPUTS(SelfT,...)
Definition: Outputs.h:113
#define TVM_DLLAPI
Definition: api.h:35
rbd::MultiBody & mb()
Definition: Robot.h:105
const Eigen::VectorXd & uVelBound() const
Definition: Robot.h:133
const Eigen::VectorXd & lQBound() const
Definition: Robot.h:118
Eigen::VectorXd & lQBound()
Definition: Robot.h:120
Eigen::VectorXd & lVelBound()
Definition: Robot.h:130
Eigen::VectorXd & lTauBound()
Definition: Robot.h:140
const Eigen::VectorXd & lVelBound() const
Definition: Robot.h:128
rbd::MultiBodyConfig & mbc()
Definition: Robot.h:110
const VariablePtr & tau() const
Definition: Robot.h:98
const Eigen::MatrixXd & H() const
Definition: Robot.h:148
Eigen::VectorXd & uTauBound()
Definition: Robot.h:145
Eigen::VectorXd & uQBound()
Definition: Robot.h:125
VariableVector & q()
Definition: Robot.h:85
const Eigen::VectorXd & uQBound() const
Definition: Robot.h:123
const std::vector< sva::MotionVecd > & normalAccB() const
Definition: Robot.h:113
const Eigen::VectorXd & C() const
Definition: Robot.h:151
const VariablePtr & qJoints() const
Definition: Robot.h:93
const VariablePtr & qFreeFlyer() const
Definition: Robot.h:88
const Eigen::VectorXd & uTauBound() const
Definition: Robot.h:143
VariablePtr & tau()
Definition: Robot.h:100
std::vector< sva::MotionVecd > & normalAccB()
Definition: Robot.h:115
double mass() const
Definition: Robot.h:80
const VariableVector & q() const
Definition: Robot.h:83
const rbd::MultiBody & mb() const
Definition: Robot.h:103
const Eigen::Vector3d & com() const
Definition: Robot.h:154
VariablePtr & qJoints()
Definition: Robot.h:95
const rbd::MultiBodyConfig & mbc() const
Definition: Robot.h:108
Eigen::VectorXd & uVelBound()
Definition: Robot.h:135
const Eigen::VectorXd & lTauBound() const
Definition: Robot.h:138
const std::string & name() const
Definition: Robot.h:77
const sva::PTransformd & bodyTransform(const std::string &b) const
Definition: Robot.h:157
VariablePtr & qFreeFlyer()
Definition: Robot.h:90
Definition: VariableVector.h:41
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65