【基于Ubuntu20.04的Autoware.universe安装过程】方案二:双系统 | 详细记录 | 全过程图文 by.Akaxi

目录

一、Autoware.universe背景

Part-1:安装双系统教程

二、查看Windows引导方式

三、制作安装盘

四、设置电脑配置

1.关闭bitlocker

2.压缩硬盘分区

3.关闭Secure Boot

4.关闭intel RST

5.BIOS设置U盘引导

五、安装Ubuntu20.04

1.ventoy引导

2.安装配置

3.安装类型

4.完成安装

Part-2:在Ubuntu20.04上安装Autoware.universe

六、安装ROS2 Galactic

七、安装ros2_dev_tools

八、安装rmw_implementation

1.下载Qv2ray

2.安装Git

3.克隆Autoware到本地

4.自动安装相关依赖

5.安装rmw_implementation

九、安装pacmod

十、安装autoware_core

十一、安装autoware universe dependencies

1.指令安装(慢且不推荐)

2.官网下载安装(快且推荐)

十二、安装pre_commit

十三、安装CUDA

1.指令安装CUDA

2.问题解决

十四、安装cuDNN and TensorRT

十五、下载Universe代码

十六、安装 Autoware ROS依赖包

1.失败案例

2.成功案例

问题1

问题2

十七、编译空间

1.colcon编译的时老是卡死

2.trtexec_vendor包错误


一、Autoware.universe背景

Autoware是一个基于ROS(机器人操作系统)开发的,开源的自动驾驶软件栈。它可以用于为各种各样的车辆,如汽车和卡车等,开发和部署先进辅助驾驶系统(ADAS)

Autoware版本:

Ai:基于ROS1

Auto:基于ROS2

Universe:商用/二次开发

官方文档:https://autowarefoundation.github.io/autoware.universe/main/

Part-1:安装双系统教程

参考视频链接:

https://www.bilibili.com/video/BV1Cc41127B9/?p=2&spm_id_from=pageDriver&vd_source=ce97c013e2f83de15ffb12fba99c812d

最终效果:

可参考我这篇博客:【Windows11通过移动硬盘安装Ubuntu20.04双系统】保姆级教程 | ventoy | BIOS | Ubuntu20.04 | 全过程图文by.Akaxi_ventoy ubuntu-CSDN博客

二、查看Windows引导方式

首先需要查看电脑的BIOS模式,在搜索栏输入“系统信息”

BIOS是计算机系统中的基本固件程序,负责初始化硬件设备、引导操作系统以及提供一些基本的配置选项。

在系统信息可以看到BIOS模式是“UEFI”,那么可以进行进行接下来的步骤,如果显示是“传统”,则需要另行操作,具体参考视频:Windows 和 Ubuntu 双系统的安装和卸载_哔哩哔哩_bilibili

然后将移动硬盘插入笔记本电脑

同样搜索“磁盘管理”

可以看到插入的移动硬盘大小931.48个G

然后右键点击移动硬盘,点击属性

点击“卷”,看看自己的移动硬盘的磁盘分区格式是不是GPT,如果是MBR需要转换成GPT。

三、制作安装盘

SourceURL:file:///home/akaxi-autoware/桌面/【Dora项目】记录-1.30.docx

我们需要一个U盘作为安装盘,在安装盘内提前下载Ubuntu20.04的镜像文件,这样电脑在启动后BIOS会利用U盘作为引导,进行Ubuntu的安装。

首先下载Ubuntu20.04,在华为云网站下载镜像文件

http://repo.huaweicloud.com/ubuntu-releases/

选择这个Ubuntu20.04版本

选择此桌面版,点击下载到Windows系统下

然后需要下载制作启动盘U盘的软件:ventoy

在Gitee上找到此软件,点击下载到Windows系统下

【ventoy】Ventoy 发行版 - Gitee.com

选择ventoy-1.0.96-windows.zip压缩包下载

解压后,点击ventoy

这里需要将U盘插入笔记本电脑

点击打开

需要选择制作的盘,这里选择U盘,然后安装包内的Ventoy版本如果是MBR,需要修改成GPT

点击左上角“配置选项”-“分区类型”-“GPT”

随后点击安装

Kuku安装~

成功!可以看到U盘名字变成了“Ventoy”完成启动盘制作~

然后将之前下载的Ubuntu20.04镜像文件拷贝到U盘中,至此安装盘制作完成!!!

四、设置电脑配置

1.关闭bitlocker

搜索“设备加密”

点击关闭设备加密

这里解密时间取决于之前硬盘加密大小

这里需要大概30mim,嘎嘎开始解密,不解密的话,如果你多次安装失败,会触发蓝屏琐数据,到时候会很麻烦,这里直接关掉,不会对电脑造成任何影响,反而方便我们之后的操作。

显示关闭就完成啦

2.压缩硬盘分区

将移动硬盘插入笔记本电脑

搜索磁盘管理

右击硬盘大小,点击压缩卷

这里输入200 X 1024 = 204800 M【200个G大小】

这样就压缩好啦~

3.关闭Secure Boot

插入U盘和移动硬盘,两个都插上喔,接下来的设置的安装都别拔下来啦,省心。

重启电脑,疯狂按F2键或者Fn+F2键进入笔记本的BIOS设置界面【进入方式取决于电脑型号】

然后关闭Secure Boot

4.关闭intel RST

然后在Configuration找到SATA Controller Mode,改为AHCI

5.BIOS设置U盘引导

在Boot里找到EFI启动项,把USB的U盘作为BIOS的第一引导,就需要将其设置到第一位置,于是这里选择U盘按F6,Move item up list。

可以看到现在U盘作为BIOS的第一引导了,完成啦~~~然后保存退出,电脑即将重启,马上进入Ubuntu20.04的安装!!!!

按F10保存且退出,Yes确认!!!

五、安装Ubuntu20.04

1.ventoy引导

电脑重启后,进入U盘引导,可以看到是我们之前将U盘设置的ventoy,里面装有Ubuntu20.04的iso镜像文件,回车继续

回车选择此iso镜像

选择Boot in normal mode,回车

然后系统就检查镜像完整性,即将进入安装啦~

2.安装配置

选择系统语言为中文(简体)

点击安装Ubuntu

选择键盘布局为Chinese选择Chinese,点击继续~

选择无线网络:现在咱先不连接无线网络,继续

更新和其他软件,选择“正常安装”然后选择“为图形或无线硬件,以及其他媒体格式安装第三方软件”,点击继续

安装类型我们一定要选择“其他选项”,这样才能给移动硬盘安装上Ubuntu20.04哦~

3.安装类型

找到我们之前在Windows下给移动硬盘压缩的分区,这里根据“设备”是空闲,“大小”是之前设置的200G大小左右,找到它,点击~

可以看到设备是“空闲”,大小“214749MB”差不多是200G,就它啦!!!然后将它挂在到根目录上~

点击它,创建分区,分区类型是“主分区”,分区位置是“空间起始位置”,挂载点是“/”【/是根目录】,点击完成~

然后再找到设备类型是“efi”,已安装文件是“Windows Boot Manager”的分区,选择它为Windows Boot Manager就可以啦~

将改动写入磁盘,继续

4.完成安装

选择时间为shanghai

点击继续

然后设置用户名字,我就叫“akaxi-autoware”,计算机的名字叫“akaxi-PC”,密码一定要记住啦,之后终端运行程序经常会输入密码哟~

嘎嘎安装~大概15min

安装完成,重启电脑噜!!!

笔记本重启啦,成功进入Ubuntu系统啦,这里拔掉U盘,然后回车进入系统

输入密码后进入Ubuntu系统成功啦~~~通过移动硬盘安装Ubuntu20.04成功~撒花!!!

Part-2:在Ubuntu20.04上安装Autoware.universe

六、安装ROS2 Galactic

鱼香ros一键安装,输入指令一键安装

http://wget http://fishros.com/install -O fishros && . fishros

输入1,一键安装ROS2

依次输入1-2更换源并清理第三方源

依次输入3-1选择安装galactic(ROS2)桌面版,因为Autoware.Universe是基于ROS2的galactic所以需要下载喔~

一顿嘎嘎安装,耐心等待精度条走到100%喔~(大概5min)

七、安装ros2_dev_tools

输入指令嘎嘎安装

sudo apt update && sudo apt install -y \build-essential \cmake \git \python3-colcon-common-extensions \python3-flake8 \python3-pip \python3-pytest-cov \python3-rosdep \python3-setuptools \python3-vcstool \wget

