4、启动CARLA:命令行启动、Python脚本启动、配置图形化界面、常见启动问题排查
好,到了真正让CARLA跑起来的时候了。
说实话,我第一次启动CARLA时也踩了不少坑。明明装好了,双击却没反应,或者报一堆看不懂的错。后来才发现,启动方式其实有好几种,每种适用场景不同。今天我把它们捋清楚,你照着做就行。
4.1 命令行启动——最基础的方式
我个人习惯用命令行启动CARLA。为啥?因为能看到实时日志,出问题能第一时间定位。
打开终端(Windows用PowerShell或CMD,Linux用bash),进入CARLA的根目录:
# Linux/Mac
cd ~/CARLA_0.9.15
# Windows
cd C:\CARLA_0.9.15
然后直接运行:
# Linux
./CarlaUE4.sh
# Windows
CarlaUE4.exe
嗯,就这么简单。你会看到一个3D窗口弹出来,里面是CARLA的默认地图Town01。
-opengl 参数强制用OpenGL渲染。
常用的启动参数我整理了一下:
| 参数 | 作用 | 示例 |
|---|---|---|
-quality-level=Low |
低画质模式,适合配置低的机器 | ./CarlaUE4.sh -quality-level=Low |
-RenderOffScreen |
无窗口模式,只在后台渲染 | ./CarlaUE4.sh -RenderOffScreen |
-carla-rpc-port=2000 |
指定RPC端口,默认是2000 | ./CarlaUE4.sh -carla-rpc-port=2000 |
-fps=10 |
限制帧率,节省资源 | ./CarlaUE4.sh -fps=10 |
-RenderOffScreen。我曾经忘了加,结果程序一直报错说找不到显示设备。
4.2 Python脚本启动——自动化必备
命令行启动适合手动测试。但做仿真时,你肯定希望用脚本一键搞定。CARLA提供了Python API,可以让你在代码里控制启动流程。
先装好Python客户端库:
pip install carla
然后写个启动脚本:
import carla
import time
# 连接CARLA服务端
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
# 加载地图
world = client.load_world('Town03')
# 设置天气
weather = carla.WeatherParameters(
cloudiness=30.0,
precipitation=0.0,
sun_altitude_angle=70.0
)
world.set_weather(weather)
print(f"地图加载完成: {world.get_map().name}")
print("CARLA已启动,可以开始仿真了")
运行前,你得先确保CARLA服务端已经跑起来了。说白了,就是先执行 CarlaUE4.sh 或 CarlaUE4.exe,然后再跑这个Python脚本。
我一般在项目里写个 start_carla.py,里面封装好启动逻辑。比如自动检测服务端是否在运行,不在的话就自动启动:
import subprocess
import carla
import time
def start_carla():
try:
client = carla.Client('localhost', 2000)
client.set_timeout(2.0)
client.ping()
print("CARLA服务端已在运行")
except:
print("启动CARLA服务端...")
# Linux
subprocess.Popen(['./CarlaUE4.sh', '-RenderOffScreen'])
# Windows 用下面这行
# subprocess.Popen(['CarlaUE4.exe', '-RenderOffScreen'])
time.sleep(5) # 等它启动
if __name__ == '__main__':
start_carla()
4.3 配置图形化界面——调参数更方便
CARLA的图形界面其实挺强大的。你可以在设置里调整渲染质量、分辨率、是否显示FPS等。
启动后,按 Esc 键打开设置菜单。里面有几个关键选项:
- Graphics Quality:从Low到Epic,我建议开发时用Low,跑正式仿真再用High
- Resolution:分辨率调低点能省不少显存
- VSync:垂直同步,开了能防止画面撕裂,但会增加延迟
如果你想在代码里控制这些设置,可以用Python:
settings = world.get_settings()
settings.synchronous_mode = True # 同步模式
settings.fixed_delta_seconds = 0.05 # 固定步长20Hz
world.apply_settings(settings)
4.4 常见启动问题排查
启动CARLA时,你可能会遇到各种问题。我把最常见的几个列出来,你直接对照排查。
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 窗口一闪就关闭 | 显卡驱动不兼容或缺少依赖 | 加 -opengl 参数启动;更新显卡驱动 |
| Python连接超时 | 服务端没启动或端口被占用 | 检查服务端是否运行;换端口 -carla-rpc-port=2001 |
| 地图加载失败 | 地图文件损坏或路径不对 | 重新安装CARLA;用 client.get_available_maps() 查看可用地图 |
| 帧率极低 | 显卡性能不足或画质太高 | 降低画质 -quality-level=Low;限制帧率 -fps=20 |
报错 libcarla.so 找不到 |
环境变量没设置 | 把CARLA的 PythonAPI/carla/dist/ 路径加到 PYTHONPATH |
还有一个常见问题:端口冲突。如果你同时跑多个CARLA实例,记得每个实例用不同的端口:
# 实例1
./CarlaUE4.sh -carla-rpc-port=2000
# 实例2
./CarlaUE4.sh -carla-rpc-port=2001
Python连接时也要对应:
client1 = carla.Client('localhost', 2000)
client2 = carla.Client('localhost', 2001)
知识体系总览
下面这张图帮你理清启动CARLA的完整流程:
启动CARLA其实就这几步。选好方式,配好参数,跑起来,有问题就查表。熟练之后,整个过程也就十几秒的事。
好了,去试试吧。让CARLA跑起来,你就能看到那个熟悉的小镇了。
可可精品资料库