机器人操作系统ROSIndigo入门学习——理解ROSTopic

上传人:宝路 文档编号:16048885 上传时间:2017-11-06 格式:DOCX 页数:16 大小:418.08KB
返回 下载 相关 举报
机器人操作系统ROSIndigo入门学习——理解ROSTopic_第1页
第1页 / 共16页
机器人操作系统ROSIndigo入门学习——理解ROSTopic_第2页
第2页 / 共16页
机器人操作系统ROSIndigo入门学习——理解ROSTopic_第3页
第3页 / 共16页
机器人操作系统ROSIndigo入门学习——理解ROSTopic_第4页
第4页 / 共16页
机器人操作系统ROSIndigo入门学习——理解ROSTopic_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《机器人操作系统ROSIndigo入门学习——理解ROSTopic》由会员分享,可在线阅读,更多相关《机器人操作系统ROSIndigo入门学习——理解ROSTopic(16页珍藏版)》请在金锄头文库上搜索。

1、1.理解 ROS Topic这个教程介绍 ROS topic 和 rostopic 和 rqt_plot 命令行工具1.1 建立1.1.1roscore先在一个新的终端中运行 roscore;$ roscore注意:只能运行一个 roscore.1.1.2tuetlesim在新的终端中运行 turtlesim;$ rosrun turtlesim turtlesim_node1.1.3turtle 键盘遥控我们需要用一些东西去控制 turtle,在新的终端运行:$ rosrun turtlesim turtle_teleop_key INFO 1254264546.878445000: Sta

2、rted node /teleop_turtle, pid 5528, bound on aqy, xmlrpc port 43918, tcpros port 55936, logging to /ros/ros/log/teleop_turtle_5528.log, using real timeReading from keyboard-Use arrow keys to move the turtle.现在你可以用键盘上的方向键控制小乌龟了(保持键盘输入窗口在焦点)再看看窗口后面发生了什么1.2ROSTopicturtlesim_node 和 turtle_teleop_key nod

3、e 之间用 topic 交流通信turtle_teleop_key 在这个 topic 上发布按键敲击,而 turtlesim 订阅同样的topic 接受按键敲击让我们用 rqt_graph 显示现在正在运行的 topic 和nodes.如果你是用 electric 或更早的版本,建议用 rxygrah 替代。1.2.1 用 rqt_grahrqt_grah 创建了一个动态的图形显示系统上正在进行什么,rqt_grah 是qpt package 的一部分运行:$ sudo apt-get install ros-rqt$ sudo apt-get install ros-rqt-common-

4、plugins用你的 ros 版本名替代再在新终端输入:$ rosrun rqt_graph rqt_graph你将会看到:如果把鼠标放上去将会高亮,node 是蓝色或者绿色,topic 是红色正如你所见到的一样,turtlesim_node and the turtle_teleop_key nodes 是通过叫做/turtle1/command_velocity. 的在通信1.2.3 介绍 rostopicrostopic 工具允许你从 rostopic 中获得信息通过:$ rostopic -h可以获得等多命令选项rostopic bw display bandwidth used by

5、 topicrostopic echo print messages to screenrostopic hz display publishing rate of topic rostopic list print information about active topicsrostopic pub publish data to topicrostopic type print topic type让我们用这些命令去检验一下 turtlesim.1.2.3 使用 rostopic echo用法:rostopic echo topic允许我们看看 turtle_teleop_key nod

6、e. 发布的命令速度数据;对于 ROS Hydro 和之后的版本,这个数据在发布在/turtle1/cmd_vel topic,在新终端,运行:$ rostopic echo /turtle1/cmd_vel选择 turtle_teleop_key 终端,用方向键控制小乌龟,你将会看到linear: x: 2.0y: 0.0z: 0.0angular: x: 0.0y: 0.0z: 0.0-linear: x: 2.0y: 0.0z: 0.0angular: x: 0.0 y: 0.0z: 0.0让我们再来看看 rqt_graph点击左上角的刷新按钮显示新的 node你将会看到 rostopi

7、c echo 也订阅了 turtle1/command_velocitytopic.1.2.4 使用 rostopic listrostopic list 会列出现在所有被订阅和发布的 topic.看看这个命令需要什么参数,运行:$ rostopic list -hUsage: rostopic list /topicOptions: -h, -help show this help message and exit-b BAGFILE, -bag=BAGFILElist topics in .bag file-v, -verbose list full details about each

