ROS Learning-010 beginner_Tutorials 编写简单的启动脚本文件(.launch 文件)

本文介绍了在ROS Indigo环境下如何编写和运行.launch启动脚本,包括创建带有命名空间的节点,以及使用roslaunch命令启动脚本。内容涉及启动脚本的作用、结构,以及如何通过launch文件控制多个节点的启动和交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROS Indigo beginner_Tutorials-09 编写简单的启动脚本文件

我使用的虚拟机软件:VMware Workstation 11
使用的Ubuntu系统:Ubuntu 14.04.4 LTS
ROS 版本:ROS Indigo


.launch文件 :

下面我们将介绍,如何编写一个启动脚本程序:(.launch文件)

还记得我们在 创建ROS软件包教程 中创建的第一个程序包(beginner_tutorials)吗,现在我们要使用它。在 beginner_tutorials 软件包里新建一个名为 launch 的文件夹。(用来保存 launch 启动脚本的):

$ roscd  beginner_tutorials
$ mkdir launch
$ cd launch
$ gedit turtlemimic.launch    #使用你喜欢的编译器打开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>
</
### 如何在ROS中创建和配置Launch文件 #### 创建 Launch 文件ROS 中,`launch` 文件用于简化多个节点的同时启动过程。这些文件通常存储在包的 `launch/` 目录下,并以 `.launch` 扩展名命名。 以下是创建 launch 文件的基本方法: 1. **新建目录** 首先,在您的 ROS 包中创建一个名为 `launch` 的子目录(如果尚未存在)。例如: ```bash mkdir -p ~/catkin_ws/src/beginner_tutorials/launch ``` 2. **编写 Launch 文件** 使用 XML 格式来定义 launch 文件的内容。以下是一个简单的例子,展示如何启动两个节点并传递参数[^1]: ```xml <!-- beginner_tutorials/launch/example.launch --> <launch> <!-- 启动第一个节点 --> <node pkg="beginner_tutorials" type="talker.py" name="talker_node"/> <!-- 启动第二个节点 --> <node pkg="beginner_tutorials" type="listener.py" name="listener_node"/> <!-- 设置全局参数 --> <param name="/use_sim_time" value="true"/> </launch> ``` 3. **保存文件** 将上述内容保存到 `example.launch` 文件中。 --- #### 运行 Launch 文件 可以通过以下命令运行刚刚创建的 launch 文件: ```bash roslaunch beginner_tutorials example.launch ``` 此命令会在当前工作空间查找指定的 package 和对应的 launch 文件。 如果您想通过绝对路径运行 launch 文件,则可以使用如下方式[^2]: ```bash roslaunch /absolute/path/to/your/package/launch/example.launch ``` --- #### 示例:Ros2 + Gazebo + Launch 文件 对于更复杂的场景,比如 Ros2 结合 Gazebo 模拟器时,您可以参考以下示例代码[^3]: ```xml <!-- ros2_gazebo_example.launch.xml --> <launch> <!-- 定义参数 --> <arg name="gz_args" default="-v 4 -r visualize_lidar.sdf"/> <!-- 启动 Gazebo 节点 --> <include file="$(find gazebo_ros)/launch/gzserver.launch"> <arg name="world_name" value="$(env GAZEBO_WORLD)"/> </include> <!-- 可视化插件 --> <node pkg="rviz2" exec="rviz2" output="screen"/> </launch> ``` 在此示例中,Gazebo 参数被设置为 `-v 4 -r visualize_lidar.sdf`,并通过 `<arg>` 标签传入。 --- #### 常见标签说明 - `<launch>`: 表示整个 launch 文件的根节点。 - `<node>`: 定义单个节点及其属性,如 `pkg`, `type`, 和 `name`。 - `<param>`: 添加或修改 ROS 参数服务器中的参数。 - `<arg>`: 定义可选输入参数,允许用户自定义行为。 - `<include>`: 引用其他 launch 文件或将复杂逻辑模块化。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值