首页 > 代码库 > ROS理解roslaunch命令
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显示的信息是:
上面的这些内容使turtlesim2模仿turtlesim1。所以虽然我们只向turtlesim1发布了话题,turtlesim2也做出了反应。
ROS理解roslaunch命令
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。