Ubuntu配置carla docker环境

前言: 本文只在以下设备成功运行, 其他设备不保证能成功, 可以参考在自己设备进行配置

环境

  • ubuntu 20.04
  • carla 0.9.15
  • gpu 3060(notebook)

安装显卡驱动&nvidia-container-toolkit

显卡驱动

安装完成系统后直接在'软件和更新->附加驱动'直接选择470(proprietary, tested), 安装之前并没有禁用nouveau和关闭gdm3, 重启之后nvidia-smi 正常输出

nvidia-container-toolkit安装如下

【Docker】Docker及Nvidia Container Toolkit安装

Add the package repositories

shell 复制代码
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

上条命令如果输出:gpg: no valid OpenPGP data found.,可以多试几次,或者那么把命令分开执行:

shell 复制代码
curl -s -L -O https://nvidia.github.io/nvidia-docker/gpgkey #大写欧,会在本地保存一个gpgkey文件
sudo apt-key add gpgkey#会输出OK
shell 复制代码
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

该命令成功后可以查看cat /etc/apt/sources.list.d/nvidia-docker.list,文个中会有如下内容:

复制代码
deb https://nvidia.github.io/libnvidia-container/stable/ubuntu16.04/$(ARCH) /  
#deb https://nvidia.github.io/libnvidia-container/experimental/ubuntu16.04/$(ARCH) /  
deb https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu16.04/$(ARCH) /  
#deb https://nvidia.github.io/nvidia-container-runtime/experimental/ubuntu16.04/$(ARCH) /  
deb https://nvidia.github.io/nvidia-docker/ubuntu16.04/$(ARCH) /  
shell 复制代码
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
#更新 使用如下安装 nvidia-container-toolkit 换成 nvidia-docker2
sudo apt-get install -y nvidia-docker2
#####################或者分开执行#########################
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
########################################################
sudo systemctl restart docker
sudo docker run --gpus all --rm nvidia/cuda:10.0-base nvidia-smi

注意一定要 sudo systemctl restart docker

如果上面的gpg key添加失败,也可以参考进行离线安装Docker离线安装Nvidia-container-toolkit实现容器内GPU调用, 注意安装完了一定要重启docker服务!

Carla

获取carla镜像

由于2024/05中国的镜像源被封了, 参考Docker Hub 镜像加速器下载carla镜像
docker pull docker.awsl9527.cn/carlasim/carla:0.9.15

启动镜像(服务端)

参考在Docker中使用CARLA

复制代码
sudo docker run --privileged --gpus all --net=host -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:0.9.12 /bin/bash ./CarlaUE4.sh -RenderOffScreen
  • 注意这里如果出现 **Unknown PCM default **

    则需要在上面命令中添加-nosound

  • 如果出现不报错,但输出Killed 并退出

    则可能是内存不足, 我这里是内存不足, 按照下面增大swap分区解决了

bash 复制代码
# 检查现有的Swap分区
sudo swapoff -a
# 删除旧的swap文件
sudo rm /swapfile
# 生成新的swap文件8G
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
# 设置权限
sudo chmod 600 /swapfile
# 生效
sudo mkswap /swapfile
# 确认新的Swap文件
sudo swapon /swapfile
# 为了确保在系统重启后Swap文件仍然有效,需要将其添加到`/etc/fstab`文件中
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

客户端运行

首先需要下载 carla, 配置环境, 我这里使用python版本为3.8.12

然后进入下载好的 cd ./carla/PythonAPI/examples, 再运行python automatic_control.py

Docker离线安装Nvidia-container-toolkit实现容器内GPU调用
【Docker】Docker及Nvidia Container Toolkit安装
Docker离线安装Nvidia-container-toolkit实现容器内GPU调用
仿真实战 | Docker版Carla的安装与使用

相关推荐
bugtraq20211 分钟前
为什么.NET的System.IO.Compression无法解压zlib流
linux·运维·服务器
咖啡教室6 分钟前
每日一个计算机小知识:Linux
linux·后端
insight^tkk1 小时前
【Docker】记录一次使用docker部署dify网段冲突的问题
运维·人工智能·docker·ai·容器
江湖人称小鱼哥1 小时前
WSL + Docker 网络访问详解
网络·docker·容器·wsl
韩宏伟1 小时前
使用 Loki + Promtail + Grafana 实现 Docker 容器日志采集与可视化
docker·容器·grafana
江公望2 小时前
Qt的QT_QPA_EGLFS_INTEGRATION环境变量浅解
linux·qt·qml
YuCaiH2 小时前
网络编程的基础知识
linux·笔记·嵌入式·网络通信
小猫挖掘机(绝版)2 小时前
kalibr进行相机内参以及相机imu的融合标定
ubuntu·无人机·slam·标定·vinsfusion
Siren_dream2 小时前
在VMware上运行Linux(我选择的是Ubuntu)
linux·运维·ubuntu
☆璇2 小时前
【Linux】Socket编程UDP
linux·网络·udp