本教程介绍如何使用rqt_console和rqt_logger_level进行调试,以及如何使用roslaunch同时运行多个节点。

文章目录

  • 1 用rqt_console和rqt_logger_level
    • 日志等级说明
  • 2 使用roslaunch
    • launch文件
    • roslaunch

1 用rqt_console和rqt_logger_level

rqt_console属于ROS日志框架(logging framework)的一部分,用来显示节点的输出信息。rqt_logger_level允许我们修改节点运行时输出信息的日志等级(logger levels)(包括 DEBUG、WARN、INFO和ERROR)。

现在让我们来看一下turtlesim在rqt_console中的输出信息,同时在rqt_logger_level中修改日志等级。在启动turtlesim之前先在另外两个新终端中运行rqt_consolerqt_logger_level

rosrun rqt_console rqt_console
rosrun rqt_logger_level rqt_logger_level

日志等级说明

日志等级按以下优先顺序排列:

Fatal
Error
Warn
Info
Debug

Fatal是最高优先级,Debug是最低优先级。通过设置日志等级你可以获取该等级及其以上优先等级的所有日志消息。比如,将日志等级设为Warn时,你会得到WarnErrorFatal这三个等级的所有日志消息。

现在让我们按Ctrl-C退出turtlesim节点,接下来我们将使用roslaunch来启动多个turtlesim节点和一个模仿节点以让一个turtlesim节点来模仿另一个turtlesim节点。

2 使用roslaunch

roslaunch可以用来启动定义在launch文件中的多个节点。

用法:

$ 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>

在这里我们创建了两个节点分组并以’命名空间(namespace)‘标签来区分,其中一个名为turtulesim1,另一个名为turtlesim2,两个组里面都使用相同的turtlesim节点并命名为’sim’。这样可以让我们同时启动两个turtlesim模拟器而不会产生命名冲突。

启动模仿节点,并将所有话题的输入和输出分别重命名为turtlesim1和turtlesim2,这样就会使turtlesim2模仿turtlesim1。

roslaunch

通过roslaunch命令来启动launch文件:

$ roslaunch beginner_tutorials turtlemimic.launch

现在将会有两个turtlesims被启动,然后我们在一个新终端中使用rostopic命令发送速度设定消息:

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

我们也可以通过rqt_graph来更好的理解在launch文件中所做的事情:

$ rqt_graph
# 或者
$ rosrun rqt_graph rqt_graph

ROS学习笔记8(使用 rqt_console, rqt_graph 和 roslaunch)相关推荐

  1. ROS学习笔记七:使用rqt_console和roslaunch

    ROS学习笔记七:使用rqt_console和roslaunch 本节主要介绍在调试时使用的rqt_console和rqt_logger_level,以及一次性打开多个节点的工具roslaunch. ...

  2. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

  3. ROS学习笔记(1):发布者和订阅者

    ROS学习笔记(1):publishers and subscribers 1.ros通信简介 2.C++中的类与对象 3.publishers/subscribers 4.常用指令 1.ros通信简 ...

  4. ROS学习笔记(一)补充篇 参考创客制造

    我将ROS的CPP部分分成7个部分: 1.基础的node param 2.动态调节参数 3.关于TF变换 4.actionlib 5.插件技术 6.movebase 7.nodelet技术 前言 相比 ...

  5. ROS学习笔记-ROS订阅和发布节点

    一个简单的ROS包,一个发布者,一个订阅者 刚开始学习ROS,参考网上的资料完成了测试节点的编写,记录一下. 个人习惯在home/Develop目录中做开发,于是在Develop目录下面创建了一个RO ...

  6. ROS 学习笔记(三):自定义服务数据srv+server+client 示例运行

    ROS 学习笔记(三):自定义服务数据srv+Server+Client 示例运行 一.自定义服务数据: 1.向功能包添加自定义服务文件(AddTwoInts.srv) cd ~/catkin_ws/ ...

  7. ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行

    ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行 一.自定义消息: 1.新建msg文件夹,创建定义Person.msg 文件 mkdir -p ~/catk ...

  8. ROS 学习笔记(一):工作空间+功能包创建

    ROS 学习笔记(一):工作空间+功能包创建 一.创建工作空间(catkin_make编译): 1.创建工作空间 catkin_ws 创建空间.初始化(建立一个文件夹) cd ~ mkdir -p ~ ...

  9. ROS学习笔记(八): ROS通信架构

    ROS学习笔记(八): ROS通信架构 文章目录 01 Node & Master 1.1 Node 1.2 Master 1.3 启动master和node 1.4 rosrun和rosno ...

  10. ROS学习笔记基础2(基础知识和ROS架构)

    ROS学习笔记1(基础知识和ROS架构) 文章目录 ROS学习笔记1(基础知识和ROS架构) 1. 什么是ROS 2. ROS和其他机器人平台有什么不同 3. ROS架构组成 3.1 文件系统级别 3 ...

最新文章

  1. 队列学习笔记 顺序队列
  2. spark 朴素贝叶斯
  3. Coolite 常用客户端校验
  4. rest模式get,post,put,delete简单讲解
  5. oracle failover 区别,Oracle DG failover 实战
  6. 深度学习在美团的应用
  7. python bytes是什么类型,python中的字节串类型(bytes)
  8. 并不对劲的bzoj5340:loj2552:uoj399:p4564: [Ctsc2018]假面
  9. 网页与服务器 — 重定向常见异常状态码
  10. Python-Day2三级菜单
  11. 懒人工作源码分析(1)
  12. python跑酷游戏源码_开源一款酷跑游戏源码完整版
  13. Win10 PowerToys官方免费效率小工具集
  14. 深度优先遍历和广度优先遍历
  15. python拉格朗日插值_拉格朗日插值多项式在Python中的实现
  16. c#如何实现叫号操作_基于.NET的排队语音叫号系统设计与实现
  17. 基于MATLAB的人脸识别 (1)
  18. PYTHON 画一支圆珠笔
  19. IDEA自带接口测试工具(http client)
  20. status code = 404, status message = [Not Found]

热门文章

  1. 面试工作笔记001---记录各种语言_各种技术经典面试问题
  2. SpringMVC工作总结001_SpringMVC拦截器(资源和权限管理)
  3. skinmagic对VC中程序窗口的换肤
  4. java生成bcp_java-如何将IETF BCP 47语言代码转换为显示字符串?
  5. mysql limit不要1_神坑!MySQL中order by与limit不要一起用!
  6. pythonrandom rand_Python np.random.rand()和np.random.randn()
  7. 4乘4方格走的路线_国庆自驾游,4条成都出发沿途美景大汇合自驾游路线推荐
  8. plsql变量参数化_谁说建模一定要会画图?参数化设计让你事半功倍!
  9. sqllite开发安卓项目_苹果安卓合作了?两大巨头共同居然共同开发这个项目
  10. java aop管理权限_基于spring aop 权限管理系统原型 - andyj2ee - BlogJava