创建话题
#include <std_msgs/String.h>
然后在函数内部
ros::NodeHandle nodeHandle;
// 发布话题,缓存数为10条
ros::Publisher publisher = nodeHandle.advertise<std_msgs::String>("Test_Topic", 10);
std_msgs::String msg;
msg.data = "Test messages";
publisher.publish(msg); // 通过发布者向频道内推送消息
接收话题
// 回调函数
void chao_callback(std_msgs::String msgs){
ROS_INFO(msgs.data.c_str());
}
然后在函数内部
ros::NodeHandle nodeHandle;
// 订阅话题,具体规则为自定义的回调函数chao_callback
ros::Subscriber subscriber_chao = nodeHandle.subscribe("chao_topic", 10, chao_callback);
话题查阅命令
rostopic list # 列出所有当前活跃的话题
rostopic echo [话题名] # 显示话题中发送消息的内容
rostopic hz [话题名] # 统计一个话题中消息发送的频率
rqt_graph # 消息可视化
# Tips
- 使用launch文件,可以通过roslaunch指令一次启动多个节点
- 在launch文件中,节点信息默认不会输出在终端窗口内(warning信息除外),但可以添加 output= “screen”属性,让节点信息输出在终端内。
- 在launch文件中,为节点添加 launch-prefix=“gnome-terminal -e”属性,可以让节点单独运行在一个终端窗口内。