Skip to content

Commit 6316ec1

Browse files
rtt_tf: fix transformation from TF to geometry msgs
This patch fixes a memory bug with the transfromations from geometry messages to TF. The tests implemented work properly.
1 parent f313935 commit 6316ec1

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

rtt_tf/rtt_tf-component.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ namespace rtt_tf
8080
{
8181
tf2_msgs::TFMessage msg;
8282
// resolve names and copy transforms to message
83-
msg.transforms.reserve(tforms.size());
83+
msg.transforms.resize(tforms.size());
8484
std::transform(tforms.begin(), tforms.end(), msg.transforms.begin(), PrefixResolver(prefix));
8585
return msg;
8686
}
@@ -349,13 +349,17 @@ namespace rtt_tf
349349

350350
void RTT_TF::listTrackers()
351351
{
352-
RTT::log(RTT::Info) << "Listing existing trackers" << RTT::endlog();
352+
Logger::In(this->getName());
353+
const RTT::Logger::LogLevel config_level = RTT::Logger::Instance()->getLogLevel();
354+
RTT::Logger::Instance()->setLogLevel(RTT::Logger::LogLevel::Info);
355+
RTT::log() << "Listing existing trackers" << RTT::endlog();
353356
RTT::log(RTT::Info) << "(Source) <-> (Target) : [PortName]" << RTT::endlog();
354357
RTT::log(RTT::Info) << "----------------------------------" << RTT::endlog();
355358
for (const auto& entry : ports_trackers) {
356359
RTT::log(RTT::Info) << entry.first.second << " <-> " << entry.first.first <<
357360
" : [" <<entry.second->getName() << "]" << RTT::endlog();
358361
}
362+
RTT::Logger::Instance()->setLogLevel(config_level);
359363
}
360364
}//namespace
361365

rtt_tf/tests/broadcaster_test.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ class BroadcasterComponent : public RTT::TaskContext {
4646
tform_.header.frame_id = "/world";
4747
tform_.header.stamp = ros::Time(((double)RTT::os::TimeService::Instance()->getNSecs())*1E-9);
4848
tform_.child_frame_id = "rel_rtt_tf_test";
49-
tform_.transform.translation.x = cos(t);
50-
tform_.transform.translation.y = sin(t);
49+
tform_.transform.translation.x = sin(t);
50+
tform_.transform.translation.y = cos(t);
5151
broadcaster_(tform_);
5252
}
5353
void stopHook() { }
@@ -78,6 +78,7 @@ int ORO_main(int argc, char** argv) {
7878
// Connect components and deployer
7979
deployer.connectPeers(&bcaster);
8080
deployer.setActivity("bcaster",0.02,0,ORO_SCHED_OTHER);
81+
// deployer.setActivity("tf",0.1,0,ORO_SCHED_OTHER);
8182

8283
// Connect services between the tf component and the broadcaster
8384
bcaster.connectServices(tf_component);

rtt_tf/tests/lookup_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class LookupComponent : public RTT::TaskContext {
3333
}
3434
virtual ~LookupComponent() { }
3535
bool configureHook() {
36-
subscribe_transform_("/world","/rtt_tf_test");
36+
subscribe_transform_("rel_rtt_tf_test","rtt_tf_test");
3737
return true;
3838
}
3939
bool startHook() {
@@ -75,6 +75,7 @@ int ORO_main(int argc, char** argv) {
7575
// Connect components and deployer
7676
deployer.connectPeers(&lookup);
7777
deployer.setActivity("lookup",0.02,0,ORO_SCHED_OTHER);
78+
deployer.setActivity("tf",0.1,0,ORO_SCHED_OTHER);
7879

7980
// Connect services between the tf component and the broadcaster
8081
lookup.connectServices(tf_component);

0 commit comments

Comments
 (0)