ROS:订阅函数无法识别我的回调方法

发布于 2025-01-08 22:26:05 字数 621 浏览 1 评论 0原文

我收到此错误“错误:没有匹配的函数可调用 'ros::NodeHandle::subscribe(const char [24], int, <未解析的重载函数类型>)'

这是我的类 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);

有人能告诉我我做错了什么吗?

I am receiving this error "error: no matching function for call to ‘ros::NodeHandle::subscribe(const char [24], int, <unresolved overloaded function type>)’"

This is my call back function in my class BangBangControlUnit

// on message reciept: 'current_maintained_temp'
    void current_maintained_temp_callback(const std_msgs::Int32::ConstPtr& msg){
      temp_to_maintain = msg->data;      
    }

and this is how I am using subscribe in my main function

// subscribe to 'current_maintained_temp'
  ros::Subscriber current_maintained_temp_sub = n.subscribe("current_maintained_temp", 1000, control.current_maintained_temp_callback);

Can someone tell me what I did wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

硬不硬你别怂 2025-01-15 22:26:05

使用类方法作为回调创建订阅者的正确签名如下:

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++ 中的发布者和订阅者的更多信息 此处

The proper signature for creating a subscriber with a class method as callback is as follows:

ros::Subscriber sub = nh.subscribe("my_topic", 1, &Foo::callback, &foo_object);

So in your case you should use:

current_maintained_temp_sub = n.subscribe("current_maintained_temp", 1000, &BangBangControlUnit::current_maintained_temp_callback, &control);

You can read more about publishers and subscribers in C++ here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文