Ubuntu20.04编译安装Carla全过程
前言
Carla的安装是我现阶段解决的第一个问题,现记录一下我安装Carla的过程以及我在安装过程中遇到的一些问题。
一、安装前准备
1、硬件环境
carla是一款基于UE4开发的模拟仿真软件,本身对硬件的要求比较高。
我是windows与ubuntu双系统,由于在装系统之前就了解过carla的配置,
cpu-intel i9 内存-64G SSD-500G 显卡-4070
2.驱动软件环境
nvida 驱动的安装
点击软件和更新

点击应同更改,重启就可以安装好
安装完成后打开命令行输入nvidia-smi
如果出现以下内容说明安装成功
Tue Nov 26 10:22:08 2024 +---------------------------------------------------------------------------------------+| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 ||-----------------------------------------+----------------------+----------------------+| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC || Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. || | | MIG M. ||=========================================+======================+======================|| 0 NVIDIA GeForce RTX 4070 ... Off | 00000000:01:00.0 On | N/A || N/A 41C P3 12W / 55W | 1234MiB / 8188MiB | 14% Default || | | N/A |+-----------------------------------------+----------------------+----------------------++---------------------------------------------------------------------------------------+| Processes: || GPU GI CI PID Type Process name GPU Memory || ID ID Usage ||=======================================================================================|| 0 N/A N/A 1267 G /usr/lib/xorg/Xorg 95MiB || 0 N/A N/A 1653 G /usr/lib/xorg/Xorg 473MiB || 0 N/A N/A 1786 G /usr/bin/gnome-shell 181MiB || 0 N/A N/A 2687 G /usr/lib/firefox/firefox 322MiB || 0 N/A N/A 7300 G ...erProcess --variations-seed-version 123MiB || 0 N/A N/A 12033 G ...gnu/webkit2gtk-4.0/WebKitWebProcess 9MiB || 0 N/A N/A 14141 G gnome-control-center 2MiB |+---------------------------------------------------------------------------------------+
其他环境
python3 环境全部准备好之后,需要安装一些其他包
pip3 install --user pygame numpypip install --user setuptools &&pip3 install --user -Iv setuptools==47.3.1 &&pip install --user distro &&pip3 install --user distro &&pip install --user wheel &&pip3 install --user wheel auditwheel
这里由于我们是使用 python 语言进行开发,所以这里最重要的就是安装 python3 ,其他环境安装如下:
sudo apt-get update &&sudo apt-get install wget software-properties-common &&sudo add-apt-repository ppa:ubuntu-toolchain-r/test &&wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - &&sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main" &&sudo apt-get update
这里不同系统版本对应不同的安装指令,可以去官网进行查看:How to build Carla on Ubuntu ,
这里使用的是 Ubuntu 20.04 版本,我们要保证Carla和它的引擎UnrealEngine用的是一个版本的Clang,命令如下:
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main"sudo apt-get install build-essential clang-10 lld-10 g++-7 cmake ninja-build libvulkan1 python python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev gitsudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 &&sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 18
4、UE4安装
(一)、关联账户
由于Carla是基于UE4引擎进行开发的,所以在安装Carla前最重要的一步就是要安装并编译UE4,由于本次我们安装的为carla0.9.13,与之对应的引擎版本为UnrealEngine4.26。
第一步将你的Github和UrealEngine连接到一起。因为UnrealEngine的repo是private的,如果你的github没有和UnrealEngine连接到一起,是无法下载引擎repo的
注册Ginhub账号请点击这里:
https://github.com/
在你的terminal中安装git,为了之后git clone做准备
sudo apt install git
接着注册一个UnrealEngine的账号
Feed - Unreal Engine
也可以直接用epic的账号登陆UE,接下来要完成Github和UnrealEngine的关联,具体如下:
连接方法可以参考该链接Unreal Engine on GitHub,或者可以根据下面的方法
1、使用经过验证的Epic Games帐户登录www.unrealengine.com,单击右上角网站标题栏中的用户名,然后选择personal选项。
2、从菜单中选择连接的账户(APPS AND ACCOUNTS),单击Github图标下方的连接(connect)。
3、查看《虚幻引擎最终用户许可协议》并选中对应复选框接受该协议,然后单击关联您的账户按钮(如果已经接受了最新版本的《虚幻引擎最终用户许可协议》,则不会显示该提示)。
4、登录现有GitHub帐户。
5、单击授权按钮,之后你会收到Gibhub发的一封EpicTeamAdmin邀请您加入确认的邮件,单击join @EpicGames完成关联流程。
在进行下一步之前,请先进入https://github.com/EpicGames - Connect to preview
在这个界面里需要点击Follow:

