我收到此错误“错误:对‘ros::NodeHandle::subscribe(const char [24], int, <unresolved overloaded function type>)’
的调用没有匹配的功能
这是我的类BangBangControlUnit中的回调函数// on message reciept: 'current_maintained_temp' void current_maintained_temp_callback(const std_msgs::Int32::ConstPtr& msg){ temp_to_maintain = msg->data;
}
这就是我在主要功能中使用订阅的方式// subscribe to 'current_maintained_temp' ros::Subscriber current_maintained_temp_sub = n.subscribe("current_maintained_temp", 1000, control.current_maintained_temp_callback);
有人可以告诉我我做错了什么吗?
最佳答案
使用类方法作为回调创建订户的正确签名如下:
ros::Subscriber sub = nh.subscribe("my_topic", 1, &Foo::callback, &foo_object);
因此,在您的情况下,您应该使用:
current_maintained_temp_sub = n.subscribe("current_maintained_temp", 1000, &BangBangControlUnit::current_maintained_temp_callback, &control);
您可以在C++ here中了解有关发布者和订阅者的更多信息。
关于c++ - ROS:订阅功能无法识别我的回调方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9449699/