ROS有三种核心的通讯机制:
- publishers/subscribers
- services/clients
- action-servers/action-clients
1.publishers
#include <ros/ros.h> //惯例第一头文件,ROS的源码
#include <std_msgs/Float64.h> //传递的消息类型文件,根据实际需要选择对应的消息类型头文件
int main(int argc, char **argv) { //每一个节点只有一个main函数
ros::init(argc, argv, "minimal_publisher2"); // 初始化这个节点, 双引号中的是节点名, 可以通过.launch文件启动时更改节点名(不建议)
ros::NodeHandle n; // 创建一个与ROS系统对话的pulisher对象(n是随意命名的)
ros::Publisher my_publisher_object = n.advertise<std_msgs::Float64>("topic1", 1);
//创建一个发布消息类型为std_msgs::Float64的topic(即topic1)的对象(即my_publisher_object)
//这里定义了发布topic的名称,其他subscribers想要订阅这个topic的信息只需要知道这个topic的名字是topic1就可以了
//参数1是指queue size,可以理解为通道大小,一般设置为1,即传递的信息是1个接着1个,不是多个