CARLA (I)--Ubuntu20.04 服务器安装 CARLA_0.9.13服务端和客户端详细步骤

news2024/10/5 20:47:44

目录

  • 0. 说明
    • 0.1 应用场景:
    • 0.2 本文动机:
  • 1. 准备工作
  • 2. 安装 CARLA 服务端软件【远程服务器】
  • 3. 安装 CARLA 客户端【远程服务器】
    • 3.1 .egg 文件安装:
    • 3.2 .whl 文件安装:
    • 3.3 从Pypi下载Python package
  • 4. 运行服务端程序
  • 5. 运行客户端程序【远程服务器】
  • 6. 另外一种应用模式:服务端程序【远程服务器】<--->客户端程序【本地计算机:客户端+显示】
  • 7. 其他的安装方式参考文献

0. 说明

0.1 应用场景:

  1. 远程服务器:无显示器,具备多个GPU卡,Ubuntu 20.04
  2. 远程服务器上拟安装的Carla版本:0.9.13
  3. Carla的服务端和客户端均运行在远程服务器上
  4. 用户通过本地计算机(Windows10)远程访问和操作服务器
  5. 本地计算机可:
  • 安装并使用MobaXterm软件:利用本地电脑远程登陆和操作服务器,主要使用该软件的SSH来操作服务器终端,SFTP显示和操作服务器的文件夹和文件,或RDP来远程登录服务器界面。
  • 使用Vs Code: 通过建立SSH来直接修改或调试远程服务器上的Python函数。

0.2 本文动机:

随着时间的更新,Carla版本截止发稿前(2024.04)已更新到0.9.15版本。如果按照上述较早前发布的贴子来安装0.9.13等这类非最新早期的版本Carla可能出现问题。
例如,《CARLA 笔记(02)— Ubuntu 安装 CARLA(服务端、客户端、安装 miniconda、创建虚拟环境、更换 pip 源、生成交通流、人工控制车辆按键)》介绍了0.9.13版本的服务器安装。但是,帖子发布时0.9.13版本可能是当时的最新版本,当时安装可能没有问题。但如果现在安装,某些步骤已经不适用(下文结合具体安装步骤说明),例如:由于现在Pypi默认的carla客户端Python库已经更新至最新版本0.9.15,如果采用pip3 install carla来默认安装肯定出错。

1. 准备工作

安装之前,需要熟悉以下几个Carla常用的资源来源网站。

  • a. Carla安装包: https://github.com/carla-simulator/carla/blob/master/Docs/download.md
    CARLA的不同版本安装包点这里
  • b. Carla官网: https://carla.org/
    可以找到DOCUMENTATION说明文档,和GITHUB官网下载链接。
  • c. Pypi-Carla: https://pypi.org/search/?q=carla

The Python Package Index (PyPI) 是Python编程语言的软件仓库repository,帮助我们查找并安装Python community共享的软件。本文中,远程服务器的Carla客户端Python软件来源于Pypi。但须注意安装时,到网站上检查一下Pypi仓库中默认的Carla客户端软件版本,否则可能导致安装失败。

  • d. python库用户使用手册: https://packaging.python.org/en/latest/

2. 安装 CARLA 服务端软件【远程服务器】

以下安装均在远程服务器的个人账号base环境下完成,无须在root管理员账号下安装,亲验有效。注意,后续运行服务端程序时,也同样需在同一个人账号base环境下进行,验证发现root账号下运行carla服务端程序的话,会提示不允许。

  • (1) 下载Carla 0.9.13安装包:
    打开1.a提供的下载网址,找到0.9.13版本,下载下列两个文件:
    在这里插入图片描述
  • (2) 将第一个文件拷贝至服务器某文件夹,进入该文件夹后,解压:
tar -xzvf CARLA_0.9.13.tar.gz
  • (3) 将第二个文件 AdditionalMaps_0.9.13.tar.gz 放到 carla 的 import 目录下。
  • (4) 执行命令导入附加的地图:
cd CARLA_0.9.13/
./ImportAssets.sh

3. 安装 CARLA 客户端【远程服务器】

建议在虚拟环境中安装 CARLA 客户端库,以避免在使用多个版本时发生冲突。在远程服务器建立Anaconda虚拟环境软件,创建所需版本的虚拟环境。
本例中,采用python3.8版本来管理carla客户端库和应用程序。

# 创建虚拟环境,指定python版本
conda create --name your_env_name python=3.8
# 激活虚拟环境
activate your_env_name
# 退出虚拟环境
deactivate 
# 删除虚拟环境
conda remove --name your_env_name --all
# 查看所有虚拟环境
conda info --envs
conda env list
# 查看活跃环境下的所有包
conda list
# 为指定环境安装某个包
conda install -n env_name package_name

conda 虚拟环境中包的安装: 如果不能通过conda install来安装,更习惯用pip直接安装。pip在Anaconda中已安装好,不需要单独为每个环境安装pip。如需要用pip管理包,activate环境后直接使用即可。

CARLA 0.9.12+ 以上版本提供了三种安装客户端库的方式。
本例使用第二种whl安装方式成功安装,注意此处有,请看下文。

3.1 .egg 文件安装:

CARLA 在== PythonAPI/carla/dist/== 中为不同的 Python 版本提供了.egg 文件,开箱即可使用。
在== PythonAPI/examples== 中的每个例子脚本都包括一个自动寻找这个文件的代码片段。

注意:
(1)在 Linux 中,可能需要把这个文件添加到你的 PYTHONPATH 中。
(2)如果之前用 pip 安装了客户端库,它将优先于 .egg 文件,如果想使用.egg客户端库,需要先卸载之前的库。
(3)CARLA 0.9.12 之前的版本不需要安装 Python 库,都带有一个 .egg 文件,开箱就可以使用。

3.2 .whl 文件安装:

(1)启动虚拟环境,定位到.whl文件:

  • CARLA 为不同的 Python 版本提供 .whl 文件,需要安装 .whl 文件。
    .whl 文件可以在 ==PythonAPI/carla/dist/ == 中找到。
  • 每个支持的 Python 版本有一个文件,用文件名表示 (例如,carla-0.9.12-cp36-cp36m-manylinux_2_27_x86_64.whl 表示Python 3.6)。
  • 如果以前安装了客户端库,应该在安装新库之前卸载旧库。

在操作中发现Carla0.9.13版本的PythonAPI/carla/dist/下只有python 2.7和python 3.7版本的whl文件,没有本例中虚拟环境python 3.8对应的whl文件。此时,要作以下两步:

  • a. 从Pypi.org下载Carla 0.9.13版本的Python 3.8的 客户端whl文件。
    下载地址:https://pypi.org/project/carla/0.9.13/#files
# 找到并下载下列whl文件:
carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl 
  • b. 修改whl名称,以便符合规范,否则运行下面的安装命令会出错。
    可参见这个帖子的解决方案,将whl文件名改为符合python3.8版本的文件安装的命名规范。
# cd到whl文件所在目录,利用mv命令重命名文件
mv carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl  carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl

(2) 安装.whl文件

# Python 3
pip3 install <wheel-file-name>.whl

# Python 2
pip install <wheel-file-name>.whl
./ImportAssets.sh

3.3 从Pypi下载Python package

CARLA 客户端库可以从 PyPi 下载。要安装它,需要 pip/pip3 的20.3版本或以上。

# 激活虚拟环境
conda activate XXX
# 如果 pip 需要升级,则执行命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
# 如果需要,可永久更换 pip 源为清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 在 虚拟环境中安装 CARLA 执行所需要的依赖
pip install pygame numpy
# 在 虚拟环境中安装客户端
pip install carla
  • 本例曾经使用第三种方式pip安装失败,经查看pypi库是安装时的版本已经更新至0.9.15,因此不能使用pip install carla来安装(默认0.9.15,与本例carla版本不一致)。
  • 本例尝试使用pip install carla==0.9.13来安装指定版本,仍然失败,原因未知,有知道的请评论区提示。

4. 运行服务端程序

由于carla服务端程序安装在远程服务器的个人账号下,须首先进入个人账号base环境,然后启动carla运行服务端程序,并保持运行。

  • 安装依赖项:
apt-get install -y libomp5
  • 命令行启动Carla, 正常模式
cd CARLA_0.9.13/
./CarlaUE4.sh
  • 命令行启动Carla, off-screen mode
./CarlaUE4.sh -RenderOffScreen

由于远程服务器没有显示器,本例采用off-screen mode 启动carla服务端程序:即Unreal Engine 正常运行,正常进行渲染计算 rendering,但是没有显示信号输出,GPU 的虚拟传感器可以正常返回有效数据

  • 如果电脑显卡性能较差,可以添加如下可选参数调低渲染 level:
 ./CarlaUE4.sh -quality-level=Low

启动时可选de配置选项包括:

