描述:这篇教程介绍ROS系统中rqt_console和rqt_logger_level的调试方式,利用roslaunch一次启动多个节点;如果采用早期的版本(fuerte及以前的版本),rqt也许并不能用,可以采用基于rx的相关工具。
1. rqt的前期准备和turtlesim功能包
这篇教程同时用到了rqt和turtlesim功能包。为了完成这部教程,请安装这两个功能包,可以通过如下命令安装:
$ sudo apt-get install ros-
替换命令中的
注意:你也许已经在前面的教程中编译过rqt和turtlesim了,如果你不确定,可以重新安装一下,不会有任何影响。
2. rqt_console和rqt_logger_level的用法
rqt_console依附于ROS系统的日志框架,用于显示节点的输出信息。通过rqt_logger_level可以调整当前运行节点输出信息的显示级别(DEBUG,WARN,INFO和ERROR);
现在我们利用rqt_console查看一下turtlesim的输出信息,同时用rqt_logger_level调整一下日志级别。在启动turtlesim前,重新打开两个命令终端,分别启动rqt_console和rqt_logger_level:
$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level
这时会弹出两个窗口信息:
这时我们在新的命令终端启动turtlesim:
$ rosrun turtlesim turtlesim_node
因为默认的logger级别为INFO,我们可以看到turtlesim启动时发布出的任何信息,输出信息会如下所示:
我们在rqt_logger_level窗口调整一下日志级别到Warn级别,如下所示,选择Warn:
此时我运行小乌龟,让它碰到墙壁(注:窗口边缘),查看一下rqt_console里的输出信息:
rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 0.0
2.1 Quick Note about logger levels
日志级别的优先级顺序如下所示:
Fatal
Error
Warn
Info
Debug
Fatal优先级最高级别,Debug优先级最低。通过设置日志级别,你可以得到同级及更高级的所有输出信息,如果设置级别为Warn,你将会得到Warn,Error及Fatal级别的日志输出信息;
输入Crtl+C结束turtlesim,通过roslaunch产生多个turtlesim节点,并让其中的一个节点模仿另一个节点运行:
3 Using roslaunch
Roslaunch会按照启动文件描述的方式启动节点:
用法:
$ roslaunch [package] [filename.launch]
首先进入beginner_tutorials功能包:
$ roscd beginner_tutorials
如果roscd失败,可以在命令终端设置ROS_PACKAGE_PATH的变量,命令如下所示:
$ export ROS_PACKAGE_PATH=~/
$ roscd beginner_tutorials
如果仍然无法找到beginner_tutorials,则需要按照前面的课程重新创建这个功能包了。
然后我们需要创建一个启动目录:
$ mkdir launch
$ cd launch
3.1 The Launch File
现在我们创建名字为turtlemimic.launch的启动文件,并在里面粘贴如下内容:
3.2 The Launch File Explained
现在我们分开介绍一下launch的内容:
启动配置文件利用launch作为开始标签,这样这个文件就被标识为启动文件。
这里配置两个组,分别命名为turtlesim1和turtlesim2,这两个组,功能源于同样的功能包turtlesim,同样的名字sim及同样的类型turtlesim_node,这样启动两个模拟器可以避免名字方面的冲突。
接着我们启动模拟节点,并把输入话题及输出话题分别命名为turtlesim1和turtlesim2,重命名之后,将会让turtlesim2模仿turtlesim1运行。
这个xml标签作为启动文件配置的结束。
3.3 roslaunching
现在通过roslaunch启动launch文件:
$ roslaunch beginner_tutorials turtlemimic.launch
两个turtlesims已经启动了,在新的命令终端发送rostopic命令如下:
$ rostopic pub /turtlesim1/turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 -1.8
可以看到,即使命令发给了turtlesim1,但两个乌龟均开始运动,
我们可以借助于rqt_graph来更好的理解launch文件做了什么,启动rqt的主窗口然后选择rqt_graph:
$ rqt
或者简单的输入:
$ rqt_graph
我们成功的采用rqt_console和roslaunch,下一步我们了解一下ROS系统中的编辑选项。现在可以通过Ctrl-C终止所有的turtlesims了,下一个教程中我们并不需要他们了。
![]() | ![]() .. 定价:¥45 优惠价:¥42 更多书籍 |
![]() | ![]() .. 定价:¥225 优惠价:¥213 更多书籍 |