输入后,完成安装

再输入:

python3 -m pip install -U \flake8-blind-except \flake8-builtins \flake8-class-newline \flake8-comprehensions \flake8-deprecated \flake8-docstrings \flake8-import-order \flake8-quotes \pytest-repeat \pytest-rerunfailures \pytest \setuptools

输入指令后会出现报错,依次输入指令解决:

【1】sudo mkdir -p /etc/ros/rosdep/sources.list.d/
【2】sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
【3】export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
【4】rosdep update --include-eol-distros
【5】echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc

再次输入指令,即可成功下载~

这里大概率会报错:

ERROR: launchpadlib 1.10.13 requires testresources, which is not installed.

输入指令

sudo apt install python3-testresources

解决啦

梅开三度,再输入一遍指令,测试安装成功否~

八、安装rmw_implementation

1.下载Qv2ray

【参考链接】https://ivpsr.com/2162.html

需要下载Qv2ray软件与其内核文件,下面两个文件:

1.Qv2ray-v2.7.0-linux-x64.AppImage

Github链接:https://github.com/Qv2ray/Qv2ray/releases

2.v2ray-linux-64.zip 

Github链接:https://github.com/v2fly/v2ray-core/releases/tag/v4.31.0

将两个文件放到主目录下,注意要将zip文件解压,在界面点击右键在终端打开

输入指令添加权限:

chmod a+x Qv2ray-v2.7.0-linux-x64.AppImage

输入指令打开Qv2ray软件

./Qv2ray-v2.7.0-linux-x64.AppImage【执行Qv2ray】

选择首选项

按照上述步骤配置内核

然后设置订阅,完成订阅确认后,点击你的订阅分组,右键更新订阅,就可以看到节点啦

2.安装Git

输入指令安装Git,这里很可能Git已经被安装过了,所以已经是最新版,保险起见还是指令安装一下

3.克隆Autoware到本地

输入指令安装autoware到本地文件夹

mkdir autoware_universe
cd autoware_universe/
git clone https://github.com/autowarefoundation/autoware.git -b galactic

这里很可能报错链接超时,这里就需要打开Qv2ray,并且配置一下端口

指令打开Qv2ray:

./Qv2ray-v2.7.0-linux-x64.AppImage

打开后链接到节点喔~~

然后需要配置git端口指令输入:

git config --global http.proxy 127.0.0.1:XXXXgit config --global https.proxy 127.0.0.1:XXXX

【这里的XXXX需要根据自己情况设置,在Ubuntu右上角设置,网络代理】

点击网络代理

可以看到HTTP和HTTPS的代理端口,相应的将修改Git端口指令改为对于端口号,我的就是:

git config --global http.proxy 127.0.0.1:8889git config --global https.proxy 127.0.0.1:8889

输入配置端口指令后,再次执行克隆指令,就可以将autoware克隆到本地啦!!!

4.自动安装相关依赖

进入下载好的autoware_universe文件夹下的autoware

cd autoware

再自动安装相关依赖

./setup-dev-env.sh

然后就是嘎嘎自动配置相关环境

让输入密码记得输入喔

最后,出现此报错就说明完成啦!后面会手动配置环境的~

5.安装rmw_implementation

配置一下环境变量

cd autoware_universe/
source amd64.env

【1】sudo apt update
【2】rmw_implementation_dashed=$(eval sed -e "s/_/-/g" <<< "${rmw_implementation}")
sudo apt install ros-${rosdistro}-${rmw_implementation_dashed}
【3】echo '' >> ~/.bashrc && echo "export RMW_IMPLEMENTATION=${rmw_implementation}" >> ~/.bashrc

完成~

九、安装pacmod

依次输入指令执行安装

【1】cd autoware_universe/
【2】source amd64.env
【3】sudo apt install apt-transport-https
【4】sudo sh -c 'echo "deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/autonomoustuff-public.list'
【5】sudo apt update
【6】sudo apt install ros-${rosdistro}-pacmod3

十、安装autoware_core

pip3 install gdown

十一、安装autoware universe dependencies

1.指令安装(慢且不推荐)

输入指令安装autoware universe dependencies

【1】sudo apt install geographiclib-tools
【2】sudo geographiclib-get-geoids egm2008-1

嘎嘎下载(大概5小时)

中途可能多次关闭,但是会重新连接,耐心等待即可(ps:144MB的东西搞这么久服了)

下载需要4-5小时,取决于节点网络与站点网络,因为在下载到90%的时候突然犯病失败,心态炸了的我打算另辟蹊径,想着能不能自行安装,因为之前通过虚拟机指令安装成功,所以有下载的具体信息,所以采用了下面的方法(推荐)。

2.官网下载安装(快且推荐)

【官网】https://sourceforge.net/projects/geographiclib/postdownload

输入上面的官网链接,即可进入下载

记得科学上网,嘎嘎下载,网速快仅需1分钟

下载后,把压缩包解压

将下载解压的3个文件复制到/usr/share/GeographicLib/geoids目录下,完成啦,是不是轻松加愉快

【可以通过指令移动3个文件】

【1】sudo mv /home/akaxi-autoware/egm2008-1/geoids/egm2008-1.pgm /usr/share/GeographicLib/geoids
【2】sudo mv /home/akaxi-autoware/egm2008-1/geoids/egm2008-1.pgm.aux.xml /usr/share/GeographicLib/geoids
【3】sudo mv /home/akaxi-autoware/egm2008-1/geoids/egm2008-1.wld /usr/share/GeographicLib/geoids

成功~~撒花

十二、安装pre_commit

输入指令安装

【1】clang_format_version=14.0.6
【2】pip3 install pre-commit clang-format==${clang_format_version}

成功!

继续继续输入指令:

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt install golang

嘎嘎下载

完成!!!加油~~

十三、安装CUDA

1.指令安装CUDA

输入指令安装

【1】cd autoware_universe/
【2】source amd64.env
【3】wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin

【4】sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
【5】sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
【6】sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
【7】sudo apt-get update
【8】cuda_version_dashed=$(eval sed -e "s/[.]/-/g" <<< "${cuda_version}")
【9】sudo apt install cuda-${cuda_version_dashed} --no-install-recommends

2.问题解决

输入指令查看显卡:

nvidia-smi

这里我的笔记本支持CUDA版本12以上~

接下来到官网进行下载,选择需要的CUDA最好是env中写的11.6.2版本下载

【官网链接】https://developer.nvidia.com/cuda-toolkit-archive

输入lscpu查看电脑架构

选择架构后得到指令,在终端输入喔,我的是

【1】wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
【2】sudo sh cuda_11.6.2_510.47.03_linux.run

开始下载3.2G大小的文件,比较耗时间喔,大概20分钟

如果遇到下载暂停中断,显示s段错误(核心已转移),重复输入第一条指令下载试试,实在不行参考博客

【s段错误链接】https://blog.csdn.net/seaflyren/article/details/104131269

下载成功!!!

输入第二条指令安装

sudo sh cuda_11.6.2_510.47.03_linux.run

【这里输入指令需要等待一会儿~】

选择继续,然后回车

输入accept接受

回车,将安装驱动取消【不要取消!不要取消!不要取消!后面测试取消驱动安装失败啦】

选择安装,回车【Driver项目不要取消哈】

【耐心等待5min左右~~】

完成~

接下来配置一下环境变量,输入指令

sudo gedit ~/.bashrc

在打开的.bashrc最后添加下面两行喔:

export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存后关闭

输入指令ncvv -V检查安装是否成功~

【如果输入指令显示未安装,在前面的驱动安装是否取消了,不要取消喔】

十四、安装cuDNN and TensorRT

输入指令安装CuDNN和TensorRT

【1】cd autoware_universe/
【2】source amd64.env
【3】sudo apt-get install libcudnn8=${cudnn_version} libcudnn8-dev=${cudnn_version}

【4】sudo apt-mark hold libcudnn8 libcudnn8-dev
【5】sudo apt-get install libnvinfer8=${tensorrt_version} libnvonnxparsers8=${tensorrt_version} libnvparsers8=${tensorrt_version} libnvinfer-plugin8=${tensorrt_version} libnvinfer-dev=${tensorrt_version} libnvonnxparsers-dev=${tensorrt_version} libnvparsers-dev=${tensorrt_version} libnvinfer-plugin-dev=${tensorrt_version}

输入Y继续下载喔

完成,继续输入指令下载

【6】sudo apt-mark hold libnvinfer8 libnvonnxparsers8 libnvparsers8 libnvinfer-plugin8 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev

成功!!!

十五、下载Universe代码

新建一个src文件夹

右键在终端打开,输入指令打开autoware.repos文件进行修改

sudo gedit autoware.repos

在第27和第28行之间插入下面的代码

universe/external/open_planner:type: giturl: https://github.com/ZATiTech/open_planner.gitversion: main

保存后退出,然后挂上节点

./Qv2ray-v2.7.0-linux-x64.AppImage【执行Qv2ray】

配置一下Git端口

git config --global http.proxy 127.0.0.1:8889
git config --global https.proxy 127.0.0.1:8889

执行指令

vcs import src < autoware.repos

成功!

可以看到src文件下成功下载universe代码咯!!!

十六、安装 Autoware ROS依赖包

1.失败案例

指令更新更新 rosdep 数据库

rosdep update

这里其实是失败的,,skip跳过了很多,回溯前面【第七章安装ros2_dev_tools】解决

【1】sudo mkdir -p /etc/ros/rosdep/sources.list.d/
【2】sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
【3】export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
【4】rosdep update --include-eol-distros
【5】echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc

安装ROS依赖

【1】source /opt/ros/galactic/setup.bash
【2】rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

如果遇到问题:

【解决链接】https://blog.csdn.net/weixin_50518868/article/details/119717777

用下面指令下载,把[XXX]里面的东西补上

sudo apt-get install ros-galactic-【缺少的依赖】我缺少:
ros-galactic-velodyne_monitor
ros-galactic-pointcloud_preprocessor
ros-galactic-tier4_api_utils
ros-galactic-web_controller
ros-galactic-vehicle_info_util
【注意把_换成-】那我的指令就是
sudo apt-get install ros-galactic-velodyne-monitor ros-galactic-pointcloud-preprocessor ros-galactic-tier4-api-utils ros-galactic-web-controller ros-galactic-pointcloud-preprocessor ros-galactic-velodyne-monitor ros-galactic-tier4-api-utils ros-galactic-vehicle-info-util

【但是提示我未定义到软件依赖项目,搜寻各大CSDN等博客未果,于是重头再来,删掉src,回退第十五章】

2.成功案例

先挂载节点【执行Qv2ray】

./Qv2ray-v2.7.0-linux-x64.AppImage

配置一下Git端口

git config --global http.proxy 127.0.0.1:8889
git config --global https.proxy 127.0.0.1:8889

更新rosdep

rosdep update --include-eol-distros

下载

【1】source /opt/ros/galactic/setup.bash
【2】rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

【如果不成功,还是像前面的失败案例一样,把src文件删掉,重新按照十五章下载Universe代码,试试用mkdir src指令创建src文件夹,再来一次~】

这里下载open3d比较慢需要2小时左右

下载完open3d后,会下载各种依赖,还需要大概2小时~

回溯前面的报错,是这两个问题:

问题1

解决问题1:

pip install --upgrade --user setuptools==58.3.0

问题2

解决问题2,输入指令解决

pip install --upgrade setuptools

成功啦~~~~耗时4-5小时

十七、编译空间

输入指令开始编译: 

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

1.colcon编译的时老是卡死

【解决办法】

https://fishros.org.cn/forum/topic/116/colcon%E7%BC%96%E8%AF%91%E5%AF%BC%E8%87%B4%E7%B3%BB%E7%BB%9F%E5%8D%A1%E6%AD%BB%E9%97%AE%E9%A2%98-cpu100-%E6%88%96-%E5%86%85%E5%AD%98-100

给出参考指令:

colcon build --parallel-workers 6

colcon build --executor sequential

colcon编译时依次构建,不按照并行构建,下面的指令:

【也许可以】colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --executor sequential

2.trtexec_vendor包错误

只编译了48个包,现在科学上网试试。

先挂载节点【执行Qv2ray】

./Qv2ray-v2.7.0-linux-x64.AppImage

配置一下Git端口

git config --global http.proxy 127.0.0.1:8889git config --global https.proxy 127.0.0.1:8889

再编译试试

显示网络问题

【解决办法】https://blog.csdn.net/yz2630570484/article/details/132902294#t17

编译报错:

trtexec_vendor包编译未通过导致编译失败,为trtexec_vendor包中git clone的依赖库下载失败(网络问题)

在autoware/src中找到对应程序包,将cmakelist中34行:

GIT_REPOSITORY https://github.com/NVIDIA/TensorRT

网址前添加代理https://ghproxy.com/,修改为:

GIT_REPOSITORY https://ghproxy.com/https://github.com/NVIDIA/TensorRT

保存后退出,删除编文件 build、log和install,重新编译即可

使用指令找到trtexec_vendor包

sudo find . -name "trtexec_vendor"

在路径:

~/autoware_universe/autoware/src/universe/autoware.universe/common/trtexec_vendor找到CMakeList.txt文件哦

打开后

在第39行找到:
GIT_REPOSITORY https://github.com/NVIDIA/TensorRT
改为:
GIT_REPOSITORY https://ghproxy.com/https://github.com/NVIDIA/TensorRT

保存后退出哦

删除编译文件 build、log和install,重新编译即可

取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

编译完成后进行测试,待进行~~

2024.2.25

渝北仙桃数据谷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

07 Redis之持久化(RDB(Redis DataBase) + 写时复制 + AOF(Append Only File)+混合持久化)

4 Redis持久化 Redis 是一个内存数据库&#xff0c;然而内存中的数据是不持久的&#xff0c;若主机宕机或 Redis 关机重启&#xff0c;则内存中的数据全部丢失。 当然&#xff0c;这是不允许的。Redis 具有持久化功能&#xff0c;其会按照设置以快照或操作日志的形式将数据持…

双重检查锁定与延迟初始化

双重检验锁&#xff1a;多线程下的单例模式。 懒加载模式&#xff1a;延迟初始化。

如何做到三天内完成智能直流伺服电机系统开发?

适应EtherCAT/CANopen协议三相伺服电机直流伺服电机直线伺服音圈电机 如何开发高性能直流伺服电机驱动控制器&#xff1f; 需要熟悉高性能单片机&#xff08;至少是ARM或DSP水平的&#xff09;&#xff0c;需要掌握空间磁场矢量控制FOC&#xff0c;需要掌握运动轨迹算法……此…

【03】逆序数组

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、逆序函数是什么&#xff1f; 二、逆序函数原码 1.直接逆序 2.创建临时数组逆序 三、结言 &#x1f4a5;一、逆序函数是什么&#xff1f; 示例&#xff1a;输入1 4 …

【MySQL面试复习】在MySQL中,如何定位慢查询?

系列文章目录 系列文章目录什么情况下需要定位慢查询&#xff1f;慢查询的一般表现形式是什么&#xff1f;如何定位慢查询&#xff1f; 什么情况下需要定位慢查询&#xff1f; 页面加载过慢、接口压测响应时间过长&#xff08;比如超过1s&#xff09; 慢查询的一般表现形式是什…

【MySQL面试复习】什么是聚簇索引(聚集索引)和非聚簇索引(二级索引)/什么是回表?

系列文章目录 在MySQL中&#xff0c;如何定位慢查询&#xff1f; 发现了某个SQL语句执行很慢&#xff0c;如何进行分析&#xff1f; 了解过索引吗&#xff1f;(索引的底层原理)/B 树和B树的区别是什么&#xff1f; 系列文章目录什么是聚簇索引&#xff08;聚集索引&#xff09…

SpringBootRest服务调用

目录 RestTemplate 依赖配置 自定义RestTemplate webCilent 依赖配置 自定义webCilent springboot中有两种方式实现Rest远程服务调用&#xff0c;分别是RestTemplate与webCilent。下面分别介绍一下这两种方式。 RestTemplate 依赖配置 RestTemplate是Spring Framework提供的…

蓝桥杯14届计算思维国赛U8组包含真题和答案

十四届蓝桥杯国赛考试计算思维 U8 组 答案在底部 第一题 以下选项中,( )是由美国计算机协会设立,对在计算机领域内作出重要贡献的个人授予的奖项 。A.图灵奖 C.菲尔兹奖 B.诺贝尔奖 D.普利策奖 第二题 希希去吃寿司。餐台上摆出了许多食物,可供大家自选。如下图所示。 …

在 where子句中使用子查询(二)

目录 ANY ANY &#xff1a;功能上与 IN 是没有任何区别的 >ANY &#xff1a;比子查询返回的最小值要大 ALL >AL &#xff1a;比子查询返回的最大值要大 EXISTS() 判断 NOT EXISTS Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209…

