欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hello sumo

程序员文章站 2024-03-23 09:45:10
...

建立一个最简单的网络,并使一辆小车在上面行驶。
使用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>

这里我们使用视口设置摄像机的位置,我们使用延迟去设置每一步的仿真之间的延迟为毫秒级别。

相关标签: sumo