Ubuntu20.04+Docker+Autoware.Ai安装
Ros NoeticCUDA12.4(之前已经安装过CUDA了,安装方法可参考我之前的。
目录
三、安装 NVIDIA Container Toolkit(让容器调用 GPU)
四、从github拉取autoware.ai的代码和相关安装文件
一、设备(本机)条件
Ubuntu20.04
Ros Noetic
CUDA12.4(之前已经安装过CUDA了,安装方法可参考我之前的博文)
前提:你的系统已经是完整安装过ROS的。已经把系统 apt 源换成国内镜像(清华 / 中科大 / 阿里云),并为 ROS 指定国内镜像。并且安装 NVIDIA 驱动( GPU)。
二、Docker 安装
[可参考博文:ubuntu20.04下安装Docker和NVIDIA Container Toolkit教程]
# 安装前准备
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加 Docker apt 源
echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 把当前用户加入 docker 组(重开终端或重新登录生效)
sudo usermod -aG docker $USER
配置 Docker 镜像加速
编辑 /etc/docker/daemon.json(若不存在则新建),推荐配置多个备用镜像:
{ "registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
保存后重启 docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证
docker info | grep -i "Registry Mirrors" -A 5
三、安装 NVIDIA Container Toolkit(让容器调用 GPU)
[可参考博文:ubuntu20.04下安装Docker和NVIDIA Container Toolkit教程]
第一步:设置变量,获取公钥及软件列表
#设置变量
>distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
#安装公钥
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
#获取list
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
第二步:下载安装
#更新
sudo apt update
#安装nvidia-container-toolkit
sudo apt install nvidia-container-toolkit
#重启
sudo systemctl restart docker
第三步:测试
注意上面只是安装了一个NVIDIA Container Toolkit生成器,如果希望生成各种版本的cuda镜像,需要下面语句:
#Test NVIDIA Container Toolkit
docker run --gpus all --rm nvidia/cuda:9.0-base nvidia-smi
ok,现在可以拉取/下载Autoware.ai容器了
四、从github拉取autoware.ai的代码和相关安装文件
Autoware.AI 官方镜像是一个预装好 ROS、依赖库和构建环境的容器,非常方便。
⚠️注意:
-
官方最新支持的是 Autoware.AI 1.14.0 (Melodic)。
-
虽然你是 ROS Noetic (Ubuntu 20.04),但此镜像可在 20.04 上正常运行(内部运行 Ubuntu 18.04 容器)。
-
它自带 CUDA 支持,可利用 GPU 进行仿真与推理。
git clone https://github.com/autowarefoundation/autoware_ai_docker.git
cd autoware_ai_docker/generic
#直接运行run.sh
./run.sh
这里出现一个报错:
banlisen@banlisen-FX80GD:~/autoware_ai_docker/generic$ ./run.sh
Using options:
ROS distro: melodic
Image name: autoware/autoware
Tag prefix: latest
Cuda support: on
Pre-release version: off
UID: <1000>
./run.sh: 第 142 行: type: nvidia-docker:未找到
Launching autoware/autoware:latest-melodic-cuda
Unable to find image 'autoware/autoware:latest-melodic-cuda' locally
latest-melodic-cuda: Pulling from autoware/autoware
a1125296b23d: Pulling fs layer
3c742a4a0f38: Pulling fs layer
4c5ea3b32996: Pulling fs layer
1b4be91ead68: Waiting
.....
.....
a1beabe7a800: Pull complete
2846e0ca3dfb: Pull complete
Digest: sha256:ad972b6dd41d9ad313d7e7dcc14ef7849a2e5b36610f40b391797e3252b66a7e
Status: Downloaded newer image for autoware/autoware:latest-melodic-cuda
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
脚本第 142 行的错误是因为 nvidia-docker 命令已被淘汰:在较新的 Docker 和 NVIDIA Container Toolkit 版本中,nvidia-docker 工具已被整合到 nvidia-container-runtime 中,不再需要单独安装 nvidia-docker 命令。而 Autoware 的 run.sh 脚本可能未更新,仍在检查旧版 nvidia-docker 是否存在,导致出现 “未找到” 的提示。
找到脚本中关于 RUNTIME 配置的部分(大概在第 140-147 行,对应你提供的代码中这段):
if [ $CUDA == "on" ]; then
SUFFIX=$SUFFIX"-cuda"
if [[ ! $DOCKER_VERSION < "19.03" ]] && ! type nvidia-docker; then
RUNTIME="--gpus all"
else
RUNTIME="--runtime=nvidia"
fi
fi
修改为:↓
if [ $CUDA == "on" ]; then
SUFFIX=$SUFFIX"-cuda"
# 只要 Docker 版本 >=19.03,直接使用 --gpus all(nvidia-container-toolkit 已支持)
if [[ ! $DOCKER_VERSION < "19.03" ]]; then
RUNTIME="--gpus all"
else
# 旧版本 Docker 才需要 --runtime=nvidia(需确保 nvidia-container-runtime 已配置)
RUNTIME="--runtime=nvidia"
fi
fi
重新运行run.sh
注意:
既然 Noetic 没有官方镜像,最简单的方式是改用 Melodic(Autoware.AI 的主力支持版本),命令如下:
./run.sh --ros-distro melodic --cuda on
运行成功!!!
这里可继续参考[ubuntu20.04镜像方法安装Autoware.ai]来验证是否运行成功
五、下载 Autoware 示例数据(用于测试)
在容器内终端执行以下命令,下载官方提供的 3D 地图和 ROSBAG 数据
可参考:
ubuntu20.04镜像方法安装Autoware.ai ★★★☆☆
Autoware.ai1.14.0自动驾驶-Demo运行★★★☆☆
Autoware自动驾驶平台(第二章):Autoware官方demo运行★★★★★
这里运行示例Demo我尝试了很多方法,也去B站找了一些视频,最后才成功的。
强烈建议先去B站看视频,再回来看网页文档教程,会有不一样的体会。
更多推荐



所有评论(0)