sumo之模拟行人

在前面的文章中介绍了模拟车辆以及交通工具-公共汽车,在道路上除了车辆外还有行人参与。在本文中介绍添加行人。详细的方法和参数可以前往官网查看。

本部分的模拟路网全部沿用上次公共汽车模拟的环境,只需要对部分代码进行修改。

首先,为了让行人通过十字路口,需要在十字路口添加人行横道。使用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>

模拟仿真的效果如下:

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值