第七节--ROS操作系统---理解ROS话题topics
2016-04-20 11:25
399 查看
(一)理解ROS话题
1–本节教程介绍ROS话题topics以及如何使用:
1–topics—命令行工具
2–rxplot命令行工具
2–理解ROS服务参数
(二)ROS话题topic详解
1)roscore—-首先确保roscore已经运行,打开一个新的终端:roscore
注意:
如果你的roscore,即ROS必要的服务已经启动,那么这一步可以省略,否则将会出现错误
2)turtlesim—-小海龟程序包
1–本教程中,我们也会使用到turtlesim,请在一个新的终端中运行:
rosrun turtlesim turtlesim_node
我们将会看到一个小海龟的画面
2—输出的结果如下所示:
[ INFO] [1461115871.415625988]: Starting turtlesim with node name /turtlesim
[ INFO] [1461115871.419411830]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
3)通过键盘远程控制turtle
1–我们也需要通过键盘来控制turtle的运动,请在一个新的终端中运行:
rosrun turtlesim turtle_teleop_key
2–输出的结果如下:
Reading from keyboard
—————————
Use arrow keys to move the turtle.
3–然后,用鼠标点击你输入按键命令的终端窗口,让终端获取鼠标的焦点,这样你就可以用上下左右按键控制
小海龟turtle了
现在,你可以控制turtle运动了,下面我们一起来看一下这背后发生的事:
(三)ROS topics
1—turtlesim_node节点和turtlesim_teleop_key节点之间通过一个—-ROS话题–来互相通信的
2—turtle_teleop_key—-在一个topics话题上—发布—按键输入—消息(数据)
3—turtlesim—则订阅话题topics以接受—–该消息
下面,我们使用rqt_graph来显示当前运行的节点和话题
1)使用rqt_graph
1–rqt_graph能够创建一个显示当前系统运行情况的动态图,
2–rqt_graph是rqt程序包的一部分.
3–如果你没有安装,请通过以下命令来安装:
sudo apt-get install ros-indigo-rqt
sudo apt-get install ros-indigo-rqt-common-plugins
4–在一个新的终端中运行:
rosrun rqt_graph rqt_graph
你将会看见一个显示当前运行情况的状态图
5–如果你将鼠标放在/turtle1/command/velocity上,相应的ROS节点node(蓝色和绿色)和话题topics就会
高亮显示
6–正如你所看到的那样,turtlsim_node这个节点—–和—–turtle_teleop_key这个节点—-正在通过
一个名为turtle1/commond_velocity的话题—在相互通信
(四)rostopic介绍:
1–rostopic命令工具能让你获取有关ROS话题的信息
2–你可以使用帮助想查看rostopic的子命令
示例:
rostopic -h
结果:
ostopic is a command-line tool for printing information about ROS Topics.
1)使用rostopic echo可以显示在某个话题上发布的数据
1–用法—rostopic echo [topic]
2–让我们在一个新终端中看一下turtle_teleop_key节点在turtle1/command_velocity话题行发布的数据
如果你使用的是ROS Hydro之前的ROS版本系统,请使用下面的命令:
rostopic echo /turtle1/command_velocity
如果你使用的是ROS Hydro及其之后的版本,请运行:
rostopic echo /turtle1/cmd_vel
由于我使用的是ROS2014年7月22发布的indigo靛蓝版本,因此我使用:
rostopic echo /turtle1/cmd_vel
2)使用rostopic list
1–rostopic list—能够列出当前订阅和发布的话题
2–让我们查看一下list子命令需要的参数,在一个终端中运行:
示例:
rostopic list -h
Usage: rostopic list [/namespace]
(五)ROS Messages—-消息
1–话题之间的通信是通过—-节点之间发送—ROS消息实现
2–对于发布器(turtle_teleop_key)和订阅器(turtlesim_node)之间的通信,发布器和订阅器之间必需发送
和接收相同类型的消息
3–这意味者话题topics的类型是由发布在它上面的消息类型决定的
4–使用rostopic type命令可以查看发布在某个话题上的消息类型
1)使用rostopic type—命令用来查看所发布话题消息的类型
1–用法–rostopic type [topic]
2–indigo版:运行—rostopic type /turtle1/cmd_vel
可以看到的结果为:
geometry_msgs/Twist
1–本节教程介绍ROS话题topics以及如何使用:
1–topics—命令行工具
2–rxplot命令行工具
2–理解ROS服务参数
(二)ROS话题topic详解
1)roscore—-首先确保roscore已经运行,打开一个新的终端:roscore
注意:
如果你的roscore,即ROS必要的服务已经启动,那么这一步可以省略,否则将会出现错误
2)turtlesim—-小海龟程序包
1–本教程中,我们也会使用到turtlesim,请在一个新的终端中运行:
rosrun turtlesim turtlesim_node
我们将会看到一个小海龟的画面
2—输出的结果如下所示:
[ INFO] [1461115871.415625988]: Starting turtlesim with node name /turtlesim
[ INFO] [1461115871.419411830]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
3)通过键盘远程控制turtle
1–我们也需要通过键盘来控制turtle的运动,请在一个新的终端中运行:
rosrun turtlesim turtle_teleop_key
2–输出的结果如下:
Reading from keyboard
—————————
Use arrow keys to move the turtle.
3–然后,用鼠标点击你输入按键命令的终端窗口,让终端获取鼠标的焦点,这样你就可以用上下左右按键控制
小海龟turtle了
现在,你可以控制turtle运动了,下面我们一起来看一下这背后发生的事:
(三)ROS topics
1—turtlesim_node节点和turtlesim_teleop_key节点之间通过一个—-ROS话题–来互相通信的
2—turtle_teleop_key—-在一个topics话题上—发布—按键输入—消息(数据)
3—turtlesim—则订阅话题topics以接受—–该消息
下面,我们使用rqt_graph来显示当前运行的节点和话题
1)使用rqt_graph
1–rqt_graph能够创建一个显示当前系统运行情况的动态图,
2–rqt_graph是rqt程序包的一部分.
3–如果你没有安装,请通过以下命令来安装:
sudo apt-get install ros-indigo-rqt
sudo apt-get install ros-indigo-rqt-common-plugins
4–在一个新的终端中运行:
rosrun rqt_graph rqt_graph
你将会看见一个显示当前运行情况的状态图
5–如果你将鼠标放在/turtle1/command/velocity上,相应的ROS节点node(蓝色和绿色)和话题topics就会
高亮显示
6–正如你所看到的那样,turtlsim_node这个节点—–和—–turtle_teleop_key这个节点—-正在通过
一个名为turtle1/commond_velocity的话题—在相互通信
(四)rostopic介绍:
1–rostopic命令工具能让你获取有关ROS话题的信息
2–你可以使用帮助想查看rostopic的子命令
示例:
rostopic -h
结果:
ostopic is a command-line tool for printing information about ROS Topics.
Commands: rostopic bw display bandwidth used by topic 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
1)使用rostopic echo可以显示在某个话题上发布的数据
1–用法—rostopic echo [topic]
2–让我们在一个新终端中看一下turtle_teleop_key节点在turtle1/command_velocity话题行发布的数据
如果你使用的是ROS Hydro之前的ROS版本系统,请使用下面的命令:
rostopic echo /turtle1/command_velocity
如果你使用的是ROS Hydro及其之后的版本,请运行:
rostopic echo /turtle1/cmd_vel
由于我使用的是ROS2014年7月22发布的indigo靛蓝版本,因此我使用:
rostopic echo /turtle1/cmd_vel
2)使用rostopic list
1–rostopic list—能够列出当前订阅和发布的话题
2–让我们查看一下list子命令需要的参数,在一个终端中运行:
示例:
rostopic list -h
Usage: rostopic list [/namespace]
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 list only subscribers --host group by host name 3--在rostopic list中使用verbose选项----这会显示出有关发布和订阅的话题及其类型的详细信息: 示例: rostopic list -v 结果: Published topics: * /turtle1/color_sensor [turtlesim/Color] 1 publisher * /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher * /rosout [rosgraph_msgs/Log] 4 publishers * /rosout_agg [rosgraph_msgs/Log] 1 publisher * /turtle1/pose [turtlesim/Pose] 1 publisher Subscribed topics: * /turtle1/cmd_vel [geometry_msgs/Twist] 2 subscribers * /rosout [rosgraph_msgs/Log] 1 subscriber * /statistics [rosgraph_msgs/TopicStatistics] 1 subscriber
(五)ROS Messages—-消息
1–话题之间的通信是通过—-节点之间发送—ROS消息实现
2–对于发布器(turtle_teleop_key)和订阅器(turtlesim_node)之间的通信,发布器和订阅器之间必需发送
和接收相同类型的消息
3–这意味者话题topics的类型是由发布在它上面的消息类型决定的
4–使用rostopic type命令可以查看发布在某个话题上的消息类型
1)使用rostopic type—命令用来查看所发布话题消息的类型
1–用法–rostopic type [topic]
2–indigo版:运行—rostopic type /turtle1/cmd_vel
可以看到的结果为:
geometry_msgs/Twist
相关文章推荐
- Nginx配置proxy_pass转发的/路径
- 一台服务器发布多个tomcat并注册服务名办法
- nginx
- 一.Android 控件架构
- 深入分析 iBATIS 框架之系统架构与映射原理
- windows apache的安装配置
- PopupWindow的使用showAsDropDown()无法dismiss解决方法
- /usr/bin/ld:cannot find -lGL的解决方法
- 【MD5网站安全加固】
- Linux 内核 Makefile 体系简单分析 (转)
- 推荐一个latex简历模板的网站给大家
- ubuntu ~/.bashrc 常用修改
- java web笔记-tomcat
- org.apache.jasper.JasperException: Unable to compile class for JSP 问题
- Linux 源码安装mysql
- lsof查看文件描述符的offset
- 图像特征之 Haar-like特征(二)计算方法-积分图
- Maven实现直接部署Web项目到Tomcat7
- Linux-常用命令例子
- Linux:find grep sed查找命令