gazebo仿真环境加速

gazebo仿真加速可通过修改world文件来实现,此处我将以DQN算法在Turtlebot3上的仿真实验的项目为例进行展示:

1.找到该项目的world文件/home/u1/ws/src/turtlebot3_simulations-noetic/turtlebot3_gazebo/worlds/turtlebot3_stage_2.world,以该world文件为例找到以下代码

    <physics type="ode">
      <real_time_update_rate>1000.0</real_time_update_rate>
      <max_step_size>0.001</max_step_size>
      <real_time_factor>1</real_time_factor>
      <ode>

代码注释解析

<real_time_update_rate>1000.0</real_time_update_rate>
设置物理引擎的实时更新频率为1000赫兹(Hz),即每秒钟进行1000次物理计算迭代。

<max_step_size>0.001</max_step_size>
限制单次物理计算的最大时间步长为0.001秒。该参数用于确保数值稳定性,避免因步长过大导致模拟失真。

<real_time_factor>1</real_time_factor>
设定实时因子为1,表示物理模拟时间与实际时间同步(1:1)。若值大于1,模拟加速;小于1则减速。

从注释即可看出想要加快仿真速度可以调整实时因子,但是单独调整实时因子并不能加快仿真速度,因为调整实时因子仅改变仿真时间与实际时间的同步关系,并不直接影响仿真计算本身的效率。

而想要实现仿真加速还要调整<real_time_update_rate>1000.0</real_time_update_rate>,<max_step_size>0.001</max_step_size>,而这两个参数的乘积即为模拟时间与实时的比率。

因此这3个参数需同时调整,例如我想仿真加速10倍:

      <real_time_update_rate>1000.0</real_time_update_rate>
      <max_step_size>0.01</max_step_size>
      <real_time_factor>10</real_time_factor>

此时启动仿真环境,可以看到:

仿真界面的下部real time factor 显示9.99,此时说明加速成功了!

需要注意的是仿真加速过快会让仿真变得不稳定,如图所示我并没有控制小车但是其偏离了初始位置;另外导航算法的时间需统一使用仿真时间;另外此处加速的只是仿真环境的时间,,并部分加快算法的运算时间,若算法运算时间大于控制频率,会影响仿真效果。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