建立一个最简单的网络,并使一辆小车在上面行驶。
使用SUMO仿真前,我们需要建立运动场景(net.xml),车流文件(rou.xml)
在SUMO中,一个街道网络是由nodes(junctions)和edges(有nodes连接)组成。
Nodes结点
最简单的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
Edges
<edges>
<edge from="1" id="1to2" to="2" />
<edge from="2" id="out" to="3" />
</edges>
保存这个数据文件为hello.edg.xml。
找到sumo安装文件下的bin目录,该目录包含名为 start-command-line.bat 的批处理文件,该批处理文件启动命令行并确保您可以执行SUMO程序。
1)双击执行 start-command-line.bat
2)使用命令cd(更改目录)导航到包含配置和网络文件(hello.nod.xml,hello.edg.xml)的目录
3)输入一个命令,如下
netconvert --node-files=hello.nod.xml --edge-files=hello.edg.xml --output-file=hello.net.xml
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>
文件命名为hello.rou.xml。
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.sumo.cfg
或者GUI界面:
sumo-gui -c hello.sumo.cfg
当使用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>
建立文件hello.settings.xml
<viewsettings>
<viewport y="0" x="250" zoom="100"/>
<delay value="100"/>
</viewsettings>
这里我们使用视口设置摄像机的位置,我们使用延迟去设置每一步的仿真之间的延迟为毫秒级别。