# Gazebo 如何以非 0 仿真时钟启动

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-11-29-robotics-se-104397
> 频道：pitfalls | 更新日期：2024-11-29 | 标签：auto, stackexchange, ros, gazebo
> 核心摘要：Gazebo 默认从 0 开始计时，可通过自定义 .world 文件中的 <sim_time> 设置初始仿真时间。

# Gazebo 如何以非 0 仿真时钟启动

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How can you start gazebo with a non-0 simulated clock time?](https://robotics.stackexchange.com/questions/104397/how-can-you-start-gazebo-with-a-non-0-simulated-clock-time)（Robotics Stack Exchange #104397）

**状态**：已解决

## 问题

Gazebo 启动时仿真时钟从 0 开始，代码若对小于 10 秒的时间戳执行减 10 秒等时间运算可能报错；提问者想修改初始 clock stamp。

## 环境

Gazebo / Ignition 仿真环境

## 解决办法

1. 让依赖仿真时间的 ROS 节点设置 `use_sim_time`，确保共享同一时钟；对显式时间差计算先做时间戳检查或错误处理。
2. 启动目标 world（不生成机器人），让 Gazebo 运行几秒后保存 world。
3. 编辑保存得到的 `.world` 文件，在 SDF `<world>` 的 `<state>` 中调整 `<sim_time>` 为期望起始时间。
4. 之后启动 Gazebo 时加载这个修改后的 world 文件；原文称未发现可通过 Gazebo ROS launch 文件直接设置的更简单方法。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #104397：How can you start gazebo with a non-0 simulated clock time?](https://robotics.stackexchange.com/questions/104397/how-can-you-start-gazebo-with-a-non-0-simulated-clock-time)