C++发布ROS topic消息
1. 配置
-
添加msg消息类型头文件
需要告诉编译器发送消息的数据类型,后面方便给模板实现 -
定义pub实例化对象,使用
ros::publisher
实现 -
ros节点初始化
ros::init(argc, argv, "name_node");
argc:remapping参数的个数
argv:remapping参数的列表
name:节点名,必须是一个基本名称,不能包含命名空间 -
创建节点句柄 也就是实例化一个节点对象,方便调用节点内的方法
ros::NodeHandle nh("~");
注意这里的“~”是为了给话题名前加入一个以节点名命名的命名空间,可以自定义名称给到命名空间之中。比如
ros::NodeHandle nh("my_namespace");
2. 初始化并发送
- 给实例化后的pub进行初始化
pub = nh.advertise<include_msgs::msg_name>("topic_name", 1);
- 对消息内容赋值赋值
一般这里最好使用自己定义的一个函数来完成,来进行对消息内容的赋值
注意消息子类型为数组类型时,要自己定义数组的空间大小 - 使用
pub.publish(msg)
发布消息