ROSサブスクリプショントピックC ++コードの詳細な説明

トピックをサブスクライブし、トピックチャットに公開するノードリスナーを定義します。メッセージタイプは文字列です。トピックの発行元コードリンク:ROSリリーストピックC ++コードの詳細な説明

#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();

}

おすすめ

転載: blog.csdn.net/weixin_50303783/article/details/113880770