Gazebo仿真加速的几种思路

以下是一些关于如何加速gazebo仿真的话题。

  1. gazebo仿真提速:(无gpu加速)

论坛上的相关帖子:How can I speed up simulation in Gazebo?

在不考虑用gpu的情况下,肯定首先考虑的是内部调整参数。

提高real_time_update_rate当然可以提高仿真速度,但很显然在计算机硬件的限制下,real_time_update_rate提高到一定数值后,对仿真速度提高的作用就不大了。

max_step_size(单位是秒)也会显著影响仿真速度,放大max_step_size可以显著提升仿真速度,但理所当然地,损失的是计算的精度。

注:real_time_update_rate = 1000,max_step_size = 0.001的理想real_time_factor就是1.0

不考虑传感器信号接收端的运行对整体计算资源的消耗,laser、camera等传感器的输出频率的改变对仿真速度影响不大(在此我指的是如360hz–>180hz,30hz–>3hz这种级别的改变)。

也有人曾尝试过对gazebo的物理引擎做并行计算方面的设计:Parallel physics,但我在没有gpu的计算机上尝试上述的例子时,并没有观察到明显的速度提升。

  1. 有gpu加速:

首先,在打开gazebo gui运行仿真的情况下,即使不做任何特殊处理,一个带有gpu的计算机显然也能获得更好的速度。

我使用两个系统分别运行一个视觉细节非常丰富的仿真测试,两个系统配置如下:

  • 系统1配置:32G内存,i7-8700 @ 3.20GHz × 12
  • 系统2配置:8G内存,i7-8700 @ 3.2GHz×12,GTX 1070

gui界面底部的数据显示系统1中Real Time Factor 0.26左右,FPS 4.2左右,而在系统2中Real Time Factor 0.35左右,FPS 7.8左右

可见单纯有显卡的情况下,不做额外操作,在内存只有8G的情况下也比无显卡32G内存情况下快(0.35>0.26)

此外这里是一个利用GPU加速gazebo中的人类角色的示例:GPU Accelerated Human Actor In Gazebo Simulation

  1. 还有一种显而易见的思路是:先运行一遍仿真系统,使用rosbag记录下数据,再提速放给要测试的算法看,这样只要你的算法吃得消,想放多快都可以。缺点是这样无法进行与仿真环境有交互的仿真测试。

  2. 采用主从机的方式,在仿真机(服务器等)中单独运行仿真系统。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒墨阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值