SUMO یک شبیه ساز ترافیک

بدون ديدگاه

3 –  SUMO ( Simulation of Urban Mobility )

 

3 -1 – معرفی :

SUMO یک شبیه ساز ترافیک است . این بدین معناست که SUMO قادر به شبیه سازی در اندازه یک شهر است .

البته این شبیه ساز می تواند برای شبیه سازی شبکه های کوچک نیز استفاده شود .

SUMO تحت سیستم عامل های windows و Linux قابل اجراست . برای کسب اطلاعات بیشتر و دریافت این نرم افزار به وبسایت SUMO به آدرس http://sumo.sourceforge.net مراجعه کنید .

3 -2 – نصب شبیه ساز SUMO  :

در این بخش نحوه نصب  SUMOرا در سیستم عامل های لینوکس ( ubuntu 7.10  ) و ویندوز توضیح خواهیم داد :

3 -2-1- نصب در Linux ( ubuntu 7.10 ) :

برای نصب SUMO ابتدا باید پیشنیاز های آنرا نصب کنیم :

# sudo apt-get update

# sudo apt-get install build-essential

# sudo apt-get install xorg-dev

# sudo apt-get install python

# sudo apt-get install python-dev

# sudo apt-get install libxext-dev

# sudo apt-get install libx11-dev

# sudo apt-get install freeglut3 freeglut3-dev libglut3 libglut3-dev

# sudo apt-get install libgl1-mesa libgl1-mesa-dev

# sudo apt-get install libjpeg62-dev libgtk2.0-dev

# sudo apt-get install libxxf86vm-dev libbz2-dev

# sudo apt-get install libglu1-mesa-dev

# sudo apt-get install mesa-common-dev xlibmesa-glu libgludev libsdlm-dev

xlibmesa-gl-dev libartsc0 libartsc0-dev

# sudo apt-get install libxerces27 libxerces27-dev libxml-xerces-perl

 

همچنین نیاز به بسته های Xerces (XML-parser)  ، FOX-Toolkit (GUI Toolkit) ، PROJ

(Cartographic Projections Library)و GDAL (Geospatial Data Abstraction Library) داریم که می توانید این بسته ها را به ترتیب از وبسایت های زیر دریافت و کامپایل کنید .

http://xerces.apache.org/xerces-c/index.html

http://www.fox-toolkit.org/

http://trac.osgeo.org/proj

http://www.remotesensing.org/gdal

و در آخر نصب بسته SUMO :

./configure –with-fox=$HOME –with-proj-gdal=$HOME –with-xerces=$HOME –prefix=$HOME

make

make install

 

 

برای پیدا کردن اطلاعات بیشتر در مورد پارامترهای اسکریپت ./configure در SUMO به لینک زیر مراجعه کنید :

http://sumo.sourceforge.net/wiki/index.php/LinuxBuild

برای اطمینان از نصب موفق SUMO  می توانید محیط گرافیکی آنرا با استفاده از دستور ./sumo-guisim  اجرا کنید .

به عنوان مثال فرض کنید SUMO در مسیر /home/temp/sumo-0.9.8  واقع است ، برای اجرای آن دستورات زیر را اجرا کنید :

cd /home/temp/sumo-0.9.8/src

./sumo-guisim

 

