当前位置: 首页 > news >正文

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双系统&#xff0…...

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)的应用日益广泛,但如何让模型能够像人类一样,在思考的基础上采取行动&#xff0c…...

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 提供了标准化的拖拽事件和数据传递机制,使得开发者能够快速实现从一个元素拖拽到另一个元素的交互…...

GO--基于令牌桶和漏桶的限流策略

至于为什么要限流,字面意思已经很清楚了,就是为了减轻服务器的压力 下面我们将介绍两个限流策略----漏桶和令牌桶。 漏桶 原理介绍 漏桶,顾名思义就是一个漏斗,漏斗嘴的大小是固定的,所以不管漏斗现容量多大&#…...

MongoDB性能监控工具

mongostat mongostat是MongoDB自带的监控工具,其可以提供数据库节点或者整个集群当前的状态视图。该功能的设计非常类似于Linux系统中的vmstat命令,可以呈现出实时的状态变化。不同的是,mongostat所监视的对象是数据库进程。mongostat常用于…...

Axure设计之模拟地图人员移动轨迹

在产品原型设计时,为了更好的表达和呈现预期的效果,让客户或开发看一眼就能理解要实现的功能,往往需要在产品设计时尽量去接近现实,这就需要我们在使用Axure制作原型时应具有高度细节和逼真度的原型设计。原型设计不仅包含了产品的…...

Android环境搭建

Android环境搭建 第一步:安装 Homebrew 执行以下命令来安装 Homebrew: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功: brew --version第二步:安装 No…...

前端工程化面试题(一)

如何使用 Docker 部署前端项目? 使用 Docker 部署前端项目通常涉及以下几个步骤: 创建项目:首先,需要在本地创建并配置好前端项目。 准备 Docker 文件: .dockerignore:这个文件用于排除不需要上传到 Dock…...

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…...

期权懂|个股期权交割操作流程是什么样的?

期权小懂每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 个股期权交割操作流程是什么样的? 一、行权申报: 期权买方在行权日通过其经纪商提交行权指令,表明其决定行使期权权利。 二、行权匹配&#xf…...

【openGauss】openGauss execute执行update语句,获取更新的行数

【openGauss】openGauss execute执行update语句,获取更新的行数 在openGauss中,可以使用execute语句执行update语句,并通过GET DIAGNOSTICS语句获取更新的行数。下面是一个示例: DO $$ DECLAREupdated_rows INTEGER; BEGINEXECUT…...

P8780 [蓝桥杯 2022 省 B] 刷题统计

题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 𝑎道题目,周六和周日每天做 𝑏 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 𝑛 题? 输入格式 输入一行包含三…...

切比雪夫不等式:方差约束下的概率估计

切比雪夫不等式:方差约束下的概率估计 背景 在概率分析中,切比雪夫不等式是一个常用的工具,它通过引入随机变量的 方差信息,给出了偏离均值的概率界限。这一不等式是对 马尔科夫不等式 的自然扩展,结合了更丰富的分布…...