目录
二、订阅方的实现
1、 创建订阅方C++文件
2、编程
编程基本流程与发布方一致
2.1 包含头文件
//1.包含头文件;
#include "ros/ros.h"
#include "plumbing_pub_sub/Person.h" //自定义消息的头文件
2.2 初始化ROS节点
setlocale(LC_ALL,"");//防止乱码
//2.初始化 ROS 节点
ros::init(argc,argv,"jiazhang");
2.3 创建节点句柄
//3.创建节点句柄
ros::NodeHandle nh;
2.4 创建订阅者对象 和 处理订阅到的数据
(具体内容看ROS学习笔记(三)_Lbuera的博客-CSDN博客)
//4.创建订阅者对象 5.处理订阅到的数据
ros::Subscriber sub = nh.subscribe("liaotian",10,doperson);
void doperson();
void doperson(const plumbing_pub_sub::Person::ConstPtr& person){
ROS_INFO("订阅的人的信息:%s,%d,%.2f",person->name.c_str(),person->age,person->height);
}
2.6 spin函数
//6.spin() //有回调函数就得有这个
ros::spin();
以上订阅者的编程就结束了。
三、配置相关文件
3.1 首先配置CMakeList.txt
add_executable(demo03_pub_person src/demo03_pub_person.cpp)
add_executable(demo04_sub_person src/demo04_sub_person.cpp)
target_link_libraries(demo03_pub_person
${catkin_LIBRARIES}
)
target_link_libraries(demo04_sub_person
${catkin_LIBRARIES}
)
add_dependencies(demo03_pub_person ${PROJECT_NAME}_generate_message_cpp)
add_dependencies(demo04_sub_person ${PROJECT_NAME}_generate_message_cpp)
上面这块是自定义消息独有的
四、编译运行
五、实验结果
下一篇文章要对具体的编程进行一个总结 抛弃代码 讲步骤以及一些配置问题