اگر نصب شما بدون اشکال باشد ، محیط گرافیکی SUMO ( شکل زیر (  ظاهر خواهد شد :

 

 

3-2-2 – نصب در ویندوز :

نصب SUMO در ویندوز به مراتب ساده تر از نصب آن در لینوکس است .

برای نصب SUMO در ویندوز به بسته Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)  نیاز است. این بسته را از لینک زیر دریافت و نصب کنید :

http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displaylang=en

سپس نسخه SUMO مخصوص ویندوز را از لینک زیر دانلود کرده و آنرا از حالت فشرده خارج سازید. به همین سادگی SUMO نصب شد . برای اجرای محیط گرافیکی و دیگر اسکریپت ها  به شاخه bin در فولدر SUMO بروید.

http://sumo.sourceforge.net/downloads/downloads.shtml

 

3 -3 مثالی برای آشنایی با نحوه کار با SUMO  :

در این بخش با مثالی بسیار ساده با اصول کار با شبیه ساز    SUMO آشنا می شویم.

در این مثال ساده ترین شبکه ممکن را ایجاد کرده و اجازه میدهیم یک خودرو در آن را رانندگی کند .

تمامی فایل های این مثال در /data/tutorial/hello در مسیر نصب SUMO موجود است .

در SUMO شبکه خیابان ها از گره ها  ( noede ) و لبه ها (edge  ) تشکیل شده است . لبه ها ، گره ها را به یکدیگر متصل می کنند. بنابراین اگر بخواهیم یک شبکه با دوخیابان ایجاد کنیم که به یکدیگر متصل باشند ، به 3 گره و دو لبه نیاز داریم .

گره ها :

گره ها حاوی دو پارامتر کلیدی طول – عرض جفرافیایی ( فاصله تا مبدا به متر ) و شناسه ( id : برای دسترسی های بعدی ) می باشند .

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

 

 

شما می توانید از یک ویرایشگر متنی به انتخاب خود برای ذخیره دستورات بالا استفاده کنید و آنرا با نام hello.nod.xml ذخیره کنید که nod.xml پسوند پیش فرض برای فایل حاوی تنظیمات گره در SUMO است .

لبه ها :

در این مرحله گره ها را با لبه ها به یکدیگر متصل می کنیم. اینکار به همین سادگی گفتن آن می باشد.

پارامتر fromnode گره ابتدای لبه و پارامتر tonode گره پایانی لبه را مشخص می کند . پارامتر id نیز یک شناسه برای دسترسی های بعدی فراهم می آورد .

<edges>

<edge fromnode=”1″ id=”1to2″ tonode=”2″ />

<edge fromnode=”2″ id=”out” tonode=”3″ />

</edges>

 

 

داده ها را در فایل hello.edge.xml ذخیره کنید .

اکنون که گره ها و لبه ها را داریم ، می توانیم از اولین ابزار SUMO به نام netconvert  برای ایجاد کردن شبکه استفاده کنیم. ( اطمینان حاصل کنید که در مسیری هستید که ابزار netconvert موجود است . )

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

 

این دستور شبکه ما را در فایل hello.net.xml ایجاد می کند.

مسیرها :

اکنون ما یک شبکه داریم و به یک خودرو نیاز داریم تا در آن ویراژ دهد !!

در SUMO ، خودروها دارای نوع هستند که خصوصیات اصلی آنها از جمله طول ، شتاب ، حداکثر سرعت و … را مشخص می کند . علاوه براین خودرو به پارامتری به نام sigma نیاز دارد که یک رفتار تصادفی را با توجه به مدل خودرو تولید کند . مقداردهی صفر به این پارامتر باعث تولید یک خودرو قطعی ( deterministic ) می شود.

اکنون یک مسیر برای خودرو ایجاد می کنیم که دو لبه را در بر می گیرد.علت اینکه از 2 لبه برای مثال استفاده کردیم این است که یک خودرو هنگامی که به انتهای یک لبه می رسد ناپدید می شود .

 <routes>  <vtype accel=”1.0″ decel=”5.0″ id=”Car” length=”2.0″ maxspeed=”100.0″               sigma=”0.0″ />  <route id=”route0″>1to2 out</route>  <vehicle depart=”1″ id=”veh0″ route=”route0″ type=”Car” /></routes> 

 

کد ها در فایل hello.ru.xml ذخیره می کنیم .

پیکربندی :

در این مرحله تمامی فایل ها را در بک فایل پیکربندی با هم پیوند می دهیم.

<configuration>

<files>

<net-file>hello.net.xml</net-file>

<route-files>hello.rou.xml</route-files>

</files>

<simulation>

<begin>0</begin>

<end>10000</end>

</simulation>

</configuration>

 

 

و در فایل hello.sumo.cfg  ذخیره می کنیم .

اکنون می توانیم شبیه سازی را با دستور زیر در محیط متنی

 > sumo -c hello.sumo.cfg 

یا با دستور زیر در محیط گرافیکی SUMO اجرا کنیم .

 > guisim -c hello.sumo.cfg 

 

 

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.

هجده − 6 =