SUMO二次开发 Traci自定义车辆类型

2023-10-16 04:20

本文主要是介绍SUMO二次开发 Traci自定义车辆类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SUMO二次开发 Traci自定义车辆类型

当我们在使用sumo做微观仿真时,基于文件形式的仿真可以在route文件中直接明了地指定车辆属性、类型和所使用的跟驰模型等。但是如果是基于python/java的二次开发中,大家会发现其中并没有直接提供这些修改参数的接口。本文中分享一种基于Traci接口自定义车类类型的一种方法。

假设Traci自定义车辆类型的需求是更换跟驰模式,sumo的默认跟驰模型为krauss模型,现需将仿真默认的模型换成IDM模型。基于route文件下的仿真,直接在route文件中增加一条车辆类型的定义[type1]即可,然后在route文件中设置车辆和交通流进行仿真:

<routes><vType id="type1" length="100" minGap="2" carFollowModel="IDM" tau="1.0"/>
</routes>

但是在traci二次开发情况下,车辆生成直接使用traci.vehicle.add()接口,不需要route文件,并且没有改变跟驰模型的traci接口。怎么才能实现上述需求呢?

这时候我们看看add()函数的参数列表:
在这里插入图片描述
里面有一个typeID='DEFAUTY_VEHTYPE’参数,是否感到跟route文件自定义车辆类型相似?在traci接口中调用add()函数,修改参数的默认值为route文件里自定义的车辆类型名称:

traci.vehicle.addFull(vehID, routeID, departLane="best", typeID='type1')

仿真对应的图像:
在这里插入图片描述
你会发现出现了类似火车一样的汽车,这就是type1定义的车辆类型!至此,利用traci接口实现自定义车辆类型的任务完美结束!

这篇关于SUMO二次开发 Traci自定义车辆类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219013

相关文章

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp