本教程介绍了如何在 SUMO 中构建曼哈顿移动模型。在这个模型中,固定数量的车辆在曼哈顿电网网络上随机行驶。所有文件也可以在 <SUMO_HOME>/docs/tutorial/manhattan 目录中找到。
netgenerate 应用程序支持创建曼哈顿网格网络。选项 --grid 创建网格网络。可以使用选项 --grid.number 设置网格单元的数量。有多种选项可以配置单元的大小和数量,以及更改车道的数量和交叉点的类型。本教程的选项写在配置文件中。网络是通过调用创建的。
netgenerate -c manhattan/data/manhattan.netgcfg
曼哈顿移动模型中的车辆根据指定的转弯比随机行驶。 jtrrouter 应用程序支持这种类型的移动性。此应用程序需要 -definitions 作为输入来定义车辆的起点和开始时间。
randomTrips.py 工具可用于通过以下选项生成合适的随机流。
<SUMO_HOME>/tools/randomTrips.py -n net.net.xml -o flows.xml --begin 0 --end 1 \
--flows 100 --jtrrouter \
--trip-attributes 'departPos="random" departSpeed="max"'
选项 --flows 100 定义应在网络中行驶的车辆数量。通常一个 用于定义多个车辆,但在这种情况下,每个流在模拟开始时只生成一个车辆。 (因此选项–end 1)。选项 --jtrrouter 必须设置为生成的没有目的地的流。否则生成的车辆可能会过早结束行程。提供给选项 --trip-attributes 的参数设置为确保多辆车辆可以在第一步中进入源边缘。
这些选项也在脚本 runner.py 中编码。
randomTrips 选项 --jtrrouter 仅在 SUMO 版本 1.2.0 之后可用。在早期版本中,在使用 jtrrouter 处理它们之前,必须从生成的流中手动删除“to”属性。
使用生成的随机流调用 jtrrouter 应用程序。为确保路由足够长,必须设置 --allow-loops 选项。由于没有定义接收边缘,因此设置了选项 --accept-all-destinations。曼哈顿移动模型的默认转弯比率(右侧 25%,直线 50%,左侧 25%)通过选项 --turn-defaults 25,50,25 设置。
本教程的所有选项都写在一个配置文件中。车辆是通过调用创建的
jtrrouter -c manhattan/data/manhattan.jtrrcfg
最初几秒内的车辆数量受限于可用于车辆插入的道路空间。如果车辆数量相对于网络规模很大,则可能需要几个模拟步骤才能使所有车辆都进入网络。
使用 JTRRouter,可以生成任意长度的路由。但是,车辆最终会到达路线的尽头并退出模拟。为了避免这种情况,可以使用工具 generateContinuousRerouters.py。