zoukankan      html  css  js  c++  java
  • ROS学习笔记8-rqt_console和roslaunch

    本教程来自于:http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch

    rqt_console 和 rqt_logger_level 是ros的调试工具(类似于控制台和日志)。roslaunch可以用于一次启动多个节点(不同于rosrun只能启动一个节点)。

    1. 使用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_level
      

      rqt_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级别的信息。

    2. 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节点起到了消息转发的作用。




             


  • 相关阅读:
    字符编码相关
    函数之形参与实参
    文件操作模式
    函数对象,名称空间,作用域,和闭包
    吴裕雄天生自然SPRINGBOOT开发实战处理'spring.datasource.url' is not specified and no embedded datasource could be autoconfigured
    吴裕雄天生自然SPRINGBOOT开发实战处理XXXX that could not be found.
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot HTML表单登录
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot REST示例
    吴裕雄天生自然SpringBoot开发实战学习笔记处理 Could not write metadata for '/Servers'.metadata\.plugins\org.eclipse.core.resources\.projects\Servers\.markers.snap (系统找不到指定的路径。)
    吴裕雄天生自然SPRINGBOOT开发实战SpringBoot Tomcat部署
  • 原文地址:https://www.cnblogs.com/spyplus/p/11539844.html
Copyright © 2011-2022 走看看