ARTICLE DETAIL

资讯详情

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

Windows 10下CARLA 0.9.15安装全攻略:从下载到跑通Python脚本

Windows 10下CARLA 0.9.15安装全攻略:从下载到跑通Python脚本 如果你也是第一次在 Windows 10 上安装 Carla 0.9.15我猜你很大概率会在第一步就被劝退几十 GB 的安装包到底下哪一个为什么双击 CarlaUE4.exe 之后一动不动为什么import carla一直报错这些都是我踩过的坑。CARLA 0.9.15 是自动驾驶仿真里很常用的一个版本官方文档其实写得不够友好很多细节要自己试。这篇文章我不讲理论直接按我从下载到跑通第一个 Python 脚本的顺序把每个坑、每段命令、每个判断标准都写清楚给同样在 Windows 10 上折腾的人一份能照着抄的参考答案。Windows 10 的 LTSC、22H2、1909只要还是 64 位系统CARLA 0.9.15 都能正常用。真正影响它的是显卡、驱动和安装路径和系统版本代号关系不大。下面我按实际操作的顺序来拆。1. 安装前的三份功课系统、显卡、磁盘路径1.1 官方最低要求与你真实需要的配置CARLA 0.9.15 不是一个普通的小软件它本质上是一个基于 Unreal Engine 改出来的三维仿真模拟器。官方文档给出的最低配置只够“能启动”但如果你还想跑传感器、多辆车、甚至强化学习配置需求会直接翻倍。项目官方建议我的实际建议系统64 位 Windows 1064 位 Windows 10 或 Windows 11 都行CPU六核以上八核以上更舒服四核能跑但加载地图时会很吃力内存8 GB16 GB 起步低于 16 GB 开低画质可以但是大场景加载容易卡死显卡NVIDIA GPU4 GB 显存至少 4 GB 显存6 GB 更稳N 卡优先磁盘预留 30 GB 左右建议留 40 GB 以上因为还要装 Python 环境和额外地图包DirectX支持 DirectX 11 及以上能支持 DirectX 12 更好新驱动一般都没问题真实体验下来最决定成败的其实是显卡驱动。NVIDIA 用户建议直接去官网下载最新的 Game Ready 驱动不要在设备管理器里点“在线更新”那个经常不是最新版。A 卡用户也有能跑通的案例但遇到 Shader 编译问题概率更高新手还是优先用 N 卡。1.2 Windows 10 版本代号没有想象中重要有些人在网上非要把系统升级到某个特定版本才敢装其实没必要。CARLA 0.9.15 在 Windows 10 的 1909、21H2、22H2 上我都见过有人跑通。LTSC 2021 也可以只要系统是 64 位并能安装最新显卡驱动就没问题。我在一台老旧的 Windows 10 1909 台式机上装过唯一需要多做的事是手动装了 VC 运行库和 DirectX 运行库。这两个运行库很多精简版系统会缺失和 CARLA 版本无关但会导致双击 CarlaUE4.exe 后毫无反应。1.3 安装路径的硬性要求这一步看着不起眼其实是新手最容易忽略的连环坑。CARLA 解压后内部目录层级很深有可能出现 Windows 的长路径问题。如果你把它解压到C:\Program Files\Carla带空格且受 UAC 保护D:\自动驾驶\carla 0.9.15带中文和空格后续启动模拟器、pip 安装 Python API都可能因为权限或路径解析失败而莫名其妙报错。我最推荐的做法是D:\carla或者C:\carla全英文、无空格、无中文。路径短还有一个隐藏好处如果你下一步用 Python 脚本读取场景里的资源文件路径越短越不容易触发编码问题。另外如果你用的是 Windows 自带的 Defender建议先把 CARLA 的解压目录加入“排除项”。不要直接关掉杀毒软件但可以把整个D:\carla目录加进排除列表。CARLA 的 Unreal 引擎有很多动态生成的缓存文件可能会被实时防护反复扫描影响启动速度极端情况下还会把某些.dll文件当作威胁隔离掉。提示加入 Defender 排除项的方法是Windows 安全中心 → 病毒和威胁防护 → 管理设置 → 排除项 → 添加文件夹。这不是必须步骤但能省掉很多干扰。2. 下载环节大文件耐住性子版本认准 Release Assets2.1 文件这么多到底下哪一个CARLA 0.9.15 在 GitHub Releases 页面提供的是编译好的发行包不是让你从源代码自己编译。这里很多人会搞混尤其容易把页面顶部的Source code (zip)当成安装包下载。那个只是源码解压出来没有任何可执行的 CarlaUE4.exe。你需要在 Releases 里找到0.9.15对应的 Assets 列表认准 Windows 平台的文件。不同版本的文件名后缀略有差异我下面说的是 0.9.15 这一代比较常见的形态CARLA_0.9.15.zip或类似命名的 Windows 包AdditionalMaps_0.9.15.zip或类似命名的额外地图包一些源码包或 Linux 包第一次安装只需要下载主包。如果下载主包后发现缺少一些大地图或者官方示例脚本里引用某个 Town 时提示找不到地图再补额外地图包。不要一开始就把所有地图都下下来那会多占用不少磁盘空间而且新手通常只需要 Town01 到 Town07 这些默认地图。2.2 下载后的哈希校验别跳过这种几十 GB 的大文件在网络不稳的时候很容易下载损坏。很多时候你双击启动没反应不是软件问题而是压缩包本身就坏了一部分。Windows 10 自带的 PowerShell 可以直接算 SHA256Get-FileHash C:\Downloads\CARLA_0.9.15.zip -Algorithm SHA256算出来的值要跟 GitHub Releases 页面提供的校验值对比。如果页面没给至少用 7-Zip 打开压缩包后执行一次“测试”功能7z t CARLA_0.9.15.zip这一步能发现压缩包是否完整。别嫌麻烦我见到的“启动即闪退”案例里至少有三分之一是压缩包损坏造成的。2.3 下载速度不理想时保证文件完整大于一切CARLA 的包很大下载时间可能长达几个小时。下载期间尽量别用浏览器默认的单线程下载遇到断点就从头再来很折磨人。下载工具可以用支持断点续传的但无论用什么工具下载完一定要回到上面那步做校验。网上也有人做了懒人版的网盘分流但我的建议是谨慎使用。来源不明的包可能文件缺失、版本混搭甚至被塞了额外东西。CARLA 这种仿真软件本身就需要强一致性的目录结构缺一个.dll或.uasset都可能让整个环境跑不起来排查成本比重新下载还高。3. 解压与首次启动地狱难度全在这一步3.1 解压工具先换掉Windows 自带解压会掉链子我强烈建议用 7-Zip 解压不要用 Windows 自带的右键“全部解压缩”。原因有三个CARLA 内部层级很深Windows 自带解压器遇到长路径会直接报错。.zip和.tar.gz混合格式下7-Zip 的容错能力更好。7-Zip 解压时可以明显看到进度也方便中途发现文件损坏。假设你的安装包在C:\Downloads\CARLA_0.9.15.zip目标目录是D:\carla可以这样操作7z x C:\Downloads\CARLA_0.9.15.zip -oD:\carla解压完成后检查一下目录结构。正常情况下你会看到类似这样的目录D:\carla\CarlaUE4.exe D:\carla\PythonAPI D:\carla\Engine D:\carla\...如果解压出来后根本没有CarlaUE4.exe那说明你有可能下成了源码包或者解压等级不对。3.2 首次启动前建议用这组参数别直接双击CARLA 0.9.15 第一次启动会编译大量 Shader默认画质越高编译越慢也越容易出现假死状态。我建议第一次运行先手动指定低画质和窗口模式。在 CARLA 目录下新建一个空文件命名为run_carla.bat内容如下echo off cd /d D:\carla CarlaUE4.exe -quality-levelLow -prefernvidia -windowed -ResX1280 -ResY720解释一下这几个参数-quality-levelLow强制用低画质启动降低 Shader 编译压力。-prefernvidia如果笔记本有双显卡这个参数会强制优先使用 NVIDIA 独显避免模拟器跑到核显上导致黑屏。-windowed窗口模式运行方便观察日志和调试。-ResX1280 -ResY720用较低分辨率渲染减轻显存压力。第一次启动时窗口可能很久都没有画面这不是卡死而是在编译 Shader。根据机器性能不同可能需要 5 到 15 分钟。期间打开任务管理器如果CarlaUE4.exe的 CPU 和磁盘占用很高说明它在工作。3.3 如何判断服务真的起来了有人看到窗口出现就觉得成功但 CARLA 的模拟器服务真正就绪需要等它把场景加载完。你可以用这三个方法判断第一看 CARLA 启动窗口的标题或状态栏通常会出现和端口、地图加载相关的日志信息。第二在命令行里执行netstat -ano | findstr :2000如果看到状态为LISTENING的端口 2000说明 RPC 服务已经起来了。第三直接运行官方 Python 示例脚本能连接上就说明一切正常。注意netstat显示 2000 端口监听只是一个初步信号有时候客户端连接后还是会因为场景没加载完而超时。最稳妥的判断标准是你运行 Python 脚本能正常拿到world对象。3.4 黑屏和闪退排查表这一节我把 Windows 10 上最常见的几个“启动失败”现象列出来方便你对照。现象可能原因建议处理双击后没有任何窗口缺少 VC 运行库或 DirectX 运行库安装vc_redist.x64.exe和 DirectX 运行库窗口黑屏但进程还在显卡驱动没更新或用了核显更新驱动换-prefernvidia参数卡在 Building Shader 很久第一次启动正在编译等待观察 CPU/磁盘占用启动后闪退压缩包损坏或运行库缺失先做压缩包测试再装运行库Defender 弹出威胁提示杀毒软件误隔离引擎文件在 Defender 中加入排除目录客户端连不上 2000 端口服务没起来或防火墙拦截先看端口监听再检查防火墙如果你的显卡较老显存只有 2GB那么我建议放弃大开场景先跑 Town01 这类简单地图。CARLA 0.9.15 的默认启动地图是 Town03如果不确定能不能扛住可以在启动参数里加上CarlaUE4.exe -quality-levelLow -prefernvidia -windowed -ResX1280 -ResY720 Town01注意地图名称不能随便填必须是 CARLA 内置的 Town 名称。加在启动参数末尾不一定所有版本都识别更稳妥的方法是启动后用 Python 调用client.load_world(Town01)。4. Python API 配置版本不对import 就白搭4.1 找到放在 PythonAPI/carla/dist 里的官方 wheelCARLA 的 Python API 并不是统一发布到 PyPI 上的不能用pip install carla随便装。正确做法是到解压出的目录里找D:\carla\PythonAPI\carla\dist这个目录下有一个.whl文件文件名会明确告诉你对应的 Python 版本。比如carla-0.9.15-cp37-cp37m-win_amd64.whl意思就是给 Python 3.7 的 64 位 Windows 用的。很多新手在这里卡住是因为自己本地装的是 Python 3.10 或 3.11然后直接pip install carla-0.9.15-cp37-cp37m-win_amd64.whl结果系统提示not a supported wheel on this platform。不是文件坏了而是 Python 版本不匹配。解决办法有两种第一种装一个和 whl 文件版本匹配的 Python。如果文件名是cp37就安装 Python 3.7 的 64 位版本。这是最省事、最推荐的方式。第二种自己去编译源码包让它适配你的 Python 版本。但对 Windows 新手来说我不建议这么折腾CARLA 本身的复杂度已经够高了没必要再引入一个编译环节。4.2 创建虚拟环境并安装 carla 包假设你已经安装了 Python 3.7 的 64 位版本并且勾选了“Add Python to PATH”那么打开 PowerShell 或 CMDpy -3.7 -m venv C:\carla_env C:\carla_env\Scripts\activate python -m pip install --upgrade pip pip install D:\carla\PythonAPI\carla\dist\carla-0.9.15-cp37-cp37m-win_amd64.whl安装完成后验证一下python -c import carla; print(carla.__version__)能打印出版本号Python API 就配置好了。除了carla本体官方示例脚本还需要一些依赖。最少要装pip install numpy pygamenumpy是绝大多数自动驾驶脚本都会用到的pygame是manual_control.py这类可视化控制脚本依赖的。如果你还要跑摄像头、激光雷达的可视化大概率还需要opencv-python和Pillow但我建议先装最基础的跑通再补。4.3 不要勾选“全局安装”环境隔离会救你我见过有人直接在系统 Python 里装了 CARLA结果后来为了做别的项目又把 Python 升级了CARLA 的包直接崩。Windows 上的 Python 环境本来就不像 Linux 那么干净强烈建议用虚拟环境。每次用 CARLA 前先激活环境C:\carla_env\Scripts\activate然后在这个环境下运行你的任何 Python 脚本。这样即使你系统里还有 Python 3.10、Anaconda、Miniconda也不会互相影响。5. 第一个客户端脚本跑通 manual_control 才算真正成功5.1 官方 example 是最好的验收脚本CARLA 自带很多 Python 示例其中一个叫manual_control.py在D:\carla\PythonAPI\examples\manual_control.py这是一个可以直接让你用键盘控制车辆的脚本非常适合拿来验收整套环境。先确保服务器已经启动并且 2000 端口处于监听状态。然后激活虚拟环境进入 examples 目录cd /d D:\carla\PythonAPI\examples C:\carla_env\Scripts\activate python manual_control.py --host 127.0.0.1 --port 2000如果正常你会看到一个三维窗口里面有一辆车可以用 W、A、S、D 控制油门、刹车、转向。能出现这个窗口说明服务器正常启动Python API 版本匹配客户端能连上 RPC 端口虚拟环境依赖都装好了如果你还想快速看到自动驾驶效果可以开 autopilotpython manual_control.py --host 127.0.0.1 --port 2000 --autopilot车辆会自动行驶你只需要观察画面和日志即可。5.2 客户端连不上的原因九成和下面四个有关问题原因解决Timeout connecting to localhost:2000服务还没完全就绪等日志出现监听信息再重试Connection refused服务端口没对上检查启动参数里是否有-carla-rpc-port版本不匹配错误客户端和服务端版本不一致卸载现在的 carla安装解压目录里的 whl防火墙弹窗误拦截Python 进程被拦在 Windows 防火墙中放行 python.exe这里我想特别提醒一个容易犯的错如果你不是通过cd D:\carla启动的 CarlaUE4.exe而是直接双击快捷方式那么工作目录可能不对导致引擎找不到部分资源。这也是我前面推荐用run_carla.bat的原因它强制cd /d D:\carla保证工作目录正确。5.3 版本一致性的坑比你想的更隐蔽CARLA 的服务器端和 Python 客户端之间是严格版本匹配的。如果你之前装过其他版本的 CARLA哪怕只是曾经 pip install 过一个别的 carla 包也可能导致client.get_server_version()和client.get_client_version()不一致。通常报错会很直接但有时候只会在运行某个 API 时悄悄失败比如创建车辆没有反应、传感器数据拿不到。遇到这种诡异问题第一步不是怀疑代码而是检查版本import carla client carla.Client(localhost, 2000) print(client.get_server_version()) print(client.get_client_version())两个版本不一致就用解压目录里对应的 whl 重新装pip uninstall carla -y pip install D:\carla\PythonAPI\carla\dist\carla-0.9.15-cp37-cp37m-win_amd64.whl6. 进阶省事方案启动脚本与低配置优化6.1 把常用命令做成一键启动 bat跑过一次之后每次都敲一堆参数太麻烦了。我在 Windows 10 桌面上放了两个 bat 文件一个启动模拟器一个启动客户端。run_carla.batecho off cd /d D:\carla CarlaUE4.exe -quality-levelLow -prefernvidia -windowed -ResX1280 -ResY720 -carla-rpc-port2000run_client.batecho off cd /d D:\carla\PythonAPI\examples call C:\carla_env\Scripts\activate python manual_control.py --host 127.0.0.1 --port 2000 --autopilot双击run_carla.bat启动服务等窗口稳定后再双击run_client.bat。两个 bat 都不要用管理员模式运行普通权限就够了。如果你需要自定义端口比如在同一台机器上跑两个 CARLA 服务器可以把前一个的端口改成 3000后一个改成 4000客户端脚本对应传--port 3000就行。客户端默认走 RPC 端口服务端必须通过-carla-rpc-port指定否则监听的是 2000。6.2 低配机器还能做一些什么取舍如果你的机器只有 8GB 内存或者 4GB 显存不用急着放弃。我实际测试下来下面这套组合可以显著提高成功率使用-quality-levelLow分辨率降低到1024x600启动后立刻调用client.load_world(Town01)Town01 是最轻量的地图之一关闭其他高占用软件尤其是浏览器多标签页不要同时开两个 CARLA 实例CARLA 的 Shader 编译主要集中在第一次启动之后会有一部分缓存。如果每次启动都很慢可以留意一下D:\carla\CarlaUE4\Saved目录这里面有缓存日志。把短时间不用的缓存清理掉但不要手动删整个目录否则下次启动又得重新编译。6.3 日志永远比猜疑靠谱很多“奇怪问题”最后都能在日志里找到答案。CARLA 的 Unreal 引擎日志文件在D:\carla\CarlaUE4\Saved\Logs\CarlaUE4.logPython 客户端的异常一般会直接打印在终端里但服务器端的错误往往只在这个日志文件里。遇到启动失败或者客户端连不上先打开日志文件看最后 100 行很多报错信息比任何网上攻略都准确。最后说一个我自己的土办法。我在这台 Windows 10 的桌面上放了两个 bat一个负责启动模拟器一个负责激活虚拟环境跑脚本。每次遇到连不上我第一反应不是重新下载文件而是先看CarlaUE4.log的最后 100 行再netstat看端口。80% 的问题都能在这两步里定位。CARLA 0.9.15 这个版本本身很稳定大多数失败都发生在环境不在软件本身。祝你在 Windows 10 上早日跑通。
返回列表