天天看点

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

作者:济达交通

上海济达交通科技有限公司是国产TESS NG微观交通软件研发商。2022年9月26日,上海济达交通科技有限公司正式发布了TESS NG的V2.1 Python二次开发接口版本。在支持 C++语言开发的基础上,进一步开放支持Python接口开发语言(推荐Python3.6版本)。并且统一了C++与Python二次开发的接口调用方式。

TESS NG的二次开发接口架构清晰完善,用户交互开发便捷,其通过用户编写代码与TESS NG交互来实现能力扩张与功能定制的。TESS NG二次开发版本面向用户的车辆及发车属性、信号控制优化、自动驾驶仿真、网联车队行为、智慧高速管控、参数标定与强化学习等高频场景应用需求,均开放了相应模块的二次开发功能。用户可以在官网www.jidatraffic.com下载试用最新二次开发版本(查看运行范例)。二次开发主要功能概况具体如下文[以下10个范例源代码文件均可在安装包中查看]:

1.二次开发整体架构介绍

TESS NG通过实现TessInterface及其三个子接口,将自身主要功能暴露给用户,用户启动TESS NG后可以通过tessngIFace()方法获取TESS NG的顶层接口,再通过顶层接口获取三个子接口,调用子接口方法。TESS NG加载插件后可以调用python实现的插件接口方法,用户可以在插件方法中通过TessInterface及其子接口控制仿真运行,及仿真过程中车辆驾驶行为、信号灯色、路径车辆分配等。二次开发的整体架构图如下:

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

二次开发的应用可以主要划分为:车辆发车及管控参数信息调整,驾驶模型行为参数调整、循环仿真如强化学习及参数标定等,本文将按照此内容具体说明二次开发的应用案例。

2.车辆及发车属性更改

在发车过程中,可以通过接口调整车辆的发车位置,发车类型,车辆颜色,车辆长宽尺寸等特征,实现任意断面任意车道的发车及车辆运行。

车辆可以在仿真系统中以指定颜色,指定外形尺寸等发车,以及发车后的驾驶行为等。用户可以基于二次开发接口实现三种类型的发车:即断面发车点集计发车、路段车道中任意位置发车、映射一段雷达轨迹后由仿真接管车辆运行。

基于此方式,用户可通过实时断面感知数据,实现的数字孪生映射场景,即通过断面或局部感知的数据,将断面数据推演至全域进行展示复现。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

3.信号控制优化

在信号控制优化模块中,TESS NG二次开发接口模块同时还可以进行各类感应控制方案的开发测试,包括绿灯延长,红灯早断,相位搭接等方案测试,设置绿灯延长时间,最大绿灯关键参数,其中各类感应控制和检测设施可以有效感知所有或某类车辆的通行特征,从而动态的控制信号灯的变化,如下所示范例即为公交信号控制优先的场景,公交车辆在进入区域后,有感应控制模块的信号控制方案会实现红灯的早断和绿灯的延长,保障公交系统的顺利运行。同时该模块还可以进行干线绿波等控制方式的仿真测试。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

在视频场景中,信号控制即通过检测器(数据采集点)的感知信息,实时实现单位绿灯延长和红灯早断。系统的具体实现流程图下所示。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

4.智能网联混驾场景

网联车辆仿真是目前二次开发应用高频的场景,随着自动驾驶网联环境发展下,车辆如何执行编队情况下的驾驶行为,实现快速的变道编队协作,以及编队车辆在网联自动环境与人工驾驶的高效协同驾驶,是目前自动驾驶应用的重要方向。其中示范的自动驾驶编队场景的应用如下:该范例场景中,CV时刻搜索外侧相邻车道上的CV编队或可形成编队的潜在CV对象,完成目标搜索后,CV将执行换道实现编队并入,并在CV完成编队后,其驾驶行为模型也将同步更新,期望速度提升,并采用更为激进的跟驰策略。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

智能网联车队的场景实现技术路线如下图。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

5.网联车辆汇入行为决策

