随着时间的更新,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来默认安装肯定出错。
安装之前,需要熟悉以下几个Carla常用的资源来源网站。
The Python Package Index (PyPI) 是Python编程语言的软件仓库repository,帮助我们查找并安装Python community共享的软件。本文中,远程服务器的Carla客户端Python软件来源于Pypi。但须注意安装时,到网站上检查一下Pypi仓库中默认的Carla客户端软件版本,否则可能导致安装失败。
以下安装均在远程服务器的个人账号base环境下完成,无须在root管理员账号下安装,亲验有效。注意,后续运行服务端程序时,也同样需在同一个人账号base环境下进行,验证发现root账号下运行carla服务端程序的话,会提示不允许。
tar -xzvf CARLA_0.9.13.tar.gz
cd CARLA_0.9.13/
./ImportAssets.sh
建议在虚拟环境中安装 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安装方式成功安装,注意此处有坑,请看下文。
CARLA 在== PythonAPI/carla/dist/== 中为不同的 Python 版本提供了.egg 文件,开箱即可使用。
在== PythonAPI/examples== 中的每个例子脚本都包括一个自动寻找这个文件的代码片段。
注意:
(1)在 Linux 中,可能需要把这个文件添加到你的 PYTHONPATH 中。
(2)如果之前用 pip 安装了客户端库,它将优先于 .egg 文件,如果想使用.egg客户端库,需要先卸载之前的库。
(3)CARLA 0.9.12 之前的版本不需要安装 Python 库,都带有一个 .egg 文件,开箱就可以使用。
(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文件。此时,要作以下两步:
# 找到并下载下列whl文件:
carla-0.9.13-cp38-cp38-manylinux_2_27_x86_64.whl
# 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
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来安装指定版本,仍然失败,原因未知,有知道的请评论区提示。
由于carla服务端程序安装在远程服务器的个人账号下,须首先进入个人账号base环境,然后启动carla运行服务端程序,并保持运行。
apt-get install -y libomp5
cd CARLA_0.9.13/
./CarlaUE4.sh
./CarlaUE4.sh -RenderOffScreen
由于远程服务器没有显示器,本例采用off-screen mode 启动carla服务端程序:即Unreal Engine 正常运行,正常进行渲染计算 rendering,但是没有显示信号输出,GPU 的虚拟传感器可以正常返回有效数据
./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 | 屏幕窗口大小 |
服务端运行之后,等待客户端与之连接,可以用下面的方法连接服务端。
(1) 进入虚拟环境,生成交通流。命令行执行后不要关闭。
cd PythonAPI\examples
python3 -m pip install -r requirements.txt
python3 generate_traffic.py
(2) 人工控制1
cd PythonAPI\examples
python3 manual_control.py
由于本地计算机提供键盘输入,并在本地计算机显示器来显示远程服务器的carla Python客户端GUI界面,因此实际应用中可能有延迟和卡顿。https://blog.csdn.net/wohu1104/article/details/125464837 ↩︎