如果这里没有点击,就不显示UE4源码仓库,无法git clone下载,然后向下滑动来查看你是否能看到如下一个叫做UnrealEngine的repo,如果能,说明你关联成功了。

着就可以开启下一步了。
(二)、Github Repo Clone
这步主要是将UnrealEngine4.26git clone到自己ubuntu的home目录下,大概要花费90G—100G左右空间。
安装Unreal引擎
git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26
(这个bronch是专门给Carla的)
下载的过程中如果输入的密码是你github的密码的话会出现下载失败的情况.这个时候需要去github上配置一个密钥,再次git clone的时候将密钥输入就可以正常下载下来.
1.右上角点击头像

2.点击Setting

3.左下角 Developer Setting

4.在 Personal access token下寻找Tokens(classic)

5.点击 Generate new token 选择(classic)

6.Note的名字任意写,repo要点选(全选),delete_repo,点击最下面的Generate token,生成密钥

UE4下载速度根据网络会有较大波动,请耐心等待
正在安装过程中,在执行上述代码时会先让你登陆你github的账户,记住,是你刚刚关联UE的账户。
果执行git clone命令时出现如下报错
fatal: 无法访问 ‘https://github.com/CarlaUnreal/UnrealEngine.git/’:GnuTLS recv error (-110): The TLS connection was non-properly
terminated.
需要执行如下操作来关掉SSL:
sudo apt-get install gnutls-bingit config --global http.sslVerify falsegit config --global http.postBuffer 1048576000
(三)、编译UE4
cd ~/UnrealEngine_4.26./Setup.sh && ./GenerateProjectFiles.sh && make
编译的时间较长,需要耐心等待,如果在编译的过程中出现register ubreal engine file types的窗口,直接关掉即可。我当时make了6个小时,是晚上开始的,等第二天早上过来
的时候发现成功了,显示total time有300多seconds,还好不是白天做到,不然我得等好久好久。
(四)、测试
编译结束时,可以运行一下UE4,如果出现UE4的初始界面,就表示UE的部分安装完成。

cd ~/UnrealEngine_4.26/Engine/Binaries/Linux && ./UE4Editor
安装完,要把UnrealEngine的路径添加到~/.bashrc中:
sudo gedit ~/.bashrc
打开在最后一行添加:
UE4_ROOT=~/UnrealEngine_4.26
(由于我的安装路径是/home/crist/WorkSpace/UnrealEngine,你也应该改成你的)
效果如下:

接下来我们开始安装carla的部分。
四、安装Carla0.9.14
安装Carla有两种方法安装,第一种是源码编译安装,第二种是去carla官网上喜爱在安装包进行解压安装,由于我之后可能还要在源码进行一些操作,所以我选择的是源码安装。
先安装一个命令加速模块:
sudo apt-get install aria2
然后就开始0.9.14版本的安装。
git clone -b 0.9.14 https://github.com/carla-simulator/carla.git
这一步git clone大致内容跟上一步安装UE4的情况一样,如果出现了上一步所出现的问题,按照相对应的解决方法操作即可。
等git clone完成之后,就是最核心的一步了:
cd ~/carla
将50行的代码改为CONTENT_LINK=https://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz
然后再执行
./Update.sh
就可以下载Carla对应的资源并可以解压到对应的文件夹下
然后就开始Make Carla Python API,编译pythonAPI,输入:
make PythonAPI//或者带上自己的python版本make PythonAPI ARGS="--python-version=2.7, 3.6, 3.7, 3.8"
ps:如果UE的版本不是Carla版本的,在这里很可以遇到很多Clang不匹配的问题,我的选择是重新安装ubuntu按照正确的教程安装,就成功了
成功后的截图是这样的

