21 JointLimitator::JointLimitator(
const string &fName)
23 jointSIN(NULL,
"JointLimitator(" +
name +
")::input(vector)::joint"),
24 upperJlSIN(NULL,
"JointLimitator(" +
name +
")::input(vector)::upperJl"),
25 lowerJlSIN(NULL,
"JointLimitator(" +
name +
")::input(vector)::lowerJl"),
27 "JointLimitator(" +
name +
")::input(vector)::controlIN"),
29 jointSIN << upperJlSIN << lowerJlSIN << controlSIN,
30 "JointLimitator(" +
name +
")::output(vector)::control"),
32 upperJlSIN << lowerJlSIN,
33 "JointLimitator(" +
name +
")::input(vector)::widthJl")
49 for (
unsigned int i = 0;
i < SIZE; ++
i) {
50 res(
i) = UJL(
i) - LJL(
i);
67 uOUT.resize(controlSize);
73 for (
unsigned int i = 0;
i < controlSize; ++
i) {
74 double qnext = q(
i + offset) + uIN(
i) * 0.005;
75 if ((
i + offset < 6) ||
76 ((qnext < UJL(
i + offset)) && (qnext > LJL(
i + offset)))) {
79 sotDEBUG(25) <<
i <<
": " << qnext <<
" in? [" << LJL(
i) <<
"," << UJL(
i)
88 os <<
"JointLimitator <" <<
name <<
"> ... TODO";
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > upperJlSIN
dynamicgraph::Vector & computeWidthJl(dynamicgraph::Vector &res, const int &time)
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > widthJlSINTERN
void signalRegistration(const SignalArray< int > &signals)
#define sotDEBUGOUT(level)
virtual dynamicgraph::Vector & computeControl(dynamicgraph::Vector &res, int time)
#define sotDEBUGIN(level)
Filter control vector to avoid exceeding joint maximum values.
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(JointLimitator, "JointLimitator")
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > jointSIN
virtual const T & access(const Time &t)
virtual void display(std::ostream &os) const
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > controlSOUT
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > controlSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > lowerJlSIN