gazebo又卡又慢?快把你的显卡用起来!点击查看如何使用显卡运行gazebo~

2021-10-11 更新

经测试发现,使用系统自带的显卡驱动安装程序,更加方便快捷。
步骤如下:

设置->关于->软件和更新->附加驱动->找到推荐的驱动直接点应用即可。

之前的原文

大家好,我是小智,目前在深圳一家机器人公司做机器人算法工程师。做机器人算法,仿真是非常重要的,最常用的仿真软件就是gazebo了。

小智上个周末基于gazebo做了激光雷达三维重建的demo,就是用的自己几年前的烂显卡,但是效果依然很不错。

仿真视频链接

但很多人使用gazebo的时候都会遇到卡顿问题,主要原因有两个:

**原因1:**如果是卡的打不开,基本是网络问题了,gazebo需要下载一些模型,因为在国外比较卡,所以大家翻墙即可,如果不知道如何翻墙的,可以加入qq群:,群里会放模型的压缩包,直接解压即可。

**原因2:**电脑本卡,其实很多时候是因为使用了电脑的显卡运行gazebo,导致电脑卡顿,今天小智就给大家说一下,怎么在linux上使用显卡运行gazebo进行仿真,最终实验效果打满分。

一、电脑装了显卡是不是gazebo就跑在了显卡上?

答案不是
当我们安装系统时,针对nvidia的显卡系统默认安装的驱动是Nouveau(开源的nvidia显卡驱动),性能和计算自然是比不上nvidia专有的驱动,gazebo也无法使用这个驱动,只能在cpu上运行,自然会比较卡。

二、那该怎么解决呢?

安装对应的驱动即可,安装方法如下:

1.检查显卡型号

使用命令

#lshw显示系统硬件,-c是筛选class,dispaly是和显示相关的。
lshw -c display 

在这里插入图片描述
可以看到小智这里是垃圾的GeForce MX150~

2.查找对应的显卡驱动

网站:https://www.nvidia.cn/Download/index.aspx?lang=cn

对应着型号选择,然后搜索下载就可以了~
在这里插入图片描述
下载之后是这样一个文件,后缀为.run
在这里插入图片描述

3.卸载电脑上原有的驱动(如果没有可以跳过)

使用指令

下面两个都可以试一试
sudo apt-get autoremove --purge nvidia*
sudo /usr/bin/nvidia-uninstall

4.禁用掉系统的Nouveau驱动

小智扩展:linux系统中有个叫做黑名单的东西,如果某个模块在黑名单中,系统就会禁止这个模块装入内核中,该配置文件在/etc/modprobe.d/中。

禁用默认驱动操作指令

查看nouveau驱动状态:   lsmod | grep nouveau
修改前要有备份的好习惯: sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf_backup
编辑黑名单:sudo gedit /etc/modprobe.d/blacklist.conf
最后一行加入两句话:
blacklist nouveau
options nouveau modeset=0

5.安装新的驱动

完成上一步,记一下刚刚下载的驱动所放的目录。然后记得重启电脑,重启完成后,不用登录。直接按快捷键CTRL+ALT+F1或者CTRL+ALT+F2进入tty,先输入你的用户名,然后输入密码。接下来就进入你下载的驱动目录。运行下面的指令安装:

# 文件名字可能不一样,不要照抄
sudo bash NVIDIA-Linux-x86_64-460.84.run 

输入密码,然后等待加载一下
在这里插入图片描述
加载完成会出现大概这样子的界面,跟着next回车就行:
在这里插入图片描述
安装完成后再次重启~

6.测试是否安装成功

一行指令搞定

nvidia-smi

在这里插入图片描述

7.再次运行gazebo

小智运行的是上次的仿真。
在这里插入图片描述

接下来再使用nvidia-smi指令,就会看到多出一个gzserver和gzclient,再拖拽一下gazebo,就会感觉特比的丝滑~
在这里插入图片描述

三、自我介绍

我是小智,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚

初中学习编程,高中开始学习机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金)

目前在做公众号,输出机器人学习指南、论文注解、工作经验,欢迎大家关注小智,一起交流技术,学习机器人

在这里插入图片描述

