ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 6 理解ROS话题
2017-04-13 22:22
696 查看
前言
这个教程介绍ROS的主题,包括使用rostopic和rqt_plot命令行工具。1.启动ROS
1.1 roscore
在一个新的终端中通过roecore来启动ROS:$ roscore
任何时候只能有一个roscore在运行。
1.2 启动turtlesim
这个教程我们任然使用turtlesim来做演示。在一个新终端中:$ rosrun turtlesim turtlesim_node
1.3 使用键盘控制turtle
通过turtle_teleop_key节点使用键盘控制小乌龟$ rosrun turtlesim turtle_teleop_key
现在,我们就可以使用键盘来控制小乌龟了。
这背后是如何实现的?我们看下面:
2. ROS 的主题
上面我们使用rosrun运行了两个节点 turtlesim_node和turtle_teleop_key,它们通过主题传递传递信息。turtle_teleop_key发布键盘信息到一个主题上,turtlesim_node订阅了该主题,我们使用rqt_graph来可视化的查看节点和它们用于通信的主题。
2.1 使用rqt_graph
rqt_graph为在系统上运行的节点和主题等信息创建一个动态的图,rqt_graph是rqt包的一部分。可以通过如下方法安装:$ sudo apt-get install ros-<distor>-rqt $ sudo apt-get install ros-<distor>-rqt-common-plugins
在一个新的终端中:
$ rosrun rqt_graph rqt_graph
你可以看到如下图:
其中椭圆形表示节点;
箭头表示主题,方向指向订阅者,另一端是发布者。
2.2 rostopic工具
rostopic工具能过获得主题的信息。可以使用-h选项获得rostopic帮助简介:$ rostopic -h //返回以下: rostopic bw display bandwidth used by topic rostopic echo print messages to screen rostopic hz display publishing rate of topic rostopic list print information about active topics rostopic pub publish data to topic rostopic type print topic type
2.3 使用rostopic echo
rostopic echo显示发布到主题上的数据。$ rostopic echo ROS_TOPIC
这时,可以通过刷新rqt_graph可以查看新的图,会发现rostopic echo也订阅了该主题。
2.4 使用rostopic list
rostopic list返回一个当前所有被订阅和发布主题的列表。可以通过-h选项详细的列出可用参数:
$ rostopic list -h Usage: rostopic list [/topic] Options: -h, --help show this help message and exit -b BAGFILE, --bag=BAGFILE list topics in .bag file -v, --verbose list full details about each topic -p list only publishers -s
3. ROS Messages
节点通过主题通信时,在主题上发布或订阅主题上的消息。通信双方必须发布或订阅相同类型的消息,这就意味着,一个主题的类型是由发布到该主题上的消息类型决定的。发送到主题上的消息类型可以由rostopic type工具来查看。3.1 使用 rostopic type
rostopic type [topic]
例如:
$ rostopic type /turtle1/cmd_vel //返回: geometry_msgs/Twist
可以使用rosmsg 工具来查看更详细的信息:
$ rosmsg show geometry_msgs/Twist //返回: geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z
4. 继续rostopic
上面我们已经学习了ROS的messages,下面我们结合messages使用rostopic。4.1 使用rostopic pub
rostopic pub 可以在主题上发布消息:rostopic pub [topic] [msg_type] [args]
例如:
$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]''[0.0, 0.0, 1.8]'
4.2 使用rostopic hz
rostopic hz报告主题上消息发布的频率:rostopic hz [topic]
5. 使用rqt_plot
rqt_plot显示主题上随时间变化的数据:首先我们运行rqt_plot:
$ rosrun rqt_plot rqt_plot
会有如下UI显示:
相关文章推荐
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 7 理解ROS服务和参数
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 5 理解ROS节点
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 4 构建一个包
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 10 创建ROS消息和ROS服务
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 3 创建一个ROS包
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 8 学习ROS的rqt_console和roslaunch命令
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 2 浏览ROS的文件系统
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 14 测试简单的Service和Client
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 16 roswtf入门
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 13 编写简单的服务器和客户端
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 1 安装和配置你的ROS环境
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 12 测试消息发布器和订阅器
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 15 录制与回放数据
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 9 使用rosed编辑ROS中的文件
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 11 编写简单的消息发布器和订阅器 (C++)
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第一章 安装ROS到Ubuntu主机
- Ubuntu14.04_ROS学习笔记(3)ROS官方初级教程遇到的错误
- Ubuntu15.04 网站服务器环境搭建,php/html/css等学习环境搭建教程
- caffe学习笔记1:ubuntu15.04下3分钟完成caffe环境配置(基于docker)
- ROS学习--(六)理解ROS节点和话题