我试图从一个rqt插件中订阅一个非常简单的ros主题。它看起来像订阅工作,但我的回调函数没有被调用。
Subscription::Subscription(QString topic)
{
ROS_INFO("Subscribing to topic: [%s]", topic.toLocal8Bit().constData() );
sub = n.subscribe(topic.toLocal8Bit().constData(), 1000, &Subscription::chatterCallback, this);
}
void Subscription::chatterCallback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str() );
emit messageReceived(msg->data.c_str() );
}这其实应该很简单。我遗漏了什么?
发布于 2013-09-23 15:17:15
我发现了问题。我正在创建自己的ros::NodeHandle,而我应该使用从rqt_gui_cpp::Plugin()::getNodeHandle()获得的那个。
https://stackoverflow.com/questions/18961172
复制相似问题