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

Akaxi-1 2024-08-13 11:37:01 阅读 85

目录

一、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

输入指令嘎嘎安装

<code>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

输入后,完成安装

再输入:

<code>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

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

<code>【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.

输入指令

<code>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文件解压,在界面点击右键在终端打开

输入指令添加权限:

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

输入指令打开Qv2ray软件

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

选择首选项

按照上述步骤配置内核

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

2.安装Git

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

3.克隆Autoware到本地

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

<code>mkdir autoware_universe

cd autoware_universe/

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

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

指令打开Qv2ray:

<code>./Qv2ray-v2.7.0-linux-x64.AppImage

打开后链接到节点喔~~

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

git config --global http.proxy 127.0.0.1:XXXX

git config --global https.proxy 127.0.0.1:XXXX

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

点击网络代理

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

<code>git config --global http.proxy 127.0.0.1:8889

git config --global https.proxy 127.0.0.1:8889

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

4.自动安装相关依赖

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

<code>cd autoware

再自动安装相关依赖

./setup-dev-env.sh

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

让输入密码记得输入喔

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

5.安装rmw_implementation

配置一下环境变量

<code>cd autoware_universe/

source amd64.env

<code>【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

依次输入指令执行安装

<code>【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

<code>pip3 install gdown

十一、安装autoware universe dependencies

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

输入指令安装autoware universe dependencies

<code>【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个文件】

<code>【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

输入指令安装

<code>【1】clang_format_version=14.0.6

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

成功!

继续继续输入指令:

<code>sudo add-apt-repository ppa:longsleep/golang-backports

sudo apt install golang

嘎嘎下载

完成!!!加油~~

十三、安装CUDA

1.指令安装CUDA

输入指令安装

<code>【1】cd autoware_universe/

【2】source amd64.env

【3】wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin

<code>【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.问题解决

输入指令查看显卡:

<code>nvidia-smi

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

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

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

输入lscpu查看电脑架构

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

<code>【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

下载成功!!!

输入第二条指令安装

<code>sudo sh cuda_11.6.2_510.47.03_linux.run

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

选择继续,然后回车

输入accept接受

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

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

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

完成~

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

<code>sudo gedit ~/.bashrc

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

<code>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

<code>【1】cd autoware_universe/

【2】source amd64.env

【3】sudo apt-get install libcudnn8=${cudnn_version} libcudnn8-dev=${cudnn_version}

<code>【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继续下载喔

完成,继续输入指令下载

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

成功!!!

十五、下载Universe代码

新建一个src文件夹

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

<code>sudo gedit autoware.repos

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

<code>universe/external/open_planner:

type: git

url: https://github.com/ZATiTech/open_planner.git

version: 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 数据库

<code>rosdep update

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

<code>【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]里面的东西补上

<code>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:

<code>pip install --upgrade --user setuptools==58.3.0

问题2

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

<code>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编译时依次构建,不按照并行构建,下面的指令:

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

2.trtexec_vendor包错误

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

先挂载节点【执行Qv2ray】

<code>./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

再编译试试

显示网络问题

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

编译报错:

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

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

<code>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包

<code>sudo find . -name "trtexec_vendor"

在路径:

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

打开后

<code>在第39行找到:

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

改为:

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

保存后退出哦

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

<code>取消代理

git config --global --unset http.proxy

git config --global --unset https.proxy

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

2024.2.25

渝北仙桃数据谷



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。