文档章节

使用 rqt_console 和 roslaunch

慕水
 慕水
发布于 2017/09/08 13:23
字数 1339
阅读 10
收藏 0

预先安装rqt和turtlesim程序包

本教程会用到rqt 和 turtlesim这两个程序包,如果你没有安装,请先安装:

 

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

请使用ROS发行版名称(比如 electric、fuerte、groovy、hydro或最新的indigo)替换掉<distro>。

注意: 你可能已经在之前的某篇教程中编译过rqt和turtlesim,如果你不确定的话重新编译一次也没事。

 

使用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_console和rqt_logger_level:

 

$ rosrun rqt_console rqt_console

 

$ rosrun rqt_logger_level rqt_logger_level

你会看到弹出两个窗口:

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=rqt_console(start).png

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=rqt_logger_level.png

现在让我们在一个新终端中启动turtlesim:

 

$ rosrun turtlesim turtlesim_node

因为默认日志等级是INFO,所以你会看到turtlesim启动后输出的所有信息,如下图所示:

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=rqt_console(turtlesimstart).png

现在让我们刷新一下rqt_logger_level窗口并选择Warn将日志等级修改为WARN,如下图所示:

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=rqt_logger_level(error).png

现在我们让turtle动起来并观察rqt_console中的输出(非hydro版):

 

rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0  0.0

hydro版:

 

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

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=rqt_console(turtlesimerror).png

 

日志等级说明

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

 

Fatal
Error
Warn
Info
Debug

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

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

 

使用roslaunch

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

用法:

 

$ roslaunch [package] [filename.launch]

先切换到beginner_tutorials程序包目录下:

 

$ roscd beginner_tutorials

如果roscd执行失败了,记得设置你当前终端下的ROS_PACKAGE_PATH环境变量,设置方法如下:

 

$ export ROS_PACKAGE_PATH=~/<distro>_workspace/sandbox:$ROS_PACKAGE_PATH
$ roscd beginner_tutorials

如果你仍然无法找到beginner_tutorials程序包,说明该程序包还没有创建,那么请返回到ROS/Tutorials/CreatingPackage教程,并按照创建程序包的操作方法创建一个beginner_tutorials程序包。

然后创建一个launch文件夹:

 

$ mkdir launch
$ cd launch

 

Launch 文件

现在我们来创建一个名为turtlemimic.launch的launch文件并复制粘贴以下内容到该文件里面:

 

切换行号显示

   1 <launch>
   2 
   3   <group ns="turtlesim1">
   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   5   </group>
   6 
   7   <group ns="turtlesim2">
   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   9   </group>
  10 
  11   <node pkg="turtlesim" name="mimic" type="mimic">
  12     <remap from="input" to="turtlesim1/turtle1"/>
  13     <remap from="output" to="turtlesim2/turtle1"/>
  14   </node>
  15 
  16 </launch>

 

Launch 文件解析

现在我们开始逐句解析launch xml文件。

 

切换行号显示

   1 <launch>

在这里我们以launch标签开头以表明这是一个launch文件。

 

切换行号显示

   3   <group ns="turtlesim1">
   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   5   </group>
   6 
   7   <group ns="turtlesim2">
   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   9   </group>

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

 

切换行号显示

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

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

 

切换行号显示

  16 </launch>

这个是launch文件的结束标签。

 

roslaunching

现在让我们通过roslaunch命令来启动launch文件:

 

$ roslaunch beginner_tutorials turtlemimic.launch

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

非hydro版:

 

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

hydro版:

 

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

你会看到两个turtlesims会同时开始移动,虽然发布命令只是给turtlesim1发送了速度设定消息。

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=mimic.png

我们也可以通过rqt_graph来更好的理解在launch文件中所做的事情。运行rqt并在主窗口中选择rqt_graph

 

$ rqt

或者直接运行:

 

$ rqt_graph

 

http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch?action=AttachFile&do=get&target=mimiclaunch.jpg

到此,我们算是已经学会了rqt_console和roslaunch命令的使用,接下来我们开始学习使用rosed——ROS中的编辑器。现在你可以按Ctrl-C退出所有turtlesims节点了,因为在下一篇教程中你不会再用到它们。

本文转载自:

共有 人打赏支持
慕水
粉丝 1
博文 11
码字总数 0
作品 0
深圳
ubuntu14.04 +ros indigo +kinect(xbox360) 启动

1. 安装驱动 sudo apt-get install libfreenect-dev sudo apt-get install ros-indigo-freenect-launch 2.启动:roslaunch freenect_launch freenect.launch 3查看: rosrun imageview image......

v7xyy
2017/10/22
0
0
ROS kinetic 机器视觉

ROS 中的图像数据 二维图像 显示图像类型 kinetic@vm:~$ roslaunch usbcam usbcam-test.launch kinetic@vm:~$ rostopic list /imageview/output /imageview/parameterdescriptions /imagevie......

youshijian99
05/11
0
0
ROS学习笔记(三)先锋机器人的使用 — 参考 ROS wiki 和 Mobile wiki

–参考方案: 找到了关于p3-dx的一些关于ROS的资料 https://github.com/ManolisCh/pioneerp3dx https://github.com/SeRViCE-Lab/p3-dx http://wiki.ros.org/demopioneer 先锋机器人ROS的教程......

David_Han008
2017/01/25
0
0
ROS roslaunch 学习

roslaunch 用处:将多个rosnode 结合起来,一起运行。这样就不需要一个个的运行。 roslaunch格式 (add_two.launch) launch文件为xml格式。 每个tag的格式至少包含下面三部分 1.pkg = “you...

yiranhaiziqi
2016/10/27
0
0
turtlebot二代机器人实用操作

联网!连接!打开机器人开关!(使用二代换成roomba) 一、遥控 1、 turtlebot接收命令:roslaunch turtlebot_bringup minimal.lauch 2、操控 先给USB端口赋予权限:单次生效:sudo chmod 77...

weixin_39577852
04/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
3
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
6
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部