在智能网联场景下,由于网联车辆能够准确获取到主线上下游车辆的具体位置信息及运行状态,如何利用这些信息对网联车的汇入决策进行有效指导,进而优化整个快速路合流区运行效率,是目前车路协同背景下交通管控的重要方向。其中示范的网联车辆汇入行为决策应用如下:基于TESS NG二次开发接口能够有效模拟在不同可接受间隙下网联车辆汇入行为差异及其对主线交通流的影响。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

场景实现的具体流程如下所示。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

6.各类事件的模拟

在精细化的车辆控制模型中,可以设置车辆占用1车道的轻微抛锚事故,或者车辆同时占用多车道的严重碰撞事故等,便于用户测试不同事故状态下的管理效果。事件可以在仿真前离线添加,也可以在仿真过程中动态添加。占用单车道的轻微事故模拟和占用多车道的重大事故模拟具体如下。

单车道事故

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

双车道事故

场景实现的流程图如下所示。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

7. 智能网联车队场景

目前,应对拥堵瓶颈问题缺乏高效且可行的管控方法,而车路协同及智能网联车辆技术在减少交通事故、缓解交通拥堵、提高道路及车辆利用率方面具有巨大潜能。在智能网联环境下,用户可以自由地设置网联车比例,网联车队类型,车辆数目等。网联车队行为算法通过车路协同的车队超视距感知,使网联车队提前变道,避免二次事故发生,下图即示意某个大货车网联车队在通过弯道时遇到前方事故,提前接收到RSU(Road Side Unit)预警信息而提前变道的效果。一般此类功能较多应用于定制化的场景展示。可以有效表征和评估网联车队等行为决策,对交通系统运行产生的影响。

系统实现业务场景流程如下。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

8.自动驾驶车辆驾驶行为

自动驾驶车辆(AV)自由换道算法由换道决策算法、换道路径规划算法和换道运动控制算法三部分组成。在自动驾驶仿真的测试环境中,可以通过设置不同感知范围内的车流信息、路网信息、通行环境等,综合判断换道行为的收益,进而控制车辆自身的驾驶行为决策,此时可以控制单个车辆的驾驶行为,也可以控制多个车辆,包括ACC车队的驾驶行为。可以控制的车辆驾驶行为包括跟驰行为,变道行为,让行行为等。

同时仿真运行时,可以显示车辆实时感知前方对象范围的探测角度,距离等。

视频中显示的即为车辆在不同感知范围,感知距离,通过路段,交叉口时,受周边车辆不同影响,开始执行不同的运行策略。

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

9.智慧高速管控决策仿真

智慧高速旨在实现对高速公路交通流运行的全路段感知、全过程管控以及全天候通行,从而使得路网运行更安全高效、公众出行更舒适便捷、交通管理更科学智能、道路经济更加绿色环保。实现管控策略方案优选需要对智慧高速管控决策进行仿真,包括事故后的可变限速与临时路肩开放。

在管控决策仿真模块中,TESS NG二次开发接口可以基于路段设置车道级的限行规则与限速规则。对于车道限行,车辆在进入限行区域后,会立即换道至临近车道;对于车道限速,车辆在进入限速区域后,会将速度降至最高限速以下。根据用户对管控时间、管控位置与管控方案的设置,可以实现高速公路的个性化管控仿真。仿真场景实现如下:

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

系统的管控实现逻辑具体如下所示:

国产微观交通仿真软件TESS NG V2.1 Python二次开发接口版本发布

10.重复自启动仿真

强化学习常用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。TESS NG提供快速自动循环仿真的方法,用户可通过自定义目标、条件、以及训练次数来控制TESS NG不断调整仿真参数使得结果不断向目标靠拢,以满足用户对于特定场景下的参数标定和强化学习等需求。同时在单次仿真结束后将保留本次仿真时所采用的仿真参数以及对应的结果,所有仿真数据将在自动循环结束后统一反馈至用户。系统重复仿真的效果如下。

上述案例的执行源代码均可在软件安装包中查看。后续济达交通团队将持续发布基于TESS NG的二次开发案例,丰富应用场景,并支持更多种二次开发语言,若在开发过程中有相关问题,也可以加入用户群与团队交流沟通。