问题描述
protected:
ros::Subscriber my_subscriber;
然后我将其消炎。
my_subscriber = nh_.subscribe("joy",1,&My_Class::my_subscriber_cb,this);
然后我写了我的回调函数
void my_subscriber_cb(const sensor_msgs::Joy::ConstPtr& msg){}
然后我像这样初始化节点:
// ROS-Node Initialisation
ros::init(argc,argv,"TEST_CORE",ros::init_options::NoSigintHandler);
问题在于,最后我显示带有 rostopic列表
的主题时我得到一个名为TEST_CORE/joy
的主题。因此,我订阅TEST_CORE/joy
而不是/joy
。
解决方法
在ROS Wiki: Names处查看文档。名称通常是相对的,这意味着它们是基于节点名称创建的。由于您的节点名称为TEST_CORE
,因此预订joy
的结果为TEST_CORE/joy
。要订阅绝对主题,您需要在主题前面添加/
。所以
my_subscriber = nh_.subscribe("/joy",1,&My_Class::my_subscriber_cb,this);
允许您输入您所需要的。