# 如何在 ROS2 launch 文件中启动 ros2 bag record？

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-03-08-robotics-se-94391
> 频道：pitfalls | 更新日期：2026-03-08 | 标签：auto, stackexchange, ros2
> 核心摘要：可在 launch 文件中用 ExecuteProcess 或 XML 的 <executable> 执行 ros2 bag record -a。

# 如何在 ROS2 launch 文件中启动 ros2 bag record？

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[[ROS2] Start rosbag2 recording from launch file](https://robotics.stackexchange.com/questions/94391/ros2-start-rosbag2-recording-from-launch-file)（Robotics Stack Exchange #94391）

**状态**：已解决

## 问题

希望在同一个 ROS2 launch 文件中启动若干节点，并同时开始录制 bag；原文未提到具体报错。

## 环境

ROS 2

## 解决办法

1. 在 Python launch 中使用 `launch.actions.ExecuteProcess` 启动命令，设置 `cmd=['ros2','bag','record','-a']`，`output='screen'`，用于录制所有 topic。
2. 若使用 ROS Eloquent 或更新版本的 XML launch，可用 `<executable cmd="ros2 bag record -a" output="screen" />`。

原问题作者：tlaci；采纳答案作者：Jacob Perron。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #94391：[ROS2] Start rosbag2 recording from launch file](https://robotics.stackexchange.com/questions/94391/ros2-start-rosbag2-recording-from-launch-file)