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也做出了反應。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM