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

前言

由于各种各样的原因,已经装好的双系统里的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 命令行删除引导分区

https://blog.csdn.net/qq_38662733/article/details/106575897 查看这个链接。常用到的指令有

  • diskpart
  • list disk
  • select disk <序号>
  • list partition
  • select 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 关于分区

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

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

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

2.4 安装一些小工具

2.4.1 系统小插件

  • gedit
  • terminator
  • htop
  • tree
  • gparted

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.bak
sudo 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 https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
google-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训练网络。

可以参考这位博主的详细讲解, https://blog.csdn.net/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,
https://www.nvidia.com/zh-tw/geforce/drivers/ 适配的CUDA版本有495到515。

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

11.5

下面的表格是最低版本要求:
在这里插入图片描述进一步看cuDNN 的版本 版本下载的链接中有提示 https://developer.nvidia.com/rdp/cudnn-archive

根据pytorch的安装指令 https://pytorch.org/get-started/locally/
在这里插入图片描述

根据显卡的算力确定版本类型, tensorflow需要cuDNN在8.1.8版本及以上,适配范围比较广,且暂时用不上,先不管。
https://www.tensorflow.org/install/pip , https://developer.nvidia.com/cuda-gpus

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

本着使用不太新又不太旧的原则,我们在https://developer.nvidia.com/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安装包,直接下载安装即可。

  1. 先下载cuDNN安装包
    如果稍微认真一点观察,不难发现,cuDNN v8.3之后只需要下载ubuntu对应的deb包就行了,不需要再下载压缩包然后把某部分代码复制粘贴到指定的文件夹下。登录官网账号,下载,然后
    在这里插入图片描述所以我直接下载了deb包,安装即可,完美。

  2. 接着使用我们前面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的官网: https://www.anaconda.com/products/individual, 直接下载安装包
在这里插入图片描述

cd Downloads/
bash Anaconda3-2022.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的不一样。这时可以参考这位博主的做法,https://blog.csdn.net/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 命令行安装

参考链接:http://wiki.ros.org/noetic/Installation/Ubuntu

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

3.2.2 bashrc中添加环境变量

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

3.2.3 其他

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update

3.2.4 安装验证

roscore 

在这里插入图片描述
完工

3.3 vscode

3.3.1 安装过程

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

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

3.3.2 常用插件

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

  • Material Icon Theme
  • Power Mode
  • vscode-fileheader
  • better comments
  • todo highlight
  • Bracket Pair Colorization Toggler
  • Path intellisense
  • todo tree
  • code runner

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

  • c/c++
  • c/c++ extension pack
  • python
  • python extension pack
  • python indent
  • ros
  • catkin tool
    在这里插入图片描述

3.4 pytorch

3.4.1 安装过程

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

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

3.4.2 验证

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

import torch

if __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/src
cd csdn_ws/src/
catkin_init_workspace
cd ..
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+深度学习编程环境的总结。将会不定时更新。

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

2022年8月28日
Dianye Huang

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值