我收到此错误“错误:对‘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/

10-11 18:56