ROS:编写简单的发布、订阅
来源:互联网 发布:unity3d树叶是方形的 编辑:程序博客网 时间:2024/06/05 04:45
编写简单的发布和订阅
Talker.cpp
#include "ros/ros.h"#include "std_msgs/String.h"#include <sstream>int main(int argc, char **argv){ ros::init(argc, argv, "talker"); ros::NodeHandle n; //新建一个节点 ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); //新建一个发布者,发布的话题为chatter,消息的数据类型为std_msgs::String ros::Rate loop_rate(10); int count = 0; while (ros::ok()) { std_msgs::String msg; std::stringstream ss; ss << "hello world " << count; msg.data = ss.str(); ROS_INFO("%s", msg.data.c_str()); chatter_pub.publish(msg); //发布消息 ros::spinOnce(); loop_rate.sleep(); ++count; } return 0;}
Listener.cpp
#include "ros/ros.h"#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){ ros::init(argc, argv, "listener"); ros::NodeHandle n; //新建一个节点 ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback); //新建一个订阅者,订阅的话题为chatter,收到消息后执行的回调函数 ros::spin(); return 0;}
在 CMakeLists.txt 文件末尾加入几条语句:
include_directories(include ${catkin_INCLUDE_DIRS})add_executable(talker src/talker.cpp)target_link_libraries(talker ${catkin_LIBRARIES})add_executable(listener src/listener.cpp)target_link_libraries(listener ${catkin_LIBRARIES})
重新编译
# In your catkin workspace
$ catkin_make
运行
start a terminal and run
$ roscore
start another terminal and run
$ cd ~/catkin_ws $ source ./devel/setup.bash $ rosrun beginner_tutorials talker
start another terminal and run
$ cd ~/catkin_ws $ source ./devel/setup.bash $ rosrun beginner_tutorials listener
阅读全文
0 0
- ROS:编写简单的发布、订阅
- ROS入门_1.14 编写及测试简单的消息发布器和订阅器 (C++)
- ROS教程(十一):编写简单的消息发布器和订阅器
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 11 编写简单的消息发布器和订阅器 (C++)
- ROS简单的发布器节点和订阅器节点
- 编写简单的消息发布器和订阅器
- ROS学习--RoboWare Studio的使用和发布器/订阅器的编写与测试
- ROS发布&订阅字符串
- ROS-python实现简单的消息发布器和订阅器
- ROS笔记——创建简单的主题发布节点和主题订阅节点
- ROS(二)自己动手写一个简单的发布(Publisher)、订阅(Subscriber)程序
- ROS学习第七弹--写简单的发布订阅(C++)
- ROS学习--(十三)编写简单的订阅器(subscriber),编译,测试
- ROS 编写一个简单的发布者和订阅者(C++)
- ROS学习笔记九:用C++编写ROS发布与订阅
- ros的topic:创建消息类型、发布、订阅
- ROS学习笔记(八):消息的发布与订阅
- ROS&OpenCV进行摄像头数据的采集与订阅发布
- 运维基础——Zabbix 设置Redis监控
- Maven之Jetty和tomcat的比较-yellowcong
- spring+Lucene4.6构建全文检索
- luogu1218 [USACO1.5] Superprime Rib(搜索+素数判断)
- #NOIP模拟赛#单向道路(LCA or 子树和-> 边的贡献)
- ROS:编写简单的发布、订阅
- 数据分析、数据挖掘的本质
- C++数据类型转换
- SQL 2014 删除(清空)日志
- Hash表
- 二位数组多个字段排序
- 1.docker最小化搭建nginx nginx-1.12-alpine
- nrf51822如何让自己定义的服务也被识别为有意义的名称,如Battery Service?
- spring+mybatis错误原因