LimSim, SUMO, CARLA Co-Simulation
LimSim, SUMO, CARLA 协同仿真¶
CARLA 是一款开源的自动驾驶仿真器,具有包括感知、定位等在内的多个功能,可以用来帮助训练自动驾驶的各个模块。CARLA 官方提供的 SUMO co-simulation 功能使得用户可以利用 SUMO 管理仿真的背景交通流,也使得 LimSim, SUMO, CARLA 的协同仿真成为可能。
进行协同仿真主要利用 SUMO 的平行仿真(Parallel simulation) 功能,开启这个功能后,主程序的可以作为 Server 仿真,而子程序可以作为 Client 接受数据。因此我们可以将 LimSim 作为主程序运行,将 CARLA 的 co-simulation 作为子程序运行。
步骤 0:安装 CARLA¶
⚠️ 所有的指令都基于 Linux,Windows 支持未经测试和保证。
首先,您需要通过包安装来安装 CARLA,推荐使用版本为 0.9.12+ 的 Carla。请参考以下链接:
然后,请确保已经配置了 CARLA 和 SUMO 的联合仿真。请参考以下链接:
现在,您应该在 LimSim
文件夹旁边有一个名为 Carla
的文件夹,Carla 文件夹的结构应如下所示:
├── CarlaUE4
│ ├── AssetRegistry.bin
│ ├── Binaries
│ ├── CarlaUE4.uproject
│ ├── Config
│ ├── Content
│ └── Plugins
├── CarlaUE4.sh
├── Co-Simulation
│ ├── PTV-Vissim
│ └── Sumo
├── PythonAPI
│ ├── carla
│ ├── examples
│ ├── python_api.md
│ └── util
├── README
├── ......
├── ......
└── VERSION
步骤 1:运行 CARLA 联合仿真¶
您应该打开两个终端。
现在您应该看到 CARLA 图形界面。然后切换到另一个终端:
现在 Carla 中的地图已成功切换为 Town05
地图。
# 终端 2
cd ../.. # 回到 carla 根目录
cd Co-Simulation/Sumo
python3 run_synchronization.py examples/Town05.sumocfg --sumo-host 127.0.0.1 --sumo-port 8813 --client-order 2
终端应持续输出 Could not connect to TraCI server at 127.0.0.1:8813 [Errno 111] Connection refused Retrying in 1 seconds
,不要担心,这意味着您的设置都已完成。现在继续下一步!
步骤 2:运行 LimSim 联合仿真¶
在 ModelExample.py
的 main
函数中修改代码:
if __name__ == "__main__":
net_file, rou_file = file_paths['CarlaTown05']
run_model(net_file, rou_file, ego_veh_id="4", carla_cosim=True)
然后打开第三个终端:
然后您应该看到所有 LimSim/Sumo/CARLA 图形界面开始联合仿真。
您可以使用 w
、a
、s
、d
、q
、e
来控制 CARLA 中的视角移动。
步骤 3:(可选)在 CARLA 中更改鸟瞰视图¶
如果您希望 CARLA 中的视角跟随自车移动,需要稍微修改 Co-Simulation/Sumo
文件夹中的 run_synchronization.py
文件。
只需使用此文件链接 替换您文件夹中的原始 run_synchronization.py
文件,并确保 line 222
中的 ego_id = '4'
是自车的 ID。
尽情享受吧!