进行最后一步:
make launch
make launch其中编译的内容主要三个:
make setupmake LibCarlamake CarlaUE4Editor
因此可以分布编译以上三步,或直接编译make launch,但是分布编译可以看出错误。
我是在执行第二步编译时出了问题:
BuildCarlaUE4.sh: ERROR: UE4_ROOT is not defined, or points to a non-existant directory, please set this environment variable.Util/BuildTools/Linux.mk:7: recipe for target ‘launch’ failed
解决方法,修改Carla/Util/BuildTools/BuildCarlaUE4.sh文件,直接打开这个文件或者利用终端打开修改:
sudo gedit ~/Carla/Util/BuildTools/BuildCarlaUE4.sh
在里面添加:
UE4_ROOT=~/UnrealEngine_4.26
(由于我的安装路径是/home/crist/WorkSpace/UnrealEngine,你也应该改成你的)
添加截图如下:

这个问题在Package.sh中出现,同上操作

(由于我的安装路径是/home/crist/WorkSpace/UnrealEngine,你也应该改成你的)
再执行以下命令
make setupmake LibCarlamake CarlaUE4Editormake launchmake PythonAPI.3make package

需要经过漫长的等待,就可以出现该画面了,代表着carla的安装已经成功。
make launch 第一次初始化会时间长一些,之后好很多。如果Make成功,我们的仿真界面就会出现!开始之前记得点运行!
不要刚才弹出的界面关掉,另开一个terminal, 输入以下指令:
cd ~/carla/PythonAPI/examplespython3 automatic_control.py
顺利的话,应该会出现和下图比较类似的情形。

