ROS是机器人操作系统的简称,本文介绍ROS应用开发入门,roslaunch 的使用。没有roslaunch, 我们需要打开很多终端,启动roscore, 各个节点等等。对于ros 的开发者或用户,roslaunch 都是非常重要的工具。
roslaunch是一个工具,可轻松启动多个在本地和远程(通过SSH)ROS节点,以及在参数服务器上设置参数。 它包括自动重生已经死掉的进程的选项。 roslaunch接收一个或多个XML配置文件(扩展名为.launch),这些文件指定要设置的参数和要启动的节点以及应在其上运行的主机。
roslaunch 的启动
roslaunch 的启动有2种方式:
方式1: roslaunch launch文件路径+launch文件名字
如果就在launch 文件目录,就不要目录了
比如: roslaunch turtle.launch
或者:
方式2: roslaunch 工程包名 launch文件名
比如:
新建一个简单launch 文件
ROS 下的仿真小乌龟 介绍了启动并控制小乌龟运动的一个例子,那里打开3个终端,分别启动 roscore, rosrun turtlesim turtlesim_node, rosrun turtlesim turtle_teleop_key,现在用launch 只用一个终端。
mkdir launch
cd launch
nano turtle.launch
文件内容为:
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtle1" output="screen" />
<node pkg="turtlesim" type="turtle_teleop_key" name="key" output="screen" />
</launch>
保存退出。
在终端执行: roslaunch turtle.launch
看到启动仿真小乌龟了,因为现在在小乌龟终端,点击回到原来的终端,当然要设置好2个终端的相对位置,避免遮挡。用键盘方向键就可以控制小乌龟的运动了。
工程包方式
在 ROS 开发应用准备:创建工作空间 一文中建立了ROS工作空间,现在就建立一个功能包:
cd ~/catkin_ws/src
catkin_create_pkg learning_launch
cd ~/catkin_ws/src/learning_launch
mkdir launch
cd launch
nano turtle.launch
内容与上面一样,或者直接复制上面的文件过来。
回到工程目录,再编译,source
cd ~/catkin_ws/
catkin_make
source ~/catkin_ws/devel/setup.bash
现在可以工程包方式启动roslaunch了
roslaunch learning_launch turtle.launch
看到和文件方式一样, 工程包方式可能是便于记忆,或者几种在其工程包里,比如learning_tf 就放其所在目录下。
launch 文件内容
启动roslaunch 很简单,关键是launch 文件的内容。
launch 文件是一个xml 文件,其根元素是<launch>标签定义
启动节点:<node>
<node name="$(anon foo)" pkg="rospy_tutorials" type="talker.py" />
<node pkg="turtlesim" type="turtlesim_node" name="turtle1" output="screen" />
最重要的3个
pkg 工程包名
type 执行文件名字
name 节点名字
其他还有:
output respawn required ns args
参数设置
设置系统参数,存储在参数服务器中
<param>设置参数
<param name="publish_frequency" type="double" value="10.0" />
<rosparam> 导入YAML参数文件中的所有参数
<rosparam command="load" file="FILENAME" />
launch 文件内的局部变量
<arg>
<arg name="hoge" value="fuga" />
<remap> 重映像
<remap from="/different_topic" to="/needed_topic"/>
<include> 包含其他launch 文件
<includefile="$(find pkg-name)/path/filename.xml" />
更多内容可以参看 http://wiki.ros.org/roslaunch/XML/
现在一般教程都有launch 启动的方式,知道基本原则后,都看几次launch 文件内容就熟练了。
介绍到此。