配置参数含义
carla-rpc-port=N侦听端口 N 处的客户端连接。默认情况下,流式端口 Streaming port 设置为 N+1
carla-streaming-port=N指定用于传感器数据流的端口。 使用 0 获取随机未使用的端口。 第二个端口将自动设置为 N + 1
quality-level={Low,Epic}更改图形质量级别
-carla-server让 carla以服务的方式运行
-benchmark -fps=15引擎以1/15秒的固定时间逐步运行
-windowed -ResX=800 -ResY=600屏幕窗口大小

5. 运行客户端程序【远程服务器】

服务端运行之后,等待客户端与之连接,可以用下面的方法连接服务端。

(1) 进入虚拟环境,生成交通流。命令行执行后不要关闭。

cd PythonAPI\examples
python3 -m pip install -r requirements.txt 
python3 generate_traffic.py  

(2) 人工控制1

cd PythonAPI\examples
python3 manual_control.py 

6. 另外一种应用模式:服务端程序【远程服务器】<—>客户端程序【本地计算机:客户端+显示】

  • 参见参考1:《Carla学习笔记(一)服务器跑carla本地显示窗口》
  • 参见参考2:《Carla学习笔记(二)服务器跑carla,本地运行carla-ros-bridge并用rviz显示

7. 其他的安装方式参考文献

  1. 《Carla 安装详细教程 —— Ubuntu 20.04 安装 Carla》
  2. 《ubuntu安装carla0.9.14打包版+编译版教程》
  3. 《Ubuntu20.04 安装 Nvidia GTX 1050 ti GPU 驱动运行Carla详细过程》

  1. 由于本地计算机提供键盘输入,并在本地计算机显示器来显示远程服务器的carla Python客户端GUI界面,因此实际应用中可能有延迟和卡顿。https://blog.csdn.net/wohu1104/article/details/125464837 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1627598.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式版本控制系统——Git

分布式版本控制系统——Git 一、Git安装二、创建版本库三、将文件交给Git管理四、Git的工作区和暂存区1.工作区&#xff08;Working Directory&#xff09;2.版本库 五、版本回退和撤销修改1.版本回退2.撤销修改 六、删除文件七、常用基础命令总结八、参考 分布式版本控制系统&…

快手面试算法真题

按照html中的标签层数遍历节点名。 例如&#xff1a;html代码如下&#xff1a;(上面的数字表示层数) <!-- 1 --><div class"div1"><!-- 2 --><span class"span1"></span><!-- 2 --><p class"p1"><…

Chrome 网络调试程序 谷歌网络调试 network

目录 1.网络面板总览2.概况了解3.Waterfall接口排队等待时间4.关注请求接口的Size,可能是占据内存溢出的接口5.过滤器一栏 fetch/xhr 什么意思6. Stalled 什么意思7.Queueing 什么意思8.Queueing和Stalled之间什么关系9.为什么会有阻塞状态10.Time列是pending 什么意思 1.网络面…

【03-掌握Scikit-learn:深入机器学习的实用技术】

文章目录 前言数据预处理缺失值处理数据缩放 特征选择模型训练参数调整模型评估总结 前言 经过了对Python和Scikit-learn的基础安装及简单应用&#xff0c;我们现在将更深入地探究Scikit-learn的实用技术&#xff0c;以进一步提升我们的数据科学技能。在本文中&#xff0c;我们…

江苏开放大学2024年春《机电设备安装与调试 050095》第三次形成性考核作业参考答案

电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题&#xff0c;包含国家开放大学、广东开放大学、超星等等多个平台题库&#xff0c;考试作业必备神器。 公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#…

【React】CSS 局部样式

书写 CSS 的时候&#xff0c;如果 CSS 文件名包含 module&#xff0c;那么说明该 CSS 是一个局部 CSS 样式文件&#xff0c;类似于 vue 中的 scoped。 .avatarContainer {width: 40px;height: 40px;border-radius: 50%;background: rgb(213, 226, 226); }import styles from ..…

tcp服务器端与多个客户端连接

如果希望Tcp服务器端可以与多个客户端连接&#xff0c;可以这样写&#xff1a; tcpServernew QTcpServer(this);connect(tcpServer,SIGNAL(newConnection()),this,SLOT(onNewConnection())); void MainWindow::onNewConnection() {QTcpSocket *tcpSocket;//TCP通讯的Sockettcp…

分布式WEB应用中会话管理的变迁之路

Session一词直译为“会话”&#xff0c;意指有始有终的一系列动作&#xff0f;消息。Session是Web应用蓬勃发展的产物之一&#xff0c;在Web应用中隐含有“面向连接”和“状态保持”两个含义&#xff0c;同时也指代了Web服务器与客户端之间进行状态保持的解决方案。 在Web应用…

