我收到此错误“错误:没有匹配函数来调用‘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的方式
// subscribe to 'current_maintained_temp'
ros::Subscriber current_maintained_temp_sub = n.subscribe("current_maintained_temp", 1000, control.current_maintained_temp_callback);
有人可以告诉我我做错了吗?
答案 0 :(得分:7)
使用类方法作为回调创建订阅者的正确签名如下:
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中详细了解发布商和订阅者。