(六)ROS话题---节点之间通信的方式
2018-03-07 09:48
489 查看
1. 理解 ROS 话题:
(Ctrl+Alt+T 打开一个新终端)
运行下面的命令:
$ roscore
(Ctrl+Alt+T 打开一个新终端)
$ rosrun turtlesim turtlesim_node
(Ctrl+Alt+T 打开一个新终端)
$ rosrun turtlesim turtle_teleop_key
我现在可以控制小海龟:(要在 turtle_teleop_key 所在的终端窗口,按键盘的 方向键 来控制小海龟运动。)
使用
rosnode list命令来看看这个例子里,都运行了哪些节点:
输出:
/rosout /teleop_turtle /turtlesim
解释:
/teleop_turle节点向 ROS 网络总线上发布话题;
/turtlesim节点接收了
/teleop_turle发布的这个话题。 那么这个话题具体是什么,我们怎样可以知道呢?
上面打开的终端窗口不要关闭,我们继续进行下面的教程。
2. 使用图形化工具可视化话题的发布接收
我们可以使用 ROS 网络图形化工具来 直观 的感受这个话题的发布接收:
如果没有安装 rqt ,先安装。执行下面的命令进行安装:
$ sudo apt-get install ros-indigo-rqt $ sudo apt-get install ros-indigo-rqt-common-plugins
现在重新打开一个终端, 运行下面的命令:
$ rosrun rqt_graph rqt_graph # 或者,你也可以直接使用下面的命令。这两个命令是等价的。 $ rqt_graph
都能得到下面的GUI界面---可直观的看到了一个节点间通信的可视图。
3. rostopic 命令的使用:
rostopic命令的帮助,里面罗列了
rostopic命令的所有的参数:
rostopic --help
输出:
rostopic is a command-line tool for printing information about ROS Topics. Commands: rostopic bw display bandwidth used by topic rostopic delay display delay of topic from timestamp in header rostopic echo print messages to screen rostopic find find topics by type rostopic hz display publishing rate of topic rostopic info print information about active topic rostopic list list active topics rostopic pub publish data to topic rostopic type print topic type
Type rostopic <command> -h for more detailed usage, e.g. 'rostopic echo -h'
3.1 list : (列出所有话题(包括发布的和订阅的))
(新开个终端)
$ rostopic list //能够列出所有当前正在订阅和发布的话题
$ rostopic list [code]-v //-v可以得到当前正在订阅和发布的话题的详细内容介绍
输出:
3.2 echo : (监听话题)
$ rostopic echo /turtle1/cmd_vel //这个命令的作用就是来打印指定话题内的通信内容的
运行效果: 当你在 turtle_teleop_key 所在终端上控制 方向键(发布
/turtle1/cmd_vel话题),
/turtle1/cmd_vel话题内的数据就会打印出来:
这个时候,你在刷新一下 rqt_gragp 软件窗口 就可以看到,现在有2个节点订阅了
/turtle1/cmd_vel话题:
http://www.cnblogs.com/aobosir/p/5928588.html
总结:
我们这一讲介绍了ROS节点之间,如何使用话题进行通信。其实节点之间的通信方式不只话题这一种方式。
节点之间通信的方式 : 话题(rostopic) 和 服务(rosservice)。
所以,我们下一讲来讲 节点之间如何使用服务(rosservice) 来进行通信。
相关文章推荐
- ROS下工作空间、功能包的建立,以及创建节点,实现节点之间的通信!
- (七)ROS服务 ---节点之间通信的方式
- 我的ROS入门(五):总算搞通ROS的服务节点订阅发布消息话题了
- Backbone View 之间通信的三种方式
- Android Service与Activity之间通信的几种方式
- 进程之间的8种通信方式
- IPC进程之间通信的几种方式
- Backbone View 之间通信的三种方式
- CISCO 不同VLAN之间相互通信的两种方式
- 不同VLAN之间相互通信的两种方式(方式二:三层交换)
- Android Service与Activity之间通信的几种方式
- 基于ssh的多节点之间互信通信的实现
- 多进程和多线程之间的通信方式及通信实现步骤小结
- ROS节点,消息,话题,服务的介绍
- 系统入门(4):Android Service与Activity之间通信的几种方式
- Android Service与Activity之间通信的几种方式
- Android Service与Activity之间通信的几种方式
- 【学习】Service与Activity之间通信的几种方式
- Prism学习笔记-模块之间通信的几种方式
- Android Service与Activity之间通信的几种方式