在前面的文章中介绍了模拟车辆以及交通工具-公共汽车,在道路上除了车辆外还有行人参与。在本文中介绍添加行人。详细的方法和参数可以前往官网查看。
本部分的模拟路网全部沿用上次公共汽车模拟的环境,只需要对部分代码进行修改。
首先,为了让行人通过十字路口,需要在十字路口添加人行横道。使用netedit打开路网文件,点击菜单栏中如下所示图标:
然后点击需要添加人行横道的十字路口,会出现如下情形:
然后点击需要添加人行横道的两条道路,然后点击左侧参数栏的Create crossing即可。完成每条道路的人行横道添加以后,效果图如下:
路网编辑完成以后,还需要在路由文件中编辑行人。在路由文件中定义行人的方式跟定义车辆类似,详细的参数可以前往官网查看。
下面是官网给出的一段代码:
<person id="foo" depart="0">
<walk edges="a b c"/>
<ride from="c" to="d" lines="busline1"/>
<ride .../>
<walk .../>
<stop .../>
</person>
在行人的定义中,包括id和进入仿真的时间,步行、骑车、坐车、停止等等参数。
跟车流类似,sumo同样给出了定义人流的方法,官网给出的示例如下:
<personFlow id="person" begin="0" end="1" number="4" departPos="80">
<walk from="2/3to1/3" to="1/3to0/3" arrivalPos="55"/>
<ride from="1/3to0/3" to="0/4to1/4" lines="train0"/>
<walk from="0/4to1/4" to="1/4to2/4" arrivalPos="45"/>
<stop lane="1/4to2/4_0" duration="20" startPos="40" actType="singing"/>
<ride from="1/4to2/4" to="3/4to4/4" lines="car0"/>
</personFlow>
在上述代码中定义了4个运动轨迹和方式相同的行人。
在行人的定义中,walk表示步行,ride表示乘坐交通工具,stop表示停止不动。下面的实例通过定义一个行人,从起点步行进入仿真到公交车站,然后乘坐公共汽车到下一站后再步行走到道路尽头。在这次实例中,在前面公共交通的实例基础上加入行人的定义即可。bus_addition.add.xml变为:
<additional xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/additional_file.xsd">
<busStop id="busstop1" lane="E2_0" startPos="35" endPos="50" lines="100 101 102"/>
<busStop id="busstop2" lane="-E3_0" startPos="25" endPos="40" lines="100 101 102"/>
<vType id="BUS" accel="2.6" decel="4.5" sigma="0" length="12" minGap="3" maxSpeed="70" color="1,1,0" guiShape="bus"/>
<vehicle id="0" type="BUS" depart="35" color="1,0,0">
<route edges="E2 -E3"/>
<stop busStop="busstop1" duration="20"/>
<stop busStop="busstop2" duration="20"/>
</vehicle>
<vehicle id="1" type="BUS" depart="1" color="0,1,0">
<route edges="-E0 -E3"/>
<stop busStop="busstop2" duration="20"/>
</vehicle>
<person id="person0" depart="5" color="0,0,1">
<walk from="E2" busStop='busstop1' departPos="80" arrivalPos="50"/>
<ride busStop='busstop2' lines="0"/>
<walk to="-E3" arrivalPos="85"/>
</person>
<person id="person1" depart="5">
<walk from="E2" to="-E3" departPos="80" arrivalPos="55"/>
</person>
</additional>
模拟仿真的效果如下:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)