„SUMO” változatai közötti eltérés

Innen: GIS Wiki
(Kiegészítő Eszközök)
(Szimuláció)
116. sor: 116. sor:
  
 
===Szimuláció===
 
===Szimuláció===
 +
 +
A szimuláció futtatásához meg kell adnunk egy konfigurációs fájlt. Ez a fájl írja le a szimuláció paramétereit. Ebben kell meghivatkozni a további input fájlokat, például az útvonal választási fájlt.
 +
 +
Az útvonal választási fájl tartalmazza a jármű típusokat is például:
 +
  <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>
 +
 +
Itt megadhatjuk a kategória méretét, gyorsulási és fékezési kapacitását. Illetve a hozzá tartozó jármű követési modellt és annak paramétereit. Lehetőség van a grafikus megjelenítés módosítására is. Láthatjuk, hogy egy jármű valójában egy jármű típus és a hozzá tartozó útvonal. Természetesen további paraméterek adhatók meg neki, például a kezdeti sebesség.
 +
 +
Azt már bemutattuk, hogyan kell hálózatot generálni, tehát a legfontosabb fájlok a hálózat és az útvonal választás. Ezek elegendők a konfiguráció elkészítéséhez. Itt meg kell adni hány virtuális ütemnyit szeretnénk szimulálni. Illetve, hogy milyen típusú outputot várunk. Egy példa konfiguráció:
 +
<configuration>
 +
    <input>
 +
        <net-file value="hello.net.xml"/>
 +
        <route-files value="hello.rou.xml"/>
 +
    </input>
 +
  <output>
 +
  …
 +
  </output>
 +
    <time>
 +
        <begin value="0"/>
 +
        <end value="10000"/>
 +
    </time>
 +
</configuration>
 +
 +
Ekkor lefuttathatjuk a szimulációt az alábbi parancssal
 +
sumo -c <konfigurációs fájl>.sumocfg
 +
Ha vizualizációt is szeretnénk akkor
 +
sumo-gui -c <konfigurációs fájl>.sumocfg
  
 
===Grafikus Interfész===
 
===Grafikus Interfész===

A lap 2014. június 1., 17:36-kori változata

A SUMO egy közúti, tömegközlekedési és vasúti mikroszimulációs nyílt forráskódú szoftver. Felhasználását tekintve alkalmas kereszteződések, lokális úthálózatok, lámpabeállítások, menetrendek tervezésének támogatásához. Pontosabban ezek teszteléséhez. Lehetőséget nyújt úgynevezett online szimulációhoz, ami azt jelenti, hogy szimuláció közben megváltoztathatjuk az úthálózat adatait, például egy balesetet szimulálhatunk. Illetve a lámpa beállításokat is megváltoztathatjuk szimuláció közben, ezzel pl napszak vagy detektor alapú lámpabeállításokat is tesztelhetünk.


Története

A SUMO-t 2000-ben kezték el írni, ​GPLv3-el. Az első verzió 2009-ben készült el. Jelenleg 0.13.0-ás verzió a legújabb. Célja a közúti forgalom kutatások támogatása.

Telepítés

A telepítendő bináris ezen linken érhető el. Elérhető Windowsra, Suse Linuxra, Fedorára, Scientific-re és Ubuntura is. Open Source jellegéből következik, hogy buildelhető tetszőleges környezetben, természetesen ehhez szükséges QT és pyton támogatás

Technológiai Leírása

A SUMO alapvetően c++-ban írt szoftver, a hozzá tartozó kiegészítő eszközök pytonban írt scriptek. A grafikus felülete Qt-ben íródott. A szimulációhoz használt matematikai modell jól elkülönített modulban helyezkedik el.

Matematikai háttér

A SUMO-ban beállítható minden jármű típushoz tartozó követési modell. A követési modell azt határozza meg, hogy egy jármű milyen sebességgel haladjon.

Wiedemann

Ennek a modellnek két változata is létezik, a 74-es és a 99-es. Előbbi kevesebb paraméterrel dolgozik, második viszont 10 paraméterrel, így különböző sebesség tartományokban más-más viselkedéssel ruházhatjuk fel a járműveket, ezzel alkalmassá válik országúti forgalom modellezésére, de a városi forgalom esetén a túl sok paraméter miatt nehézkes a paraméterezése. A modell egyszerű nulladrendű képlettel adja meg a kívánt követési távolságot. Ennek kiértékelése során kell eldönteni, hogy az adott jármű, hogyan változtassa a sebességét. Erre is ad kiszámítási módot a modell.

