ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CARLA 0.9.15 Windows安装全流程:从环境配置到Python API验证

CARLA 0.9.15 Windows安装全流程:从环境配置到Python API验证 先说结论CARLA 0.9.15 是当前最好上手的自动驾驶仿真版本之一Windows 下的安装流程虽然绕不开几个大坑但只要按顺序来、版本对上基本一次能通。这篇教程我会从环境准备、依赖安装、服务端启动到客户端 Demo 验证把每一步的“为什么”和“坑在哪”一起说清楚给你一套可以直接照抄的流程。我会把它定位成系列第一篇所以会讲得细一点后面再出地图、传感器、车辆控制这些进阶内容。无论你是刚接触自动驾驶仿真还是已经跑过其他版本想跳到 0.9.x这篇文章都能帮你把环境稳稳当当地搭起来。1. 整体思路CARLA 是什么为什么安装要分“客户端”和“服务端”1.1 CARLA 的架构决定了你的安装方式CARLA 的架构我习惯这样理解它本质上是一个基于 Unreal Engine 4 构建的模拟世界启动后就是一个“服务端”负责渲染场景、处理物理、跑车辆动力学。你通过 Python API 或客户端库去连接这个服务端控制车辆、读取传感器数据这部分就是“客户端”。这两个角色决定了你在 Windows 下要装的东西其实分两层服务端就是 CARLA 本体一个自带的 Unreal 引擎打包好的可执行程序直接双击就能开启模拟世界。客户端主要是 Python 环境、CARLA 的 Python API 和依赖库用来在外部脚本里跟模拟世界对话。这种架构带来的好处是你不需要从源码编译 Unreal 引擎官方已经编译好打包成压缩包直接分发。坏处是CARLA 对系统环境、显卡驱动、Python 版本、甚至 CMake 和 Visual Studio 的版本都有点挑一个版本对不上就容易出莫名奇妙的问题。1.2 为什么 0.9.15 值得专门写一篇CARLA 在 0.9.13 之后开发节奏明显加快了0.9.14、0.9.15 的改动都不小。0.9.15 最值得关注的点是它对 Python API 做了一些重要调整比如部分 API 的废弃和参数变更、对传感器定义方式更加统一同时底层渲染管线也更新过。我自己在多个版本上踩过坑后建议新手直接从 0.9.15 开始原因很简单它的社区反馈比较多、已知问题集中、后续扩展工具大多支持。你如果从老版本学后面迁移到新版本时还得再改一遍代码没必要。而且 0.9.15 的 Windows 版本对显卡和驱动要求相对友好安装流程也相对稳定只要处理好依赖关系成功率比 0.9.12 之前的老版本高出不少。1.3 你需要准备的硬件和软件清单在动手之前先把硬件和软件都检查一遍别等装到一半才发现配置不够。硬件要求官方推荐实操中再打折CPU4 核以上实测 6 核以上体验更好毕竟同时要跑物理仿真和渲染。内存16GB 起步32GB 比较安心。我测试时 16GB 跑小地图没问题换到 Town06 这种大地图加 10 辆车以上就会有点紧张。显卡NVIDIA 显卡显存 6GB 以上支持 DX11 / DX12。A 卡也能跑但遇到问题排查成本高建议还是 N 卡省心。硬盘至少 50GB 空闲空间建议 SSD加载地图和材质的速度差别很大。软件要求版本务必对上软件版本要求说明Windows10/1164 位安装时关闭“快速启动”避免 GPU 驱动异常NVIDIA 驱动使用较新版本实验室实测 470 均无问题建议直接更新到当前最新的稳定版不要用远古驱动Python3.8 或 3.932 位 / 64 位均可0.9.15 对 Python 3.8 以上的兼容性最好实测 3.10 也能用但可能有小坑pip最新版用 python -m pip install --upgrade pip 先升级Visual Studio2019 或 2022C 桌面开发组件后面编译插件和调用 C API 时会用到2. 核心依赖与版本匹配为什么 Python 和 CARLA 版本必须绑死2.1 CARLA 的 Python API 依赖关系CARLA 的 Python API 不是独立运行的它依赖carla库、numpy、pygame做可视化、matplotlib画曲线图等几个库。不同的 CARLA 版本对 Python 版本的支持范围不一样官方文档里通常写的是 Python 3.8但实测 3.9、3.10 也基本兼容。我的建议是如果你电脑上已经有多个 Python 版本最好为 CARLA 单独建一个虚拟环境这样可以避免版本冲突。很多人装完后执行import carla直接报ModuleNotFoundError基本都是两个原因一是 CARLA 在环境变量里找不到 Python 对应的路径二是虚拟环境和全局环境混用了。我下面会专门说这个怎么规避。2.2 为什么安装时经常卡在 pygame 和 numpypygame 在 Windows 下安装容易出问题尤其是 Python 3.10 以上版本需要检查是否为 64 位匹配。老版本 pip 可能会去加载一个预编译的 wheel但对新版本支持不好。推荐的做法是直接用清华源安装python -m pip install --upgrade pip python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple python -m pip install numpy python -m pip install pygame python -m pip install matplotlib这样基本能避开 pygame 安装失败的问题。2.3 CARLA 自带 Python API 的位置CARLA 0.9.15 压缩包里已经包含了 Python API 和对应的示例代码位置在解压目录下的PythonAPI\carla\dist\里。你会看到一个.whl文件比如carla-0.9.15-cp39-win-amd64.whl这就是 CARLA 的客户端库。安装它的方式很简单但要注意路径和虚拟环境cd CARLA_0.9.15\PythonAPI\carla\dist python -m pip install carla-0.9.15-cp39-win-amd64.whl如果提示找不到cp39对应的版本说明你当前 Python 版本不是 3.9。你需要去看一下文件名后缀比如cp38对应 Python 3.8cp310对应 Python 3.10。这个细节非常容易踩很多人上来报错就是因为这个。3. 完整安装实操从下载压缩包到第一次跑通 Demo3.1 获取 CARLA 0.9.15 安装包去 CARLA 官方仓库的 Release 页面直接下载CARLA_0.9.15.zip。这个包有好几个版本最常用的是全量包大约 20GB 左右包含所有地图、车辆模型、引擎资源和饮食示例资产。如果你只需要跑最基本的功能还有AdditionalMaps和其他附加包但新手建议直接下全量包省得后面缺资源。下载前先确认硬盘空间。我犯过的错误是只留了 30GB 空间解压到一半卡住最后清完缓存才搞定。这次建议至少准备 60GB 以上的剩余空间因为解压后还会额外占用空间。3.2 解压结构与目录说明解压最好放到盘符根目录下的一个纯英文路径里比如D:\CARLA_0.9.15不要放到C:\Users\你的中文用户名\...这种带中文或空格的路径。很多人在 Linux 下习惯了没事但 Windows 下带空格的路径偶尔会让 Unreal 引擎找不到资源。解压完成后你会看到一堆目录最核心的几个CarlaUE4.exe服务端主程序双击就能启动模拟世界。CarlaUE4文件夹里面是引擎资源和配置。PythonAPI\carla\dist客户端 Python API 的安装包。PythonAPI\examples官方提供的 Python 示例脚本比如manual_control.py、generate_traffic.py。Unreal/CarlaUE4源码工程想二次开发才需要用。3.3 启动 CarlaUE4.exe 并确认服务端正常我建议第一次启动时先直接双击CarlaUE4.exe不要急着用命令行加参数。启动后你会看到一个 Unreal 引擎风格的窗口里面加载出一个城市场景看清楚左下角的显示信息确认没有报错。如果第一次启动卡在“ShadingCompile”或“Loading”界面耐心等一会儿首次启动会编译一些着色器比较慢。等场景加载完成后可以按Esc或直接关掉窗口。注意如果你想在后台运行服务端而不弹出窗口比如跑批处理任务时可以用命令行加-prefernvidia和-nosound参数来优化性能但第一次调试建议还是保留窗口方便看报错。3.4 安装客户端 Python API再打开一个终端进入 PythonAPI 目录。如果之前已经创建了一个独立的虚拟环境先激活它没有的话就直接用全局 Python 或建一个新的虚拟环境。以 Windows 下的虚拟环境为例python -m venv carla_env carla_env\Scripts\activate cd CARLA_0.9.15\PythonAPI\carla\dist pip install carla-0.9.15-cp39-win-amd64.whl如果你用的 Python 版本是 3.8那就是pip install carla-0.9.15-cp38-win-amd64.whl以此类推。安装完成后可以运行import carla print(carla.__version__)能打印出0.9.15就说明客户端库安装成功了。3.5 配置环境变量可选但推荐有时你用命令行启动服务端和不同终端里跑 Python 客户端时需要确保它们能找到彼此。CARLA 默认监听localhost的2000端口只要不跨机器一般不用配环境变量。但如果你的 Python 脚本找不到 CARLA 的客户端库最快捷的办法是把PythonAPI\carla\dist\carla-0.9.15-py3.7-win-amd64.egg加到PYTHONPATH不过我们这里已经通过 pip 安装.whl文件了就省去这一步。但我的建议是将CarlaUE4.exe所在的根目录加到系统PATH环境变量里这样以后可以快速从任何地方启动服务端。这个操作不是必需的但能省不少事。3.6 跑通官方示例脚本验证安装到这一步理论上一切应该就绪。我给你的第一个验证脚本不是手动控制而是最简单的连接测试import carla client carla.Client(localhost, 2000) client.set_timeout(10.0) world client.get_world() print(world.get_map().name)如果输出类似Carla/Maps/Town01说明客户端和服务器已经连通。如果这个都跑不通千万先别去找核心代码的 bug回头检查你的服务端是否启动、端口是否被占用、防火墙是否拦截。跑通连接后可以进阶执行一下官方示例里的自动导航脚本cd CARLA_0.9.15\PythonAPI\examples python -m pip install -r requirements.txt python generate_traffic.py这个脚本会在场景里生成一批流动车辆。如果能看到车辆自动行驶就说明渲染、物理、AI 交通这些核心模块都正常了。4. 常见问题与排查技巧4.1 启动 CarlaUE4.exe 后黑屏或闪退这是 Windows 下最坑的问题之一我见的概率很高。原因通常有三个显卡驱动太旧或损坏。实测更新到 NVIDIA 官方最新驱动后绝大多数黑屏问题都会消失。材质着色器编译卡住。首次启动时Unreal 引擎要编译大量 shader如果你看到界面卡死可以等 5 到 10 分钟别急着关。文件路径有中文或特殊字符。检查一下你的解压路径是否是纯英文。这种问题排查顺序是先更新驱动再调路径最后看日志。CARLA 的日志默认在解压目录下的CarlaUE4\Saved\Logs里遇到问题先去看那个日志文件搜索Error、Fatal之类的关键字。4.2 端口 2000 被占用如果你手动用命令行启动过多个服务端实例或者有其他程序占用了 2000 端口客户端会连不上。Windows 下查看端口占用netstat -ano | findstr 2000看到 LISTENING 的 PID 后再去任务管理器里结束对应进程。如果你确实需要同时跑多个实例可以给客户端指定不同的端口但新手阶段不建议折腾这个。4.3 pip 安装 .whl 文件时报“该平台不支持”这个问题十有八九是 Python 版本和 wheel 文件名对不上。比如你的环境是 Python 3.10却下了cp39的 wheel 文件pip 就会拒绝安装。解决办法有两个去PythonAPI\carla\dist目录下看看有没有对应你 Python 版本的.whl文件。全量包里通常会附带多个覆盖不同 Python 版本。或者直接新建一个 Python 3.9 的虚拟环境然后安装对应的cp39版本。4.4 客户端可以连上但画面卡顿严重0.9.15 默认画面质量较高如果你显卡一般建议用命令行降低质量等级再启动服务端CarlaUE4.exe -quality-levelLow还可以加-prefernvidia强制使用 N 卡运行以及-RenderOffScreen在后端渲染但不出窗口适合服务器环境跑数据。4.5 防火墙弹窗拦截第一次启动CarlaUE4.exe时Windows 防火墙可能弹出提示问你是否允许它在局域网中通信。如果你只在本地跑取消勾选“公用网络”也可以但如果你想在同一局域网内另一台机器上通过客户端连接就需要允许专用网络通信否则客户端会一直超时。5. 实操心得从零跑通后我还建议你做这几件事5.1 建立自己的启动脚本每次开机手动启动服务端和激活虚拟环境太麻烦了。我习惯把常用命令写成一个批处理脚本例如echo off cd /d D:\CARLA_0.9.15 start CarlaUE4.exe -quality-levelLow cd /d D:\CARLA_0.9.15\PythonAPI\examples call D:\carla_env\Scripts\activate.bat python manual_control.py第一次跑通后把脚本保存为run_carla.bat以后一键启动不用再记命令。5.2 修改配置时先备份跑通默认场景后你大概率会去调地图、调天气、调车辆参数。0.9.15 里这些都可以在 Python 端动态控制没太大风险。但如果去改CarlaUE4目录下的DefaultEngine.ini或Config下的配置一定记得先备份。我遇到过把分辨率参数改错导致启动不了的情况老老实实还原配置才恢复。5.3 用官方脚本学习结构PythonAPI\examples里的脚本是很好的学习材料。manual_control.py有完整的键盘控制逻辑、传感器挂载、渲染流程代码量不算小但结构清晰。我的建议是先跑起来再逐行去读把车辆控制、传感器数据结构、世界更新这些都弄明白后面写自己的脚本会顺手很多。5.4 结合其他仿真工具对比学习CARLA 不是唯一的选择但不是本文的重点。我想说的是能在一开始就把一套环境跑通后面接触其他仿真器时很多概念是相通的比如传感器外参标定、坐标变换、地面真值提取这些都是通用的。所以认真把 CARLA 环境配好是挺值的一件事。关于 0.9.15 的安装就先说到这。这个版本整体稳定度比之前高了不少但小坑还是有如果你在安装过程中遇到上面没说到的报错欢迎留言讨论。下一期我会写 CARLA 的地图和天气系统把 0.9.15 的地图资源和动态场景怎么用讲透。
返回列表