车路协同-使用SUMO软件实现智能交通灯控制(一)

这里,SUMO的软件安装就贴教程了,其实网上有很多教程,简单的说一下:

sudo add-apt-repository ppa:sumo/stable
sudo apt-get update
sudo apt-get install sumo sumo-tools sumo-doc

使用上面三行即可安装好SUMO,特别是使用深度学习环境的同学,安装完这个就可以跑代码了,是不是很快。如果运行SUMO提示:

 Warning: Environment variable SUMO_HOME is not set, schema resolution will use slow website lookups.

不要着急,设置环境变量即可。

首先:

vi ~/.bashrc

在最后一行增加:

 export SUMO_HOME=/usr/share/sumo

然后使用“:wq”保持退出,最后

source ~/.bashrc

到这里,SUMO环境就安装完了。

这里,给大家介绍快速上手SUMO的5步,就可以仿真:

第一步:设置node点文件:

如我建立hello.node.xml,代码如下:



   

   
   
   
   
   
   
   
   
     

第二步:建立edge文件

我建立hello.edge.xml,代码如下:



   
   

   
   

   
   

   
   

   
   

   
   

   
   

   
   

第三步:把hello.node.xml文件和hello.edge.xml文件转换为网络,可以看见多了hello.net.xml文件

netconvert --node-files=hello.node.xml --edge-files=hello.edge.xml  --output-file=hello.net.xml

第四步:建立路径与车文件:

我的是hello.route.xml,代码如下:


        
        

        
        
        
    
    

第五步:建立配置文件,hello.sumocfg,就是负责加载hello.net.xml与hello.route.xml文件,内容如下:





    
        
        
    

    


到这里,就可以实现仿真了,使用sumo-gui去加载,指令如下:

sumo-gui hello.sumocfg

界面如下:

车路协同-使用SUMO软件实现智能交通灯控制(一)_第1张图片

 

如果,你想写一个脚本运行,如下,我建立了一个start.py调用这些:

import os, sys


if 'SUMO_HOME' in os.environ:
    tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
    sys.path.append(tools)
else:
    sys.exit("please declare environment variable 'SUMO_HOME'")

from sumolib import checkBinary  # noqa
import traci  # noqa



if __name__ == "__main__":

    sumoBinary = checkBinary('sumo-gui')

    traci.start([sumoBinary, "-c", "./hello.sumocfg","--tripinfo-output","tripinfo.xml"])


    step = 0
    while step < 1000:
       traci.simulationStep()
  
       step += 1

    traci.close()

到这里,一个基本的SUMO就可以运行实现仿真了。这里的交通等是四个相位变化的,下次专门针对红绿灯的设置展开讲解。

完整代码下载:https://download.csdn.net/download/caokaifa/12306473

你可能感兴趣的:(SUMO,车路协同)