A modell egyetlen lineáris összefüggéssel leírható: bx= (bx_add+bx_Multi*z)* √v, a hol a bx a biztonságos távolság, v a sebesség, bx_add a biztonságos távolsági komponens, z paraméter 0 és 1 közti érték, általában 0,5 , 0,15-ös standard eltérés mellett. Tehát az első lökhárítók közti távolság az ax+bx, ax pedig a nyugalmi távolságuk, azaz ax = L(n-1) +AXadd. Ahol az AXadd kalibrációs paraméter. A bx_add és a bx_multi becsülhetők a kapacitás mértékéből. A modell a szükséges követési távolságot határozza meg, tehát a sebesség meghatározása további számításokat igényel.

Bizonyos implementációkban az additív kalibrációs paramétert elhagyják, a SUMO-ban, pedig fixen 1. Ha determinisztikus modellre van szükség, akkor a z=1 választást használják. Az első lökhárítók közti távolság az ax+bx, ax pedig a nyugalmi távolságuk, azaz ax = L(n-1) +AXadd. Ahol az AXadd kalibrációs paraméter, az L(n-1) pedig a követett jármű hossza. A bx_add és a bx_multi becsülhetők a kapacitás mértékéből. Ennek módja a kalibráció fejezetben található. A bx értéke alapján el kell dönteni, hogy hogyan változzon a jármű sebessége, ehhez meg kell határozni jelenlegi távolság alapján. Ennek a döntésnek a meghozatalához a további mutató számokat kell meghatározni, ezek alapján lehet eldönteni, hogy követésre, közelítésre, vészfékezésre, vagy intenzív gyorsításra van szükség. Ilyen felosztásra látható példa az alábbi diagramon. Vegyük észre,hogy az ezen lévő értéken nem a számunkra rendelkezésre álló értékek, azokat ki kellene számítani. Implementációkor viszont inkább használt stratégia ezen elv visszavezetése a rendelkezésre álló értékekre.

A modell tovább fejlesztett változatának (Wiedemann 99) 10 paramétere van. Ez inkább az autópályák forgalmára van kifejlesztve.


Krauss

A SUMO a Krauss modelt használja alapértelmezésként. Ez a modell a biztonságos sebességet adja meg. Itt a modell közvetlenül megadja az új sebességet. Előnye, hogy jól paraméterezhető, akár különböző forgalmi szituációkra különböző viselkedést is definiálhatunk. Sőt a SUMO képes különböző járművek esetén is különböző paraméterezést használni. Ezzel szimulálva az agrasszív és a "szőke" vezetőket is. Az útviszonyok is ezen paraméterek beállításával történhet. Bár a SUMO ezt nem támogatja közvetlenül.

Modul szerkezet

A modul szerkezet kialakításánál a funkciók elkülönítését tartották szemelőtt. A nyílt forráskód miatt ez igen hasznos. Két szemszögből is, az egyik, hogy az egyikben vétett hiba a másikban nem jelentkezik. A másik, hogy így szakértői területek szerint is tagolódik. Érdekessége viszont, hogy a különböző modulok nem minden esetben vannak össze integrálva.

A szoftver rendszer az alábbi modulokból áll:

  • DFRouter: Utvonal készítés ciklussal indukálva
  • Daurouter: Legrövidebb út választása
  • Foreign: külső packagek interfészelése, úgy mint R fa, openGl stb…
  • GUI: graphical itnerface in Qt
  • GUInetLader: Hálózat megjeleníítése
  • GUISim: Szimuláció megjelenítése
  • jtrrouter: Útvonal készítés junction swichelési módszerrel
  • microsim: A simuláció futatása, ez tartalmazza pl a járművek jármű típusok definícióját
  • netbuild: Az útvonal hálózat gráfjának elkészítése, és módosítása szimuláció könnyű futatásához, pl hurokélek transzformálása
  • netgen: absztrakt network
  • netimport: Úthálózat importálása
  • od2trips: OD mátrixból generál utakat
  • polyconvert: A „tájat” adja hozzá a hálózathoz, tehát a térkép szinezését végzi
  • router: alapértelmezett útválasztóó modell
  • utils: globális segéd osztályok gyüjteménye

