【PX4-AutoPilot教程-TIPS】Gazebo仿真环境昏暗的解决办法即Ubuntu系统安装NVIDIA显卡驱动方法

本文主要是介绍【PX4-AutoPilot教程-TIPS】Gazebo仿真环境昏暗的解决办法即Ubuntu系统安装NVIDIA显卡驱动方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Gazebo仿真环境昏暗的解决办法即Ubuntu系统安装NVIDIA显卡驱动方法

    • 分析原因
    • 手动安装方法(推荐)
    • 自动安装方法
    • 检查是否安装成功
    • Gazebo仿真环境前后对比

分析原因

具体原因为:大多数情况是因为显卡性能不足,Gazebo自动关闭了灯光和阴影的渲染。但是自己的电脑明明有独立显卡为什么会性能不足呢?原因是Ubuntu在安装的时候并不会为独立显卡配置驱动,而是默认使用CPU上的集成显卡,以达到稳定并替用户省电的目的。对于独立显卡需要手动为显卡安装驱动以改善Gazebo的显示效果。

手动安装方法(推荐)

检查ubuntu是否检测到我们电脑上的显卡,打开终端使用以下命令查询显卡型号。

lspci | grep -i vga

可以看到两个VGA设备,一个是Intel的CPU集成显卡,另一个就是NVIDIA的显卡。

在这里插入图片描述

可以看到,查看到的显卡型号名称是一个十六进制数字代码,接下来将得到的十六进制数字代码,带入网址中查询具体显卡型号。

The PCI ID Repository

在这里插入图片描述

在文本框输入十六进制数字代码即可找到相应的显卡型号。

打开NVIDIA官网,下载对应显卡型号的驱动程序,注意需要选择Linux版本的驱动。

NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA

在这里插入图片描述

安装独立显卡驱动首先需要屏蔽Linux逆向工程开发的nouveau显卡驱动才能安装显卡驱动,在终端输入以下命令。

sudo gedit /etc/modprobe.d/blacklist.conf

在打开的文件中,最后一行加入以下内容。

blacklist nouveau
options nouveau modeset=0

保存后关闭该文本,此时默认的nouveau显卡驱动就加入了黑名单,被屏蔽了。

然后,在终端运行以下代码。

sudo update-initramfs -u

重启电脑。

reboot

重启之后在下载好驱动的文件夹中打开终端,运行以下命令进行安装,这里驱动文件名可以使用Tab自动补全。

sudo bash NVIDIA-Linux-x86_64-xxx.run

安装提示进行安装即可。

自动安装方法

打开终端使用以下命令安装独立显卡驱动。

sudo ubuntu-drivers autoinstall 

重启计算机。

检查是否安装成功

重启电脑后再打开终端,输入以下代码。

nvidia-smi

如果出现一个记载NVIDIA版本的表格,则安装成功。

在这里插入图片描述

显卡信息详解:

第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温。

第二栏的Temp:是温度,单位摄氏度。

第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。

第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。

第五栏的Bus-Id是涉及GPU总线的东西。

第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。

第五第六栏下方的Memory Usage是显存使用率。

第七栏是浮动的GPU利用率。

第八栏上方是关于ECC的东西。

第八栏下方Compute M是计算模式。

下面一张表格表示每个进程占用的显存使用率。

终端输入以下代码配置显卡驱动设置。

sudo apt install nvidia-settings
nvidia-settings   

将显卡工作模式改成性能模式。

在这里插入图片描述

这时已经成功安装了NVIDIA的显卡驱动,但是默认情况下显示内容依然由核显进行渲染驱动,所以我们要切换到独显驱动。

sudo apt install nvidia-prime
sudo prime-select nvidia

然后等待切换,提示Done的时候表示切换完成,然后重启系统即可。

如果之后想要切换到集显模式,也可以使用sudo prime-select intel切换到集显模式,然后重启系统即可。

Gazebo仿真环境前后对比

再次打开Gazebo可以看到画面明显变亮了,下图是前后对比。

在这里插入图片描述


参考资料:

gazebo环境黯淡无光改进与ubuntu系统安装nvidia驱动

Gazebo仿真中光源的设置

Linux-ubuntu系统查看显卡型号、显卡信息详解、显卡天梯图

NVIDIA显卡的Ubuntu驱动程序安装方法

这篇关于【PX4-AutoPilot教程-TIPS】Gazebo仿真环境昏暗的解决办法即Ubuntu系统安装NVIDIA显卡驱动方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/731131

相关文章

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

sql语句字段截取方法

《sql语句字段截取方法》在MySQL中,使用SUBSTRING函数可以实现字段截取,下面给大家分享sql语句字段截取方法,感兴趣的朋友一起看看吧... 目录sql语句字段截取sql 截取表中指定字段sql语句字段截取1、在mysql中,使用SUBSTRING函数可以实现字段截取。例如,要截取一个字符串字

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

spring security 超详细使用教程及如何接入springboot、前后端分离

《springsecurity超详细使用教程及如何接入springboot、前后端分离》SpringSecurity是一个强大且可扩展的框架,用于保护Java应用程序,尤其是基于Spring的应用... 目录1、准备工作1.1 引入依赖1.2 用户认证的配置1.3 基本的配置1.4 常用配置2、加密1. 密

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

Java中的StringUtils.isBlank()方法解读

《Java中的StringUtils.isBlank()方法解读》:本文主要介绍Java中的StringUtils.isBlank()方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录所在库及依赖引入方法签名方法功能示例代码代码解释与其他方法的对比总结StringUtils.isBl