ROS学习(六)使用rqt_console和roslaunch

一、前提条件rqt和turtlesim软件包

这里同时使用了rqt和turtlesim软件包。如果没有安装,请安装两个软件包。

$ sudo apt-get install ros- <distro> -rqt ros- <distro> -rqt-common-plugins ros- <distro> -turtlesim

将替换为您的ROS分布的名称

在这里插入图片描述

二、使用rqt_console和rqt_logger_level

rqt_console附加到ROS的日志记录框架以显示节点的输出。rqt_logger_level允许我们在节点运行时更改其详细级别(DEBUG,WARN,INFO和ERROR)。

现在,让我们看看在turtlesim输出rqt_console和开关记录水平rqt_logger_level为我们所用turtlesim。在启动turtlesim之前,在两个新的终端中启动rqt_console和rqt_logger_level:

$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level

您将看到两个窗口弹出窗口:
在这里插入图片描述
在这里插入图片描述
现在让我们在新的终端中启动turtlesim :

$ rosrun turtlesim turtlesim_node

由于默认的记录器级别是INFO,因此您将看到turtlesim启动时发布的所有信息,其外观应类似于:
在这里插入图片描述
现在,通过刷新rqt_logger_level窗口中的节点并选择Warn,将记录器级别更改为Warn,如下所示:
在这里插入图片描述
现在,让我们的乌龟驶入墙壁,看看rqt_console中显示的内容:

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}}'

在这里插入图片描述

2.1 关于记录器级别的快速说明

日志记录级别按以下顺序排列优先级:

Fatal
Error
Warn
Info
Debug

Fatal的优先级最高,而Debug的优先级最低。通过设置记录器级别,您将获得该优先级或更高级别的所有消息。例如,通过将级别设置为Warn,您将获得所有Warn,Error和Fatal日志消息。

让我们按住Ctrl-C的turtlesim,并使用roslaunch调出多个turtlesim节点,并使用一个模仿节点使一个turtlesim模仿另一个turtlesim:

2.2 使用roslaunch

roslaunch启动launch文件中定义的节点
用法:

$ roslaunch [package] [filename.launch]

首先转到我们之前创建和构建的beginner_tutorials包:

$ roscd beginner_tutorials

然后让我们创建一个launch目录:

$ mkdir launch
$ cd launch

在这里插入图片描述
注意:用于存储启动文件的目录不一定必须命名为launch。实际上,您甚至不需要将它们存储在目录中。roslaunch命令自动查看传递的软件包并检测可用的启动文件。但是,这被认为是好的做法。

2.3 launch文件

现在,我们创建一个名为turtlemimic.launch的启动文件,并粘贴以下内容:

<launch>

  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <group ns="turtlesim2">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>

</launch>

2.4 launch文件说明

现在,让我们分解launch

<launch>

在这里,我们使用launch标签启动launch文件,以便将该文件标识为launch文件。

  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <group ns="turtlesim2">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

在这里,我们以名称为turtlesim1和turtlesim2的命名空间标签(带有名为sim的turtlesim节点)开始两个组。这使我们可以启动两个模拟器而不会出现名称冲突。

  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>

在这里,我们以主题输入和输出重命名为turtlesim1和turtlesim2来启动模拟节点。重命名将使turtlesim2模仿turtlesim1。

</launch>

这将关闭launch文件的xml标记。

2.5 roslaunching

现在,让我们roslaunch的启动文件

$ roslaunch beginner_tutorials turtlemimic.launch

将启动两个turtlesim,并在新终端中发送rostopic命令:

$ rostopic pub -r 1 /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist 

即使仅将发发布命令发送到turtlesim1,您也会看到两个turtlesims开始移动。
在这里插入图片描述
我们还可以使用rqt_graph更好地了解launch文件的功能。运行rqt的主窗口,然后选择Plugins> Introspection> Node Graph:

$ rqt

或者简单地:

$ rqt_graph

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值