200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 白给的ROS编程笔记——win+ubuntu双系统重新安装Ubuntu 配置ROS+深度学习开发环境全

白给的ROS编程笔记——win+ubuntu双系统重新安装Ubuntu 配置ROS+深度学习开发环境全

时间:2021-02-24 20:44:20

相关推荐

白给的ROS编程笔记——win+ubuntu双系统重新安装Ubuntu 配置ROS+深度学习开发环境全

双系统删除并重新安装Ubuntu,配置ROS+深度学习开发环境全过程

前言1. 准备工作1.1 制作启动盘1.2 使用windows自带工具删除Ubuntu系统1.3 命令行删除引导分区2. 安装和配置Ubuntu系统2.1 设置开机启动项2.2 关于Acer Nitro5 这台笔记本2.3 关于分区2.4 安装一些小工具2.4.1 系统小插件2.4.2 修改键盘映射2.4.3 截图软件及全局快捷键设置2.4.4 中文输入法2.4.5 chrome浏览器2.3.6 Nvidia显卡cuda toolkit和cuDNN的安装3 ROS和深度学习相关软件配置3.1 Anaconda3.1.1 安装过程3.1.2 常用指令3.2 ROS-Noetic3.2.1 命令行安装3.2.2 bashrc中添加环境变量3.2.3 其他3.2.4 安装验证3.3 vscode3.3.1 安装过程3.3.2 常用插件3.4 pytorch3.4.1 安装过程3.4.2 验证3.5 tensorflow(博主知识盲区,TODO)4. 创建一个ros工程示例并以vscode作为集成开发环境示例4.1 初始化ros空间4.2 创建ros包4.3 配置编译快捷键4.5 配置vscode切换anaconda虚拟环境

前言

由于各种各样的原因,已经装好的双系统里的Ubuntu崩了(主要是因为不成气候的deepin wine), 实在忍无可忍,所以重新安装Ubuntu系统。下面是记录。篇幅比较长,建议看着目录找到需要的部分进行阅读。

1. 准备工作

1.1 制作启动盘

首先进入windows系统,下在ultraiso软件,根据网上的教程制作一个系统盘。总的过程就是,先准备一个可以格式化的U盘,在ubuntu官网上下载一个ubuntu的镜像,然后使用ultraiso软件将镜像写入到格式化后的U盘里面。开机的时候选择U盘启动,进入系统盘之后按提示安装Ubuntu。

1.2 使用windows自带工具删除Ubuntu系统

这是一种比较紧单粗暴的方法,右键"我的电脑,选择"manage"或者中文的"管理",然后在子硬盘管理下面删除掉Ubuntu系统相关的卷,一般来说应该是不带盘符的那几个卷,其中还会包括一个EFI system partition的盘(引导系统启动用的),要自行区分好,不要删错了。

1.3 命令行删除引导分区

/qq_38662733/article/details/106575897查看这个链接。常用到的指令有

diskpartlist diskselect disk <序号>list partitionselect partition <序号>delete partition override, 这个指令删除系统分区

2. 安装和配置Ubuntu系统

2.1 设置开机启动项

进入电脑的bios界面,不同电脑品牌对应的快捷键不一样,自行百度。设置为U盘启动。

2.2 关于Acer Nitro5 这台笔记本

对于Acer Nitro5笔记本电脑,是F12进入,如果进入不了的话应该是被disable了F12选择快速启动项的功能(进入bios之后,advanced菜单里有一个F12 boot menu的选项,选择启用下次就能够直接按F12了),这时候可以开机按F2进入bios界面,在boot菜单下选择启动顺序。另外,我还在网上看到有人问怎么把SATA模式改为AHCI,而不是默认的Optane with RAID模式。这是Acer比较鸡贼的地方,网上几乎没有教程提到怎么做。其实是可以的。进入BIOS后,在Main菜单栏下,按键盘的CTRL+S,这时候会多出一个选项,就跟玩游戏弹出了一个隐藏关卡一样,甚是有趣。

2.3 关于分区

安装的时候分区选择,只需要配置最重要的三个部分:

/bootswap/

总共的系统空间是180G左右,其中/boot我给了800MB其实是有点大了, swap area实际上是虚拟内存的空间,我给了20G,剩下的都分给了根目录,根目录会自动生成其他文件夹,所以只需要配置这三个分区即可。

