SUMO文档005:初级教程(上)

Hello Sumo-介绍

这个教程针对的是第一次使用SUMO的新手。我们建立最简单的网络并使一辆小车在上面行驶。这里提到的所有的文件可以在 <SUMO_HOME>/docs/tutorial/hello 文件夹中找到。最新的版本可能是在目录:<SUMO_HOME>/tests/complex/tutorial/hello/data/

在SUMO中,一个街道网络是由nodes(junctions)和edges(有nodes连接)。因此如果我们想建立一个两条街道的网络,我们需要3个nodes和2条edges。我们将会在Routes部分了解到,为什么最简单的网络不能只是一条边。

Nodes(节点)

所有的nodes都有一个位置(x坐标值和y坐标值,为距离原点的距离)和一个id为了以后的调用。因此,我们最简单的nodes例子看起来是:

<nodes>
    <node id="1" x="-250.0" y="0.0" />
    <node id="2" x="+250.0" y="0.0" />
    <node id="3" x="+251.0" y="0.0" />
</nodes>

你能够通过任何文本编辑器编辑文件并保存为hello.nod.xml,其中.nod.xml是SUMO中Nodes文件的默认后缀。

Edges(边,街道)

现在我们连接nodes为edges。这个做起来很简单。我们有一个原始node ID、一个目标node ID和一个edge ID为了以后调用。每条边(dedge)都是有一定方向的,因此每辆车必须从给定的from开始,在to位置结束。

<edges>
    <edge from="1" id="1to2" to="2" />
    <edge from="2" id="out" to="3" />
</edges>

保存这个数据文件为hello.edg.xml。既然我们有了nodes文件和edges文件,那么我们就能调用SUMO的工具生成一个网络。确保 NETCONVERT 在环境变量中已经进行了设置,然后调用:

netconvert --node-files=hello.nod.xml --edge-files=hello.edg.xml --output-file=hello.net.xml

这样的话就会生成一个名为hello.net.xml文件。

Routes(路由)

既然我们有了net(网络),那么我们就需要一辆车。在SUMO中,车辆有定义其基本属性的类型,比如长度、加速减速、最大限速等。此外,它还需要引入一个具有随机行为的西格玛参数(sigema parameter),并且这个参数在后面模型中会用到。可以将这个参数赋值为0给一个确定的车辆。

现在我们定义一条既包含我们先前定义的两条路边的最简单路由。

最后但并非最不重要,我们定义我们的车辆根据先前的信息,并且给它一个出发时间。文件命名为hello.rou.xml。有很多的选项可以设置去定制一辆车辆和它的类型。关于车辆定制的更进一步信息请移步:Definition of Vehicles, Vehicle Types, and Routes

 

<routes>
    <vType accel="1.0" decel="5.0" id="Car" length="2.0" maxSpeed="100.0" sigma="0.0" />
    <route id="route0" edges="1to2 out"/>
    <vehicle depart="1" id="veh0" route="route0" type="Car" />
</routes>

Configuration(配置)

现在我们将所有的文件整合到一起作为配置文件:

<configuration>
    <input>
        <net-file value="hello.net.xml"/>
        <route-files value="hello.rou.xml"/>
    </input>
    <time>
        <begin value="0"/>
        <end value="10000"/>
    </time>
</configuration>


保存文件为hello.sumo.cfg,然后就可以进行仿真:

sumo -c hello.sumocfg

或者GUI界面:

sumo-gui -c hello.sumocfg

当使用GUI程序时,增加一个gui-setting文件是有用的,因此,您不必在启动程序后更改设置。更改hello.sumo.cfg文件为:

<configuration>
    <input>
        <net-file value="hello.net.xml"/>
        <route-files value="hello.rou.xml"/>
        <gui-settings-file value="hello.settings.xml"/>
    </input>
    <time>
        <begin value="0"/>
        <end value="10000"/>
    </time>
</configuration>


然后会生成带有viewsetting的文件:

<viewsettings>
    <viewport y="0" x="250" zoom="100"/>
    <delay value="100"/>
</viewsettings>


保存文件,命名为hello.settings.xml。
这里我们使用视口设置摄像机的位置,我们使用延迟去设置每一步的仿真之间的延迟为毫秒级别。

进一步阅读

更多的关于使用XML定义网络的信息可以浏览: Networks/BuildingNetworks from own XML-descriptions.当然,NETCONVERT也允许导入来源其他软件的网络数据,更多的信息可以访问:Networks/Import

更多的关于车辆定义的信息可以浏览:Definition of Vehicles, Vehicle Types, and Routes.

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值