Projekt szervezés

A SUMO egy open source szoftver, tehát nyilt repozitorival kell, hogy rendelkezzen. A ticketing rendszere is nyílt. A projekt szervezéséhez a Trac nevű eszközt használják, ez wikioldalt, ticketing rendszert és verzió kontrolt is tartalmaz.

Használata

Kiegészítő Eszközök

Hálózat generátor

A hálózat építést a netconvert nevű program végzi. Három inputra van szüksége:

  • Csúcsokat leíró xml file, pl.: hello.nod.xml
 <nodes>
   <node id="1" x="-500.0" y="0.0" />
   <node id="2" x="+500.0" y="0.0" />
   <node id="3" x="+501.0" y="0.0" />
 </nodes>
  • Utakat leíró xml file, pl: hello.edg.xml
 <edges>
   <edge from="1" id="1to2" to="2" type=”a” />
   <edge from="2" id="out" to="3"  type=”b”/>
 </edges>
  • kereszteződéseket leíró xml file
 <edges>
   <edge from="1" id="1to2" to="2" type=”a” />
   <edge from="2" id="out" to="3"  type=”b”/>
 </edges>
  • kereszteződéseket leíró xml file
 <types>
  <type id="a" priority="3" numLanes="3" speed="13.889"/>
  <type id="b" priority="3" numLanes="2" speed="13.889"/>
  <type id="c" priority="2" numLanes="3" speed="13.889"/>
 </types>

Az utakhoz rendelhetünk prioritást, és funkcionalitást. Az utat sávokra oszthatjuk. Pontosabban minden élhez kell, hogy tartozzon egy vagy több sáv.

Alább látható egy példa a netconvert használatára, ennek az outputja a generált hálózat, példánkban a hello.net.xml

  netconvert --node-files=hello.nod.xml –type-files=hello.typ.xml --edge-files=hello.edg.xml --output-file=hello.net.xml

A netconvert nem csak általunk definiált hálózat készítésére alkalmas. Ez igen hasznos funkció, mert általában egy létező topológiát akarunk használni. Azaz importálhatunk hálózatot más formátumokból. Például open streat map export fájlt a következő képen használhatjuk SUMO hálózat építésére

 netconvert --osm-files asd.osm -o asd.net.xml


Táj színezés

Kevésbé fontos, de látványos eszköz a polyconverter, mellyel az importált térkép színezését is hozzá adhatjuk a hálózatunkhoz. Alább láthatunk példát a használatára

 polyconvert --net-file bartok.net.xml --osm-files map.osm --type-file typemap.xml -o bartok.poly.xml

Szimuláció

A szimuláció futtatásához meg kell adnunk egy konfigurációs fájlt. Ez a fájl írja le a szimuláció paramétereit. Ebben kell meghivatkozni a további input fájlokat, például az útvonal választási fájlt.

Az útvonal választási fájl tartalmazza a jármű típusokat is például:

 <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>

Itt megadhatjuk a kategória méretét, gyorsulási és fékezési kapacitását. Illetve a hozzá tartozó jármű követési modellt és annak paramétereit. Lehetőség van a grafikus megjelenítés módosítására is. Láthatjuk, hogy egy jármű valójában egy jármű típus és a hozzá tartozó útvonal. Természetesen további paraméterek adhatók meg neki, például a kezdeti sebesség.

Azt már bemutattuk, hogyan kell hálózatot generálni, tehát a legfontosabb fájlok a hálózat és az útvonal választás. Ezek elegendők a konfiguráció elkészítéséhez. Itt meg kell adni hány virtuális ütemnyit szeretnénk szimulálni. Illetve, hogy milyen típusú outputot várunk. Egy példa konfiguráció:

<configuration>
   <input>
       <net-file value="hello.net.xml"/>
       <route-files value="hello.rou.xml"/>
   </input>

<output>

</output>

   
</configuration>

Ekkor lefuttathatjuk a szimulációt az alábbi parancssal sumo -c <konfigurációs fájl>.sumocfg Ha vizualizációt is szeretnénk akkor sumo-gui -c <konfigurációs fájl>.sumocfg

Grafikus Interfész