2013年发布版本的变更(版本 0.17.0、0.17.1、0.18.0 和 0.19.0)

版本 0.19.0 (27.11.2013)#

Bugfixes#

  • Simulation
    • 修复了 vtk 输出中损坏的 xml。
    • 修复了在使用具有不连续间隔的校准器(calibrators)时发生的崩溃。
    • instantInductionLoops 不再错误统计在检测器边缘上变道的车辆。
    • instantInductionLoops 现在以正确的顺序写入事件。
    • instantInductionLoops 现在正确注册停留在检测器上的车辆。
    • 修复了在步长(step-length)< 1 时运行时出现的无效速度(见 #1024)。
    • 车辆的 departSpeed 值现在可以高达 laneSpeed * speedFactor
    • 修复了跟车相关公式中的错误,该错误曾导致碰撞(见 #1026)。
    • queue-output 现在正确测量从队列开始到最后一个静止车辆尾部的长度,不再包含一个额外的 minGap
    • 当使用 speedDevdepartSpeed 时,分布将被调整,以便车辆可以使用指定的速度。
    • summary 输出的 emitted 属性已重命名为 inserted
    • 修复了导致车辆无故刹车的错误(见 #1052)。
    • 高速公路上的车流不再仅仅为了让匝道上的车辆并入而完全停止。
    • 车辆现在更频繁地成功变道至必要的车道,从而避免停车并阻塞上游交通。
    • 车辆现在使用多车道环形交叉口的所有车道,而不仅仅是外侧车道。
    • 修复了瞬移车辆的 tripinfo 输出(#990)。
    • 修复了在起始位置之前的停靠点处理(#1056)。
    • 修复了使用车辆类型分布时的状态加载(#1080)。
    • 修复了路由分布与路由探针(route probes)一起使用时的内存泄漏(#1077)。
    • 修复了状态保存中路由的引用计数。
  • sumo-gui
    • 右键点击现在总是能解析到正确的对象。该问题在 0.18.0 中引入,由绘制铁路触发。
    • 如果找不到请求的对象,对象定位器(object locator)不再跳转到任意位置。
  • TraCI
    • TraCI 现在返回“净”占用率(不包括 minGap),与其他输出一致(曾是 #932)。
    • 通过 TraCI 更改交通信号灯程序现在立即生效,而不是延迟一步(感谢 Christoph Sommer 报告并修复此问题)。
    • TraCI 现在尊重模拟的开始时间选项(#1049)。
  • duarouter
    • 修复了在修复具有中间死端边缘的路由时发生的崩溃。
    • 修复了生成路由分布的问题,对于起始和结束边缘已连接的行程,其概率为 0。
  • netconvert
    • 修复了环形交叉口有时具有错误路权规则的错误。
    • 选项 --keep-edges.in-geo-boundary 现在在给定 .net.xml 文件作为输入时有效。
    • OSM 导入不再因非标准输入数据(即空的 key 属性或非数值的 tracks 属性)而失败。
    • 选项 --junctions.join 不再导致长度超过 --junctions.join-dist <FLOAT> 的边缘被移除。
  • dfrouter
    • 正确处理结束时间(#428)。

Enhancements#

  • Simulation
    • 提高了处理大量交通信号灯时的模拟性能(重写了不必要的频繁更新交通信号灯的代码)。
    • 添加了 vType 属性 laneChangeModel 用于自定义变道行为。允许的值为 DK2008(0.18.0 版本之前使用的模型)、JE2013LC2013(新的默认模型)。
    • 跨越交叉口的车辆在决定速度时,现在会考虑其路径与其他车辆路径相交的确切交叉点。这使得跨越交叉口的交通流更加顺畅。
    • 车辆现在可以在跨越交叉口时变道,如果它们来自的边缘具有优先权(仅在具有合并内部车道的网络中,见 netconvert 变更)。这提高了模拟性能,特别是在多车道环形交叉口上。
    • 瞬移警告现在总是包含原因。对于因 waitingTime 超过 time-to-teleport 而瞬移的车辆,原因可能是:
      • wrong lane:当车辆被困在不允许其继续行驶路线的车道上时。
      • yield:当车辆被困在无优先权的道路上且未在车流中找到间隙时。
      • jam:当下一车道上没有空间导致车辆无法继续行驶时。
    • 以更优雅的方式处理速度偏差和出发速度之间的冲突(#1035)。
  • sumo-gui
    • 现在绘制转向灯以可视化车辆的变道意图(仅当车辆无法立即变道时才会明显)。
    • 添加了车辆着色模式:by offset from best lane(按距最佳车道的偏移量)和 by acceleration(按加速度)。
    • 绘制车辆路线时,高亮显示车辆打算使用的车道(如果已知)(以前总是使用最右侧车道)。
    • 添加了热键 Ctrl + ACtrl + SCtrl + D 用于运行、停止和单步执行模拟。
    • 添加了用于打开对象定位器对话框的菜单。使用菜单热键允许在不使用鼠标的情况下搜索模拟对象。
    • 车辆参数对话框现在还包含与车辆类型相关的信息。
  • TraCI
    • 变道请求现在默认具有更高的优先级,因此将更频繁地成功。
    • 添加了获取开始或结束停车/停靠的车辆数量/ID 的可能性,参见 TraCI/Simulation_Value_Retrieval(曾是 #353)。
    • 添加了新命令 lane change mode (0xb6) 以控制 TraCI 变道请求与 laneChangeModel 变道决策之间的冲突解决。它还允许覆盖安全约束并触发协同速度调整以更好地满足变更请求。
    • Python API 现在在可恢复错误(如未知车辆 ID)时抛出 TraCIException,并使系统处于一致状态(#1043)。
    • 受 Bob Holcomb 启发,添加了移除等待车辆的可能性(#942)。
    • 提高了上下文订阅(context subscriptions)的执行速度。
  • netedit
    • 添加了反转边缘方向的选项。
    • 现在可以根据索引选择车道。
  • netconvert
    • 指定连接(connections)时,现在可以引用已被拆分的边缘(#492)。
    • 添加了新的投影选项以将 Gauss-Krueger 转换为 UTM。
  • duarouter
    • 重大重构了输入解析,现在可以在一个文件中混合行程(trips)、流量(flows)和车辆(vehicles)。
    • 路由时考虑停靠点(#988)。

Other#

  • netconvert
    • 改进了导入 OSM 数据时与类型相关的警告,以提高可读性。
    • 修改了内部车道的命名约定:以前每个内部车道都有自己的内部边缘。该内部边缘的 ID 是 :<junction_id>_<link_index>,内部车道的 ID 是 :<junction_id>_<link_index>_0。 现在,具有相同起始和结束边缘的内部车道共享一个公共内部边缘(遵循内部交叉口的车道除外)。该内部边缘的 ID 是 :<junction_id>_<link_index_of_first_lane>,内部车道的 ID 是 :<junction_id>_<link_index>_<lane_index>。 内部车道的链接索引与其 ID 之间仍然保持以下关系: + == 。 进行此更改是为了允许在内部车道上变道。作为将内部车道合并到单个边缘的副作用,车道长度可能与之前的版本不同。这是因为车道的模拟长度始终是边缘所有车道几何长度的平均值。
  • TraCI
    • 车辆值检索/修改的文档现在包含有关为单个车辆设置/检索车辆类型相关值(即长度、maxSpeed)的信息。
    • 移除了过时的车辆添加命令。
    • TraCI 版本现在是 7。
  • 在 configure 中重新处理了对 gdal 和 fox 的检查。
  • 文档现在包含指向生成该文档的 wiki 页面的链接。

版本 0.18.0 (28.08.2013)#

Bugfixes#

  • Simulation
    • 修复了如果给定的步长低于最小值 0.001 时发生的崩溃/挂起。
    • 修复了导致视觉碰撞的错误(不同车道上的车辆在交叉口上占据相同空间)。
    • 修复了在次要道路上以不安全速度插入车辆导致碰撞的错误。
    • 从车辆路线输出中移除了未到达车辆的 arrival 属性。
    • 如果车辆被多次重新路由,现在会保存所有路由。
    • 修复了使用校准器时的崩溃。
  • TraCI
    • 链接方向和链接状态的返回值现在对车道变量:link (0x33) 有效。
    • 路线现在在第一个模拟步骤之前预加载,使得 getMinExpectedNumber 从一开始就能给出良好的结果。
    • 修复了文档错误,该错误指出大地测量位置的格式是 LAT,LON,而实际上使用的是 LON,LAT。TraCI 行为保持不变。
    • 修复了未出发车辆的重新路由(更改目标、更改路线和更改路线 ID)。
  • netconvert
    • 导入具有街道名称的 net.xml 或 edg.xml 文件时,输出中不再丢失街道名称。
    • 使用选项 --ramps.no-split <BOOL> 不再创建具有错误连接的网络。
    • 修复了在道路分叉或合并处生成无效连接的错误。
    • 修复了导入 .net.xml 文件以及拆分元素时出现的无效交通信号灯逻辑和偶尔的崩溃。
    • 导入 SUMO 网络时,危险连接(从同一边缘到同一车道的多个连接)不再被静默丢弃。
    • 修复了在使用 --junctions.join 和斜坡构建选项 --ramps.* 时导致无效节点几何形状的错误。
  • duarouter
    • 选项 --ignore-errors <BOOL> 现在在车辆不允许在其出发边缘行驶时能正确工作。
  • sumo-gui
    • 具有 guiShape="pedestrian" 的车辆现在在所有详细级别下具有相同的大小。
    • 现在为铁路绘制交通信号灯和车道到车道的连接。

Enhancements#

  • Simulation
    • 提高了模拟速度。
    • 添加了选项 --link-output <FILE> 用于记录车辆在交叉口的接近情况。此选项满足开发人员在调查交叉口控制时的需求。
    • 添加了新的抽象车辆类 "custom1" 和 "custom2" 供用户自定义用途。
    • 次要道路上的驾驶员在等待车流间隙时会变得不耐烦。过一段时间后,即使这意味着另一辆车必须减速来容纳他们,他们也会行驶(与以前一样,他们只会在安全的情况下行驶)。
    • 添加了 vType 属性 impatience,它影响驾驶员即使迫使其他驾驶员刹车也要切入车流的意愿。
    • 添加了对次要道路上停车标志的支持。
    • 添加了对交叉口类型 allway_stop 的支持。这对应于北美发现的一种交叉口类型
    • 添加了选项 --fcd-output.signals <BOOL> 用于在输出中包含车辆信号状态(刹车灯等)。
    • 实现了停靠点的 "expected" 属性,该属性期望人员 ID 进入车辆以允许车辆离开停靠点。应与 "triggered='true'" 一起使用(否则不起作用)。感谢 Shubham Jain 指出 [1] 中可能性的错误描述。
    • 添加了保存和加载模拟状态的选项。模拟状态可以在预定时间保存,然后加载以初始化新的模拟(这也需要加载原始模拟的网络和路由)。如果保存的文件名以 .sbx 结尾,文件将以二进制格式而不是 xml 保存。
    • 选项 --sloppy-insert <BOOL> 被标记为已弃用,因为其行为现在是默认行为,使用 --eager-insert <BOOL> 可获得旧行为。
    • 人员的车辆路线输出现在包含完整的计划。
  • sumo-gui
    • 现在可以通过点击时间显示旁边的 'Time' 按钮,在 '秒' 和 '时-分-秒' 之间切换模拟时间显示。此设置的状态在 GUI 会话之间保持不变。
    • 现在可以通过点击延迟表盘旁边的 'Delay' 按钮在替代延迟值之间切换。点击会导致当前延迟值保存为替代值。替代延迟值在 GUI 会话之间保持不变。
    • 停车的车辆现在被绘制(在路边)。
    • 车辆参数表现在包含有关已停止车辆状态的信息。
    • 车辆现在可以按其选择状态着色。
    • 在车辆弹出菜单中添加了选择车辆在下一个交叉口的“敌人”(foes)的选项(在按选择着色时很有用)。
    • 除非车辆实际上必须减速,否则路线结束时不再触发刹车灯。
    • 现在提供单独的选项来自定义人员的可视化。
  • netconvert
    • 使用选项 --no-internal-links 时,边缘长度现在会增加以补偿缺失的内部链接。因此,路线长度将更好地对应物理距离,环形交叉口也不太容易拥堵。
    • 添加了选项 --keep-edges.in-geo-boundary,其工作方式类似于选项 --keep-edges.in-boundary,但使用大地坐标而不是笛卡尔坐标。
    • 添加了新的节点类型 priority_stop。这与类型 priority 类似,但次要链接现在需要停车。
    • 添加了新的节点类型 allway_stop这对应于北美发现的一种交叉口类型
    • 添加了选项 --ignore-errors.edge-type 用于在加载期间忽略未知的边缘类型。这在处理基于 OSM 数据的纯 xml 文件时经常发生。
    • 现在解析 OSM 属性 "tracks" 以确定铁路元素是单向还是双向。
    • 添加了选项 --osm.railway.oneway-default <BOOL> 用于设置导入没有 "tracks" 属性的铁路时的默认行为。适当的值取决于区域 OSM 社区的映射风格。
    • 添加了选项 --geometry.max-angle <FLOAT>,用于警告边缘上的急转弯。默认情况下,对超过 99 度的转弯启用。
    • 添加了选项 --geometry.min-radius <FLOAT>,用于警告边缘起点和终点的急转弯。默认情况下,对半径小于 9 米的情况启用。
    • 添加了选项 --geometry.min-radius.fix <BOOL>,用于修剪几何形状以避免边缘起点和终点的急转弯。默认情况下禁用。
    • 添加了选项 --check-lane-foes.all <BOOL>(默认=false),用于解除对在不同车道退出同一边缘且不交叉路径的车辆的交叉口限制。这在许多情况下提高了交叉口吞吐量,但这是对德国交通法规更激进的解释。
    • 添加了选项 --check-lane-foes.roundabout <BOOL>(默认=true),用于解除环形交叉口的一些交叉口限制。这符合环形交叉口的典型布局,其中对变道的限制允许此类移动。
  • TraCI
    • 为 cmd stop (0x12) 添加了可选标志以设置停车和触发状态。
    • 添加了命令 stop state (id 0xb5) 用于检索停止、停车和触发状态。
    • 添加了命令 resume (0x19) 用于从当前停止状态恢复。
    • 减少了连接关闭时的冗长输出(不再说再见)。

Other#

  • Simulation
    • <vehicle><flow><vType> 元素现在支持形式为 <param key="myKey" value="myValue/> 的子元素。这些可以在实现自定义功能时使用(参见 Developer/How_To/Device)。
    • 移除了消息传递功能的代码(默认情况下已禁用)。
  • Contributed/SmallMaps 工具已被移除,因为它已过时。
  • 将代码和文档中的所有引用切换到 sumo-sim.org。
  • TraCI 版本现在是 6。

版本 0.17.1 (08.05.2013)#

Bugfixes#

  • sumo-gui
    • 修复了打开视口(viewport)对话框时的崩溃。
  • netconvert
    • 修复了以 dlr-navteq 格式写入输出时的错误权限。

版本 0.17.0 (03.05.2013)#

Bugfixes#

  • Simulation
    • tripinfo 现在包含正确的 arrivalPosrouteLength 值(#814)。
    • 修复了在使用选项 --no-internal-links 运行的模拟中发生的碰撞错误。
    • 修复了导致车辆有时使用错误车道并偶尔导致碰撞的错误(#586#836)。
    • 修复了默认跟车模型中的错误,该错误在使用具有不同减速度值的车辆类型时导致碰撞。
    • 修复了在输入文件中指定无效跟车模型时的崩溃。
    • 修复了特殊条件下的无效车辆插入。
    • 提高了交叉口吞吐量(修复了与路权时间计算相关的错误)。
    • 修复了车辆在到达时以及从快车道变到慢车道时行驶速度超过允许值的错误。
    • 在存在 vClass 限制的情况下,使用 taz 进行模拟路由现在有效。
    • 修复了车辆有时不遵循 arrivalLane 属性的错误。
    • 修复了 entryExitDetectors 发出关于车辆未进入就离开的无效警告的错误。
    • 修复了感应线圈(inductionLoops)和即时感应线圈(instantInductionLoops)有时未能检测到车辆的错误。
  • sumo-gui
    • 修复了在激活附加车辆可视化时偶尔发生的崩溃。
    • 修复了在跟踪车辆时模拟控制按钮(开始、单步)有时保持灰色的错误。
  • netconvert
    • 修复了在左转连接处导致路权计算失败(导致碰撞)的错误。
    • 修复了从 OpenStreetMap 导入的网络在正向和反向车道数量不同时车道数量不正确的错误。
    • 修复了在使用选项 --roundabouts.guess 时,某些交叉口集被错误分类为环形交叉口,导致无效的交叉口逻辑并在模拟期间引起碰撞的错误。
    • 修复了使用选项 --ramps.guess 时创建不一致(不可加载)网络的错误。
    • 删除的节点不再包含在最终网络边界中。
  • polyconvert
    • 移除了导入 OSM 时对键/值排序的依赖。相反,现在匹配多个类型映射条目的元素会被多次导出。
    • 修复了为非常大的网络导入多边形时的投影错误。
  • ROUTER
    • 修复了输出文件包含错误的 emissionClass 属性值的错误(即路由器未能正确将值从输入文件复制到输出文件)。这有时会导致 duaIterate.py 失败。
    • 重大重构,现在使用一个处理程序处理路线、行程和流量输入(可以在一个文件中混合)。
    • 路线输入文件中的人员和停靠点不再消失。
    • 流量处理类似于模拟(使用 "." 分隔符生成 ID)。
  • TraCI
    • 修复了对 simulationStep 命令(CMD_SIMSTEP2)参数的处理。以前,如果给定的目标时间低于当前模拟步,则执行单个模拟步。现在,在这种情况下会忽略 simulationStep 命令。此命令的正确用例是运行模拟直到给定的目标时间。一些脚本(包括教程脚本)错误地将步长作为参数传递,并且仅由于此错误才有效。为了使这些脚本工作,省略参数就足够了。

Enhancements#

  • Simulation
    • 添加了对交通感应交通灯的支持(参见 Simulation/Traffic_Lights#loading_a_new_programNetworks/PlainXML#node_descriptions)。
    • 添加了对微观校准器的支持。这些触发型对象可用于增加或减少选定边缘的交通量并调节速度。使用校准器,可以根据已知的交通测量值(即来自真实感应线圈的测量值)校准模拟,而无需使用 TraCI。有关用法示例,请参阅测试套件 tests/sumo/extended/calibrator。
    • 重命名了 netstate(原始转储)和 mean data 输出的 XML 根元素。
    • 添加了考虑坡度的跟车模型(kraussPS),您的网络需要 z 坐标。
  • sumo-gui
    • 添加了可选的 POI 属性 'lon' 和 'lat',用于在地理参考网络中指定位置。
    • 添加了用于显示多边形名称和更改其线宽的选项。
    • gui-setting 文件现在支持元素 <breakpoints-file value="mybreakpoints.txt"/> 用于在模拟开始时加载断点。
    • 新的颜色表示为四个无符号字节,包括 alpha 通道(透明度),所有范围在 0-255 之间。
    • 人类可读的颜色表示:红、绿、蓝、青、品红、黄、黑、白和灰。
    • 交叉口着色。
  • netconvert
    • 添加了对交通感应交通灯的支持(参见 Networks/PlainXML#Node_Descriptions)。
    • 在纯连接文件中,delete 元素现在在连接尚不存在时也有效(即在从纯节点和边缘构建网络且连接文件仅包含删除元素时)。
    • 现在从 OpenStreetMap 导入大多数转弯限制。
    • 导入没有内部链接的 SUMO 网络时,默认情况下输出网络将构建为没有内部链接。
    • 现在警告具有大绝对坐标的网络,因为这将导致 guisim 中的视觉错误。
    • 添加了选项 --tls.discard-simple,该选项丢弃从非纯 XML 格式加载的几何状交叉口(无交叉流)处的交通灯。这在导入包含许多行人感应交通灯的 OpenStreetMap 网络时特别有用。
  • Tools
    • 添加了用于从大场景创建较小场景的工具 Tools/Routes#cutRoutes.py
    • 用新的 Tools/TraceExporter 工具替换了旧的跟踪导出器。
    • TraCI Python API 和 duaIterate.py 的实验性 Python 3 支持。
  • Tutorials
  • Documentation
    • 添加并改进了几个 XML 模式(感谢 Matthew Fullerton)。