Skip to content

Commit 9465f31

Browse files
jmirabelOlivier Stasse
authored andcommitted
Fix logging issue.
1 parent a5e5b18 commit 9465f31

File tree

2 files changed

+30
-20
lines changed

2 files changed

+30
-20
lines changed

src/ros_tf_listener.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,28 @@
55

66
namespace dynamicgraph
77
{
8+
namespace internal
9+
{
10+
sot::MatrixHomogeneous& TransformListenerData::getTransform (sot::MatrixHomogeneous& res, int time)
11+
{
12+
static const ros::Time rosTime(0);
13+
try {
14+
listener.lookupTransform (toFrame, fromFrame, rosTime, transform);
15+
} catch (const tf::TransformException& ex) {
16+
res.setIdentity();
17+
std::ostringstream oss;
18+
oss << "Enable to get transform at time " << time << ": " << ex.what();
19+
entity->SEND_WARNING_STREAM_MSG(oss.str());
20+
return res;
21+
}
22+
for (int r = 0; r < 3; ++r) {
23+
for (int c = 0; c < 3; ++c)
24+
res.linear ()(r,c) = transform.getBasis().getRow(r)[c];
25+
res.translation()[r] = transform.getOrigin()[r];
26+
}
27+
return res;
28+
}
29+
}
30+
831
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(RosTfListener, "RosTfListener");
932
}

src/ros_tf_listener.hh

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,39 +19,26 @@ namespace dynamicgraph {
1919
struct TransformListenerData {
2020
typedef Signal<sot::MatrixHomogeneous, int> signal_t;
2121

22+
RosTfListener* entity;
2223
tf::TransformListener& listener;
2324
const std::string toFrame, fromFrame;
2425
tf::StampedTransform transform;
2526
signal_t signal;
2627

27-
TransformListenerData (tf::TransformListener& l,
28+
TransformListenerData (RosTfListener* e,
29+
tf::TransformListener& l,
2830
const std::string& to, const std::string& from,
2931
const std::string& signame)
30-
: listener (l)
32+
: entity (e)
33+
, listener (l)
3134
, toFrame (to)
3235
, fromFrame (from)
3336
, signal (signame)
3437
{
3538
signal.setFunction (boost::bind(&TransformListenerData::getTransform, this, _1, _2));
3639
}
3740

38-
sot::MatrixHomogeneous& getTransform (sot::MatrixHomogeneous& res, int time)
39-
{
40-
static const ros::Time rosTime(0);
41-
try {
42-
listener.lookupTransform (toFrame, fromFrame, rosTime, transform);
43-
} catch (const tf::TransformException& ex) {
44-
res.setIdentity();
45-
ROS_ERROR("Enable to get transform at time %i: %s",time,ex.what());
46-
return res;
47-
}
48-
for (sot::MatrixHomogeneous::Index r = 0; r < 3; ++r) {
49-
for (sot::MatrixHomogeneous::Index c = 0; c < 3; ++c)
50-
res.linear ()(r,c) = transform.getBasis().getRow(r)[c];
51-
res.translation()[r] = transform.getOrigin()[r];
52-
}
53-
return res;
54-
}
41+
sot::MatrixHomogeneous& getTransform (sot::MatrixHomogeneous& res, int time);
5542
};
5643
} // end of internal namespace.
5744

@@ -93,7 +80,7 @@ namespace dynamicgraph {
9380
signalName % getName () % signame;
9481

9582
TransformListenerData* tld = new TransformListenerData (
96-
listener, to, from, signalName.str());
83+
this, listener, to, from, signalName.str());
9784
signalRegistration (tld->signal);
9885
listenerDatas[signame] = tld;
9986
}

0 commit comments

Comments
 (0)