SUMO ( Simulation of Urban Mobility) 是免费、开源的交通系统仿真软件,可以实现交通流的微观控制,即具体到道路上每一辆车的运行路线都可以单独规划察明启。
SUMO 最早发布于 2001年,主要由 German Aerospace Center 下属的 Institute of Transportation Systems 的研究人员开发。
如果使用 SUMO 仿真,官方希望引用的参考文献为:
SUMO 已经在 Ubuntu 的官方 repo 中了,可以用如下命令直接安装:
如果要安装最新版本,也可以手动添加 SUMO 的 repo 再安装
SUMO 并不是单个程序,而是包含了多个 package/ application,提供了丰富的交通系统建模仿真的功能。主要包括如下应用程序:
对于小型网络,或者一些需要特别构造的道路网络,可以采用手动方式创建,主要包含 5 个文件:
上述文件本质上都是 xml 文件,不过为了方便区分其作用,额外增加了一个后缀名。
假设我们要创建如下图所示的小型道路网络
图中黑色节点对应交通路口,连边对应道路。每个路口所在位置坐标已给出。
创建如下 node file,名为 my_nod.nod.xml:
创建对应上述路网的 edge file,名为 my_edge.edg.xml,内容如槐伍下:
其中 id 和 type 可以随便命名,这里为了方便记忆,用 3L45,表示有 3 条 lane,速度上限是 45 m/s,随后会在 type file 中对相应的 type 进行定义。
对前述 edge 文件中的 type 进行定义,文件名为 my_type.type.xml:
基于以上三个文件,可以通过命令 netconvert 创建 net 文件,命令如下:
命令中各个参数的含义非常直观。
上述命令生成 my_net.net.xml 文件。以后如果改动了 node, edge, type files,都要重新生成一次 net file.
定义 route file,名为 my_route.rou.xml:
关于 Vehicle 和 route 的详细介绍,可以 参考官网 。
运行程序时需要送入一些参数,可以通过命令行形式送入,如果参数太多、太长,为了方便起见,可以将参数统一放到 xml config 文件中,在运行时,可以调用这个 config 文件。
定义 my_config_file.sumocfg:
如果一个参数既出现在了 config 文件中,又在 command line 中,则采用 command line 的设置。
一切准备就绪,下边运行程序
出现如下界面:
可以检查一下生成的路网是否与期望的相同,以及每条路上的 lane 数目。
然后将工具栏中的 Delay 设置败如为 100 ms,否则仿真开始之后瞬间结束。
点击绿色三角符号,运行仿真。在时间走到 10 时,bus 和 car 出现在相应的到路上。时间到达 1999 时仿真结束。
在工具栏中还可以设置 standard, fast standard, real world。可以切换一下,看看显示效果。
至此,一个简单的 SUMO 仿真 demo 就完成了。
在手动构造路网 net.xml 文件时,我们也可以用 SUMO 自带的 NETEDIT 程序,通过 NETEDIT GUI 编辑路网,可能效率更高一些。感兴趣的读者可以参考 SUMO 官网的教程 。
上述手动设置路网的方式只适用于比较简单的情况,如果要构造与现实世界比较接近的大型路网,我们可以用下边的从外部导入 OSM 路网的方法。
进入 https://www.openstreetmap.org , 通过搜索城市、街道找到目标道路网,然后 export 即可。
这里我选用了上海市东川路附近的路网,如下图
以上就得到了 .net.xml 文件,这里不是通过基于 node, edge, type 文件的整合,而是直接从 osm 地图转化过来。下边就是如何得到 route 文件。
对于这种大型的路网,手动创建 route 文件也很麻烦,这里我们用 SUMO 自带的 randomTrips.py 程序创建随机的 route 文件
其中 randomTrips.py 文件放在了 SUMO_HOME 目录下,即 /usr/share/sumo 目录下。
config 文件名为 sjtu.sumocfg,内容如下:
到目前为止,已经设置好了所有必须的文件,可以通过以下命令启动仿真:
启动仿真,截图如下:
局部放大:
上边导入 osm 地图的方法还是比较麻烦,它主要包括 4 步:
实际上,SUMO 自带了一个 osmWebWizard.py 程序,整合了上述较为独立的步骤,在同一个 *** 作界面,“一站式” 完成上述步骤。
用 osmWebWizard.py 运行仿真也是 SUMO tutorial 中的第一个项目。
注意:必须以 python 2 运行,python 3 会在 generate scenario 的时候报错。
如果提示找不到该文件,就直接去 SUMO_HOME 的目录下面 /usr/share/sumo/tools 运行该文件。
没有问题的话,应该会在浏览器中打开如下页面。这里初始地图位置是 Berlin。
右侧有四个 tab,由上到下以此为:
首先是选定要仿真的地图环境。可以缩放、移动视图,通过右侧的 Select Area 可以选定一个区域。最好不要选择太大范围,否则仿真很占资源,甚至导致死机。
然后选择交通流中的车辆类型和密集程度,through traffic factor 对应了车辆穿过率,count 的单位是 per hour-lane-kilometer。基于这里的参数设置,randomTrip 程序会产生相应的 random route。
以上就设定好了地图和 route,点击右上方的 Generate Scenario, 就可以进入仿真界面了。
今天我给大家带来的是如何在不同局域网的客户机(client)也能实现系统的自动安装,大家可以来学习下。一、原理篇1.先实现全网的互通即能ping通,这样是实现跨局域网实现自动安装系统的基础。2.在192.168.2.0/24这个局域网中搭建一个dhcp server,之所以在客户端所在的局域网中搭祥培建dhcp server,是因为通过dhcp server可以自动获取ip地址而且还可以指定路由以及指定tftp server。指定路由相当于默认网关这样client就可以和PXE server通信,指定tftp server客户端可以通过tftp协议下载pxelinux.0文件以及内核启动文件等。通过text.cfg文件知道ks.cfg文件的位置,下载并按照ks.cfg文件的步骤安装系统。由ks.cfg文件就知道系统安装文件在192.168.0.105的/var/www/ubuntu目录中,请求安装文件安装之。二、实战篇1.实现全网互通把PXE Server的网关指向192.168.0.111,dhcp server 的网关指向192.168.2.1在192.168.0.111主机上做路由:#route add default gw 192.168.1.1在192.168.2.1主机上做路由: #route add default gw 192.168.1.2在客户端dhcp server 上测一下联通性:(当然ping最简单)这样全网就互通了。2.客户端dhcp server的设置:#vim /etc/dhcp3/dhcpd.confsubnet 192.168.2.0 netmask 255.255.255.0 {range 192.168.2.100 192.168.2.200option domain-name "192.168.2.2"option domain-name-servers 192.168.2.2option routers 192.168.2.1#这是指定客户端网关为:192.168.2.1default-lease-time 600max-lease-time 7200next-server 192.168.0.105#这里指定tftp server 为192.168.0.105filename "pxelinux.0"}对于客户端来说dhcp server的设置是非常重要的,当然也可以用dhcp 中继、路由这里就不介绍了。三、测试安装client 分配的ip是:搏宴信192.168.2.101 ,网关:192.168.2.1tftp server :192.168.0.105这样设置完之后跨局域网自动安装系统就已经完成了。虽说步骤不多,但基轮还是需要用户们认真按步骤执行,才能牢记此方法哦。1、首先在一台计算机上运行TFTP Server软件,最方便的TFTP Server软件就是是3CDaemon2、通过Telnet登录到你要备份的路由器上,在特权模式下输入如下命令:<H3C1409FS24-01>tftp 172.20.34.2 put config.cfg config.cfg
\\这条命令的意思是芦肆将该交换机的config.cfg配置文陪掘轿件通过TFTP上传到TFTPserver 172.20.34.2上,文件名为config.cfg
File will be transferred in binary mode.
Copying file to remote tftp server. Please wait... |
TFTP: 2881 bytes sent in 0 second(s).
File uploaded successfully.
\\看散物到上面的4行,表示文件上传成功。
3、文件保存在第1步设置的Root目录中。
4、当要将备份的配置文件下载到交换机上时则使用下面的命令:<H3C1409FS24-01>tftp 172.20.34.2 get config.cfg config.cfg
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)