AVFI Carla安装踩坑记录

简介

本篇记录了从2021.09-2021.11.21以来, 在复现论文AVFI Fault Injection for Autonomous Vehicles的过程中遇到的所有问题, 以及对应的解决方案.

注意: 本文侧重记录分享所有我踩过的坑, 各位碰到相似问题可以参考, 复现的过程仅简要描述

需要环境

  • Ubuntu18.04
  • UnrealEngine, 推荐版本4.26
  • Carla ServerCarla Client, 作者建议均使用0.8.1版本的, 但是我实测0.8.1版本的Client和0.9.13版本的Server也可以成功运行.
  • AVFI项目代码
  • 其余的一些系统和python依赖

其中, 作者给出的AVFI/Dockerfile_x86可以安装Carla Client 0.8.1和依赖, 因此需要我们手动去安装的只有UnrealEngineCarla Server

我的环境

  • Ubuntu9.3.0-KylinV2
  • UnrealEngine 4.26
  • Carla Server 0.9.13, Carla Client 0.8.1

这里最大的隐患就是这个系统, 虽然麒麟系统底层也是Ubuntu, 但是这个Ubuntu版本太低了, 而且很多apt-repository是不支持麒麟系统的.

安装

Docker

第一步, 安装docker, 具体步骤不再赘述, 请参考其他博客.

唯一需要注意的是, 务必安装Docker 20之后的版本, 更早的版本是不支持--runtime--gpus两个参数的.

修改Dockerfile_x86

安装完毕之后, cd AVFI/进入AVFI的根目录. 先重命名Dockerfile_x86:

mv Dockerfile_x86 Dockerfile

如果你不能"科学上网"的话, 需要在里面做一些修改, 不然有些依赖安装不了. (可以科学上网的话, 请跳过这一步).

使用文本编辑器打开Dockerfile, 在所有pip安装的位置加上-i https://pypi.tuna.tsinghua.edu.cn/simple, 指定使用清华源, 加速下载. 修改完后的部分如下:

在这里插入图片描述

建立镜像

用以下的命令建立avfi_carla镜像:

(sudo) docker build -t avfi_carla .

此过程可能比较耗时.

此部分完成后, Carla Client 0.8.1已经成功安装. 但是需要在docker环境下运行.

UnrealEngine&Carla Server

此处作者建议同样使用0.8.1版本的, 但是这个版本太老, 已经找不到这个版本的官方文档. 因此我安装了0.9.13版本的. 也能跑通.

请按照官方文档的描述安装

部分系统无法添加apt-r

这里有些坑记录一下. 在Kylin系统中, 官方的文档中, 以下两行命令是执行不了的

sudo add-apt-repository ppa:ubuntu-toolchain-r/test &&
sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main" &&

既然连repo都没办法添加, 那么后续的sudo apt update也就不必要了.

幸运的是, 这不影响后续依赖的安装, 官方的文档中, 以下所有依赖都是可以正常安装的

在这里插入图片描述

UnrealEngine的github repo

UnrealEngine的github repo不是公开的, 需要在Epic注册账号, 然后和github账号做一个connection, 这一步可能需要重复多次才能成功. 尝试一两次发现还是进不去repo是正常的.

patchelf

按照官方文档进行到Part Two: Build CARLA -> Get Assets的时候, 在运行./Update时可能以下错误

cp: unable to reach /path/to/carla/Build/patchelf-install/bin/patchelf: no such file or directory

这里并不是说patchelf没有安装, 而是被安装在了别的路径, 因此执行以下命令即可解决, 作用是新建一个连接指向patchelf真正被安装的路径.

cd /path/to/carla/Build/patchelf-install
(sudo) mkdir bin
cd bin
(sudo) ln -s patchelf $(whereis patchelf)

系统版本检查

最后在Build Carla -> Compile the Python API client这一步的make PythonAPI时, 会报错(具体信息记不清了), 是PythonClient/setup.py文件里面某一行的一个if判断, 如下

# 原来的
if liinux_distro_lower() in ['ubuntu', 'debian', 'deepin']:

# 把这一行注释掉, 修改为
if True:

简单来说就是去掉这个版本检查, 我这里程序能够顺利照常进行.

read-only filesystem

一开始在另一台Ubuntu18.04的机子上跑的时候, 一直报这个错误, 花了两周实在解决不了…

因此才换了上述这台Kylin的…

致谢

感谢这两个月来对这个项目工作提供很大帮助的: 刘老师, 董老师, 陈老师, 李老师, 吴老师和毕老师.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对象被抛出

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值