设计模式学习笔记 - 面向对象 - 7.为什么要多用组合少用继承?如何决定该用组合还是继承?

前言 在面向对象编程中&#xff0c;有一条非常经典的设计原则&#xff1a;组合优于继承&#xff0c;多用组合少用继承。 为什么不推荐使用继承&#xff1f; 组合比继承有哪些优势&#xff1f; 如何判断该用组合还是继承&#xff1f; 为什么不推荐使用继承&#xff1f; 继承…

解决IDEA搜不到插件

File -> Settings -> Plugins https://plugins.jetbrains.com/ 完成以上操作即可搜到插件

化学分子Mol2文件格式与使用注意事项

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、Mol2文件示例二、 Mol2文件主要结构解释及注意事项MOLECULE 字段解释ATOM 字段解释BOND 字段解释SUBSTRUCTURE字段解释 总结参考资料 前言 Mol2格式文件是一个ASCII 文件&#xff0c;由Tripos…

【EAI 025】Ego4D: Around the World in 3,000 Hours of Egocentric Video

Paper Card 论文标题&#xff1a;Ego4D: Around the World in 3,000 Hours of Egocentric Video 论文作者&#xff1a;Kristen Grauman, Andrew Westbury, Eugene Byrne, et al. 作者单位&#xff1a;UC Berkeley, CMU, Google 论文原文&#xff1a;https://arxiv.org/abs/2110…

linux 文本编辑命令【重点】

目录 vi&vim介绍 vim安装 vim使用 查找命令 find grep 文本编辑的命令&#xff0c;主要包含两个: vi 和 vim vi&vim介绍 作用: vi命令是Linux系统提供的一个文本编辑工具&#xff0c;可以对文件内容进行编辑&#xff0c;类似于Windows中的记事本 语法: vi file…

在autodl搭建stable-diffusion-webui+sadTalker

本文介绍在autodl.com搭建gpu服务器&#xff0c;实现stable-diffusion-webuisadTalker功能&#xff0c;图片音频 可生成视频。 autodl租GPU 自己本地部署SD环境会遇到各种问题&#xff0c;网络问题&#xff08;比如huggingface是无法访问&#xff09;&#xff0c;所以最好的方…

中国象棋开源人工智能程序(带UI)搬运

我的老父亲一直想买一个人工智能象棋机器人陪他下棋&#xff0c;我就在Github上找了一个开源项目&#xff0c;带UI的中国象棋人工智能程序&#xff0c;其训练方法类似AlphaZero&#xff0c;因而叫Chinese Chess Zero (cczero)。虽然看起来很久没有维护了&#xff0c;但是棋力也…

SpringMVC 学习(六)之视图

目录 1 SpringMVC 视图介绍 2 JSP 视图 3 Thymeleaf 视图 4 FreeMarker 视图 5 XSLT 视图 6 请求转发与重定向 6.1 请求转发 (Forward) 6.2 重定向 (Redirect) 7 视图控制器 (view-controller) 1 SpringMVC 视图介绍 在 SpringMVC 框架中&#xff0c;视图可以是一个 J…

HTML+CSS+JS:轮播组件

效果演示 一个具有动画效果的卡片元素和一个注册表单,背景为渐变色,整体布局简洁美观。 Code <div class="card" style="--d:-1;"><div class="content"><div class="img"><img src="./img/果果k_01.jpg…

代码随想录算法训练营第二十六天 | 39. 组合总和,40.组合总和II, 131.分割回文串[回溯篇]

代码随想录算法训练营第二十六天 LeetCode 39. 组合总和题目描述思路参考代码总结 LeetCode 40.组合总和II题目描述思路参考代码 LeetCode 131.分割回文串题目描述思路切割问题回文判断 参考代码总结 LeetCode 39. 组合总和 题目链接&#xff1a;39. 组合总和 文章讲解&#xf…

Mysql5.7主从复制搭建

注意不适用Mysql8 Docker搭建Mysql主从复制 docker run -p 3307:3306 --name mysql-master \ -v /usr/local/develop/mysql-master/log:/var/log/mysql \ -v /usr/local/develop/mysql-master/data:/var/lib/mysql \ -v /usr/local/develop/mysql-master/conf:/etc/mysql/con…