8、topic-p list only publishers-s list only subscribers对于 verbose 选项:$ rostopic list -v显示详细的一列 topic 信息包括发布的,订阅的和它们的类型Published topics:* /turtle1/color_sensor turtlesim/Color 1 publisher* /turtle1/command_velocity turtlesim/Velocity 1 publisher* /rosout roslib/Log 2 publishers* /rosout_agg roslib/Log 1

9、 publisher* /turtle1/pose turtlesim/Pose 1 publisherSubscribed topics:* /turtle1/command_velocity turtlesim/Velocity 1 subscriber* /rosout roslib/Log 1 subscriber1.3ROS MessagesTopic 上的通信通过在 nodes 之间发送 messages 来实现对于发布者(turtle_teleop_key)和订阅者(turtlesim_node) 之间的通信必须使用相同的message 类型这就意味着,topic 的类型由发布的

10、 message 类型决定发布在 topic 上的 message 的类型可以由 rostopic type 来决定1.3.1 使用 rostopic typerostopic type 返回任何 topic 发布的 message 类型用法:rostopic type topic对于 ROS Hydro 和之后的版本:$ rostopic type /turtle1/cmd_vel你会得到:geometry_msgs/Twist想得到详细信息运行:$ rosmsg show geometry_msgs/Twistgeometry_msgs/Vector3 linearfloat64 xflo

11、at64 yfloat64 zgeometry_msgs/Vector3 angular float64 xfloat64 yfloat64 z既然我们已经知道 turtlesim 期待什么类型的 message 了,我们可以发布命令给小乌龟1.4继续 rostopic 既然我们已经知道 ros message 了,让我们一起用 ros messages 吧。1.4.1 使用 rostopic pubrostopic pub 把数据发布到正被广播的 topic 上。用法:rostopic pub topic msg_type args对于 ROS Hydro 和之后的版本:$ rostopic

12、 pub -1 /turtle1/cmd_vel geometry_msgs/Twist - 2.0, 0.0, 0.0 0.0, 0.0, 1.8这会给 turtle 发布一个 message 告诉它线速度 2.0,角速度 1.8.这个命令十分复杂,所以我们仔细看看它的每个参数对于 ROS Hydro 和之后的版本:这个命令会发送 messages 给给定的 topic:rostopic pub这个选项使得 rostopic 只发布一条 message 然后退出:-1 这是要发布给它信息的那个 topic:/turtle1/cmd_vel这是发布 topic 时的 message 类型:ge

13、ometry_msgs/Twist双虚线告诉选项剖析器接下来的参数都不是选择,以免把负号后面的参数当成参数选项。-一个 geometry_msgs/Twist 有两组由三个浮点元素组成得的向量:线性的和角度的这样的话,2.0, 0.0, 0.0就是线性值 x=2.0,y=0.0,z=0.0,而0.0, 0.0, 1.8就是角度的值 x=0.0,y=0.0,z=1.8这些参数遵从 YAML 语法规则。更多信息查看 YAML command line documentation. 2.0, 0.0, 0.0 0.0, 0.0, 1.8 你也许注意到小乌龟已经停止了;这是因为小乌龟需要稳定的HZ 的

14、命令流去保持运动。我们可以用 rostopic pub -r 命令发布一个稳定的命令流。对于 ROS Hydro 和之后的版本:$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 - 2.0, 0.0, 0.0 0.0, 0.0, 1.8这将以 1HZ 的速度去发布速度命令给速度 topic.再刷新一下 rqt_graph,看到 rostopic pub node 在和 rostopic echo node 通信当你看到小乌龟在绕圈圈的时候可以在一个新的终端输入 rostopic echo命令看看 turtlesim 发布的数据。1

15、.4.2 使用 rostopic hzrostopic hz 报告数据发布的速度用法:rostopic hz topic来看看 turtkesim node 以多快的速度发布/turtle1/pose。$ rostopic hz /turtle1/pose你会看到:subscribed to /turtle1/poseaverage rate: 59.354min: 0.005s max: 0.027s std dev: 0.00284s window: 58average rate: 59.459min: 0.005s max: 0.027s std dev: 0.00271s window: 118average rate: 59.539min: 0.004s max: 0.030s std dev: 0.00339s window: 177average rate: 59.492min: 0.004s max: 0.030s std dev: 0.00380s window: 237average rate: 59.463min: 0.004s max: 0.030s std dev: 0.00380s window:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号