当前位置:   article > 正文

Carla和sumo联合仿真(ubuntu)_carla多个软件联合

carla多个软件联合

 SUMO(simulation of urban mobility)是一款开源、微观、多模式状态的交通仿真软件。该仿真软件主要通过**路网文件(.net.xml)、路由文件(.rou.xml)、仿真运行文件(*.sumocfg)**这三个主要文件构成。这三个文件均为“xml”语言编写.

联合仿真参考Carla官方文档,主要分为以下三个部分:

第一步: Requisites(需求):Install SUMO

 首先, Carla官方建议从源码(Building from source)构建而不是简单安装,因为(Building from source)有新功能和修复可以改进协同仿真。 

本文建议大家可以简单安装:

 您可以通过 apt-get 直接安装 SUMO:

sudo add-apt-repository ppa:sumo/stable
sudo apt-get update
sudo apt-get install sumo sumo-tools sumo-doc

之后,安装 traci python 包:

pip install traci

 完成后,设置 SUMO 环境变量。

echo "export SUMO_HOME=/usr/share/sumo" >> ~/.bashrc && source ~/.bashrc

 具体安装可以参考sumo官方文档:

 Installing - SUMO Documentation

 SUMO 安装好运行联合仿真。

我们使用Carla在 Co-Simulation/Sumo/examples for Town01、Town04 和 Town05 中有一些示例。 这些 .sumocfg 文件描述了模拟的配置(例如,网络、路线、车辆类型...)。

使用其中之一来测试协同仿真。 该脚本具有以下详述的不同选项。 暂时,让我们为 Town04 运行一个简单的示例。

使用 Town04 运行 CARLA 模拟:

  1. cd ~/carla
  2. ./CarlaUE4.sh
  3. cd PythonAPI/util
  4. python3 config.py --map Town04

 然后,运行 SUMO 联合仿真示例:

  1. cd ~/carla/Co-Simulation/Sumo
  2. python3 run_synchronization.py examples/Town04.sumocfg --sumo-gui

 下面就是成功运行截图

第二步:运行自定义联合仿真(Run a custom co-simulation)

2.1 Create CARLA vtypes 

 Carla自带的示例不能满足广大开发者的需求,对于初学者,可以学习示例代码,作为入门的提高。接下来,我们介绍用户如何来自定义自己的开发环境:

 通过使用 Co-Simulation/Sumo/util/create_sumo_vtypes.py 脚本--基于 carla 蓝图创建 sumo vtype 的脚本。

编写路由文件(*.rou.xml):第一步需要定义车辆类型(vType)。

用户可以基于 CARLA 蓝图库创建相当于 CARLA 蓝图的 sumo vtypes。( 为生成的 carla 车辆转换成 sumo vtype 规范。)

 

 负载规格定义:此脚本使用存储在 data/vtypes.json 中的信息来创建 SUMO vtypes。 这些可以通过编辑所述文件来修改。

 

 警告

必须运行 CARLA 模拟才能执行脚本。

2.2  Create the SUMO net

创建与 CARLA 同步的 SUMO 网络的推荐方法是使用脚本 Co-Simulation/Sumo/util/netconvert_carla.py。
这将利用 SUMO 提供的 netconvert 工具。 为了运行脚本,需要一些参数:

  • --xodr_file — OpenDRIVE file .xodr.(将Carla里的自带地图作为输入)
  • --output' (default:net.net.xml) — output file .net.xml.(将Carla里的自带地图转换成sumo里的地图格式)
  • --guess-tls (default:false) — SUMO 只能为道路中的特定车道设置红绿灯,但 CARLA 不能。 如果设置为 True,SUMO 将不会区分特定车道的红绿灯,这些将与 CARLA 同步。

基于 opendrive 文件生成.net.xml的脚本。 在内部,它使用 netconvert 生成.net.xml并插入从 opendrive 检索到的交通灯地标。(路网文件的生成可以通过多种途径,例如netedt、netconvert、netgenerate、openstreetmap等方式)

脚本的输出将是一个可以使用 NETEDIT 编辑的 .net.xml。 使用它来编辑路线、添加需求,并最终准备一个可以保存为 .sumocfg 的模拟。在此过程中,提供的示例可能会有所帮助。 看看 Co-Simulation/Sumo/examples。 对于每个 example.sumocfg,都有几个同名的相关文件。 所有这些都包含一个联合仿真示例。

2.3 Run the synchronization

一旦模拟准备好并保存为 .sumocfg,就可以运行了。 有一些可选参数可以更改协同仿真的设置。

  • --sumo_cfg_file — SUMO 配置文件。
  • --carla-host (default: 127.0.0.1) — carla 主机服务器的 IP
  • --carla-port (default: 2000) — 监听的 TCP 端口
  • --sumo-host (默认: 127.0.0.1) — SUMO 主机服务器的 IP。
  • --sumo-port (默认: 8813) — 监听的 TCP 端口。
  • --sumo-gui — 打开一个窗口以可视化 SUMO 的 gui 版本。
  • --step-length (default: 0.05s) - 为模拟时间步设置固定的增量秒。
  • --sync-vehicle-lights(默认值:False)— 同步车灯。
  • --sync-vehicle-color (default: False) — 同步车辆颜色。
  • --sync-vehicle-all (default: False) — 同步所有车辆属性。
  • --tls-manager (default: none) — 选择哪个模拟器应该管理交通信号灯。另一个将相应地更新这些。选项是 carla、sumo 和 none。如果没有选择,交通灯将不会同步。每辆车只会遵守生成它的模拟器中的红绿灯。

与 SUMO 的联合仿真提供了一个附加功能。 车辆可以通过 SUMO 在 CARLA 中生成,并由后者管理,就像交通经理所做的那样。

脚本 spawn_npc_sumo.py 几乎等同于已知的 generate_traffic.py。 此脚本会根据 CARLA 中的活动城镇在临时文件夹中自动生成一个 SUMO 网络。 该脚本将创建随机路线并让车辆四处漫游。

当脚本运行同步模拟并在其中生成车辆时,参数与 run_synchronization.py 和 generate_traffic.py 中出现的参数相同。

详细介绍具体可以参考Carla官方文档:

https://carla.readthedocs.io/en/latest/adv_sumo/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/91384
推荐阅读
相关标签
  

闽ICP备14008679号