mass-apparent.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2010,
3  * François Bleibel,
4  * Olivier Stasse,
5  *
6  * CNRS/AIST
7  *
8  */
9 
10 #include <dynamic-graph/factory.h>
12 
13 #include <sot/core/debug.hh>
14 
15 using namespace dynamicgraph::sot;
16 using namespace dynamicgraph;
18 
19 MassApparent::MassApparent(const std::string& name)
20  : Entity(name),
21  jacobianSIN(NULL,
22  "sotMassApparent(" + name + ")::input(vector)::jacobian"),
23  inertiaInverseSIN(
24  NULL, "sotMassApparent(" + name + ")::input(vector)::inertiaInverse"),
25  massInverseSOUT(
26  boost::bind(&MassApparent::computeMassInverse, this, _1, _2),
27  jacobianSIN << inertiaInverseSIN,
28  "sotMassApparent(" + name + ")::output(Vector)::massInverse"),
29  massSOUT(boost::bind(&MassApparent::computeMass, this, _1, _2),
30  massInverseSOUT,
31  "sotMassApparent(" + name + ")::output(Vector)::mass")
32 
33  ,
34  inertiaSIN(NULL, "sotMassApparent(" + name + ")::input(vector)::inertia"),
35  inertiaInverseSOUT(
36  boost::bind(&MassApparent::computeInertiaInverse, this, _1, _2),
37  inertiaSIN,
38  "sotMassApparent(" + name + ")::input(vector)::inertiaInverseOUT") {
39  sotDEBUGIN(5);
40 
48 
49  sotDEBUGOUT(5);
50 }
51 
52 MassApparent::~MassApparent(void) { return; }
53 
54 /* --- SIGNALS -------------------------------------------------------------- */
55 /* --- SIGNALS -------------------------------------------------------------- */
56 /* --- SIGNALS -------------------------------------------------------------- */
58  dynamicgraph::Matrix& res, const sigtime_t& time) {
59  sotDEBUGIN(15);
60 
61  const dynamicgraph::Matrix& J = jacobianSIN(time);
63 
64  dynamicgraph::Matrix AJt(J.cols(), J.rows());
65  AJt = A * J.transpose();
66 
67  res.resize(J.rows(), J.rows());
68  res = J * AJt;
69 
70  sotDEBUGOUT(15);
71  return res;
72 }
73 
75  const sigtime_t& time) {
76  sotDEBUGIN(15);
77 
78  const dynamicgraph::Matrix& omega = massInverseSOUT(time);
79  res = omega.inverse();
80 
81  sotDEBUGOUT(15);
82  return res;
83 }
84 
86  dynamicgraph::Matrix& res, const sigtime_t& time) {
87  sotDEBUGIN(15);
88 
89  const dynamicgraph::Matrix& A = inertiaSIN(time);
90  res = A.inverse();
91 
92  sotDEBUGOUT(15);
93  return res;
94 }
dynamicgraph::sot::MassApparent::~MassApparent
virtual ~MassApparent(void)
Definition: mass-apparent.cpp:52
dynamicgraph::sot::MassApparent::computeMass
dynamicgraph::Matrix & computeMass(dynamicgraph::Matrix &res, const sigtime_t &time)
Definition: mass-apparent.cpp:74
dynamicgraph::sot::MassApparent::MassApparent
MassApparent(const std::string &name)
Definition: mass-apparent.cpp:19
dynamicgraph::sot::MassApparent::inertiaInverseSOUT
dg::SignalTimeDependent< dynamicgraph::Matrix, sigtime_t > inertiaInverseSOUT
Definition: mass-apparent.h:67
dynamicgraph::sot::MassApparent::jacobianSIN
dg::SignalPtr< dynamicgraph::Matrix, sigtime_t > jacobianSIN
Definition: mass-apparent.h:61
dynamicgraph
J
J
dynamicgraph::SignalPtr::plug
virtual void plug(SignalBase< Time > *ref)
dynamicgraph::Entity
boost
debug.hh
dynamicgraph::Matrix
Eigen::MatrixXd Matrix
dynamicgraph::sot::MassApparent::inertiaSIN
dg::SignalPtr< dynamicgraph::Matrix, sigtime_t > inertiaSIN
Definition: mass-apparent.h:66
res
res
sotDEBUGOUT
#define sotDEBUGOUT(level)
mass-apparent.h
sotDEBUGIN
#define sotDEBUGIN(level)
dynamicgraph::sot::MassApparent::computeMassInverse
dynamicgraph::Matrix & computeMassInverse(dynamicgraph::Matrix &res, const sigtime_t &time)
Definition: mass-apparent.cpp:57
dynamicgraph::sot::MassApparent::computeInertiaInverse
dynamicgraph::Matrix & computeInertiaInverse(dynamicgraph::Matrix &res, const sigtime_t &time)
Definition: mass-apparent.cpp:85
dynamicgraph::sot::MassApparent
Definition: mass-apparent.h:51
dynamicgraph::sot::MassApparent::massInverseSOUT
dg::SignalTimeDependent< dynamicgraph::Matrix, sigtime_t > massInverseSOUT
Definition: mass-apparent.h:63
dynamicgraph::sot::MassApparent::inertiaInverseSIN
dg::SignalPtr< dynamicgraph::Matrix, sigtime_t > inertiaInverseSIN
Definition: mass-apparent.h:62
dynamicgraph::sot
dynamicgraph::Entity::signalRegistration
void signalRegistration(const SignalArray< int > &signals)
A
A
dynamicgraph::sot::MassApparent::massSOUT
dg::SignalTimeDependent< dynamicgraph::Matrix, sigtime_t > massSOUT
Definition: mass-apparent.h:64
compile.name
name
Definition: compile.py:22
dynamicgraph::sot::DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(DoubleConstant, "DoubleConstant")


sot-dynamic-pinocchio
Author(s): Olivier Stasse
autogenerated on Fri Jul 28 2023 02:10:01