本教程展示了转向车道、routeSampler.py、在 netedit 中定义计数数据、出租车/需求响应交通(DRT)等内容!
文件#
视频#
文字记录#
简介#
欢迎参加今年的会议教程。我非常兴奋。很高兴在参与者名单中看到这么多熟悉的名字。我很乐意与大家见面,但是,好吧,我们必须利用现有的机会。所以在今年的教程中,我将尝试做一个区分,一方面为 SUMO 经验较少的参与者分享简单的介绍性内容,另一方面在第二部分中,我将介绍一些新功能,这些功能应该会让所有更熟悉 SUMO 的用户感兴趣。当然,这只是我们可以讨论的所有内容中非常小的一部分,但如果缺少什么内容,我鼓励您查看往年的教程,那里解释了更多的功能。
当然,您可以在其他场所找到我们提问。那么让我们开始吧。如果您想跟随本教程,您需要什么?当教程运行得很快时可能会有些困难,但当然您需要 SUMO 的最新版本,或者更好的是,最新的开发版本。您需要 Python 来运行本教程中包含的一些工具,需要一个文本编辑器来编辑配置文件、xml 文件,如果您想跟随所有步骤,可能还需要预先准备好的教程文件。所以,如果您需要这些文件,一个快速的方法是转到 SUMO 主页,您会找到文档。这是 sumo.dlr.de - 然后您可以转到教程,嗯,这里也有一个链接,然后您会在这里找到 SUMO 2020 教程文件 的链接,您可以下载。好的。现在我想谈的第一件事是 OSM 网页向导,或者简而言之,如何通过几次点击让模拟运行起来。
osmWebWizard#
如您所知,交通模拟是一个复杂的系统,包含许多移动部件(双关语),开始可能会令人生畏,但使用 SUMO 中包含的向导工具,很容易上手,至少是这样。那么您需要做的是,如果您已经安装了 SUMO,只需单击开始菜单中的图标,它应该在那里,或者您也可以在 SUMO 工具文件夹中找到向导工具,我将用旧式的方法在命令行窗口中运行它,所以在 $SUMO_HOME 所在的位置,有一个 "tools" 文件夹,这里面有 osmWebWizard。然后您会得到这样一种屏幕,您可以在其中选择感兴趣的区域,选择交通模式和其他一些内容,例如卫星背景、公共交通,然后您可以生成您的场景并开始运行。您会得到类似这样的东西。
所以这实际上是一个新功能,卫星背景。如您所见,有一些瑕疵,但它可能有助于您更好地查看正在模拟的区域。好的,回到幻灯片。这是通过使用很棒的 OpenStreetMap 数据库来实现的。它从他们的数据库中提取所有网络数据。然后它在网络上放置随机交通,因为目前还没有交通数据的开放数据源。您可以配置所有这些内容,它会显示在您计算机的文件夹中,包含很多很多文件,我稍后会解释一点。但是当您运行场景时,实际上我将运行教程文件中包含的那个,您会看到汽车。所以我将运行您可以在 01_wizard 文件夹中找到的那个。当然,如果 SUMO 安装在您的计算机上,您可以双击 sumoconfig 文件。您会得到类似这样的东西。
当您按住鼠标右键放大时,您会看到汽车在移动。如果您想概览模拟中所有移动的事物,这里有很多可以配置的东西。现在我要把汽车变大一点。这样您可以看到网络上充满了东西,甚至有火车和行人。如果您仔细观察,您会看到不仅有汽车在网络中移动,还有行人在四处走动,甚至乘坐汽车。好的。
osmWebWizard - 生成的文件#
这个向导在后台发生了什么?如我所说,它下载了大量文件。并运行了许多程序来处理这些文件,为您提供您所看到的模拟。现在让我们来看看所有这些文件。所以给您一个参考。最重要的是 sumoconfig 文件。它是将所有其他文件连接在一起的配置,并告诉 sumo 加载什么。最重要的输入是网络文件。习惯性的后缀是 .net.xml - 这些都是 xml 文件。然后有几个文件定义了在网络中运行的交通。重申一下,这些是随机生成的。所以我们有一个文件用于乘用车,一个文件用于行人,另一个文件用于公共交通。然后我们有一些文件是...嗯,让我们说这是基础设施。所以我们有一个文件定义了公共交通站点的位置,这些站点被公共交通使用。
我们有一个用于可视化的文件。它定义了所有这些建筑轮廓、兴趣点、树木和土地利用,所有这些东西。还有一个文件定义了可视化应该是什么样子。事物的颜色、形状和大小,这些已经通过放大汽车简要展示过了。所以这就是运行模拟所需的全部。但网页向导还为您提供了一堆其他文件,您需要这些文件来重建场景。因为做模拟不是一项单一的任务,而更像是一个过程管道。您依次运行许多程序,并且不时地重复这些步骤,因为某些输入发生了变化。最重要的输入是来自 OSM 服务器的原始数据。有一个用于构建网络的配置,一个用于构建背景形状的配置,一个用于随机生成交通的配置或可执行文件,以及一些用于公共交通网络的中间数据。
好的。所以所有这些都在后台工作,为您提供这个模拟。嗯,我们对此满意吗?也许,但这只是一个开始。首先,交通是随机的,这通常不是我们想要的。而且,数据仍然相当原始。如您所知,OpenStreetMap 数据库依赖于自愿贡献。如果这些人在您城市的某些部分没有做对,那么网络中就会有错误。所以,一个典型的步骤是对网络进行一些后处理、手动后处理,以修复问题,由于这是一个非常基本的任务,我们将在本教程中也介绍这些步骤。
网络编辑 - 删除道路#
所以,如果您现在或稍后在计算机上跟随教程,这将在一个新文件夹中进行。在 02_netedit 文件夹中,有原始网络 - 我们将在那里进行编辑。然后有一个文件夹用于最终的东西。所以,让我们快速浏览一下教程文件。这是您解压教程文件时得到的内容。所以,对于某些幻灯片,教程的某些部分只需要一个文件夹。对于教程的其他部分,您会得到一个文件夹,显示工作之前的步骤,以及一个显示最终工作的文件夹。
好的。那么,让我们进行一些网络编辑。您可能想做的第一件事是通过删除一些东西来编辑网络。因为您不想要一个矩形,而只是其中的一小部分。所以...让我们做这个。netedit 应用程序也在您的开始菜单中,或者您可以在 SUMO 二进制文件所在的文件夹中找到它。所以,无论您在哪里安装 SUMO,都有一个 "bin" 文件夹,里面有 netedit 应用程序。在那个应用程序中,您可以打开您的网络,接下来我们要打开的是站点。所以,我们去这里加载附加文件的菜单。我们将加载站点。为什么呢?
当我们编辑网络并删除一些东西时,我们希望自动删除附带的站点。那么,我们怎么做呢?我们通过按 S 进入边缘选择模式。然后我们按住 Shift 键并在网络上进行选择。如果您重复这样做,选择将会增加、扩大。所以,我们只需选择这里的这些东西。然后按 Delete 键,砰,所有东西都消失了。所有被选中的东西都消失了。所以,这是第一步。现在我们可以简单地保存网络。我们还保存附加文件。因为现在站点更少了。所以,这是网络编辑的一个步骤。重要的是,当您这样做时,当您真正改变网络时,您必须重建所有随机交通,因为现在网络中可能有交通的部分已经消失了。所以,那些交通将是无效的。为此,在网页向导文件夹中有一个批处理文件,您可以运行它。它在 Linux 上也可以运行。它基本上包含一些通过运行各种程序来重建场景的指令。所以,您只需再次运行它。在 Windows 上,您只需双击。然后您就有了一个更新的场景,具有不同的网络。
好的。哦,是的,如果您使用的是 Windows,请确保关闭 sumo-gui,因为它会锁定文件,您无法在文件仍然被锁定的情况下重建场景。好的。
网络编辑 - 添加转向车道#
网络编辑的下一步。我们将添加一个转向车道。这实际上是 OpenStreetMap 网络中一个非常典型的问题。车道数量,特别是大型交叉口的车道数量是错误的。您可以猜到为什么。在每个交叉口都正确获取所有这些细节需要大量工作,人们会遗漏一些东西,或者他们根本没时间去做。所以,您通常会做的是,要么根据您自己对某个区域的个人知识,要么查看卫星图像,然后得出结论,网络中存在错误,并进行修复。所以,让我们看看如何改变转向车道的数量。好的。所以,让我们去网络的一个特定部分。实际上,让我们从卫星图像确认这里有一个问题。
所以,我只需在网络中的某处右键单击,然后选择“将光标地理位置复制到剪贴板”。现在我可以去某种在线地图服务。我只需在这里粘贴坐标。让我们看看是否有效。如果您仔细观察,这里应该有三条车道。一条用于左转。而我们的模拟在这里有两条车道。所以,最简单的方法是进入另一种编辑模式,检查模式 - 您可以按字母 I 进入 - 然后单击这个名为 "edge" 的网络元素,将车道数量从 3 更改为 4。三是因为人行道也包含在计数中,所以,让我们做这个。
如您所见,几何形状看起来有点奇怪。这是因为还没有更新。所以,让我们重新计算几何形状。好了。现在我们有一条用于转弯的车道。我们还想做的另一件事是调整几何形状。这是另一种模式,移动模式 - 字母 M - 让我们把这个点向后移动一点,这样转向车道就更长了。我们可以把它移得更远一点。好的。我再次重新计算几何形状 - 按 F5。我可以保存网络。现在我也可以直接在 sumo-gui 中加载这个,看看在模拟视图中会是什么样子。所以,它会像这样。您可能会注意到一些奇怪的事情。公交车站变成了一个小细条。可能是因为它...嗯,可能是因为它在这个部分或那个部分。所以我们可以改变这个,但我们把它留作以后的练习。好的。
我看到有一个问题,是否可以在 netedit 中使用卫星图像。是的,您可以。您可以将进入 sumo-gui 的图像加载到 netedit 中,使用相同的配置。好的。嗯,实际上,如果您使用的是 1.7.0 版本,有一个小错误,当您更改车道数量时,人行横道可能会消失。简短的回答是不用担心。只需升级到最新的...升级到最新的开发版本。但如果您遇到这些问题,我将快速向您展示如何编辑人行横道。这是另一种模式。这个带斑马线的小条。然后您单击一个交叉口。如果缺少人行横道,让我们看看。假设这个缺失了。然后您单击应该被穿越的边缘。您创建一个交叉口,一切就又好了。好的。
网络编辑 - 更改交通灯类型#
然后是 netedit 的另一部分。当然,这不是全部内容,但我们必须在某个地方划清界限。所以...让我们谈谈交通灯。SUMO 中有各种交通灯算法。所以它们可供选择。当您观察现实世界中的交通灯时,有两种重要的类型。静态类型。所以您有一个固定周期的相位,具有固定的长度,并且每个周期都相同。另一种类型是交通感应。所以您有某种传感器,可能是感应线圈或雷达探测器。根据这些检测,相位的持续时间有时也会改变相位的顺序。当我们在网上下载这些网络数据时,没有关于实际在道路上运行的算法类型的信息。所以我们的网页向导做了一些乐观的事情。它将网络中的每个交通灯设置为感应类型。所以让我们在这里看看交通灯。使用此按钮,您可以看到网络中的所有交通灯都用这个小符号高亮显示。当您在这里单击它时,您可以看到交通灯的一些属性。但实际上,我们想看看其他一些属性。就是这里。
所以我们去使用检查模式,检查交叉口,这里我们看到交通灯的类型。它是感应式的。这意味着在模拟中,有小的探测器。每当这里有一长串汽车在等待时,相位基本上会保持开启足够长的时间来清除队列。我们实际上可以在 SUMO 中看到这些探测器,方法是右键单击交通灯,单击这些彩色条的任何部分。红色是红灯的标准,绿色显然是绿灯。当您选择“显示探测器”时,您可以看到这里所有的黄色矩形。这些是在您定义感应式交通灯时自动生成的。它们控制着交通灯的工作。实际上有一个小的颜色代码。绿色的是活动的,红色的定义了在上一个红灯期间有请求。另一个上没有红色的东西可见。好的,所以在大型交叉口拥有感应式交通灯是非常合适的。它使交通顺畅运行,因为我们不知道任何这些交通灯的确切周期,它们都是启发式生成的,这比拥有预定的静态周期要好得多,因为那样相位持续时间永远不会合适,或者通常不合适。
所以对于这里,对于这个交叉口,我们对感应式交通灯很满意,但还有其他交通灯控制的交叉口,比如这里的这个人行横道。所以这里没有真正的交叉口,只是人行道穿过马路。可以说这是一个错误。我猜这会在以后的版本中修复,但现在所有的交通灯都是感应式的,即使是这个人行道,这意味着如果这里没有人流,当汽车队列清除后,红灯仍然会非常频繁地切换。所以在这里效果不好。所以我们想改变的是,我们把它改为静态的。就是这样。所以为了单击一下说了很多话,但至少现在您知道为什么这很有用。类似地,这里,让我们把这个切换到静态并保存网络。
哦,是的,我想快速看一下信号计划。信号计划是什么样的?进入交通灯模式。那么我们这里有什么?这个交通灯使用的相位列表。我们可以在这里点击或使用箭头键循环浏览交通灯的相位。显然,有一个很长的绿灯相位,这个方向得到绿灯,还有一个黄灯相位,为了让汽车减速或刹车。然后我们有人行道的绿灯相位。这之后是一个清空相位,因为当灯是绿色时进入这里的人行道仍然需要一些时间来穿过马路,然后汽车才被允许再次行驶。所以这看起来不错。对于更复杂的交叉口,您有更复杂的周期计划。您可以编辑这些。例如,通过改变时间。让我们在这里设置更长的人行道相位。或者通过改变灯光。例如,改变某个特定相位中灯光的颜色。好的。这就是我想向您展示的关于网络编辑的内容。再次说明,还有更多内容。您必须参考文档或其他教程来了解更多。然后我们继续教程的下一部分。
交通#
所以这关系到交通,因为到目前为止我们只讨论了网络。现在让我们谈谈交通。向导生成的场景有那些随机的汽车,它们使用从随机起点到随机终点的最快路线。我们在场景中有一些公共交通,其路线、站点甚至公交车或火车之间的间隔都是从 OpenStreetMap 加载的。但是时刻表,实际的时刻表,火车什么时候停?这些是随机的和生成的。随机意味着时刻表的一部分是随机的,第二部分,第一个站点是随机的,第二个站点的时刻表是在您运行网页向导时通过小的背景模拟确定的。所以您得到一个可行的时刻表,但这不是,嗯,时刻表的不同部分,它们并不以任何特定的方式组合在一起。所以这并不理想,在您可能想要导入更好的公共交通时刻表的地方,如果可以的话,例如从 GTFS 导入,为此有一些工具。
好的。对于行人,他们也有随机的起点和随机的终点,但他们在网页向导中被配置为使用最快的多式联运路线,这意味着他们可以步行,也可以使用公共交通,甚至可以在模式之间切换。例如,步行到公交车站,乘坐公交车,然后下车,步行到火车站,乘坐火车,下车,步行到最终目的地。这些都是在后台运行的多式联运路线的一部分。如果您仔细观察模拟,您会注意到有些行人没有完成他们的行程。这是因为他们错过了公交车。在小场景中,公交车只运行一个小时。所以如果他们错过了,就没有下一班公交车。当然,这在更大的场景中得到了修复,公交车会持续运行并循环运行。但我们现在不担心公交车。我们将做两件事来获得不同类型的交通场景。我们将根据计数数据重新生成汽车。我们将用需求响应交通(DRT)取代按固定时刻表运行的公共交通。这是两个我想向您展示的新功能。
来自计数的交通#
所以是来自计数数据的交通。这可能是道路上的计数。也可能是转弯计数,例如,您知道在这个或那个小时,在给定的交叉口有多少辆车左转。SUMO 中有各种工具可以从计数数据创建交通场景。有一个非常陈旧的 dfrouter。还有一个 flowrouter 工具。我要向您展示的是新的 routeSampler 工具。它的主要区别在于它使用一长串候选路线来构建场景,这在城市场景中非常有用,因为获取符合给定计数的路线的问题有一个非常非常大的解空间。很容易得到一个具有不合理路线的解决方案。而且很难让这些工具避免这些不合理的路线。所以在这里我将向您展示一个使用广泛列表的新工具。我们需要做的第一件事是获取一个我们认为对场景允许的路线列表。然后我们将从这些路线中选择一个多重集来匹配我们的计数。合理的路线是那些出现在繁忙网络中的路线。所以我们可以做的是,我们只需运行我们的随机交通模拟。我们记录该模拟中使用的所有路线。很可能,我们看到的交通是错误的,因为它随机的。但我们看到的路线是合理的,因为它们是交通繁忙网络中的最快路线。所以如果您在命令行上运行,那么您将得到这个文件 vehroutes.xml。这就是我们下一步要使用的。
交通 - 无交通的最快路线#
只是一些快速的视觉享受。如果您观察右侧交通繁忙网络中的路线和空网络中最快路线的路线,您会看到一些变化,通常对于给定的网络。这里的键是根据每条边上的汽车数量。您可以看到有一些交通。如果网络是空的,一些汽车会在这里行驶。如果网络满了,它们实际上会使用这条路线,大概是因为很难通过这个交叉口,这在这个网络中是现实的,因为这是一个我们知道的区域。这里是 DLR 所在地。这里总是堵车。如果您去柏林,DLR 在这里。
Netedit - 定义边缘计数#
好的。所以让我们快速完成这个。使用交通文件夹,我将向您展示如何创建网络数据。所以您进入数据模式,这是 netedit 的一个新模式,它主要是为了做我想向您展示的这类事情。所以让我们在边缘上定义计数。为此,我们使用 edgeData 模式。这个按钮在这里。我们创建一个新的 dataSet。我们定义这个 dataSet 有效的时间范围。然后我们为这个 dataSet 定义数据。这都是非常通用的。所以您可以定义各种数据。但现在我们将定义进入此边缘的汽车数量。然后,让我们单击一些边缘来设置此数据。 现在我们为这些边缘中的每一条定义了 500 辆汽车的计数,时间从 0 到 3600,我们将数据保存到一个文件。我在这里暂时做一下,因为您会在不同的地方找到所有生成的文件。
routeSampler.py#
现在让我们使用这些数据来获取交通场景。这再次向您展示了如何定义这个。现在我们运行一个新工具,它使用我们刚刚定义的路线和计数来生成匹配这些计数的路线集。所以这是运行它的命令行。实际上,您甚至可以为 routeSampler 使用配置文件。所以您会在您的场景文件中找到一个 routeSampler 配置文件,它定义了这个命令。如果您运行这个,那么您会得到一个新的交通场景。让我们看看它是什么样子。好的。所以正如您可能想象的那样,这些道路上有交通,但不仅在这些道路上,在模拟的许多其他部分也有,因为,嗯,我们使用了覆盖整个网络的路线,并且我们选择了一些在这些边缘上运行的路线,以便每条边缘都匹配 500 的计数。所以我们在定义区域的上游和下游都得到了交通。好的。我们可以对转弯计数做类似的事情。这是另一种编辑模式。所以这里是转弯计数。这里,实际上,参数有点不同。 我们在这里定义一个计数。然后不是点击一次,我们必须点击两次来定义这些计数。当然,使用这里的检查模式,我们以后可以编辑定义的值。好的。然后我们再次运行 routeSampler。使用新的转弯计数,实际上,我们可以加载两种文件,边缘计数和转弯计数,以获得同时遵守这两种约束的交通。我们得到另一个模拟。这次,我们会看到有点不同的交通。如您所见,现在我们有来自不同方向的交通。实际上,我为模拟定义了这个交叉口所有方向的转弯计数。所以现在您得到了匹配这些转弯计数的交通。嗯,这是我想展示的一个新工具。我希望您能好好利用它。让我们进入第二部分高级内容。
出租车(需求响应交通)#
这是需求响应交通。在 SUMO 的背景下,我将只谈论出租车,因为这在技术上就是它。它是一个出租车车队,使用不同的算法,包括拼车。所以它们是表达各种需求响应交通主题的一种方式,虚拟站点、真实站点、上门接送,各种事情。SUMO 包含多种控制此类出租车车队的算法。这些目前是作为示例,每种算法,一种用于非常简单的驾驶,一种用于拼车等等,为您提供自己算法的基础,您可以将其作为模块添加到 SUMO 中,或者通过 TraCI 连接。整个出租车系统是全新的,并且仍在开发中。即使在做这个教程时,我也发现了一些问题,但您将能够使用 1.7.0 运行它,除了一个示例,您已经需要开发版本才能使其运行。好的,所以让我们定义一个出租车车队。您实际上可以在 netedit 中完成所有这些,生成所有这些文件。是的,我快速向您展示如何做。还有一点时间,我们就切入下一部分。为此,有一个需求模式,您可以在其中定义车辆类型。让我们定义一个出租车类型。在哪里?这里。让我们定义一些属性。所以首先,确保它有足够的容量来承载很多人。然后让我们定义使这成为出租车的重要东西。它有一个出租车设备。这是使其成为出租车的技术术语。现在您可以定义使用此类型的车辆。当然,您必须将其保存到文件。所以您得到这种类型定义。然后您得到具有此类型的车辆。您可以将它们放在模拟中的任何地方,让它们停在某个地方,然后出租车算法将从那里开始接客。您可以在教程数据集中找到所有这些文件。
出租车用户#
我们还需要定义允许乘坐出租车的行人。在目前的场景中,我们生成了允许步行和使用公共交通的行人。步行是隐含的。行人总是被允许这样做。现在我们用一个允许的模式,多式联运路由模式出租车来定义它们。所以,您也可以在批处理文件中找到这个。不需要打字出来。所以,我们生成允许使用出租车车队的行人的随机起点/终点。现在让我们看看它是什么样子。嗯,还有一件事。
多式联运路由#
我们必须对算法和约束做一些决定。例如,出租车可以在哪里接载和放下乘客?需求响应交通的一个流行选择是使用现有基础设施。所以,让出租车按需行驶,但让它们在公共交通站点接载和放下行人。为了反映这个选择,我们使用这些选项运行我们的多式联运路由,我们将接送的换乘限制在公共交通站点。然后我们得到一个没有拼车的例子。所以让我们看看。那么我们有什么?我们有出租车,它们都在这里进入网络。现在它们四处走动,运送行人。如您所见,蓝色的行人,他们正乘坐出租车。绿色的行人正在步行往返公交车站。黄色的行人在基础设施处等待。所以一切都运行得很好。不幸的是,用 50 辆出租车和 1800 名想在半小时内乘车的人,要让每个人都到达目的地需要相当长的时间。如果您算一下,这根本行不通。没有足够的出租车车队来服务这么多人。但他们确实尽力了。尽管每个人都必须等待相当长的时间,但最终都送达了。所以如果您看统计数据,他们等待了一个多小时。这很糟糕。所以有另一个配置使用 100 辆出租车。所以等待时间减少到不到半小时。不,比半小时多一点,但仍然不太好。所以有另一个配置向您展示了如何使用另一种允许最多两人拼车的算法。同样,等待时间减少了。所以总旅行时间也减少了。如果您使用开发版本,您还可以成功运行一个允许更多拼车的版本,这进一步减少了每个人的等待时间。但您可能需要使用更多的出租车来服务这么多的需求,或者您必须重新配置行人,让他们接受更长的步行以减少出租车用户。但所有这些您现在都可以用 SUMO 来做,我对出租车模拟的未来感到非常兴奋。
出租车 - 展望#
因为我们确实希望将 SUMO 建立为这种算法测试的平台。SUMO 现在已经为您提供了基线算法,您可以将您自己的算法与之比较。目前缺少的一个功能是在出租车已经在服务请求的途中时重新调度它们。现在,拼车必须在请求开始之前发生。另外,我们想做的是扩展空闲出租车的行为。现在,您可以让它们停止,或者让它们在网络中随机绕圈。但也许最好让它们开到某个专门的服务站,这可以以某种方式配置。所以我们计划提供更多选项。当然,在时间方面还有很多细节。有行人预订乘车的时间,它希望被接载的时间,以及它实际上在路上被接载的时间。现在,我们只有一个时间用于所有这三个,我们希望在未来区分它们。好的。
有一些花絮。有一个奖励。但您必须查看教程文件才能找到它们,因为现在,我们时间不够了,至少如果我们还想回答一些问题的话。所以感谢聆听,现在就和您交流。
观众提问#
- 出租车可以与其他公共交通结合吗?是的,可以。如果您允许出租车和公共交通两种模式,那么多式联运路由将能够计算这种路线。
- 您可以在左侧通行网络中添加右转车道吗?是的。您可以自定义网络中的所有连接。所以如果自动生成的连接不符合您的要求,您可以更改它们。
- 可以控制出租车和客户的匹配策略吗?是的。但在这种情况下,您需要连接您自己的匹配算法。所以有一些 TraCI 调用可以轻松实现这一点。但目前无法将现有的调度策略与您自己的结合起来。您要么使用 SUMO 算法,要么连接您自己的调度器。
- 工作时间脚本中应该写入哪个时间?哦,这是关于 ActivityGen 的问题,我宁愿不在这里详细说明。给我写邮件。
- 如果我使用流量生成车辆,例如定义每小时 500 辆车,这是均匀生成的还是遵循泊松分布?所以这取决于。您可以通过两种方式实现。如果您使用 vehicles per hour 属性,那么您会得到均匀的间距。但您可以定义一个概率流量,其期望数量为 500 辆。它每秒都有一定的概率生成一辆车,这会给您非常接近泊松分布的东西。
- 是否有任何特殊工具来模拟自动驾驶汽车?如果是,是中观尺度的吗?嗯,好问题。我认为经常被问到。嗯,在某种程度上,SUMO 中的所有汽车都是自动驾驶的,因为没有人驾驶它们。问题只是,这是现实的自动驾驶行为吗?这很难回答,因为目前还没有自动驾驶汽车的标准。有些人说他们会以更小的车距行驶,因为他们有技术这样做。其他人会争辩说,他们比人类驾驶员更保守,因为他们必须非常注重安全,也许这取决于情况,他们是更激进还是更保守,所以很难有“那个”自动驾驶汽车,但您有各种配置参数,您可以探索关于自动驾驶汽车与人类驾驶员有何不同的不同假设,但您不会在中观模拟中找到这个,因为它太粗糙了。在那里您可以指定预期的流量,但人类和自动驾驶驾驶员之间的差异可能是在更小的尺度上,更微观的尺度上。
- 可以在两个方向使用同一条车道吗?如果一个方向有优先通行权,是的。相反方向行驶,正如其名,是 SUMO 中可以激活的一个可能功能。只是要注意,它目前与子车道模型不兼容,这是我承诺了多年要修复的东西。
- 有人提到德国高速公路有计数数据。是的,我认为我们应该研究将其集成到向导中,但这仍然无法满足所有国际用户的需求,他们在澳大利亚某处生成场景并希望获得现实世界的交通数据。所以很难获得这种计数数据的全球标准。
好的,我想我们应该进入下一环节,因为我们还有空间在那里回答问题。
