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

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...