<think>好的,我现在需要帮助用户解决“虚拟机运行Gazebo”的问题。首先,我得回忆一下用户提到的系统级指令,确保回答格式正确,比如行内数学表达式用$...$,独立公式用$$...$$,并且用中文回答。 用户的问题是关于虚拟机运行Gazebo顿。我需要先分析可能的原因。首先想到的是资源分配问题。虚拟机通常需要足够的CPU、内存和显存,而默认设置可能不够。Gazebo作为3D机器人仿真工具,对图形处理要求较高,可能虚拟机没有启用3D加速或者分配的显存不足。 接下来,考虑虚拟化技术是否支持。比如,在VMware或VirtualBox中,需要开启VT-x/AMD-V等硬件虚拟化选项,以及安装增强功能或工具,如VirtualBox的Guest Additions,这可能提升性能。 然后是图形渲染模式的问题。Gazebo默认使用OpenGL,但在虚拟机中可能效率不高。建议用户尝试切换到其他模式,比如使用软件渲染或者调整渲染设置,可能会缓解顿。 存储和磁盘性能也是一个因素。虚拟机如果使用动态分配磁盘,可能碎片化严重,导致IO延迟。建议用户改用固定大小磁盘,或者将虚拟机文件存放在SSD上,提升读写速度。 另外,虚拟机软件本身的配置可能有优化空间。例如,调整虚拟机的显示设置,减少显存分配,关闭不必要的视觉效果,或者调整进程优先级。关闭不需要的后台程序也能释放资源。 如果上述方法都不奏效,可能需要考虑替代方案。比如,使用双系统而不是虚拟机,这样Gazebo可以直接利用硬件资源,性能会更好。或者尝试容器化技术如Docker,虽然不确定对Gazebo的支持情况,但可能资源占用更少。云服务也是一个选择,但需要考虑网络延迟和成本。 在回答时,需要分步骤列出这些可能的原因和解决方案,结构清晰,帮助用户逐步排查问题。同时,确保提到的每个点都有依据,比如VirtualBox的3D加速设置,或者渲染模式的调整方法。需要提醒用户根据具体情况尝试,并注意不同虚拟化软件(VMware、VirtualBox等)的配置差异。 最后,检查是否有遗漏的方面,比如虚拟机与宿主机之间的资源竞争,或者Gazebo本身的配置优化。确保建议全面,用户可以根据自己的环境逐步调整,找到最适合的解决方案。</think>虚拟机运行Gazebo顿是常见问题,主要与资源分配和虚拟化性能有关。以下是逐步分析和优化建议: --- ### 一、资源分配不足 1. **CPU与内存** Gazebo需要多核CPU和大内存支撑物理引擎和3D渲染。 - 建议为虚拟机分配至少 **4核CPU** 和 **8GB内存**(若场景复杂需更高配置)。 - 在虚拟化软件(如VMware/VirtualBox)中开启 **CPU虚拟化嵌套**(Nested Virtualization)。 2. **显存与3D加速** - 显存分配需≥**128MB**,并启用 **3D加速**(VirtualBox中勾选 _显示→启用3D加速_)。 - 公式:渲染帧率$FPS \propto \frac{\text{GPU性能}}{\text{虚拟机开销}}$,若未启用硬件加速,分母显著增大。 --- ### 二、虚拟化性能瓶颈 1. **硬件虚拟化支持** - 宿主机BIOS中开启 **VT-x/AMD-V** 和 **IOMMU**(针对PCI直通)。 - 使用命令检查支持情况(Linux): ```bash grep -E "vmx|svm" /proc/cpuinfo ``` 2. **磁盘I/O优化** - 虚拟机磁盘模式设为 **固定大小**(非动态分配),避免碎片化。 - 将虚拟磁盘文件放在 **SSD** 而非HDD上。 --- ### 三、Gazebo配置调整 1. **渲染模式切换** - 尝试 **软件渲染**(降低画质但减少GPU依赖): ```bash export LIBGL_ALWAYS_SOFTWARE=1 gazebo ``` - 或在Gazebo中关闭阴影、抗锯齿(GUI菜单:`渲染→性能选项`)。 2. **简化仿真场景** - 减少模型复杂度(如用简单几何体替代高精度网格)。 - 通过SDF文件删除非必要传感器或插件。 --- ### 四、替代方案 1. **双系统/物理机运行** 若虚拟机性能无法满足,可安装 **Ubuntu双系统**,直接调用物理GPU(如NVIDIA显卡需安装专有驱动)。 2. **容器化方案** 使用Docker配合 **GPU透传**(需NVIDIA Container Toolkit): ```bash docker run --gpus all -it gazebo ``` --- ### 五、验证优化效果 1. 通过Gazebo内置工具监控性能: ```bash gazebo --verbose ``` - 查看输出日志中的 **Real Time Factor**(目标接近1.0)。 --- **总结**:优先确保虚拟机获得足够资源并启用硬件加速,其次优化Gazebo配置。若仍顿,建议迁移到物理机或容器环境。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值