ROS学习笔记8-rqt_console和roslaunch
本教程来自于:http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch
rqt_console 和 rqt_logger_level 是ros的调试工具(类似于控制台和日志)。roslaunch可以用于一次启动多个节点(不同于rosrun只能启动一个节点)。
- 使用rqt_console和rqt_logger_level
假设安装了ros和rqt工具,以及小乌龟的示例包。rqt_console控制台将ros的日志系统关联到节点的显示输出,rqt_logger_level允许我们在节点运行期间改变他们的信息显示级别。
信息显示级别包括:DEBUG(调试信息), WARN(警告信息), INFO(提示信息), 和ERROR(错误信息)。
在运行小乌龟的示例之前,在两个新的终端中分别运行如下语句,打开rqt_console和rqt_logger_level的界面:$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_levelrqt_console界面

rqt_logger_level界面

现在我们在一个新终端中运行小乌龟的示例:
$ rosrun turtlesim turtlesim_node
则控制台中会出来如下信息:

然后我们可以在rqt_logger_level中改变信息级别。

将显示级别改为Warning,然后运行如下命令,让乌龟撞墙:
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}}'然后我们再看rqt_console中的信息:

可以看出显示出了警告信息。
所有的日志级别如下:
Fatal
Error
Warn
Info
Debug其中,Debug是最低级别,Fatal是最高级别,选择一个级别后,会显示选择级别以及比他低的级别。例如,选择Warn后,会显示Debug、Info和Warn级别的信息。
roslaunch
roslaunch 通过一个启动文件来启动节点
用法如下:$ roslaunch [package] [filename.launch]
使用如下命令进入一个ros包,该例中进入beginner_tutorials
$ roscd beginner_tutorials
如果提示没有该包,参考文档创建一个ros包。运行如下命令,建立ros的环境。
$ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd beginner_tutorials然后使用如下命令创建一个启动文件目录:
$ mkdir launch
$ cd launch事实上,不用单独建立个目录来存储启动文件,启动文件可以存放在包目录下的任何位置,ros会自动寻找他,不过为便于文件组织,还是单独创建一个目录比较好。
然后创建一个启动文件,文件名为: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>从启动文件的标签可以看出,该文件采用的xml语法,有两个group和一个node,其中,两个group都有一个ns的标签指定命名空间(namespace)为turtlesim1和turtlesim2,两个group中各有一个node,node的名字(name)为sim。这样可以让我们同时启动两个仿真器而没有命名冲突。然后,我们定义了一个模拟(mimic)节点,该节点有输入输出主题,输入和输出分别被重映射到turtlesim1 和 turtlesim2,该重命名会让turtlesim2模拟turtlesim1(将turtlesim1的输出直接给turtlesim2)。
然后我们采用roslaunch来启动该文件。$ roslaunch beginner_tutorials turtlemimic.launch
输出如下:
started roslaunch server http://UAVlab1:36470/ SUMMARY
======== PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.14 NODES
/
mimic (turtlesim/mimic)
/turtlesim1/
sim (turtlesim/turtlesim_node)
/turtlesim2/
sim (turtlesim/turtlesim_node) ROS_MASTER_URI=http://localhost:11311 process[turtlesim1/sim-1]: started with pid [4107]
process[turtlesim2/sim-2]: started with pid [4108]
process[mimic-3]: started with pid [4109]可以看出来,运行了三个节点,分别为/mimic,/turtlesim1/sim和/turtlesim2/sim。
并出现了两个小乌龟:
我们再启动一个新终端,在其中发布消息让turtlesim1中的乌龟开始移动:
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
可以看出来两个窗口里的小乌龟都开始移动:

可以看出来其中的消息传递:

/mimic节点起到了消息转发的作用。
ROS学习笔记8-rqt_console和roslaunch的更多相关文章
- ROS学习笔记(二) :使用roslaunch
目录 roslaunch roslaunch的使用 以turtlesim为例 roslaunch roslaunch是ros自带的一个库,使用roslaunch可以同时运行多个节点,通过编写launc ...
- ROS学习笔记七:在ROS中使用USB摄像头
下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...
- ROS学习笔记八:基于Qt搭建ROS开发环境
1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...
- ROS学习笔记1-引言
该学习笔记参考ROS官方wiki的内容,见:http://wiki.ros.org/ROS/Introduction 什么是ROSROS的全称是Robot Operating System,即机器人操 ...
- ROS学习笔记
创建ros工作环境: mkdir -p ~/catkin_ws/src //建立项目目录,同时生成src文件夹 cd ~/catkin_ws/ //进入项目目录 catkin_make //编译项目, ...
- ROS学习笔记十二:使用gazebo在ROS中仿真
想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...
- ROS学习笔记(二)
===================================================== QT工具箱sudo apt-get install ros-kinetic-rqtsudo ...
- ros学习笔记 - 深度传感器转换成激光数据(hector_slam)
前提条件:1,确保读者已经安装了kinect或者其他深度摄像头的驱动,如果未安装,可以直接在网盘下载:http://pan.baidu.com/s/1hqHB10w 提取密码:wrmn 利用深度相机仿 ...
- ROS学习笔记(一) : 入门之基本概念
目录 基本概念 1. Package 2. Repositories 3. Computation Graph 4. Node 5. Master 6. Message 7. Topic 8. Ser ...
随机推荐
- 正确的上网姿势:ubuntu18.04使用clash
本文为本人将CFW(Clash For Windows)上的配置文件应用到ubuntu上面的操作备忘,仅供个人使用 首先下载已经打包的clash压缩包:https://github.com/Dream ...
- pikachu-xx型注入
一 xx型注入,一脸懵x,管他什么型注入,先在输入框里随便输入个字符a试试 我们可以发现该传输方式为get型传输,传输的参数为name=a&submit=查询 二 测试使其闭合的符号 加一个单 ...
- win10 下安装 tesseract + tesserocr
首先参考博文一贴:https://blog.csdn.net/u014179267/article/details/80908790 1.那么安装这两个模块是为了爬虫的时候识别验证码用的,但是安装的过 ...
- 【代码学习】PYTHON 异常处理
一.什么是异常 在程序执行过程中可能会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常 当python脚本发生异常时我们需要捕获处理他,否则程序会终止执行 二.异常处理 ...
- 吴裕雄 python 神经网络——TensorFlow 花瓣分类与迁移学习(2)
import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...
- Leading dimension
Leading dimension 如果你用LAPACK解过矩阵本征值问题,你一定会接触到这样一个名词,"leading dimension",比如在函数zheev中.我想绝大部分 ...
- 用js实现复制内容到操作系统粘贴板(兼容IE、谷歌、火狐等浏览器)
一.如果只考虑IE浏览器,可以直接用原声js实现 if(window.clipboardData){ //清空操作系统粘贴板 window.clipboardData.clearData(); //将 ...
- Codeforces Global Round 6 - D. Decreasing Debts(思维)
题意:有$n$个人,$m$个债务关系,$u_{i}$,$v_{i}$,$d_{i}$表示第$u_{i}个人$欠第$v_{i}$个人$d_{i}$块钱,现在你需要简化债务关系,使得债务总额最小.比如,$ ...
- python学习 —— 使用subprocess获取命令行输出结果
这里使用的版本:Python2 >= 2.7 对于获取命令行窗口中的输出python有一个很好用的模块:subprocess 两个简单例子: 1.获取ping命令的输出: from subpro ...
- Invalid or unexpected token:数据格式错误
一个查询页面突然出现如下这个错误: Uncaught SyntaxError: Invalid or unexpected token, 翻译成中文是: 捕获的查询无效或意外的标记. 既然代码逻辑没问 ...