由于如何安装Ubuntu系统这部分网上的教程数不胜数,再次不再鹦鹉学舌了,诸君自行百度搜索即可。

2.4 安装一些小工具

2.4.1 系统小插件

geditterminatorhtoptreegparted

2.4.2 修改键盘映射

如果是德语键盘的话,更改键盘的映射,让y和z对调,这样打字母就跟美式键盘一样了。更改的方式如下:

xev

然后分别按下键盘的y键和z按键, 可以看到查看keycode, y键对应的是52, z对应的是29

我们把两者对调一下:

sudo cp /usr/share/X11/xkb/keycodes/evdev /usr/share/X11/xkb/keycodes/evdev.baksudo gedit /usr/share/X11/xkb/keycodes/evdev

保存, 退出, 重启, 就能做到按下物理z按键,屏幕上对应输出的是y字母了。

2.4.3 截图软件及全局快捷键设置

截图软件推荐使用flameshot, 它的安装和全局快捷键配置如下:

sudo apt-get install flameshot

在设置中添加快捷键

2.4.4 中文输入法

安装搜狗输入法的流程已经在前面的博客写了,可以参考:Ubuntu20.04安装搜狗输入法 教程里有一个地方没有说到的是要先装fcitx,sudo apt install fcitx, 然后再按照教程的流程走。安装完后,怎么切换输入法呢?可以在这里下图这里查看,但是这里切换的是系统的输入法,也许是ibus插件的,总之,安装完搜狗输入法之后,需要查看的fcitx输入法界面下的切换输入法全局快捷键如第二张图所示快捷键是:ctrl+space,也可以自行设置。

2.4.5 chrome浏览器

cd Downloads/wget /linux/direct/google-chrome-stable_current_amd64.debsudo dpkg -i google-chrome-stable_current_amd64.debgoogle-chrome

最后再把chrome固定在左侧的dashboard中,以后直接单击就能打开。 这时,火狐浏览器就可以退役了。

2.3.6 Nvidia显卡cuda toolkit和cuDNN的安装

关于Nvidia,有几个概念是需要知道的, nvidia是一家设计显卡的公司名字(废话),

CUDA:是显卡厂商NVIDIA推出的运算平台,全称:Compute Unified Device Architecture,可以理解成一个我们不需要了解的并行计算模型,且他不需要与显卡硬件驱动CUDA Driver适配。CUDA Driver: 与实际硬件适配的驱动。NVCC: 显卡的编译器CUDA TOOLKITCUDA TOOLKIT包含了一系列的编译器,科学计算库,一堆的API,CUDA DriverCUDA TOOLKIT的子集,所以安装CUDA TOOLKIT一定会同时安装CUDA Driver,反之则不是。cuDNN:全称NVIDIA CUDA® Deep Neural Network library, 是一个专门为了深度学习开发的库,有了它,才能在pytorch, tensorflow上使用Nvidia的GPU训练网络。

可以参考这位博主的详细讲解,/qq_42406643/article/details/109545766, 安装不迷茫!

上面讲了这么多,重点来了。不同的需求需要安装的东西是不一样的:

电脑看视频,分屏功能,玩游戏,剪辑视频需要用到显卡加速:CUDA Driver就够了。训练深度学习网络:CUDA TOOLKIT以及cuDNN

如果是后者,那么我们需要关注版本适配的问题,前面说到了安装CUDA TOOLKIT会同时安装CUDA Driver, 而不同显卡适配的CUDA Driver是不同的。所以相当于CUDA TOOLKIT的安装版本由显卡型号决定。而cuDNN负责沟通深度学习和显卡计算平台,需要与计算工具CUDA TOOLKIT适配。剩余的pytorch, tensorflow相应的需要与计算接口cuDNN适配。所以这所有的错综复杂的关系最终可以串称一条单向的关系链。

显卡型号-> 决定CUDA Driver版本 -> 决定CUDA TOOLKIT的安装版本 -> 决定cuDNN版本 -> 决定pytorchtensorflow版本

搞清楚了这些,我们开始搜集线索,开始安装我们的驱动。下面给大家推演一遍:

手上的显卡是RTX 3050,

/zh-tw/geforce/drivers/ 适配的CUDA版本有495到515。