到这里我们的Carla安装就结束啦!
相关文章:
Ubuntu20.04编译安装Carla全过程
前言 Carla的安装是我现阶段解决的第一个问题,现记录一下我安装Carla的过程以及我在安装过程中遇到的一些问题。 一、安装前准备 1、硬件环境 carla是一款基于UE4开发的模拟仿真软件,本身对硬件的要求比较高。 我是windows与ubuntu双系统࿰…...
Dijkstra 算法 是什么?
Dijkstra 算法 Dijkstra 算法是一种经典的最短路径算法,用于在图(有向或无向图)中找到从起点到其他所有节点的最短路径。它以广度优先搜索的方式,逐步扩展到目标节点,确保计算出的路径是最短的。 1. Dijkstra 算法的基…...
英文输入法---华为OD机试2024年E卷
题解: 代码:...
理解 package.json 中版本号符号
今天,聊一聊在前端开发中, package.json 中怎么看版本号符号。 版本号符号的解释 版本号通常由三部分组成:主版本号、次版本号、补丁版本号,格式为 major.minor.patch。常见的符号有: ^:更新时允许自动…...
计算机网络-IPSec VPN基本概念
企业分支之间经常有互联的需求,企业互联的方式很多,可以使用专线线路或者Internet线路。部分企业从成本和需求出发会选择使用Internet线路进行互联,但是使用Internet线路存在安全风险,如何保障数据在传输时不会被窃取?…...
VsCode运行Ts文件
1. 生成package.json文件 npm init 2. 生成tsconfig.json文件 tsc --init 3. Vscode运行ts文件 在ts文件点击右键执行Run Code,执行ts文件...
模型 AITDA(吸引、兴趣、信任、渴望、行动)
系列文章 分享 模型,了解更多👉 模型_思维模型目录。吸引、兴趣、信任、渴望、行动 五步曲。 1 模型AITDA的应用 1.1 开源AI智能名片小程序的营销策略 一家企业开发了开源AI智能名片小程序,旨在通过S2B2C模式连接供应商和消费者。该企业采用…...
十、软件设计架构-微服务-服务调用Feign
文章目录 前言一、Feign介绍1. 什么是Feign2. 什么是Http客户端3. Feign 和 OpenFeign 的区别 二、Feign底层原理三、Feign工作原理详解1. 动态代理机制2. 动态代理的创建过程3. 创建详细流程4. FeignClient属性 四、Feign使用1. 常规调用2.日志打印3. 添加Header 前言 服务调…...
电子商务人工智能指南 3/6 - 聊天机器人和客户服务
介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...
【AI模型对比】Kimi与ChatGPT的差距:真实对比它们在六大题型中的全面表现!
文章目录 Moss前沿AI语义理解文学知识数学计算天文学知识物理学知识英语阅读理解详细对比列表总结与建议 Moss前沿AI 【OpenAI】获取OpenAI API Key的多种方式全攻略:从入门到精通,再到详解教程!! 【VScode】VSCode中的智能AI-G…...
spring6:2入门
spring6:2入门 目录 spring6:2入门2.1、环境要求2.2、构建模块2.3、程序开发2.3.1、引入依赖2.3.2、创建java类2.3.3、创建配置文件2.3.4、创建测试类测试2.3.5、运行测试程序 2.4、程序分析2.5、启用Log4j2日志框架2.5.1、Log4j2日志概述2.5.2、引入Log…...
Netty - NIO基础学习
一 简介 1 三大模型是什么? IO三大模型之一,BIO,AIO,还有我们的主角NIO(non-blocking-io),也就是同步非阻塞式IO。这三种模型到底是干什么的?其实这三种模型都是对于JAVA的一种I/O框架,用来进行…...
ArrayList的自动扩容机制源码
Java的ArrayList的自动扩容机制 ArrayList是 Java 中极为常用的动态数组实现类,它依托数组存储数据,能依据实际需求灵活变动容量,高效管理元素集合。在深挖底层源码细节前,先来了解创建ArrayList集合并添加元素时的运作流程&#…...
【llm_inference】react框架(最小code实现)
ReAct:结合推理和行动的大语言模型推理架构 GitHub Code: 人人都能看懂的最小实现 引言 在人工智能领域,大语言模型(LLM)的应用日益广泛,但如何让模型能够像人类一样,在思考的基础上采取行动,…...
PT8M2103 触控 I/O 型 8-Bit MCU
1 产品概述 ● PT8M2103 是一款可多次编程(MTP)I/O 型8位 MCU,其包括 2K*16bit MTP ROM、256*8bit SRAM、PWM、Touch 等功能,具有高性能精简指令集、低工作电压、低功耗特性且完全集成触控按键功能。为各种触控按键的应用,提供了一种简单而又…...
英语时态学习+名词副词形容词变形方式
开发出头不容易 不如跨界卷英语 英语中的16种时态是由四种时间(现在、过去、将来、过去将来)和四种体(一般、进行、完成、完成进行)组合而成的。以下是每种时态的详细说明和例句: 一般现在时 (Simple Present) 用法…...
浏览器解析页面流程
从输入一个url到页面解析完成的流程 1. 网络进程 1. 获取url 浏览器首先判断输入的url是否有http缓存,如果有则直接从http缓存中读取数据并显示。如果没有,则进行下一步。进行DNS解析,获取域名对应的IP地址。 2.下载html文件 浏览器根据I…...
图的遍历之DFS邻接矩阵法
本题要求实现一个函数,对给定的用邻接矩阵存储的无向无权图,以及一个顶点的编号v,打印以v为起点的一个深度优先搜索序列。 当搜索路径不唯一时,总是选取编号较小的邻接点。 本题保证输入的数据(顶点数量、起点的编号等…...
Java --- JVM编译运行过程
目录 一.Java编译与执行流程: 二.编译过程: 1.编译器(javac): 2.字节码文件(.class): 三.执行过程: 1.启动JVM(Java虚拟机): 2…...
HTML5 拖拽 API 深度解析
一、HTML5 拖拽 API 深度解析 1.1 背景与发展 HTML5 的拖拽 API 是为了解决传统拖拽操作复杂而设计的。传统方法依赖鼠标事件和复杂的逻辑计算,而 HTML5 提供了标准化的拖拽事件和数据传递机制,使得开发者能够快速实现从一个元素拖拽到另一个元素的交互…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
Python爬虫实战:研究Restkit库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...
