4、Carla与ROS2联合仿真系统搭建:Carla 0.9.14 模拟器安装与启动
好,我们正式开始搭建环境。
这一章,咱们先把Carla模拟器本身跑起来。你想想看,后面所有的联合仿真、传感器数据、控制算法,都得依赖这个底层平台。如果Carla没装对,后面全是白搭。
我个人习惯,先把基础环境搞干净,再动手。别急着敲命令,先看看你的硬件够不够格。
4.1 硬件与系统要求
Carla 0.9.14 对硬件有一定要求。我在项目里遇到过,有人拿个集成显卡的笔记本就想跑,结果卡成PPT,根本没法用。
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| GPU | NVIDIA GTX 1060 (6GB) | NVIDIA RTX 2070 或更高 |
| CPU | Intel i5 四代 / AMD Ryzen 3 | Intel i7 八代 / AMD Ryzen 5 |
| 内存 | 16 GB | 32 GB |
| 硬盘 | 50 GB 空闲 | SSD 100 GB |
| 操作系统 | Ubuntu 20.04 | Ubuntu 20.04 / 22.04 |
⚠️ 注意: 如果你用的是Ubuntu 22.04,需要额外处理一些依赖。我建议新手直接上20.04,省心很多。
4.2 下载Carla 0.9.14 预编译包
官方提供了两种方式:源码编译和预编译包。我个人强烈推荐用预编译包。
为什么?源码编译一次,少说要等半小时到一小时,中间还可能报错。预编译包解压即用,省下的时间多跑几个场景不香吗?
下载命令很简单:
# 进入你的工作目录
cd ~/workspace
# 下载 Carla 0.9.14 预编译包
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.14.tar.gz
# 解压
mkdir carla_0.9.14
tar -xzvf CARLA_0.9.14.tar.gz -C carla_0.9.14
💡 小技巧: 下载速度慢的话,可以用国内镜像源。我曾经在GitHub上找过第三方镜像,速度能快3-4倍。
4.3 安装依赖与Python环境
Carla依赖一些系统库和Python包。嗯,这里要注意,Python版本最好用3.8,太高或太低都可能出问题。
# 安装系统依赖
sudo apt-get update
sudo apt-get install -y libomp5 libpng16-16 libtiff5 libjpeg8
# 安装Python依赖
pip3 install --user pygame numpy
# 安装Carla Python API
cd ~/workspace/carla_0.9.14/PythonAPI/carla
pip3 install -e .
安装完成后,验证一下:
python3 -c "import carla; print(carla.__version__)"
如果输出了 0.9.14,说明Python API装好了。
🔑 关键点: 每次启动Carla前,记得把PythonAPI路径加到环境变量里,不然import会报错。
export PYTHONPATH=$PYTHONPATH:~/workspace/carla_0.9.14/PythonAPI/carla
4.4 启动Carla模拟器
终于到了启动环节。说实话,我第一次启动Carla时还挺激动的,结果发现界面就是个黑窗口加命令行输出。
cd ~/workspace/carla_0.9.14
./CarlaUE4.sh
启动后,你会看到类似这样的输出:
LogCarla: Display: Carla server is running!
LogCarla: Display: Listening on port 2000
这说明Carla服务器已经跑起来了,默认监听2000端口。
如果你想调整画质或窗口模式,可以加参数:
# 窗口模式运行
./CarlaUE4.sh -windowed
# 低画质模式(适合配置低的机器)
./CarlaUE4.sh -quality-level=Low
# 指定分辨率
./CarlaUE4.sh -ResX=800 -ResY=600
⚠️ 注意: 启动后不要关闭终端窗口。一旦关闭,Carla进程就结束了。我建议用
screen 或 tmux 来管理后台进程。
4.5 验证安装是否成功
启动Carla后,我们写个简单的Python脚本来验证一下。
import carla
import random
# 连接Carla服务器
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
# 获取世界对象
world = client.get_world()
# 获取所有蓝图
blueprint_library = world.get_blueprint_library()
# 生成一辆车
vehicle_bp = blueprint_library.filter('model3')[0]
spawn_point = random.choice(world.get_map().get_spawn_points())
vehicle = world.spawn_actor(vehicle_bp, spawn_point)
print(f"车辆已生成: {vehicle.type_id}")
print("Carla 0.9.14 安装成功!")
运行这个脚本,如果看到车辆生成成功的消息,恭喜你,Carla已经可以正常工作了。
💡 小技巧: 如果连接失败,先检查Carla服务器是否在运行。可以用
netstat -tulpn | grep 2000 查看端口是否被占用。
4.6 常见问题与避坑指南
安装过程中,我遇到过不少坑。这里列几个最常见的:
- 启动后黑屏:多半是显卡驱动问题。检查一下NVIDIA驱动版本,建议用470或更高版本。
- Python API报错:路径没加对。我曾经折腾了半小时,才发现是PYTHONPATH写错了。
- 端口被占用:如果2000端口被其他程序占用,可以用
./CarlaUE4.sh -carla-rpc-port=2001指定其他端口。 - 内存不足:Carla启动时占用内存较大,建议关闭其他应用。如果还是不行,加个swap分区。
嗯,基本上到这里,Carla 0.9.14 的安装和启动就完成了。下一章,我们会把ROS2和Carla连接起来,实现真正的联合仿真。
记住,环境搭建是基础中的基础。别着急,慢慢来,每一步都验证通过再往下走。