直接上CUDA TOOLKIT, 通过查阅官方的适配文档/cuda/cuda-toolkit-release-notes/index.html可以看出,cuda toolkit需要选择11.5及以上的版本。

下面的表格是最低版本要求:

进一步看cuDNN的版本 版本下载的链接中有提示/rdp/cudnn-archive

根据pytorch的安装指令/get-started/locally/

根据显卡的算力确定版本类型, tensorflow需要cuDNN在8.1.8版本及以上,适配范围比较广,且暂时用不上,先不管。

/install/pip , /cuda-gpus

综上,对于Geforce显卡RTX系列3050型号版本的Nvidia显卡,我们选择下载的版本是:

本着使用不太新又不太旧的原则,我们在/cuda-toolkit-archive中选择了cuda toolkit 11.6.1的版本适配pytorch中最新的类型

将上面的指令都执行完后,重启电脑。然后在命令行中输入命令

nvidia-smi

可以得到CUDA的驱动版本和CUDA的版本,以及GPU的内存使用情况

然后是配置bashrc中的环境变量,在文件末尾添加两句话:

export PATH="/usr/local/cuda-11.6/bin:$PATH"export LD_LIBRARY_PATH="/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH"

关闭终端再打开,输入nvcc -V命令,有输出则表示安装得妥妥的。

最后我们再来安装一下cuDNN,然后再在下文新建的ros工程下跑一个cnn的demo验证cuDNN安装是否成功。

cuDNN的安装过程极致简洁,我们通过nvidia-smi命令已经确认了CUDA TOOLKIT的版本是11.6,也就是说现在激活的是/usr/local路径下的cuda-11.6文件夹,我们只需要把cuDNN的静态链接库等文件复制粘贴到对应的文件夹下即可。但,起码11.6版本是只有deb安装包,直接下载安装即可。

先下载cuDNN安装包

如果稍微认真一点观察,不难发现,cuDNN v8.3之后只需要下载ubuntu对应的deb包就行了,不需要再下载压缩包然后把某部分代码复制粘贴到指定的文件夹下。登录官网账号,下载,然后

所以我直接下载了deb包,安装即可,完美。

接着使用我们前面VAE笔记 从零点五开始的深度学习笔记——VAE(Variational AutoEncoder) (三)VAE的简单实现中的pytorch工程,验证能否使用gpu训练

将程序中的device改为使用程序判断是否能够使用GPU 也就是cuda

然后在终端里面输入$ watch -n 1 nvidia-smi,表示1秒钟观察一次GPU的状态。

由上图可见运行没有问题,GPU正常运行。

3 ROS和深度学习相关软件配置

3.1 Anaconda

3.1.1 安装过程

进入anaconda的官网: /products/individual, 直接下载安装包

cd Downloads/bash Anaconda3-.05-Linux-x86_64.sh

一直按enter,弹出提示之后按yes,同意条款。 安装路径选择选择yes使用默认路径。当问道是否想要安装器运行conda init来初始化anaconda3的时候,选择no.

最后修改环境变量,将anaconda的路径加入到bashrc文件中

gedit ~/.bashrc

把安装路径的二进制文件夹附加到路径中, 在bashrc文件最后面添加:

export PATH=“/home/<用户名>/anaconda3/bin:$PATH”

如果是首次使用conda activate的话,输入下面的指令。这条指令会在bashrc文件中添加一些conda相关的命令。

conda init bash

但这样会导致每次开终端都有个base环境,太丑了,并且ros使用的python环境跟anaconda的不一样。这时可以参考这位博主的做法,/moshiyaofei/article/details/122062672更改conda的默认配置,在home下面新建一个.condarc, 在文件中添加指令auto_activate_base: false, 该指令会关闭anaconda自动启用base环境的功能。

gedit ~/.condarc

auto_activate_base: false

保存后关闭终端,再开一个新的。输入下面命令行验证一下安装是否成功

conda -V

python3

开一个新的终端,试着输入python, 如果弹出错误,则执行:

sudo ln -s /usr/bin/python3 /usr/bin/python

将python3 软链接到python这个指令里面,如果弹出了这个错误:

ln: failed to create symbolic link ‘/usr/bin/python’: File exists

则删除这一项之后再继续执行软链接:

sudo rm /usr/bin/python

3.1.2 常用指令

conda env list

conda activate <环境名>

conda deactivate <环境名>

conda create -n <环境名> python=<版本号>

conda install <包名>=<版本号或者不需要给这个参数>

conda remove -n <环境名> --all

3.2 ROS-Noetic

3.2.1 命令行安装

参考链接:/noetic/Installation/Ubuntu

sudo sh -c 'echo "deb /ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo apt install curl # if you haven't already installed curlcurl -s /ros/rosdistro/master/ros.asc | sudo apt-key add -sudo apt updatesudo apt install ros-noetic-desktop-full

3.2.2 bashrc中添加环境变量

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc

3.2.3 其他

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essentialsudo apt install python3-rosdepsudo rosdep initrosdep update

3.2.4 安装验证

roscore

完工

3.3 vscode

3.3.1 安装过程

vscode主要用于ros编程,还有pytorch编写神经网络程序。虽然Ubuntu安装完成后,系统有提示说Ubuntu Software里面有vscode这个软件,但是我还是偏向于自己下载vscode安装包/用命令行安装,避免出现奇奇怪怪的问题。

cd Downloads/sudo dpkg -i code_1.70.2-1660629410_amd64.debcode .

3.3.2 常用插件

下面我们下载一些vscode常用插件, 这篇博文/post/6996188623305441287里面记录了36中常用的vscode插件,我们挑选了一些用过且需要的进行安装:

Material Icon ThemePower Modevscode-fileheaderbetter commentstodo highlightBracket Pair Colorization TogglerPath intellisensetodo treecode runner

还有一些开发环境需要的插件

c/c++c/c++ extension packpythonpython extension packpython indentroscatkin tool

3.4 pytorch

3.4.1 安装过程

我们先创建一个虚拟环境,将其命名为env_pytorch然后根据pytorch官网的提示,输入相应的命令。

conda create -n env_pytorch python=3.7conda activate env_pytorchconda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge

3.4.2 验证

新建一个python脚本,然后导入torch模块,查看pytorch版本,如可以运行,则安装成功。代码如下:

import torchif __name__ == '__main__':print('Examine whether Pytorch is installed successfully!')print(f'PyTorch version: {torch.__version__}')

运行成功,没毛病!

3.5 tensorflow(博主知识盲区,TODO)

知识盲区,暂未涉及,待定

4. 创建一个ros工程示例并以vscode作为集成开发环境示例

4.1 初始化ros空间

先使用命令行初始化一个ros工作空间,注意关注ros工程的文件结构以及在什么路径下执行什么命令行

mkdir -p csdn_ws/srccd csdn_ws/src/catkin_init_workspacecd ..catkin_make code .

编译完成后,我们来看一下整个文件的结构,由于我们实现已经安装了ros的插件,所以vscode会自动识别出这个工程文件,自动添加了.vscode这个文件夹。

4.2 创建ros包

接着我们再创建一个ros包,按提示依次输入包名hello_rospack和依赖包名roscpp rospy std_mgs geometry_msgs sensor_msgs 使用空格隔开即可。

4.3 配置编译快捷键

点击config default build task, 在弹出的窗口中选择catkin_make:build

这个时候, .vscode 文件夹下会多出一个tasks.json的文件,这个文件可以将快捷键与终端执行的命令行链接起来。这里我们将编译的类型改为Release。

最后直接使用键盘ctrl+shift+B,就可以愉快地编译工程了,并没有特别复杂的操作。

4.5 配置vscode切换anaconda虚拟环境

首先键盘输入ctrl+shift+P,召唤出输入框,然后输入Python: select interpreter, 这时候会弹出所有可选的环境类型,选择其中一个,比如我选了新建的env_pytorch, 之后,使用在ros包中创建一个python文件,然后点击python文件的编辑界面。可以看到右下角多了一个新的东西,有的vscode版本会出现在左下角。单击他可以切换环境。

以上就是我从下午两点多决议重装系统,傍晚做了个饭,晚上继续撸到快十二点,间间断断地实践,总共装卸了两次,总结出的Ubuntu 20.04系统下,RTX3050显卡,从零开始配置的ROS+深度学习编程环境的总结。将会不定时更新。

希望对刚入门的同学有所帮助。祝明天搬砖愉快!

8月28日

Dianye Huang

白给的ROS编程笔记——win+ubuntu双系统重新安装Ubuntu 配置ROS+深度学习开发环境全过程笔记 (一)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。