gpt4 book ai didi

c++ - 在哪里可以看到发布者发送的输出数据?

转载 作者:行者123 更新时间:2023-11-27 22:40:40 25 4
gpt4 key购买 nike

我正在 ROS 上做一个程序,其中发布者是订阅者的回调函数,一切进展顺利,除了我看不到数据在哪里打印。

我写的代码如下所示:

    #include <ros/ros.h>
#include <std_msgs/Int16.h>

class pubsub
{
private:
ros::NodeHandle nh;
ros::Publisher pub;
ros::Subscriber sub;

public:
void callback(const std_msgs::Int16::ConstPtr& msg)
{
ROS_INFO("I heard this data: [%d]", msg->data);
std_msgs::Int16 msg2;
msg2.data = msg->data;
ROS_INFO_STREAM(" I got some data");
pub.publish(msg2);
}

pubsub()
{
pub = nh.advertise<std_msgs::Int16>("just",100);
sub = nh.subscribe<std_msgs::Int16>("just",100,&pubsub::callback,this);
}
};



int main(int argc, char **argv){
ros::init(argc,argv,"node");
pubsub ps;
ros::spin();
return 0;
}

程序正在正确编译。执行时,只等待数据,不向终端提供任何输出。

即使我在运行代码后输入整数,命令 rostopic echo/just 也没有显示任何内容。

我哪里错了?

最佳答案

永远不会调用回调,因为发布者在回调中。事实上,你没有发布任何东西。请从 main 或构造函数发布初始消息,然后您将获得您期望的消息循环。

关于c++ - 在哪里可以看到发布者发送的输出数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49251546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com