Skip to content
Snippets Groups Projects
Commit 9465f316 authored by Joseph Mirabel's avatar Joseph Mirabel Committed by olivier stasse
Browse files

Fix logging issue.

parent a5e5b18d
No related branches found
No related tags found
No related merge requests found
...@@ -5,5 +5,28 @@ ...@@ -5,5 +5,28 @@
namespace dynamicgraph namespace dynamicgraph
{ {
namespace internal
{
sot::MatrixHomogeneous& TransformListenerData::getTransform (sot::MatrixHomogeneous& res, int time)
{
static const ros::Time rosTime(0);
try {
listener.lookupTransform (toFrame, fromFrame, rosTime, transform);
} catch (const tf::TransformException& ex) {
res.setIdentity();
std::ostringstream oss;
oss << "Enable to get transform at time " << time << ": " << ex.what();
entity->SEND_WARNING_STREAM_MSG(oss.str());
return res;
}
for (int r = 0; r < 3; ++r) {
for (int c = 0; c < 3; ++c)
res.linear ()(r,c) = transform.getBasis().getRow(r)[c];
res.translation()[r] = transform.getOrigin()[r];
}
return res;
}
}
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(RosTfListener, "RosTfListener"); DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(RosTfListener, "RosTfListener");
} }
...@@ -19,15 +19,18 @@ namespace dynamicgraph { ...@@ -19,15 +19,18 @@ namespace dynamicgraph {
struct TransformListenerData { struct TransformListenerData {
typedef Signal<sot::MatrixHomogeneous, int> signal_t; typedef Signal<sot::MatrixHomogeneous, int> signal_t;
RosTfListener* entity;
tf::TransformListener& listener; tf::TransformListener& listener;
const std::string toFrame, fromFrame; const std::string toFrame, fromFrame;
tf::StampedTransform transform; tf::StampedTransform transform;
signal_t signal; signal_t signal;
TransformListenerData (tf::TransformListener& l, TransformListenerData (RosTfListener* e,
tf::TransformListener& l,
const std::string& to, const std::string& from, const std::string& to, const std::string& from,
const std::string& signame) const std::string& signame)
: listener (l) : entity (e)
, listener (l)
, toFrame (to) , toFrame (to)
, fromFrame (from) , fromFrame (from)
, signal (signame) , signal (signame)
...@@ -35,23 +38,7 @@ namespace dynamicgraph { ...@@ -35,23 +38,7 @@ namespace dynamicgraph {
signal.setFunction (boost::bind(&TransformListenerData::getTransform, this, _1, _2)); signal.setFunction (boost::bind(&TransformListenerData::getTransform, this, _1, _2));
} }
sot::MatrixHomogeneous& getTransform (sot::MatrixHomogeneous& res, int time) sot::MatrixHomogeneous& getTransform (sot::MatrixHomogeneous& res, int time);
{
static const ros::Time rosTime(0);
try {
listener.lookupTransform (toFrame, fromFrame, rosTime, transform);
} catch (const tf::TransformException& ex) {
res.setIdentity();
ROS_ERROR("Enable to get transform at time %i: %s",time,ex.what());
return res;
}
for (sot::MatrixHomogeneous::Index r = 0; r < 3; ++r) {
for (sot::MatrixHomogeneous::Index c = 0; c < 3; ++c)
res.linear ()(r,c) = transform.getBasis().getRow(r)[c];
res.translation()[r] = transform.getOrigin()[r];
}
return res;
}
}; };
} // end of internal namespace. } // end of internal namespace.
...@@ -93,7 +80,7 @@ namespace dynamicgraph { ...@@ -93,7 +80,7 @@ namespace dynamicgraph {
signalName % getName () % signame; signalName % getName () % signame;
TransformListenerData* tld = new TransformListenerData ( TransformListenerData* tld = new TransformListenerData (
listener, to, from, signalName.str()); this, listener, to, from, signalName.str());
signalRegistration (tld->signal); signalRegistration (tld->signal);
listenerDatas[signame] = tld; listenerDatas[signame] = tld;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment