ROS-Note:rqt_console和roslaunch

rqt_console和roslaunch

使用rqt_console和rqt_logger_level进行调试
使用roslaunch同时启动多个节点

rqt_console | rqt_logger_level

rqt_console连接到了ROS的日志框架,以显示节点的输出信息。
rqt_logger_level允许在节点运行时改变输出信息的详细级别,包括Debug、Info、Warn和Error。

现在看一下turtlesim在rqt_console中输出的信息,同时在使用turtlesim时切换rqt_logger_level中的日志级别。
在启动turtlesim之前先在两个新终端中运行rqt_console和rqt_logger_level:

$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level  
弹出两个窗口
$ rosrun turtlesim turtlesim_node        新终端中启动turtlesim

默认的日志级别是Info,所以你会看到turtlesim启动后发布的所有信息
在这里插入图片描述
在rqt_logger_level窗口中刷新一下节点并选择Warn以修改日志级别
在这里插入图片描述
把乌龟撞到墙上,rqt_console上会显示
在这里插入图片描述

记录器级别 logger levels

日志优先级顺序

Fatal (致命)
Error (错误)
Warn  (警告)
Info  (信息)
Debug (调试)

Fatal是最高优先级,Debug是最低优先级。
通过设置日志级别,可以获得所有优先级级别,或只是更高级别的消息。
比如,将日志级别设为Warn时,你会得到Warn、Error和Fatal这三个等级的日志消息。

roslaunch

使用roslaunch来启动多个turtlesim节点和一个模仿者节点,来让一个乌龟模仿另一个乌龟。
roslaunch可以用来启动定义在launch(启动)文件中的节点
usage

$ roslaunch [package] [filename.launch]

切换到创建构建的beginner_tutorials软件包目录

$ roscd beginner_tutorials

创建一个launch目录:

$ mkdir launch
$ cd launch

launch文件
创建一个名为turtlemimic.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>

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

</launch>

launch解析

首先用launch标签开头,以表明这是一个launch文件
<launch>

创建两个分组,并以命名空间(namespace)ns标签来区分,其中一个名为turtulesim1,另一个名为turtlesim2,
两个分组中都有相同的名为sim的turtlesim节点。这样可以让我们同时启动两个turtlesim模拟器,而不会产生命名冲突。
  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

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

启动模仿mimic节点
话题的输入和输出分别重命名为turtlesim1和turtlesim2,这样就可以让turtlesim2模仿turtlesim1
  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>
使launch文件的XML标签闭合
</launch>

roslaunch
通过roslaunch命令来运行launch文件

$ roslaunch beginner_tutorials turtlemimic.launch

将会有两个turtlesim被启动,然后在一个新终端中使用rostopic命令发送:

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

虽然发布命令只发送给了turtlesim1 ,看到两个turtlesims同时开始移动画圈

可以用rqt_graph来更好地理解launch文件所做的事情。
运行rqt并在主窗口中选择Plugins > Introspection > Node Graph:

$ rqt

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值