8.使用 rqt_console与roslaunch

安装与设置你的ROS环境

注意:本教程翻译的日期是2018.9.14,wiki.ros.org可能会有更新,如语意有差异,由于官网的中文翻译可能会偏差,请以官网英文原版为准,我是不负泽任的。

描述:这个教程介绍了ROS使用rqt_consolerqt_logger_level来调试,使用roslaunch来立即开始节点。如果你使用ROS future 或更早的版本,其中rqt不是完全可用的,请看这一页,使用旧的基于rx的工具包

教程等级:初学者

下一个教程使用rosed

目录
1.预先条件rqt与turtlesim package
2.使用rqt_console与rqt_logger_level
        1.快速记录logger levels
        2.使用roslaunch
        3.Launch文件
        4.Launch文件解释
        5.roslaunching

1.预先条件rqt 与turtlesim package

这个教程使用了rqt与turtlesim package。为了做这个教程,如果你没有安装的话,请首先安装这两个package。

$ sudo apt-get install ros--rqt ros--rqt-common-plugins ros--turtlesim

将< distro >替换成你的ROS版本

注意:你可能为了前几个教程已经建立了rqt和turtlesim,如果你不确定,再次安装也无妨。

2. 使用 rqt_console 和 rqt_logger_level

rqt_console连接到ROS的日志框架来展示节点的输出。rqt_logger_level让我们可以改变节点冗长的级别(DEBUG, WARN, INFO, 和 ERROR)当它们运行的时候。

现在让我们看看rqt_console中turtlesim的输出 ,当我们使用turtlesim时候,在rqt_logger_level中改变记录器级别。在我们开始turtlesim之前,进入两个新的终端开始rqt_console 和 rqt_logger_level:

$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level

你将会看见两个窗口弹出:

这里写图片描述
这里写图片描述

现在让我们在一个新的终端中开始turtlsim:

$ rosrun turtlesim turtlesim_node

由于默认记录器级别是信息,您将看到turtlesim启动时发布的任何信息,应该如下所示:

这里写图片描述

现在让我们更改日志记录级别,通过刷新rqt_logger_level窗口中的节点并选择警告,如下所示:

这里写图片描述

现在让我们的turtle进入墙,然后看看在rqt_console中展示什么:

对于ROS Hydro和之后的版本,

    rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 – ‘{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}’

对于ROS Groovy和之前的版本,

    rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 – 2.0 0.0

这里写图片描述

2.1关于logger levels的快速记录

Logger levers按照以下的顺序排序:

Fatal
Error
Warn
Info
Debug

Fatal有最高的优先级,Debug有最低的优先级。通过设定logger level,你将会得到所有那个和更高优先级的消息。举例来说,设置级别到Warn,你将会得到所有Warn,Error,和Fatal logging消息。

让我们ctrl-c我们的turtlesim,使用roslaunch来带来多个turtlesim节点和一个模拟节点的生成,造成一个turtlesim模仿另外一个:

2.2使用roslaunch

Roslaunch开始节点,正如在一个launch文件中定义的。

用法:

$ roslaunch [package] [filename.launch]

首先进入之前创造构建的beginner_tutorials package:

$ roscd beginner_tutorials

如果roscd说类似于: No such package/stack ‘beginner_tutorials’,你将会需要source环境安装文件,就像你在 create_a_workspace教程最后做的一样。

$ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd beginner_tutorials

接下来让我们创建一个新的目录:

$ mkdir launch
$ cd launch

        注意:储存launch文件的目录不一定要命名为launch。实际上你不需要把它们储存在一个目录中。RoScript命令自动查看已通过的包并检测可用的启动文件。但是,这被认为是好的行为。

2.3 launch file

现在让我们创造一个名为turtlemimic.launch的launch文件然后黏贴以下内容:

1 < launch >
2
3     < group ns=”turtlesim1”>
4 < node pkg=”turtlesim” name=”sim” type=”turtlesim_node”/>
5     < /group>
6
7     < group ns=”turtlesim2”>
8 < node pkg=”turtlesim” name=”sim” type=”turtlesim_node”/>
9 < /group>
10
11  < node pkg=”turtlesim” name=”mimic” type=”mimic”>
12         < remap from=”input” to=”turtlesim1/turtle1”/>
13         < remap from=”output” to=”turtlesim2/turtle1”/>
14     < /node>
15
16 < /launch>

2.4 Launch File解释

现在,让我们分解launch xml文件。

1 < launch>

这儿我们使用launch tag开始launch文件,所以文件被定义为一个launch文件。

3 < group ns=”turtlesim1”>
4     < node pkg=”turtlesim” name=”sim” type=”turtlesim_node”/>
5 < /group>
6
7 < group ns=”turtlesim2”>
8     < node pkg=”turtlesim” name=”sim” type=”turtlesim_node”/>
9 < /group>

这儿我们开始两个组,namespace tag是turtlesim1 和 turtlesim2,包含turtlesim节点和名字sim。这允许我们同时开始两个模拟器而没有命名冲突。

11 < node pkg=”turtlesim” name=”mimic” type=”mimic”>
12     < remap from=”input” to=”turtlesim1/turtle1”/>
13     < remap from=”output” to=”turtlesim2/turtle1”/>
14 < /node>

这儿我们开始mimic节点,话题输入和输出重新命名为turtlesim1和turtlesim2。重新命名将会导致turtlesim2 模拟 turtlesim1。

16 < /launch>

2.5 roslaunching

现在让roslaunching运行launch文件:

$ roslaunch beginner_tutorials turtlemimic.launch

两个turtlesim将会开始,在一个新的终端中发送rostopic命令:

对于ROS Hydro 和之后的版本,

   $ rostopic pub/turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, -1.8]’

对于ROS Groovy和之前的版本,

    $ rostopic pub /turtlesim1/turtle1/command_velocity turtlesim/Velocity -r 1 – 2.0 -1.8

你将会看见两个turtlesim开始移动,即使发布的命令只被发送给turtlesim1.

这里写图片描述

我们可以使用rqt_graph更好地理解我们的launch文件夹中发生了什么。运行rqt的主窗口并选择Plugins > Introspection > Node Graph:

$ rqt

或者简单地:

$ rqt_graph

这里写图片描述

现在你已经成功地使用了rqt_console和roslaunch,让我们学习更多editor options for ROS。你可以ctrl-c你所有的turtlesim,因为你下一个教程不需要它们了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值