19 #include <dynamic-graph/all-commands.h>
20 #include <dynamic-graph/command-bind.h>
21 #include <dynamic-graph/factory.h>
23 #include <sot/core/debug.hh>
24 #include <sot/core/stop-watch.hh>
28 namespace talos_balance {
29 namespace dg = ::dynamicgraph;
31 using namespace dg::command;
35 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_TAUSUM_COMPUTATION \
36 "CoupledAdmittanceController: tauSum computation "
37 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_TAUDIFF_COMPUTATION \
38 "CoupledAdmittanceController: tauDiff computation "
39 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_TAUDESSUM_COMPUTATION \
40 "CoupledAdmittanceController: tauDesSum computation "
41 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_TAUDESDIFF_COMPUTATION \
42 "CoupledAdmittanceController: tauDesDiff computation "
43 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_DQREFSUM_COMPUTATION \
44 "CoupledAdmittanceController: dqRefSum computation "
45 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_DQREFDIFF_COMPUTATION \
46 "CoupledAdmittanceController: dqReDiff computation "
47 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_DQREFL_COMPUTATION \
48 "CoupledAdmittanceController: dqRefL computation "
49 #define PROFILE_COUPLED_ADMITTANCECONTROLLER_DQREFR_COMPUTATION \
50 "CoupledAdmittanceController: dqRefR computation "
52 #define INPUT_SIGNALS \
53 m_kSumSIN << m_kDiffSIN << m_tauLSIN << m_tauRSIN << m_tauDesLSIN \
56 #define INNER_SIGNALS \
57 m_tauSumSINNER << m_tauDiffSINNER << m_tauDesSumSINNER << m_tauDesDiffSINNER \
58 << m_dqRefSumSINNER << m_dqRefDiffSINNER
60 #define OUTPUT_SIGNALS m_dqRefLSOUT << m_dqRefRSOUT
68 "CoupledAdmittanceController");
74 const std::string&
name)
86 CONSTRUCT_SIGNAL_INNER(
89 CONSTRUCT_SIGNAL_INNER(
103 const Vector& tauL = m_tauLSIN(iter);
104 const Vector& tauR = m_tauRSIN(iter);
116 const Vector& tauL = m_tauLSIN(iter);
117 const Vector& tauR = m_tauRSIN(iter);
130 const Vector& tauDesL = m_tauDesLSIN(iter);
131 const Vector& tauDesR = m_tauDesRSIN(iter);
133 s = tauDesL + tauDesR;
145 const Vector& tauDesL = m_tauDesLSIN(iter);
146 const Vector& tauDesR = m_tauDesRSIN(iter);
148 s = tauDesL - tauDesR;
159 const Vector&
tau = m_tauSumSINNER(iter);
160 const Vector& tauDes = m_tauDesSumSINNER(iter);
161 const Vector& k = m_kSumSIN(iter);
163 s = k.cwiseProduct(tauDes -
tau);
174 const Vector&
tau = m_tauDiffSINNER(iter);
175 const Vector& tauDes = m_tauDesDiffSINNER(iter);
176 const Vector& k = m_kDiffSIN(iter);
178 s = k.cwiseProduct(tauDes -
tau);
189 const Vector& dqRefSum = m_dqRefSumSINNER(iter);
190 const Vector& dqRefDiff = m_dqRefDiffSINNER(iter);
192 s = dqRefSum + dqRefDiff;
202 const Vector& dqRefSum = m_dqRefSumSINNER(iter);
203 const Vector& dqRefDiff = m_dqRefDiffSINNER(iter);
205 s = dqRefSum - dqRefDiff;
219 os <<
"CoupledAdmittanceController " << getName();
221 getProfiler().report_all(3, os);
222 }
catch (ExceptionSignal e) {