python可以仿真车联网吗

Python021

python可以仿真车联网吗,第1张

python可以仿真车联网。

1、控制手机端APP,实现T业务场景的模拟。

2、车内网络仿真,封装接口控制第三方硬设仿真车内网络。

3、电源控制,程控电源,USB程控继电器,关键线路电信号模拟。

4、现网服务器。

5、旁观者(转发服务器,上位机),监测APP,DUT,TSPServer的数据往来,提供给上层脚本判断依据。

目前车联网和车路协同 (V2V, V2I, V2P... 统称 V2X) 是自动驾驶和智能交通领域研究的核心问题之一。简单来说,V2X 就是为车辆提供了上帝视角,可以获取更大范围、更准确的信息,从而优化驾驶决策。

在各种智能交通场景中,platooning (车队编排) 是一个很热门的话题。借助 V2X, platooning 可以减小车辆之间的安全距离。较小的安全距离可以增加道路的吞吐量,对于在高速公路上行驶的卡车编队,还可以减小风阻,降低能耗。

对于一般的研究机构,由于各方面的限制,很难在实车、实路上测试智能交通算法的性能。在这种情况下,仿真测试可以在一定程度上验证算法的有效性。

V2X 仿真中涉及到两方面:交通场景和网络通讯。

SUMO 可以实现交通场景的仿真,网络通讯方面的仿真软件有 OMNeT++ , NS3 等.

Veins (vehicles in network simulation) = SUMO + OMNeT++

从名字就可以看出来, Veins 是针对车联网的仿真软件。

Plexe (platooning extension for veins) = Plexe-SUMO + Plexe-Veins

Plexe 是在 Veins 中加入了 platooning 的元素。

在做 V2X 仿真时,如果对网络通讯方面的真实度要求不高,不需要模拟实际联网中的延迟、丢包等情况,可以只用 Plexe-SUMO,这样程序编写要简单很多。

Plexe-SUMO 是在 SUMO 基础上加入了 platooning 相关的元素,更方便 platooning 场景的搭建。另外,Plexe-SUMO 提供了 Python API ,可以在 python 中以 module 的方式调用,程序书写更简单。

本文首先介绍了 Plexe-SUMO python API 的安装方法,然后分析 Plexe-SUMO 官方给的 demo 程序 ,并在此基础上尝试构造我们自己的仿真场景。官方 demo 包括

本文重点分析 brakedemo.py 和 joindemo.py 两个程序。

在 platoon 场景中,车辆的速度控制一般采用 CACC (cooperative adaptive cruise control),这里的 cooperative 就意味着车辆之间可以协作,共享信息。在 brakedemo.py 程序中,platoon 实现协同刹车,即使跟车距离比较短,也不会发生碰撞。

程序及注释如下:

该程序实现了单个车辆从中部加入 platoon 的过程

程序及注释如下:

以上 demo 涵盖了很多基本场景模块,如构造编队、队列分割、添加新 leader、换道、刹车等。基于这些模块,我们可以构造不同的仿真场景,测试自己的车联网和车路协同策略。

这里我们考虑一个 platoon 通过交通路口的场景。交通灯可以向一定范围内的车辆发送信号,信号中包含当前交通灯状态以及剩余时间等信息,platoon leader 基于这些信息作出决策,platoon 中哪些车辆可以通过,哪些车辆需要提前刹车避免闯红灯。

为了实现上述 V2X 场景,可以在 brakedemo.py 基础上做简单修改。需要注意的是,这里的 sumo 网络和配置文件不再是之前的 freeway,而是需要自己设计,加入交通灯等元素。

在车辆颜色方面,为了区分 leader 和 follower,我对 utils 中的车辆颜色做了一些修改,不再使用 random,而是将 leader 设定为红色, follower 设定为黄色。

platoon leader 在进入交通灯 100m 范围内就可以获得交通灯信息,知道当前状态和剩余时间,然后进行后续的 platoon split 操作,分裂成两个 platoon。前部的 platoon 会正常行驶通过路口,后部的 platoon 在新的 leader 带领下刹车,停在路口处,等待下个绿灯通行。

程序及注释如下:

嵌套。

Isight是最优秀的综合性CAE软件之一,它通过一种搭积木的方式快速耦合各种仿真软件,将设计流程、优化算法、近似模型组织到一个统一的框架中,自动运行仿真软件,完成“分析—优化—模型修正—再分析再优化”整个流程。