从单按键状态机思维扫描引申到4*4矩阵按键全键无冲扫描,一步一步教,超好理解,超好复现(STM32程序例子HAL库)

目前大部分代码存在的问题 ​ 单次只能对单个按键产生反应&#xff1b;多个按键按下就难以修改&#xff1b;并且代码耦合度较高&#xff0c;逻辑难以修改&#xff0c;对于添加长按&#xff0c;短按&#xff0c;双击的需求修改困难。 解决 16个按键按下无冲&#xff0c;并且代…

微信小程序开发:2.小程序组件

常用的视图容器类组件 View 普通的视图区域类似于div常用来进行布局效果 scroll-view 可以滚动的视图&#xff0c;常用来进行滚动列表区域 swiper and swiper-item 轮播图的容器组件和轮播图的item项目组件 View组件的基本使用 案例1 <view class"container"&…

LT9611UXC双端口 MIPI DSI/CSI 转 HDMI2.0,带音频

1. 说明 LT9611UXC 是一款高性能 MIPI DSI/CSI 至 HDMI2.0 转换器。MIPI DSI/CSI 输入具有可配置的单端口或双端口&#xff0c;具有 1 个高速时钟通道和 1~4 个高速数据通道&#xff0c;工作速率最高为 2Gbps/通道&#xff0c;可支持高达 16Gbps 的总带宽。 LT9611UXC 支持突发…

Fluent.Ribbon创建Office的RibbonWindow菜单

链接&#xff1a; Fluent.Ribbon文档 优势&#xff1a; 1. 可以创建类似Office办公软件的复杂窗口&#xff1b; 2. 可以应用自定义主题风格界面

视频滚动字幕一键批量轻松添加,解锁高效字幕编辑,提升视频质量与观众体验

视频已成为我们获取信息、娱乐休闲的重要渠道。一部成功的视频作品&#xff0c;除了画面精美、音质清晰外&#xff0c;字幕的添加也是至关重要的一环。字幕不仅能增强视频的观感&#xff0c;还能提升信息的传达效率&#xff0c;让观众在享受视觉盛宴的同时&#xff0c;更加深入…

SpringCloud系列(18)--将服务提供者Provider注册进Consul

前言&#xff1a;在上一章节中我们把服务消费者Consumer注册进了Zookeeper&#xff0c;并且成功通过服务消费者Consumer调用了服务提供者Provider&#xff0c;而本章节则是关于如何将服务提供者Provider注册进Consul里 准备环境&#xff1a; 先安装Consul&#xff0c;如果没有…

mac资源库的东西可以删除吗?提升Mac运行速度秘籍 Mac实用软件

很多小伙伴在使用mac电脑处理工作的时候&#xff0c;就会很疑惑&#xff0c;电脑的运行速度怎么越来越慢&#xff0c;就想着通过删除mac资源库的东西&#xff0c;那么mac资源库的东西可以删除吗&#xff1f;删除了会不会造成电脑故障呢&#xff1f; 首先&#xff0c;mac资源库…

【面试经典 150 | 二叉树】完全二叉树的节点个数

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;遍历统计方法二&#xff1a;二分查找位运算 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对…

北斗引路,太阳为源,定位报警,保护渔业,安全护航!

2022年1月&#xff0c;农业农村部发布《“十四五”全国渔业发展规划》明确提出&#xff0c;到2025年&#xff0c;渔业质量效益和竞争力明显增强&#xff0c;渔业基础设施和装备条件明显改善&#xff0c;渔业治理体系和治理能力现代化水平明显提高&#xff0c;实现产业更强、生态…

剖析线程池:深入理解Java中的线程池构造和调优技巧

使用Executors工具类创建线程池 Executors的主要方法与默认配置 Executors 工具类是 Java 中创建线程池的标准方法之一&#xff0c;它提供了许多静态方法来创建不同类型的线程池。以下是一些常用的 Executors 方法及其作用&#xff1a; newFixedThreadPool(int nThreads): 创…

Git如何配合Github使用

1.安装Git https://git-scm.com/ ##2.配置 Git 安装完成后&#xff0c;你需要设置 Git 的用户名和邮箱地址&#xff0c;这样在提交代码时就能知道是谁提交的。你可以在命令行中输入以下命令来配置&#xff1a; git config --global user.name "Your Name" git con…

政安晨:【Keras机器学习示例演绎】(十八)—— 图像字幕

目录 设置 下载数据集 准备数据 将文本数据向量化 构建用于训练的tf.data.Dataset管道 构建模型 模型训练 检查样本预测结果 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对…