0


【安装教程】ubuntu20.04/22.04从零开始搭建autoware.universe

1. 基本配置情况

ubuntu 版本:22.04

autoware版本:autoware.universe (ubuntu20.04建议docker安装/ubuntu22.04建议源码安装)

参考教程:Docker installation - Autoware Documentation (autowarefoundation.github.io) (建议在本文的基础上参考官网安装教程,本文会指出所有安装过程中遇到的问题,但是根据电脑硬件和网络情况,还是会存在不同的问题)

注:鉴于水平有限,仅是根据官方文档总结的安装步骤以及一些报错的解决思路。因为之前在ubuntu18.04和ubuntu20.04分别安装了ai和universe版本,中间踩了比较多的坑,所以留个记录。这次在ubuntu22.04中安装明显感觉报错会少很多,因此推荐有开发和使用意向的安装最新版的ubuntu,功能确实更加全面,也是autoware官方推荐的版本。

2. ROS2 Humble和git安装

2.1 ros2 humble安装(对应ubuntu22.04,仅源码安装需要)

这里推荐鱼香ros一键安装(小鱼的一键安装系列 | 鱼香ROS (fishros.org.cn))

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

2.2 git安装

sudo apt-get -y update

sudo apt-get -y install git

3. 克隆autoware代码

# 从github中克隆代码

git clone https://github.com/autowarefoundation/autoware.git

# 进入文件夹

cd autoware

4.自动安装依赖项(推荐)

1.源码安装

./setup-dev-env.sh

2.docker安装

./setup-dev-env.sh docker

5. 手动安装依赖项(在一键配置失效下使用,这里仅列出docker安装中需要的依赖)

本文按照官网的Docker installation for development安装教程进行安装,主要有以下四个依赖:

  • Install Nvidia CUDA
  • Install Docker Engine
  • Install NVIDIA Container Toolkit
  • Install rocker

5.1 cuda安装

官方链接:autoware/ansible/roles/cuda at main · autowarefoundation/autoware · GitHub

# 执行拉取命令

wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env

# Ubuntu20.04和Ubuntu22.04都可以使用以下代码

if [[ "$(uname -m)" == "x86_64" ]]; then
liburcu6_url=http://archive.ubuntu.com/ubuntu
else
liburcu6_url=http://ports.ubuntu.com/ubuntu-ports
fi
sudo echo "deb $liburcu6_url focal main restricted" > /etc/apt/sources.list.d/focal.list

# Ubuntu20.04和Ubuntu22.04都可以使用以下代码
os=ubuntu2004
wget https://developer.download.nvidia.com/compute/cuda/repos/$os/$(uname -m)/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
cuda_version_dashed=$(eval sed -e "s/[.]/-/g" <<< "${cuda_version}")
sudo apt-get -y install cuda-${cuda_version_dashed}

5.2 docker engine安装

官方链接:Docker installation for quick start - Autoware Documentation

# 移除旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update

sudo apt-get install
ca-certificates
curl
gnupg
lsb-release

# 添加密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 安装依赖
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 验证是否安装成功
sudo docker run hello-world
# Note: This command downloads a test image and runs it in a container. When the container runs, it prints a message and exits.

5.3 NVIDIA Container Toolkit安装

官方链接:autoware/ansible/roles/nvidia_docker at main · autowarefoundation/autoware · GitHub

# 安装功能包依赖和GPG密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
&& curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 更新软件源并安装nvidia-docker2 软件包
sudo apt-get update
sudo apt-get install -y nvidia-docker2

# 设置运行时间并重启docker

sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

5.4 rocker安装

官方链接:autoware/ansible/roles/rocker at main · autowarefoundation/autoware · GitHub

# 在系统中加入ros2依赖(出现报错,见下文解决方法)

sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# 在sourse list中加入依赖
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# 更新并安装

sudo apt update
sudo apt-get install python3-rocker

出错指令:

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

这一步出现报错 Failed to connect to raw.githubusercontent.com port 443: Connection refused

原因是被墙了,解决方法如下:

# 进入目标文件并给权限(如果不熟悉vim操作可以直接手动进入,之后在目标文件夹执行chmod 777 hosts命令就可以了)

sudo vim /etc/hosts

# 在文本中加上一行
199.232.28.133 raw.githubusercontent.com

报错成功解决。

** 6. 创建工作空间**(docker安装所需的额外步骤标红)

  1. 创建 autoware_map 文件夹mkdir ~/autoware_map
  2. 拉取Docker(速度很慢,且有报错,见下文解决方法)docker pull ghcr.io/autowarefoundation/autoware-universe:latest-cuda
  3. 启动docker- amd64构架的电脑配备NVIDIA GPU:rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware-universe:latest-cuda- 非NVIDIA GPU或者非amd64构架:rocker -e LIBGL_ALWAYS_SOFTWARE=1 --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware-universe:latest-cuda进入autoware文件夹:cd autoware
  4. 创建src目录并克隆依赖项(src中的文件需要梯子下载,链接文末提供)mkdir srcvcs import src < autoware.repos
  5. 更新依赖(存在报错,见下文)sudo apt updaterosdep updaterosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
  6. 编译(如果某个安装包出错可以在csdn中单独检索并编译)colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

出错指令 1:

docker pull ghcr.io/autowarefoundation/autoware-universe:latest-cuda

这一步出现报错 permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=ghcr.io%2Fautowarefoundation%2Fautoware-universe&tag=latest-cuda": dial unix /var/run/docker.sock: connect: permission denied,解决方法如下(Docker指令报错的解决方法:Got permission denied while trying to connect to the Docker daemon socket at unix:/_术业还未专攻的博客-CSDN博客):

第一步:sudo gpasswd -a username docker #将普通用户username加入到docker组中,username这个字段也可以直接换成$USER。

第二步:newgrp docker #更新docker组

第三步:再执行你报错的命令,此时就不会报错了。

注意,这一步执行非常耗时,有一个8.xGB的文件需要下载。之前在别的电脑安装时采取过换源、换手机热点等操作,速度有一定提升,感兴趣的可以查找相关教程,这里分享一个后台执行命令,确保命令执行期间不会中断。

** # 安装screen工具箱,执行后台命令**

sudo apt get install screen

# 创建后台端口

screen -S autoware

# 查看后台端口

screen -ls

出错指令 2:

rosdep update

这一步会出现不同类型的报错,总的来说还是网络的问题,导致无法更新,常用的解决方法在ubuntu20.04和ubuntu22.04上都失效了,最后在清华源的官网上找到一个解决方法

错误: ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/ma

解决方法1(可以做尝试,但是包括这个方法在内的很多方法笔者都试过了,全部失效)

Ubuntu20.04 rosdep update失败解决方法 - 知乎

解决方法2(成功)

rosdistro | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

# 手动模拟 rosdep init
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
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
# 为 rosdep update 换源
export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
rosdep update

# 每次 rosdep update 之前,均需要增加该环境变量
# 为了持久化该设定,可以将其写入 .bashrc 中,例如
echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc

至此,autoware.universe成功安装,后续的demo运行及相关功能的调试可继续关注后续文章。

所需的一些文档和src文件:链接:链接: https://pan.baidu.com/s/1chKVBHtdsQEeiO-BdWR9Xw?pwd=1234 提取码: 1234
--来自百度网盘超级会员v4的分享

标签: linux ubuntu 运维

本文转载自: https://blog.csdn.net/weixin_50797351/article/details/130753824
版权归原作者 崖7046 所有, 如有侵权,请联系我们删除。

“【安装教程】ubuntu20.04/22.04从零开始搭建autoware.universe”的评论:

还没有评论