ROS-Abonnementthema C ++ - Code ausführliche Erklärung

Definieren Sie einen Knoten-Listener, der das Thema abonniert, im Themen-Chatter veröffentlicht und der Nachrichtentyp ist eine Zeichenfolge. Der Publisher-Code-Link des Themas : ROS-Release-Thema C ++ - Code ausführliche Erklärung

#include "ros/ros.h"    //包含ros的头文件 
#include "std_msgs/String.h" //包含标准信息的字符串消息头文件

//订阅的时候是以回调的方式进行信息的读取,所以需要创建一个回调函数
//传入的参数就是要订阅的消息类型指针
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
    
    
    ROS_INFO("I heard: [%s]", msg->data.c_str());//打印消息
}

int main(int argc, char **argv)
{
    
    
    //初始化定义订阅的节点listener
    ros::init(argc, argv, "listener");

    //声明一个ros的句柄
    ros::NodeHandle n;

    //声明一个订阅器,订阅器的名称是sub, 订阅器的缓存是10
    //订阅的话题名是chatter,收到消息后就进入回调函数处理
    ros::Subscriber sub = n.subscribe("chatter", 10, chatterCallback);

    //阻塞式进入回调
    ros::spin();

}

Ich denke du magst

Origin blog.csdn.net/weixin_50303783/article/details/113880770
Empfohlen
Rangfolge