• frvfsf
    了解作者
  • Python
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-05-28 11:46
    上传日期
SUMO在道路不通的情况下自动重置相关汽车的路由
runner.rar
  • runner.py
    4.7KB
内容介绍
#!/usr/bin/env python # Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo # Copyright (C) 2009-2019 German Aerospace Center (DLR) and others. # This program and the accompanying materials # are made available under the terms of the Eclipse Public License v2.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v20.html # SPDX-License-Identifier: EPL-2.0 # @file runner.py # @author Lena Kalleske # @author Daniel Krajzewicz # @author Michael Behrisch # @author Jakob Erdmann # @date 2009-03-26 # @version $Id$ from __future__ import absolute_import from __future__ import print_function import os import sys import optparse import random import json # we need to import python modules from the $SUMO_HOME/tools directory if 'SUMO_HOME' in os.environ: tools = os.path.join(os.environ['SUMO_HOME'], 'tools') sys.path.append(tools) else: sys.exit("please declare environment variable 'SUMO_HOME'") from sumolib import checkBinary # noqa import traci # noqa def generate_routefile(): random.seed(42) # make tests reproducible N = 3600 # number of time steps # demand per second from different directions pWE = 1. / 10 pEW = 1. / 11 pNS = 1. / 30 with open("data/cross.rou.xml", "w") as routes: print("""<routes> <vType id="typeWE" accel="0.8" decel="4.5" sigma="0.5" length="5" minGap="2.5" maxSpeed="16.67" \ guiShape="passenger"/> <vType id="typeNS" accel="0.8" decel="4.5" sigma="0.5" length="7" minGap="3" maxSpeed="25" guiShape="bus"/> <route id="right" edges="51o 1i 2o 55i" /> <route id="left" edges="52o 2i 1o 51i" /> <route id="down" edges="54o 4i 3o 53i" />""", file=routes) vehNr = 0 for i in range(N): if random.uniform(0, 1) < pWE: print(' <vehicle id="right_%i" type="typeWE" route="right" depart="%i" />' % ( vehNr, i), file=routes) vehNr += 1 if random.uniform(0, 1) < pEW: print(' <vehicle id="left_%i" type="typeWE" route="left" depart="%i" />' % ( vehNr, i), file=routes) vehNr += 1 if random.uniform(0, 1) < pNS: print(' <vehicle id="down_%i" type="typeNS" route="down" depart="%i" color="1,0,0"/>' % ( vehNr, i), file=routes) vehNr += 1 print("</routes>", file=routes) # The program looks like this # <tlLogic id="0" type="static" programID="0" offset="0"> # the locations of the tls are NESW # <phase duration="31" state="GrGr"/> # <phase duration="6" state="yryr"/> # <phase duration="31" state="rGrG"/> # <phase duration="6" state="ryry"/> # </tlLogic> def run(): """execute the TraCI control loop""" step = 0 # we start with phase 2 where EW has green traci.trafficlight.setPhase("0", 2) while traci.simulation.getMinExpectedNumber() > 0: traci.simulationStep() car = list(traci.vehicle.getIDList()) if traci.trafficlight.getPhase("0") == 2: # we are not already switching if traci.inductionloop.getLastStepVehicleNumber("0") > 0: # there is a vehicle from the north, switch traci.trafficlight.setPhase("0", 3) else: # otherwise try to keep green for EW traci.trafficlight.setPhase("0", 2) if traci.simulation.getTime() > 200: traci.lane.setDisallowed("2i_0","passenger") for item in car: car1 = item xianlu = str(traci.vehicle.getRoute(car1)) if '2i' in xianlu: traci.vehicle.rerouteEffort(car1) step += 1 traci.close() sys.stdout.flush() def get_options(): optParser = optparse.OptionParser() optParser.add_option("--nogui", action="store_true", default=False, help="run the commandline version of sumo") options, args = optParser.parse_args() return options # this is the main entry point of this script if __name__ == "__main__": options = get_options() # this script has been called from the command line. It will start sumo as a # server, then connect and run if options.nogui: sumoBinary = checkBinary('sumo') else: sumoBinary = checkBinary('sumo-gui') # first, generate the route file for this simulation generate_routefile() # this is the normal way of using traci. sumo is started as a # subprocess and then the python script connects and runs traci.start([sumoBinary, "-c", "data/cross.sumocfg", "--tripinfo-output", "tripinfo.xml","--ignore-route-errors"]) run()
评论
    相关推荐
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等
    • android从bootloader到launcher启动流程整理
      讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程
    • matlabpam代码-dsp-library:用于光通信的MATLABDSP函数库
      matlab pam代码 DSP库 该项目包含几种不同的功能,可将DSP算法应用于光通信。 这些功能适用于相干和非相干(PAM,DMT)光通信。 大多数功能是相互独立的。 因此,该代码中的功能可以轻松使用,并与其他DSP功能结合使用。 用法 功能列表以及简短说明在文件中。 输入和输出参数的描述在每个函数的标题中。 讯号 通常,输入(和输出)信号在第一维度上具有时间(例如,列向量),而第二维度用于一次管理多个信号(例如,不同的极化,不同的参数等)。 之所以选择这种约定,是因为MATLAB通过将列保留在内存的连续部分中来存储矩阵,因此,这种约定比其他方法(行向量)要快。 参数 大多数功能使用参数结构作为输入参数。 函数中使用的参数的描述通常在标头中,而coherent-dsp函数的默认参数在文件中。 参考 执照 此代码在下发布。
    • 有关多目标跟踪的PHD滤波的一些资料
      一些关于多目标跟踪的新的文献,主要是有关概率假设密度(PHD)的
    • 基于python开发的全国新工商采集工具 v1.2版本
      这个软件是通过scrapy爬虫框架结合代理IP池再加上request模拟请求技术以及验证码识别技术,可以做到日更新采集全国新工商信息。采集的数据自动存储在mysql数据库表里,可下载全量1.8亿多企业工商基本信息和36维度的详细信息.支持sql和excel导出数据包格式。
    • 卷积神经网络
      这是卷积神经网络的一个实际用例,已经调试好了,能够在matlab上成功运行,适合从事卷积神经网络(CNN)研究的人员学习使用。
    • matlab匹配滤波代码-matlab_for_thesis:Matlab博士学位论文代码
      matlab匹配滤波代码博士论文的MATLAB代码 博士论文的MATLAB代码的一部分,“井田双色散水下声通道中的多载波通信”。 函数下的func_JingTian文件夹 FUNC_JINGTIAN包含多载波通信中一些通常需要的功能: OFDM调制/解调模块,包括几种数据辅助的信道估计方法和差分解调; 快速实现GFDM和C-FBMC调制/解调,分别包括时域和频域的迫零(ZF)和匹配滤波(MF)均衡; 为OFDM信道估计中使用的压缩感测方法计算字典的功能; 增加信道效应,施加宽带多普勒失真的功能; 通过线性调频Z变换(CZT)以任意精度对频域中的信号进行重采样; Hermite函数合成的信号之间的交叉歧义函数的计算。 演示文件夹 以下列出了四个演示 demo1:使用基本追踪(BP)算法形式的压缩感知方法对OFDM进行稀疏2-D信道估计; demo2:比较基本数据辅助OFDM信道估计算法,包括常规频域插值和基于IDFT的变换域方法; demo3:圆形滤波器组多载波(C-FBMC / OQAM)的基于DFT特征向量的原型滤波器合成; demo4:用于广义频分复用(GFDM)的辅助日期辅助无干
    • Aerosim Blockset
      The AeroSim aeronautical simulation blockset provides a complete set of tools for the rapid development of nonlinear 6-degree of freedom aircraft dynamic models. In addition to the basic aircraft dynamics blocks, the library also includes complete aircraft models which can be customized through parameter files.
    • OFDM的MATLAB仿真
      1.使用Matlab实现一个OFDM系统。 OFDM系统具体参数参照LTE标准,具体为: 系统带宽:5MHz; OFDM符号长度:0.0714ms; 子载波间隔:15kHz; CP长度:OFDM符号长度的7 ; FFT点数:512; 2.选择一种降低OFDM系统峰均比的算法,在1的基础上实现,并分析其性能。
    • matlab开发-级联H桥多电平转换三相
      matlab开发-级联H桥多电平转换三相。级联H桥多电平逆变器三相仿真