zoukankan      html  css  js  c++  java
  • ROS理解roslaunch命令

    roslaunch命令从launch文件中启动一个节点,它的使用方法如下:

    roslaunch [package] [filename.launch]

    首先切换到beginner_tutorials文件下:

    roscd beginner_tutorials
    提示:
    If roscd says similar to roscd: No such package/stack 'beginner_tutorials'.
    you will need to source the environment setup file like you did at the end of the create_a_workspace tutorial:
    
    $ cd ~/catkin_ws
    $ source devel/setup.bash
    $ roscd beginner_tutorials

    创建launch文件夹,切换到该文件夹下:

    mkdir launch
     cd launch

    注意:launch文件是在相应的包文件里面的.

    然后在这个文件夹下新建一个launch文件,命名为turtlemimic.launch,并把下面的内容复制进去.

    新建文件,输入:

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

      保存退出就可以了。

    现在使用如下命令载入:

    roslaunch beginner_tutorials turtlemimic.launch

    这时就能看到两只小乌龟,但是这时用rosnode list查询,能看到新增三个节点。/mimic,/turtlesim1/sim,/turtlesim2/sim.

    在一个新打开的终端中输入:

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

    就可以看到两只乌龟都在转圈。

    下面来解释一下原因,分析一下刚才的那个launch文件:

    <lanuch>标签用来识别这是一个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>

    上面的代码表示我们启动了两个乌龟节点,他们的名字都是sim,但是他们在不同的命名空间中,所以不会有相同名字的冲突。

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

    上面的这些代码中我们启动了mimic节点,同时把这个节点的input和output话题重命名为turtle1和turtle2。

    这时通过rosrun rqt_graph rqt_graph显示的信息是:

    rosgraph

    上面的这些内容使turtlesim2模仿turtlesim1。所以虽然我们只向turtlesim1发布了话题,turtlesim2也做出了反应。

  • 相关阅读:
    Android 五大布局
    jdk6的安装以及环境变量的设置
    PLSQL Developer图形化窗口创建数据库全过程
    未能加载文件或程序集“Oracle.DataAccess, " 64位OS运行32位程序的问题
    Android SDK 无法连接到GOOGLE 下载安装包
    Android开发之旅:环境搭建
    Android开发把项目打包成apk
    在 VMware Workstation 虚拟机中创建共享文件夹的步骤〔图解〕
    谈谈对于企业级系统架构的理解
    C#图片处理之: 获取数码相片的EXIF信息
  • 原文地址:https://www.cnblogs.com/stemon/p/4188693.html
Copyright © 2011-2022 走看看