ایجاد چندین SSID برای مودم LEOPARD-530TN

در صورت امکان در روتر وایرلس می توان چندین نام شبکه وایرلس Multi SSID تعریف کرد و کاربران را در چندین شبکه مجزا مدیریت کرد.

بدین صورت با مدیریت کنترل پهنای باند اینترنت و در نظر گرفتن هر نام شبکه وایرلس برای کامپیوترها با استفاده از Mac Filtering و با بدست آوردن مک آدرس کامپیوترهای شبکه می توان یک Multi SSID برای تمامی کاربران شبکه اینترنت فراهم کرد.

البته برای افزایش پهنای باند اینترنت در صورتیکه چندین کانکشن اینترنت دارید می توانید با ترکیب اتصال اینترنت پهنای باند کاربران را نیز تامین کنید، که با این اوصاف بایستی یک هات اسپات ویندوز از نوع نرم افزاری نیز راه اندازی کنید، بدین صورت که بایستی ابتدا مودم را به اینترنت متصل کرده و یک اتصال پل ایجاد و سپس بروی کامپیوتر سرور اینترنت را از طریق هات اسپات بروی روتر وایرلس متصل کنید.

یک چنین شبکه ی که تشریح کردیم نیازمند یک کامپیوتر سرور با دو کارت شبکه برای اتصال به شبکه خارجی و داخلی دارد، مسلما بهترین روش استفاده از نرم افزار TMG برای مدیریت پهنای باند اینترنت باشد که در آینده سعی در آموزش آن خواهیم داشت.

همانطور که اشاره کردیم سطح مدیران بایستی از کیفیت برتری نسبت به سایران کاربران شبکه اینترنت و هم چنین کاربران تحقیق و توسعه نیز به فراخور خود از کیفیت بهتری نسبت به کاربران عادی داشته باشند. به تب در تعریف چندین نام شبکه وایرلس سطح استفاده کاربران از اینترنت را مد نظر خواهید داشت تا بهترین بهره برداری را از کیفیت اینترنت خود داشته باشید.

 توجه داشته باشید که برای هر گروه می توان ضریب امنیت شبکه وایرلس و تنظیمات امنیتی را در نظر گرفت.

تعریف Multi SSID در مودم ADSL LEOPARD

فرض کنید می خواهید کاربران شبکه خود را به چندین قسمت تقسیم کنید، بعنوان مثال: کاربران در سطح مدیریت کاربران در سطح تحقیق و توسعه و سایر کاربران مهمان یا … بدین ترتیب هم مدیریت کاربران را بهتر می توانید به سرانجام برسانید و هم اینکه گروههای مختلف را از نظر کیفیت سرویس دهی اینترنت مشخص کنید.

برای ایجاد چندیدن Interface با پسورد های متفاوت در مودم LEOPARD در منوی Setup زیر منوی WLAN در قسمت سمت چپ گزینه MB SSID را انتخاب کنید در این قسمت شما می توانید علاوه بر SSID اصلی چها SSID دیگر را نیز را فعال کنید با زدن تیک Enable VAP0 - 3  بر هر کدام از آنها در قسمت SSID آن نامی را برای این SSID انتخاب کنید در قسمت broadcast SSID گزینه Enable را فعال کنید و در قسمت Relay Blocking گزینه Enable را انتخاب کرده و همچنین فراموش نکنیک که برای امنیت این Interface در قسمت Authentication Type هر کدام از SSID هایی که فعال کرده اید گزینه Shered Key را انتخاب کنید تا هر کس برای اتصال به این SSID فقط با پسورد بتواند به آن متصل شود.

برای رمز گذاری روی هر کدام از این SSID ها در منوی Setup در زیر منوی WLAN در قسمت سمت چپ گزینه Security را نتخاب کرده و SSID مورد نظر را در قسمت SSID TYPE انتخاب کرده و نوع رمز گذاری را در قسمت Encryption انتخاب کنید که بهترین آنها (WPA2(AES می باشد و در قسمت Pre-Shared Key رمز مورد نظر برای آن SSID که می تواند متفوت از سایر SSID ها باشد را وارد کرده و روی دکمه Apply Changed کلیک کنید.

فراموش نکنید که برای هر کدام از SSID هایی که فعال می کنید رمز گذاشته باشد.

آموزش کامل جلوگیری از هک شدن مودم وایرلس LEOPARD

آموزش کامل جلوگیری از هک شدن مودم وایرلس LEOPARD

آموزش کامل جلوگیری از هک شدن مودم وایرلس LEOPARD - LWS- 530TN آموزش کامل جلوگیری از هک شدن مودم وایرلسهک شدن مودم,جلوگیری از هک شدن مودم,افزایش امنیت مودم وایرلس,آموزش جلوگیری از هک شدن مودم,آموزش هک شدن مودم,هک کردن مود وای فای,مودم wireless

این روزها حتما تبلیغ هک وای فای را می بینید در اینترنت ، قطعا ترس این را هم دارید که کسی از اینترنت شما استفاده کنید در صورتی که خودتان خبر ندارید.

در این مطلب آموزشی برای شما قرار داده ایم که ۹۹% به جلوگیری از هک شدن مودم و اینترنت شما جلوگیری می کند

گام نخست : اولین گام برای افزایش امنیت مودم تغییر پسورد ورود به مودم هست ، اغلب کاربران که از مودم های بی سیم استفاده می کنند هیچگاه پسورد ورود به مودم رو تغییر نمیدهند و این یکی از رخنه هایی هستش که میتونه باعث بشه افرادی براحتی با ورود به مودم شما تغییراتی رو برای استفاده آسان از اینترنتتون در تنظیمات مودم انجام دهند ، پس پیشنهاد میکنم ابتدا پسورد ورود به مودم رو تغییر بدید ، نحوه تغییر این پسورد در دفترچه مودم نوشته شده ، اگر دفترچه رو گم کردید کافی هست توی گوگل جمله نحوه تغییر پسورد ورود به مودم (نام مودم) رو جستجو کنید ، بیش از هزاران آموزش برای این کار به شما نمایش داده خواهد شد.

معمولا در اکثر مودم ها با وارد کردن آی پی ۱۹۲٫۱۶۸٫۱٫۱ در مرورگر به صفحه تنظیمات می روید با یوزر و پسورد پیشفرض admin . یادتون نره در اکثر مودم ها حتما باید اتصال مودم و سیستم با کابل شبکه باشد تا بتوانید به تنظیمات دسترسی پیدا کنید (برای تغییر آنها در منوی Setup زیر منوی LAN در قسمت IP Address آدرس جدید برای مودم خود را وارد کنید و همچنین برای تغییر پسورد ورود به بخش تنظیمات در منوی Maintenance زیر منوی Password در جدول یوزر ها در پایین admin را انتخاب کنید و در قسمت Old Password پسورد قبلی که پیش فرض آن admin را وارد کنید و سپس در قسمت New Password پسورد جدید ا وارد کنید و در قسمت Confirm Password پسورد جدید را تکرار کنید و در نهایت روز دکمه Modify کلیک کنید و همچنین می توانید یوزر و پسورد جدید ایجاد کنید به کمک دکمه Add در قسمت پایین)

 

گام دوم : دومین مرحله برای افزایش امنیت مودم بیسیم استفاده از رمز برای استفاده از اینترنت بدون سیم هست ، در قسمت security مودم روش هایی برای گذاشتن پسورد روی وایرلس مودم وجود داره ، روش های WPA ، WEP و WPA 2 از روش های پسورد گذاری روی وایرلس مودم هست ، که استفاده از WPA 2 به شما پشنهاد میشه ، چرا که هک پسورد این روش خیلی سخت هست ، اما روش های دیگه مقداری از امنیت پسورد گذاری کمتری برخوردار است.( در قسمت کافیگ مودم توضیح داده شده است)

گام سوم : روش سوم مخفی کردن SSID مودم شماست ، شما در تنظیمات مودم می توانید SSID رو پنهان کنید تا افراد دیگر نتوانند کلا اینترنت بی سیم شما را ببینند.

گام چهارم : چهارمین روش برای افزایش امنیت مودم وایرلس استفاده از فیلتر کردن ابزارها به کمک مک آدرس است ، به کمک این ابزار مودم شما خواهید توانست به کمک تعریف مک آدرس های ابزار هایی که به مودم متصل می شودند به مودم بفهمونید که فقط دستگاه های تعریف شده میتونند از اینترنت استفاده نمایند. هر دستگاه جدیدی که می خواهید به مودم اتصال بشه رو می تونید مک آدرسش رو به مودم تعریف کنید ، من خودم از این روش خیلی خوشم میاد شما چطور؟ می تونید اطلاعات خوبی رو از اینجا بدست بیارید! (برای فیلتر کردن به کمک مک آدرس در منوی Setup در زیر منوی LAN در قسمت MAC Address Control پایین صفحه برای هر کدام از پورت ها که میخواهید این فیلتر اعمال شود تیک آن را بزنید مثلا برای فیلتر کردن وای فای تیک قسمت WLAN را بزنید و حتما قبل از زدن دکمه Apply Changes در قسمت پایین آن مک آدرس وسیله ای که به آن متصل هستید را در قسمت New MAC Address وارد کرده و دکمه Add را بزنید تا در جدول Current Allowed MAC Address Table وارد شود و سپس دکمه Apply Changes  را بزنید هر وسیله ای که با آن به مودم وصل می شوید مک آدرس آن را در لیست وارد کنید تا بتواند به مودم وصل شود)

 

گام ششم : یکی از روش ها برای امنیت مودم وایرلس ، خاموش کردن وایر لس کل مودم در زمان های بیکاری است ،اگر شما در ساعاتی از شبانه روز از مودم استفاده نمیکنید ، به هیچ عنوان مودم را روشن نگه ندارید! چرا منتظرید اگر میخواید بخوابید حتما مودم رو هم خواموش کن بعد بخواب!

توضیح کامل گام چهار: 

مرحله۱:

ابتدا مرورگر خود را اجرا و وارد مدیریت دستگاه مودم خود شود. با استفاده از آدرس 192.168.1.1 و پسورد (توضیحات بیشتر در قسمت کافیگ مودم)

 

مرحله۲:

پس از ورود به بخش تنظیمات روتر در منوی Setup زیر منوی WLAN را انتخاب نماید و در قسمت Show Active Clients لیست wireless تمامی دستگاه های که به دستگاه مودم شما متصل هستند نمایان شود. (تلفن همراه، لب تاپ و سایر دستگاه ها) پس مشاهدMAC ای پی دستگاه های خود آنها را کپی کنید. همچنین در قسمت تنظیمات دستگاه خود در قسمت Advanced می توانید مک ـدرس دستگاه خود را پیدا کنید.

 

 

 

مرحله۳:

هنگامی که مک آی پی تلفن همراه و لپ تاپ خود را کپی کردید از منو تنظیمات روتر،  Setup در زیر منوی LAN در قسمت MAC Address Control پایین صفحه برای هر کدام از پورت ها که میخواهید این فیلتر اعمال شود تیک آن را بزنید مثلا برای فیلتر کردن وای فای تیک قسمت WLAN را بزنید

 

مرحله۴:

حتما قبل از زدن دکمه Apply Changes در قسمت پایین آن مک آدرس وسیله ای که به آن متصل هستید را در قسمت New MAC Address وارد کرده و دکمه Add را بزنید تا در جدول Current Allowed MAC Address Table وارد شود و سپس دکمه Apply Changes  را بزنید هر وسیله ای که با آن به مودم وصل می شوید مک آدرس آن را در لیست وارد کنید تا بتواند به مودم وصل شود

آموزش تنظیم مودم LEOPARD - 530TN

آموزش تنظیم مودم LEOPARD - 530TN

و همچنین 515TN 

 

بررسی محصول:

مودم LEOPARD - 530TN یک مودم ADSL وایرلس بوده که دارای پهنای باند 300 مگابیتی و 4 عدد پورت LAN صدمگابیتی است. این مودم که از استانداردهای سری B,G,N میباشد میتواند برای ساخت یک شبکه وایرلس کوچک و به صرفه مورد استفاده قرار گیرد. مودم های سری N بصورت تئوریک دارای بردی تا حدود 3 برابر مدل های سری G بوده و پهنای باند آنها نیز 3 برابر می باشد. در قسمت وایرلس از آخرین استاندارد های امنیت مانند WEP, WAP, WPA2 و همچنین TKIP , AES بهره می برد. توانایی کار با سیستم عامل های مختلف را دارا بوده و به راحتی تنظیم می شود و با تمامی سرویس دهندهای اینترنت در ایران سازگار است.

قابل توجه اینکه شرکت LEOPARD طرح ظاهری مودم های ADSL است. همانطور که در شکل نشان داده شده طراحی آن بسیار شیک و زیبا بوده است.

 

چراغ های نمایشگر پنل جلویی به شرح زیر است: از سمت چپ

  1. چراغ Power:  نشانده اتصال صحیح آداپتور برق به دستگاه است.
  2. چراغ های LAN1-4: نمایانگر اتصال هر کدام از پورت های LAN 1-4 به دستگاه دیگر می باشد.
  3. چراغ WLAN: نمایانگر فعال بودن قسمت وایرلس در مودم است.
  4. چراغ ADSL: در صورت ثابت روشن بودن نمایانگر وجود سرویس ADSL روی خط تلفن متصل شده است که اصلاحا به آن چراغ رانژه می گویند.
  5. چراغ Internet: در صورت تنظیم صحیح مودم و اتصال مودم با اینترنت این چراغ روش خواهد شد.

 

پنل پشت دستگاه:

 

اتصالات پشت دستگاه به شرح زیر است:

  • POWER: اتصال آداپتور برق
  • ON/OFF: دکمه روش و خاموش کردن
  • RESET: دکمه ریست کردن مودم
  • LAN 1-4: اتصال کابل شبکه برای کامپیوتر
  • LINE: اتصال به خط تلفن از طریق Splitter
  • آنتن ها: محل آنتن های ثابت

 

اتصال مودم:

1. نیازمندی های سیستمی:

  • سرویس ADSL فعال از سرویس دهنده گان اینترنت
  • یک کامپیوتر با کارت شبکه کابلی و کابل شبکه (کابل شبکه در پک مودم موجود است) و یا یک لپتاپ - تبلت - گوشی داری شبکه WIFI
  • یک مروگر وب مانند فایرفاکس، اینترنت اکسپلورر، کروم، اپرا یا .....

 

2. نیازمندی های محیط نصب مودم:

  • این مودم نباید در محلی با رطویت وگرمای بیش از حد قرار داده شود
  • مودم را جایی قرار دهید که به همان آسانی که به وسایل دیگر متصل میشود به برق نیز دسترسی داشته باشد
  • مراقب سیمکشی های آن باشد تا سر راه تردد افراد قرار نگرفته باشد
  • مودم را می توانید روی میز یا یک قفسه قرار دهید
  • از قرار دادن آن در مکان هایی با تشعشع زیاد الکترومغناطیس خودداری کنید

 

اتصال به مودم

لطفا قبل از هر کاری از فعال بودن سرویس ADSL خود مطمئن شوید سپس مراحل زیر را برای اتصال مودم انجام دهید:

1. قرار دادن مودم در محل مناسب، بهترین محل برای قرار دادن مودم مرکز شبکه وایرلس شماست

2. قرار دادن آنتن در حالت عمودی 

3. اتصال خط تلفن از طریق Splitter موجود در پک مودم به مودم

4. اتصال آداپتور برق و سپس روشن کردن مودم

5. اتصال کارت شبکه کامپیوتر به یکی از پورت های LAN مودم با کابل شبکه مناسب و یا لپتاپ - تبلت - موبایل را به شبکه وای فای مودم متصل کنید (اگر قبلا برای آن رمز آن را فراموش کرده اید دکمه RESET را در پشت مودم چند ثانیه نگه دارید تا چراغ های آن خاموش و روشن شوند سپس مودم شما با اسم LEOPARD ظاهر می شود بدون رمز به آن متصل شوید)

 

شکل زیر راهنمای خوبی برای اتصالات است:

 

 

راهنمای تنظیم سریع:

1. آدرس IP پیش فرض این مودم 192.168.1.1 و Subnet Mask آن 255.255.255.0 است. این مقادیر قابل تغییر است اما در این راهنما ما از مقادیر پیش فرض جهت تنظیم استفاده می کنیم. تنظمات IP کارت شبکه متصل شده را برای اتصال صحیح تنظیم کنید،

2. تنظیم این مودم توسط یک مرورگر وب انجام میشود و در هر سیستم عاملی امکانپذیر است. آدرس مودم را در مرورگر خود وارد کنید: که همان 192.168.1.1 می باشد.

 

3. بعد از چند لحظه پنجره جدیدی باز شده که از شما Username و Password مودم را درخواست می نماید این مقادیر بصورت پیش فرض admin و admin (بصورت حروف کوچک) است. آنها را وارد کرده و روی دکمه OK کلیک کنید.

 

توجه:

الف. این Username و Password را با Username و  Password ی که ISP به شما داده اشتباه نگیرید.

ب. اگر صفحه درخواست Username و Password ظاهر نشد به به معنی این است که یا شما تنظمات کارت شبکه مناسبی ندارید که باید آنها را بازبینی کنید و یا روی مروگر شما پ ر و ک س ی تنظیم شده که باید در اینترنت اکسپلورر به منوی Internet Option و سپس به Connection و سپس در قسمت Lan Setting رفته و تیک آیتم Using P r o x y را برداشته و OK کنید.

1. بعد از ورود موفق به صفحه تنظمیات مودم، روی منوی SETUP کلیک کرده و زیر منوی WAN که به صورت پیش فرض انتخاب شده است را انتخاب کنید.

2. مقادیر VPI و VCI را در فیلد های مربوطه وارد کنید، مقادیر VPI و VCI برای هر ISP ممکن است متفاوت باشد مقادیر متداول آن در ایران 0 و 35 برای اکثر سرویس دهنده ها و 0 و 59 برای پارس آنلاین است.  اگر از این مقادیر مطمئن نیستید از ISP خود سوال کنید. سپس مقدار Channel Mode را به مقدار PPPoE تغییر دهید، در این قسمت اطلاعات (Username و Password) مربوط به سرویس اینترنتی را که خریداری کرده اید در فیلد های Username و Password  را در فیلد های مربوطه وارد کنید و سپس دکمه Add را در پایین صفحه بزنید، اگر در قسمت پایین مقدار پیش فرضی که مقادیر Username و Password وجود دارد با استفاده از ایکن سطل زباله آن را حذف کنید و فقط مقداری که خودتان تنظیم کرده اید وجود داشته باشد همچنین می توان مقدار تنظیم شده را با ایکن سمت راست آن که به شکل مداد می باشد مقادیر آن را تغییر دهید.

3. سپس نوبت تنظیمات وایرلس شماست. در منوی Setup زیر منوی WLAN را انخاب کنید و اگر می خواهید وایرلس مودم شما غیر فعال باشد در تیک قسمت Disable Wireless LAN Interface را بزنید. در قسمت SSID نامی را برای شبکه بیسیم خود برگزینید و در قسمت Associated Clients لیست دستگاه هایی که به شبکه وای فای مودم شما متصل هستند را نمایش می دهد. و در آخر دکمه Apply Changes را بزنید.

 

6.  اکنون یک کار مهم دیگر باقی مانده که آن تنظیم رمز روی وایرلس آن است تا تنها افراد مجاز قابلیت استفاده از وایرلس این مودم را داشته باشند. برای این کار در منوی Setup زیر منوی WLAN را انتخاب کرده و در قسمت سمت چپ گزینه Security را انتخاب می کنیم. در قسمت Encryption از لیست موجود می توانید انواع سیستم های رمز گذاری وایرلس را انتخاب کنید.  یکی از گزینه های WEP یا WPA/WPA2 یا WPA-PSK/WPA2-PSK را انتخاب کنید.بهترین و مناسب ترین آن گزینه WEP2(AES) است. آنرا انتخاب کنید تا آیتم های مربوطه ظاهر گردند، سپس در قسمت Pre-Shared Key یک رمز بین 8 تا 63 کارکتری وارد کنید (این رمز را برای مواقعی که با دستگاه های وایرلس مانند نوت بوک به مودم متصل میشوید به خاطر داشته باشد) و پس رو دکمه Apply esChang پایین صفحه کلیک کنید.

 

تنظیمات مودم به پایان رسیده است. روی Next کلیک کنید.

 

در این مرحله پس از چند لحظه چراغ Internet مودم روشن میشود که نشاندهنده اتصال صحیح به اینترنت است. در غیر اینصورت یک بار مودم خود را خاموش و روشن کنید و حدود 2 دقیقه منظر بمانید. اگر مشکل دوباره ادامه داشت مجددا مراحل بالا را با دقت تکرار کنید.

 

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

 

 

وسایل نقلیه خود مختار حال حاضر فرصت های جدید برای پرداختن به طرح ترافیک قابل انعطاف از طریق کنترل ترافیک می باشد. بررسی امکان استفاده از حراج در محل تقاطع برای تعیین جهت و حرکات متضاد می باشد. این طرح در زمان غیر عملی برای رانندگان انسان و وسایل نقلیه مستقل از طریق سیستم عامل انسانی می باشد. و همچنین ما می توانیم یک مدل ARX احتمالاتی را برای پیش بینی رفتار فرمان راننده و طبقه بندی سبک رانندگی در حال حاضر را مورد استفاده قرار داد. بر اساس اندازه گیری سنسورهای خودرو و الگوریتم آنلاین طبقه بندی سبک رانندگی و پیش بینی رفتار فرمان طراحی شده است.و اعتبار بر روی داده های ثبت شده در یک مسیر فرمان و الگوریتم طراحی شده است برای تمایز بین دو سبک رانندگی مربوط به رانندگی عادی و پرخاشگر.

 

 

 

 

 

 

 

2-1-مقدمه

 

هدف ما بررسی انصاف با داشتن یک پیشنهاد سیستم عامل خیر خواه برای حفظ زمان سفر مناسب برای رانندگان با بودجه کم می باشد. یک پیاده سازی از این مکانیسم در یک شبیه ساز میکروسکوپی ارائه شده است و آزمایش بر روی نقشه در مقیاص شهرستان انجام می شود.

 

2-2-مدیریت تقاطع مستقل مبتنی بر حراج

 

وسایل نقلیه خودمختار (AVS) دارای پتانسیل فوق العاده ای برای کاهش تراکم و پیامد های آن از 5.5 میلیارد ساعت تلف شده ، 2.9 میلیارد گالن سوخت به هدر رفته ، 56 میلیارد پوند انتشار گاز کربن در ایالات متحده می باشد. در خصوص تقاطع ها منبع عمده تاثیر در خیابان های شریانی می باشد.

طرح های موجود برای کنترل تقاطع مانند چراغ راهنمایی و علایم توقف باید با محدودیت های رفتار انسان مطابقت پیدا کنند. طرح پیشنهادی در مدیریت رزرو بر اساس FCFS می باشد. یک مکانیزم قیمت گذاری مبتنی بر بازار می تواند اجازه دهد که مسافرت ها خودسازماندهی شوند که سفرهای با الویت ارزش بیشتری داشته باشد بدون اینکه مزاحمتی برای رانندگان بی جهت داشته باشد. به طور خاص ما یک طرح مدیریت تقاطع مبتنی بر عمل ، غیر متمرکز و مستقل را پیشنهاد می کنیم. هر راننده دارای یک "عامل کیف پول" می باشد که به طور خودکار مناقصه اعتبار از طرف راننده اجازه عبور راننده دورتر از تقاطع بسته به ارزش آنها از زمان می باشد. در اصل طرح مدیریت تقاطع مبتنی بر عمل با استفاده از بازتاب ارزش مسافران از زمان و کیف پول بر اساس بودجه راننده و فاصله باقی مانده تا مقصد است.

 

2-2-1-کارهار مربوط به مدیریت تقاطع

کارهای مشابه به کار Vasirani و Ossowsaki انجام شده است. که کمترین گسترش پروتکل رزرو AIM و استفاده از مزایده به صورت جداگانه در تقاطع ها نیز هست. که مسئول رسیدگی به کل شبکه آنها را معرفی و انتساب می کند که کدام تقاطع قیمت رزرو به روز رسانی در زمان واقعی در پاسخ به تقاضای فعلی می باشد.

رانندگان راه را بر اساس تنظیم خود بین زمان و هزینه تعیین می کنند. مزایده تا زمانی که آنها حاضر به پاسخگویی به قیمت رزرو هستند را انتخاب می کند.اگر چه شباهتی به این رویکرد ارد اما چند تمایز کلیدی وجود دارد.

  1. مسیرها بر اساس قیمت گذاری محدود نیست و با استفاده از قیمت گذاری به منظور کنترل رانندگان از طریق تقاطع می باشد.
  2. از سیستم مناقصه حقوق صاحبان سهام استفاده می کنیم.
  3. مفهوم مزایده را به کار در سیاست تقاطع های سنتی و نیز رزرو خود مختار تعمیم داده ایم.

 

شکل (2-1) : مقدار مناقصه هر راننده (در واحد سنت) که در زیر یا کنار نام آنها نشان داده شده است و پیشنهاد برای هر انتخاب نیز نشان داده است. برای سادگی فض می کنیم که تمام رانندگان مایل به عبور مستقیم در سراسر تقاطع هستند.

 

2-2-2-مزایده تقاطع

برای اولین بار یک نمونه از نحوه مزایده در کار کلی تقاطع می باشد . پس از آن روش عمومی رسمی و توصیف چگونگی جزئیات آنها در علائم توقف ، چراغ های راهنمایی ، تقاطع ورزرو مستقل اعمال می شود.توضیح تنظیم خودکار به شرح زیر است.

 

2-2-2-1-مثال

به عنوان مثال تقاطع پیشنهادی ما Iluster و چگونگی مزایده است. در نظر گرفتن شکل (2-1) در Ocerco که راننده مایل به ترک تقاطع است.فرض کنیم که تنها یک راننده در یک زمان حرکت کند. در سیستم سنتی سفارش توسط اولین راننده رسیده به تقاطع است. اما در اینجا به جای آن حراج تعیین می کند. تنها B.C.D.E نامزد هستند. رانندگان دیگر پشت این چهار تا هستند. توجه داشته باشید که رانندگان پشت C هیچ چیز را پیشنهاد نمی کنند. در حالی که راننده پشت E کمک می کند.

مجموع مناقصه برای هر یک از رانندگان نامزد نشان داده شده است. با 50سنت B برنده و نفر دوم E با 40 سنت است. 40 سنت برندگان B پیشنهاد 30 سنت و پایین ترین پیشنهاد 20 سنت باید با هم کل پیشنهاد پرداخت کنند. از آنجا که B شامل 60% از پیشنهاد برنده و G 40% از پیشنهاد است. و B 60% از 40 سنت و G 16 سنت باقی مانده را می پردازد. این یک واقعیت است که برنده مزایده های قبلی در حراج بعدی تاثیر نمی گذارد.

 

2-2-2-2-روش عمومی

در الگوریتم C (لیستی از آیتم های نامزد برای صاحبان حراج) و بازندگان (تاخیر رانندگان به دلیل نتیجه مزایده) و شرکت کنندگان تقاطع تمام رانندگان در حال سفر در خط هستن که به تقاطع R رسیده اند.

 

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

  1. یک لیست از ایتم های نامزد برای صاحبان حراج (C)
  2. جمع آوری مناقصه از تمام رانندگان شرکت در مناقصه
  3. تعیین برنده و قیمت دوم
  4. جمع آوری پرداخت از هر راننده که برنده مناقصه برای آیتم استفاده کنید.

روابط اغلب تجربی رخ نمی دهد. برندگان هزینه قیمت دوم به همان نسبت که در اصل به آنها پیشنهاد کرده اند تقسیم می شود.

 

2-2-2-3-انواع سیاست های تقاطع

در این بخش به سه نوع مختلف سیاست های کنترل تقاطع گنجانیده شده است. علائم توقف ، چراغ های راهنمایی و رزرو مستقل ساده ترین سیاست نشانه توقف که در مثال بالا نشان داده شده است. یکی دیگر از سیاست ها چراغ راهنمایی می باشد که زمانهایی از پیش تعیین شده است که می تواند در مناقصه شرکت کند. در نهایت سیاست رزرو تقاطع انعطاف پذیر سیاست برای مدیریت وسایل نقلیه مستقل به وسیله مدیریت تقاطع است. مزایده ها بارها و بارها اجرا می شود و انتخاب یک راننده در هر دور ، رانندگان باید در جهت مزایده و مشخص حرکت کنند.

در اجرا رانندگان در تمامی خطوط منجر به یک تقاطع می توانند در مزایده شرکت کنند حتی اگر آنها دور هستند.  رانندگان تنها شامل نامزدهای آماده برای ورود به تقاطع می باشند. انتظار پشت راننده دیگر هنوز برای ورود مورد تایید نیست.

 

شکل (2-2) : A می خواهد مستقیم حرکت کند در سراسر تقاطع و C ،B می خواهند به سمت چپ بروند. در جاده سمت چپ B باید الویت را دریافت کند. از آنجا که باید اتومبیل C برای حرکت جلوتر صبر کند. در مسیر راست C ممکن است به طور نا محدود صبر کند اگر یک جریان ثابت از رانندگان با پول بیشتر وجود دارد.

 

2-2-2-4-مناقصه به صورت کیف پول خودکار

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

  1. کیف پول سواری مجانی که در هیچ مناقصه ای شرکت نمی کند.
  2. کیف پول شخصی با بودجه بی نهایت داشته باشیم.
  3. کیف پول وسیله نقلیه اضطراری که این مدل را می توان برای وسایل نقلیهاضطراری مورد استفاده قرار داد که پیشنهاد بالا است.

در نهایت ما یک کیف پول عادلانه داریم با بودجه اولیه برای سفر و تقسیم وجوه باقی مانده در هر زمان بیشتر در زمان عبور از تقاطع می باشد. در هر تقاطع کیف پول بودجه کلی مناقصه عادلانه جایی که تمام تعداد باقی مانده از تقاطع در برنامه ریزی شده در حال حاضر و بودجه است که مقدار پول باقی مانده از بودجه اصلی است.

 

 

2-2-2-5-تنظیم قیمت رزرو با انصاف

دو مشکل باقی مانده عبارتند از :

  1. یک جریان ثابت از رانندگان ثروتمند رقابت در برابر یک گروه کوچک بدون بودجه زیاد است.
  2.  همچنین نباید گروه های کوچکتر به طور نامحدود متوقف شوند.

برخی از سیستم های مناقصه تمام فعال برای جلوگیری از رانندگان دائمی گیر رانندگان برای متوقف بودن بر اساس زمان انتظار پاداش می گیرند.

 

2-2-3- نتایج تجربی

برای تعیین کمیت چگونگی مزایده آن را در یک میکرو شبیه سازی به نام AORTA انجام دادیم نتایج آن عبارتند از:

2-2-3-1-برسی اجمالی شبیه سازی

برنامه ATRTA برای هدایت مسیریابی و آنالیز حمل و نقل شبیه سازی میکروسکوپی منبع باز مبتنی بر عمل نوشته شده در Scala است. چارچوب شبیه سازی سیستم حراج تنها تعداد 9500 خط کد داشت. شبیه سازی در فضای پیوسته است (به معنی جاده ها به کاشی ها تقسیم نشده)و در زمان گسسته (به معنی درآمد حاصل از شبیه سازی در افزایش برخی از مرحله زمانی ثابت) می باشد. شبیه سازی در هر شهرستان را می توان با وارد کردن نقشه شهری وارد کرد.

 

2-2-3-2-راه اندازی تجربی

سناریو AORTA پیشنهادی یک شبیه سازی قطعی است. گرفتن چند تقاضا ترافیک (منبع، مقصد، زمان حرکت و بودجه هر راننده) ، تقاطع (حراج ها) و پارامترهای شبیه سازی (فاصله زیر اتومبیل ، محدودیت فیزیکیو...).

 

 

2-2-4-بحث عدالت اجتماعی

در این بخش طرح به طور خلاصه رانندگان ثروتنمد را ترجیح می دهد.

عدالت اجتماعی  بر اساس موارد زیر انجام شده است.

  1. عملیات محیط زیست
  2. عدالت در جمعیت اقلیت
  3.  نگرانی در مورد توزیع منافع
  4. هزینه های میان گروه های مختلف جمعیتی
  5. حقوق جمعیت کم درآمد

2-3-طبقه بندی رفتار رانندگان با استفاده از مدل احتمالاتی آنلاین ARX

یکی از روش های بیشترین امید برای گرفتن قابلیت های راننده و پیش بینی رفتار  راننده استفاده از مدل ترکیبی است. با این فرض که اغلب رانندگان بین حالت های مختلف سویچ می کنند مانند رانندگی راست ، تغییر خط و یا اجتناب از برخورد.

مدلهای پنهان مارکوف (HMMها) رفتار راننده را به خوشه های مختلف بر اساس سیگنال های خودرو تقسیم می کنند. با برآورد احتمال انتقال بین حالت ها فرآیند تصمیم گیری راننده می تواند بدست آید. خوشه حالت رفتار راننده با استفاده از HMM ها می تواند رفتار در هر حالت به وسیله پسرفت با مدل ورودی بیرونی ARX توصیف کرد. ترکیب HMM ها و ARX اجازه می دهد رفتار راننده را دریافت کنیم. مدل SS-ARX در یک شبیه سازی شناخت دستیابی به عملکرد خوب در رفتار راننده در یک سناریو اتومبیل مورد آزمایش قرار گرفت. مدل ARX احتمالاتی (PRARX) مدل های متعلق به خانواده مدل ARX هستند که برای کاربردهای آنلاین مناسب است. در مقایسه با مدل SS-ARX خروجی سیستم تنها به حالت فعلی بستگی ندارد.

پارامتر های مدل در دو حالت قرار دارندو نام حالت مطابق خروجی مورد انتظار از هر حالت داده شده است. حالت اول: یک راننده تهاجمی شتاب بالاتری در منحنی ها و حرکت جانبی بیشتری نسبت به یک راننده استاندارد دارد. حالت دوم: یک راننده عادی است. مدل بر اساس اطلاعات جمع آوری شده در یک مسیر با استفاده از آزمون دو سبک رانندگی مختلف تایید شده است.

 

 

2-3-1-سابقه نظریه

در این بخش روی اصول مدل سازی و PRARX آنلاین و شناسایی آنلاین تمرکز می کنیم.

  1. مدل ARX

محاسبه خروجی سیستم S در زمان T می باشد.

 

شکل (2-3) : سیستم با ورودی های Ut و خروجی های Yt

  1. مدل PRARX

این مدل به منظور توصیف سیستم می تواند به S1……S8 گسترش یابد.

 

2-3-2-تست اطلاعات

داده های استفاده شده برای مدل سازی رفتار راننده که در آن یک راننده ولوو V50 است که در مسیر آزمون بدون حضور ترافیک جمع آوری شده است. تست رانندگی توسط دو راننده مختلف اجزا شده است شامل راننده عادی و راننده پرخاشگر. آزمون شامل یک جاده منحنی در شکل (2-4) نشان داده شده است. هر دوی راننده ها به دنبال همان مسیر طی شده هستند.

 

شکل(2-4) : مسیر آزمون

 

2-3-3-بررسی اطلاعات

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

2-3-3-1-طبقه بندی رفتار راننده

یک گام زاویه فرمان پیش بینی شده توسط مدل شناخته است، همراه با اندازه گیری زاویه فرمان رسم شده در شکل (2-5) که زاویه فرمان پیش بینی بسیار نزدی به اندازه گیری زاویه فرمان است. این رقم نشان می دهد که طبقه بندی های انجام شده توسط مدل PRARX کاملا صحیح است.

 

شکل (2-5) پیش بینی زاویه فرمان یک قدم جلوتر ، برآورد رانندگی تهاجمی (دایره آبی رنگ) و برآورد رانندگی عادی (صلیب سبز) ، رفتار رانندگی واقعی (منطق سایه دار) است. و N:رانندگی عادی و A:رانندگی تهاجمی. زاویه فرمان اندازه گیری شده (خط سیاه) ، حد انحنای نمونه (خط قرمز) یعنی بالاتر از خط قرمز باید به درستی تخمین زده شود. در حالی که نمنه های زیر خط قرمز اطلاعات کافی برای برآورد قابل اعتماد نیست.

 

2-3-3-2-برآورد پارامتر

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

 

شکل (2-6) : ریشه میانگین مربع خطا به عنوان تابعی از طول پنجره برآرود. محور Y به منظورتشخیص کوچکترین ارزش بوده است.

ارزش مطلق عبارت است از پارامترهای مشخص ارئه اطلاعات در مورد سهم های مربوط به خروجی مدل از داده ها قبل از برآورد نرمال می باشد. ارزش بزرگ مطلق بدان معنی است که سیگنال ورودی متناظر است. تاثیر قابل توجهی در خروجی مدل دارد.

 

2-4-نتیجه گیری

 

ما کنترل تقاطع در یک چارچوب میکروسکوپی برای فعال کردن درایورهای خود را بین ترجیحات و سلایق از زمان و هزینه معرفی کرده است. و همچنین نباید توزیع نابرابر ثروت به خطر اندازد و عدالت اجتماعی با استفاده از یک سیستم عامل خیر خواه انجام شود.

 

مدیریت و حمل و نقل عمومی

 

 

عملکرد هر سیستم حمل و نقل عمومی نظیر اتوبوسرانی با توجه به تقابل عرض و تقاضا صورت می گیرد. طراحی خطوط اتوبوسرانی از اهمیت خاصی برخوردار است که با توجه به شرایط فنی و مالی محدود برای سرمایه گذاری جهت زیر ساخت این سیستم انجام می شود. همچنین یکی دیگر از مسائل مهم در سیستم حمل و نقل عمومی، مسیر یابی کاربر مبناست. در چنین سیستمی هدف جلب رضایت کاربر از سیستم جهت برآورده شدن همزان اهداف وی در مسیرهای ارئه شده توسط الگوریتم مسیریابی است. الگوریتم های متداول مسیریابی در سیستم های اطلاعات مکانی معمولا تک هدفه بوده و یا به صورت تک هدفه حل می شوند و جنبه های دیگر نیاز کاربران را مد نظر قرار نیم دهد.

 

 

 

 

 

 

 

 

 

 

 

 

3-1-مقدمه

 

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

به طور کلی مسئله طراحی شبکه شامل حداقل یا حداکثر کردن یک سری اهداف وابسته با توجه به محدودیتهای مختلف است که این محدودیت ها اجرایی سیستم و یا محدودیتهای منابع را نشان می دهند. در دهه های گذشته در چنین تلاش تحقیقاتی مسئله طراحی شبکه خطوط اتبوسرانی بررسی شده است. روش های موجود در زمینه طراحی شبکه حمل و نقل همگانی را می توان دو گروه عمده تقسیم کرد، گروهی شبکه را به صورت مطلوب یا نظری در نظر گرفته اند و گروهی با مسیرهای واقعی کار می کنند. راه اندازی و بهره برداری از سیستمهای حمل و نقل همگانی، هزینه های گزافی برای ارائه کننده سیستم و معمولا دولت دارد. به همین دلیل ارائه کننده سیستم سعی در بهینه سازی هزینه های خود دارد.

 

3-2-طراحی خطوط شبکه اتوبوسرانی شهری

 

با استفاده از الگوریتم جستجو ممنوع که یکی از روشهای فراابتکاری است، می توان با در نظر گرفتن یک مسئله بهینه سازی با هدف حداقل کردن مسافت و زمان کل سفر، شبکه خطوط اتوبوسرانی را طراحی کرد.

3-2-1-الگوریتم جستجو ممنوع

در مسائل چند جمله ای نامقید دشوار (NP-Harrd) پیچیدگی فضای حل وجود جوابهای بهینه محلی سبب می شود تا روشهای بهینه سازی موجود نتوانند به راحتی به جواب بهینه واقعی دست یابند و یا جهت دستیابی به چنین جوابی زمان زیادی صرف شود. بنابر این روشهای فراابتکاری نظیر روش گرم و سرد کردن شبیه سازی شده (SA)، الگوریتم ژنتیک (GA)، الگوریتم شبکه عصبی (NN)، الگوریتم مورچگان (AC) و روش جستجو ممنوع (TS)، ارائه شدند  که با جستجوی تصادفی به روش سعی و خطا، فضای شدنی مسئله را برای یافتن جوابهای نزدیک به بهینه مورد بررسی قرار می دهند. این روشها قابلیت حل مسائل با ابعاد بزرگ و با حداقل نیاز به فرضیات ساده سازی را در کمترین زمان ممکن دارا هستند.

فلسفه روش جستجو ممنوع (TS) هدایت و بهره برداری از یک مجموعه قواعد هوشمند برای حل مسائل است. بنابر این روش جستجو ممنوع بر مبنای انتخاب مفاهیمی از حوزه هوش مصنوعی و بهینه سازی بنیان شده است. روش جستجو ممنوع یک روش فرا ابتکاری است که روش جستجوی ابتکاری محلی را به کاوش حل در فضای ماورای بهینه محلی هدایت می کند.

 

3-2-2-مدل سازی

فرض می شود در یک شبکه تعداد مسیر اتوبوس که قبلا با استفاده از تجربیات مهندسی تولید شده اند و نقاط ابتدایی و انتهایی مشخص دارند موجودند. به طوری که از این مسیرها اطلاعات کامل وجود دارد. با توجه به طول مسیر و در نظر گرفتن سر فاصله زمانی مناسب هر خط تعداد اتوبوس (ناوگان) مورد نیاز مشخص است، در واقع در این مرحله هدف یافتن مسیر بهینه است و تخصیص پس از آن انجام می شود. تعداد ناوگان کل در اختیار نیز مقدار محدود و مشخص است. هدف مدل مورد نیاز در اینجا پیدا کردن مجموعه ای از مسیرهای پیشنهادی برای کمینه کردن هزینه گردانندگان و استفاده کنندگان به عنوان تابع هدف است.

اساسا سیستم حمل و نقل با گره ، کمان و مسیر تعریف می شود. از گره برای تعیین یک نقطه مشخص جهت بارگذاری، باربرداری و یا نقل و انتقال در شبکه حمل و نقل استفاده می شود. به طور کلی دو نوع گره در سیستم شبکه اتوبوسرانی تعریف می شود:

  1. گروههایی که مراکز اصلی نواحی ترافیکی را نشان می دهند. (ایستگاههای اصلی)
  2. گروههایی که محل تقاطع خیابانها را نشان می دهند.

یک کمان برای نشان دادن نحوه ارتباط بین دو گره بکار می رود و در واقه برای یک مد حمل و نقلی خاص تعریف می شود.

مسیر (خط) به صورت توالی گره ها تعریف می شود. هر دو گره متوالی با یک کمان به هم وصل می شوند و در واقع توالی چند کمان یک خط را تشکیل می دهند.

در اینجا هدف کمینه سازی مجموع هزینه های استفاده کنندگان و گردانندگان از شبکه اتوبوسرانی است. عمده ترین هزینه استفاده کنندگان سیستم، مدت زمان استفاده از سیستم است، زیرا که تمام هزینه های دیگر استفاده کنندگان مانند عدم راحتی استفاده از اتوبوس، هزینه های ریالی و غیره همبستگی زیادی با زمان دارند. شاید در بسیاری از موارد محسابه زمان سفر بسیار دشوار باشد اما با توجه به دراتیار بودن نرم افزار EMME/2 و اطلاعات مربوط به عرضه و تقاضای حمل و نقل، این مقدار قابل محاسبه است.

محدودیت های سیستم حمل و نقل عمومی عبارتند از:

  1. محدودیت امکان پذیری سرفاصله زمانی
  2. محدودیت تعدا ناوگان
  3. محدودیت طول خطوط
  4. محدودیت حداکثر تعداد خطوط شبکه

 

3-2-3-متدولوژی روش حل پیشنهادی

چارچوب روش حل پیشنهادی شامل سه جزء اصلی است:

  1. فرایند تولید مجموعه خطوط کاندید اولیه
  2. فرایند تحلیل شبکه
  3. فرایند جستجو ممنوع

 

شکل (3-1) : فلوچارت روش حل پیشنهادی

به طور کلی می توان گفت چگونگی تعریف همسایگی برای یک شبکه بر کیفیت و کارآیی روش جستجو جواب مناسب در فضای قابل قبول تاثیر خواهد داشت. بنابر این نتیجه تعاریف گوناگون برای همسایگی یک جواب می تواند در تفاوت کیفیت جوابهای بدست آمده با توجه به تعریف دیده شود.

در شروع الگوریتم هیچ منعی از نظر حرکت وجود ندارد و به عبارتی حرکت ممنوع وجود ندارد. در هر تکرار، بهترین حرکت مجاز در همسایگی راه حل موجود توسط الگوریتم انتخاب می شود. بعد از انجام هر حرکت، حرکت معکوس آن حرکت برای P مرحله تکرار ممنوع می شود، P (ظرفیت لیست ممنوع) پارامتری است که توسط کاربر تعریف شده و یا به صورت تصادفی در نظر گرفته می شود.

 

 

3-2-4-فرایند جستجوی همسایه

در ابتدای اجرای الگوریتم جستجو ممنوع راه حل اولیه به صورت تصادفی تولید می شود. در مرحله بعدی تولید جواب الگوریتم جهت هدایت تولید جواب جدید بکار برده می شود. به این ترتیب جستجو با استفاده از الگوریتم تابو شروه می شود. سپس با استفاده از روش تحلیل شبکه و نرم افزار EMME/2 سفرها بین مراکز نواحی تخصیص یافته و با تعیین تناوب سرویسها در هر خط تابع هدف هر یک از مجموعه خطوط (شبکه) مشخص می شود. در هر مرحله از تکرار الگوریتم، اگر شبکه تعیین شده در مرحله جدید مناسب تر از شبکه مرحله قبل باشد، شبکه جدید جایگزین شبکه قبلب می شود. در حالتی که تعداد دفعات تکرار به حداکثر تعداد دفعات تعریف شده برسد، تکرارها برای یافتن شبکه با اندازه مشخص به پایان رسیده و پس از آن با افزایش تعداد خطوط شبکه مراحل بالا تکرار می شود تا الگوریتم به حداکثر اندازه شبکه ممکن یعنی شبکه با حداکثر تعداد خطوط ممکن برسد. بهترین شبکه از بین کلیه شبکه های به دست آمده از مراحل قبل به عنوان جواب مسئله طراحی شبکه خطوط اتوبوسرانی تعیین می شود.

فلوچارتی که چاچوب کلی انتخاب شبکه خطوط اتوبوسرانی یا استفاده از الگوریتم جستجو ممنوع را در شکل (3-2) دیده می شود.

 

شکل (3-2) : فلوچارت الگوریتم جستجو ممنوع برای مسئله

 

3-2-5-مطالعه مروری (شهر قزوین)

به منظور کاربرد این مدل سیستم اتوبوسرانی شهر قزوین انتخاب شد. دلیل انتخاب شهر قزوین وجود اطلاعات عرضه و تقاضا حمل و نقل این شهر و همچنین دسترسی به شبکه شبیه سازی شده این شهر بود. برای پیاده سازی این مدل بر روی شهر قزوین نیاز است تا اطلاعات عرضه وقاضا سفر این شهر که بااا استفاده از آمارگیری به دست آمده اند به مدل معرفی شوند.اتوبوسرانی شهر قزوین 17 خط داردو کل ناوگان شهر قزوین 178 دستگاه دارد. این تعداد ناوگان محدودیت اصلی مسئله طراحی شبکه است.

علاوه بر 17 خط موجود یعنی خطوط 101 تا 117 اتوبوسرانی 16 خط جدید به صورت حلقوی و رفت و برگشت به ترکیب خطوط اضافه شد که جمع این خطوط  بالغ بر 33 خط شده است که مشخصات این 33 خط در جدول (3-1) آورده شده است.

جدول (3-1) : وضعیت فیزیکی و عملکردی خطوط اتوبوسرانی شهر قزوین

 

 

 

3-2-6-نتایج اجرای مدل و تحلیل شبکه پیشنهادی

با توجه به الگوریتم ارائه شده برنامه ای در محیط Visual Foxpro نوشته شد که با استفاده از الگوریتم جستجو ممنوع و نرافزار EMME/2 کار می کند.

 

شکل (3-3) : حجم جابجایی مسافر اتوبوسرانی شهر قزوین

جدول (3-2) : مقایسه نتایج گزینه پیشنهادی با وضع موجود

 

 

 

 

 

شکل (3-4) : حجم جابجایی مسافر در شبکه پیشنهادی

نتایج پیاده سازی این روش بر روی شهر قزوین نشان داد که در شرایط ثابت فرض کردن خطوط خارج شهری می توان تابع هدف را حدود 9 درصد بهبود داد. در این حالت کل زمان سفر صرف شده مسافران حمل و نقل همگانی 15.5 درصد کاهش می یابد.

با توجه به اینکه مقدار تابع هدف به دست آمده از روش جستجو ممنوع حدود 10.5 درصد از نتایج شبکه بهینه به دست آمده با استفاده از الگوریتم مورچگان بهتر است، می توان این روش را برای حل مسائل پیچیده طراحی خطوط شبکه اتوبوسرانی پیشنهاد کرد.

 

3-3-الگوریتم کلونی مورچه چند معیاره

 

یکی از جنبه های سیستم های حمل و نقل هوشمند، کاربر-مبا بودن آن است، به گنه ای که خواسته ها و نیازهای کاربر بیشتر مورد توجه قرار گیرند. از دیدگاه سیستم های کاربر-مبنا دقیقا در نقطه مقابل سیستم های داده-مبنا قرار دارند. در سیستم های داده-مبنا بیشتر به جمع آوری داده های مکانی و غیر مکانی پرداخته می شود زیرا این اعتقاد وجود دارد که هر چه داده های بیشتری در سیستم ذخیره شود، سیستم اطلاعات مکانی قابل قبول خواهد بود. در حالی که سیستم های کاربر بنا نحوه ترکیب داده ها، انجام آنالیزها، نمایش نتایج و.. همگی بر مبنای خواسته ها و اهداف کاربر قابل تعریف و تغییر هستند.

 

3-3-1-تصمیم گیری چند هدفه و مسیریابی چندهدفه

در چند سال گذشته با پیشرفت الگوریتم ها بهینه سازی چند هدفه از آنها در مسیر هایی چند هدفه نیز استفاده شده است. الگوریتم های چند هدفه در حالت کلی به سه دسته زیر تقسیم بندی می شود.

  1. بدون وزن دهی
  2. وزن دهی قبل از حل
  3. وزن دهی بعد از حل

در شکل (3-7) یک منحنی جواب بهینه را بین دو تابع هدف F1 و F2 نشان می دهد. در این شکل هر یک از نقاط یک جواب بهینه هستند و کاربر با توجه به ارجحیت های حدف خود انتخاب را انجام می دهد.

 

شکل (3-7) : منحنی Trade-off میان دو تابع هدف

 

3-3-2-نمایش مسئله

در بیان ریاضی مسئله موارد زیر تعریف می شود:

  1. تعرف گراف مورد نظر
  2. فهرست شهرهای همسایه
  3. تابع کاشف
  4. رفتار فرمون
  5. بهنگام سازی فرمون

 

3-3-3-به کارگیری الگوریتم بهینه سازی کلونی مورچه

در الگوریتم پیشنهادی مراحل کاری به شرح زیر استک

  • ایجاد جمعیت اولیه
  • محاسبه رتبه برای هر یک از نقاط همسایگی در هر نقطه (رتبه موضعی)
  • مرتب سازی
  • تعریف قانون فرمون ریزی
  • محاسبه تبخیر فرمون
  • محاسبه فاصله ازدحامی
  • مرتب سازی
  • انتخاب
  • رتبه جمعیت
  • فاصله ازدحامی
  • انجام تقاطع برای تولید مسیرهای جدید
  • تلفیق
  • جایگزین کردن جمعیت والدین با بهترین اعضا جمعیت تلفیق شده در مراحل قبل
  • ترسیم جبهه جواب های بهینه
  • انتخاب نهایی با الویت بندی کاربر

 

شکل (3-8) : نحوه تلفیق جمعیت اولیه و انتخاب بهترین جواب ها از میان آنها

 

شکل (3-9) : فلوچارت کلی الگوریتم پیشنهادی

3-3-4-نتایج حاصل از اجرای الگوریتم

این الگوریتم برای منطقه مطالعاتی با 25 مورچه و تعداد تکرار 25 بار و با دو تابع هدف فاصله و ترافیک اجرا شد و مسیرهای بهینه حاصل از آن به دست آمد. با این شرایط اجرای الگوریتم چهار مسیر بهینه را پیشنهاد داده است که بر یکدیگر غلبه نمی کنند. از این چهار مسیر یک مسیر ، مسیر حاصل از تقاطع مسیرهای بهینه به دست آمده است. شکل (3-10) سه مسیر عادی  از مسیرهای پیشنهادی الگوریتم را نشان می دهد. همچنین در شکل (3-11) نتایج  حاصل از انجام تقاطع در الگوریتم را نشان می دهد.

 

شکل (3-10) : سه نتیجه حاصل از اجرای الگوریتم بدون تقاطع

 

شکل (3-11) : نتیجه حاصل از تقاطع

در جدول (3-3) مشخصات مسیرهای به دست آمده در جپهه جواب اول که در شکل های قبل نمایش داده شده را نشان می دهد. همچنین شکل (3-12) جبهه جواب به دست آمده از اجرای الگوریتم پیشنهادی را نشان می دهد.

جدول (3-3) : مشخصات مسیرهای به دست آمده در جبهه جواب اول با 25 تکرار و 25 مرچه

 

 

شکل (3-12) : جبهه جواب دو بعدی به دست آمده از اجرای الگوریتم با تعداد مورچه 25 و تعداد تکرار25 و توابع هدف فاصله و ترافیک

3-3-5-حمایت از تصمیم گیری در مسیریابی

در مرحله نهایی پس از اجرای الگوریتم جواب ها در اختیار کاربر گذاشته می وشد تا با توجه به نیازهای خود مسیر مورد نظر را انتخاب کند. در حقیقت در این قسمت کاربر با توجه به الویت نهایی خود که بر روی واسط کاربر مشخص می سازد می تواند مسیر مورد نظر خود را ملاحظه کند. برای روشن شدن در شکل (3-13) جبهه جواب بهینه برای تو تابع هدف فاصله و ترافیک و 5 جواب به دست آمده از آن آورده شده است. تصمیم گیرنده می تواند با انتخاب یک نقطه مسیر متناظر آن را ببیند. در شکل (3-13) سه نقطه روی جبهه جواب مشخص شده و مسیرهای متناظر آنها آمده است. این نتایج مربوط به تعداد تکرار 100 و تعداد مرچه 100 است. در این شکل نقطه A مسیر با کمترین فاصله ، نقطه B مسیر با کمترین ترافیک و نقطه C مسی با ترافیک و فاصله متوسط را نشان می دهد.

 

شکل (3-13) : جبهه جواب دو تابع هدف فاصله و ترافیک و (A) مسیر با کمترین فاصله ، (B) مسیر با کمترین ترافیک و (C) مسیر با مقدار متوسط فاصله و زمان

 

3-4-الگوریتم سرد و گرم کردن مجازی (SA) و سریع ترین فرود (FD)

 

از جمله روشهای بهبود اتوبوسرانی ایجاد سامانه اتوبوس تندرو است. تقاضا حمل و نقل همگان، شبکه خیابانی و تعدا ناوگان اتوبوس و اتوبوس تندرو ورودیهای مسئله هستند.برای افزودن یک خط اتوبوس تندرو به شبکه حمل و نقل همگانی یک مساله بهینه سازی مسیر در شبکه حل می شود که با استفاده از الگوریتم سرد و گرم کردن مجازی و سریع ترین فرود  بهترین مسیر و سرفاصله زمانی را برای سیستم اتوبوسرانی جستجو می کند. کل زمان سفر تابع هدف در نظر گرفته می شود.

 

3-4-1-فرمول بندی مسئله

در فرمول بندی این مسئله از تابع هدف و محدودیتهای مطالعات ژائو بهره برداری شده که بنا به نیاز مساله تغییرات لازم در آن اعمال می شود. در این زاستا برخی از فرضیات برای حل مسئله در نظر گرفته شدهاند که عبارتند از:

  • مقدار تقاضای حمل و نقل در دوره تحلیل ثابت است.
  • معیار هزینه استفاده کنندگان کل زمان سفر استفاده کنندگان است و از زمان پیاده روی صرف نظر می شود.
  • ظرفیت نشستن در ناوگان یکسان است.
  • افراد به صورت تصادفی و با توزیع یکنواخت به ایستگاه می زسند، بنابر این امید ریاضی زمان انتظار برابر نصف سرفاصله زمانی است.
  • سرعت اتوبوس تندرو بیشتر، و در نتیجه زمان سفر در کمان مربوط 20 درصد کمتر از زمان سفر در کمان اتوبوس معمولی است.
  • برای خط اتوبوس تندرو می توان از ناوگان، مستقل از کل سیستم استفاده کرد.
  • ایستگاههای حمل و نقل همگانی منطبق بر گره های شبکه خیابانی است.
  • شبکه خیابانی کاملا پیوسته است، یعنی هر دو گره خیابان در نهایت توسط یک مسیر شبکه به یکدیگر متصل می شوند.

برای یک بهینه سازی ناپیوسته به علت دشواری مسئله و جلوگیری از بزرگ شدن ابعاد مساله تعداد متغییرهای تصمیم گیری کمتر انتخاب می شود. از سوی دیگر محدودیتها باید تا حد امکان نیازها و دیدگاه های مورد نظر مساله را تامین کنند. با همین دیدگاه در این پژوهش محدودیتهای زیر منظور شده است:

  • محدودیت تداوم یک گزینه حمل و نقل مانند اتوبوس تندرو یا اتوبوس در یک مسیر.
  • محدودیت حداکثر زمان سفر داخل وسیله برای مسیرهای حمل و نقل همگانی مشخص
  • محدودیت ابعاد ناوگان در هر خط
  • محدودیت حداقل و حداکثر سرفاصله زمانی در یک مسیر داده شده
  • محدودیت مستقیم بدون مسیر

 

3-4-2-الگوریتم حل مسئله

در این پژوهش سه مرحله برای حل مسئله در نظر گرفته شده است.

  1. استفاده از الگوریتم SA برای حل مساله بهینه سازی همراه با در نظر گرفتن کاهش زمان سفر برای اتوبوس تندرو
  2. اعمال تغییرات زمان سفر اتوبوس تندرو بر روی شبکه حمل و نقل همگانی و حل مساله تخصیص ترافیک بر همین مبنا
  3. استفاده از الگوریتم سریع ترین کاهش FD برای بهینه سازی سر فاصله زمانی مورد استفاده قرار می گیرد.

 

3-4-3-حل مسئله و تحلیل نتایج

مندل ، الگوریتمی ابتکاری برای طراحی شبکه حمل و نقل همگانی معرفی کرد که بر اساس شبکه ای واقعی در سویس گسترش داده شده است. این شبکه شبکه ای کوچک و چگال است که از 15 گره با تقاضای همگانی 15570 سفر در روز تشکیل شده است. در این شبکه کمانهای همگانی زمان سفر ثابتی دارند. ماتریس  تقاضا تعداد سفرهای همگانی را که در یک روز بین هر دو گره انجام می شود نمایش می دهد. شکل (3-14) شبکه سویس را بهصورتشماتیک نمایش می دهد.

 

شکل (3-14) : نمایش شماتیک شبکه سویس و تقاضا سفر در این شبکه

جدول (3-5) : تغییرات کل زمان سفر برای میزان های مختلف تغییر سرعت

 

 

3-5-نتیجه گیری

 

با توجه به مقایسه نتایج حاصل از روش جستجو ممنوع مورد استفاده در این تحقیق با نتایج مطالعه دیگری بر پایه الگوریتم مورچگان که شرایط یکسانی  داشتند توانایی روش این مطالعه برای حل مسئله طراحی خطوط شبکه اتوبوسرانی تایید شد.

استفاده از سایر الگوریتمهای فرا ابتکاری برای یافتن مسیر بهینه و مقایسه آنها با جوابهای به دست آمده از این تحقیق می تواند زمینه ای برای پژوهشهای آینده باشد. همچنین با توجه به توانایی بالا جستجو ممنوع جهت مدل سازی شبکه و امکان تلفیق این روش با الگوریتم مرچگان پیشنهاد می شود از الگوریتم ترکیبی از کاربرد دو روش برای حل مسئله استفاده شود.

ما یک رویکرد چند سطحی شناسایی خودرو را رائه کرده ایم. به عنوان مثال RTRED-2MT که با بهره گیری از هر دو WIM و اطلاعات امضا حلقه استقرار برای ردیابی وسایل نقلیه سنگین توسعه یافته است. عملکرد ردیابی بین دو ایستگاه WIM 19 مایل از هم جدا نشان داده شده و نتایج نشان دادکه روش پیشنهادی قادر به کار با انواع داده های مختلف و ایجاد عملکرد ردیابی امیدوار کننده با هر دو امضا خودرو و داده WIM اعمال شده است.

 

 

 

 

 

 

 

 

مانیتورینگ و کنترل حمل و نقل سبک و سنگین

 

 

وزن در حرکت (WIM) یک تنولوژی مهم برای جمع آوری اطلاعات وسایل نقلیه در بزرگراه می باشد. از آنجا که تکنولوژی WIM یکی از سیستم های جمع آوری داده ها گران و پیچیده است در عوض داده ها WIM ارزش زیادی برای نظارت بر عملکرد ایستگاه های WIM دارد. بدست آوردن اطلاعات دقیق درمورد جریان کوتاه مدت ترافیک آینده همه لینک ها در یک شبکه ترافیک گسترده ای از برنامه های کاربردی از جمله پیش بینی ترافیک، دستگاه های ناوبری خودرو، خودرو مسیر یاب و مدیریت تراکم را شامل می شود.

 

 

 

 

 

 

 

 

4-1-مقدمه

 

وزن در حرکت به عنوان یک تکنولوژی مهم برای جمع آوری اطلاعات وسایل نقلیه سنگین در بزرگراهها از سال 1980 استفاده شده است. ایستگاه های WIM به طور معمول از سنسورهای WIM (مانند: تکنولوژی پیترو الکترونیک، خم ورق، لودسل، سنسور کوارتز) برای اندازه گیری وزن بازدیدگنندگان محور و آشکار سازی حلقه استقراء ILDs برای تشخیص حضور و سرعت وسایل نقلیه، سنسور محور برای شمارش تعداد محورها و اندازه گیری فاصله محورها، کابین کنار جاده ایبرای میزبانی واحد پردازش بازدیدکنندگان، سیستم های ارتباطی برای انتقال داده ها. اطلاعات بدست آمده از یک ایستگاه WIM به طور گسترده برای مدیریت پیاده رو، نظارت بر پل، اجرای وزن کامیون، کنترل ترافیک و عملیات، انتشار، ایمنی، برنامه ریزی، توسعه سیاسی، مدل سازی حمل و نقل، مدیریت و غیره اعمال می شود.

 

4-2-ردیابی وسایل نقلیه سنگین

 

انتقال الگوریتم به ایستگاه ها WIM مختلف موجب ایجاد مجموعه داده های آموزشی می شود. علاوه بر این ، این روش می تواند از داده های در دسترس WIM استفاده شوا اما تنها حدود 800 ایستگاه در ابالات متحدوه وجود دارد.

اگر چه این روش ردیابی برای ردیابی وسایل نقلیه تجاری هنوز در حال توسعه است. محققان بیشتر ب روی توسعه سیستم های شناسایی خودرو با استفاده از فن آوری های دیگر هستند (به عنوان مثال: تشخیص حلقه استقرا، بلوتوث، سیستم موقعیت جهانی GPS ، تلفن همراه، پردازش تصویر، برچسب های شناسیی خودکار خودرو و غیره متمرکز هستند) در میان آنها سیستم تشخیص حلقه استنتاجی با تکنولوژی امضا حلقه استقرا مزایای متعددی نسبت به دیگران دارد. تکنولوژی به کار گیری یک کارت آشکار ساز پیشرفته برای تولید داده های امضا حلقه استقرا از زیر ساخت های IDL موجود است. تغییرات مغناتیسی ناشی از هر خودرو باعث تولید خروجی به شکل موج آنالوگ می شود که به عنوان امضا حلقه استقرایی خودرو استفاده می شود.

اطلاعات بدست آمده از حلقه  استقرایی مبتنی بر سیستم تشخیص امضا (مانند، زمان سفر، بخش سرعت، طبقه بندی خودرو، OD و غیره) همراه با داده های WIM (مانند طول خودرو، فاصله محور، وزن محور و ...) می تواند به برآورد فعالیت کامیون و توزیع بارگیری و کالیبره کردن ایستگاه ها WIM اعمال شود.

یک رویکرد نوآوری و در عین حال علمی مانند RTREID-2MT برای ردیابی خودرو سنگین معرفی می کنیم که ترکیبی از استفاده هر دو داده امضا حلقه استقرا پیشنهاد می کنیم. الگوریتم RTREID-2M بر اساس الگوریتم مبتنی بر تشخیص امضا خودرو مانند RTREID-2M که قبلا توسط نویسندگان توسعه داده شده است، که بر اساس عملکرد امیدوار کننده آن است. این روش بیشتر اصلاح شده تا متناسب با نیاز های ردیابی کامیون باشد. این الگوریتم برای انعطاف پذیری از انواع مختلف داده ها را از ایستگاه های مختلف جمع آوری داده از جمله ایستگاه های WIM ، ایستگاه های طبقه بندی خودرو و ایستگاه های ILD.

 

4-2-1-محل مورد مطالعه و جمع آوری اطلاعات

اکثر سیستم های WIM در ایلات متحده مستقر شده اند. را اندازی سنسور معمولی برای ایستگاه های WIM در کالیفرنیا در شکل (4-1)  نشان داده شدهاست. بسیاری از این ایستگاه ها WIM با سنسور های قدیمی سری 1060 کنترل یا جدیدتر کنترل ISINC مجهز شده اند.ما دو ایستگاه WIM را انتخاب کرده ایم. ایستگاه SR-57SB سازماندهی شده با ISINC و ایستگاه J-5SB با کنترلWIM سری 1060 به شکل یک مسیر منطقی برای کامیون های که از منطقه لس آنجس مرکزی به اورنج کانتی ، سن دیگو کانتی و مکزیک سفر می کند. فاصله بین دو ایستگاه WIM حدود 19 مایل است که به اندازه کافی بلند است که شامل 21 مبادلات و تراکم ترافیک مکرر در طول مسیر وجود دارد.

 

شکل (4-1) : راه اندازی سنسور WIM نمونه در کالیفرنیا

 

شکل (4-2) :  استگاه WIM ، SR-57SB و I-5SB

 

برای آماده سازی داده دو مرحله لازم است که عبارتند از:

  1. اطلاعات زمی حقیقی :  شناسایی کلاس خودرو (FHWA) پلاک را برای کامیون های بزرگ پس از شناسایی دستی پلاک خودرو برخی از وسایل نقلیه بدون پلاک جلو و یا با پلاک ناخوانا پیدا شد.
  2. تحلیل وسایل نقلیه زمین واقعی : پس از بررسی نتایج زمین واقعی مشخص شد که برخی از جفت خودرو زمین واقعی همسان با توجه به زمان سفر غیر منطقی احتمالا منطبق بودند.

 

شکل (4-3) : عدم تطابق موارد احتمالی زمین واقعی

 

موارد عدم تطابق ممکن را می توان به شرح زیر طبقه بندی کرد.

  1. محموله های مختلف در ایستگاه های بالا دست و پایین دست لود می شود.
  2. کامیون با تریلر با مقدارهای مختلف در ایستگاه های دیگر تطابق دارد.
  3. تراکتور و یا یک واحد قدرت کامیون مستقیم با تریلر مشاهده شده در یک ایستگاه بدون تریلر مشاهده شده در ایستگاه های دیگر تطابق دارد.

از این رو دو نوع تعریف زمین واقعی را داریم.

  1. خودرو همسان از داده های ویدئویی در هر ایستگاه یکسان به نظر می رسد.
  2. یک خودرو همسان متفاوت از داده های ویدئویی در هر دو ایستگاه به نظر می رسد.

متوسط زمان سفر در ساعات مختلف روز در زمین واقعی در شکل (4-3) نشان داده شده است. زمان سفر برای وسایل نقلیه نوع 1، 47-32 دقیقه در حالی که زمان سفر وسایل نوع 2، 232-73 دقیقه است.

 

شکل (4-3) : تجزیه و تحلیل زمان سفر در روز مطابق با نوع وسیله

 

شکل (4-4) : چارچوب رویکرد RTREID-2MT

4-2-2-روش شناسایی خودرو

ایستگاه WIM می تواند کلاس خودرو و وزن و اطلاعات مرتبط به محور را رائه کند. یک ایستگاه می تواند طبق بندی کلاس خودرو و محور اطلاعات فاصله را فراهم کند. یک استگاه ILD قادر به ارئه اطلاعات امضا خودرو می باشد اگر ایستگاه به کارت های آشکار ساز مجهز باشد.

الگوریتم پیشنهادی RTREID-2MT توسعه داده شده و مورد آزمایش با سه سناریو عمومی قرار داریم که عبارتند از:

  1. شناسایی محیط با استفاده از داده امضا خودرو
  2. شناسایی محیط با استفاده از امضا خودرو ،  کلاس خودرو WIM و فاصله محورها
  3. شناسایی محیط با استفاده از امضا خودرو ، کلاس خودرو WIM ، فاصله محور و داده های وزن.

 

شکل (4-5) : سناریو 1 RTREID-2MT

 

شکل (4-6) : سناریو 2 RTREID-2MT

 

 

 

4-3-پیش بینی جریان ترافیک

 

پیش بینی جریان ترافیک به عنوان یکی از مشکلات برنامه ریزی حمل و نقل و سیستم ناوبری خودرو در نظر گرفته می شود. جریان ترافیک در شبکه را می توان با استفاده از داده های جریان ترافیکی تاریخی برآورد شده است. با این حال پیش بینی جریان ترافیک می تواند نه تنها بر روی داده های گذشته بلکه به دلایل زیر نیز بستگی دارد.

  1. حوادث ترافیک جاده ای
  2. حوادث غیر جاده ای
  3. ترافیک داده ها

مشکل عمده در گرفتن جریان ترافیک در زمان واقعی است که اکثر قریب به اتفاق از لینک های است که با سنسور ترافیک مجهز نیست. مشکل دیگر این است که عوامل موثر بر جریان ترافیک از جمله حوادث ، وقایع عمومی ، بسته شدن جاده ها و اغلب پیش بینی نشده ها نشان می دهد که پیش بینی جریان ترافیک یک کار چالش بر انگیز است.با استفاده از شبیه سازی Monte Carlo خطاهای پیش بینی جریان ترافیک به طور متوسط 2% برا پیش بینی 5 دقیقه ای و تا 12% برای 30 دقیقه ای حتی در حضور حوادث غیر قابل پیش بینی متفاوت است.

در اصل به علت اختلالات غیر قابل پیش بینی ، پیش بینی های بلند مدت ممکن است به اندازه کافی دقیق برای استفاده عملی نباشد. با این حال پیش بینی جریان ترافیک در کوتاه مدت اگر به درستی انجام شود ممکن است سطح دقت و صحت که برای برنامه های مختلف زمانی مفید است.

مدل های پیش بینی کوتاه مدت شامل مدل های غیر خطی مانند مدل شبکه عصبی و مدل خطی مانند فیلتر Kalman و میانگین متحرک خود گردان یکپارچه (ARIMA).

محدودیت های مدل خطی Schmit و Jula است که معمولا استفاده می شود. می توان بررسی و مشاهده کرد که "بهترین پیش بینی زمان سفر در آینده نزدیک را از ترکیب پیش بینی های تولید کرد". پیش بینی ترکیبی یک ترکیب خطی از میانگین پیش بینی تاریخی واقعی است.

به عنوان یک مطالعه مروری در شبکه جاده در منطقه مرکز شهر سانفرانسیسکو ،کالیفرنیا که به عنوان  تمرکز می کنند . روش تجربی مونت کارلو است. برای ارزیابی الگوریتم پیشنهادی تحت طیف گسترده ای از عدم قطعیت استفاده می شود.

 

4-3-1-تکمیل داده های جریان ترافیک

در اینجاما یک شبکه ترافیک که شامل لینک های بدون اندازه گیری دردسترس در نظر بگیرند. برای پرداختن به موضوع فاقد اطلاعات ترافیک برای اکثر لینک ها در یک شبکه حمل و نقل ، لینک به لینک تقسیم نسبت (LLDR) به عنوان نسبت جریان ترافیک که از یک لینک خاص به لینک های مجاور منتشر تعریف می کنیم. این LLDR ها برای لینک های مختلف متفاوت است و همچنین در زمان از روز بستگی دارد. شبکه حمل و نقل شامل چند عنصر مختلف مانند لینک ها ، گره ها ، مناطق و غیره است.

 

شکل (4-7) : روش تکمیل جریان ترافیک

 

 

شکل (4-8) : مدل سه مرحله ای

4-4-نتیجه گیری

 

شبیه سازی مونت کارلو به حساب اثرات تصادف و عدم قطعیت مورد استفاده قرار گرفت. نتایج شنان می دهد پیش بینی های دقیق از نرخ جریان ترافیک تا 30 دقیقه جلوتر از زمان تحت عملیات عادی است.  در مورد حوادث الگوریتم پیش بینی سازگار با تغییرات و اصلاح خروجی پیش بینی خود را با دقت خوب است.

 

سیستم حمل و نقل هوشمند ITS

سیستم حمل‌ونقل هوشمند یا به اختصار ITS به‌کارگیری فناوری اطلاعات و ارتباطات، برای بهبود عملکرد سیستم حمل‌ونقل است. کلمه ITS به مجموعه‌ای از ابزارها، امکانات و تخصص‌ها از قبیل مفاهیم مهندسی ترافیک، تکنولوژی‌های نرم‌افزاری، سخت‌افزاری و مخابراتی اطلاق می‌شود که به صورت هماهنگ و یکپارچه به منظور بهبود کارآیی و ایمنی در سیستم حمل‌ونقل به کار گرفته می‌شود. در سال‌های اخیر مهندسین حمل و نقل همراه با همکاری متخصصین رشته‌های مخابرات و ارتباطات، الکترونیک، رایانه و...  با با بکار گیری فناوری اطلاعات سیستم‌های هوشمند حمل و نقل یا ITS را بوجود آورده اند. در سیستمهای هوشمند ترافیک فناوری‌های متفاوتی بکار می رود. از سیستم‌های اولیه‌ای مانند هدایت خودرو و سیستم کنترل چراغ‌های راهنمایی، تابلوهای اعلان ترافیک، دوربین سرعت سنج و سیستم خودکار شناسایی شماره خودرو گرفته تا سیستمهای پیشرفته و پیچیده تری که بطور همزمان اطلاعات متفاوتی را از منابع متفاوت یکپارچه می کند.

سیستم­های حمل و نقل هوشمند (ITS) فناوری پیشرفته­ای است که با هدف ارائه خدمات نوآوری مربوط به حالت­های مختلف حمل و نقل و مدیریت ترافیک است. این سیستم کاربران مختلف را قادر می سازد با استفاده از شبکه حمل و نقل دقیق بهتر ، ایمن تر و هماهنگ تر شوند.

در مقایسه با سیستم حمل و نقل سنتی به طور قابل توجهی ویژگی های ITS ترکیبی از هوش مصنوعی و سیستم حمل و نقل است.سیستم ITS شامل طیف گسترده ای از ارتباطات خط بیسیم و سیم دار بر اساس اطلاعات، پردازش اطلاعات، الگوریتم کنترل، الکترونیک و فن آوری های دیگر است. این فناوری باعث کاهش حجم ترافیک، بهبود ایمنی و افزایش بهره وری می شود.

سیستم حمل و نقل هوشمند (ITS)

 

سیستم حمل و نقل هوشمند (ITS) برای بیش از ده سال در چین توسعه داده شده است. علاوه بر این نسل جدید سیستم های حمل و نقل هوشمند برای پاسخگویی به احتیاجات توسعه سریع حمل و نقل در چین باید راه اندازی شود.

 

1-1-مقدمه

 

منشاء پردازش خودکار اطلاعات حمل و نقل در سال 1970 در ژاپن که در آن چندیدن برنامه فناوری برای مقابله با تعداد زیاد مرگ و میر، صدمات تصادفات و همچنین روند ترافیک بی اثر ساختاری انجام می شود. در اروپا اولین برنامه رسمی حمل و نقل کامپیوتری Prometheus (برنامه ای برای ترافیک اروپا با بالاترین بهره وری و ایمنی بی سابقه) (Prometheus 1989) توسط شرکت های خودرو سازی اروپا در 1989 آغاز شد. در حالی که در سال 1988 برنامه Drive (زیر ساخت جاده اختصاصی و خودرو محیط زیست) از سوی مقامات در اروپا (Drive 1990) تعیین شد. آمریکا نیز در سال 1990 با ایجا برنامه VHS (سیستم بزرگراه خودرو هوشمند) (IVHS 1992) است که به ITS (سیستم حمل و نقل هوشمند) در سال 1994 تغییر نام داد.

معماری های ITS برای کشورهای مختلف طراحی شده است و در حوزه پژوهشی و خدمات حمل و نقل برنامه ریزی شده است.معماری ملی ITS آمریکا در شکل (1-1) نشان داده شده است.

 

شکل(1-1) : معماری ملی ITS آمریکا

فناوری خودرو ایمنی فعال برای اجتناب از برخورد وسایل نقلیه هوشمند سریع در Stage2 توسعه داده شده است. یک نمایش Demonstration 97 و Path 1986 (همکاری برای حمل و نقل و تکنولوژی پیشرفته) پروژه با نفوذترین سیستم بزرگراه خودکار در آمریکا، در اتحادیه اروپا و Ertico امکان استفاده از اطلاعات، ارتباطات به منظور توسعه ایمنی فعال، رانندگی خودمختار، Esafety پروژه در سال 2003، در سال 2010 آزمایشگاه نیرو VIAC راه اندازی کرد که چالش آزمایشگاه نیرو خودمختار بین قاره ای است.

یک آزمایش 13000 کیلومتری برای وسایل نقلیه مستقل از ایالات به چین در شکل (1-2) نشان داده شده است.

 

شکل (1-2) : آزمایشگاه نیرو خودرو مستقل و کارکنان جستجوگر

بهره مندی از توسعه سریع فن آوری ITS و ابداع تجهیزات سیستم حمل و نقل استفاده از ITS را می تواند هوشمند و کارامدتر کند عمدتا جنبه های آن به شرح زیر است:

  • نظارت ترافیک و مدیریت
  • بهینه سازی ترافیک پویا
  • رانندگی خودمختار
  • شناسایی موقعیت راننده و ایمنی فعال
  • مکانیزم و رفتار راننده
  • سیستم اجتناب از برخورد
  • تجزیه و تحلیل حوادث و پیشگیری

 

1-2-توسعه ITS در چین

 

در طول دهه گذشته فن آوری ITS تا حد زیادی باعث بهبود شرایط حمل و نقل سنتی، بهبود ظرفیت ترافیک شبکه جاده و همچنین امنیت حمل و نقل در چین شده است. در سال 1999 مرکز ملی تحقیقات مهندسی فناوری از سیستم حمل و نقل هوشمند (ITS) تاسیس شد. بسیاری از دانشگاه ها و موسسات تحقیقاتی مرکز تحقیقات ITS راه اندازی کرده و به تحقیق تئوری و فن آوری ITS پرداخته است.

 

1-2-1- پژوهش در ITS

بسیاری از دانشگاه ها و موسسات تحقیقاتی، تحقیقات علمی ITS را از سه جنبه زیر انجام داده اند که برای مطالعه بر روی رفتار راننده انجام می شود شامل کسب رفتار راننده، شناخت و معیار داده شده است.

بیشتر نمایندگان از دانشگاه Jilin ، دانشگاه Tong ، دانشگاه فناوری Wuhan و دانشگاه Chang an بوده است.

 نماینده ها بیشتر از وسایل نقلیه CITAVT از دانشگاه ملی فناوری دفاع، سری JLUIV از دانشگاه جیلین، سری THMR از دانشگاه Tsinghua، Cyberc3 از شانگهای جاید دانشگاه تانگ که در شکل (1-3) نشان داده شده است.

 

شکل (1-3) : وسایل نقلیه هوشمند در دانشگاه ها

برای این ماشین ها جاده ها و میدان های تجربی برای آزمایش رفتار راننده و ویژگی های جامع وسایل نقلیه ساخته شده است که نمونه آنها در شکل (1-4) نشان داده شده است.

 

شکل (1-4) : اثبات زمین برای ITS در چین

 

1-2-2- استفاده از ITS

در طول دوره دهم (پنج ساله 2001 –  2005) برای اولین بار در زمینه سیستم های حمل و نقل هوشمند به عنوان محتوای برنامه ریزی ملی در سال 2001، چین در دو شهرستان به عنوان شهرستان های مدل برای آزمایش و ارزیابی میدان ITS انتخاب شده است. این شهرستان ها شامل Beijing ، Shanghai ، Guamgzhou و غیره.

در طی این مدت بسیاری از جنبه های مهم و مسائل کلیدی در تحقیق و توسعه ITS در سطح علمی و مهندسی بررسی شد.

در طول دوره یازدهم (پنج ساله 2006 – 2010) ITS فرصت بیشتری برای توسعه به ویژه در حمل و نقل برای رویدادهای مهم بین المللی داشته است. فرماندهی ، کنترل و مدیریت ترافیک از سال 2008  در المپیک پکن تاسیس شد. که در شکل (1-5) نشان داده شده است. که شامل اتوبوس با سیستم مدیریت عملیات، وسیله نقلیه شناور ترافیک پویا برای جمع آوری اطلاعات و پردازش ، سیستم چاپ و نشر.

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

  1. فرمان
  2. سیگنال کنترل
  3. نظارت یکپارچه
  4. بهینه سازی ترافیک منطقه ای

 

شکل (1-5) : سیستم فرماندهی ،  کنترل و مدیریت المپیک 2008

 

مجموعه سیستم تلفن الکترونیک (ETC) پروژه ای از پکن ، نیاجین و منطقه هبی تاسیس شد. تا ژوئن 2011، 22 استان و شهرستان بیش از 2100 خط ETC باز شده بود که در شکل (1-6) نشان داده شده است.

حمل و نقل اقیانوس ، حمل و نقل محموله ، سیستم مانیتورینگ آنلاین در این دوره ساخته شد. این پوشش جهانی تکمیل شده است.

 

شکل (1-6) : خط ETC

 

1-3- وضعیت جستجو ITSC از Whut

 

1-3-1- بستر های نرم افزاری آزمایش و ضوابت

این بستر در سپتامبر 2000 تاسیس شد. هر دو این ها در آبراه و حمل و نقل جاده از جمله پژوهش های بنیادی و کاربردی تمرکز دارد. از لحاظ حمل و نقل جاده ای به ویژه در سه حوزه یعنی تجزیه و تحلیل مکانیزم رفتار راننده و علل حادثه ، مدیریت عملیات و کنترل برای ایمنی حمل و نقل جاده ای ، سیستم کمک راننده و سیستم رانندگی خودمختار علاقه مند است. بستر های نرم افزاری شبیه سازی برای رانندگی خودرو در شکل (1-7) نشان داده شده است.

 

شکل (1-7) : پلت فرم شبیه سازی رانندگی و دستگاه جمع آوری اطلاعات فیزولوژی

 

وسیله نقلیه تجربی برای ایمنی حمل و نقل چندید زیر سیستم را ادغام کرده است از جمله

  • کامپوتر اصلی
  • سیستم جمع آوری تصاویر
  • سیستم نضارت نمایش چشم
  • سیستم یکپارچه سازی زیر ساخت خودرو
  • سیستم اندازه گیری فزیولوژی
  • GPS پویا
  • ...

نشان داده شده در شکل (1-8). با این زیر سیستم ها وسیله نقلیه قادر به تشخیص انواع مختلف اطلاعات در مورد محیط زیست ، رانندگی راننده روانی، فیزیولوژی و رفتار  می توان از داده ها برای پژوهش های بعدی و تجزیه تحلیل ایمنی استفاده کرد.

 

شکل (1-8) : خودرو تجربی برای ایمنی حمل و نقل

1-3-2- رفتار راننده

رفتار راننده پایه و اساس سیستم حمل و نقل هوشمند است. مطالعات روی رفتار راننده در داشگاه ووهان عمدتا در جنبه های زیر گنجانده شده اند.

  • راننده خسته
  • راننده عصبانی
  • راننده احساساتی

برخی از شخصیت های بارز در فیزیولوژی رفتار راننده وجود دارد که نشان می دهد راننده خسته است. پس از مقایسه وضعیت روانی و فیزیولوژی مختلف راننده خسته استخراج می شود و راننده خسته در خوشه بندی فازی به رسمیت شناخه می شود.

سه نیت راننده (رانندگی آزاد، آماده سازی ماشین ، تغییر جهت) در الگوریتم ژنتیک ، الگوریتم بهینه سازی کلونی مورچه استوار است و قصد شتاب رانندگی نیز بر اساس خوشه بندی فازی شناخته شده است.

پژوهش ها نشان می دهد که روانشناسی راننده ، ترافیک و تصادفات رابطه خاصی دارند. تصادف زمانی بروز می دهد که رانندگان فاقد آگاهی از رانندگی با خطر هستند. روش ها و فناوری هایی برای بهبود آگاهی رانندگی ایمن بوجود آمد مانند تکنولوژی های چند رسانه ای و شبیه سازی رانندگی برای مطالعه حواث پرتی راننگان مورد استفاده قرار گرفت.

مطالعات نشان داده است پنج شخصیت (گسسته، اختصاص داده شده، خطرات، مدیریت و ثبات) دارای همبستگی بالا با حوادث رانندگی دارد.

 

1-3-3- سیستم های پیشرفته کمک راننده

نتایج تحقیقات رفتار رانندگان نشان می دهد یک پایه محکم برای رانندگی سیستم دستیار راننده است. اطلاعات تصویر جاده ای توسط دوربین ثبت می شود و به کامپیوتر برای پردازش ارسال می شود و با محاسبه پارامترهای موقعیت دوربین ، لبه خط ، عرض خودرو و خطوط دیگر در نظر گرفته می شود.

رادار موج میلیمتری در جلو خودرو نصب می شود و دو طرف خودرو آزمایش می شود و در نتیجه فاصله خودرو جلویی یا وسیله نقلیه جانبی را می توان با برخورد رادار بدست آورد، و زمانی که فاصله نزدیک به آستانه برخورد می شود به راننده اطلاع می دهد.

موقعیت خط فرمان ، پارامترهای آن همراه با اطلاعات GPS می باشد منبع اطلاعات برای تجزیه و تحلیل خودرو و ثبات عمل و اختلال در وضعیت راننده که ممکن است با خستگی ، حواس پرتی و یا راندگی عصبانب ناشی می شود می تواند از هشدار رانندگان استفاده شود.

 

 

1-3-4-سیستم زیر ساخت همکاری خودرو

سیستم زیر ساخت همکاری خودرو یک سیستم زیر ساخت انسان-خودرو می باشد که برای زیر ساخت خودرو بدون درنگ (V2I)و زیر ساخت خودرو با تعادل (V2V) که در این زیر ساخت ها اطلاعات با استفاده از ارتباطات و تکنولوژی شبکه بی سیم پیشرفته است.

 

1-3-4-1-سیستم تست مکاترونیک

مرکز آن دانشگاه ووهان است و در آن آزمایش شبیه سازی یک فرایند در وسیله نقلیه است که شبیه سازی هوشمند رانندگی گروهی خودروها و زیر ساخت های کامل V2V و V2I و تبادل اطلاعات با شبکه های ارتباط بیسیم است.

 

شکل (1-9) : روند تعامل اطلاعات بین وسایل نقلیه در جاده ها

 

1-3-4-2- سیستم خودرو زیر ساخت ایمنی رانندگان

این سیستم از جمله تبادل اطلاعات از وسیله نقلیه به وسیله نقلیه و سیستم کنترل سراسری و سیستم کنتل هماهنگ ترافیک استفاده می شود. سیستم یکپارچه سازی ، تست و اعتبار سنجی در شکل (1-10) نشان داده شده است.

 

شکل (1-10) : زیر ساخت های مجتمع سیستم خودروها

 

کروز کنترل تطبیقی (ACC) بر اساس شرایط بخشی از سیستم ایمنی خودرو به زیر ساخت های رانندگی است که در شکل (1-13) نشان داده شده است. دستگاههای ارتباطی در خودرو از جمله ارتباط کوتاه مدت (PSRC) ، سیستم تعیین موقعیت جهانی (GPS) را می توان با نقشه دیجیتالی راه ها استفاده کرد برای بدست آوردن موقعیت از وضعیت خودرو و جاده در اجرای واقعی می باشد.

 

 

شکل (1-11) : کروز کنترل تطبیقی بر اساس وضعیت جاده

 

 

1-4-چشم انداز ITS

 

رانندگی گروهی و مدیریت حمل و نقل هوشمند به عنوان دو چشم انداز اصلی توسعه ITS در نظر گرفته شده اند و این فناوری جامع ویکپارچه ابداع شده است برای تامین سیستم های حمل و نقل امن تر است.

 

1-4-1-همکاری رانندگان در گروه ها

امروزه کنترل وسیله نقلیه پیشرفت های زیادی کرده است و فن آوری کمک راننده گسترده شده است در وسایل نقلیه هوشمند مانند ACC ، اختار برخورد به جلو (FCW) اخطار خروج از خط (LDW) و دیگر سیستم های اطلاعاتی راننده هوشمند.

 

1-4-2-مدیریت حمل و نقل هوشمند

سیستم حمل و نقل هوشمند در حال حاضر میلیون ها خودرو و شرکت در خدمت ابزار مدیریت برای نسل جدید اتبوس و حمل و نقل تجاری است. سیستم GPS ، سرورهای ویدویی 3G باید در هر خودرو نصب شود. مرکز نظارت ITMS می تواند موقعیت ، سرعت خودرو ، هنگامی که سرعت از حد مجاز فراتر رفته مدیر مرکز می تواند به خودرو هشدارد دهد و سرعت او را کم کند. سرور ویدویی 3 بعدی می تواند تصویری از وضعیت راننده اتوبوس هنگامی که راننده احساس خستگی می کند را نشان دهد و راننده ایمن را تضمین کند.

 

 

الگوریتم حل Maze

 

 

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

3-1-    الگوریتم دنبال کردن دیواره­ها

این الگوریتم ساده­ترین روش پیمودن Maze است، که با قانون دست راست یا دست چپ شناخته   می­شود. اگر ماز ساده باشد، یعنی همه­ی دیواره­ها به یکدیگر یا فضای بیرونی ماز متصل باشند، این تضمین وجود دارد که با حفظ تماس یک دست به دیواره­ای که از آن شروع به حرکت می­کنیم، بتوان از Maze خارج شد. ولی Maze ساده نباشد، این الگوریتم به یافتن خروجی در قسمت­های گسسته کمکی نمی­کند.

 

3-2-    الگوریتم Pledge

ماز­هاي گسسته را می­توان به روش دنبال کردن دیواره­ها حل کرد، در صورتی که ورودي و خروجی Maze روي دیواره­هاي خارجی قرار داشته باشند. چنانچه از درون Maze شروع به حرکت کنیم، ممکن است الگوریتم دنبال کردن دیواره­ها در قسمت گسسته­اي که شامل خروجی نیست دائما یک حلقه را طی کند.

الگوریتم Pledge براي رفع موانع، به طی یک مسیر اختیاري نیاز دارد. هنگام مواجهه با مانع، یک دست مثلا دست راست را در امتداد مانع نگه می­داریم در حالیکه زوایاي چرخش شمرده می­شود. وقتی دوباره در راستاي مسیر اصلی قرار گرفتیم و جمع زاویه­اي چرخش­ها برابر صفر شد، می­توان مانع را ترك کرد و در راستاي مسیر اصلی حرکت نمود. این الگوریتم به شخص اجازه­ي جهت­یابی را در شروع از هر نقطه براي خروج از مازهاي دوبعدي را می دهد.

 

3-3-    الگوریتم جستجوی تصادفی

این الگوریتم یک روش ضعیف است که به وسیله­ي ربات­هاي غیر هوشمند یا موش قابل اجراست، اما تضمینی براي رسیدن به هدف وجود ندارد. در این الگوریتم یک مسیر مستقیم طی می­شود تا به اولین مانع برسد، سپس یک مسیر تصادفی را براي ادامه انتخاب می­کند. این الگوریتم در صورتی که خروجی به صورت یک سوراخ در میانه­ي دیوار باشد، با شکست مواجه می شود.

 

3-4-        الگوریتم Tremaux

الگوریتم tremaux یک روش کارآمد است که در آن مسیرهاي طی شده با رسم خطوط نشان دار         می­شوند. این الگوریتم براي همه­ي مازهایی که مسیرهاي خوش تعریف دارند، عملی است. با رسیدن به تقاطع هاي بی­نشان، می­توان یکی از جهت­های ممکن را انتخاب کرد. اگر یک تقاطع قبلا طی شده باشد می­توان مسیر طی شده را بازگشت. اگر نیاز به طی مسیري باشد که نشان­دار است، می­توان خط دیگري رسم کرد و تقاطع بعدي ممکن است شامل مسیر غیر نشان­دار باشد. در این روش نیاز به طی مسیري بیش از دو بار نمی باشد و اگر خروجی وجود نداشته باشد، این روش به نقطه­ي شروع Maze بر می­گردد.

 

 

3-5-    الگوریتم Bellman Flooding

خلاصه­اي از طرز کار الگوریتم مرکزیابی Bellman Flooding بدین شکل است که در لحظه شروع یک جدول مقدار دهی اولیه می­شود، سپس طی یک سري محاسبات جهت حرکت روبوت تعیین می­شود و روبوت به آن سمت حرکت می­کند و پس از کشف هدف که همان مرکز زمین است، خود را براي برگشتن آماده می­کند و پس از این که چند بار زمین را جستجو می­کند کوتاه ترین مسیر ممکن را پیدا می­کند و بطور مداوم از آن مسیر، خود را از مبدا به مقصد می­رساند تا به بهترین زمان اجراي ممکن دست یابد.

 

3-5-1- چگونگیعملکردالگوریتمBellman Flooding

شیوه­ي کاري این الگوریتم به این صورت است که در ابتدا به صورت Default یک زمین مجازي X * Y با استفاده از یک آرایه­ي 2 بعدي در حافظه­ي روبات ایجاد می­شود و اعدادي در آن قرار داده می­شود. این آرایه براي تعیین کوتاه ترین مسیر ، بیرون آمدن از بن بست­ها و تله­ها و مکان دقیق روبات در زمین به کار می­رود. همچنین آرایه­ي دوبعدي مشابه دیگري در حافظه­ي روبات تعریف می­شود تا بتوان خانه­هاي رفته یا نرفته، دیواره­هاي آن خانه و غیره را در آن ثبت کرد. در ابتدا در تمام خانه­هاي آن عدد صفر قرار می­گیرد به غیر از خانه­هاي دور تا دور زمین که باید براي آنها عدد دیواره را بریزیم.

ابتدا باید دو آرایه 2 بعدی تعریف کنیم، یکی برای ثبت مسیرهای رفته ربات و دیگری برای تعیین اینکه کدام خانه به هدف که همان مرکز محیط می باشد نزدیکتر است.

آرایه اول را با مقدار اولیه صفر ایجاد میکنیم و همچنین می توان مکانهای که به بنبست ختم می شوند را نیز عدد بزرگتری قرار داد. شکل 3-1

 

شکل3-1- مقدار دهی اولیه آرایه اول الگوریتم Bellman Flooding

 

آرایه دوم را نیز بستگی به اینکه آن خانه از هدف یا همان مرکز چه مقداری فاصله دارد عددی را برای آن قرار می­دهیم و برای خانه­های هدف عدد صفر را قرار می­دهیم. شکل 3-2

 

شکل 3-2- مقدار دهی اولیه آرایه دوم الگوریتم Bellman Flooding

 

مقداردهی اولیه آرایه را می­توان به چندیدن روش انجام داد.

روش اول مقداردهی مستقیم و تک تک خانه­ها، استفاده از این روش فضای حافظه زیادی را اشغال می­کند و استفاده از آن توصیه نمی­شود. در زیر مثالی از این روش آورده­ایم.

 

Tmaze[0][0]=14;

Tmaze[0][1]=13;

....

 

 

 

روش دوم مقدار دهی یک جا با استفاده از خاصیت چند بعدی­ها، در زیر مثالی از این روش آورده­ایم.

 

unsigned char tmaze [16][16]=

{

{14,13,12,11,10,9,8,7,7,8,9,10,11,12,13,14}

,{13,12,11,10,9,8,7,6,6,7,8,9,10,11,12,13}

,{12,11,10,9,8,7,6,5,5,6,7,8,9,10,11,12}

,{11,10,9,8,7,6,5,4,4,5,6,7,8,9,10,11}

,{10,9,8,7,6,5,4,3,3,4,5,6,7,8,9,10}

,{9,8,7,6,5,4,3,2,2,3,4,5,6,7,8,9}

,{8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8}

,{7,6,5,4,3,2,1,0,0,1,2,3,4,5,6,7}

,{7,6,5,4,3,2,1,0,0,1,2,3,4,5,6,7}

,{8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8}

,{9,8,7,6,5,4,3,2,2,3,4,5,6,7,8,9}

,{10,9,8,7,6,5,4,3,3,4,5,6,7,8,9,10}

,{11,10,9,8,7,6,5,4,4,5,6,7,8,9,10,11}

,{12,11,10,9,8,7,6,5,5,6,7,8,9,10,11,12}

,{13,12,11,10,9,8,7,6,6,7,8,9,10,11,12,13}

,{14,13,12,11,10,9,8,7,7,8,9,10,11,12,13,14}

};

 

 

روش سوم می­توانید در ابتدا این متغییر را تعریف کنید و سپس با استفاده از یک برنامه و الگوریتم به پر کردن آن بپردازید، این یکی از بهترین روش­هاست. در زیر مثالی از این روش آورده­ایم.

 

 

 

char tmaze[16,16];

char info[16,16]; // information

unsigned int value=0x0E; که همان عدد 14 می باشد

char xtp,ytp;

for (xtp=0;xtp<16;xtp++){

for (ytp=0;ytp<16;ytp++){

Tmaze[xtp,ytp]=value;

if (ytp<=7) value--;

if (ytp>=7) value++;

}

value--;

if (xtp<=7) value--;

if (xtp>=7) value++;

}

}

 

اطلاعاتی که در آرایه دوم قرار  می­گیرد به این قرار می باشد.

1-وجود دیواره جلو

2-وجود دیواره عقب

3-وجود دیواره سمت راست

4-وجود دیواره سمت چپ

5-خانه ای که یک بار رفته شده

6-خالی

 

با توجه به اینکه جدول دوم از 256 خانه 8 بیتی تشکیل شده و هر 8 بیت مربوط به یک خانه است   می­توانیم براي هر خانه تا 8 بیت اطلاعات ذخیره کنیم.

حال اگر به عنوان مثال خانه X و Y را در نظر بگیریم با قرار دادن آنها در Tmaze[x][y] عدد داخل خانه را بدست می­آوریم و با قرار دادن آن­ها در Maze[x][y] اطلاعات مربوط به هر خانه را که مثلا این خانه را قبلا آمده­ایم یا نه را بدست می­آورید.

 

3-5-2- قوانین حل Maze به روش Bellman Flooding

قوانین حل به شرح زیر می­باشند:

1-   دور تا دور زمین دیواره کشیده شده است ، یعنی سمت پایین خانه­هایی که در سطر Y=0 قرار دارند داراي دیواره و همچنین سمت بالاي خانه هایی که در سطر Y=15 ، سمت چپ ستون X=0 و سمت راست X=15 دارای دیواره هستند. که بهتر است قبل از شروع به کار روبات مقدار دهی اولیه شوند یعنی در جدول دوم در قسمت مربوط به دیواره­هاي این خانه­ها عدد یک که نشان دهنده وجود دیواره است را یادداشت کنید .

2-   وارد هر خانه­ای که می­شود در 8 بیتی مربوط به آن خانه در جدول دوم ، بیتی که مربوط به رفته شدن یا نشدن است را به نشانه رفته شدن این خانه که هم­اکنون در آن هستید یک کنید.

3-   بعد از توقف در هر خانه با استفاده از سنسورها دیواره­ها را بخوانید و وجود یا عدم وجود دیواره را تشخیص دهید و اگر دیواره موجود بود در جدول دوم علامت بزنید.

4-   باید همیشه یک متغیر داشته باشید که سمت روبات را نشان دهد که می­توانید از جهت­هاي بالا، پایین ، راست ، چپ یا شمال ، جنوب ، شرق ، غرب استفاده کنید.

 

 

 

 

3-5-3- اولویت­های حرکتی در Maze

همیشه باید وارد خانه­اي شوید که اولا آنرا نرفته باشید و دوما عدد آن کمتر از خانه­ای باشد که در آن هستید و در نهایت اگر خانه مقصدتان در شرایط بالا قرار نگرفت یعنی دو خانه بود که هم نرفته بودید و هم عددشان باهم برابر باشد و هم کوچتر از خانه­ا­یست که در آن هستیم تکلیف چیست؟

در شرایط قسمت قبل باید ورود به خانه را تحت یک اولیوت انجام دهیم بطور مثال اول بالا، دوم راست، سوم چپ، چهارم عقب مثال اگر در ابتدا شروع به حرکت می­کنید روي روبات به سمت شمال است و چرخش به سمت راست روي ربات را به سمت شرق می­کند.

با توجه به تعاریف زیر به چگونگی عملکرد اولویت­هاي حرکتی می­پردازیم.

خانه­ي باز: خانه­اي که عدد آن کوچکتر از عدد خانه­ي روبات باشد.

خانه­ي بسته: خانه­اي که عدد آن بزرگتر یا مساوي عدد خانه­ي روبات باشد.

  1. در صورت وجود تنها یک خانه­ي باز در اطراف روبات، روبات همان مسیر را در پیش می­گیرد.
  2. در صورتیکه بیش از یک خانه­ي باز در اطراف روبات وجود داشته باشد سه حالت ممکن زیر پیش  می­آید.

الف) در صورت باز بودن مسیر رو­به­رو و مسیر­هاي دو سمت روبات،روبات مسیر روبه­رو را انتخاب می­کند و جهت خود را تغییر نمی­دهد. این شیوه باعث می­شود تا سرعت روبات در جستوجوي زمین افزایش یافته و از تغییر جهت­هاي اضافی که باعث انحراف و کاهش سرعت روبات می­شود جلوگیري کند.

ب) در صورتی که خانه­ي پیش روي روبات بسته باشد روبات از بین دو خانه­ي دیگر خانه­اي را انتخاب می­کند که تعداد خانه­هاي بیشتري در امتداد آن باز باشد. در صورت محدودیت زمان، روبات امکان جست و جوي خانه­هاي بیشتري را پیدا می­کند.

ج) اگر خانه­ي پیش رو بسته و تعداد خانه­هاي باز در امتداد دو مسیر دیگر برابر باشد روبات طبق اولویت بالا، راست، چپ و پایین مسیر خود را انتخاب می­کند.

 

منتها اگر شرایطی پیش آید که به دلایل مختلف به یک خانه بسته برخورد کنیم ،باید کاري کرد که مقدار آنها از مقدار خانه روبات کوچکتر شود. چگونه؟

ما باید براي رفع این مشکل فقط و فقط در خانه­هایی که قبلا رفته­ایم تغییراتی انجام دهیم تا این امکان فراهم شود.

براي این کار باید خانه­هایی را که قبلا رفته­ایم یک واحد به مقدارشان اضافه کنیم. بدین صورت امکان رفتن روبات به سمت خانه­ي کوچکتر بوجود می­آید. شکل 3-3

 

 

شکل 3-3- کوتاهترین مسیر با استفاده از الگوریتم Beelman Flooding

 

 

آشنایی با نرم ­افزار Webots

 

 

 

2-1- مقدمه

در را­ستا علم رباتیک وجود نرم افزاری جامع که محیط و ربات را شبیه سازی کند بسیاری مورد نیاز خواهد بود. نرم­افزارهای کمی برای شبیه سازی ربات­ها وجود دارد، از این میان نرم­افزار Webots از نظر داشتن انواع سنسورها و شبیه­سازی سریع و حجم کم یک استثنا به شمار می­رود.

Webots نرم­افزاری برای مدلسازی و شبیه­سازی سریع ربات­های متحرک است که از سال 1996 توسعه یافته و توسط دکتر اولیور میشل عضو انجمن تکنولوژی فدرال سویس در آزمایشگاه پرفسور جین دانیل نیکود طراحی شد. از سال 1998 وبتز یک محصول تجاری شد و بوسیله شرکت سایبربوتیک توسعه یافت. کاربرانی که آن را خریده­اند بالغ بر 400 دانشگاه و مرکز تحقیقاتی در سراسر جهان هستند. وبتز همچنین توسط ارگان­های محقق و مراکز تحقیقاتی شامل تویوتا، هوندا، سونی، پاناسونیک، پایونیر، ان­تی­تی، سامسونگ، ناسا، استنفورد و غیره استفاده می­شود. Webots یک بسته نرم­افزار شبیه سازی ربات­های متحرک به صورت حرفه­ای است که یک مدل سریع همراه با محیط آن از یک ربات را ارائه می­کند. وبتز  به کاربران اجازه می­دهد که یک جهان مجازی سه بعدی همراه با خصوصیات فیزیکی شبیه جرم، مفاصل، ضریب اصطکاک و غیره را خلق کنند. کاربر به راحتی می­تواند اشیاء فعال و غیر­فعال خود را که ربات­های متحرک باشند را اضافه کند. این ربات­ها می­توانند مکانیزم­های جابه­جایی متفاوت داشته باشند نظیر    ربات­های چرخ دار، پادار، ربات­های پرنده و زیرآبی. علاوه بر این، آنها را می­توان به بسیاری از سنسورها و موتورهای محرک مجهز نمود، مثال می­توان سنسورهای فاصله یاب[1]، چرخهای دیفرانسیلی[2]، دوربین، سروو موتور[3]، سنسورهای تماسی، دست گیرنده، ارسال کننده، دریافت کننده و غیره را به ربات خود اضافه کنیم و از اطلاعات آن برای رفتار ربات که در برنامه کنترلی آن قرار دارد استفاده کنیم.

نرم افزار Webots دارای تعدادی رابط  به رباتهای متحرک واقعی نیز می­باشد بطوری که شما با شبیه سازی و برنامه­نویسی رباتتان، قادر خواهید بود آن را به ربات واقعی منقل کنید، همانند ربات­های  E-Puck ،  Hemisson ،  LEGO ، Aibo و غیره که در محیط واقعی نیز وجود داردن و آنها را می توان خریداری کرد. بطور مثال در شکل 2-1 ربات E-Puck را در محیط واقعی نشان داده شده است. [4]

 

 

شکل 2-1- ربات E-Puck در محیط واقعی

 

راحتی کار با این نرم­افزار آن را برای دانش­آموزان و دانشجویان بسیار مناسب کرده است. برای کار با آن به دانستن کمی برنامه نویسی نیاز می­باشد. در Webots می­توان ربات­های ساده تا پروژه­های پیشرفته را به خوبی طراحی و شبیه­سازی کرد. در تحقیقات دانشگاهی مورد استفاده قرار داد. همچنین مثال­های متعددی در نرم افزار وجود دارد که ذهن کاربر را به انواع مدل­های ربات آشنا می­کند.

 

2-2- قابلیت­های نرم­افزار Webots

نرم افزار Webots برای کارهای تحقیقاتی و پروژه­های آموزشی و دانشگاهی در ارتباط با ربات­های متحرک بسیار مناسب است. وبتز در این زمینه ها زیر می­تواند استفاده شود.

1-    مدل کردن ربات­های متحرک مانند: تحقیقات آکادمیک، اتوماسیون صنعتی، هوانوردی، صنعت جارو­برقی، صنایع اسباب بازی و سرگرمی­ها.

2-    تحقیقات در زمینه مکانیزم­های خودجابجایی ربات­ها مانند: ربات­های پادار، انسان نما، چهارپا و چرخ دار و غیره.

3-    تحقیقات ربات­های گروهی[4] مانند: هوش جمعی و همکاری گروه­های رباتی.

4-    تحقیقات رفتارهای انطباقی[5] مانند: الگوریتمهای ژنتیک، شبکه­های عصبی، یادگیری انطباقی و هوش­مصنوعی.

 

 

 

2-3- مراحل طراحی در نرم­افزار Webots

همانطور که در شکل 2-2 دیده می­شود طراحی یک ربات در webots از چهار مرحله تشکیل شده است.

 

شکل 2-2- مراحل طراحی در نرم­افزار Webots

 

2-3-1-         مدل کردن[6]

ساختن شکل فیزیکی ربات مانند اضافه کردن موتورها، سنسورها، بدنه ربات و ساختن محیط ربات. در این مرحله می­توان هندسه اشکال و رنگ آنها را تغییر داد و همچنین خصوصیات فنی سنسورها را تعریف کرد و از این طریق هر نوع رباتی را ساخت، اعم از ربات­های چرخ دار، ربات­های پادار، ربات­های انسان نما، پرنده، ربات­های زیرآبی و بازوهای مکانیکی-ماشینی[7] . همچنین محیط ربات را به طریق مشابه شامل موانع، دیوارها، توپ و سایر عوارض مصنوعی و طبیعی مدل کرد. شکل 2-3 تمامی خصوصیات اشیاء مانند: جرم، ممان اینرسی، ضربب اصطکاک، ضریب جهش و غیره قابل تعریف هستند.

 

شکل 2-3- مدل کردن ربات E-puck و محیطش در Webots

 

2-3-2-         برنامه­نویسی[8]

برنامه­نویسیبر اساس کاری که باید انجام شود، برای جلوگیری از برخورد و رسیدن به هدف. شامل      برنامه­نویسی گرافیکی برای مبتدیان تا سطح پیشرفته که به زبان­های URBI، phyton، java، c++، c، Matlab   می­توان به دلخواه برنامه نویسی انجام داد. برنامه کنترلی ربات بطور کلی یک حلقه بی­انتهاست. شکل 2-4

 

شکل 2-4-  برنامه نویسی در Webots

 

2-3-3-         شبیه سازی حرکت[9]

یعنی حرکت دادن ربات در محیط آن به وسیله برنامه همراه آن به منظور دیدن نتایج مطلوب و اصلاح آنهاست. این قسمت به کاربر اجازه خواهد داد که رفتار برنامه کنترلی را تست کند. در این قسمت با حرکت دادن موانع و تغییر محیط بوسیله موس میتوان ربات را برای ساخت انتخاب کرد.

 

2-3-4-         انتقال برنامه[10]

انتقال برنامه به ربات واقعی بوسیله پورت کامپیوتر یا ارتباط بی سیم. در این قسمت برنامه کنترلی ربات به ربات واقعی انتقال داده می­شود. شکل 2-5

 

شکل 2-5- انتقال برنامه به ربات واقعی

اگر ربات شما در این مرحله به خوبی محیط شبیه سازی عمل کرد که به نتیجه دلخواه رسیده­اید در غیر اینصورت می­بایست دوباره به مرحله یک رفته و شبیه سازی و برنامه را اصلاح و بهتر کنید و دوباره انتقال دهید. ولی اکثر مواقع با یک تغییر کوچک به نتیجه دلخواهتان خواهید رسید. [1]

 

 

 



[1] Distance Sensor

[2] Differential Wheels

[3] Servo

[4] Multi-agent

[5] Adaptive

[6] Modeling

[7] Robotics Community

[8] Programing

[9] Simulation

[10] Transfer

شبیه سازی ربات حل MAZE در نرم افزار Webots

 

 

ربات یک دستگاه یا وسیله خودکاری می­باشد که قادر به انجام اعمالی است که معمولا به ا­نسان­ها نسبت داده می­شود و یا مجهز به قابلیتی می­باشد که شبیه هوش بشری است. طبق تعریف موسسه صنعتی آمریکا RAI [1]   که شرکتی با سابقه در صنعت رباتیک می­باشد ربات، یک جابجا کننده چند وظیفه­ای برنامه پذیر است که برای حرکت دادن مواد، قطعات­، ابزارها یا وسایل خاص­، با استفاده از حرکات برنامه ریزی شده قابل تغییر برای تحقق فرامین مختلف، طراحی شده است. برای ربات­ها سه قانون بصورت زیر تعریف شده است تا جایگاه خود را در میان انسان­ها حفظ کند.

1ـ یک ربات نباید به هستی انسان آسیب برساند یا به واسطه بی‌تحرکی زندگی یک انسان را به مخاطره بیاندازد.

2ـ یک ربات باید از دستوراتی که توسط انسان به او داده می‌شود، اطاعت کند، جز در مواردی که با قانون یکم در تضاد هستند.

3ـ یک ربات باید تا جایی‌که با قوانین یکم و دوم در تضاد نباشد از خود محافظت کند. [5]

 

 

رباتیک علمی است که هر روزه دستاورد جدیدی در آن بدست می­آید و کاربردهای مختلف آن در     حوزه­های فضا، دریا، زمین، شرایط سخت و خدمات باعث رشد فزاینده آن شده است. تنوع ربات­ها با مکانیزم­های پا­دار، چرخ­دار، خزنده، زیرآبی و پرنده افراد فراوانی در حوزه­های مختلف علوم را وادار به تحقیق کرده است.

مهندسی مکانیک، برق، کامپیوتر سه شاخه اصلی علم رباتیک هستند. امروزه در ایران و جهان مهندسی رباتیک نیز در دانشگاه­ها تدریس می­شود. مسابقات گوناگون از سطح دانش آموزی تا پیشرفته، بسیاری از جوانان را به ربات و رباتیک علاقه­مند کرده است. بی­شک آینده جهان بسوی هوشمند شدن و وسایل هوشمند نظیر ربات­ها حرکت می­کند.

استفاده از شبیه سازی سریع برای توسعه پروژه­های رباتیک بسیار مفید است و عملا به طراحان این اجازه را    می­دهد تا سریعا ایده­های خود را ببینند و داده­ها را به ربات واقعی انتقال دهند. استفاده از نرم­افزاری برای شبیه سازی وقت بسیاری را ذخیره می­کند و به طراح این امکان را می­دهد تا احتمالات بیشتری را مد نظر قرار دهد. بنابراین کنترل زمان و کیفیت، نتیجه استفاده از چنین نرم­افزار است.

Maze مسیری پر پیچ و خم شامل یک نقطه آغاز و یک نقطه پایان است. از قدیم حل Maze به عنوان سرگرمی و بازی فکری مورد استفاده قرار گرفته است و رباتی که بتواند Maze را حل کند به عنوان یک ربات هوشمند شناخته می­شود.      

رقابت­هاي ربات حل Maze از اواخر سال 1970 در سراسر جهان آغاز شد و از سال 1980 بصورت پیشرفته دنبال گشت و هر ساله رقابت­هایی در سراسر جهان به صورت آزاد برگزار می­شود که از معتبرترین مسابقات جهانی می­توان به مسابقات ژاپن، انگلستان و آمریکا اشاره کرد که هر ساله با شکوه­تر از سال گذشته و با شرکت تیم­هاي قوي تر برگزار می­شود  بطوري که ربات­هاي ساخته شده جدید با نمونه­هاي قبلی قابل مقایسه نبوده و از نظر سرعت ، اندازه و الگوریتم تحولی چشمگیر دارند. مسابقات جهانی در رشته­ي Maze به این شکل برگزار می­شود. هدف از این مسابقه یافتن مرکز زمین در کوتاه ترین زمان توسط روبات می­باشد .

ربات حل Maze[2] باید قابلیت­های حرکت در بین دیوارها و تشخیص مقصد را داشته باشد تا بتواند Maze را حل کند و همچنین باید قابلیت ثبت مسیرهای رفته را داشته باشد و بتواند تشخیص دهد که کدام مسیر احتمال بیشتر برای رسیدن به هدف را دارد تا بتواند زودتر به مقصد برسد.

در این پروژه ابتدا مقدمه کلی درباره ربات و علم رباتیک پرداختیم. سپس به معرفی کلی نرم افزار      شبیه­سازی Webots و نحوه کار کردن با آن برای شبیه سازی یک ربات و محیط آن و همچنین چگونگی برنامه­ریزی ربات برای انجام فعالیتی که ما از ربات انتظار داریم. همینطور تعدادی از الگوریتم­های حل Maze را معرفی و به تشریح چگونگی عملکرد آنها پرداختیم. در پایان نیز نحوه شبیه­سازی محیط و ربات حل Maze را در نرم افزار شبیه سازی وبتز و چگونگی برنامه ریزی ربات برای اینکه بتوا­ند در محیط زودتر خود را به مقصد برساند را شرح دادیم.



[1] Robotic Industrial Association

[2] Maze Solver Robot

برنامه­نویسی و کنترل ربات حل Maze

 

 

5-1- ایجاد یک برنامه کنترلی جدید

برای برنامه­نویسی و کنترل ربات حل Maze در محیط Webots ابتدا یک برنامه کنترلی جدید را از منوی Wizard گزینه New Robot Controler را انتخاب می­کنیم. این کار باعث ایجاد فایل­های لازم برای کنترل ربات می­شود. بعد از کلیک این گزینه باید نوع زبان برنامه­نویسی که در شکل 5-1 نشان داده شده است و نام برنامه کنترلی خود را انتخاب کنیم تا در نهایت یک پنجره جدید در ویرایشگر کدها برای تایپ برنامه باز ­شود. این پنجره خطاهای برنامه را پیدا می­کند و فایل­های لازم را بوسیله دکمه Build می­سازد که در پوشه کنترل زیر مجموعه پوشه ربات قرار می­گیرد. گاهی لازم است برای محیط هم ویژگی­های خاصی تعریف شود که در همین پنجره بوسیله برنامه­نویسی و استفاده از موتور دینامیکی باز یا ode قابل تعریف است. این موتور دارای یک سری از دستورات سطح بالای زبان C برای دسترسی به اجزا ربات است.

 

شکل 5-1- انخاب زبان برنامه­نویسی در ایجاد یک برنامه کنترلی

 

5-2- طرح کلی برنامه

هر برنامه کنترل ربات از ترتیب یکسانی ساخته شده است. دستو اولیه Wb_robot_init() برای شروع کار ربات لازم است. سپس باید وسایل همراه ربات را معرفی و آنها را روشن نمود. کار بعدی این است که یک حلقه نامحدود که در هر گام زمانی تگرار می­شود را ایجاد کرد که این گام زمانی با دستور Wb_robot_step() معرفی می­شود که بر حسب میلی ثانیه است. بطور کلی کار حلقه­ی نامحدود این است که اطلاعات را از سنسور ها می­گیرد، آنها را پردازش می­کند و خروجی لازم را به موتورها می­دهد و نهایتا دستور Wb_robot_step() را فرا می­خواند. دستور Wb_robot_cleanup() در پایان برنامه باید درج شود تا خروج از برنامه با پاک کردن حافظه­ها انجام گیرد.

 

 

5-3- اجرای برنامه از دیدگاه Webots

هر ربات در Webots به پوشه کنترلر پروژه نگاه می­کند تا فایل کنترلی مورد نظر خود را بیابد. برای مثال اگر برنامه کنترلی نام آن Simple باشد، Webots سعی می­کند تا نخست فایل Simple.exe را اجرا کند. اگر چنین فایلی پیدا نشد دنبال فایل Simple.class می­گردد و آن را به عنوان یک برنامه جاوا آغاز می­کند. اگر این فایل نیز پیدا نشد دنبال فایل Simple.jar می­گردد و در نهایت فایل Simple.py را جستجو می­کند. اگر این فایل نیز نباشد آنگاه Webots دیگر قادر نیست برنامه کنترلی را آغاز کند و از برنامه کنترلی Void به عنوان پیش فرض استفاده می­کند.

 

5-4- کنترل­های همزمان و غیرهمزمان

هر نوع رباتی کنترل آن یا همزمان است یا غیر همزمان. Webots قبل از اینگه زمان شبیه­سازی را جلو ببرد منتظر برنامه کنترلی همزمان می­ماند. بنابر این یک برنامه کنترلی غیرهمزان ممکن است دیرتر اجرا شود، توصیه می­شود از کنترل­های همزمان استفاده کنید و تنها زمانی از کنترل غیر همزمان استفاده کنید که محاسبات ربات بالا باشد و یا محدیدیت کامپیوتری وجود داشته باشد و اینکه از یک شبیه سازی با چندین ربات استفاده می­کنید که زمان تاخیرش نامعلوم است مانند شبکه اینترنت.

 

 

 

 

 

5-5- خواندن اطلاعات سنسورها

برای جمع آوری اطلاعات سنسور باید فعالیت­های زیر را انجام دهیم:

1-    معرفی بشود: که بوسیله دستور Wb_robot_get_device() انجام می­شود که وسیله را بر اساس فیلد نامش جستجو می­کند. این کار فقط یکبار کافیست اجرا شود آن هم قبل از حلقه اصلی، خود ربات نیز یک وسیله است ولی نیازی به معرفی شدن ندارد چون بطور پیش فرض معرفی شده است.

2-    فعال باشد: که با دستور مانند Wb_distance_sensor_enable() فعال می­شود. این کار نیز یکبار قبل از حلقه اصلی باید انجام شود. البته اگر قصد غیرفعال کردن آنها را دارید می­توانید در حلقه اصلی این سنسورها را چندین بار فعال و غیر فعال کنید.

3-    اجرا شود: که بطور خودکار توسط دستور Wb_robot_step() اجرا می­شود.

4-    خوانده شود: در نهایت شما می­توانید مقادیر سنسورها را با استفاده از دستور خاص خودش بخوانید مانند: Wb_distance_sensor_get_value() که در حلقه اصلی این دستورات قرار می­گیرند.

 

5-6- کنترل محرک­ها

یک محرک آسانتر از سنسور کنترل می­شود. آنها نیازی به فعال شدن ندارد. برای کنترل یک محرک باید فعالیت­های زیر را انجام دهیم:

1-    معرفی بشود: این کار با دستور Wb_robot_get_device() اجرا می­شود که محرک را با استفاده از فیلد نامشان جستجو می­کند و فرامین را به آن باز می­گرداند. این کار فقط باید یکبار قبل از حلقه اصلی انجام شود.

2-    تنظیم شود: این کار با دستور تنظیم سرعت یا موقعیت یا شتاب و غیره انجام می­شود مانند: Wb_differential_Wheels_set_speed() این دستورات در حلقه اصلی درج می­شوند.

3-    اجرا شوند: این کار در طول حلقه و بعد از دستور Wb_robot_step() بطور خودکار اجرا می­شود.

 

5-7- موتور کشف برخورد

موتور کشف برخورد قادر به تشخیص برخورد میان دو جسم صلبی می­باشد. هدف از این موتور آن است که اشیا با هم تداخل نداشته باشند. این کار بوسیله نیروهای تماسی که دو جسم را دور از هم نگه می­دارند انجام می­پذیرد. توجه کنید هر جسمی که دارای مرز باشد هنگام برخورد، موتور کشف برخورد آن را تشخیص می­دهد و داشتن جرم بدین منظور الزامی نیست.

موتور کشف برخورد فقط با اشیاء مرزی سروکار دارد که در فیلد boundingObject هر جسم صلبی یا هر ربات یا سروو موتوری مشخص می­شود. توجه کنید که شی مرزی می­تواند بزرگتر از جسم باشد یا اصلا جسمی درون آن نباشد ولی در واقعیت همواره مرز پیرامون محیط جسم قرار دارد و نه بزرگتر از آن. اشیا مرزی می­توانند از یک شکل هندسی با یک گروه از اشیا هندسی مانند کره، مکعب، استوانه، هرم و رویه­ها درست شده باشند ولی گره extrusion نمی­تواند مرز باشد. اگر فیلد مرز شی خالی باشد، هیچ برخوردی کشف نمی­شود و همه چیز می­تواند از درون هم عبور کند. هر جسم صلبی می­تواند شامل اجسام صلب دیگری در قسمت children خود باشد که هر یک مرز خود را دارد. مانند مدل کردن بازوهای مکانیکی.

 

 

 

 

 

5-8- برنامه کنترلی ربات حل Maze

برنامه کنترلی برای ربات حل Maze باید اطلاعات محیط را به کمک سنسورهای فاصله­یاب ، قطب­نما ، GPS و دوربین دریافت کند و شرایط فعلی خود را در محیط پیدا کند. وابسته به این که ربات در چه مکانی قرار دارد که به کمک سنسور موقعیت جهانی GPS می­توان موقعیت روبات را در محیط شبیه­سازی بدست آورد، همچنیین بستگی به اینکه ربات رو به کدام جهت می­باشد مانند: شمال، جنوب، شرق و غرب که به کمک سنسور قطب نما می­توان جهت ربات را تعیین کرد، همچنین بستگی به اینکه کدام سمت از ربات دیوار وجود دارد می­توان جهت حرکت ربات را تعیین نمود. و باید در حافظه خود مسیرهایی که رفته است را نگهداری کند که از چه مسیرهایی رفته است که هنگام برگشت از مسیری برود که تاکنون نرفته است و سعی کنیم کوتاهترین مسیر را برای رسیدن به مقصد پیدا کنیم و از آن مسیر به مقصد برسیم.

در این پروژه مقصد را مکانی قرار داده که رنگ کف آن سفید باشد. زمین محیط Maze یک سطح چهارخونه­ای است که تعداد این خانه­ها 16 خانه برای طول و 16 خانه برای عرض است و اندازه هرکدام از این خانه­ها 2سانتی متر برای طول و 2سانتی متر برای عرض می­باشد. دیواره­های این محیط رنگی غیر از سفید دارند و طول آنها به آن اندازه بلند می­باشد که سنسورهای ربات با آنها برخورد کنند و دیوارها را تشخیص دهند. چراغهایی نیز در این محیط وجود دارد که محیط را روشن کرده اند و دوربین ربات می­تواند رنگ­های کف را از هم تشخیص بدهد.

 

5-8-1- فراخوانی وسایل­ ربات در برنامه

برای فراخوانی وسایل­ ربات باید فایل­های سرایند یا همان کتابخانه­ای مربوط به وسایل را در Webots فراخوانی کنیم تا بتوان از دستورات مربط به آن وسیله استفاده کنیم. مانند: دریافت اطلاعات سنسورها و انجام دادن عملی به وسیله عملگر ربات.

وسیله هایی که در این ربات استفاده کرده­ایم و باید فایل سرایند آنها را به برنامه اعلان کنیم، شامل:    چرخ­های ربات، سنسور فاصله­یاب، دوربین، سنسور موقعیت جهانی GPS ، قطب­نما.

#include 

#include 

#include 

#include 

#include 

#include 

#include 

 

در ابتدا فایل سرایند ربات را اضافه می­کنیم که شامل فایل­های کتابخانه­ای مربوط به دستورات Webots      می­باشد را به برنامه اضافه می­کند و می­توان از دستورات اختصاصی برنامه استفاده کرد. همچنین فایل­های سرایند مربوط به چرخ­ها را باید به برنامه اضافه کنیم که برنامه به کمک آن بتواند چرخ­ها را بچرخاند و ربات به حرکت در بیاید. فایل­های سرایند مربوط به سنسورهای فاصله­یاب را باید به برنامه اضافه کنیم که بتوانیم اطلاعات مربوط به فاصله ربات تا مانع را به برنامه بازگرداند. فایل­های سرایند مربوط به دوربین را به برنامه اضافه می­کنیم تا بتوان تصاویر دریافتی از دوربین­ها را در برنامه برسی کنیم و بتوان اطلاعاتی را از تصاویر دریافتی استخراج کنیم. فایل­های سرایند مربوط به سنسور موقعیت  جهانی GPS را به برنامه اضافه       می­کنیم تا بتوان از اطلاعات موقعیتی خود در برنامه استفاده کرد و عمل مورد نظر خود را در آن موقعیت انجام داد. فایل­های سرایند مربوط به قطب­نما را در برنامه فراخوانی می­کنیم تا در برنامه بتوانیم اطلاعات مربوط به جهت ربات را از قطب نما دریافت کنیم و بستگی به اینکه ربات رو به چه جهتی است تعیین کنیم چه عملی انجام دهد. از فایل سرایند Stdio نیز برای چاپ گزارشات از اطلاعات داخل برنامه در قسمت Consol استفاده می­کنیم.

 

 

5-8-2- تعریف ثابت­های برنامه

در هر برنامه یک سری اطلاعاتی وجود دارد که باید در تمام طول برنامه ثابت  باشند و تغییر پیدا نکنند و بتوان از اطلاعات آنها در برنامه استفاده کرد. بدین منظور این اطلاعات از نوع ثابت در برنامه تعریف می­کنیم که کاربر نتواند آنها را تغییر دهد.

#define SPEED 60

#define TIME_STEP 128

 

در این برنامه دو ثابت بیشتر وجود ندارد یکی مربوط به سرعت چرخ­ها  و دیگری گام زمانی می­باشد که در هرگام اطلاعات مربوط به سنسورها فراخوانی و عمل مورد نظر انجام می­شود. گام زمانی باید ضریبی از 64 باشد تا بتواند اطلاعات کامل سنسورها را دریافت و عمل مورد نظر را انجام دهد و به صورت پیش فرض برابر 64 می­باشد.

 

5-8-3- تابع اصلی برنامه

همه برنامه­های Webots از یک تابع اصلی تشکیل شده­اند که هنگام فراخوانی برنامه ابتدا این تابع اجرا  می­شود.

int main()

{

  wb_robot_init();

 

  return 0;

}

 

اسم تابع اصلی برنامه Main می­باشد که مقدار بازگشتی آن بطور پیش فرض از نوع عددی می­باشد. در ابتدای این تابع یک دستور وجود دارد که وجود آن برای درست اجرا کردن برنامه الزامی می­باشد و در پایان یک مقدار عددی مثلا صفر را به تابع اصلی باز می­گرداند.

 

5-8-4- حلقه بی پایان برنامه

در هر برنامه Webos یک حلقه بی­پایان وجود دارد که در هر بار فراخوانی آن اطلاعاتی از محیط دریافت می­کند و عملی روی محیط انجام می­دهد.

while(wb_robot_step(TIME_STEP)!=-1)

{

 

}

 

این حلقه هیچ وقت پایان پیدا نمی­کند و همیشه داخل آن شرطی را قرار می­دهیم که همیشه درست    می­باشد مثلا در مثال بالا گام زمانی که یک ثابت همیشه نا مساوی 1- است و حلقه دوبازه تکرار می­شود.

 

5-8-5- فراخوانی و روشن کردن سنسورهای فاصله­یاب

در برنامه ما به اطلاعات مربوط به فاصله ربات با موانع نیاز داریم و بنابر این سنسورهای فاصله یاب را در برنامه فراخوانی کرده و آنها را فعال کنیم تا بتوان از اطلاعات آنها استفاده کنیم.

  WbDeviceTag ir0 = wb_robot_get_device("ir0");

  WbDeviceTag ir1 = wb_robot_get_device("ir1");

  WbDeviceTag ir2 = wb_robot_get_device("ir2");

  WbDeviceTag ir3 = wb_robot_get_device("ir3");

  wb_distance_sensor_enable(ir0, TIME_STEP);

  wb_distance_sensor_enable(ir1, TIME_STEP);

  wb_distance_sensor_enable(ir2, TIME_STEP);

  wb_distance_sensor_enable(ir3, TIME_STEP);

 

در دستورات بالا ابتدا سنسورهای فاصله یاب که در محیط شبیه سازی قرار دارد را در برنامه فراخوانی    می­کند و آنها را به شی­هایی از نوع WbDeviceTag مربوط می­کند. به کمک این شی می­توان به اطلاعات سنسور دسترسی پیدا کرد و  سنسور مورد نظر را فعال  کرد. این عمل به کمک دستورات موجود در فایل کتابخانه­ای سنسور فاصله یاب انجام می­شود. برای فعال کردن سنسور مورد نظر باید گام زمانی برنامه را نیز داشته باشیم.

 

5-8-6- فراخوانی و روشن کردن دوربین

در برنامه ما تشخیص اینکه ربات در مقصد قرار دارد یا نه از دوربین استفاده می­کنیم و تصاویری که به وسیله دوربین گرفته شده است را در برنامه می­آوریم تا آنها را آنالیز کنیم بدین منظور نیاز داریم که دوربین را در برنامه فراخوانی و آن را روشن کنیم.

  WbDeviceTag camera = wb_robot_get_device("camera");

  wb_camera_enable(camera, 2 * TIME_STEP);

  wb_camera_move_window(camera, 10, 50);

 

در دستورات بالا ابتدا دوربین را از محیط شبیه سازی فراخوانی می­کنیم و آن را در برنامه به یک شی ربط می­دهیم. به کمک آن شی دوربین را فعال می­کنیم و تصاویر دریافتی را به برنامه انتقال می­دهیم. برای فعال کردن باید گام زمانی برنامه را نیز به عنوان آرگومان­ها قرار دهیم. همچنین موقعیت نمایش تصاویر دوربین را محیط شبیه سازی تعیین می­کنیم.

5-8-7- فراخوانی و روشن کردن قطب­نما

برای تشخیص جهت ربات در برنامه باید اطلاعات قطب نما را از محیط شبیه­سازی به برنامه انتقال دهیم. بدین منظور ابتدا باید قطب نما را در برنامه فراخوانی کنیم و سپس آن را فعال کنیم. 

 WbDeviceTag compass = wb_robot_get_device("compass");

  wb_compass_enable(compass, TIME_STEP);

 

در کد بالا ابتدا گره قطب نما را از محیط شبیه سازی فراخوانی می­کند و آن را به شی در برنامه مرتبط  می­کند. به کمک آن شی قطب نما را فعال می­کنیم و اطلاعات آن را به برنامه انتقال می­دهیم. برای فعال کردن قطب نما باید گام زمانی برنامه را نیز داشته باشیم.

 

5-8-8- فراخوانی و روشن کردن موقعیت یاب جهانی GPS

برای بدست آوردن موقعیت ربات در برنامه باید اطلاعات GPS را از محیط شبیه­سازی به برنامه انتقال دهیم و به کمک این اطلاعات موقعیت فعلی ربات در محیط شبیه­سازی را به دست آورد و بر اساس اینکه در چه موقعیتی است تعیین کنیم چه عملی انجام دهد. بدین منظور GPS را باید در برنامه فراخوانی کنیم و سپس آن را روشن کنیم تا بتوان از اطلاعات آن استفاده کرد.

  WbDeviceTag gps = wb_robot_get_device("gps");

  wb_gps_enable(gps, TIME_STEP);

 

در دستورات بالا ابتدا گره موقعیت یاب جهانی GPS را از محیط شبیه­سازی فراخوانی می­کنیم و آن را به یک شی در برنامه مرتبط می­کنیم. به کمک آن شی و گام زمانی برنامه موقعیت یاب جهانی GPS را فعال می­کنیم و از اطلاعات آن برای انجام فعالیت­ها مختلف استفاده می­کنیم.

5-8-9- ایجاد آرایه دو بعدی برای ثبت مسیرهای رفته

برای اینکه مشخص کنیم ربات قبلا از چه مسیرهای رفته که برای مسیرهایی که تاکنون نرفته یا کمتر رفته اولویت بیشتری قرار دهیم استفاده می­کنیم. به کمک این روش می­توان کاری کرد ربات زودتر به مقصد برسد و مسیری که قبلا رفته و به مقصد نرسیده را بست. در محیط Maze ما چون از 16 سطر و 16 ستون استفاده شده است می­توان از یک آرایه دو بعدی با 16 سطر و 16ستون می­توان استفاده کرد. اما استفاده از این آرایه ممکن است مشکلاتی را در پی داشته باشد، زیرا این آرایه فقط به اندازه تعداد خانه­های داخلی محیط است و اطراف محیط را شامل نمی­شود، مقادیر اطراف آن به صورت تصادفی می­باشد و ممکن است مقدار منفی یا کمتر از مقدار آن خانه باشد بنابر این اولویت خانه بیرون از محیط بیشتر از داخل محیط  می­باشد و ربات به طرف دیوار می­رود. بنابر این ما از یک آرایه دو بعدی بزرگتر استفاده می­کنیم که     خانه­های اطراف ربات را نیز شامل شود. بنابر این برای محیط Maze ما از یک آرایه دو بعدی با 18 سطر و 18 ستون استفاده می­کنیم که خانه­های آن طرف دیوار  را نیز شامل شود و مقادیر این خانه­ها را بالا قرار می­دهیم که هیچوقت اولویت آن بیشتر از خانه­های داخلی نشود.

int maze[18][18]={{9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9},

                                  {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9}};

 

در دستورات بالا یک آرایه با نام Maze از نوع عدد صحیح ایجاد کرده و این آرایه شامل 18 سطر و 18 ستون می­باشد. مقادیر اولیه آن را برای خانه­های اطراف آن مقدار 9 قرار می­دهیم که در برنامه الویت کمتری داشته باشد و برای خانه­های داخلی مقدار صفر را قرار می­دهیم که اولویت بیشتری داشته باشد. برای دسترسی به مقادیر آرایه دو بعدی باید ابتدا شماره سطر را تعیین کنیم و سپس شماره ستون، مثلا برای دسترسی به خانه­ای در سطر دوم و ستون چهارم باید از دستور Maze[2][4] استفاده کنیم. در خانه­های آرایه محور Z نشان دهنده سطر خانه­ها و محور X نشان دهنده ستون خانه­ها می­باشد بنابر این برای دسترسی به خانه­های معادل با خانه موجود در محیط شبیه سازی باید ابتدا موقعیت ربات را در محور Z و سپس موقعیت ربات در محور X را تعیین کنیم. یعنی برای خانه­ای که در موقعیت دوم محور X قرار دارد و در موقعیت چهارم محور Z به صورت Maze[4][2] عمل می­کنیم.

شاید ممکن است با خود بگویید می­توان این کار را با کدهای کمتری و به کمک حلقه تو در تو For یا شرط While تو در تو مقدار دهی اولیه کنیم ولی با این کار این حلقه­های تو در تو زمانی زیادی را می­گیرد و بیشتر از گام زمانی است بنابر این تمام خانه­های آرایه مقدار اولیه نمی­گیرند و در برنامه ایجاد مشکل   می­کند. بنابر این مجبوریم که مقدار اولیه آرایه را به صورت دستی وارد کنیم.

 

 

 

 

5-8-10- دریافت اطلاعات سنسور فاصله­یاب

برای تشخیص فاصله ربات با مانع در برنامه باید اطلاعات مربوط به سنسور فاصله یاب را از محیط دریافت کنیم. اطلاعاتی که سنسور فاصله­یاب می­فرستد بر اساس مقادیر موجود در جدول LookupTable  سنسور فاصله یاب می­باشد. بر اساس این مقدار می­توان فاصله تا مانع را تعیین نمود و عمل مناسب را انجام داد.

    double ir0_value = wb_distance_sensor_get_value(ir0);

    double ir1_value = wb_distance_sensor_get_value(ir1);

    double ir2_value = wb_distance_sensor_get_value(ir2);

    double ir3_value = wb_distance_sensor_get_value(ir3);

 

کد بالا اطلاعات سنسورها را به کمک شی که سنسور را به آن مرتبط کرده­ایم در برنامه دریافت می­کند. مقادیر این سنسورها را در شی از نوع Double قرار می­دهیم. می­توان از این شی برای شرایط­ مختلف استفاده کرد که در فاصله­های مختلف عملیات مختلفی انجام دهد.

 

5-8-11- دریافت تصاویر از دوربین

برای تعیین اینکه ربات به مقصد رسیده است یا خیر باید تصاویر دوربین را در برنامه دریافت کنیم.

const unsigned char *image = wb_camera_get_image(camera);

 

کد بالا تصاویر را از دوربین دریافت می­کند به کمک شی که به گره دوربین ربط دادیم. تصویر دریافتی را در ثابتی با نام Image از نوع کاراکتری بدون علامت یا Unsigned Char استفاده می­کنیم و از این تصویر   می­توان برای تشخیص شی که در جلو ربات قرار دارد استفاده کرد.

5-8-12- بررسی تصاویر دوربین برای تشخیص مقصد

در این پروژه مقصد مکانی می­باشد که رنگ کف آن سفید است، بنابر این ما باید به دنبال رنگ سفید در تصاویر باشیم و هنگامی که رنگ سفید را پیدا کرد متوقف شود. در Webots تصاویر دریافتی را می­توان به سه رنگ قرمز، سبز و آبی یا همان RGB تفکیک کرد. مقادیر هر کدام از این رنگها از صفر می­باشد تا 125 و هرچه مقدار آن بیشتر باشد به سفید نزدیک تر می­شود. اگر مقدار هر کدام از این سه رنگ بزرگتر از 200 باشد بدین معنی است که در تصویر رنگ سفید زیاد است. و هنگامی که رنگ سفید را پیدا کرد سرعت چرخ ها صفر شود یعنی در جای خود متوقف شود.

       int x = 0;

       int y = 0;

       int flag=0;

     

       while (x < 50)

       {

                      while (y < 40)

                {

                       int r = wb_camera_image_get_red(image,50, x, y);

                           int g = wb_camera_image_get_green(image,40, x, y);

                      int b = wb_camera_image_get_blue(image,50, x, y);

                      if (r>200 && g>200 && b>200)

                      {

                          flag=1;

                      }

                      y++;

          }

          x++;

        }

 

در دستوات بالا ابتدا سه متغییر را از نوع عدد صحیح تعریف می کنیم. از متغییر X برای برسی پیکسل­های ستونی و Y برای برسی پیکسل­های سطری استفاده می­شود و همچنین متغییر Flag نیز برای تعیین اینکه آیا رنگ سفید در تصویر پیدا کرده است یا خیر استفاده می­شود. اگر مقدار Flag برابر صفر باشد بدین معنی است که رنگ سفید پیدا نشده، در ابتدا نیز صفر می­باشد و اگر مقدارش برابر یک باشد بدین معنی است که رنگ سفید پیدا شده است.

از دو حلقه تو در تو برای برسی کل تصویر استفاده می­کنیم، حلقه بیرونی ستون­های تصویر را از ستون صفر تا آخرین ستون بررسی می­کند و حلقه داخلی سطرهای تصویر را از سطر صفر تا آخرین سطر برسی می­کند، و تصویر دریافتی را به سه رنگ RGB تفکیک  و مقدار آنها را بررسی می­کند و اگر همزمان سه مقدار رنگ آن بیشتر از 200 باشد مقدار پرچم را برابر یک قرار می­دهد یعنی به مقصد رسیده است.

      if (flag == 1)

      {

        left_speed = 0;

        right_speed = 0;

        break;

      }

 

در قطعه کد بالا اگر پرچم برابر یک قرار گیرد سرعت چرخ چپ و راست را برابر صفر قرار می­دهیم تا ربات متوقف شود و از حلقه بی­نهایت خارج می­شویم، تا برنامه به پایان برسد.

 

 

 

 

 

 

5-8-13- دریافت اطلاعات سنسور قطب­نما

برای مشخص شدن جهت ربات در برنامه کنترلی باید اطلاعات مربوط به قطب­نما را در برنامه فراخوانی کنیم. در این برنامه ما فقط از محور اول و سوم یا همان محور X و Z استفاده می­کنیم. هر کدام از مقادیر این محورها می­تواند از 1- تا 1 باشند که اگر مقدار محور X برابر یک باشد جهت شمال مجازی و اگر منفی یک باشد جهت جنوب مجازی را نشان می­دهد و همچنین اگر مقدار محور Z بربر یک باشد جهش غرب و اگر منفی یک باشد جهت شرق را نشان می­دهد.

  const double *compass_values = wb_compass_get_values(compass);

  compass_x = compass_values[0];

  compass_z = compass_values[2];

 

در قطعه کد بالا ابتدا اطلاعات قطب نما را از به کمک شی که به گره قطب نما ربط داده­ایم در برنامه دریافت می­کنیم و در ثابتی با نام Compass_value از نوع Double قرار می­دهید. این ثابت دارای سه مقدار می­باشد که مقدار اولی آن مربوط به محور X ، مقدار دوم مربوط به محور Y، مقدار سوم آن مربوط به محور Z می­باشد. مقادیر این محورها را در متغییرهای از نوع Double که در اول برنامه اعلان کرده­ایم قرار می­دهیم تا در طول برنامه از آنها برای تشخیص جهت ربات استفاده کنیم.

 

5-8-14- دریافت اطلاعات سنسور موقعیت جهانی GPS

برای دریافت موقعیت ربات در برنامه کنترلی باید اطلاعات مربوط به سنسور GPS را در برنامه دریافت کنیم. اطلاعات دریافتی شامل اطلاعات مربوط به هرکدام از سه محور اصلی می­باشد که چون ارتفاع ربات ما تغییر نمی­کند از محور دوم آن یا Y استفاده نمی­شود و همیشه برابر صفر می­باشد. مقادیر محور اول و سوم در بالا و چپ محیط مجازی برابر صفر و صفر می­باشد. هرچه به سمت راست حرکت کنیم مقدار X آن بر اساس متر زیاد می­شود و هر چه به سمت پایین حرکت کنیم مقدار Z بر اساس متر زیاد می­شود. در محیط مجازی ما طول محیط برابر 2/3 متر و سطر محیط برابر 2/3 متر می­باشد. مقادیر محورها در گوشه پایین سمت راست برابر با 2/3 برای محور اول و 2/3 برای محور سوم و همچنین محور دوم نیز صفر می­باشد.

const double *gps_values = wb_gps_get_values(gps);

    gps_x_d = gps_values[0] / 0.2;

    gps_z_d = gps_values[2] / 0.2;

    gps_x = (int)gps_x_d;

    gps_z = (int)gps_z_d;

 

در دستورات بالا ابتدا اطلاعات سنسور موقعیت جهانی GPS را به کمک شی که به گره GPS ربط دادیم در برنامه دریافت می­کنیم و این اطلاعات را در ثابتی با نام GPS_Values از نوع Double قرار می­دهیم. مقادیر دریافتی براساس فاصله تا گوشه بالا سمت چپ  محیط بر حسب متر می­باشد و ما برای تعیین موقعیت ربات که در کدام خانه قرار دارد باید اطلاعات هر محور را بر 0/2 تقسیم کنیم و از مقدار صحیح آن استفاده کنیم. به دلیل اینکه اندازه هر کدام از خانه های محیط برابر 2/0 متر برای طول و 2/0 متر برای عرض می­باشد. برای ما مهم نیست که ربات ما در کجای خانه قرار دارد و فقط برای ما مهم است که در کدام خانه قرار دارد از قسمت ا­عشاری آن صرفه نظر می­کنیم. بنابر این خانه بالا سمت چپ در موقعیت صفر و صفر قرار دارد و خانه پایین سمت راست در موقعیت 15 و 15 قرار دارد.

 

5-8-15- تطبیق موقعیت خانه­ها با اندیس­های آرایه

برای اینکه مسیرهای رفته ربات را در حافظه آن نگهداریم که دفعه بعد از آنجا نرود باید از هر خانه­ای که رد می­شویم مقدار خانه آرایه معادل با خانه که ربات در آن قرار دارد را یکی به آن اظافه کنیم. از آنجا که ما از یک آرایه با 18 سطر و ستون استفاده کرده­ایم و خانه­های کناری این آرایه را برای بیرون از محیط      شبیه­سازی در نظر گرفته­ایم باید عدد یک را به مقادیر آدرس سطر و ستون­ها اضافه کنیم. بنابر این موقعیت خانه بالا سمت چپ برابر یک و یک می­باشد و خانه پایین سمت راست در موقعیت 16 و 16 قرار دارد.

    gps_x = gps_x + 1;

    gps_z = gps_z + 1;

 

در کد بالا مقدار GPS محورهای اول و سوم را یکی اضافه می­کنیم تا معادل با مکان مورد نظر ما در آرایه دو بعدی باشد. ما می توانیم از دستور ((++ یا پلاس پلاس استفاده کنیم اما این دستور در بعضی مواقع در برنامه Webots ایجاد مشکل می­کند و ممکن است یکی به مقدار آن متغییر اضافه نکند بنابر این بهتر است برای اضافه کردن یک واحد به مقدار یک متغییر مانند دستور بالا عمل کنیم.

 

5-8-16- ثبت مسیر حرکت ربات در آرایه

برای تعیین مسیرهایی که قبلا رفته­ایم باید مقدار خانه آرایه دو بعدی معادل آن خانه را یکی واحد اضافه کنیم. برای این کار باید تعیین کنیم که هر بار وارد یک خانه شد فقط یک واحد اضافه کند و تا زمانی که به خانه دیگری نرفته­ایم مقادیر آرایه را تغییر ندهد، زیرا در هر واحد زمان که در خانه­ای قرار دارد یک واحد به خانه معادل آرایه اضافه می­کند.

    if (gps_x_now != gps_x || gps_z_now != gps_z){

      maze[gps_z][gps_x]++;

      gps_x_now = gps_x;

      gps_z_now = gps_z;

    }

 

در کد بالا ابتدا خانه که در آن قرار داریم را با مختصات GPS مقایسه می­کند اگر یکی از محورهای آن مقدارش تغییر کرده باشد یعنی ربات به خانه دیگری رفته باشد، مقدار خانه آرایه دوبعدی معادل خانه جدید را یک واحد اضافه می­کنیم و خانه فعلی را برابر خانه جدیدی که در آن قرار داریم می­دهیم. با این کار هر باری که به یک خانه جدیدی برود به مقدار آن خانه یکی واحد اضافه می­کند.

5-8-17- بدست آوردن موقعیت ربات در هر خانه

برای اینکه تعیین کنیم ربات در کجای خانه تصمیم بگیرد که به کدام جهت برود که هنگام چرخش با دیواره­ها برخورد نکند باید موقعیت ربات را در خانه بدست آورد. بهتر است وسط خانه­ها را برای تصمیم گیری انتخاب کنیم که به دیواره­ها برخورد نکند. ما باید موقعیت ربات را در در هر خانه بدست آوریم تا بتوان وسط خانه را پیدا کرد.

    mid_h_x_i = (gps_values[0] * 1000);

    mid_h_z_i = (gps_values[2] * 1000);

    mid_h_x = (mid_h_x_i % 200);

    mid_h_z = (mid_h_z_i % 200);

 

در دستورا ت بالا ابتدا مقادیر GPS محورهای اول و سوم را در 1000 ضرب می­کنیم تا رقم­های اعشاری آن به صحیح تبدیل شود، سپس این مقادیر را تقسیم بر 200 می­کنیم که مقدار خانه­ها بین صفر تا 200 باشند. بدین صورت که بالای هر خانه مقدار متغییر وسط خانه محور X آن برابر با صفر و در پایین خانه مقدار متغییر وسط خانه محور X آن برابر با 200 می­باشد و همچنین در سمت چپ مقدار متغییر وسط خانه محور Y برابر با صفر می­باشد و در سمت راست مقدار متغییر وسط خانه محور Y برابر با 200 می­باشد.

 

5-8-18- انجام یک عمل بیش از یک واحد زمانی

در بعضی موارد باید یک فعالیت رابیش از یک واحد زمانی انجام دهیم، مانند هنگامی که می­خواهیم ربات 45 یا 180 درجه بچرخد باید تعیین کنیم که ربات به تعدادی خاصی از واحد زمانی بچرخد که به 45 یا 180 درجه برسد و پس از آن عملیات بعدی را انجام دهد.

 

      if (step > 0){

        step--;

      }

 

در کد بالا ابتدا برسی می­شود اگر در قسمتی از برنامه مقدار متغییر Step را که بیانگر تعداد واحد زمانی که باید یک فعالیت مورد نظر تکرار شود، را مقدار دهی کند در این مرحله سرعت چرخ­ها همان مقدار قبلی می­باشد تا گام زمانی تمام شود و یکی از مقدار متغییر  واحد زمانی را کم می­کنیم.

 

5-8-19- توقف نیروی گریز از مرکز ربات

در بعضی مواقع هنگامی که ربات کاری را به صورت پشت سر هم عمل می­کند سرعت آن بیشتر می­شود و برای عمل بعدی منحرف می­شود، به عبارتی نیروی گریز از مرکز آن زیاد می­شود. مانند هنگامی که ربات می­خواهد 45 یا 180 درجه بچرخد سرعت چرخش ربات زیاد می­شود و ربات اگر بخواهد بعد از چرخش به صورت مستقیم حرکت کند از مسیر خود منحرف می­شود و به دیواره­ها برخورد می­کند. برای رفع این مشکل باید هنگامی که ربات چرخش خود را انجام داد متوقف شود تا نیروی چرخشی آن متوقف شود و سپس رو به جلو حرکت کند.

 

      if (stop > 0){

        stop--;

        left_speed = 0;

        right_speed = 0;

      }

 

در کد بالا هنگامی که در برنامه مقدار متغییر Stop را بیشتر از صفر قرار دهیم سرعت چرخهای چپ و راست به اندازه یک واحد زمانی متوقف می­شود و یک واحد از متغییر توقف کم می­کند.

 

5-8-20- بدون حس عمل کردن

در بعضی مواقع نیاز است که که ربات بدون اینکه از حسگرهای محیط اطلاعاتی را دریافت کند عمل خواصی را انجام دهد. مانند زمانی که ربات چرخش را انجام داده و باید به صورت کاملا مستقیم حرکت کند.

      if (stolid > 0){

        stolid--;

        left_speed = SPEED;

        right_speed = SPEED;

      }

 

در قطعه کد بالا اگر کاربر مقدار متغییر Stolid را بیشتر از صفر قرار دهد ربات به اندازه یک واحد زمانی به صورت مستقیم حرکت می­کند و سپس مقدار متغییر بدون حس را یکی کم می­کنیم.

 

5-8-21- معکوس کردن عمل

در برخی موارد نیاز می­باشد که وقتی یک حرکت را انجام می­دهیم بعد از گذشت چند واحد زمانی آن حرکت را عکس کنیم، مانند زمانی که ربات به دیوار نزدیک می­شود و می­خواهیم ربات از دیوار فاصله بگیرد، سرعت چرخ مخالف را کم می­کنیم و هنگامی که ربات از دیوار دور شد، ربات به صورت مستقیم حرکت کند تا به دیواره طرف مقابل برخورد نکند.

 

      if (revers > 0){

        if (revers == 1){

          left_speed = SPEED / 1.005;

          right_speed = SPEED;

        }else if (revers == 2){

          left_speed = SPEED;

          right_speed = SPEED / 1.005;

        }

 

در قطعه کد بالا اگر در برنامه مقدار متغییر Revers را بزرگتر از صفر قرار دهد تعیین می­کند که نیاز به معگوس کردن یک عمل دارد. اگر مقدار این متغییر برابر یک باشد بدین معنی می­باشد که ربات قبلا حرکتی را به راست انجام داده است و حال می­خواهد حرکتی را به چپ انجام دهد که ربات در مسیر مستقیم خود قرار گیرد، بدین منظور سرعت چرخ سمت چپ را 1/0 کاهش می­دهد، برای این کار سرعت چرخ را تقسیم بر 1/1 می­کنیم. اگر مقدار این متغییر برابر 2 باشد بدین معنی می­باشد که ربات قبلا حرکتی را به سمت چپ انجام داده است و حال می خواهد حرکتی را به راست انجام دهد که ربات در مسیر مستقیم خود قرار گیرد، بدین منظور سرعت چرخ سمت راست را 1/0 کاهش می­دهد، برای این کار سرعت چرخ را تقسیم بر 1/1 می­کنیم.

 

5-8-22- الویت انجام کارها

برای انجام کار بعدی ربات باید مشخص باشد که کدام کار نسبت به دیگری برتری دارد و ابتدا باید کدام کار را انجام دهد. در این اولویت اول با کاری می­باشد که می­خواهیم تکرار شود مانند تعداد بار چرخش، الویت دوم مربوط به توقف نیروی گریز از مرکز می­باشد تا ربات ما از مسیر خود منحرف نشود، الویت سوم با بدون حس حرکت کردن ربات می­باشد که فقط روبه جلو حرکت کند و به سنسورها توجهی نداشته باشد، الویت چهارم با معکوس کردن عمل می­باشد که ربات به طرف دیگر دیوار نرود و در مسیر مستقیم قرار گیرد و الویت آخر با برسی سنسورها و انتخاب عمل بعدی می­باشد.

    if ((step > 0) || (stop > 0) || (stolid > 0) || (revers > 0)){

      if (step > 0){

        step--;

      }else if (stop > 0){

        stop--;

        left_speed = 0;

        right_speed = 0;

      }else if (stolid > 0){

        stolid--;

        left_speed = SPEED;

        right_speed = SPEED;

      }else if (revers > 0){

        if (revers == 1){

          left_speed = SPEED / 1.05;

          right_speed = SPEED;

        }else if (revers == 2){

          left_speed = SPEED;

          right_speed = SPEED / 1.05;

        }

      }

    }else if ((step <= 0) && (stop <= 0) && (stolid <= 0) && (revers <= 0)){   //sensors check

    }

در قطعه کد بالا ابتدا برسی می­کند اگر مقادیر یکی از متغییر های Step ، Stop ، Stolid و یا Revers بزرگتر از یک باشد اولویت با این مقادیر می­باشد، در غیر این صورت اولویت با چک کردن سنسورها می­باشد. در بین متغییرهای اول نیز اولویت دارد، یعنی دو یا بیشتر از دوتای آنها هم زمان بزرگتر از یک باشد ابتدا آن که اولویتش بیشتر است اجرا می شود. اولویت اول با Step می­باشد اگر بزرگتر از صفر نبود به ترتیب متغیییرهای Stop ،  Stolid و Revers را چک می­کند.

 

 

5-8-23- عملیات در مکان­های مختلف یک خانه

هنگامی که ربات در مکان­های مختلف یک خانه قرار دارد عملیات مختلفی را انجام می دهد، مثلا در وسط خانه عملیات تصمیم گیری را انجام می­دهد که ربات به کدام طرف برود و وقتی که به سمت راست یا چپ می­رود از دیوار فاصله می­گیرد و همچنین اگر جلوتر یا عقب تر از وسط نیز باشد اگر به دیوار نزدیک شد از دیوار فاصله بگیرد.

  if ((mid_h_x >= 60 && mid_h_x <= 140) && (mid_h_z >= 60 && mid_h_z <= 140)){

           //robot  in mid home

}else if ((mid_h_x >= 60 && mid_h_x <= 140) && (mid_h_z = 170)){

          //robot in O or E

}else if ((mid_h_x < 60 || mid_h_x >= 170) && (mid_h_z >=60 && mid_h_z <= 140)){

          //robot in N or S

}

 

در قطعه کد بالا ابتدا مشخص می­کنیم زمانی که ربات در وسط خانه قرار دارد چه عملیاتی انجام دهیم که در این پروژه تصمیم گیری انجام می­شود که ربات به کدام سمت حرکت کند. همانطور که قبلا نیز گفتیم مقدار متوسط خانه­ها در دو محور X و Z از صفر شروع می­شود و به 200 خطم می­شوند و وسط این دو برابر 100 می­باشد و چون ربات ما بعد از هر گام زمانی اطلاعات سنسورها را دریافت می­کند نمی­توان وسط را دقیقا مشخص کرد بنابر این باید وسط را برای دو محور از یک بازه استفاده کرد مثلا در این پروژه بازه ما برای دو محور از 60 تا 140 می­باشد و زمانی که هردو محور در داخل این بازه باشند تصمیم گیری انجام می­شود. قسمت دوم زمانی انجام می­شود که ربات در داخل بازه محور اول و بیرون از بازه محور سوم باشد. در این حالت ربات ما یا به سمت راست حرکت کرده یا به سمت چپ بنابر این باید ربات را به وسط هدایت کنیم تا به دیواره ها برخورد نکند. در قسمت سوم ربات در بیرون از بازه محور اول و داخل بازه سوم      می­باشد، بنا بر این ربات در حالتی که به سمت شرق یا غرب حرکت می­کند از راه خود منحرف شده و به سمت دیواره­ها می­رود بنابر این باید ربات را به وسط هدایت کنیم.

5-8-24- بررسی سنسورهای فاصله­یاب

برای تشخص اینکه کدام سمت ما دیوار قرار دارد و کدام سمت ما باز می­باشد باید سنسورهای فاصله یاب را بررسی کنیم. از آنجا که ما 4 سنسور فاصله یاب داریم باید تمام شرایطی که ممکن است این سنسورها داشته باشند را بررسی کنیم و تعیین کنیم که کدام سمت ما باز می­باشد و می توانیم از آنجا برویم.

if (ir0_value >= 400){

        if (ir1_value >= 400){

                if (ir2_value >= 400){

                         if (ir3_value >= 400){

                         }else if (ir3_value < 400){

                         }

                }else if (ir3_value >= 400){

                }else if (ir3_value < 400){

                }

           }else if (ir2_value >= 400){

                          if (ir3_value >= 400){

                          }else if (ir3_value < 400){

                          }

        }else if (ir2_value < 400){

                         if (ir3_value >= 400){

                         }else if (ir3_value < 400){

                         }

}else if (ir1_value >= 200){

                  if (ir2_value >= 400){

                          if (ir3_value >= 400){

                         }else if (ir3_value < 400){

                         }

                  }else if (ir3_value >= 400){

                  }else if (ir3_value < 400){

                  }

 }else if (ir1_value < 200){

                    if (ir2_value >=400){

                             if (ir3_value >= 400){

                             }else if (ir3_value < 400){

                             }

                     }else if (ir3_value >= 400){

                     }else if (ir3_value < 400){

                     }

}

 

در قطعه کد بالا تمام شریطی که 4 سنسور فاصله یاب می­توانند داشته باشند را دارد. سنسور شماره صفر همان سنسور جلو سمت چپ، سنسور شماره یک همان سنسور جلو سمت راست، سنسور شماره 2 سنسور سمت چپ ربات و سنسور شماره 3 سنسور سمت راست ربات می­باشد.

 

5-8-25- بررسی مقادیر سنسور قطب­نما

در هر زمانی که می­خواهیم تسمیم بگیریم که ربات ما باید به کدام سمت برود باید ابتدا تعیین کنیم که ربات ما رو به کدام جهت می­باشد تا بتوان خانه­های آرایه معادل را برسی کنیم که کدام الویت بیشتری دارد و برای رفتن به این خانه باید به سمت جلو ، چپ، راست و یا 180درجه بچرخد.

if (compass_x >= 0.98){

//N shomal

}else if (compass_z <= -0.98){

//S jnob

}else if (compass_x <= -0.98){

//E shargh

}else if (compass_z >= 0.98){

//O gharb

}

 

قطعه کد بالا تعیین می­کند که ربات رو به کدام جهت می­باشد و بسته به این که رو به کدام جهت است چه عملیاتی را باید انجام دهد. جهت ربات همانطور که قبلا نیز گفتیم به کمک مقادیر محور اول و سوم    قطب­نما بدست می­آید و مقادیر هر کدام از آنها از 1- تا 1 می باشد. از آنجایی که ما نمی­توانیم بطور دقیق تعیین که ربات ما رو به کدام جهت می­باشد. بنابر این برای تعیین جهت ربات از یک بازه استفاده می­کنیم. در این پروژه ما از محدوده 0/98- تا 1- و محدوده 0/98 تا 1 استفاده کرده­ایم. در قسمت اول عملیاتی را انجام می­دهد که باید ربات رو به سمت شمال مجازی باشد که در پروژه ما در جهت مستقیم می­باشد، در قسمت دوم عملیاتی را انجام می­دهد که باید ربات رو به سمت جنوب باشد، قسمت سوم در شرایطی     می­باشد که ربات رو به سمت شرق باشد و در قسمت چهارم نیز در شرایطی می­باشد که ربات رو به سمت غرب باشد و عملیات مورد نظر را در این قسمت­ها می­نویسیم.

 

5-8-26- بررسی مقادیر خانه­های آرایه

برای تعیین اینکه ربات از کدام مسیر برود که قبلا نرفته و یا حتی کمتر رفته را باید مقادیر خانه­های آرایه دو بعدی را بررسی کند. خانه­های که در چهار طرف خانه فعلی ربات می­باشند را بررسی می­کنیم و آن که کمتر است اگر مانعی جلوی آن قرار نداشنه باشد به آن خانه می­رود.

    gps_xp = gps_x + 1;

    gps_xm = gps_x - 1;

    gps_zp = gps_z + 1;

    gps_zm = gps_z - 1;

 

از کد بالا برای بررسی مقادیر خانه­های اطراف خانه­ ربات را به کمک محور اول و سوم سنسور GPS استفاده کرده­ایم. در قسمت اول مقدار محور X آن را یک واحد اضاافه کرده است که معادل با خانه سمت راست ربات می­باشد، در قسمت دوم مقدار محور اول را یک واحد کم کرده است که معادل خانه سمت چپ ربات می­باشد، در قسمت سوم مقدار محور Z را یک واحد اصافه کرده است که معدل خانه جلویی ربات می­باشد و در قسمت آخر یا همان قسمت چهارم مقدار محور سوم را یک  واحد کم کرده است، که معادل خانه عقبی ربات می­باشد.

ممکن است با خود بگویید که ما می­توانستیم این کار را هنگام مقایسه مقادیر به کمک (++) یا همان پلاس پلاس انجام دهیم، مانند Maze[gps_x++][gps_y] اما این روش در برنامه Webots ایجاد مشکل می­کند و اخطار می­دهد، بنابر این مجبوریم از روش بالا برای برسی خانه­های اطراف ربات استفاده کرد.

 

5-8-27- مقایسه خانه­های آرایه

برای تشخیص اینکه اولویت کدام خانه بیشتر است باید مقادیر این خانه­ها را با هم مقایسه کنیم و اولویت هر کدام بیشتر است یا به عبارتی مقدار هر کدام از خانه ها کمتر است به آن خانه برویم و اگر اولویت خانه­ها با هم برابر باشد از اولویت پیش فرض استفاده می­کنیم که در آن بیشترین اولویت با خانه جلوی می­باشد به دلیل اینکه سرعت حرکت ربات را نمی­گیرد و ربات سریعتر حرکت کند و بتواند خانه­های بیشتری را بررسی کند، اولویت بعدی با خانه سمت راست، سپس خانه سمت چپ و الویت آخر نیز با خانه عقبی ربات می­باشد به این دلیل که ربات زمان زیادی را برای بازگشت صرف می­کند و بدترین حالت می­باشد که ربات به خانه قبلی خود برود تا به مقصد برسد.

if ((maze[gps_zm][gps_x] <= maze[gps_zp][gps_x]) && (maze[gps_zm][gps_x] <= maze[gps_z][gps_xp]) && (maze[gps_zm][gps_x] <= maze[gps_z][gps_xm])){

//olaviat ba jlo

}else if ((maze[gps_zp][gps_x] <= maze[gps_zm][gps_x]) && (maze[gps_zp][gps_x] <= maze[gps_z][gps_xp]) && (maze[gps_zp][gps_x] <= maze[gps_z][gps_xm])){

//olaviat ba rast

}else if ((maze[gps_z][gps_xp] <= maze[gps_zm][gps_x]) && (maze[gps_z][gps_xp] <= maze[gps_zp][gps_x]) && (maze[gps_z][gps_xp] <= maze[gps_z][gps_xm])){

//olaviat ba chap

}else if ((maze[gps_z][gps_xm] <= maze[gps_zm][gps_x]) && (maze[gps_z][gps_xm] <= maze[gps_zp][gps_x]) && (maze[gps_z][gps_xm] <= maze[gps_z][gps_xp])){

//olaviat ba aghab

}

 

در قطعه کد بالا مقادیر خانه­های آرایه دو بعدی معادل با خانه­های اطراف ربات را باهم مقایسه می­کنند و آنکه اولویتش از همه بیشتر یا مقدارش از همه کمتر باشد اجرا می­شود. قسمت اول زمانی اجرا می­شود که مقدار خانه روبروی ربات از همه مقادیر دیگر کمتر یا حتی مساوی آنها باشد اجرا می­شود یعنی در شرایطی که همه اولویت­ها نیز یکسان باشد اولویت جلو بیشتر است، قسمت دوم زمانی اجرا می­شود که قسمت اول اجرا نشده باشد و مقدار خانه سمت راست ربات از همه کمتر یا مساوی باشد اجرا می­شود، قسمت سوم زمانی اجرا می­شود که قسمت­های قبلی اجرا نشده باشند و مقدار خانه سمت چپ ربات از همه کمتر یا مساوی باشد اجرا می­شود و قسمت آخر یا همان قسمت چهارم زمانی اجرا می­شود که هیچ کدام از شرایط قبل برقرار نشده باشند و مقدار خانه پشت سری ربات از همه کمتر یا مساوی باشد اجرا می­شود.

به ازای هر بار که مقادیر سنسورهای فاصله یاب را بررسی می­کنیم باید تعیین که ربات ما رو به کدام جهت می­باشد و همچنین به ازای تمامی این حالات باید بررسی کنیم که الویت کدام یک از خانه­های باز بیشتر از بقیه می­باشد و آن را انتخاب کنیم و همچنین ربات باید چه عملی را انجام دهد تا بتوان به آن خانه برود. بنابر این تعداد حالت­ها بسیار زیاد به وجود می­آید که باید همه آنها را برسی کرد.

 

5-8-28- حرکت ربات رو به جلو

برای این که بتوان ربات را به سمت جلو هدایت کرد باید سرعت چرخ­های سمت راست و چپ را را برابر هم و مساوی حداکثر سرعت قرار دهیم.

 

  left_speed = SPEED;

  right_speed = SPEED;

 

در دستورا ت بالا سرعت چرخ­های چپ و راست را برابر حداکثر سرعت چرخ­ها که به صورت یک ثابت که در ابتدای برنامه آن را تعریف کرده­ایم و برابر سرعت 60 می­باشد، قرار میدهیم.

 

5-8-29- چرخش 45 درجه ربات به راست

برای چرخیدن ربات باید سرعت چرخ­ها سمت چپ و راست را نصف کنیم و و سرعت چرخ سمت راست را منفی کنیم تا ربات به سمت راست بچرخد.

  left_speed = SPEED / 2;

  right_speed = -SPEED / 2;

  step = 10;

  stop = 3;

 

در قطعه کد بالا برای چرخش 45 درجه ربات به سمت راست سرعت چرخ سمت چپ را نصف یعنی تقسیم بر 2 و همچنین سرعت چرخ سمت راست را نیز نصف می­کنیم، فقط مقدار سرعت آن را منفی قرار می­دهیم که به سمت عقب حرکت کند. با این کا ربات در جای خود به سمت راست می­چرخد. برای این که ربات 45 درجه کامل را بچرخد باید تعداد واحد زمانی که ربات باید بچرخد که به 45 درجه برسد را برابر 10 قرار می­دهیم، یا به عبارت دیگر مقدار متغییر Step را برابر عدد 10 قرار ­دهیم. هنگامی که ربات 45 درجه کامل را چرخید یک نیروی گریز از مرکزی در آن ایجاد شده است که هنگامی که می­خواهد عملیات بعدی را انجام دهد از مکان خود منحرف می­شود برای جلوگیری از این نیرو باید هنگامی که ربات 45 کامل را چرخید در جای خود متوقف شود و سپس کار بعدی خود را انجام دهد برای این کار مقدار متغییر Stop را برابر 3 قرار می­دهیم که کاملا متوقف شود.

5-8-30- چرخش 45 درجه به چپ

برای چرخیدن ربات باید سرعت چرخ­ها سمت چپ و راست را نصف کنیم و و سرعت چرخ سمت چپ را منفی کنیم تا ربات به سمت چپ بچرخد.

  left_speed = -SPEED / 2;

  right_speed = SPEED / 2;

  step = 10;

  stop = 3;

 

در قطعه کد بالا برای چرخش 45 درجه ربات به سمت چپ سرعت چرخ سمت راست را نصف می­کنیم یعنی تقسیم بر 2 و همچنین سرعت چرخ سمت چپ را نیز نصف می­کنیم، فقط مقدار سرعت آن را منفی قرار می دهیم که به سمت عقب حرکت کند. با این کار ربات در جای خود به سمت چپ می­چرخد. برای این که ربات 45 درجه کامل را بچرخد باید تعداد واحد زمانی که ربات باید بچرخد که به 45 درجه برسد را برابر 10 قرار می­دهیم یا به عبارت دیگر مقدار متغییر Step را برابر عدد 10 قرار ­دهیم. هنگامی که ربات 45 درجه کامل را چرخید یک نیروی گریز از مرکزی در آن ایجاد شده است، هنگامی که می­خواهد عملیات بعدی را انجام دهد از مکان خود منحرف می­شود برای جلوگیری از این نیرو با هنگامی که ربات 45 درجه کامل را چرخید در جای خود متوقف شود و سپس کار بعدی خود را انجام دهد برای این کار مقدار متغییر Stop را برابر 3 قرار می­دهیم که کاملا متوقف شود.

 

 

 

 

5-8-31- چرخش 180 درجه به عقب

برای چرخیدن ربات هم می­توان از سمت راست چرخید هم از سمت چپ ولی ما در این پروژه برای چرخش از سمت راست می­چرخد. برای چرخیدن ربات باید سرعت چرخ ها سمت چپ و راست را نصف کنیم و سرعت چرخ سمت راست را منفی کنیم تا ربات به سمت راست بچرخد.

  left_speed = SPEED / 2;

  right_speed = -SPEED / 2;

  step = 17;

  stop = 3;

 

در قطعه کد بالا برای چرخش 180 درجه ربات به عقب از سمت راست سرعت چرخ سمت چپ را نصف می­کنیم یعنی تقسیم بر 2 و همچنین سرعت چرخ سمت راست را نیز نصف می­کنیم­ فقط مقدار سرعت آن را منفی قرار می دهیم که به سمت عقب حرکت کند. با این کار ربات در جای خود به سمت راست       می­چرخد. برای این که ربات 180 درجه کامل را بچرخد باید تعداد واحد زمانی که ربات باید بچرخد که به 180 درجه برسد را برابر 17 قرار می­دهیم یا به عبارت دیگر مقدار متغییر Step را برابر عدد 17 قرار     می­دهیم. هنگامی که ربات 180 درجه کامل را چرخید یک نیروی گریز از مرکزی در آن ایجاد شده است که هنگامی که می­خواهد عملیات بعدی را انجام دهد از مکان خود منحرف می­شود، برای جلوگیری از این نیرو باید هنگامی که ربات 180 کامل را چرخید در جای خود متوقف شود و سپس کار بعدی خود را انجام دهد برای این کار مقدار متغییر Stop را برابر 3 قرار می­دهیم که کاملا متوقف شود.

 

 

 

5-8-32- فاصله گرفتن از دیوار

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

if ((ir3_value >= 200) || (ir2_value >= 200)){

    //fasle az divar

}

 

در قطعه کد بالا بررسی می­شود که آیا در سمت راست یا چپ ربات در فاصله 13 سانتی متری دیواری وجود داشته باشد که فاصله از دیوار فعال شود.

حال اگر دیوار وجود داشته باشد باید تعیین کنیم که در کدام طرف ربات دیوار وجود دارد. اگر در دو طرف ربات دیوار وجود داشته باشد هنگامی که به یکی از دیوارها نزدیک شود از آن فاصله بگیرد. اگر فقط در یک طرف دیوار وجود داشته باشد، هنگامی که زیاد به دیوار نزدیک می­شود از آن دور شود و اگر زیادی از دیوار فاصله گرفت به دیوار نزدیک­تر ­شود. این کاری که ما انجام می­دهیم مانند زمانی است که یک کور می­خواهد از بین دیوارها عبور کند دست خود را به دیوار می­گیرد که با آن برخورد نکند و همچنین زیادی از آن دور نشود.

if((ir3_value >= 200) && (ir2_value < 200)){

       //dar samt rast divar vjod dard

}else if ((ir2_value >= 200) && (ir3_value < 200)){

      //Dar samt chap divar vjod dard

}else if ((ir3_value >= 200) && (ir2_value >= 200)){

     //dar do taraf divar vjod dard

}

 

در قطعه کد بالا تعیین می­کنیم که در کدام طرف ربات دیوار وجود دارد و اگر در سمت راست ربات دیوار وجود داشته باشد قسمت اول اجرا می­شود و هنگام نزدیک شدن به دیوار از آن فاصله گیرد و هنگام دور شدن از دیوار به آن نزدیک شود. اگر در سمت چپ ربات دیوار وجود داشت قسمت دوم اجرا می­شود و مانند قسمت قبل از دیوار برای عبور خود استفاده می­کند. اگر در دو طرف ربات دیوار وجود داشته باشد از دیوار ها فاصله می­گیرد که به دیوارها برخورد نکند.

برای فاصله گرفتن از دیوار سمت راست یا نزدیک شدن به دیوار سمت چپ باید سرعت چرخ سمت چپ را کم کنیم تا ربات به سمت چپ حرکت کند.

  left_speed = SPEED / 1.005;

  right_speed = SPEED ;

  revers = 2;

 

در قطعه کد بالا ربات مقداری کمی به سمت چپ می­رود. برای رفتن ربات به سمت چپ سرعت چرخ چپ را کم می­کنیم مثلا سرعت آن را تقسیم بر 0/005 می­کنیم. هنگامی که ربات مقداری به سمت چپ رفت باید از رفتن ربات به سمت دیوار سمت راست جلوگیری کنیم بنابر این مقداری که سرعت چرخ­ها را تغییر داده­ایم عکس می­کنیم که ربات به صورت مستقیم حرکت کند. این کار با کمک متغییر Revers که در ابتدای برنامه ایجاد کرده­ایم انجام می شود. هنگامی که مقدار این متغییر برابر 2 باشد حرکت ربات به سمت چپ را معکوس می کند که ربات به صورت مستقیم حرکت کند.

برای فاصله گرفتن از دیوار سمت چپ یا نزدیک شدن به دیوار سمت راست باید سرعت چرخ سمت راست را کم کنیم تا ربات به سمت راست حرکت کند.

  left_speed = SPEED;

  right_speed = SPEED / 1.005;

  revers = 1;

 

در قطعه کد بالا ربات مقداری کمی به سمت راست می­رود. برای رفتن ربات به سمت راست سرعت چرخ راست را کم می­کنیم مثلا سرعت آن را تقسیم بر 0/005 می­کنیم. هنگامی که ربات مقداری به سمت راست رفت، باید از رفتن ربات به سمت دیوار سمت چپ جلوگیری کنیم بنابر این مقداری که سرعت چرخ­ها را تغییر داده­ایم عکس می­کنیم که ربات به صورت مستقیم حرکت کند. این کار به کمک متغییر Revers انجام می­شود و اگر برابر یک باشد حرکت ربات به سمت راست را معکوس می­کند.

 

5-8-33- توقف در وسط خانه­ها

یکی از روش­هایی که می­توان از آن استفاده کرد که ربات عملیات خود را به صورت دقیق تر انجام دهد توقف در وسط خانه­ها می­باشد. این روش سرعت عملیاتی ربات را کاهش می­دهد و در این پروژه از آن صرف نظر کرده­ایم ولی گفتین آن خالی از لطف نیست، چون باتوجه به کاهش سرعت ما ولی دقت ربات را زیاد می­کند. برای توقف در وسط بستگی دارد که ربات ما رو به کدام جهت حرکت می­کند زیرا وقتی می­خواهیم ربات را متوقف کنیم در همانجا متوقف نمی­شود بلکه کمی جلوتر می­رود تا بتواند سرعت خود را به صفر برساند.

     if (compass_x >= 0.98){

        if ((mid_h_x >= 60 && mid_h_x <= 140) && (mid_h_z > 120 && mid_h_z <= 140)){

          stop =10;

          mid_stop = 5;

        }

      }else if (compass_z <= -0.98){

        if ((mid_h_x > 40 && mid_h_x <= 60) && (mid_h_z >= 60 && mid_h_z <= 140)){

          stop =10;

          mid_stop = 5;

        }

      }else if (compass_x <= -0.98){

        if ((mid_h_x >= 60 && mid_h_x <= 140) && (mid_h_z > 40 && mid_h_z <= 60)){

          stop = 10;

          mid_stop = 5;

        }

      }else if (compass_z >= 0.98){

        if ((mid_h_x > 120 && mid_h_x <= 140) && (mid_h_z >= 60 && mid_h_z <= 140)){

          stop = 10;

          mid_stop = 5;

        }

      }

      if (mid_stop >0){

      mid_stop--;

      }

 

در قطعه کد بالا ابتدا برسی می­کند ربات در کدام جهت حرکت می­کند و بسته به اینکه ربات در کدام جهت می­باشد، قبل از اینکه به وسط خانه برسد عملیات توقف را انجام می­دهد تا زمانی که وسط خانه رسیدیم ربات کاملا متوقف شود. همچنین تعیین می­کنیم زمانی که وسط خانه رسیدیم فقط یکبار توقف انجام دهیم.

 

5-8-34- انتقال سرعت به چرخ­ها

سرعت­های که تاکنون ما برای چرخ­های چپ و راست در شریط مختلف انجام داده­ایم که از سرعت­های منفی و حداکثر سرعت 60 تشکیل شده است را باید به انتقال دهنده نیروی چرخ ها انتقال دهیم.

  wb_differential_wheels_set_speed(left_speed, right_speed);

 

در دستور بالا مقادیر متغییرهای عددی Left_Speed و Right_Speed را به عنوان سرعت چرخ­های چپ و راست تعیین می­کنیم.

 

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

 

 

 

4-1- ایجاد پروژه جدید

برای مدل کردن و شبیه سازی محیط و ربات حل Maze در محیط Webots ابتدا یک پروژه جدید ایجاد می­کنیم، برای ایجاد پروژه جدید از منوی wizard گزینه New Project Directory انتخاب می­کنیم. نخست به ما اعلام می­کند که یک پوشه جدید در زیر مجموعه پوشه پروژه Webots می­سازد. سپس در این پوشه ، Webots چهار پوشه مورد نیاز پروژه جدید را می­سازد. این پوشه­ها برای ذخیره سازی فایل و کنترل ربات و سایر موارد لازم می­باشد و شامل Words، Controllers، Portos و Plugings  می­باشد. شکل 4-1

 

شکل 4-1- پوشه­های ایجادشده برای پروژه جدید

4-2- مدل کردن محیط Maze

محیط Maze از زمین، دیوار و چراغ­ تشکیل شده است، که از دیوار برای جلوگیری از فرار ربات به بیرون از محیط استفاده می­کنیم و همچنین برای ایجاد پازل­های Maze که ربات از بین آنها حرکت کند و مقصد خود را پیدا کند.

 

4-2-1- مدل کردن زمین Maze

برای ایجاد زمین از گره جسم صلب[1] استفاده می­کنیم که در ابتدای یک پروژه جدید به صورت پیش فرض ایجاد شده است. در مدل کردن محیط ماز بهتر است زمین به صورت چهارخونه یا شترنجی باشد، که موقعیت فعلی روبات از لحاظ مختصات مشخص­تر باشد، برای این کار یک گره Transform ایجاد می­کنیم و در فیلد Children آن گره از نوع Shape ایجاد می­کنیم، سپس برای آن ظاهر ایجاد می­کنیم. برای ایجاد ظاهر در فیلد Appearance آن یک ظاهر یا Appearance ایجاد می­کنیم، همچنین هندسه­ای برای آن درست می­کنیم. ما از یک هندسه توری شکل استفاده می­کنیم و برای این کار در زیر فیلد Geometry آن هندسه ElevationGrid را به آن اضافه می­کنیم، در فیلد رنگ هندسه آن دو رنگ متفاوت را اضافه می­کنیم که خانه­های محیط را با استفاده از این دو رنگ به صورت شترنجی نشان می­­دهد، تعداد خانه­های سطر و ستون را در فیلد­های XDimension و ZDimension تعیین می­کنیم. در این پروژه از 16 سطر و 16 ستون استفاده می کنیم و اندازه خانه­های آن را با استفاده از فیلدهای XSpacing و ZSpacing تعیین می­کنیم. در این پروژه از خانه­های با اندازه 2/0 متر برای سطر و 2/0 متر برای ستون استفاده می­کنیم بنابر این کل زمین آن 2/3 متر طول دارد و 2/3 متر عرض دارد .

 

4-2-2- ایجاد چراغ برای محیط Maze

برای روشن کردن محیط ماز از گره چراغ[2] استفاده می­کنیم  و برای این پروژه از 5 چراغ استفاده کرده که یکی در وسط و 4 تا دیگه در کناره­های زمین قرار دارد تا محیط را بهتر روشن کند. در زیر مراحل      شبیه­سازی این 5 چراغ را شرح می دهیم.

1-    برای ایجاد چراغ از گره PointLight استفاده می­کنیم. در فیلد AmbientIntensity  شدت را مقدار 8/0 قرار می­دهیم، سپس فیلد Intensity شدت نور را مقدار 5/0 قرار می­دهیم، در آخر مقدار    ]6/0 ، 5/0 ، 6/1[ را در فیلد Location که همان مکان چراغ می­باشد را وارد می­کنید.

2-    گره چراغ را انتخاب می­کنیم و آن را کپی و الصاق می­کنیم، گره چراغ جدید را باز می­کنیم و مکان آن را به ]5/0 ، 5/0 ،5/0[ تغییر می­دهیم.

3-    عمل کپی و الصاق را مجددا برای چراغ سوم با  مختصات مکانی ]5/2  ،5/0 ، [2/5  و برای چهارم با مختصات مکانی ]5/0 ، 5/0  ، [2/5  و برای چراغ پنجم با مختصات مکانی ]5/0 ، 5/0  ، 5/2[ تکرار می­کنیم.

 

 

 

 

 

 

 

4-2-3- ایجاد دیوار برای محیط Maze

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

4-2-3-1- روش اول ایجاد دیوارها

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

1-    یک گره solid را از لیست گره­های جدید انتخاب می­کنیم.

2-    گره جسم صلب یا solid جدید را باز می­کنیم و در قسمت فیلد نام wall را می­نویسیم.

3-    فیلد children آن را انتخاب و دکمه insert after را می­زنیم و یک گره Shape یا همان شکل را انتخاب می­کنیم تا زیرمجموعه گره solid شود.

4-    گره شکل را باز می­کنیم و فیلد appearance را انتخاب می­کنیم که در ابتدا Null یا همان خالی است، سپس دکمه New node را از بالا انتخاب می­کنیم تا یک گره ظاهر Appearance بوجود آید. پس از ایجاد آن را باز می­کنیم و از همین روش برای تولید گره جنس Material در فیلد جنس نیز استفاده می­نمایم. اکنون یک رنگ دلخواه را برای دیوار انتخاب می­کنیم. در گره Geometry نیز ابتدا یک Box را انتخاب می­کنیم و ابعاد جعبه را وارد می­کنیم که همان ابعاد دیوارمان می­باشند. در گره Translation نیز اعداد مربوط به زاویه چرخش دیوار را وارد می­کنیم که دیوار به لبه محیط انتقال پیدا کند. برای اینکه ربات ما در این دیوار فرو نرود دیوار به مرز احتیاج دارد. بدین منظور گره shape آن را کپی می­کنیم ودر گره boundingObject قرار می­دهیم تا مرز دیوار تعیین شود.

5-    جسم wall را انتخاب می­کنیم و آن را کپی و الصاق می­کنیم، و از گره rotation یا تغییر زاویه استفاده می­کنیم تا در زاویه مورد نظر قرار گیرد و از گره Rotation نیز برای جابجای دیوار استفاده می­کنیم تا در مکان مورد نظر خود قرار  گیرد.

6-     برای دیوارهای سوم و چهارم نیز همین کار را تکرار می­کنیم و گره translation و rotation آنها را تغییر می­دهیم تا دیوارها اطراف محیط را کامل احاطه کنند.

7-    از این جسم صلب نیز برای ایجاد دیوارهای داخلی Maze استفاده می­کنیم. از فیلد Size گره Geometry یا شکل آن برای تغییر اندازه دیوار، از فیلد Rotation برای تغییر زاویه، از فیلد Translation نیز برای جابجای دیوار استفاده می­کنیم.

 

4-2-3-2- روش دوم ایجاد دیوارها

با استفاده از گره LegoBrick که در پوشه Protos پروژه قرار دارد و می­توان هنگام اضافه کردن گره جدید از زیر مجموعه Proto آن را انتخاب و به پروژه اضافه کرد. استفاده از این روش برای ایجاد دیوارها ساده­تر از روش قبلی است زیرا این گره فقط چهار فیلد دارد و همچنین نیاز به اضافه کردن مرز ندارد و با تغییر دادن اندازه آن اندازه مرز آن نیز تغییر می­کند. فیلدهای آن شامل موقعیت مرکز دیوار بر اساس سه محور X ،Y  و Z  که اندازه هرکدام بر اساس متر می­باشد و مقدارشان از صفر تا 2/3 متر می­باشد. این فیلد شامل سه محور اصلی و Alpha می­باشد، همچنین توجه باید داشته باشیم که این عمل دوران اویلر و بردار اویلر را مشخص می­کند، یعنی سه عنصر اول برداری که دوران حول آن باید بچرخد و مولفه چهارم که همان Alpha می­باشد مقدار دوران به رادیان است. باید سه مولفه بردار دوران برداری یک باشند یعنی نرمال شده باشند و مجموع مربعات این سه مولفه همواره برابر عدد یک باشد ( )  .

فیلد سوم آن Size می­باشد که می­توان به وسیله آن اندازه دیوار را تغییر داد این فیلد نیز شامل سه محور اصلی می­باشد. محور X برا ی تغییر اندازه عرض دیوار بر اساس متر استفاده می­شود و محور Y برای تغییر اندازه ارتفاع دیوار استفاده می­شود و محور Z برای تغییر اندازه طول  دیوار استفاده می­شود که تمامی این اندازه­ها بر اساس متر می­باشد.

فیلد چهارم آن Color می­باشد که می­توان رنگ آن را به وسیله سه مقدار رنگ قرمز، سبز، آبی[3] یا به کمک انتخاب رنگ مورد نظر از میان جعبه رنگی که با انتخاب این فیلد ظاهر می­شود استفاده کرد.

در این پروژه برای ایجاد دیواره­ها از گره LegoBrick استفاده می­کنیم  و از بیش از 80 دیوار برای ساخت محیط Maze استفاده کرده­ایم.

1-    برای ایجاد دیوار اول یک گره LegoBrick اضافه می­کنیم. اسم آن را Wall1 قرار می­دهیم، مقدار فیلد موقعیت آن را برابر ]6/1 ، 035/0 ، 0[ ، مقدار دوران آن را برابر ]0 ، 0 ، 1 ، 0[ ، اندازه آن را برابر ]2/3 ، 07/0 ، 016/0  [و رنگ آن را رنگی که مخالف سفید باشد قرار می­دهیم، زیرا برای تعیین مقصد از رنگ سفید استفاده کرده­ایم.

2-    برای دیوار دوم نیز گره LegoBrick اضافه می­کنیم. اسم آن را Wall2 قرار می دهیم، مقدار X فیلد موقعیت آن را از صفر به 2/3 تغییر می دهیم، مقدار Y آن را برابر صفر قرار می­دهیم و سایر مقادیر فیلدها همان مقدار دیوار قبلی را قرار می­دهیم.

3-    برای دیوار سوم نیز از همان گره استفاده می­کنیم. اسم آن را Wall3 قرار می­دهیم، مقدار X فیلد موقعیت آن را برابر 6/1 قرار می­دهیم، مقدار Y آن را برابر صفر تعیین می­کنیم و سایر مقادیر فیلدهای آن را برابر دیوار اول قرار می­دهیم.

4-    برای دیوار چهارم نیز از همان گره اضافه می­کنیم. اسم آن را wall4 قرار می دهیم، مقدار X فیلد موقعیت آن را برابر 6/1 و مقدار Y آن را برابر 2/3 تعیین می­کنیم.

5-    برای دیوارهای داخلی نیز به همین ترتیب کار می­کنیم و مقدار ا­ندازه آن را کوچکتر می­کنیم تا به اندازه مورد نظر برسیم و فیلد موقعیت آن را تغییر می­دهیم تا در مکان مورد نظر قرار گیرد.

 

 

4-2-3- ایجاد کفه سفید برای تعیین مقصد

ایجاد کفه سفید در وسط محیط برای تعیین کردن مقصد ربات از یک گره Solid استفاده می­کنیم و مقدار فیلد موقعیت آن را برابر [1/7 , 0 , 1/7] قرار داده و مقدار فیلد دوران آن را همان مقدار پیش فرض قرار می­دهیم و در فیلد فرزند آن یک گره Shape اضافه می­کنیم. فیلد Appearance یا همان ظاهر آن را اضافه می­کنیم و داخل Appearance داخل گره  Texture آن یک گره ImageTexture اضافه می­کنیم و در فیلد URL آن آدرس عکس مورد نظر که می­تواند یکی از فایل های نوع PNG و JPG باشد را تعیین می­کنیم، که داخل پوشه Textures قرار دارد و بطور مثال آدرس آن می­تواند "textures/ground.png" باشد و در فیلد Size زیر مجموعه گره Geometry می­توان اندازه عکس مورد نظر را در محیط تعیین نمود. 

 

4-3- مدل کردن ربات حل Maze

ربات حل Maze را براساس ربات MyBot طراحی نموده­ایم، که یک ربات متحرک[4] می­باشد. این به عنوان یک ربات دو چرخ دیفرانسیلی که در Webots یک گره مجزا به نام DiffererentioalWheels می­باشد طراحی شده است.

گره­های این ربات شامل شامل موارد زیر می­باشد:

گره تبدیل (انتقال و دوران شی به نقطه­ای جدید برابر با ماتریس تبدیل دستگاه مختصات است) یا Transform برای بدنه ربات، دو گره Solid برای چرخ­ها، 4 گره سنسور  فاصله­یاب DistanceSensor که از نوع مادون قرمز هستند، گره شکل همراه با عکسی برای صورت ربات، گره دوربین Camera، گره سنسور موقعیت یاب جهانی GPS، گره سنسور قطب نما Copmass.

 

4-3-1- مدل کردن بدنه ربات

به منظور مدل گردن بدنه ربات مراحل زیر را باید انجام دهیم.

1-    ابتدا گره جدیدی برای دو چرخ با سرعت­های مجزا از نوع DifferentialWheels را اضافه می­کنیم و نامش را mybot قرار می­دهیم.

2-    در فیلد children یک گره transform همراه با زیر گره shape شامل یک استوانه برای بدنه ربات، به این منظور مقدار زیر گره Geometry آن را برابر Cylinder را قرار می­دهیم. رنگی برای آن انتخاب می­کنیم و اندازه­های گره استوانه را 08/0 برای ارتفاع، 045/0 برای شعاع قرار می­دهیم. عنوان یا DEF هندسه آن راBody  قرار می­دهیم. با این کار بعدا دوباره می­توان از آن استفاده نمود. حال مقدار ا­نتقال آن را در زیر گره Transform به [0 , 0/0415 , 0] تغییر می­دهیم.

 

4-3-2- مدل کردن چرخ چپ ربات

یک گره Solid را بعد از گره Transform که چرخ چپ را مدل می­کند، اضافه می­کنیم. نام آن را در فیلد نامش به left wheel تغیر می­دهیم. اگر این نام را دقیقا وارد نکنیم هنگامی که به ربات فیزیک اضافه     می­کنیم، خطا بوجود می­آید و ربات حرکت نخواهد کرد. باید توجه کنیم که ربات چرخ دیفرانسیلی، یک محور با دو چرخ مجاز می­باشد (محور چرخها در راستای محور +X و عقب ربات در راستای +Y است) که آن را با گره­های که در children آن قرار می­دهیم به واقعیت تبدیل می­کنیم. در واقع حرکت آن با برنامه کنترلی است و موتور شبیه ساز webots تنها نامهای left wheel و right wheel را می­شناسد. اگر چرخها درای جرم نباشند همه اجزا ربات با هم با سرعتی خطی حرکت می­کنند که این سرعت حاصلضرب شعاع چرخ در سرعت دوران آن است و شعاع چرخ نیز در فیلد wheelRadius زیرشاخه ربات انتخاب می­شود. ولی اگر چرخ­ها دارای فیزیک یا جرم باشند آنگاه توسط اصطکاک زمین شروع به دوران می­کنند.

محور چرخش چرخ، محور X است. برای این کار باید استوانه­ای برای شکل انتخاب کنیم که محور دورانش (در راستای ارتفاع) حول محور  Z، به اندازه 90 درجه دوران کند. پس یک گره Transform به فیلد children گره صلب چرخ اضافه می­کنیم. بعد از این کار گره shape را به فیلد children گره Transform اخیر اضافه می­کنیم و برای هندسه آن cylinder را انتخاب می­کنیم و یک رنگ نیز برای آن انتخاب      می­کنیم. استوانه دارای ارتفاع 01/0 و شعاع 025/0 است و فیلد دوران گره تبدیل آن را [57/1، 1، 0، 0] مقدار دهی می­کنیم، تا به صورت کاملا عمود به سطح قرار گیرد.

فیلد انتقال در گره solid چرخ را به [0، 025/0، 045/0-] تغییر می­دهیم و فیلد دورا­نش را به            [0، 0، 0، 1] تغییر می­دهیم.

عنوان گره Transform چرخ را wheel قرار می­دهیم. توجه داشته باشیم که انتقال مرکز چرخ را از فیلد انتقال گره جسم صلب آن انجام داده­ایم و در نتیجه دوباره می­توانیم از WheelTransform استفاده کنیم، زیرا نسبت به گره بالا دست خود هیچ انتقالی ندارد و آن را هر جا استفاده کنیم در مرکز آن قرار می­گیرد.

 

4-3-3-مدل کردن چرخ راست ربات

یک گره solid را بعد از گره جسم صلب قبلی که برای چرخ چپ استفاده کردیم اضافه می­کنیم. فیلد name را right wheel وارد می­کنیم. فیلد انتقال آن را به [0، 02/0، 045/0] تغییر می­دهیم و دوران را به        [0،  0، 0، 1] تغییر می­دهیم.

در فیلد children از گره تبدیل چرخ چپ استفاده می­کنیم، که در مرحله قبل آن را ایجاد کردیم.

 

 

 

4-3-4-قرار دادن سنسورهای فاصله­یاب

گره سنسور فاصله­یاب برای مدل کردن سنسورهای مادون قرمز، سونار، لیزر یا فاصله یاب است. این وسیله برای تشخیص نزدیک شدن به برخورد مناسب است. بدین صورت که چندین سنسور فاصله موانع اطراف ربات را گزارش می­دهند.

در فیلد children گره DifferentialWheels یک گره DistanceSensor قرار می­دهیم. نام آن را به ir0 تغییر می­دهیم که از این نام برای فراخوانی در برنامه کنترلی مورد استفاده قرار می­گیرد.

یک گره Transform به این سنسور اضافه کرده و شکل استوانه برای ظاهرش قرار می­دهیم و نام گره تبدیل را Infrared قرار می­دهیم تا امکان استفاده مجدد از آن در گره­های پایین تر وجود داشته باشد.

 گره shape آن را باز می­کنیم و یک رنگ برای آن انتخاب می­کنیم و هندسه آن را استوانه قرار می­دهیم، بطوری که 004/0 ارتفاعش و 008/0 شعاع آن باشد.

فیلد دوران گره Transform سنسور را [58/1، 1، 0، 0] قرار می­دهیم تا جهتش به سمت جلوی ربات شود. در گره DistanceSensor فیلد انقال را روی [042/0-، 063/0، 02/0-] تنظیم می­کنیم. از منوی Tools گزینه آخر Preferences در تب Rendering گزینه Display sensor rays را تیک می­زنیم تا پرتو قرمز رنگ سنسور در صفحه شبیه سازی نشان داده شود. اشعه قرمز قبل از برخورد و اشعه سبز بعد از برخورد را نشان می­دهد. سپس فیلد دوران سنسور را به  [73/1، 0، 1، 0] تغییر می­دهیم.

نوع سنسور فاصله یاب را از فیلد Type تعیین می­کنیم. نوعی که در این پروژه استفاده کرده­ایم از نوع مادون قرمز می­باشد که حساس به اشیا، و رنگشان و نور می­باشد. موانعی با رنگ قرمز بیشترین پاسخ را نصبت به اشیا تاریک و غیر قرمز دارد.

از جدول LookupTable برای مشخص کردن منحنی پاسخ مطلوب و اغتشاش سنسور استفاده می­شود. این جدول نشان می­دهد چطور Webots پاسخ سنسور را ارائه بدهد.

مولفه اول هر بردار ورودی سنسور یا فاصله از موانع است، مقدار آن در فیلد اول برابر صفر می­باشد و در  فیلدهای پایین­تر افزایش می­یابد.

مولفه دوم پاسخ مطلوب یا مقدار سطح رنگ قرمز بازتاب شده است، در صورتی سنسور دیواری را در فاصله عدد اول تشخیص داد این مقدار را به برنامه بر می­گرداند، مقدار این عدد در فیلدهای پایین­تر کاهش پیدا می­کند.

مولفه سوم اغتشاش یا نویز مطلوب را نشان می­دهد، که هنگام تشخیص فاصله به وجود می­آید و اگر بخواهیم هیچ اغتشاشی وجود نداشته باشد برابر مقدار صفر قرار می­دهیم.

مقادیر این جدول در تمامی سنسورها یکی می­باشد و مقادیر آن را به صورت زیر وارد می­کنیم:

نقطه اول [0، 1900، 0] ، نقطه دوم [0، 1600، 015/0] ، نقطه سوم [0، 1300، 02/0] ، نقطه چهارم   [0، 1000، 025/0] ، نقطه پنجم [0، 700، 05/0] ، نقطه ششم [0، 500، 06/0] ، نقطه هفتم             [0، 400، 1/0] ، نقطه هشتم [0، 200، 13/0] ، نقطه نهم [0،00، 15/0] .

جدول بالا این معنی را می­دهد که در فاصله صفر متر سنسور مقدار 1900 با اغتشاش صفر را بر می­گرداند، در فاصله 02/0 متر از دیوار سنسور مقدار 1600 با اغتشاش حداکثر صفر را بر می­گرداند و غیره، نمودار حاصله لزوما خطی نیست. نمودار شکل 4-2 این مفهوم را بهتر می­رساند. توجه کنید که ستون اول جدول همواره باید مثبت و صعودی باشد و ستون دومی نزولی. دو خط اطراف نمودار اصلی اغتشاش مثبت و منفی را نشان می­دهد.

 

شکل 4-2- نمودار مقدار سنسور با فاصله تا دیوار

برای تعیین تعداد پرتوهای خارج شده از یک سنسور از فیلد NumberOfRays  معین می­کند. این فیلد باید یک یا بیشتر از آن باشد. اگر این عدد بیشتر از یک باشد، چندیدن پرتو از سنسور بیرون می­آید که مقدار اندازه گیری شده میانگین وزنی همه پرتوهاست.

برای تعیین زاویه بین پرتو ها یک سنسور یا شعاع پرتو لیزر از فیلد Aperture استفاده می­کنیم. نحوه قرار گیری پرتوها از یک پرتو تا 10 پرتو را در شکل 4-3 نشان داده­ایم.

 

شکل 4-3- طریقه قرار گیری پرتوها یک سنسور

برای سنسور دوم نیز مانند گره اول انجام می­دهیم و نام آن را ir1 قرار می­دهیم و فیلد انقال را به   [042/0-، 063/0، 02/0] تغیر می­دهیم.

برای سنسور سوم نیز مانند گره اول انجام می­دهیم و نام آن را ir2  قرار می­دهیم و فیلد انقال را به          [0 ، 0/035، 0] تغیر می­دهیم و فیلد دوران سنسور مقدار Alpha را به 15/3 تغییر می­دهیم تا در کنار ربات قرار گیرد.

برای سنسور چهارم نیز مانند گره اول انجام می­دهیم و نام آن را ir3  قرار می­دهیم و فیلد انقال را به        [0 ، 0.053،0.5] تغیر می­دهیم و فیلد دوران سنسور مقدار Alpha را به صفر تغییر می­دهیم تا در طرف دیگر ربات قرار گیرد.

 

4-3-5-قرار دادن دوربین روی ربات

گره دوربین برای مدل کردن یک دوربین رنگی یا سیاه و سفید فیلمبرداری متصل به ربات به منظور دیدن تصاویر، پردازش رنگ و تصویر است.

یک گره دوربین camera را پس از گره سنسور فاصله یاب اضافه می­کنیم. گره Transform را به فیلد Children آن اضافه می­کنیم، سپس گره Shape را به فیلد Children گره Transform اضافه می­کنیم. در گام بعد به گره geometry آن یک استوانه به ارتفاع 03/0 و شعاع 01/0 اضافه می­کنیم.

موقعیت دوربین را در بالای ربات قرار می­دهیم به این منظور مقدار فیلد Translation را برابر                [0 , 0.08 , 0] قرار می­دهیم. همچنین برای اینکه دوربین فقط سطح جلو خود را ببیند مقدار Alpha فیلد دوران آن را برابر -0/08 قرار می­دهیم و مقدار 03/0 برای ارتفاع و 01/0 برای شعاع دوربین استفاده      می­شود.

موقعیت پنجره تصاویر دوربین را در پنجره اصلی شبیه سازی می­توان به کمک فیلد WindowPosition مشخص کرد. مقادیر X و Y در این فیلد اشاره به یک نقطه شناور دارند که بین 0 تا 1 می­باشد. این نقطه مرکز پنجره تصاویر را نصبت به گوشه چپ و بالا پنجره اصلی مشخص می­کند. موقعیت صفر و صفر گوشه چپ و بالا و موقعیت یک و یک گوشه راست پایین را نشان می­دهد. هر گاه پنجره اصلی مقیاس تغییر کند، پنجره تصاویر دوربین نیز به همان میزان مقیاسش تغییر می­کند.

برای بزرگنمایی تصویر دوربین از فیلد PixelSize استفاده می­کنیم، این فیلد سایز پیکسل­های نمایش داده شده را نشان می­دهد. اگر بزرگتر از یک انتخاب شود تصاویر دوربین درشت تر نشان داده خواهند شد.

 

4-3-6-قرار دادن سنسور موقعیت یاب جهانی GPS

گره GPS برای مدل کردن سیستم موقعیت یاب جهانی GPS استفاده می­شود که این سنسور موقعیت مطلق را در هر لحظه با استفاده از برنامه کنترلی در دستگاه مختصات دگارتی ارائه می­دهد.

در فیلد Type نوع تکنولوژی GPS را مشخص می­کند. که شامل Satellite و Leser می­باشد که در این پروژه از نوع ماهواره یا همان Satellite استفاده کرده­ایم.

برای تعیین دقت سنسور از فیلد Resolation استفاده می­کنیم که در واقع ماکزیمم خطای آن در موقعیت مطلق است، بر اساس متر نشان می­دهد.

یک گره GPS را بعد از گره دوربین اضافه می­کنیم و موقعیت آن را در مرکز روبات قرار می­دهیم و نوع آن را از نوع ماهواره­ای قرار می­دهیم.

 

 

4-3-7-قرار دادن سنسور قطب­نما Copmass

گره قطب­نما برای مدل کردن قطب­نمای دیجیتالی یک محوره، دو محوره یا سه محوره استفاده می­شود. گره قطب­نما یک بردار طولی واحد که نشان دهنده جهت شمال مجازی است را ارائه می­دهد.شمال مجازی بوسیله فیلد NorthDirection در گره Wordinfo مشخص می­شود. توجه داشته باشیم که قطب نمای معمولی فقط زاویه نسبت به یک محور را نشان می دهد. مثلا فقط نسبت به محور X یا شمال یا زاویه افقی[5] Yaw. قطب نما با دو محور، زاویه تراز یا زاویه عمودی نسبت افق[6] Pitch را نشان می­دهد. زاویه سوم همان زاویه Roll در زاوایای اویلر است.

مولفه­های بردار را در فیلد LookupTaple قرار داده می­شود که این فیلد اختیاری است و مقادیر آن بین   1- تا 1 قرار دارد. با این جدول می­توان اغتشاش را به سیستم اضافه کرد و مقادیر ماکزیمم و مینیمم را تعریف کرد. بطور پیش فرض این جدول خالی است و بنابر این مولفه­های برابر طول خروجی قطب نما خواهند بود.

برای تعیین کردن اینکه کدام محور فعال باشد یا نباشد از فیلدهای ZAxis ، YAxis و XAxis می­توان استفاده کرد. اگر هر یک از اینها False باشد، مولفه مربوط به آن محور محاسبه نمی­شود و در دستور ویژه آن مولفه نیز همواره مقدار صفر را خواهد داد. در حالت پیش فرض هر سه True یا فعال هستند.

یک گره Compass را بعد از گره GPS اضافه می­کنیم و موقعیت آن را در وسط ربات قرار می­دهیم و فیلدهای سه محور آن را فعال قرار می­دهیم.

 

 

 

 



[1] Solid

[2] PointLight

[3] RGB

[4] Monile Robots

[5] Azimuth

[6] Elevation

پياده سازي اتاق سرور

 

 

3-1-ساختار شبکه کامپیوتری اتاق سرور          

آماده سازی اتاق سرور جهت ارتباطات شبکه ای سرورها با ایستگاه های مختلف شبکه از جمله کارهای پایه ای در اتاق سرور می باشد. درواقع کلیه کارها و هزینه هایی که در اتاق سرور انجام می شود هدفش استفاده منطقی و مطمئن از تجهیزات اتاق سرور می باشد.

 

3-2-ساختار فیزیکی شبکه

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

  • پیاده سازی مدل سه لایه
  • کابل کشی استاندارد
  • ثابت کردن رک ها
  • کانال های عبور

 

 

3-2-1-پياده سازي مدل سه لايه

کابل کشی و پیشبینی مسیرهای داخل اتاق سرور باید به گونه ای باشد تا بتوان پیاده سازی مدل سه لایه شبکه را عملیاتی ساخت از این لحاظ داشتن نقشه منطقی و فیزیکی سوئیچ های مختلف شبکه باید پیش از اجرای مسیرگذاری در دستور کار قرار گیرد.

 

3-2-2-كابل كشي استاندارد

رعایت اصول کابل کشی ساخت یافته و همچنین درنظر داشتن خم ها و زوایای مختلف در کابل کشی اتاق سرور باید در نظر گرفته شود.

 

3-2-3-ثابت كردن رك ها

به دلیل جلوگیری از واژگون شدن رک ها در هنگام زلزله ، رک ها باید به کف وصل و مهار شوند. پیش از اجرای کف و ایجاد کانال های مختلف باید محل استقرار رک ها تعیین شده و بست ها و Holder های نگهدارنده در آن تعبیه شود لذا دانستن نوع و مدل رک ها ، اندازه آن ها ، موقعیت مکانی نسبت به یکدیگر باید تعیین شوند.

نکته : برخی از رک ها نظیر رک های HP دارای اتصالات مخصوص بوده و جهت نصب صحیح رک باید از آن ها استفاده کرد.

 

3-2-4- كانالهاي عبور

جهت نظم بخشیدن به کابل های Portable نظیر کابل های رابط برق ، Patch Cordها و ... ، مسیر عبور استاندارد کابلی توکار در اتاق سرور صورت می گیرد. این کانال ها باید دارای درپوش مناسب بوده و بین مسیرهای Data و برق فاصله ایجاد نماید.

 

3-3-ساختار منطقي شبكه

 ساختار منطقی و نرم افزاری سرورها امکان استفاده مطمئن از اطلاعات روی سرورها را مهیا می سازد لذا اتخاذ استراتژی مناسب ارتباط سرورها با یکدیگر و همچنین ارتباط ایستگاه های کاری با آن ها باید پس از نصب فیزیکی اتاق سرور انجام شود. درزیر به برخی از تنظیمات منطقی و نرم افزاری اشاره شده است:

 

  • کنترلر و سرویس های شبکه نظیر DHCP ، DNS و ...
  • تقسيم سوئيچي
  • ایجاد Access List روی سوئیج های شبکه
  • ایجاد Routing و Gateway شبکه و امنیت
  • و...

 

3-3-1- امنيت

آسیب ها و نفوذ های گزارش شده به سیستم های مبتنی بر اطلاعات در سرتاسر جهان رو به افزایش است. با گذشت زمان ابزارها و روشهای نفوذ به سیستم های اطلاعاتی و شبکه های کامپیوتری ساده و ساده تر می شوند و نفوذگرها با این ابزار و حداقل دانش مجال نفوذ را می یابند.

بر این اساس محرمانه بودن، در دسترس بودن و یکپارچگی اطلاعات، امری اجتناب ناپذیر برای توسعه سیستم ها کامپیوتری و سرورها است و باید در برنامه تجهیز اتاق سرور مدنظر قرار گیرد.

مرسوم ترین روش های امنیتی عبارتند از :

  • استفاده از ویروس کش مناسب
  • استفاده از فایروال با تنظیم صحیح
  • نصب سیستم های نمایشگر نظیر IDS

 

3-3-2- نسخه پشتيباني

ایجاد امکانات مناسب برگرداندن اطلاعات ازبین رفته از تدابیری است که باید مدیر شبکه در دستور کار خود قراردهد. استفاده از ساختار SAN و تجهیزات مبتنی بر NAS ، همچنین Mediaهای ذخیره سازی متنوع با توجه به حجم اطلاعات و اهمیت آن ها مثال هایی از آنهاست.

نکته: درصورتیکه راه اندازی SAN را در دستور کاری خود دارید باید بستر اصلی پیاده سازی آن را در اتاق سرور پیشبینی نمایید.

3-4- سرور مناسب

سرورها ، کامپیوترهای قدرتمند با توان پردازش و ذخیره سازی بالایی هستند که به عنوان مرکز منطقی نرم افزارهای مختلف شبکه درنظر گرفته می شوند. Data Base های مختلف نظیر SQL ، Oracle و ... روی این بستر ایجاد شده و ایستگاه های کاری مرتبط با شبکه را تغذیه می نمایند. با توجه به فضای محدود اتاق سرور و لزوم بهینه از فضا ، استفاده از سرور های کشویی Rackmount پیشنهاد می شود.

این سرور ها سرپرست شبکه را قادر خواهند ساخت تا به راحتی به آن ها دسترسی داشته و بنا به شرایط آن ها را افزایش یا کاهش دهد

 

آماده سازي اتاق سرور

 

 

2-1-اهميت اتاق سرور

ايجاد مكاني امن در جهت متمركز كردن سرورهاي شبكه و استفاده از منابع مشترك نگهداري، از عوامل مهم و تاثير گذار يك سازمان مي باشد لذا در اين راستا اتاق سرور ايجاد شده و مورد بهره برداري قرار مي گيرد. اهداف اصلي در پياده سازي اتاق سرور عبارتند از مقاومت سازه، ايمني نفوذ پذيري و اطمينان از صحت داده ها. در اين نوشتار مواردي كه در طراحي و پياده سازي اتاق سرور استاندارد مبتني بر استاندارد مديريت امنيت اطلاعات مدنظر مي باشد آورده شده است.

 

شكل 2-1-اتاق سرور

 

2-2-تقویت ساختار، مقاوم سازی و ضدزلزله سازی

 

2-2-1- مراحل کار مقاوم سازی

  • دیوارها تا رسیدن به سطح آجری تراشیده می شود.
  • سوراخ ها و منافذ پر می شوند .
  • سطوح با یک لایه سیمانی پوشیده می شود .
  • لایه ای از ماده ضد آتش Fire Tard روی لایه سیمانی کشیده می شود .
  • مسیرگذاری کف و سقف جهت عبور لوله های اطفای حریق ، برق و شبکه انجام می شود.
  • پس از انجام مراحل فوق اقدام به آهن کشی و ستون گذاری می شود .
  • شبکه های فلزی نصب شده و روی آن گچ کاری می شود .
  • پس از خشک شدن گچ لایه محافظتی و ضد آتش Epoxy پوشانده می شود .

 

2-2-2-مکان مناسب جهت اتاق سرور

معمولا اتاق سرور را در پایین ترین طبقه درنظر می گیرند و این مکان باید با کانال ها و رایزرهای ساختمان در ارتباط باشد. در صورتیکه از این اتاق به اتاق های دیگر و همچنین به طبقات دیگر کانالی وجود نداشته باشد باید آن را ایجاد کرد.

 

2-3-سیستم های مکمل

 

2-3-1-سیستم تهویه و تخلیه گردوخاک

از عوامل مهم استهلاک تجهیزات الکترونیکی ، گرد و خاک می باشد. با نشستن گردو خاک روی Chipset  های مختلف بردهای دستگاه ها و ایجاد لایه جانبی روی آن ها ، عمل خنک سازی آن ها با مشکل روبرو شده و خرابی زودرس را سبب می شود از اینرو سیستم تهویه هوای اتاق سرور نصب شده و مورد بهره برداری قرار می گیرد.

 

2-3-2-سیستم اعلام و اطفای حریق آتش سوزی

به دلیل اتصال کوتاه ادوات برقی و همچنین وجود تجهیزات مختلف آتش زا از عوامل اصلی تخریب در سازمان ها می باشد لذا در این خصوص نصب تجهیزات مناسب اخطار و اطفای حریق مدنظر می باشد.

 

 

 

شكل 2-2- نمونه هاي از سيستم اعلام و اطفاي حريق

 

 نحوه کار سيستم اعلام و اطفاي حريق چنین است :

با توجه به محدودیت فضای اتاق سرور جهت انتقال گاز مونواکسید کربن به داخل اتاق، از لوله های حامل استفاده می شود. محل قرارگرفتن نازل های نهایی باید در مکانهایی نزدیک به محل استقرار سرور ها و تجهیزات برقی تعبیه شود.

مخزن های گاز در مکانی خارج اتاق سرور قرار می گیرد و این مخزن ها به لوله های تعبیه شده داخلی مرتبط خواهند شد.

درمکان های مختلف اتاق سرور نظیر داخل رکها ، تجهیزات برقی داخلی و ... سنسورهای تشخیص حریق نصب می شود.

 

2-3-3-درب ضدحریق و مقاوم

با توجه به اهمیت محصور نمودن آتش و جلوگیری از گسترش آن ، درب اتاق سرور باید از جنس نسوز انتخاب شود.

 

2-3-4-رنگ ضد حریق یا EPOXY

جهت پر کردن کلیه درزها و ایجاد لایه حفاظتی بیرونی ضد آتش از Epoxy استفاده می شود. Epoxy در رنگ های مختلف موجود بوده و برای گرفتن جواب مؤثر حتما باید سطح زیرین کاملا خشک شده باشد.

رنگ های پلاستیکی و پلی استری محصولات جانبی پتروشیمی بوده و قابلیت اشتعال بالایی دارند لذا استفاده از آن ها مناسب اتاق سرور نمی باشند. درحال حاضر پوشش مناسب جهت اتاق سرور Epoxy می باشد که کلیه سطوح داخلی ( کف ، سقف ، دیواره های جانبی) را پوشش می دهد. دارای رنگ های متنوعی است و کاملا ضد حریق می باشد.

 

2-3-5-دوربین های کنترلی

باتوجه به اهمیت اطلاعات و لزوم مراقبت بیشتر ازتجهیزات اتاق سرور، نصب دوربین های کنترلی درون اتاق سرور بسیار مؤثر است. دوربین ها بطور 24 ساعته اتاق سرور را مانیتور کرده و Log ها را در سرور مربوطه ذخیره می کنند.

 

2-3-6-سیستم جارو برقیVacum Cleaner

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

 

2-3-7-سیستم کنترل دسترسی تردد

استقرار سیستم کنترلی مناسب جهت ثبت تردد افراد و مدیریت آن جهت اتاق سرور الزامی است. این سیستم دارای یک دستگاه کارت خوان چند گزینه ای (Multi Option Checking) ، کنترلر و مبدل های مرتبط با آن می باشد. افراد مجاز برای ورود به اتاق سرور باید کارت تردد را همراه داشته باشند. همچنین ثبت اثر انگشت و وارد کردن کدمخصوص از دیگر گزینه هایی است که می توان آن ها را فعال نمود.

 

2-3-8-سیستم تامین روشنایی

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

 

2-3-9-سیستم خنک کننده داخلی

جهت برقراری دمای مناسب 18 درجه سانتی گراد اتاق سرور استفاده از دستگاه های خنک کننده درون آن الزامی است. مرسوم ترین خنک کننده در ایران ، کولرهای گازی هستند که توان آن ها باتوجه به میزان حرارت تولید شده اتاق سرور محاسبه می شوند .

 

2-4-سيستم هاي اصلي

 

2-4-1-سقف  کاذب

 

 

شكل 2-3-  سقف كاذب

2-4-2-کف کاذب

کف کاذب نام کالایی است که به قرینه سقف کاذب نام گذاری شده و به کفی اطلاق می گردد که کف اصلی سازه ساختمانی نیست و جهت افزایش ارتفاع محل تردد به کمک پایه هایی بر کف اصلی طبقات نصب شده است. ترجمه صحیح نام این کالا تغییر ارتفاع داده (Raised Floor) می باشد که دلیل به کارگیری آن عموماً جهت پوشش حجم زیادی از کابل ها و تأسیسات است که در بعضی از اماکن به کار می رود؛ از آن
جمله می توان از اتاق های کنترل و فرمان، مراکز کامپیوترهای سرور، پست های برق وئ مخابرات، برج های کنترل، اتاق های قرنطینه، گلخانه های مکانیزه و... نام برد. ولی اخیراً بکارگیری انواع خاص از سقف های کاذب به منظور گرمایش از کف و انتقال آب های سطحی و کاهش رطوبت وهمچنین به منظور سبک سازی ساختمان ها نیز رونق یافته است. ضمناً کفهای کاذب در ابعاد مختلف ارائه میگردند که معمولا 4040،6040، 5050، 6060، 8080 و 12060 می باشد.

انواع کف کاذب جهت اتاق سرور:


  • کف آلومینیومی با روکش  pvc
  • کف فولادی با روکش HPL

 

شكل 2-4- كف كاذب

2-4-3-سینی کابل

 

شكل 2-5- سيني كابل

 

2-4-4-آرایش رک

 

شكل2-6- آرايش رك

 

شكل 2-7 رك

 

2-4-5-کابل کشی استاندارد

کابل های مختلف در موقعیت های مختلف قابل استفاده هستند و بعضی از کابل ها موثر تر از مدلهای دیگر میباشند به عنوان مثال ، کابلهای فیبر نوری بسیار گران است، اما سرعت آنها چنان بالاست که استفاده از آنها در بخش اصلی شبکه کاملا مقرون به صرفه محسوب میشود .استفاده از کابلهای استاندارد به همان اندازه تلاش و زمان نیاز خواهد داشت در حالیکه آنها بطور مشخصی کندتر از کابلهای فیبرنوری هستند. در یک شبکه که از کابلهای دو زوجی استفاده میکند شما میتوانید سرعت را با استفاده از کابلهای نوری افزایش دهید.از این کابلها میتوانید برای اتصال بین دو ساختمان یا طبقه هم استفاده کنید.تنها مساله مهم تصمیم گیری در مورد این است که چه نوع کابلی واقعا برای شما مناسب است.

 

 

شكل 2-8 – كابل كشي استادارد

 

2-4-6-ساختار برق شهر و برق اضطراری

کابل کشی اتاق سرور باید مطابق استاندارد های کابل کشی ساخت یافته با تجهیزات باکیفیت پیاده سازی شود. قسمت های مختلف جهت داشتن سیستم برق رسانی مطمئن شامل موارد زیر است :

  • تابلو برق
  • یو پی اس
  • ژنراتور تامین چاه ارت

در ادامه به توضيح مختسري در مورد هريك مي پردازيم

 

 

 

2-4-6-1-تابلو برق و  ATS

کنترل خطوط ورودی و خروجی برق و برق اضطراری ، همچنین لزوم مانیتور کردن جریان و ولتاژ خطوط استفاده از تابلو برق را الزامی می سازد. تابلو برق علاوه بر داشتن ولت متر و آمپرمتر دارای یک سری کلیدهای مینیاتوری بوده که جهت جریان و وضعیت ولتاژ را کنترل می نماید همچنین توسط این کلیدها قادر خواهیم بود تا برق قسمتی از سازمان را روی برق شهر Set کنیم و یا می توانیم آن را به UPS مرتبط سازیم.

 

 

شكل2-9- تابلو برق

 

2-4-6-2- يو پي اس

قطع ناگهانی برق در تجهیزات اتاق سرور نظیر روتر ها ، سوئیچ ها ، سرورها و . . . باعث اختلال در اکثر فعالیت های این دستگا هها شده و دربرخی موارد امکان ادامه کار آنها را کاملا ازبین می برد. باید درنظر داشت تنها قطع برق شهر اثرات مخرب به همراه ندارد. سیستم های کامپیوتری نسبت به نارسایی هایی مانند افت لحظه ای ولتاژ،ولتاژهای لحظه ای بالا ، نویز و تاثیرات فرکانس رادیویی و تغییرات فرکانس درمنبع تغذیه خود حساس هستند. یک UPS مناسب دارای شرایط زیر است :

 

توان کار با ژنراتور را داشته باشد .

یعنی Power Factor Correction را پشتیبانی کند .

جهت مانیتورکردن Online ، پروتکل SNMP را پشتیبانی کند .

نکته : اگر UPS مشخصه PFC را نداشته باشد توان ژنراتور باید 5/1 برابر UPS درنظر گرفته شود و اگر داشته باشد 15/1 برابر UPS باشد.

 

2-4-6-3-ژنراتور تامین

دستگاه های تامین کننده برق اضطراری UPS با توجه به گران بودن و عدم کارایی مناسب برای برق دهی طولانی مدت مناسب نبوده و استفاده از ژنراتور در دستور کار قرار می گیرد. نحوه کار بدین صورت است که در هنگام قطع برق اتاق سرور و برای جلوگیری از اختلال در سیستم برق دهی آن در طول زمان به کار افتادن ژنراتور، UPS بطور آنی وارد مدار شده و برق اتاق سرور را تامین می کند. به محض آماده شدن ژنراتور جهت برق دهی ، UPS از مدار خارج شده و برق اتاق سرور از ژنراتور تامین می شود.

توان UPS با توجه به میزان توان مصرفی دستگاه های مختلف مستقر در اتاق سرور نظیر سرور ها، کولرهای گازی و ... محاسبه می شود. توان UPS مناسب را بادرنظر گرفتن باتری های داخلی آن برای مدت 7 الی 15 دقیقه (باتوجه به زمان به کار افتادن ژنراتور) درنظر می گیرند. میزان توان ژنراتور 15% بیشتر از توان UPS درنظر گرفته می شود و درهنگام کار باید 70% زیربار باشد.

زیربار قرارگرفتن ژنراتور بیش از 80% توان و یا کمتر از 60% توان اکیدا توصیه نمی شود.ژنراتورهای با توان بالای 15 KVA سه فاز هستند.

 

چرا باید از ژنراتور استفاده کنیم ؟

با توجه به گرانی UPS های با توان بالا و همچنین نیاز به استفاده از باتری های متعدد جهت برق دهی طولانی مدت ، استفاده از ژنراتور الزامی است. نکته دیگری که باید درنظر بگیریم جاگیر بودن حجم زیادی باتری خارجی در فضای محدود اتاق سرور است.

 

2-4-7-چاه ارت

جهت جلوگیری از بارهای اضافی و مخرب روی سیستم برقی ، سیستم زمین یا Earth باید برقرار شود دراین سیستم ، نول واقعی شده و به چاه ارت توسط کابل مسی مرتبط می شود. شرایط ایجاد چاه ارت استاندارد در زیر آمده است :

 

شكل 2-10- نماي كامل اتصال زمين

 

حفر چاه تا رسیدن به خاک نم دار بایستی انجام شود .

پودر ذغال و نمک (کلرید سدیم) به نسبت یک به دو ( هرکیلو ذغال دو کیلو نمک ) به مقدار 40 کیلوگرم در چاه ریخته شود ( این مواد با مقاومت خاک نسبت عکس دارند و کم یا زیاد کردن این مواد مقاومت خاک را زیاد و یا کم می گرداند )

صفحه ای مسی به اندازه 50cm X 50cm و به قطر 1سانتی متربصورت تیغه ای( عمودی ) روی نمک و ذغال قرار می گیرد .

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

لوله پولیکا به قطر 4 یا 6 سانتی متر کنار هر چاه نصب می گردد . لازم به توجه است سوراخهای متعددی در بدنه لوله ها ایجاد شده تا اطراف لوله و چاه را مرطوب گرداند .

در پایان نیز چاه با خاک رس و نرم پر می شود .

مقاومت چاه با استفاده از دستگاه ارت سنج باید زیر 2 اهم باشد .

 

ربات و علم رباتیک

 

 

1-1-    مقدمه

رباتیک علمی است که با هدف راحتی انسان و افزایش وقت مفید او به وجود آمده است. متاسفانه در کشور ما آن طور که شایسته است شناخته نشده است.

وقتی حرف از ربات می­شود همه به فکر یه چیزی می­افتند که دست و پا دارد  و یه سری کار انجام      می­دهد، باید بگم که امروزه کارکردهای ربات فراتر از این چیزهاست.

امروزه در دنیای نانو تکنولوژی مثل آی­سی­های بسیار کوچک[1] که ملیون­ها ا­لمان الکترونیکی رو در خود جای دادن از ربات استفاده می­شود، دنیای ربات که تلفیقی از الکترونیک، مکانیک، نرم افزار ، سخت افزار می­باشد، که روز به روز در حال گسترش و تکامل است. در این فصل سعی می­کنیم مبانی علم رباتیک و وضعیت رباتیک در ایران و جهان و کاربرد علم رباتیک را بررسی کنیم. بدین منظور تاریخچه و تعریف مختصری از ربات ارائه می­نماییم.

 

1-2-    تاریخچه رباتیک

برای اولین بار یک نمایش نامه نویس چک اسلواکی به نام Karl Capek کلمه ربات را در نمایش   ربات­های جهانی روسیه استفاده کرد. این جمله از کلمه چکی Robota به معنی کوشش ملال­آور در سال 1920 مطرح شد. نخستین ا­لگوی قابل برنامه ریزی که یک دستگاه سم­پاشی بود، توسط دو آمریکایی به نام Willard Pollard و Harold Roselund برای شرکت Devilbiss در سال 1938 طراحی شد. در سال 1942 ایزاک آسیموف Runaround را منتشر کرد و در آن قوانین سه گانه رباتیک را تعریف کرد. در سال 1946 ظهور کامپیوتر George Devol با استفاده از ضبط مغناتیسی، یک دستگاه Playback همه منظوره، برای کنترل ماشین به ثبت رساند. John Mauchly اولین کامپیوتر الکترونیکی Eniac را در دانشگاه پنسلونیا ساخت،  در MIT نیز اولین کامپیوتر دیجیتالی همه منظوره Whirl Wind اولین مسئله خود را حل کرد.

در فرانسه در سال 1951 اولین بازوی مفصلی کنترل از راه دور را برای انجام ماموریت هسته­ای طراحی کرد. طراحی آن مبتنی بر کلیه روابط متقابل مکانیکی بین بازوی اصلی و فرعی با استفاده از روش متداول تسمه و قرقره بود که نمونه­هایی برگرفته از این طراحی هنوز هم در مواردی که نیاز به لمس نمونه­های کوچک هسته­ای است، دیده می­شود.

در سال 1954 شخصی به نام George Devol اولین ربات قابل برنامه­ریزی را طراحی و عبارت جهانی اتوماسیون را ابداع کرد، این امر زمینه­ای برای نام گذاری این شرکت به Unimation در آینده شد.

شرکت Unimation در سال 1960 توسط شرکت Coudoc خریداری شد و توسعه سیستم ربات­های آن آغاز گردید. کارخانجات ساخت تراشه مانند AMF پس از آن شناخته شدند و اولین ربات استوانه­ای شکل به نام Vwersatran به فروش رفت. جنرال متور اولین ربات صنعتی را در سال 1962 از Unimation خریداری کرد و آن را در خط تولید ماشین­های خود قرار داد.

تا جایی این پیشرفت ادامه پیدا کرد که حتی در سال 2001 سیستم کنترل از راه دور ایستگاه فضایی SSRMS توسط موسسه رباتیک MD در کانادا ساخته و با موفقیت به مدار پرتاب شد و عملیات تکمیل استگاه فضایی بین اللمللی را آغاز کرد. [6]

 

1-2-  تعریف ربات و رباتیک

همیشه بین صاحب نظران رباتیک و فعالان رباتیک در دانشگاه­ها بحث در مورد تعریف ربات وجود داشته است، گاهی اوقات بر اساس تولید ربات در شرکتی ، تعریف صنعتی و بر اساس تولید آن شرکت از ربات ارائه می­شود و در مواردی نسبت به تکنولوژی ربات توصیف شده است.

با این همه در زمان کنونی فناوری ساخت ربات در حدی است که با تکیه بر تکنولوژی جدید و پیشرفته کنونی و با کمی آینده­نگری می­توان تعریف عینی و دست یافتنی از ربات کرد. در این جا چند تعریف معتبر ذکر می­کنیم.

یک دستگاه یا وسیله خود مختار که قادر به انجام اعمالی است که معمولا به انسانها نسبت داده می­شود و یا مجهز به قابلیتی است که شبیه هوش بشری است.

یک ربات هوشمند، ماشین خودکار چند منظوره­ای است که طیف وسیعی از وظایف متفاوت را تحت شرایطی که حتی ممکن است به آن شناخت کافی نداشته باشد، همانند انسان آن را انجام دهد.

ربات همانند کامپیوترها قابلیت برنامه ریزی دارند. بسته به نوع برنامه­ای که شما به آنها می­دهید، کارها و حرکات مختلفی را انجام می­دهند. رشته دانشگاهی نیز تحت عنوان رباتیک وجود دارد که به مسایلی از قبیل حسگرها، مدارات، بازخوردها، پردازش اطلاعات و بسط و توسعه ربات­ها می پردازد. ربات­ها انواع مختلفی دارند از قبیل شمشیرباز، دنبال کننده خط، کشتی­گیر، فوتبالیست و ربات­های خیلی ریز تحت عنوان ریزربات­ها، ربات­های پرنده و غیره نیز وجود دارند. ربات­ها برای انجام کارهای سخت و دشوار که بعضی مواقع انسان­ها از انجام آنها عاجز یا انجام آنها برای انسان خطرناک هستند مانند ربات­های که در نیروگاه­های هسته­ای وجود دارند استفاده می­شوند.

کاری که ربات­ها انجام می­دهند توسط ریز پردازشگرها و ریز کنترلرها کنترل می­شود. با تسلط در برنامه نویسی این دو می­توانند دقیقا همان کاری را که انتظار دارید، ربات انجام دهد.

 

1-3-    مزایای ربات و رباتیک

مزایا کاملا آشار است. معمولا یک ربات می­تواند کارهایی که ما انسان­ها می­خواهیم انجام دهیم را ارزان تر انجام دهد. علاوه بر این ربات­ها می­توانند کارهای خطرناک مانند نظارت بر تاسیسات انرژی هسته­ای یا کاوش یک آتش­فشان را انجام دهند. ربات­ها می­توانند کارها را دقیقتر از ا­نسان­ها انجام دهند و روند پیشرفت در علم پزشکی و سایر علوم کاربردی را سرعت بخشند. ربات­ها به ویژه در امور تکراری و خسته کننده مانند ساختن صفحه مدار، ریختن چسب روی قطعات یدک و غیره سودمند هستند.

همچنین می­توان به مزایای دیگر ربات از جمله: افزایش بهره، افزایش تولید، کیفیت کار، افزایش دقت، جلوگیری از اتلاف نیروی انسانی، افزایش سرعت، کاهش هزینه، کاهش ضایعات، چند منظوره بودن، هوشمند بودن، عدم خستگی اشاره کرد.

 

 

 

 

 

1-4-    صنعت و رباتیک

ربات­ها اولین بار در سال 1954 در صنعت به کار گرفته شدند که یک بازوی ربات[2] که تنها سه درجه آزاد بود. ربات­های صنعتی امروزی اکثرا همان بازوی رباتیکی هستند ولی با 6 درجه آزادی و خیلی پیشرفه تر نسبت به گذشته کار می­کنند ربات­ها در صنعت به شیوه­ها و روش­ها و مدل­های مختلفی به کار گرفته   می­شوند.

امروزه 90 درصد ربات­ها، ربات­های صنعتی هستند، یعنی ربات­هایی که در کارخانه­ها، آزمایشگاه­ها،  نیروگاه­ها، بیمارستان­ها، و بخش­های مشابه به کار گرفته می­شوند. در سال­های قبل، بیشتر ربات­های صنعتی در کارخانه­های خودروسازی به کار گرفته می­شدند، ولی امروزه تنها حدود نیمی از ربات­ها در دنیا در کارخانه­های خودروسازی به کار گرفته می­شوند. مصارف ربات­ها در همه ابعاد زندگی به سرعت در حال گسترش است تا کارهای سخت و خطرناک را به جای انسان انجام دهند. [7]

1-5-    مثال­هایی از ربات

کلمه ربات مانند کلمه­ی ماشین، یک کلمه کلی است و به چند مورد خاص خلاصه نمی­شود.به عنوان نمونه چند مثال از انواع ربات­ها را در پایین ذکر می­کنیم.

بازوهای ربات­های صنعتی[3]، سیار چرخ دار[4]، ربات کنترل چاه­های نفت، یخچال­های خانگی، آسانسورها، اسباب بازی کودکان، هواپیما­های بدون سرنشین، سیستم­های دفاع ضد موشکی، پرینترها، دستگاه­های تراش خودکار، نوشابه پر کن­ها و غیره.

این­ها فقط نمونه­هایی از بی­نهایت انواع ربات بود، ربات­ها آنقدر گسترده­اند که امروزه نمی­توان بدون آن­ها زندگی کرد. ولی در مهندسی منظور از ربات، ربات­های صنعتی می­باشد.

 



[1] Micro IC

[2] Manipulator

[3] Robot Manipulators

[4] WMR

پروتکل های مسیر یابی شبکه های بی سیم حسگر

 

 

 

۱-۳)  مقدمه

در شبکه‌های بی سیم، نودهای شبکه دانش قبلی از توپولوژی شبکه‌ای که درآن قرار دارند، ندارند به همین دلیل مجبورند برای ارتباط با سایر نودها، محل مقصد را در شبکه کشف کنند. در اینجا ایده اصلی این است که یک نود جدید به طور اختیاری حضورش را در سراسر شبکه منتشر می‌کند وبه همسایه‌هایش گوش می‌دهد. به این ترتیب نود تا حدی ازنودهای نزدیکش اطلاع بدست می‌آورد و راه رسیدن به آنها را یاد می‌گیرد به همین ترتیب که پیش رویم همه نودهای دیگر را می‌شناسد و حداقل یک راه برای رسیدن به آنها را می‌داند.

 

۲-۳)  پروتکل‌های مسیریابی

پروتکل‌های مسیریابی بین هر دو نود این شبکه به دلیل اینکه هر نودی می‌تواند به طور تصادفی حرکت کند و حتی می‌تواند در زمانی از شبکه خارج شده باشد، مشکل می‌باشند. به این معنی یک مسیری که در یک زمان بهینه‌است ممکن است چند ثانیه بعد اصلا این مسیر وجود نداشته باشد. در زیر سه دسته از پروتکل‌های مسیر یابی که در این شبکه‌ها وجود دارد را معرفی می‌کنیم.

    ۱.  Table Driven Protocols  

    ۲.     On Demand Protocols

    ۳.     Hybrid Protocols

۱. در این روش مسیریابی هرنودی اطلاعات مسیریابی را با ذخیره اطلاعات محلی سایر نودها در شبکه استفاده می‌کند و این اطلاعات سپس برای انتقال داده از طریق نودهای مختلف استفاده می‌شوند.
۲. روش ایجاد می‌کند مسیرهایی بین نودها تنها زمانی که برای مسیریابی بسته موردنیاز است تا جایی که ممکن است بروزرسانی روی مسیرهای درون شبکه ندارد به جای آن روی مسیرهایی که ایجاد شده و استفاده می‌شوند وقتی مسیری توسط یک نود منبع به مقصدی نیاز می‌شود که آن هیچ اطلاعات مسیریابی ندارد، آن فرآیند کشف مسیر را از یک نود شروع می‌کند تا به مقصد برسد. همچنین ممکن است یک نود میانی مسیری تا مقصد داشته باشد. این پروتکل‌ها زمانی موثرند که فرآیند کشف مسیر کمتر از انتقال داده تکرار شود زیرا ترافیک ایجاد شده توسط مرحله کشف مسیر در مقایسه با پهنای باند ارتباطی کمتر است.
۳. ترکیبی از دو پروتکل بالاست. این پروتکل‌ها روش مسیریابی بردار-فاصله را برای پیدا کردن کوتاه ترین به کار می‌گیرند و اطلاعات مسیریابی را تنها وقتی تغییری در توپولوژی شبکه وجود دارد را گزارش می‌دهند. هر نودی در شبکه برای خودش یک zone مسیریابی دارد و رکورد اطلاعات مسیریابی در این zoneها نگهداری می‌شود. مثل (ZRP (zone routing protocol

 

۱-۲-۳)  پروتکل‌های روش اول

 

۱-۱-۲-۳)  DSDV

این پروتکل بر مبنای الگوریتم کلاسیک Bellman-Ford بنا شده‌است. در این حالت هر گره لیستی از تمام مقصدها و نیز تعداد پرش‌ها تا هر مقصد را تهیه می‌کند. هر مدخل لیست با یک عدد شماره گذاری شده‌است. برای کم کردن حجم ترافیک ناشی از بروز رسانی مسیرها در شبکه از incremental -packets استفاده می‌شود. تنها مزیت این پروتکل اجتناب از به وجود آمدن حلقه‌های مسیریابی در شبکه‌های شامل مسیریاب‌های متحرک است. بدین ترتیب اطلاعات مسیرها همواره بدون توجه به این که آیا گره در حال حاضر نیاز به استفاده از مسیر دارد یا نه فراهم هستند. معایب : پروتکل DSDV نیازمند پارامترهایی از قبیل بازه زمانی بروزرسانی اطلاعات و تعداد بروزرسانی‌های مورد نیاز می‌باشد.
 ۲-۱-۲-۳) WRP 

این پروتکل بر مبنای الگوریتم path-finding بنا شده با این استثنا که مشکل شمارش تا بینهایت این الگوریتم را برطرف کرده‌است. در این پروتکل هر گره, چهار جدول تهیه می‌کند: جدول فاصله، جدول مسیر یابی, جدول هزینه لینک و جدولی در مورد پیام‌هایی که باید دوباره ارسال شوند. تغییرات ایجاد شده در لینک‌ها از طریق ارسال و دریافت پیام میان گره‌های همسایه اطلاع داده می‌شوند.

 

 ۳-۱-۲-۳)   CSGR 

در این نوع پروتکل گره‌ها به دسته‌ها تقسیم بندی می‌شوند. هر گروه یک سر گروه دارد که می‌تواند گروهی از میزبان‌ها را کنترل و مدیریت کند. از جمله قابلیت‌هایی که عمل دسته بندی فراهم می‌کند می‌توان به اختصاص پهنای باند و دسترسی به کانال اشاره کرد. این پروتکل از DSDV به عنوان پروتکل مسیریابی زیر بنایی خود استفاده می‌کند. نیز در این نوع هر گره دو جدول یکی جدول مسیریابی و دیگری جدول مریوط به عضویت در گره‌های مختلف را فراهم می‌کند. معایب : گره‌ای که سر واقع شده سربار محاسباتی زیادی نسبت به بقیه دارد و به دلیل اینکه بیشتر اطلاعات از طریق این سرگروه‌ها برآورده می‌شوند در صورتی که یکی از گره‌های سرگروه دچار مشکل شود کل و یا بخشی از شبکه آسیب می‌بیند.


۴-۱-۲-۳)   STAR

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

 

۲-۲-۳) پروتکل‌های روش دوم

 

۱-۲–۲-۳)   SSR

این پروتکل مسیرها را بر مبنای قدرت و توان سیگنال‌ها بین گره‌ها انتخاب می‌کند. بنابراین مسیرهایی که انتخاب می‌شوند نسبتا قوی تر هستند. می‌توان این پروتکل را به دو بخش DRP و SRP تقسیم کرد. DRP مسئول تهیه و نگهداری جدول مسیریابی و جدول مربوط به توان سیگنال‌ها می‌باشد.SRP نیز بسته‌های رسیده را بررسی می‌کند تا در صورتی که آدرس گره مربوط به خود را داشته باشد آن را به لایه‌های بالاتر بفرستد.

 

 


۲–۲–۲-۳)     DSR

در این نوع، گره‌های موبایل بایستی حافظه‌هایی موقت برای مسیرهایی که از وجود آنها مطلع هستند فراهم کنند. دو فاز اصلی برای این پروتکل در نظر گرفته شده‌است:کشف مسیر و بروز رسانی مسیر. فاز کشف مسیر از route request/reply packet‌ها و فاز بروز رسانی مسیر از تصدیق‌ها و اشتباهای لینکی استفاده می‌کند.


۳-۲–۲–۳)    TORA

بر اساس الگوریتم مسیریابی توزیع شده بنا شده و برای شبکه‌های موبایل بسیار پویا طراحی شده‌است. این الگوریتم برای هر جفت از گره‌ها چندین مسیر تعیین می‌کند و نیازمند کلاک سنکرون می‌باشد. سه عمل اصلی این پروتکل عبارتند از: ایجاد مسیر. بروز رسانی مسیر و از بین بردن مسیر.


 ۴-۲–۲-۳)  AODV

بر مبنای الگوریتم DSDV بنا شده با این تفاوت که به دلیل مسیریابی تنها در زمان نیاز میزان انتشار را کاهش می‌دهد. الگوریتم کشف مسیر تنها زمانی آغاز به کار می‌کند که مسیری بین دو گره وجود نداشته باشد.


۵-۲-۲-۳)   RDMAR

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

 

 

 

۳-۳)  روش‌های مسیریابی در شبکه‌هایحسگر

در مسیریابی در شبکه‌های ادهاک نوع حسگر سخت افزار محدودیت‌هایی را بر شبکه اعمال می‌کند که باید در انتخاب روش مسیریابی مد نظر قرار بگیرند ازجمله اینکه منبع تغذیه در گره‌ها محدود می‌باشد و در عمل، امکان تعویض یا شارژ مجدد آن مقدور نیست؛ لذا روش مسیریابی پیشنهادی در این شبکه‌ها بایستی از انرژی موجود به بهترین نحو ممکن استفاده کند یعنی باید مطلع از منابع گره باشد و اگر گره منابع کافی نداشت بسته را به آن برای ارسل به مقصد نفرستد.

 

۱-۳-۳)  روش سیل آسا

در این روش یک گره جهت پراکندن قسمتی از داده‌ها در طول شبکه، یک نسخه از داده مورد نظر را به هر یک از همسایگان خود ارسال می‌کند. هر وقت یک گره، داده جدیدی دریافت کرد، از آن نسخه برداری می‌کند و داده را به همسایه‌هایش (به جز گرهی که داده را از آن دریافت کرده‌است) ارسال می‌کند. الگوریتم زمانی همگرا می‌شود یا پایان می‌یابد که تمامی گره‌ها یک نسخه از داده را دریافت کنند. زمانی که طول می‌کشد تا دسته‌ای از گره‌ها مقداری از داده‌ها را دریافت و سپس ارسال کنند، یک دور نامیده می‌شود. الگوریتم سیل آسا در زمان (O(d دور، همگرا می‌شود که d قطر شبکه‌است چون برای یک قطعه داده d دور طول می‌کشد تا از یک انتهای شبکه به انتهای دیگر حرکت کند.

 

شکل ۱۳: مفهوم تکنیک سیل آسا را در شبکه های اطلاعاتی ـ ارتباطاتی

سه مورد از نقاط ضعف روش ارسال ساده جهت استفاده از آن در شبکه‌های حسگر در زیر آورده شده‌است :


انفجار : در روش سنتی سیل آسا، یک گره همیشه داده‌ها را به همسایگانش، بدون در نظر گرفتن اینکه آیا آن همسایه، داده را قبلا دریافت کرده یا خیر، ارسال می‌کند. این عمل باعث بوجود آمدن مشکل انفجار می‌شود.

 

شکل ۱۳: مسئله انفجار در پروتکل های سیل آسا


همپوشانی: حسگرها معمولا نواحی جغرافیایی مشترکی را پوشش می‌دهند و گره‌ها معمولا قطعه داده‌هایی از حسگرها را دریافت می‌کنند که با هم هم پوشانی دارند.

شکل ۱۴: مسئله هم پوشانی در پروتکل سیل آسا

عدماطلاع از منابع: در روش سیل آسا، گره‌ها بر اساس میزان انرژی موجودی خود در یک زمان، فعالیت‌های خود را تغییر نمی‌دهند در صورتی که یک شبکه از حسگرهای خاص منظوره، می‌تواند از منابع موجود خود آگاهی داشته باشد و ارتباطات و محاسبات خود را با شرایط منابع انرژی خود مطابقت دهد.

 

۲-۳-۳)  روش شایعه پراکنی

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

 

۳-۳-۳)  روش اسپین

روش SPIN خانواده‌ای از پروتکل‌های وقفی است که می‌توانند داده‌ها را به صورت موثری بین حسگرها در یک شبکه حسگر با منابع انرژی محدود، پراکنده کنند. همچنین گره‌های SPIN می‌توانند تصمیم گیری جهت انجام ارتباطات خود را هم بر اساس اطلاعات مربوط به برنامه کاربردی و هم بر اساس اطلاعات مربوط به منابع موجود خود به انجام برسانند. این کار باعث می‌شود که حسگرها بتوانند داده‌ها را با وجود منابع محدود خود، به صورت کارآمدی پراکنده کنند. گره‌ها در SPIN برای ارتباط با یکدیگر از سه نوع پیغام استفاده می‌کنند:


 ▪ – ADV    برای تبلیغ داده‌های جدید استفاده می‌شود. وقتی یک گره SPIN، داده‌هایی برای به اشتراک گذاشتن در اختیار دارد، این امر را می‌تواند با ارسال شبه -داده مربوطه تبلیغ کند.
▪ – REQ   جهت درخواست اطلاعات استفاده می‌شود. یک گره SPIN می‌تواند هنگامی که می‌خواهد داده حقیقی را دریافت کند از این پیغام استفاده کند.
▪ – DATA  شامل پیغام‌های داده‌ای است. پیغام‌های DATA محتوی داده حقیقی جمع آوری شده توسط حسگرها هستند.

 

شکل ۱۵: عملیات پروتکل پایه اسپین

ساده ترین نسخه ی  SPIN: SPIN – PP ، است که برای شبکه های ارتباطی نقطه به نقطه طراحی شده است.  اجرای مذاکره در SPIN – PP سه مرحله دارد که در شکل ۱۶ نشان داده شده است.

 

 

SPIN – PP شکل ۱۶:

 

در مرحله (۱) نود A یعنی گره حاوی داده با بسته ی ADV را می فرستد.

 در مرحله (۲) گره B ، درخواست خود را برای گرفتن داده از گره A با فرستادن بسته ی REQ به آن اعلام می دارد.

در مرحله (۳) در پاسخ به REQ ، Data را می فرستد.  SPIN – PP از مذاکره برای چیره شدن بر مشاکل همپوشانی و ترافیک انفجاری استفاده می کند.

نتایج مربوط به یک پژوهش نشان می دهد که پروتکل SPIN – 1 ؛ مصرف انرژی را با ضریب 3.5 نسبت به روش سیل آسا کاهش می دهد. این پروتکل همچنین نرخ انتقال داده را تا حد بهینه ی بحث شده در تئوری، بالا می برد.

 پروتکل توسعه یافته ی SPIN با نام SPIN – EC ؛ مکانیزم آگاهی از سطح انرژی را نیز به مذاکره اضافه می کند.

در این پروتکل ، یک گره تنها در صورتی که سطح انرژی از یک حد خاص پایین نیامده باشد، مراحل مربوط به مذاکره را به صورت کامل پیاده سازی می کند. به طور مثال اگر گرهی بسته ی ADV را دریافت کند؛ اگر تشخیص دهد که سطح انرژی کافی برای ارسال REQ را ندارد ، آن را ارسال نمی کند ؛ این پروتکل نسبت انتشار را به 60% بیشتر از تکنیک سیل آسا می رساند.

 

SPIN – EC نیز برای شبکه های point – point طراحی شده است. سومین دسته از این خانواده، SPIN – BC است که برای شبکه های پخشی طراحی شده است. در این شبکه ها گره های شبکه یک کانال را برای ارتباطات خود به اشتراک می گذارند و بسته ی ارسالی به همه ی گره ها می رسد. این پروتکل از مزیت کانال پخشی در ارسال بهره گرفته و دیگر گره ها نیازی نیست که فوراً در جواب ADV ، بسته ی REQ را بفرستند، بلکه گره مدت زمانی خاص صبر کرده و کانال ارتباطاتی را بررسی می کند. اگر گرهی در حین ارسال REQ ؛ در هنگام بررسی کانال متوجه پیغام REQ دیگری شود ، ارسال REQ خود را قطع کرده و سبب حذف تکرار پیغام REQ برای یک بسته ADV در شبکه می شود.

و گره مبدأ در صورت دریافت REQ ، بسته Data را فقط یک بار ارسال می دارد حتی اگر چندین پیغام REQ را دریافت دارد. عملیات فوق در شکل۱۷ به تصویر کشیده شده است.

در شبکه های پخشی ؛ پروتکل SPIN – BC ؛ توانایی کاهش مصرف بی رویه ی انرژی را با حذف ارسال تکراری بسته های REQ و Data را دارا می باشد.

 

آخرین پروتکل از این خانواده ؛ SPIN – RL است ؛ که توانایی های  SPIN – BC را با بالا بردن قابلیت اعتماد و چیره شدن بر خطاهای انتقال داده در یک کانال پر ترافیک بهبود می بخشد.

قابلیت اعتماد بالا در پروتکل فوق از طریق پخش متناوب ADV و REQ بدست می آید.

 

SPIN – BC شکل ۱۷: عملیات پایه در پروتکل

 

در خانواده پروتکل های SPIN ؛ عیوب اصلی تکنیک های سیل آسا و gossiping را بر طرف می کند. نتایج شبیه سازی ها نشان می دهد که بسیار کارآتر می باشد. در ضمن شواهد گویای این است که نرخ انتقال اطلاعات در SPIN بیشتر یا مساوی با سیل آسا و gossiping است. SPIN ؛ موارد فوق را با محلی کردن تغییرات توپولوژی و حذف انتشار تکراری اطلاعات از طریق مفهوم مذاکره به دست می آورد.

با این حال ممکن است که در سر راه گره های میانی؛ پیغام ADV را درست منتشر نکنند. این عیب مانع استفاده از SPIN در برنامه های کاربردی از قبیل کنترل کردن کشف نفوذ به داخل شبکه و حفاظت از نواحی بحرانی.

 

 ۴-۳-۳)   خوشه سازی سلسله مراتبی کم مصرف از نظر انرژی : (LEACH)

(LEACH) یک الگوریتم مسیریابی طراحی شده برای جمع آوری و ارسال اطلاعات به چاهک اطلاعاتی است که دارای اهداف فوق است:

(۱) افزایش طول عمر شبکه (۲) کاهش انرژی مصرفی توسط هر گره سنسور در شبکه (۳) استفاده از تجمیع اطلاعات برای کاهش تعداد پیغام های ارتباطی.

 

(LEACH) ؛ روش سلسله مراتبی را برای سازماندهی کردن شبکه به صورت مجموعه ای از خوشه ها به کار می گیرد. هر خوشه توسط سر خوشه اش مدیریت می شود. سر خوشه چندین وظیفه دارد:

اولین وظیفه جمع آوری اطلاعات از اعضای خوشه است. بعد از جمع آوری اطلاعات سر خوشه؛ دست به عمل تجمیع اطلاعات می زند. دومین وظیفه ارسال اطلاعات تجمیعی مستقیماً به سمت ایستگاه پایه است. مدل استفاده شده در (LEACH) در شکل ۱۸ نشان داده شده است. سومین وظیفه ساخت برنامه ی زمانبندی مبتنی بر TDMA می باشد که به موجب آن هر گره در خوشه منتسب می شود به یک بازه ی زمانی که در آن می تواند ارسال را انجام دهد.

 

 

LEACH شکل ۱۸: مدل شبکه

 

 

 

LEACH شکل ۱۹: فاز های

 

عنصر سر خوشه برنامه ی زمانبندی را از طریق خاصیت پخشی به تمام اعضای خوشه اعلام می دارد. LEACH برای کاهش احتمال تصادم در میان سنسورها در داخل و خارج خوشه از سوچینگ کد بر مبنای دستیابی چندگانه استفاده می کند. اعمال اصلی LEACH در دو فاز مجزا دسته بندی می شوند که در شکل ۱۹ نشان داده شده است؛ اولین فاز یعنی فاز برپاسازی؛ شامل دو مرحله است، خوشه سازی و تعیین سر خوشه. دومین فاز یعنی steady – state ؛ متمرکز بر جمع آوری و تجمیع و انتقال داده به ایستگاه پایه است. فاز اول نسبت به فاز دوم سر بار کمتری را بر پروتکل تحمیل می کند. در فاز برپاسازی انتخاب سر خوشه به صورت تناوبی می باشد و به موجب آن انرژی مصرف بین گره های شبکه توزیع می شود. برای انتخاب سر خوشه به صورت متناوب، برای هر گره یک عدد تصادفی بین صفر و یک تولید می شود و با آستانه سر خوشه مقایسه می شود.

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

 

 

 

  

T(n)  : آستانه  ـ  P : احتمال انتخاب هر گره در هر دوره ـ G : مجموعه ای از گره های انتخاب نشده r : شماره ی دور فعلی ( از 1 شروع می شود. )

مدیریت هر خوشه به صورت محلی انجام می شود و نیازی به آگاهی از شبکه ی عمومی نیست. تجمیع اطلاعات توسط هر خوشه انرژی را ذخیره می کند و گره ها به طور مستقیم نیازی نیست که داده ها را به سمت چاهک اطلاعاتی ارسال کنند.

در پایان فرآیند انتخاب عضو سر خوشه هر گرهی که به عنوان سر خوشه انتخاب می شود، نقش جدیدش را به سایرگره های شبکه اعلام می کند با اعلان این خبر سایر گره ها نیز به خوشه وصل می شوند. در هر خوشه، عنصر سر خوشه زمانبندی مبتنی بر TDMA ایجاد و در خوشه پخش می کند.

که حاوی بازه های زمانی اختصاص داده شده برای هر عضو خوشه می باشد. عنصر سر خوشه از تکنیک CDMA نیز بهره می گیرد. با تکمیل فاز برپاسازی فاز steady – state شروع می شود در این فاز گره ها در بازه های زمانی اختصاص داده شده ، اطلاعات را جمع آوری و به گره سر خوشه ارسال می کنند. در ضمن جمع آوری اطلاعات به صورت متناوب می باشد. نتایج اخیر شبیه سازیها حاکی از این است روش LEACH انرژی مصرفی قابل ملاحظه ای ر ذخیره می کند. در ضمن طول دوره ی steady – state در کاهش انرژی مصرفی مؤثر است. کوتاه بودن دوره steady – state سربار پروتکل را افزایش می دهد در حالیکه طولانی بودن انرژی مصرفی را افزایش می دهد.

 

 

 

 

۵-۳-۳)  (PEGASIS) : Power Efficient Gathering in Sensor information Systems

PEGASIS  و نسخه ی توسعه یافته اش یعنی PEGASIS سلسله مراتبی ، جزو خانواده 10 از پروتکل های جمع آوری داده و مسیریاب در WSN هستند.

اصلی PEGASIS دو چندان است. اوّل ، اهداف پروتکل در بالا بردن طول عمر شبکه با دستیابی به یک سطح از انرژی کافی و یکنواخت در طول شبکه. دوّم، کوشش در جهت کاهش تأخیر بسته ها در سر راهشان به چاهک اطلاعاتی.

در مدل فوق، گره ها اطلاعاتشان در مورد سایر گره ها به دانستن وضعیت سنسورها در کل شبکه می رسد. به علاوه آنها توانایی پوشش یک مجموعه ی دلخواه را دارند. گره ها ممکن است که از فرستنده ـ گیرنده های رادیویی دارای CDMA استفاده کنند. وظیفه ی گره ها جمع آوری و ارسال داده به چاهک اطلاعاتی است. هدف توسعه یک ساختار مسیریابی و یک طرح تجمیع برای کاهش انرژی مصرفی و برقراری تعادل در انرژی مصرفی در طول گره های سنسور. بر خلاف سایر پروتکل ها که ساختار درختی یا سلسله مراتبی مبتنی بر خوشه را دارا هستند از ساختار زنجیره ای استفاده می کنند.

ساختار زنجیره ای با دورترین گره نسبت به چاهک داده ای شروع می شود. گره های شبکه به ترتیب همسایه به همسایه به طرح زنجیره ، اضافه می شوند برای تعیین نزدیکترین همسایه، هر گره از یک سیگنال برای اندازه گیری فاصله از همسایه هایش بهره می برد. گره ها قدرت این سیگنال را طوری تنظیم می کنند که فقط نزدیک ترین گره یا گره همسایه می تواند آن را شنود کند. یک گره در طول زنجیره به عنوان سر زنجیره انتخاب می شود. وظیفه ی زنجیره انتقال تجمیع اطلاعاتی به ایستگاه پایه می باشد. موقعیت سر زنجیره هر بار یک واحد شیفت می یابد، که باعث برقراری تعادل در مصرف انرژی گره های شبکه می شود.

تجمیع اطلاعات در طرح PEGASIS در طول زنجیره حاصل می شود. در ساده ترین شکل؛ فرآیند تجمیع می تواند به ترتیب ذیل باشد: اول، عنصر سر زنجیره یک token را به سمت آخرین گره در منتهی الیه سمت راست زنجیره روانه می کند. هرگره با دریافت token داده هایش را به سمت سر زنجیره روانه می کنند. این کار در دو سمت راست و چپ زنجیره به کار برده می شود و سپس اطلاعات جمع شده از هر دو طرف زنجیره به چاهک اطلاعاتی ارسال می شود. یک روش برای کاهش تأخیر بالقوه ی ارسال داده های تجمیعی به چاهک اطلاعاتی استفاده از تجمیع موازی در طول زنجیره می باشد. بالاترین درجه ی توازی در صورتی برقرار است که گره های سنسور مجهز به فرستنده ـ گیرنده های دارای CDMA باشند.

 

 

شکل ۲۰: رویه تجمع و جمع آوری داده ها بر مبنای زنجیره

مثالی از روش زنجیره ای در شکل ۲۰به تصویر کشیده شده است، در این مثال، فرض شده است که گره ها اطلاعاتشان در مورد کل شبکه می باشد. . به علاوه گره ها به نوبت و توسط فرمول iModN برای انتقال به ایستگاه پایه انتخاب می شوند.N) ،تعداد کل گره ها _ i شماره ی دوره ی جاری است)

با توجه به فرمول فوق در مثال شکل ۲۰ گره ۳ ، در موقعیت ۳ از زنجیره رهبر دور سوم یا سر زنجیره در دور سوم است. همه گره ها در هر موقعیتی بایستی داده هایشان را به سمت همسایه ی سمت راستی به صورت جفت به جفت ارسال کنند در مرحله ی بعد گره ۳ دوباره در موقعیت فرد باقی می ماند و روند انتقال به همسایه ی سمت راستی دوباره تکرار می شود در مرحله ی سوم گره ۳ در موقعیت زوج اطلاعات به دست آمده از گره ۷ را با داده های خودش تجمیع کرده و به سمت ایستگاه پایه روانه می دارد. روش دودویی مبتنی بر زنجیره ی انرژی مصرفی را به صورت قابل ملاحظه ای کاهش می دهد و گره ها ایده ی توازی را به صورت کامل به اجرا می گذارند . به علاوه از آنجایی که ساختار سلسله مراتبی همانند ساختار درختی متعادل است طرح فوق تضمین می کند که بعد از log N2 مرحله اطلاعات تجمیعی به عنصر سر زنجیره برسد این ایده به صورت متناوب برای بالا بردن درجه توازی در  PEGASIS استفاده می شود. طرح ترتیبی و طرح موازی مبتنی بر CDMA دو نقطه ی انتهایی طیف طراحی را تشکیل می دهد. طرح سوم که نیاز نیست که در آن فرستنده ، گیرنده های گره ها مجهز به CDMA باشند تعادلی را میان ویژگی های دو طرح فوق بر قرارکرده و از مقداری توازی نیز برخوردار است. ایده ی اصلی این طرح محدود کردن انتقال همزمان به گره هایی است که مجزای فضایی یا فاصله ای باشند. بر پایه ی این محدودیت PEGASIS سلسله مراتبی، یک سلسله سه سطحی که در آن گره های شبکه در سه گروه دسته بندی می شوند تقسیم می شود. داده ها به صورت همزمان داخل هر گروه تجمیع پیدا کرده و مابین گروهها رد و بدل می شود تا جایی که سرانجام به عنصر سرزنجیره و از آنجا به چاهک اطلاعاتی برسد انتقال همزمان بایستی به دقت زمان بندی شود تا تداخلی پیش نیاید. نتایج اخیر شبیه سازی ها حاکی از این است که PEGASIS سلسله مراتبی LEACH را به طور قابل ملاحظه ای بهبود بخشیده است و نتایج PEGASIS معمولی را با ضریب 60 بهبود بخشید.

 

مسیریابی تک منظوره ی چند مسیر ۶-۳-۳) 

بررسی: پروتکل های مسیریابی تک منظوره بیشتر در باره ی ساختار مسیر دارای انرژی- بازدهی بین ارسال و دریافت بحث کرده اند و فضای میزان به یک لینک را نیز در نظر دارند. این مقادیر دارای بالانس هستند و انرژی را برای ارتباط در امتداد با این لینک بر ضد ظرفیت باتری گره های شامل شده، لازم دارند.

بکارگیری مسیریابی چند میلای با شبکه های بی سیم، یک موضوع بسیار جالب توجه یاست که بارها تحت مطالعه قرار گرفته است، برخی از این منابع و مقالات در باره WSN هستند ولی برخی از نمودارهای مسیریابی شاید آنرا به طور کلی در برنگرفته باشند.

 

 

 

 

شکل ۲۱: جا به جا کردن مسیرها در اطراف یک مسیر اصلی

مسیریابی اختصاص ردیفی یا SAR از قانون انگشت شست بهره می جوید که مسیرهای K به K برابر اورهد بیشتر از پروتکل مسیریابی تک نیاز دارد. . برای تقلیل اورهد چند مسیری کاهش یافته با تمرکز بر نیافته های بخش از شبکه می باشد و از اینرو و تنها به مسیرهای نیاز است که از گره های مجاور در اولین منابع باتری استفاده کند. SAR یک نوع الگوریتمی است که این هدف با ساختار درختی از گره مجار سینک در انتها، خاتمه می پذیرد و بیشتر گره ها بخشی از طیف ساختاری درختی خواهند بود.

شکل ۲۱ این دو مفهوم مسیر را نشان می هد، این روند تقویت مسیر فوروارد شده است که برای گیاه مجاور در نظر گرفته شده است و بر روی مسیر اولیه قرار می گیرد. برای مسیرهای چند تایی، هرگره بر روی مسیر اولیه قرار می گیرد. انتخاب تصادفی یکی از مسیرهای چندتایی نیز از مسیرهایی استفاده می کند که انرژی تمرکزی نسبت به انرژی بهینه شده دارد. یک دلیل برای انجام چنین کاری، این است تا لگاریتم کل گره ها در جهت استفاده ی ظرفیت باتری در شبکه بهتر مورد استفاده قرار گیرد. حالا فرض کنید که V دارای گره های V1 تا Vn باشد و مقدار C1,...,Cn باشد. توجه کنید که n برابر با  به عنوان مقدار اصلی می باشد و در فوروارد کردن پاکت ورودی به گره مجاور i احتمالاً  خواهد بود.

در نظر گرفتن کل مقادیر با حداقل مقادیر انرژی به همراه برنامه ریزی یکپارچه و کنترل نیرو جهت بدست آوردن راه حل های بهینه شده و نتیجه مشکل بهینه سازی شده در به حداقل رسانیدن متوسط مصرف نیرو بر مبنای نیازهای ترافیک برای کل تکنیک ها بکار برده می شود. مسیریابی و کیفیت لینک نیز در لینکهای لایه های زیرین از اهمیت مهمی برخوردار است، و پروتکل های روتینک در حالت تئوریکی- گراف تعبیه می شوند و با استفاده از پروتکل های مبتنی بر سرریزی برروی لینکهای می توان جداول روتینک را تعبه کرد و گره ها را در مجاورت باگره های بعدی در نظر گرفت و بعد از این پروسه می توان به روتینک و گارانتی دوره عمر شبکه پرداخت ئو عوامل موثر در این دوره زمانی عمر شبکه را باید بررسی کنیم.

و در شبکه های WSN، مشکل روتینک خاص، فقط به ردیفی مربوط می شود که به عنوان یک مسیر تک حالت در نظر گرفته شده است. با توجه به دینامیک شبکه، چنین ردیفی را می توان در مجاورت با اطلاعات توپولوژیکی برای اولین ردیف در نظر گرفتن برای ردیفهایی خارج از این واسطه ی گره، می توان به اصطلاح گره های ارتباطی را شامل کرد. این گره ها توسط گره هایی در هر  ردیف تعیین و شناسایی کرد.

 

۷-۳-۳)  انتشار و روتینک چند منظوره

پروتکل های تشریح شده در بخشهای قبلی  سعی بر این داشتند تا متوسط بازدهی را برای انتقال اطلاعات از یک گره به گره دیگر را انجام دهندو در انجام چنین کاری با برخی از آنها باید اطلاعات را جمع آوری کند و به کل گره ها در شبکه ارسال کند.

در واقع انتشار می تواند یک عملیات معمول در کاربردهای شبکه های بی سیم تلقی شود. مشابه به همین، در صورت نیاز برای توزیع و انتقال اصطلاعات، زیر مجموعه ی کل گره ها در شبکه باید انجام بشود، که آنرا انتشار چند منظوره می گوییم.

 

 

۸-۳-۳)  انتشار مستقیم

انتشار مستقیم یک پروتکل مسیریابی مبتنی بر داده در WSN می باشد. هدف اصلی این پروتکل ذخیره انرژی به موجب بالا بردن طول عمر شبکه می باشد. برای دستیابی به این هدف انتشار مستقیم از ارتباطات بین گره ها را به صورت محلی بین گره های همسایه در می آورد.

با استفاده از این روش، انتشار مستقیم می تواند زیر مجموعه ای از مسیرهای بهینه را کشف کند. این ویژگی منحصر بفرد همراه با توانایی تجمع اطلاعات منجر به کاهش زیاد انرژی مصرفی می شود.

عناصر اصلی این پروتکل interest ، بخش داده ، gradient ها و عنصر تقویت یک interest می تواند به عنوان یک پرس و جو در نظر گرفته شود شکل ۲۲ مثالی را از یک interest از نوع hummingbirds با استفاده از یک مجموع از جفت های مقدار ـ صفت نشان می دهد. چاهک اطلاعاتی یک پیغام interest را به هر همسایه ارسال می کند. این پیغام سبکه حسگر پخش می شود. به عنوان یک interest برای داده های نامگذاری شده. همه ی گره های حسگر یک Interest cache دارند.

هر مدخل این cache مربوط به یک interest متفاوت است و شامل چندین فیلد است. از جمله فیلد مهر زمان ، چندین فیلد gradient برای هر همسایه و یک فیلد طول. فیلد مهر زمان شامل مهر زمان آخرین interest دریافت شده است. هر فیلد gradient  هم شامل جهت و نرخ داده ارسالی است.

 

شکل ۲۲: شرح  Interest با استفاده از جفت های مقدار و صفت

مقدار نرخ داده از طریق صفت  intervac بدست می آید. فیلد طول عمر تقریبی  interestرا نشان می دهد و از طریق فیلد مهر زمان بدست می آید. شکل ۲۳مثالی از روش فوق است.

 

 

interest شکل ۲۳: پخش

یک گره حسگر هنگامیکه یک رویداد را تشخیص می دهد در interest cache بدنبال دارد مطابق با آن می گردد. اگر مدخلی پیدا شد آن گره ابتدا بالاترین نرخ رویداد درخواستن در میان gradient ها را محاسبه کرده و زیر حسن را وادار به نمونه برداری از رویداد ها در بالاترین نرخ می کند. آن گره سپس توصیفی از آن رویداد را به هر همسایه می فرستد، اگر همسایه ای که آن را دریافت می کند دارایه منطبق با آن پیدا نکند پیغام اطلاعاتی را بدون هیچگونه عمل اضافی از بین می برد. ولی اگر دارایه ای پیدا کرد پیغام داده ای را به Data cache اضافه کرده و سپس به گره های همسایه می فرستد. با دریافت یک interest گره فوق اگر دارایه منطبق با آن پیدا نکرد ، دارایه ای جدا برای آن می سازد. ولی اگر دارایه ای پیدا کرد آن دارایه را با اطلاعات جدید اصلاح می کند. شکل ۲۴ گویای آن است.

 

شکل ۲۴: راه اندازی gradient اولیه

 

 بخش مبتنی بر بازدهی انرژی

ورود: در اولین نگاه، این نوع مسیریابی مبتنی بر بازدهی انرژی شاید ساده ترین موضوع باشد: گراف شبکه را در نظر بگیرید و به هر لینک تعداد مقدار اضافه کنید که مصرف انرژی را در امتداد با این لینک اختصاص میدهد. و الگوریتمی را بردارید که مسیرهای حداقل مقدار را در یک گراف محاسبه می کند. در واقع، جوانب مختلف از میزان انرژی یا بازدهی نیرو وجود دارد که می تواند متن یا درون مایه ی مسیریابی را متقاعد کند. در شکل ۲۵، سناریوئی برای ارتباط بین گره های H,A میزان انرژی لینک را در بر می گیرد که ظرفیت بر حسب گره در دسترس می باشد.

به حداقل رسانیدن انرژی بر حسب پاکت یا بر حسب بیت نیز رایج ترین فرمولاسیون است تا حداکثر انرژی مورد نیاز برای انتقال یک پاکت بر روی مسیر چند گانه hop از منبع به مقصد، انجام شود. هدف از این، بر حداقل رسانیدن مجموع کلی انرژی است که از طریق انتخاب مسیر مناسب انجام می شود. به حداقل رسانیدن شمارش hop این هدف را به انجام نخواهد رسانید. بلکه نیروی انتقال بیشتر برای تحت پوشش قرار دادن فواصل زیادتر، انجام می شود. که البته می توان منجر به مصرف انرژی بر روی گره های مختلف بود. در مصال شکل۲۵، مسیر حداقل انرزی A-B-E-H  است که به 3 واحد انرژی نیاز دارد. مسیر شمارش حداقل hop نیز A-D-H خواهد بود که به ۶ واحد انرژی نیاز دارد.

به حداکثر رسانیدن دوره ی زمانی و یا عمر شکبه نیز در وظایف اصلی WSN تنها به انتقال داده ها متکی نیست، بلکه مشاهده و کنترل است. بنابراین، انتقال انرژی- بازدهی در بهترین روند ممکن نسبت به انتهای مقصد است که باید هدف بهینه سازی را مدنظر داشته باشد: شبکه باید توانایی انجام وظیفه اش را تا حد ممکن داشته باشد.

چندین نکته در این باره وجود دارد که عبارتند از:

- زمان تا جائیکه اولین گره با شکست مواجه شود.

- زمان تا جائیکه یک نقطه وجود داشته باشد و تحت پوشش شبکه قرار نداشته باشد

(عدم پوشش)

- زمان تا جائیکه پارتشین شبکه و یا دو گره با یکدیگر نتوانند ارتباط برقرار کنند.

 

وقتی که این جوانب مطرح شوند، به راه حل های مختلف نیاز خواهد داشت و برای پارتیشن شبکه، برای مثال، گره ها در حداقل گراف از بین برده می شود. و باید مصرف انرژی برابر باشد، تا مطمئن شویم که زمان نسبت به پارتیشن شبکه توسط تکمیل NP  گزارش شده باشد. اعمال مسیریابی در تنش با انرژی باتری به وقتی که دوره ی عمر شبکه یک هدف سودمند باشد، بدیهی نیست که چه میزان می توان به این هدف با استفاده از پارامترهای شبکه اصلی، نایل شد. منبع انرژی کامل در باتریهای گره، محدود سازی عوامل نسبت به دوره ی عصر شبکه است و نسبت به اطلاعات درباره ی وضعیت باتری در تصمیمات مسیریابی عکس العمل نشان خواهد داد. برخی از این احتمالات عبارتند از:

حداکثر ظرفیت باتری: که باید یک مسیر را انتخاب کنید که مجموع ظرفیت باتری بیشتر باشد و بدون اتخاد راه های فرعی اتخاذ شده باشد. به دنبال گره های واطه در شکل ۲۵ می توان مسیر A-B-E-G-H را که دارای مجموع ظرفیت ۶ واحد است را پیدا کرد و گره G در اصل لازم نیست. جنین راه های فرعی می توانند این نوع متریک را افزایش دهند- بنابراین، A-B-E-G-H باید ساقط شوند، چون دارای A-B-E-H می باشد که به عنوان زیر مجموعه ی ضعیف تلقی می شود. در نهایت مسیر A-C-F-H انتخاب می شود. در عوض مسیریابی MBCR به طور مستقیم در مجموعه ظرفیتهای باتری در امتداد به مسیر مطروحه قرار می گیرد و MBCR به دنبال اکراه گره نسبت به ترافیک مسیر میرود. این نوع اکراه باتری آن را که تخلیه می شود، افزایش می دهد یا برای مثال، مقدار مسیریابی را می توان اندازه گیری کرد و عملکردهای محیطی مقادیر زیادی را به گره های دارای ظرفیت باتری کم را اختصاص می دهد و این روند به طور اتوماتیک ترافیک را به دور از مسیرهای توأم با گره های در اطراف اجرای انرژی تغییر می دهد. در مثال شکل ۲۵، مسیر A-C-F-H دارای مقدار 25/1=4/1+1/1 است ولی مسیر A-D-H دارای 3/1 است. بنابراین، این مسیر انتخاب می شود و گره  C را از خارج شدن محافظت می کند. مسیریابی مقدار باتری حداکثر- حداقل (MMBCR) یک نمایه ای است که دارای هدف مشابهی به سایر مسیریابی هاست و از گره های دارای انرژی کمتر محافظت می کند. در عوض، کاربرد مجموع سطوح باتری، سطح محیطی کلی گره ها در تعداد با یک مسیر به عنوان مقدار برای این مسیر بکار برده می شود. بنابراین، این مسیر با کوچکترین مقدار بکار برده می شود. در این مورد، مسیر بهینه شده انتخاب می شود و از طریق به حداقل رسانیدن حداثر مقدار صورت می گیرد.

در مثال شکل ، مسیر A-D-H انتخاب خواهد شد.

 

شکل ۲۵: نمونه مسیرهای مختلف برای ارتباط بین گره های A و B

مسیریابی ظرفیت باتری حداقل- حداکثر شراطی یا (CMMBCR) گزینه ی دیگری است تا شرطی سازی بر روی نیروی باتری انجام می شود. اگر مسیر هایی در امتداد با کل گره ها دارای مسطح متجاوز از استانه ی مطورحه باشد، مسیری را انتخاب می کند که به کمترین انرژی بر حسب بیت نیاز دارد. اگر چنین مسیری وجود نداشته باشد، مسیر مطروحه را بر می دارد تا سطح باتری حداقل را به حداکثر برساند. از مسیریابی های دیگر می توان به MTPR اشاره کرد که چندین گره را به طور مستقیم به مقصدشان ارسال می کند و دارای واسطه ی تعاملی است که با یکدیگر در ارتباط اند. انتقال مطروحه به طور موفقیت آمیز صورت می گیرد، البته اگر SINR بیشتر از مقدار آستانه ی مطروحه باشد وهدف این است تا انتقال مقادیر نیروی برای هر انتقال دهنده پیدا  شود.

مقایسه عملکرد مستقیم بین این مفاهیم بسیار مشکل است، چون سعی بر تکمیل اهداف مختلف دارد. بعلاه، وقتی که این اهداف به آسانی فرمولاسیون می شوند. تحقیق بخشیدن آنها در پروتکل توزیع شده لازم نیست و تعادل در بین اورهد برای جمع آوری کردن اطلاعات مسیریابی با عملکرد هر انتخاب مسیریابی ها ضروری است.

 

 

 

۹-۳-۳)  پروتکل های ساختار درختی مبتنی بر هسته ی توزیع شده

پروتکل های ساختار درختی مبتنی بر هسته ی توزیع شده چالش در پروتکل های ساختار درختی مبتنی بر هسته در پیدا کردن گره هسته ای قرار دارد. زمانیکه این گره انتخاب شد،

پروتکل مربوطه با گره هسته ای به عنوان منبع عمل می کند. بررسی چنین پروتکل هایی و مقایسه عملکرد را می توان در منبع پیدا کرد. نمونه های بیشتر در منابع هستند. فرض کنید که سینکهای متعددی در شبکه وجود دارند که باید اطلاعات را در ساختار درختی مبتنی بر هسته توزیع کنند. ابتدا باید نقطه ی اولیه آنرا پیدا کرد. برای انجام این کار، هرسینک دارای پیامهائی است که وجود آنرا نشان می دهد و هر گره در شبکه این نوع تبلیغات را جمع آوری می کند و در امتداد با شناسه ی سینک قرار می دهد. در واقع شبکه های بی سیم دارای اختلاف در مصرف کلی نیرو بین دو منبع بر روی این درخت می باشند، بعلاوه، ساختاری برای هر ساختار درختی SBT مجموع نیروی این ساختار درختی را از منبع دلخواهی S را در 2H(|V|-1) را جمع آوری می کند. که (0)H تابع هارمونیک است.

 

۱۰-۳-۳)   پروتکل های مبتنی بر مش

برای فائق آمدن به چهارچوب میزان منابع و مسائل حجیم پروتکل های مربوطه، ساختاری با حالت قابلیت ارتباطی لازم است که منابع مخالف را به مقاصدشان مربتط سازد. اولین پروپوزال در این روند CAMP است و مش یک زیرگراف گراف اصلی باید کل منابع مقصد ها را در اختیار داشته باشدو حداقل یک مسیر را از هر منبع به مقصد دیگر اختصاص دهد. منابع مربوط به این پروتکل ها بیشتر دارای یک تاریخچه هستندکه 2/ (1+4) بار بزرگتر از پروتکل هایی قبلی است که 2 در رابطه گره است و برای گره هایی که در الگوی آن قرار دارند تعبیه شده است. بنابراین کاربرد این پروتکل ها باعث می شود تا TTPP را ایجاد کنیم.

آنتن های مستقیم برای انتشار می تواند ظرفیت بیشتری برای انقال شبکه داشته باشد، برای مثال، پروتکل های BIP/MIP دارای مزیت چنین آنتنی هایی هستند و برای انتقال پیام به گره های مجاور بکار برده می شوند. این روند باعث پیشرفتهای قابل ملاحظه ی در دوره عمر شبکه می شود. رابطه ای نسبت با کنترل توپولوژی نیز دارای اختلاف اساسی در ماهیت مبتنی بر منبع پروتکل های انتشار است، در صورتیکه پروتکل های کنترل- توپولوژی سعی دارند تا شبکه را در کل بهینه سازند.

راه حل های بهینه شده ای برای برنامه ریزی خطی نیز در شبکه ها دیده شده است و سه مشکل برنامه ریزی خطی برای بدست آوردن مشکل اننشار وجود دارد. راه حل مورد نظر برای این موضوع را می توان به عنوان چارچوبی برای الگوریتم های عملکردی در نظر گرفت. راه حل بهینه شده برای شبکه های درختی نیز در روش جمع آوری و توزیع اطلاعات در یک شبکه ی دارای ساختار درختی تعبیه شده است.

زمان مورد نظر برای تکمیل انتشار چند منظوره نیز برای مشکل برخی از روندها بسیار ضروری است. جایگزینی اطلاعات نیز در تقریبهای ساختار درختی توسط بیشتر محققان بررسی شده است.

 

۱۱-۳–۳)  مسیریابی جغرافیایی

پروتکل های روتینگ جغرافیائی دو کاربرد دارند:

۱- کاربردهایی برای تمامی منظور، مکانهای فیزیکی را باید در روند کار مطرح ساخت برای مثال، هر گره در هر منطقه ی مزبور می تواند یک نقطه ای را در بر گیرد.

۲- زمانیکه وضعیت یک منبع و مقصد به عنوان وضعیتهای گره های واسطه شناخته شده باشند، این اطلاعات را می توان برای کمک در پروسه ی روتینگ بکار برد. برای انجام چنین کاری، گروه مقصد باید از لحاظ جغرافیایی شناسایی شده باشد که ما آنرا سرویس مکان می گوییم. فرمت این روند در پروتکل های روتینگ ساده است که مکانهای فیزیکی اطلاعات دقیقی را به گروه های مجاور با فوروارد کردن یک پاکت به آنرا، انتقال می دهد

اولین جنبه ی مهم انتقال اطلاعات به گره های مورد دلخوه در یک منطقه مزبور است که ما آنرا انتشار و توزیع جغرافیایی می گوییم. اولین جنبه را روتینگ مبتنی بر وضعیت می گوییم که در تلفیق با سرویس نکات بکار برده می شود  اولین بار روتینگ کارتزین نام داشت. در شبکه های سنسور بی سیم، معمولاً جوانب انشار یا توزیع جغرافیایی بسیار مهم است. چنین این گره ها قابل مبادله هستند و توسط جوانب خارجی شناسایی می شوند. و در وضعیت خاص آنها، سرویس مکان معمولاً لازم نیست.

 

 

 

۱۲-۳-۳)  گره های سیار

همانطورکه قبلا بحث شد منابع مهمی از سیار بودن در WSN وجود دارد: سیار بودن گره های سنسور، سیار بودن سینکهای دیتا و سیار بودن مورد مشاهده شده. کل این سه نوع سیار بودن داری میزان بزرگ یا کوچک بودن می باشد که توسط مکانیسم های بحث شده به اجرا در می آید. بعلاوه کنترل این سیار بودن تمرکز اصلی تحقیق در شبکه می باشد.

 

۱-۱۲-۳-۳)  سینکهای سیار

اولین مورد با نیازهای خاص این است که سینکهای سیار  در شبکه سازی از یک منبع دیتا استفاده می کند که اطلاعات را نسبت به نزدیک ترین نقطه توزیع می کند. انتخاب دیگر بر مبنای ساختار درختی چند توزیعی تعبیه شده است. سینک سیار خودش دارای گره سنسور است و به عنوان پروکسی در این ساختار درختی عمل می کند. زمانی که این ساختار درختی ایجاد شده این سینک در اطراف پروکسی خود به گردش در می آید و پروکسی جدیدی را اختصاص می دهد در این مورد دو گزینه وجود دارد: سینک به طرف گره پروکسی قبلی حرکت می کند که در ساختار درختی زیاد به طول نمی انجامد. در این مورد پروکسی جدید به ساختار درختی ملحق می شود و مورد قبلی از این گره جدا می شود در دومین مورد پروکسی قدیمی هنوز قابل قبول است ولی ارتباط بین پروکسی قبلی و گره سنسور به سینک سیار در نزدیک ترین حالت قرار داد و پروکسی قدیمی از آن برای پربار کردن دیتا به سینک استفاده می کند. این دو مورد در شکل ۲۶ نشان داده شده است بالاخره اینکه طراحی SINA نیز این مشکل را دارد. و هدف این است تا مکان سینک سیار را با یک گره در شبکه آبپ دیت بکند که مسئولیت ردیف ها را به عهده دارند و این سینک سیال  به دور از این مکان حرکت می کند.

 

 

شکل ۲۶: تعدادی چاهک سیار که به یک درخت multicast وصل شده است

 

۲-۱۲-۳-۳)  کلکتورهای دیتای سیار

گاهی اوقات انتقال سینکهای دیتا مطلوب نمی باشد ولی ارتباط نیز شاید مفید واقع نشود و مفهوم شبکه های لن قابل اجرا باشد. یک MULE ابزار سیاری است که مجهز به پایانه های رادیویی است که می توان با گره های سنسور ارتباط برقرار کند و بین گره های سنسور به حرکت در می آورد و دیتای آنها را جمع آوری و بافر می کند نمونه هایی برای MULE ها را می توان در رباط ها مشاهده کرد. MULE یک واسته مستقل بین الگوی حرکت MULE ها است که می توان گره های سنسور را بررسی و ضریب جمع آوری دیتا را برآور کند. و فضای بافر در سنسور ها و MULE ها وسرعت ارتباط بین MULE و سنسور منجر به وقفه در ضریب تحویل اطلاعات در سینک اطلاعاتی می شود. محققان مدعی شده اند که چنین MULE ها دارای بازدهی انرژی بیشتری نسبت به سایر دستگاه های ارتباطی هستند و می توانند دوره عمر شبکه را بدون امپدینگ جمع آوری اطلاعات افزایش دهد.

 

۳-۱۲-۳-۳)  نواحی سیار

نواحی مقصد توزیع جغرافیایی حالت استاتیک تلقی شده است. برای برخی کاربردها مانند ردیابی موارد سیار این روند می تواند در تعیین یک منطقه مقصد که مقصدش تغییر می کند، موثر واقع بشود. برای چنین منطقه حرکتی یا سیار دیتا باید در زمان T به کل گره ها توسط منقطه مقصد در زمان T تحت پوشش قرار گیرد. این روش سرویس دهی را توزیع سیار می گویند. و این پروتکل می تواند دیتا را در زمان مناسب با گره ها تحویل دهد روش اصلی نیز انتقال اطلاعات به منطقه هدایت است که با حرکت منطقه مقصد شروع می شود.

 

۱۳-۳-۳)  روش انتشار هدایت شده

در این روش منابع و دریافت کننده‌ها از خصوصیات، برای مشخص کردن اطلاعات تولید شده یا موردنظر استفاده می‌کنند و هدف روش انتشار هدایت شده پیدا کردن یک مسیر کارآمد چندطرفه بین فرستنده و گیرنده هاست. در این روش هر وظیفه به صورت یک علاقه مندی منعکس می‌شود که هر علاقه مندی مجموعه‌ای است از زوج‌های خصوصیت-مقدار. برای انجام این وظیفه، علاقه مندی در ناحیه موردنظر منتشر می‌ شود. در این روش هر گره، گره‌ای را که اطلاعات از آن دریافت کرده به خاطر می‌سپارد و برای آن یک گرادیان تشکیل می‌دهد که هم مشخص کننده جهت جریان اطلاعات است و هم وضعیت درخواست را نشان می‌دهد (که فعال یا غیرفعال است یا نیاز به بروز شدن دارد). در صورتی که گره از روی گرادیان‌های قبلی یا اطلاعات جغرافیایی بتواند مسیر بعدی را پیش بینی کند تنها درخواست را به همسایه‌های مرتبط با درخواست ارسال می‌کند و در غیر این صورت، درخواست را به همه همسایه‌های مجاور ارسال می‌کند. وقتی یک علاقه مندی به گره‌ای رسید که داده‌های مرتبط با آن را در اختیار دارد، گره منبع، حسگرهای خود را فعال می‌کند تا اطلاعات موردنیز را جمع آوری کنند و اطلاعات را به صورت بسته‌های اطلاعاتی ارسال می‌کند. داده‌ها همچنین می‌توانند به صورت مدل خصوصیت-نام ارسال شوند. گرهی که داده‌ها را ارسال می‌کند به عنوان یک منبع شناخته می‌شود. داده هنگام ارسال به مقصد در گره‌های میانی ذخیره می‌شود که این عمل در اصل برای جلوگیری از ارسال داده‌های تکراری و جلوگیری از به وجودآمدن حلقه استفاده می‌شود. همچنین از این اطلاعات می‌توان برای پردازش اطلاعات درون شبکه و خلاصه سازی اطلاعات استفاده کرد. پیغام‌های اولیه ارسالی به عنوان داده‌های اکتشافی برچسب زده می‌شوند و به همه همسایه‌هایی که به گره دارای داده، گرادیان دارند ارسال می‌شوند یا می‌توانند از میان این همسایه‌ها، یکی یا تعدادی را برحسب اولویت جهت ارسال بسته‌های اطلاعات انتخاب کنند. (مثلا همسایه‌هایی که زودتر از بقیه پیغام را به این گره ارسال کرده‌اند) برای انجام این کار، یرنده یا سینک همسایه‌ای را جهت دریافت اطلاعات ترجیح می‌دهد تقویت می‌کند. اگر یکی از گره‌ها در این مسیر ترجیحی از کار بیفتد، گره‌های شبکه به طور موضعی مسیر از کار افتاده را بازیابی می‌کنند. در نهایت گیرنده ممکن است همسایه جاری خود را تقویت منفی کند در صورتی که مثلا همسایه دیگری اطلاعات بیشتری جمع آوری کند. پس از ارسال داده‌های اکتشافی اولیه، داده‌های بعدی تنها از طریق مسیرهای تقویت شده ارسال می‌شوند. منبع اطلاعات به صورت متناوب هر چند وقت یکبار داده‌های اکتشافی ارسال می‌کند تا گرادیان‌ها در صورت تغییرات پویای شبکه، بروز شوند.

 

 

 

 

سخن پایانی

به نظر می‌رسد که شبکه‌های WSN کلاس جدیدی از شبکه‌های مخابراتی را به ما معرفی کرده‌اند. این شبکه‌ها به ما این قدرت را می‌دهند که بفهمیم در یک محیط فیزیکی که حتی حضور انسانی ممکن نیست؛ چه می‌گذرد. این توانمندی مهم و منحصر به فرد با ترکیب قابلیت‌های حسگرهای الکترونیکی و فناوری‌های پیشرفته شبکه‌های مخابراتی حاصل شده است. البته پیشرفت‌های بیشتر در این حوزه منوط به انجام تحقیقات بیشتر مخصوصاً در حوزه استانداردسازی و مباحث اقتصادی است.

هرچند امروزه تولید انبوه و ارزان‌قیمت تراشه‌های الکترونیکی ممکن شده است؛ اما در حال حاضر برای تولید و ایجاد شبکه‌ای کم هزینه برای کاربرد‌های صنعتی وکشاورزی و نیز توسعه بازار تجاری آن به تلاش‌های بیشتری نیاز است.

 

امنیت درشبکه های بی سیم WSNحسگر

 

 

 

۱-۲) مقدمه

شبکه‌های بی سیم دارای نیازمندی‌ها و مشکلات امنیتی ویژه‌ای هستند. این مشکلات ناشی از ماهیت و خواص شبکه‌های بی سیم است که در بررسی هر راه حل امنیتی باید به آنها توجه نمود:

الف: فقدان زیرساخت : در شبکه‌های بی سیم ساختارهای متمرکز و مجتمع مثل سرویس دهنده‌ها، مسیریابها و... لزوماً موجود نیستند (مثلاً در شبکه‌های ادهاک)، به همین خاطر راه حل‌های امنیتی آنها هم معمولاً غیر متمرکز، توزیع شده و مبتنی بر همکاری همه نودهای شبکه‌است.
ب: استفاده از لینک بی سیم: در شبکه بی سیم، خطوط دفاعی معمول در شبکه‌های سیمی (مثلاً فایروال به عنوان خط مقدم دفاع) وجود ندارد. نفوذگر از تمام جهت‌ها و بدون نیاز به دسترسی فیزیکی به لینک، می‌تواند هر نودی را هدف قرار دهد.
ج:چند پرشی بودن: در اغلب پروتکل‌های مسیریابی بی سیم، خود نودها نقش مسیریاب را ایفا می‌کنند (به خصوص در شبکه‌های ادهاک)، و بسته‌ها دارای چند hop مختلف هستند. طبیعتاً به هر نودی نمی‌توان اعتماد داشت آن هم برای وظیفه‌ای همچون مسیریابی!
د: خودمختاری نودها در تغییر مکان: نودهای سیار در شبکه بی سیم به دلیل تغییر محل به خصوص در شبکه‌های بزرگ به سختی قابل ردیابی هستند. از دیگر ویژگیهای طبیعی شبکه بی سیم که منبع مشکلات امنیتی آن است می‌توان به فقدان توپولوژی ثابت و محدودیت‌های منابعی مثل توان، پردازنده و حافظه اشاره کرد.

 

۲–۲) امنیت در شبکه‌های حسگر بیسیم

این شبکه‌ها به شدت در مقابل حملات آسیب پذیرند و امروزه مقاومت کردن در برابر حملات از چالش‌های توسعه این شبکه هاست. دلایل اصلی این مشکلات عبارتند از :

 

▪ کانال رادیویی اشتراکی انتقال داده
▪  محیط عملیاتی ناامن
▪  قدرت مرکزی ناکافی
▪  منابع محدود
▪  آسیب پذیر بودن از لحاظ فیزیکی
▪  کافی نبودن ارتباط نودهای میانی.

 

۳-۲) منشأ ضعف امنیتی در شبکه‌های بی‌سیم وخطرات معمول

ساختار این شبکه‌ها مبتنی بر استفاده از سیگنال‌های رادیویی‌ به جای سیم و کابل، استوار است. با استفاده از این سیگنال‌ها و در واقع بدون مرز ساختن پوشش ساختار شبکه، نفوذگران قادرند در صورت شکستن موانع امنیتی‌ نه‌چندان قدرتمند این شبکه‌ها، خود را به عنوان عضوی از این شبکه‌ها جازده و در صورت تحقق این امر، امکان دست‌یابی به اطلاعات حیاتی، حمله به سرویس‌دهنده‌گان سازمان و مجموعه، تخریب اطلاعات، ایجاد اختلال در ارتباطات گره‌های شبکه با یکدیگر، تولید داده‌های غیرواقعی و گمراه‌کننده، سوءاستفاده از پهنای باند مؤثر شبکه و دیگر فعالیت‌های مخرب وجود دارد. در مجموع، در تمامی دسته‌های شبکه‌های بی‌سیم، از دید امنیتی حقایقی مشترک صادق است :

▪ نفوذگران، با گذر از تدابیر امنیتی‌ موجود، می‌توانند به راحتی به منابع اطلاعاتی موجود بر روی سیستم‌های رایانه‌ای دست یابند.
▪ حمله‌های DOS به تجهیزات و سیستم‌های بی سیم بسیار متداول است.
▪  کامپیوترهای قابل حمل و جیبی، که امکان استفاده از شبکهٔ بی سیم را دارند، به راحتی قابل سرقت هستند. با سرقت چنین سخت افزارهایی، می‌توان اولین قدم برای نفوذ به شبکه را برداشت.
▪  یک نفوذگر می‌تواند از نقاط مشترک میان یک شبکهٔ بی‌سیم در یک سازمان و شبکهٔ سیمی آن (که در اغلب موارد شبکهٔ اصلی و حساس‌تری محسوب می‌گردد) استفاده کرده و با نفوذ به شبکهٔ بی‌سیم عملاً راهی برای دست یابی به منابع شبکه سیمی نیز بیابد.

 

 

۴-۲) سه روش امنیتی در شبکه‌های حسگر بیسیم

۱-۴-۲)WEP(Wired Equivalent Privacy ) 

در این روش از شنود کاربرهایی که در شبکه مجوز ندارند جلوگیری به عمل می‌آید که مناسب برای شبکه‌های کوچک بوده زیرا نیاز به تنظیمات دستی مربوطه در هر سرویس گیرنده می‌باشد. اساس رمز نگاری WEP بر مبنای الگوریتم RC۴ بوسیله RSA می‌باشد.

۲-۴-۲) SSID(Service Set Identifier )

شبکه‌های WLAN دارای چندین شبکه محلی می‌باشند که هر کدام آنها دارای یک شناسه یکتا می‌باشند این شناسه‌ها در چندین نقطه دسترسی قرار داده می‌شوند. هر کاربر برای دسترسی به شبکه مورد نظر بایستی تنظیمات شناسه SSID مربوطه را انجام دهد.

۳-۴-۲) MAC(Media Access Control ) 

لیستی از MAC آدرس‌های مورد استفاده در یک شبکه به نقطه دسترسی مربوطه وارد شده بنابراین تنها کامپیوترهای دارای این MAC آدرس‌ها اجازه دسترسی دارند به عبارتی وقتی یک کامپیوتر درخواستی را ارسال می‌کند MAC آدرس آن با لیست MAC آدرس مربوطه در نقطه دسترسی مقایسه شده و اجازه دسترسی یا عدم دسترسی آن مورد بررسی قرار می‌گیرد. این روش امنیتی مناسب برای شبکه‌های کوچک بوده زیرا در شبکه‌های بزرگ امکان ورود این آدرس‌ها به نقطه دسترسی بسیار مشکل می‌باشد. در کل می‌توان به کاستن از شعاع تحت پوشش سیگنال‌های شبکه کم کرد و اطلاعات را رمزنگاری کرد.

 

 

البته یک روش دیگری نیز وجود دارد که عبارت است از:

۴-۴-۲)   مسیر یابی پویا به عنوان یک رویکرد امنیتی

پژوهشهای اخیر دانشگاه Wroclaw نشان داد که حتی بدون انجام رمزنگاری های سنگین نیز می توان به سطحی قابل قبول از امنیت در شبکه های حسگر بیسیم رسید.
شبکه های حسگر بیسیم که داده های حساس را پردازش می کنند با ریسک دستکاری و سوءاستفاده از اطلاعات، خریب گره های حسگر و یا تعویض آنها مواجه اند. گسترش برنامه های کاربردی وسیع مبتنی بر شبکه های حسگر به حل این گونه مشکلات امنیتی و کاهش ریسک های مرتبط با کمی حفاظت فیزیکی و باز بودن کانال ارتباطی بی سیم وابسته است. اگرچه روش های امنیتی و رمزنگاری جدید راه های زیادی را برای حل این مشکلات ارائه نموده اند ولی تمرکز اکثر این راه‌حل‌ها بر تجهیزات با کارایی بالا بوده و برای کره‌های حسگر که از نظر محاسبات ضعیف اند و پهنای باند ارتباطی بیسیم کمی دارند مناسب نیستند.

ایده آن است که هر بسته‌ در شبکه‌ی حسگر به جای یک از دو مسیر ارسال ‌شود. در این صورت به جای یک نود میانی iام دارای دو نود میانی خواهیم بود که با Pi و Ri آنها را نشان می‌دهیم. در این صورت قوانین زیر برای محاسبه‌ی بسته‌ی M برقرار است. 
Pi+1 لازم است که دو بسته‌ی رمزشده‌ی‌ از Pi و Ri را برای محاسبه‌ی قسمت خودش از M دریافت کند.
Ri+1 دو بسته‌‌ی رمزشده‌ی متفاوت از Pi و Ri را برای محاسبه‌ی قسمت خودش از M دریافت می‌کند.
روش رمزنگاری گارانتی می‌نماید که خراب شدن هرکدام از بسته‌های Pi و یا Ri منجر می‌شود که هیچ نوع اطلاعاتی در مورد M آشکار نشود. و همچنین ترکیب ترکیب سهم‌های مختلف از سطوح مختلف تا زمانی که دشمن تنها یک قسمت از هر سطح را دارد منجر به تولید اطلاعاتی در مورد M نمی‌شود.

معرفی شبکه های بی سیم WSNحسگر

 

 

۱-۱) مقدمه

پیشرفت‌های اخیر در زمینه الکترونیک و مخابرات بی‌سیم توانایی طراحی و ساخت حسگرهایی را با توان مصرفی پایین، اندازه کوچک، قیمت مناسب و کاربری‌های گوناگون داده است. این حسگرهای کوچک که توانایی انجام اعمالی چون دریافت اطلاعات مختلف محیطی (بر اساس نوع حسگر)، پردازش و ارسال آن اطلاعات را دارند، موجب پیدایش ایده‌ای برای ایجاد و گسترش شبکه‌های موسوم به شبکه‌های بی‌سیم حسگر WSN شده‌اند.
یک شبکه حسگر متشکل از تعداد زیادی گره‌های حسگری است که در یک محیط به طور گسترده پخش شده و به جمع‌آوری اطلاعات از محیط می‌پردازند. لزوماً مکان قرار گرفتن گره‌های حسگری، از ‌قبل‌تعیین‌شده و مشخص نیست. چنین خصوصیتی این امکان را فراهم می‌آورد که بتوانیم آنها را در مکان‌های خطرناک و یا غیرقابل دسترس رها کنیم.
از طرف دیگر این بدان معنی است که پروتکل‌ها و الگوریتم‌های شبکه‌های حسگری باید دارای توانایی‌های خودساماندهی باشند. دیگر خصوصیت‌های منحصر به فرد شبکه‌های حسگری، توانایی همکاری و هماهنگی بین گره‌های حسگری است. هر گره حسگر روی برد خود دارای یک پردازشگر است و به جای فرستادن تمامی اطلاعات خام به مرکز یا به گره‌ای که مسئول پردازش و نتیجه‌گیری اطلاعات است، ابتدا خود یک سری پردازش‌های اولیه و ساده را روی اطلاعاتی که به دست آورده است، انجام می‌دهد و سپس داده‌های نیمه پردازش شده را ارسال می‌کند.
با اینکه هر حسگر به تنهایی توانایی ناچیزی دارد، ترکیب صدها حسگر کوچک امکانات جدیدی را عرضه می‌کند. ‌در واقع قدرت شبکه‌های بی‌سیم حسگر در توانایی به‌کارگیری تعداد زیادی گره کوچک است که خود قادرند سرهم و سازماندهی شوند و در موارد متعددی چون مسیریابی هم‌زمان، نظارت بر شرایط محیطی، نظارت بر سلامت ساختارها یا تجهیزات یک سیستم به کار گرفته شوند.
گستره کاربری شبکه‌های بی‌سیم حسگر بسیار وسیع بوده و از کاربردهای کشاورزی، پزشکی ‌و صنعتی تا کاربردهای نظامی را شامل می‌شود. به عنوان مثال یکی از متداول‌ترین کاربردهای این تکنولوژی، نظارت بر یک محیط دور از دسترس است. مثلاً نشتی یک کارخانه شیمیایی در محیط وسیع کارخانه می‌تواند توسط صدها حسگر که به طور خودکار یک شبکه بی‌سیم را تشکیل می‌دهند، نظارت شده و در هنگام بروز نشت شیمیایی به سرعت به مرکز اطلاع داده شود.
در این سیستم‌ها بر خلاف سیستم‌های سیمی قدیمی، از یک سو هزینه‌های پیکربندی و آرایش شبکه کاسته می‌شود از سوی دیگر به جای نصب هزاران متر سیم فقط باید دستگاه‌های کوچکی را که تقریباً به اندازه یک سکه هستند (شکل ۱)، را در نقاط مورد نظر قرار داد. شبکه به سادگی با اضافه کردن چند گره گسترش می‌یابد و نیازی به طراحی پیکربندی پیچیده نیست.

 

شکل۱ : یک حسگر طراحی‌‌شده برای شبکه‌های WSN که به اندازه یک سکه است.

 ۲-۱) تاریخچة شبکه های حسگر

در شکل (۱) طرح ها و ایده های اولیه شبکه های حسگر نشان داده شده است

 

شكل ۲: رخداد نگاري شبكه حسگر

اگرچه تاریخچه شبکه های حس/کار را به دوران جنگ سرد و ایده اولیه آن را به طراحان نظامی صنایع دفاع آمریکا نسبت می دهند ولی این ایده می توانسته در ذهن طراحان ربات های متحرک مستقل یا حتی طراحان شبکه های بی سیم موبایل نیز شکل گرفته باشد.

 

۳-۱) ساختار كلي شبكه حسگر بي سيم

قبل از ارائه ساختار كلي ابتدا تعدادي از تعاريف کلیدی را ذكر مي كنيم.

▪ حسگر : وسيله اي كه وجود شيئ  رخداد يك وضعيت يا مقدار يك كميت فيزيكي را تشخيص داده و به سيگنال الكتريكي تبديل مي كند. حسگر انواع مختلف دارد مانند حسگرهاي دما, فشار, رطوبت, نور, شتاب سنج, مغناطيس سنج و...

▪ كارانداز : با تحريك الكتريكي يك عمل خاصي مانند باز و بسته كردن يك شير يا قطع و وصل يك كليد را انجام مي دهد

▪ گره حسگر: به گره ای  گفته مي شود كه فقط شامل يك يا چند حسگر باشد.

▪ گره كارانداز: به گره ای  گفته مي شود كه فقط شامل يك يا چند كارانداز باشد.

▪ گره حسگر/كارانداز: به گره ای  گفته مي شود كه مجهز به حسگر و كار انداز باشد.

▪ شبكه حسگر : شبكه اي كه فقط شامل گره هاي حسگر باشد. اين شبكه نوع خاصي از شبكه حس/كاراست. در كاربردهايي كه هدف جمع آوري اطلاعات و تحقيق در مورد يك پديده مي باشد كاربرد دارد. مثل مطالعه روي گردبادها.

▪ میدان حسگر/کارانداز : ناحیه کاری که گره های شبکه حس/کار در آن توزیع میشوند.

▪ چاهک: گرهی که جمع آوری داده ها را به عهده دارد. و ارتباط بین گره های حس/کار و گره مدیر وظیفه را برقرار مي كند.

▪ گره مدیر وظیفه: گرهی که یک شخصی بعنوان کاربريا مدیر شبكه از طریق آن با شبکه ارتباط برقرار میکند. فرامین کنترلی و پرس و جو ها  از اين گره به شبکه ارسال شده و داده های جمع آوری شده به آن بر میگردد

▪ شبكه حسگر/كارانداز: شبكه اي متشكل از گره هاي حسگر و كار انداز يا حسگر/كارانداز است كه حالت كلي شبكه هاي مورد بحث مي باشد. به عبارت ديگر شبكه حس/كارشبكه اي است با تعداد زيادي گره كه هر گره مي تواند در حالت كلي داراي تعدادي حسگر و تعدادي كارانداز باشد. در حالت خاص يك گره ممكن است فقط حسگر يا فقط كارانداز باشد. گره ها در ناحيه اي كه ميدان حس/كار ناميده مي شود با چگالي زياد پراكنده مي شوند. يك چاهك پايش كل شبكه را بر عهده دارد. اطلاعات بوسيله چاهك جمع آوري مي شود و فرامين از طريق چاهك منتشر مي شود. شكل(۳) را ببينيد. مدیریت وظایف میتواند متمرکز یا توزیع شده باشد. بسته به اينكه تصميم گيري براي انجام واكنش در چه سطحي انجام شود دو ساختار مختلف خودكار و نيمه خودكار وجود دارد. که ترکیب آن نیز قابل استفاده است.

 

شكل ۳ : ساختار كلي شبكه حس/كار

۱-۳-۱) ساختار خودكار

 حسگر هايي كه يك رخداد يا پديده را تشخيص مي دهند داده هاي دريافتي را به گره هاي كارانداز جهت پردازش و انجام واكنش مناسب ارسال مي كنند. گره هاي كارانداز مجاور با هماهنگي با يكديگر تصميم گيري كرده و عمل مي نمايند. در واقع هیچ کنترل متمرکزی وجود ندارد و تصمیم گیری ها بصورت محلی انجام میشود.شكل(۴) را ببینید.

۲-۳-۱) ساختار نيمه خودكار

 در اين ساختار داده ها توسط گره ها به سمت چاهك هدايت شده و فرمان از طريق چاهك به گره هاي كار انداز صادر شود. شكل(۵) را مشاهده كنيد

 

 

 

شكل ۴:  ساختار خودكار

 

 

شكل۵: ساختار نيمه خودكار

 

از طرف ديگر در كاربردهاي خاصي ممكن است از ساختار بخش بندي شده يا سلولي استفاده شود كه در هر بخش يك سردسته وجود دارد كه داده هاي گره هاي دستة خود را به چاهك ارسال مي كند. در واقع هر سردسته مانند يك مدخل عمل ميكند.

 

 

۴-۱) ساختمان گره

شكل(۶) ساختمان داخلي گره حس/كار را نشان مي دهد. هر گره شامل واحد حسگر/ كارانداز, واحد پردازش داده ها, فرستنده/گيرنده بي سيم و منبع تغذيه مي باشد بخشهاي اضافي واحد متحرك ساز, سيستم مكان ياب و توليد توان نيز ممكن است بسته به كاربرد در گره ها وجود داشته باشد.

واحد پردازش داده شامل يك پردازندة كوچك و يك حافظه با ظرفيت محدود است داده ها را از حسگرها گرفته بسته به كاربرد پردازش محدودي روي آنها انجام داده و از طريق فرستنده ارسال مي كند. واحد پردازش مديريت هماهنگي و مشاركت با ساير گره ها در شبكه را انجام مي دهد. واحد فرستنده گيرنده ارتباط گره با شبكه را برقرار مي كند. واحد حسگر شامل يك سري حسگر و مبدل آنالوگ به ديجيتال است كه اطلاعات آنالوگ را از حسگرگرفته و بصورت ديجيتال به پردازنده تحويل مي دهد. واحد كارانداز شامل كارانداز و مبدل ديجيتال به آنالوگ است كه فرامين ديجيتال را از پردازنده گرفته و به كارانداز تحويل مي دهد. واحد تامين انرژي, توان مصرفي تمام بخشها را تامين مي كند كه اغلب يك باطري با انرژي محدود است. محدوديت منبع انرژي يكي از تنگناهاي اساسي است كه در طراحي شبكه هاي حس/كار همه چيز را تحت تاثير قرار مي دهد. در كنار اين بخش ممكن است واحدي براي توليد انرژي مثل سلول هاي خورشيدي وجود داشته باشد در گره هاي متحرك واحدي براي متحرك سازي وجود دارد. مكان ياب موقعيت فيزيكي گره را تشخيص مي دهد. تكنيكهاي مسيردهي  و وظايف حسگري به اطلاعات مكان با دقت بالا نياز دارند. يكي از مهمترين مزاياي شبكه هاي حس/كار توانايي مديريت ارتباط بين گره هاي در حال حركت مي باشد.

 

 

شكل ۶: ساختمان داخلی گره  حسگر/كارانداز


۵- ۱) ویژگی های اصلی

وجود برخی ویژگی ها در شبکه حسگر/ کارانداز, آن را از سایر شبکه های سنتی و بی سیم متمایز می کند. از آن جمله عبارتند از:

▪ تنگناهای سخت افزاری شامل محدودیتهای اندازة فیزیکی, منبع انرژی, قدرت پردازش, ظرفیت حافظه
▪ تعداد بسیار زیاد گره ها
▪ چگالی بالا در توزیع گره ها در ناحیه عملیاتی
▪  وجود استعداد خرابی در گره ها
▪ تغییرات توپولوژی بصورت پویا و احیانا متناوب
▪ استفاده از روش پخش همگانی در ارتباط بین گره ها در مقابل ارتباط نقطه به نقطه
▪ داده محور بودن شبکه به این معنی که گره ها کد شناسایی ندارند

۶-۱)  ویژگی‌های عمومی یك شبكه حسگر

علاوه بر نكاتی كه تا كنون درباره شبكه‌های حسگر به عنوان مقدمه آشنایی با این فناوری بیان كردیم، این شبكه‌ها دارای یك سری ویژگی‌های عمومی نیز هستند. مهم‌ترین این ویژگی‌ها عبارت است از:

۱) بر خلاف شبكه‌های بی‌سیم سنتی، همه گره‌ها در شبكه‌های بی‌سیم حسگر نیازی به برقراری ارتباط مستقیم با نزدیك‌ترین برج كنترل قدرت یا ایستگاه پایه ندارند، بلكه حسگرها به خوشه‌هایی (سلول‌هایی) تقسیم می‌شوند که هر خوشه (سلول) یک سرگروه خوشه موسوم به Parent انتخاب می‌کند.

این سرگروه‌ها وظیفه جمع‌آوری اطلاعات را بر عهده دارند. جمع‌آوری اطلاعات به منظور کاهش اطلاعات ارسالی از گره‌ها به ایستگاه پایه و در نتیجه بهبود بازده انرژی شبکه انجام می‌شود. ‌البته چگونگی انتخاب سرگروه خود بحثی تخصصی است كه در تئوری شبكه‌های بی‌سیم حسگر مفصلاً مورد بحث قرار می‌گیرد.

۲) پروتكل‌های شبكه‌ای همتا به همتا یك‌سری ارتباطات مش مانند را جهت انتقال اطلاعات بین هزاران دستگاه كوچك با استفاده از روش چندجهشی ایجاد می‌كنند. معماری انطباق‌پذیر مش، قابلیت تطبیق با گره‌های جدید جهت پوشش دادن یك ناحیه جغرافیایی بزرگ‌تر را دارا است. علاوه بر این، سیستم می‌تواند به طور خودكار از دست دادن یك گره یا حتی چند گره را جبران كند.

۳) هر حسگر موجود در شبكه دارای یک رنج حسگری است که به نقاط موجود در آن رنج احاطه کامل دارد. یکی از اهداف شبکه‌های حسگری این است که هر محل در فضای مورد نظر بایستی حداقل در رنج حسگری یک گره قرار گیرد تا شبكه قابلیت پوشش همه منطقه موردنظر را داشته باشد.

یک حسگر با شعاع حسگری r را می‌توان با یک دیسک با شعاع r مدل کرد. این دیسک نقاطی را که درون این شعاع قرار می‌گیرند، تحت پوشش قرار می‌دهد. بدیهی است که برای تحت پوشش قرار دادن کل منطقه این دیسک‌ها باید کل نقاط منطقه را بپوشانند.

با این که توجه زیادی به پوشش کامل منطقه توسط حسگرها می‌شود، احتمال دارد نقاطی تحت پوشش هیچ حسگری قرار نگیرد. این نقاط تحت عنوان حفره‌های پوششی نامیده می‌شوند. اگر تعدادی حسگر به علاوه یک منطقه هدف داشته باشیم، هر نقطه در منطقه باید طوری توسط حداقل n حسگر پوشش داده شود که هیچ حفره پوششی ایجاد نشود. این موضوع لازم به ذکر است که مسأله حفره پوششی بسته به نوع کاربرد مطرح می‌گردد. در برخی کاربردها احتیاج است که درجه بالایی از پوشش جهت داشتن دقت بیشتر داشته باشیم.

 

۷-۱)  ساختار ارتباطی شبکه‌های حسگر

گره‌های حسگری همانند شکل (۷) در یک منطقه پراکنده می‌شوند. همان‌طور كه قبلاً هم اشاره كردیم گره‌های حسگری دارای توانایی خودساماندهی هستند. هر کدام از این گره‌های پخش‌شده دارای توانایی جمع‌کردن اطلاعات و ارسال آنها به پایانه‌ای موسوم به sink است. این اطلاعات از یک مسیر چند مرحله‌ای که زیرساخت مشخصی ندارد به سینک فرستاده می‌شوند و سینک می‌تواند توسط لینک ماهواره یا اینترنت با گره task manager ارتباط برقرار کند.

 

 


شكل ۷: ساختار متداول يک شبکه حسگري

 

طراحی یک شبکه تحت تأثیر فاکتورهای متعددی است. این فاکتورها عبارتند از: تحمل خرابی، قابلیت گسترش، هزینه تولید، محیط کار، توپولوژی شبکه حسگری، محدودیت‌های سخت‌افزاری، محیط انتقال و مصرف توان که در زیر به شرح آنها می‌پردازیم.

 

۸-۱) فاکتورهای طراحی

فاکتورهای بیان‌شده در بالا از اهمیت فراوانی در طراحی پروتکل‌های شبکه‌های حسگر برخوردار هستند؛ در ادامه درباره هر یك از آنها توضیحات مختصری ارائه می‌كنیم.

۱-۸-۱) تحمل خرابی

برخی از گره‌های حسگری ممکن است از کار بیفتند یا به دلیل پایان توانشان، عمر آنها تمام شود، یا آسیب فیزیکی ببینند و از محیط تأثیر بگیرند. از کار افتادن گره‌های حسگری نباید تأثیری روی کارکرد عمومی شبکه داشته باشد. بنابراین تحمل خرابی را "توانایی برقرار نگه داشتن عملیات شبکه حسگر علی‌رغم از کار افتادن برخی از گره‌ها" تعریف می‌كنیم. ‌در واقع یك شبكه حسگر خوب با از كار افتادن تعدادی از گره‌های حسگری، به سرعت خود را با شرایط جدید (تعداد حسگرهای كمتر) وفق داده و كار خود را انجام می‌دهد.

۲-۸-۱) قابلیت گسترش

تعداد گره‌های حسگری که برای مطالعه یک پدیده مورد استفاده قرار می‌گیرند، ممکن است در حدود صدها و یا هزاران گره باشد. مسلماً تعداد گره‌ها به کاربرد و دقت موردنظر بستگی دارد؛ به طوری‌ كه در بعضی موارد این تعداد ممکن است به میلیون‌ها عدد نیز برسد. یك شبكه باید طوری طراحی شود كه بتواند چگالی بالای گره‌های حسگری را نیز تحقق بخشد. این چگالی می‌تواند از چند گره تا چند صد گره در یک منطقه که ممکن است کمتر از ۱۰ متر قطر داشته باشد، تغییر کند.

۳-۸-۱)  توپولوژي

توپولوژي ذاتي شبكه حس/كار توپولوژي گراف است. بدليل اينكه ارتباط گره ها  بي سيم و بصورت پخش همگاني است و هر گره با چند گره ديگر كه در محدوده برد آن قرار دارد ارتباط دارد.  آلگوريتم هاي  كارا  در جمع آوري داده  و كاربردهاي ردگيري اشياء  شبكه را درخت پوشا در نظر مي گيرند.  چون ترافيك اصولا بفرمي است كه داده ها از چند گره به سمت يك گره حركت مي كند. مديريت توپولوژي بايد با دقت انجام شوديك مرحله اساسي مديريت توپولوژي راه اندازي اوليه شبكه است گره هايي كه قبلا هيچ ارتباط اوليه اي ندشته اند در هنگام جايگيري و شروع بكار اوليه بايد بتوانند با يكديگر ارتباط برقرار كنند. الگوريتم هاي مديريت توپولوژي در راه اندازي اوليه بايد امكان عضويت گره هاي جديد و حذف گره هايي كه بدلايلي از كار مي افتند را فراهم كنند. پويايي توپولوژي از خصوصيات شبكه هاي حس/كار است كه امنيت آن را به چالش مي كشد. ارائه روشهاي مديريت توپولوژي پويا بطوري كه موارد امنيتي را هم پوشش دهد از موضوعاتي است كه جاي كار زيادي دارد.

۴-۸-۱) تنگناهاي سخت افزاري

هرگره ضمن اينكه بايد كل اجزاء لازم را داشته باشد بايد بحد كافي كوچك, سبك و كم حجم نيز باشد.

بعنوان مثال در برخي كاربردها گره يايد به كوچكي يك قوطي كبريت باشد و حتي گاهي حجم گره محدود به يك سانتيمتر مكعب است و از نظر وزن آنقدر باید سبك باشد كه بتواند همراه باد در هوا معلق شود. در عين حال هر گره بايد توان مصرفي بسيار كم, قيمت تمام شده پايين داشته و با شرايط محيطي سازگار باشد. اينها همه محدوديتهايي است كه كار طراحي و ساخت گره هاي حس/كار را با چالش مواجه ميكند. ارائه طرح های سخت افزاری سبک و کم حجم در مورد هر یک از اجزای گره بخصوص قسمت ارتباط بی سیم و حسگرها از جمله موضوعات تحقیقاتی است که جای کار بسیار دارد پيشرفت فن آوري ساخت مدارات مجتمع با فشردگي   نقش بسزايي در كاهش تنگناهاي سخت افزاري خواهد داشت.,بالا و مصرف پايين

۵-۸-۱) قابليت اطمينان

هر گره ممكن است خراب شود يا در اثر رويدادهاي محيطي مثل تصادف يا انفجار بكلي نابود شود يا در اثر تمام شده منبع انرژي از كار بيفتد. منظور از تحمل پذيري يا قابليت اطمينان اين است كه خرابي گره ها نبايد عملكرد كلي شبكه را تحت تاثير قرار دهد. در واقع مي خواهيم با استفاده از اجزاي غير قابل اطمينان يك شبكه قابل اطمينان بسازيم. براي گره k با نرخ خرابي lk قابليت اطمينان با فرمول(۱) مدل مي شود. كه در واقع احتمال عدم خرابي است در زمان t بشرط اينكه گره در بازة زماني (0,t) خرابي نداشته باشد. به اين ترتيب هرچه زمان مي گذرد احتمال خرابي گره بيشتر مي شود.

 

 

۶-۸-۱) مقياس پذيري

شبكه بايد هم از نظر تعداد گره و هم از نظر ميزان پراكندگي گره ها, مقياس پذير باشد. بعبارت ديگر شبكه حس/كار از طرفي بايد بتواند با تعداد صدها, هزارها و حتي ميليون ها ها, هزارها و حتي ميليون ها گره كار كند و از طرف ديگر, چگالي توزيع متفاوت گره ها را نيز پشتيباني كند. چگالي طبق فرمول (۲) محاسبه مي شود. كه بيانگر تعداد متوسط گره هايي است كه در برد يك گره نوعي (مثلادايره اي با قطر10 متر) قرار مي گيرد. A: مساحت ناحيه كاري N:تعداد گره در ناحيه كاري و R: برد ارسال راديويي است.

در بسياري كاربردها توزيع گره ها اتفاقي صورت مي گيرد و امكان توزيع با چگالي مشخص و يكنواخت وجود ندارد يا گره ها در اثر عوامل محيطي جابجا مي شوند. بنابراين چگالي باید  بتواند از چند عدد تا چند صد گره تغيير كند. موضوع مقياس پذيري به روشها نيز مربوط مي شود برخي روشها ممكن است مقياس پذير نباشد يعني در يك چگالي يا تعداد محدود از گره كار كند. در مقابل برخي روشها مقياس پذير هستند                     

                                                                                                                                                                             

 

۷-۸-۱)  هزینه تولید

از آنجایی که شبکه‌های حسگری از تعداد زیادی گره‌های حسگری تشکیل شده‌اند، هزینه یک گره در برآورد کردن هزینه کل شبکه بسیار مهم است. اگر هزینه یک شبکه حسگری گران‌تر از هزینه استفاده از شبكه‌های مشابه قدیمی باشد، در بسیاری موارد استفاده از آن مقرون به صرفه نیست. در نتیجه قیمت هر گره حسگری تا حد ممكن باید پایین نگه داشته شود.

۸-۸-۱)  رسانه ارتباطي

در شبكه هاي حس/كار ارتباط گره ها بصورت بي سيم و از طريق رسانه راديويي, مادون قرمز, يا رسانه هاي نوري ديگر صورت مي گيرد. اكثرا از ارتباط راديويي استفاده مي شود. البته ارتباط مادون قرمز ارزانتر و ساختنش آسانتر است ولي فقط در خط مستقيم عمل مي كند.

۹-۸-۱) توان مصرفي گره ها

گره هاي شبكه حس/كار بايد توان مصرفي كم داشته باشند. گاهي منبع تغذيه يك باتري 2/1 ولت با انرژي 5/. آمپر ساعت است كه بايد توان لازم براي مدت طولاني مثلا 9 ماه را تامين كند. در بسياري از كاربردها باتري قابل تعويض نيست. لذا عمر باطري عملا عمر گره را مشخص مي كند. بعلت اينكه يك گره علاوه بر گرفتن اطلاعات(توسط حسگر) يا اجراي يك فرمان(توسط كارانداز) بعنوان مسیریاب نيز عمل مي كند بد عمل كردن گره  باعث حذف آن از توپولوژي شده و سازماندهي مجدد شبكه و مسيردهي مجدد بسته عبوري را در پی خواهد داشت. در طراحي سخت افزار گره ها استفاده از طرح ها و قطعاتي كه مصرف پاييني دارند و فراهم كردن امكان حالت خواب براي كل گره يا براي هر بخش بطور مجزا مهم است.

 

۱۰-۸-۱)  ارتباط بلادرنگ و هماهنگي  

در برخي كاربردها مانند سيستم تشخيص و جلوگيري از گسترش آتش سوزي يا سيستم پيش گيري از سرقت سرعت پاسخگويي شبكه اهميت زيادي دارد. در نمايش بلادرنگ فشار بر روي مانيتور  بسته هاي ارسالي بايد بطور لحظه اي روزآمد باشند. براي تحقق بلادرنگ يك روش اين است كه براي بسته هاي ارسالي يك ضرب العجل تعيين شود و در لايه كنترل دسترسي رسانه  بسته هاي با ضرب العجل كوتاهتر زودتر ارسال شوند مدت ضرب العجل به كاربرد بستگي دارد. مسئلة مهم ديگر تحويل گزارش رخدادها به چاهك, يا كارانداز ناحيه, به ترتيب وقوع آنهاست در غير اين صورت ممكن است شبكه واكنش درستي انجام ندهد. نكته ديگر هماهنگي كلي شبكه در ارتباط با گزارشهايي است كه در مورد يك رخداد از حسگرهاي مختلف به كاراندازهاي ناحيه مربوطه داده مي شود. بعنوان مثال در يك كاربرد نظامي فرض كنيد حسگرهايي جهت تشخيص حضور يگان هاي پياده دشمن و كاراندازهايي جهت نابودي آن در نظر گرفته شده چند حسگر حضور دشمن را به كار اندازها اطلاع مي دهند شبكه بايد در كل منطقه, عمليات را به يكباره شروع كند. در غير اين صورت با واكنش اولين كارانداز, سربازان دشمن متفرق شده و عمليات با شكست مواجه مي شود. بهرحال موضوع بلادرنگ و هماهنگي در شبكه هاي حس/كاربخصوص در مقياس بزرگ و شرايط نامطمئن از مباحث تحقيقاتي است.

 

۱۱-۸-۱)  امنيت و مداخلات   

موضوع امنيت در برخي كاربردها بخصوص در كاربرد هاي نظامي يك موضوع بحراني است و بخاطر برخي ويژگي ها شبكه هاي حس/كار در مقابل مداخلات آسيب پذير ترند. يك مورد بي سيم بودن ارتباط شبكه است كه كار دشمن را براي فعاليت هاي ضد امنيتي و مداخلات آسانتر مي كند. مورد ديگر استفاده از يك فركانس واحد ارتباطي براي كل شبكه است كه شبكه را در مقابل استراق سمع آسيب پذير مي كند. مورد بعدي ويژگي پويايي توپولوژي است كه زمينه را براي پذيرش گره هاي دشمن فراهم مي كند. اينكه پروتكل هاي مربوط به مسيردهي, كنترل ترافيك و لايه كنترل دسترسي شبكه سعي دارند با هزينه و سربار كمتري كار كنند مشكلات امنيتي بوجود مي آورد مثلا براي شبكه هاي حسگر در مقياس بزرگ براي كاهش تأخير بسته هايي كه در مسير طولاني در طول شبكه حركت مي كنند يك راه حل خوب اين است كه اولويت مسيردهي به بسته هاي عبوري داده شود. همين روش باعث مي شود حمله هاي سيلي مؤثرتر باشد. يكي از نقاط ضعف شبكه حس/كاركمبود منبع انرژي است و دشمن مي تواند با قرار دادن يك گره مزاحم كه مرتب پيغام هاي بيدار باش بصورت پخش همگاني با انرژي زياد توليد مي كند باعث شود بدون دليل گره هاي همسايه از حالت خواب خارج شوند. ادامة اين روند باعث به هدر رفتن انرژي گره ها شده و عمر آنها را كوتاه مي كند. با توجه به محدوديت ها بايد دنبال راه حل هاي ساده و كارا مبتني بر طبيعت شبكه حس/كار بود. مثلا اينكه گره ها با چگالي بالا مي توانند توزيع شوند و هر گره داراي اطلاعات كمي است يا اينكه داده ها در يك مدت كوتاه معتبرند از اين ويژگي ها  مي توان بعنوان يك نقطه قوت در رفع مشكلات امنيتي استفاده كرد. اساسا‏ً چالشهاي زيادي در مقابل امنيت شبكه حس/كاروجود دارد. و مباحث تحقيقاتي مطرح در اين زمينه گسترده و پيچيده است.

۱۲-۸-۱) عوامل پیش بینی نشده

یک شبکه حسگر کارانداز تابع تعداد زیادی از عدم قطعیت هاست. عوامل طبیعی غیر قابل پیش بینی مثل سیل زلزله, مشکلات ناشی از ارتباط بی سیم و اختلالات رادیویی, امکان خرابی هر گره, کالیبره نبودن حسگرها, پویایی ساختار و مسیردهی شبکه, اضافه شدن گره های جدید و حذف گره های قدیمی, جابجایی گره ها بطور کنترل شده یا در اثر عوامل طبیعی و غيره. سؤالی كه مطرح است این است که در این شرایط چگونه میتوان چشم اندازی فراهم کرد که از دیدگاه لایه کاربرد شبکه یک موجودیت قابل اطمینان در مقیاس بزرگ دارای کارایی عملیاتی مشخص و قابل اعتماد باشد. باتوجه به اینکه شبکه های حسگر کارانداز تا حدود زیادی بصورت مرکزی غیر قابل کنترل هستند و بصورت خودکار یا حداقل نیمه خودکار عمل میکنند باید بتوانند با مدیریت مستقل بر مشکلات غلبه کنند. از این رو باید ویژگی های خود بهینه سازی خود سازماندهی و خود درمانی  را داشته باشند. اینها از جمله مواردی هستند که بحث در مورد آنها آسان ولی تحقق آن بسیار پیچیده است. بهرحال اين موضوعات ازجمله موارد تحقیقاتی می باشند.

 

۹-۱) نمونه ی  پیاده سازی شده شبکه حسگر

۱-۹-۱)  ذره ی میکا

یک نمونه از پیاده سازی سخت افزاری گره های حسگر ذره میکا دانشگاه برکلی امریکا است.این نمونه, یک واحد حس/کار کوچک (چندین اینچ مکعب) با یک  واحد پردازنده مرکزی,منبع تغذیه,رادیو و چندین عنصر حسگر اختیاری می باشد.

پردازشگر آن یک پردازنده 8- بیتی از خانواده ی اتملمی باشد همراه با 128 کیلو بایت حافظه ی برنامه, 4کیلوبایت RAM برای داده 512کیلوبایت حافظه ی فلش .

این پردازنده فقط یک کمینه از مجموعه دستورالعمل های ریسکRISK) )را بدون عمل ضرب, شیفت با طول متغیر و چرخش پشتیبانی می کند.

رادیوی آن یک رادیوی مصرف پایین916  مگاهرتز با پهنای باند40 کیلو در ثانیه روی یک کانال تسهیم شده منفرد با محدوده ی نزدیک به 12 متر می باشد. رادیو در حالت دریافت 4.8 میلی آمپر, در حالت ارسال تا 12میلی آمپر ودر حالت خواب 5 میکرو آمپر مصرف می کند

 

 

 

شکل ۸:  ذره میکا

 

ذره میکا در اندازه های مختلف وجود دارد,کوچکترین آن اغلب به عنوان غبار هوشمند شناخته می شود.طرح پژوهشی غبار هوشمند که به وسیله ی پروفسور پیتستروکان رهبری و هدایت می شود موفق به دستیابی حدی برای اندازه ومصرف توان در گره های حسگر خود مختار شده است.کاهش اندازه برای ساختن گره های ارزان و البته تسهیل گسترش آن  بسیار مهم است.گروه تحقیقاتی امیدوارند که ضمن حفظ موثر توانایی های حسگری وارتباطی می توانند موارد لازم حسگری , مخابره اطلاعات و محاسبات سخت افزاری  همراه با منبع تغذیه را در اندازه ای در حدود چند میلیمتر مکعب فراهم کنند. این گره میلیمتر مکعبی غبار هوشمند نام دارد که حقیقتاَ قلمرو چیزهای ممکن شدنی است.چنان که نمونه های آتی آن می تواند به قدری کوچک باشد که معلق در هوا باقی مانده و به وسیله جریان هوا شناور شود و برای ساعت ها یا روزها موارد حس شده را ارسال کند. غبار هوشمند می تواند اطلاعات را با استفاده از یک تکنولوژی بازتابنده ی نوری جدید, به صورت غیر فعال ارسال کند این یک راه معقول وارزان برای پراب یک سنسور یا تایید دریافت اطلاعات را فراهم می کند ارسال نوری فعال نیز ممکن است اما اتلاف انرژی بیشتری دارد.

 

 

 

شکل۹ : ساختار داخلی غبار هوشمند

 

 

 

 

۱۰-۱)  ویژگی‌های سخت‌افزاری

یک گره حسگری از ۴ بخش عمده تشکیل شده است:

۱) واحد حسگر

۲) واحد پردازش

۳) واحد دریافت و ارسال

۴) واحد توان

البته بسته به كاربرد، شبكه‌های حسگر می‌توانند شامل اجزای دیگری چون: سیستم پیداکردن مکان جغرافیایی، مولد توان و بخش مربوط به حرکت در گره‌های متحرک نیز باشند.

در زیر اندكی درباره بخش‌های اصلی هر حسگر توضیح می‌دهیم.

۱) واحد‌های حسگری معمولاً از دو بخش حسگرها و مبدل‌های آنالوگ به دیجیتال تشکیل می‌شوند. حسگرها بر اساس دریافت‌هایشان از پدیده مورد مطالعه، سیگنال‌های آنالوگ را تولید می‌كنند. سپس این سیگنال‌ها توسط مبدل آنالوگ به دیجیتال به سیگنال دیجیتال تبدیل شده و به بخش پردازش سپرده می‌شوند.

۲) بخش پردازش که معمولاً با یک حافظه کوچک همراه است، همکاری گره با گره‌های دیگر را در جهت انجام وظایف محول شده به هر حسگر مدیریت می‌کند.

۳) بخش فرستنده و گیرنده، گره را به شبکه متصل می‌کند.

۴) بخش توان نیز یکی از مهم‌ترین بخش‌های یک گره حسگری است. توان موردنیاز ممکن است با بخش‌های جمع‌آوری توان، مانند سلول‌های خورشیدی تأمین شود. به موازات تولید توان، تلاش برای كاهش مصرف توان در شبكه بسیار مهم است. صرفه جویی در مصرف توان در حالت كلی از دو طریق ممكن است. یك راه ساخت حسگرهایی با مصرف انرژی كمتر و راه دیگر به كاربردن روش‌های مدیریت توان در طراحی نرم‌افزاری شبكه است. مثلاً ارسال TDMA از نظر مصرف توان مناسب است؛ زیرا در فاصله هر شیار زمانی كه اطلاعات هر حسگر ارسال نمی‌شود، حسگر در حالت انتظار كه مصرف انرژی بسیار كمی دارد، قرار می‌گیرد.

روش‌های مناسب پیكربندی هندسی شبكه و یا انتخاب Parent می‌تواند مصرف انرژی را كاهش دهد. همان‌طور كه گفتیم هر حسگر ممکن است بخش‌های دیگری را نیز که به کاربرد خاص شبکه مربوط است دارا باشد. به عنوان نمونه، اکثر تکنیک‌های مسیریابی و وظایف حسگری نیازمند دانش دقیقی از مکان‌یابی جغرافیایی است. در نتیجه متداول است که گره‌های حسگری دارای سیستم موقعیت‌یابی نیز باشند. علاوه بر این در برخی موارد گره حسگری لازم است که متحرک باشد، لذا در مواقع لزوم بخشی نیز برای حرکت در نظر گرفته می‌شود.

تمام این زیر‌‌بخش‌ها باید در یک قالب کوچک قرار بگیرند. اندازه مورد نیاز ممکن است حتی کوچک‌تر از یک سانتی‌متر مکعب باشد. علاوه بر اندازه، محدودیت‌های فراوان دیگری نیز برای گره‌های حسگری وجود دارد؛ این گره‌ها باید توان بسیار کمی مصرف کنند، در یک محیط با چگالی بالا (از نظر تعداد گره‌ها) کار کنند، قیمت تمام شده آنها ارزان باشد، قابل رها کردن در محیط و همچنین خودکار باشند. بدون وقفه کار کنند و قابلیت سازگاری با محیط داشته باشند. در شکل ۴ ساختار کلی یک گره حسگری نشان داده شده است.

 

۱۱-۱) کاربرد شبکه های بی سیم حسگر

۱-۱۱-۱) کشاورزی دقیق
استفاده از شبکه های بی سیم حسگر در کشاورزی اجازه می دهد آبیاری به طور دقیق انجام شود و بارور کردن خاک بوسیله قرار دادن سانسورها در داخل خاک انجام می شود. برای این کار تعداد سانسور های نسبتا کمی نیاز است تقر یبا یک سانسود در هر صد متر مربع. به همین نحو، برای کنترل آفت در زمین کشاورزی می توانیم از این شبکه استفاده کنیم. همچنین، پرورش چارپایان‌ اهلی‌ می توانند از این شبکه ها بهره ببرند با قرار دادن یک سانسور در روی هر گاو یا خوک که وضعیت سلامتی حیوان را (بوسیله دمای بدن و …) کنترل می کند و تولید یک پیام هشدار اگر مقدار علایم حیاتی از مقدار آستانه تجاوز کند.
۲-۱۱-۱) مراقبت بهداشتی و پزشکی
نصب سانسورها بر روی بدن بیماران جهت کنترل علائم حیاتی آنها زمانی که نیاز هست این بیماران برای یک مدت زمان زیادی تحت کنترل باشند و را هنمایی بیماران برای مصرف دارو( حسگرهای جاسازی شده در بسته های دارو تا زمانیکه یک بیمار دارو را به صورت اشتباه مصرف کرد یک پیام هشدار ایجاد کند ).
۳-۱۱–۱) کنترل محیط
شبکه های بی سیم حسگر می توانند برای کنترل و نظارت بر محیط بکار بروند. برای نمونه می توانند برای کنترل مواد آلاینده در محیط های که زباله ها دفع می شوند بکار بروند. نمونه دیگر، نظارت بر فرسایش خاک در یک محیط است. یک مثال دیگر می تواند برای شمارش تعداد گیاهان و حیواناتی که در یک مکان خاص زندگی می کنند، به کار رود.
۴-۱۱–۱) کاربردهای نظامی
شبکه های سنسور بی سیم می توانند به عنوان بخش مهمی از سیستمهای ارتباطی، نظارتی، ناوبری، هوشمند و پردازش نظامی مورد استفاده قرار گیرند. گاهی اوقات در این شبکه ها نود ها با فرستنده و گیرنده های ماهواره ای جهانی GPS همراه میشوند که در موقعیت یابی دقیق مناطق جنگی مورد استفاده واقع میشوند.

 

۱۲-۱) نرم افزار شبکه حسگر بی سیم

انرژی منبع کمیاب گره های شبکه بی سیم است و تعیین کننده عمر شبکه ارتباطی گیرنده های بی سیم (WSN) است بطور متوسط می توانند در تعداد بالایی در محیطهای گوناگون گسترش یابند در مناطق دور افتاده و دشمن ، همراه ارتباطات تک کاره به عنوان کلید برای این علت الگوریتم و پروتکل احتیاج دارد به دنبال این پیامدها :

  • بیشینه سازی عمر .
  • توانمندی و تحمل عیب
  • روش تنظیم .و نصب خودکار

بعضی از موضوع های داغ در تحقیق نرم افزارهای ( WSN)

  • امنیت
  • قابلیت انتقال و ترک ( زمانی که گره های گیرنده و یا پایگاه ها در حال حرکت اند.)
  • میان افزار ، طراحی سطح متوسط اولیه بین نرم افزار و سخت افزار است.

 

۱۳-۱) استاندارد شبکه حسگر بی سیم

زمانیکه مسیر اصلی کامپیوترها درخور استانداردها ست – تنها استاندارد رسمی که در شبکه های ارتباطی گیرنده بی سیم پذیرفته شده ISO 18000-7 و 610wpan و بی سیم HART و در پایین تعداد دیگری از استانداردها که تحقیق شده اند برای استفاده توسط محققین این رسته :

  • Zig Bee
  • Wibree

 

۱۳-۱) زبان برنامه نویسی شبکه حسگر بی سیم

برنامه نویسی گره های گیرنده مشکل است زمانی که مقایسه شوند با سیستم های کامپیوتری معمولی. منبع اجباری طبیعی از این گره ها بالا می رود به مدل های برنامه نویسی جدید. اگرچه بیشتر گره های بطور جاری برنامه ریزی شده اند در C

  • C@t زمان@محاسبات در نقطه ای از فضا
  • DSL  توزیع ترکیبات زمانی
  • Galsc
  • Nec C
  • Proto thread
  • SNACK
  • SQTL

۱۴-۱) الگوریتم شبکه حسگر بی سیم

WSN متشکل از تعداد زیادی از گره های گیرنده هستند . از این رو الگوریتم برای WSN توزیع الگوریتمی است. در WSN منبع کمیاب انرژی است؛ و یکی از گرانترین عامل انرژی انتقال اطلاعات است . برای این دلیل تحقیق الگوریتمی در WSN بیشتر تمرکز می کند . در مطالعه و طراحی آگاهانه از انرژی الگوریتم برای انتقال اطلاعات از گره های گیرنده به پایگاه انتقال اطلاعات ( معمولاً Multi-hop  از یک گره به یک گره به طرف پایگاه ) به علت رشد چند برابر در هزینه انرژی انتقالات رادیویی نسبت به مساحت انتقال.

نگرش های الگوریتمی با تفکیک خود WSN از نگرش پروتکل با این حقیقت که مدهای ریاضی که استفاده می شوند انتزاعی تر هستند . کلی تر هستند اما گاهی اوقات کمتر واقعی هستند در مدل هایی که استفاده می شود طراحی پروتکل

 

۱۵-۱) شبیه سازی در شبکه حسگر بی سیم

پایگاهای هستند که مخصوصا طراحی شده اند برای شبیه سازی کرئن شبکه ارتباطی گیرنده مثل TOSSIM ، که قسمتی از TinyOs و شبیه سازی قدیمی شبکه که استفاد می شود مثل Sn-2 ، لیست وسیعی از ابزارهای شبیه شازی برای شبکه ارتباطی گیرنده بی سیم می تواند پیدا شود و در CRUISE WSN که ابزار شبیه سازی پایگاه معلومات

 

۱۶-۱) تجسم فکری داده ها

از شبکه ارتباطی بی سیم اطلاعات جمع آوری می شوند و معمولاً ذخیره می شوند به فرم و اطلاعات عددی در پایگاه مرکزی . برنامه های متعددی هستند مثل Tosgui و Sensor و MonSense  Gsn که آسان می کند جستجو این مقدار اطلاعات علاوه بر آن Geopatial cosortinm که استانداردهای خاص برای توانایی وجه مشترک شان و رمز گذاری اطلاعات که این توانایی را دارد که مرتب کند سایت های نا همگون را در اینترنت که به هر کسی اجازه می دهد به طور انفرادی کنترل شبکه های ارتباطی گیرنده بی سیم بپردازد از طریق نرم افزار که برای جستجو در اینترنت ذخیره شد.

 

۱۷-۱) سیستم عامل  شبکه  حسگر بی سیم

سیستم عامل های که برای شبکه های بی سیم حسگر طراحی شده اند به طور معمول دارای پیچیدگی کمتری نسبت به سیستم عامل های که برای اهداف معمول توسعه یافتند، هستند. که این پیچیدگی کم بخاطر دو مورد زیر است:

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

برای مثال، طرز  تعامل برنامه های شبکه های حسگر با برنامه ها در یک PC متفاوت است. بخاطر اینکه در این نوع سیستم عامل ها، نیازی به پیشتبانی از واسط کاربری نیست.  علاوه بر اینها، محدودیت های منابع مانند حافظه و پشتبانی سخت افزاری از نگاشت از حافظه، مکانیزم های مانند حافظه مجازی را غیر ضروری یا پیاده سازی آنرا غیر ممکن می سازد.

سخت افزار شبکه های حسگر، تفاوتی با سخت افزار سیستم های جاسازی شده ندارد و بنابراین استفاده از سیستم عامل های مانند eCos یا uC/OS که برای سیستم های جاسازی شده طراحی شده اند، برای شبکه های حسگر میسر است. اما باید توجه شود که، سیستم عامل های مخصوص سیستم های جاسازی شدهريال درای ویژگی real-time هستند، در حالیکه سیستم عامل های که به طور خاص برای شبکه های حسگر طراحی شده اند، ویژگی real-time را پشتبانی نمی کنند.

TinyOs اولین سیستم عاملی است که برای شبکه های بی سیم حسگر طراحی شده است. برخلاف بسیاری از سیستم عامل ها، TinyOs به جای مدل چند نخی، بر مبنای مدل برنامه نویسی رویدادگرا طراحی شده است. برنامه های TinyOs، از event handler ها  و task ها تشکیل شده است.

هنگامیکه یک رویداد خارجی، مانند ورود یک بسته داده یا خواندن داده توسط حسگر رخ می دهد، TinyOs، مدیر رویداد مناسب را برای آن مدیریت آن رویداد فراخوانی می کند. برای نوشتن سیستم عامل TinyOs و برنامه های که در آن نوشته می شوند، از یک زبان برنامه نویسی خاص به نام nesC استفاده می شود که یک توسعه از زبان برنامه نویسی C است.

 

 

شکل ۱۰: دو مدل برنامه نویسی با نقاط ضعف برای شبکه حسگر

 

شکل ۱۱: مدل برنامه نویسی رویدادگرا

 

 

۱۸-۱) معماري سيستم شبكه حسگر بی سیم

معماري سيستم حسگر بی سیم از سه لايه تشكيل شده است. (شكل ۱۲ (

 

شكل ۱۲ : معماری سیستم حسگر بی سیم


گيرنده -فرستنده بی سیم (transceiver) كه اطلاعات ديجيتال را به سيگنال الكترومغناطيسي بی سیم تبديل مي كند . اين سيگنال مي تواند توسط فرستنده ارسال گردد و در گيرنده بازسازي شود.

در نسل قبلي فناوري بی سیم شما يا يك فرستنده براي ارسال داشتيد يا يك گيرنده براي دريافت. امروزه فناوري براي افزايش كارايي و اطمينان پذيري سيستم ، ابزار گيرنده و فرستنده را تؤام كرده است.

Microsoft project 2007

 Microsoft project پنجره برنامه

که پس از اجرای نرم افزار نشان داده می شود. عناصر و اجزای اصلی تشکیل Microsoft project پنجره برنامه

دهنده این پنجره  به قرار زیر می باشند:

 

 که در بالای صفحه نمایش ظاهر شده و نام فایل پروژه ای را که مشغول کار (Title Bar) - نوار عنوان

روی آن هستید ، نمایش می دهد.

  که برای تایپ کردن و (Entry Bar)  و نوار ورودی (Toolbar)، نوار ابزار (menu Bar) - نوار منو

تصحیح داده ها به کار می رود.

 که در سمت چپ صفحه نمایش ظاهر شده و روش سریعی برای انتخاب نحوه نمایش (view Bar)- نوار نما 

داده های پروژه در اختیار شما قرار می دهد.

 که پایین صفحه نمایش ظاهر می گردد.(Status Bar) - نوار وضعیت

 که در مرکز صفحه نمایش ظاهر می شود.(Project data) - اطلاعات و داده های پروژه

 

نماهای مختلف

 به ارائه 26 فرمت یا نمای از پیش تعریف شده برای مشاهده اطلاعات پروژه پرداخته استMicrosoft project

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

با نگاه کردن به پنج تصویر  زیر می توانید به تفاوت بین نماهای مختلف پی ببرید.تمام این پنج تصویر مجموعه واحدی از داده ها نمایش می دهند و تنها تفاوت آنها در این است که هر یک ، روی مفهوم بخصوصی از پروژه تاکید داشته و در نتیجه مدیر پروؤه را در جهت تحلیل داده های پروژه به روشهای مختلف ، یاری می دهند. فراگیری نحوه استفاده بهینه و بجا از نماهای مختلف یکی از مهمترین کلیدهای موفقیت این نرم افزار می باشد.

 

 چکونگی پیشروی کارها را در یک طرح کلی و نیز در یک خط زمانی نمایش می دهد. Gantt chart نمای

 

 یک فرمت تقویم سنتی را برای فعالیتهای برنامه ریزی شده  نمایش می دهد. اگر بخواهید رویCalendar نمای

زیر مجموعه ای از کار ها متمرکز شوید، این نما مفیدترین نما خواهد بود.

 

 شبیه به نمودارهای گردشی فلوچارت بوده و پیکانهای نمایش یافته در آن به نحوی Network Diagram نمای

بسیار موثر ساختار ارتباط کارها بایکدیگر را نشان می دهد.

 

 شبیه به صفحات گسترده بوده و دارای تعدادی سطر و ستون می باشد. به طور Resource Sheet نمای

 اطلاعات زیادی را در قالب جداول فشرده نمایش می دهند برای وارد کردن داده هاSheet کلی نماهای

از آن استفاده کنند.

 

 کارهای اختصاص یافته به هر منبع را به همراه مقدار کار برنامه ریزی شده Resource usage نمای

برای هر روز نمایش می دهد.

 

Gantt chart نمای

 را نشان می دهد. در این تصویر ناحیه لیست مراحل Gantt chartدر تصویر زیر اجزای تشکیل نمای

 در سمت چپ و ناحیه خط زمان را در سمت راست نشان داده شده اند. (Task list) پروژه

 

جدول مراحل پروژه

 (تصویر بالا) حاوی جدولی است که لیست مراحل Gantt chartصفحه گسترده موجود در سمت چپ نما

پروژه را نشان می دهد. این جدول دقیقا" مانند صفحات گسترده، حاوی چند سطر، ستون و خانه می باشد که در آن وارد شده و نمایش می یابند. هر یک از سطر های جدول مزبور بیانگر یکی از مراحل پروژه Projectمی باشد. همچنین هر ستون نمایش دهنده اطلاعات مربوط به یکی از فیلد های پایگاه داده های

می باشد.

 می پردازیم.Gantt chartاکنون به ارائه توضیحات خلاصه ای در مورد هر یک از ستونهای نمای

 

 

 

 

: این ستون بیانگر تعداد ساعتها، روزها یا هفته هایی است که برای انجام هر یک از Duration ستون

مراحل پروژه کورد نیاز می باشند.

: این ستون نشان دهنده تاریخ برنامه ریزی شده برای شروع هر مرحله از پروژه می باشد.Start ستون

: این ستون نشان دهنده تاریخ برنامه ریزی شده برای پایان هر مرحله از پروژه می باشد.Finish ستون

 مراحل صلف را که لازم است قبل از شروع (ID): این ستون شماره شناسایی Predecessors ستون

مرحله جاری تکمیل شده باشند نمایش می دهد.

: اگر منابع مشخصی برای یک مرحله در نظر گرفته شده باشند، نام آنها درResource Names ستون

این ستون نمایش می یابد.

خط زمان

 می نامند. اجزای تشکیل دهنده[Timeline] را خط زمان Gantt chart گاهی ناحیه سمت راست نمای

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

 

زمان سنج

در زمان سنج پیش فرض هر هفته به ایام تشکیل دهنده آن تقسیم شده است. در این زمان سنج، هفته در حکم واحد زمانی اصلی بوده و خطوط قائمی که تا پایین خط زمان ادامه یافته اند هر هفته را از هفته قبلی و بعدی آن جدا می کنند. همچنین در این زمان سنج، روز در حکم واحد زمانی فرعی می باشد. نکته مهم در این رابطه این است که به راحتی می توانید واحد های زمانی متفاوت را در خط زمان به نمایش در آوره و برچسبهای متفاوتی را به آنها اطلاق کنید. به هر ترتیب در حالت پیش فرض، هفته از روز یکشنبه  آغاز شده و تاریخ همین روز است که به عنوان برچسب هفته مربوطه نمایش می یابد.[Sunday]

 

 نام هریک از مراحل پروژه را نشانTask Name : ستون [subtask] اصطلاح جدید  زیر مرحله

می دهد. اگر لیست مراحل پروژه دارای ساختار درختی باشد، هر یک از مراحل دارای میزان تورفتگی معینی خواهد بود و این تورفتگی بیانگر ساختار درختی مراحل نسبت به یکدیگر می باشد. اگر نام یک مرحله دارای تورفتگی باشد ، مرحله مزبور در واقع زیر مرحله ای از یک مرحله کلی تر موسوم به مرحله خلاصه خواهد بود. نکته  (نماد مربع شکل کوچکی که حاوی علامت بعلاوه یا منها می باشد) در سمت چپ هر Outlineدیگر اینکه نماد

یک از مراحل خلاصه قرار دارد.

: جزئیات مهم مربوط به زیر مرحله های مختلف را[Summary task] اصطلاح جدید مرحله خلاصه

که به صورت تورفته در زیر آن نمایش یافته اند) خلاصه سازی می کند. برای نمونه تاریخ شروع هر مرحله خلاصه، منطبق بر تاریخ شروع اولین اولین زیر مرحله و تاریخ خاتمه آن منطبق بر تاریخ خاتمه آخرین زیر مرحله آن خواهد بود. ارزش هر مرحله خلاصه بستگی به مجموع ارزشهای کلیه زیر مرحله های آن خواهد داشت.

 

 در حکم علامتی است که رخداد های مهم یا تکمیل Milestone : هر Milestones اصطلاح جدید

 ها همانند مراحل کاری وارد فایل شما Milestoneمراحل اساسس پروژه را اعلام می کند. هر چند

می شوند، اما نوعا" هیچ کاری به طور مستقیم به آنها محول نشده و در عوض علائمی برای مشخص کردن نقاط حساس پروژه در سطر مربوط به آنها نمایش می یابند.

 

: این دو عبارت در عمل [Successor] و مرحله خلف [Predecessor] اصطلاح جدید مرحله سلف

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

 

: از پیوندها برای مشخص کردن ترتیب قرار گیری مراحل پروژه در برنامه[link] اصطلاح جدید پیوند

کاری استفاده می شود . هنگامی که دو مرحله به یکدیگر پیوند داده می شوند، یکی از آنها در حکم مرحله سلف و دیگری در حکم مرحله خلف خواهد بود.

نمایش یا عدم نمایش خطوط پیوند به میل شما بستگی دارد. اگر احساس می کنید این خطوط باعث شلوغی  را از منوی Layout  صفحه نمایش شما می شود، می توانید /انها را مخفی کنید. به این منظور گزینه

 نمایان شود (تصویر زیر را ملاحظه کنید) .سپس رویLayout انتخاب کنید تا کادر محاوره Format

 کلیک کنید.OK و در پایان روی دکمه Linkاولین دکمه ناحیه

 

تنظیم واحد زمانی در خط زمان

 می توانید به سرعت واحدهای زمانی کوچکتر (برای مثال روز به جای Zoom In با استفاده از ابزار

هفته یا ساعت به جای روز) را جایگزین واحد های زمانی جاری کنید. همچنیین با استفاده از ابزار

 می توانید به سرعت واحد های زمانی بزرگ را به صورت فشرده جایگزین واحد های Zoom Out

زمانی جاری نمایید.

 

تغییر قالب تاریخها

 می باشد. این فرمت راyy/mm/dd به صورت Projectقالب (فرمت) پیش فرض برای تاریخها در

 پروژه مشاهده کنید. اما می توانید فرمت تاریخها را به یکی Finish  و Startمی توانید در ستون های

 تغییر داده و یا احیانا" ساعت شبانه روز را نیز به Projectاز چندین فرمت دیگر قابل استفاده در

تاریخهای خود اضافه کنید. همچنین توجه داشته باشید، هر قالبی که برای نمایش تاریخها انتخاب کنید،  به کار رفته و به تمام فایل هایی که باز Microsoft Projectبرای تمام فیلد های تاریخ در تمام نماهای

می کنید، اعمال خواهد شد.

برای تغییر قالب تاریخها از مراحل زیر پیروی می کنید:

 نمایان Options انتخاب کنید. با این عمل کادر محاوره Tools  را از منوی Options گزینه

خواهد شد.

 برگزینید.Data form قالب مورد نظر خود را از طریق کادر View در زبانه

 

 کلیک کنید.Okبرای اعمال قالب جدید به تاریخهای پروژه ، روی دکمه

 

تغییر ستونهای جدول مراحل

گاهی ممکن است بخواهید عنوان ستونهای جدول مراحل را تغییر داده و یا حتی مایل به تغییر نوع محتویات یک ستون باشید.

Column Definition انتخاب کنید تا کادر محاوره Insert  را از منوی Columnبه این منظور گزینه 

ظاهر شود (شکل زیر).

اگر بخواهید محتویات یک ستون را تغییر دهید ، کافی است نام فیلدی را که مایل به نمایش داده های آن در  وارد کنید.Field nameستون مزبور هستید، در کادر

 وارد کنید. اگر هیچ چیزیTitle برای تغییر دادن عنوان یک ستون ، عنوان جدید مورد نظر را در کادر

 نام فیلد مربوطه را برای عنوان ستون نیز مورد استفاده قرار خواهد Project وارد کنید، Titleدر کادر

داد.

 و برای تنظیم نحوه تراز شده داده هایAlign titleبرای تنظیم نحوه تراز شدن عنوان یک ستون از کادر

 استفاده کنید.Align dataیک ستون از کادر

 کلیک کنید.OK ، روی دکمه Columns Definition برای اعمال تغییرات انجام شده در کادر محاوره

 

شروع یک فایل پروژه جدید

هنگام شروع یک فایل پروژه جدید ، نیاز به تاریخ شروع و خاتمه پروژه مزبور برای برنامه خواهید داشت (معمولا تاریخ شروع پروژه تاریخی است که انجام مراحل پروژه عمال آغاز می شود و تاریخ خاتمه پروژه زمانی است که آخرین مرحله از پروژه به پایان می رسد).

 

به منظور تعیین تاریخهای ثابت شروع یا خاتمه پروژه لازم است از این مراحل پیروی نمایید:

 انتخاب کنید. با انجام این عمل ، کادر محاوره Project را از منوی Project Information

 نمایان خواهد شد.Project Information

Project Start Data  کلیک کرده و یکی از دو گزینه Form روی پیکان مجاور کادر لیست

 را برگزینید.Project Finish Data یا

Start data را انتخاب کردهاید، روی فیلد Project start dataدر صورتی که در بند قبل گزینه  

Project finish dataکلیک کرده و تاریخ ثابت شروع پروژه را در آن وارد کنید. همچنیین اگر گزینه

 کلیک کرده و تاریخ ثابت خاتمه پروژه را در آن وارد نمایید.Finish dataرا انتخاب کرده اید، روی فیلد

 

 

ثبت هدف پروژه

یکی از اولین کارهایی که باید در هنگام شروع یک پروژه جدید انجام دهید، تشریح هدف پروژه به طور واضح می باشد.

 انتخاب کنید. با انجام این عمل کادر محاوره File  را از منوی Propertiesبرای ثبت هدف گزینه

Summary نمایان می گردد. در کادر محاوره مزبور، اطمینان حاصل کنید که زبانه Properties

زبانه فعال می باشد.

 وارد کنید.Titleعنوانی را که مایلید  در گزارشها چاپ شده از فایل پروژه نمایش می یابد، در کادر

 (نام کابر) متعلق به شما را نشان می دهد . اما در صورتUsername به طور خود کار Author کادر

تمایل می توانید آن را تغییر داده و نام واقعی خود را وارد کنید.

 تایپ نمایید. Managerنام مدیر پروژه را در کادر

 وارد کنید .Companyنام شرکت یا سازمان خود را در کادر

 تایپ کنید. امکان وارد کردن هزاران کاراکتر در این کادر وجود دارد. اما جملاتی برای تشریح هدف پروژه در این کادر وارد می کنید، نوعا بسیار کوتاه تر از این Commentsهدف پروژه را در کادر

هستند.

 

 

 

 

ایجاد لیست مراحل

روشهای متعددی برای لیست فعالیتها یا مراحل تشکیل دهنده پروژه وجود دارند. موسوم ترین روش، تولید یک طرح کلی از کارهایی است که باید در پروژه انجام شوند. این کار را می توان با لیست کردن بلوکهای بزرگ کاری یا به عبارت دیگر ، فازهای اصلی پروژه آغاز کنید. سپس هر فاز اصلی را به مراحل کوچک تر تشکیل دهنده آن که زیر مرحله نام داشته و مجموعه آنها تشکیل دهنده فازهای اصلیمزبور می باشند، تجزیه نمایید. در عین حال ممکن است هر یک از زیر مرحله های داخلی شان تجزیه کرده و این کار را تا زمانی ادامه می دهیم که کلیه مراحل تشکیل دهنده چروژه پوشش داده شوند.

 

تولید لیست مراحل اولیه

ساده ترین روش برای شروع ایجاد لیست مراحل این است که در ابتدا لیست مراحل اصلی را در جدول موجود در   Task Name وارد نمایید. به این منظور به ترتیب در خانه های ستون  Gantt Chartسمت چپ نمای

کلیک کرده و نام مراحل اصلی مورد نظر را در آن تایپ کنید. می توانید از کلیه کاراکتر های موجود در صفحه کلید از قبیل اعداد و فواصل برای وارد کردن نام مراحل مورد نظر استفاده کنید.

به طور خودکار فیلد Project را پس از وارد کردن نام هر مرحله فشار دهید Enterهنگامی که کلید

 (یک روز) تکمیل کرده و برنامه ریزی 1 day را با وارد کردن مدت زمان پیش فرض  Duration

مرحله مزبور را به نحوی انجام می دهد که شروع و خاتمه آن با تاریخهای ثابت شروع و خاتمه مشخص  (پس از وارد کردن هر مرحله) Enterشده برای پروژه منطبق باشند. اتفاق دیگری که با فشردن کلید

 می باشد.Task Nameروی می دهد فعال شده خانه بعدی ستون

 

 

ایجاد یاد داشت در مورد مراحل

Task به منظور افزودن یک یادداشت به هر مرحله ، مرحله مزبور را انتخاب کرده و روی ابزار

Task Information کلیک کنید . به این ترتیب کادر محاوره Standard واقع در نوار ازار Notes

 وارد کنید.Noteمی توان یادداشت مورد نظر را مستقیما در کادر

 

 هاMilestone وارد کردن

درحین ایجاد لیست مراحل یک  پروژه ممکن است بخواهید برخی از پروژه به منظور نشانه گذار                     کاملا شبیه بهMilestoneرخدادهای مهم و تکمیل فاز های اصلی آن به کار می روند. وارد کردن

 (مدت انجام) آنها برابر Durationوارد کردن سایر مراحل معمولی پروژه می باشد با این تفاوت که فیلد

 هر مرحله را که مدت انجام آن صفر باشد، به عنوان یک Projectصفر تنظیم می شود . در واقع 

 تفسیر کرده و در ناحیه خط زمان نمادی به شکل لوزی برای آن نمایش می دهد.Milestone

 

وارد و حذف کردن مراحل

در صورتی که نیاز به وارد کردن یک مرحله جدید در لیست مراحل دارید، روی ردیفی که مایلید مرحله     انتخاب Insert را از منوی New Taskرا فشار دهید (یا گزینه Insertجدید را در آن قرار دهید و کلید

 یک ردیف خالی را به جای ردیف مربوط به مرحله جاری وارد کرده و Projectنمایید). به این ترتیب

مرحله جاری را به اندازه یک ردیف به پایین منتقل می کند (مراحل بعدی نیز خواه نا خواه به اندازه یک ردیف به پایین منتقل می شوند).

اگر مایل به حذف یک مرحله باشید، کافی است روی خانه دلخواهی در ردیف مربوط به آن کلیک کنید و   کلیک کنید).Edit از منوی Delete Task را فشار دهید (یا روی گزینه Deleteکلید 

 

تورفتگی و بیرون رفتگی مراحل

 برای اعمال تورفتگی به یک یا چند مرحله، ردیف مربوط به آنها را در جدول مراحل انتخاب کنید .

ID(این کار را با کلیک کردن روی یکی از خانه های ردیفهای مورد نظر و یا کلیک کردن روی شماره

 را از نوار منو انتخاب کرده وIndent و Outline ، Projectخانه های مزبور انجام دهید). سپس گزینه

 نام مراحلProject کلیک کنید. به این ترتیب ، Formatting واقع در نوار ابزار Indentیا روی ابزار

انتخاب شده را به صورت تورفته نمایش داده و مرحله ای را که بلافاصله بالای آنها قرار دارد، به یک مرحله خلاصه تبدیل می کند.

 

 درعین حال می توان معکوس این فرایند را نیز انجام دهید. در صورتی که مایل باشید یک مرحله زیر مرحله ای از یک مرحله خلاصه به حساب نیاید، می توانید تورفتگی نام مرحله مزبور را با انتخاب گزینه Formating از  Formatingنوار ابزار Outdent و یا کلیک کردن روی ابزار Outdent و Outline  ، Projec

از بین ببرید.

تغییر گزینه های نمایش مربوط به نمایش مراحل

به منظور مشاهده یا اختفای ویژگیهای قالب بندی از قبیل سیستم شماره گذاری مراحل خلاصه از روال زیر پیروی کنید:

 به صورت نمایش یافتهOptions انتخاب کنید تا در کادر محاوره Tools  را از منوی Optionsگزینه

در زیر ظاهر گردد.

 کلیک کنید.Viewروی زبانه

Show summaryجهت ناپدید کردن کلیه مراحل خلاصه (بدون ناپدید شدن زیر مرحله های آنها) کادر کنترل

 را غیر فعال کنید.این کادر کنترلی در حالت پیش فرض فعال است.task

Show project به منظور نمایش یک مرحله خلاصه کلی که در بر دارنده کل مراحل پروژه باشد، کادر کنترل

 صفر در لیست مراحل نمایان خواهد گردید.ID  را فعال کنید. این مرحله خلاصه با شماره Summary task

Indent nameجهت از بین بردن تورفتگی اعمال شده به نام مراحل (حذف ساختار درختی مراحل) کادر کنترل

 را غیر فعال کنید.

 Show outline number به منظور نمایش یافتن شماره های خاصی در کنار نام هر مرحله ، کادر کنترل

را فعال کنید.سیستم شماره گذاری در این حالت، یک سیستم قانونمند می باشد.

اگر مایل نیستید نمادهای خلاصه (که به شکل مربعهای کوچک حاوی علامت بعلاوه و منها هستید) در مجاورت  را غیر فعال نمایید.Show outline symbolنام مراحل ظاهر شوند، کادر کنترل

 

 

ایجاد مراحل تکرار شونده

برای برنامه ریزی مراحلی که در مقاطع مختلف تکرار می شوند ، از روال زیر پیروی کنید.

ردیف مربوط به مرحله ای را که مایلید با یک مرحله تکرار شونده جایگزین شود، انتخاب نمایید.

Recurring Task انتخاب نمایید تا کادر محاوره ای Insert را از منوی  Recurring Task گزینه

 به صورت نمایش یافته در تصویر زیر ظاهر گردد. Information

 

 وارد کنید.Task Nameنام مرحله مورد نظر را در کادر

 وارد نمایید.Duration مدت زمان هر بار انجام مرحله تکرار شونده را در کادر

 انتخاب کنیدRecurrence patternدوره زمانی تکرار مرحله مورد نظر را در ناحیه مورد نظر را در ناحیه

 در این ناحیه ، به ترتیب برای دوره های زمانیYearly و Monthly ، Weekly ، Daily (گزینه های

روزانه ، هفتگی ، ماهانه و سالانه قابل انتخاب هستند). نوع گزینه نمایش یافته در سمت راست ناحیه

 به دوره زمانی ای بستگی دارد که در این ناحیه انتخاب می کنید.Recurrence pattern

در نهایت لازم است تعداد دفعات انجام مرحله تکرار شونده را مشخص نمایید. به این منظور باید تاریخ اولین بار  مشخص کنید. Start date انجام مر حله مزبور در کادر

 مشخص کرده و یا تعداد End by dateسپس می توانید تاریخ آخرین بار انجام مرحله مورد نظر را در کادر

 تاریخ خاتمه پروژهProject تعیین کنید. به این ترتیب End After دفعات وقوع مرحله مزبور را در کادر

 پیش فرض مشخص می نماید. اما در صورت نیاز می توانید آن را تغییر دهید.End by date را به عنوان تاریخ

 

تعریف واحد های مدت زمان

مدت زمان مورد نظر برای انجام هر مرحله در یکی از پنج واحد دقیقه، ساعت، روز، هفته یا ماه قابل ورود          می باشد. برای مشخص کردن واحد مدت زمان هر مرحله می توانید نام واحد مورد نظر را به طور کامل تایپ کرده ، از مخفف آن استفاده نموده و یا اولین حرف آن را درج نمایید. برای مثال اگر مایلید مدت زمان 2 هفته را برای    استفاده کنید. 2w یا 2Wks، 2 Weeksیک مرحله مشخص کنید، می توانید از هر یک از عبارات  

 

تغییر دادن روزهای کاری

به منظور تغییر دان روز های کاری یا غیر کاری ، از مراحل زیر پیروی کنید:

 انتخاب کنید .به این ترتیب کادر محاوره Tools  را از منوی Change Working Timeفرمان

 نمایان می گردد.Change Working Time

 هستید، انتخاب کنید.For تقویمی را که مایل به تصحیح آن در کادر لیست

 کلیکChange Working Time واقع در کادر محاوره New برای تولید یک تقویم جدید  روی دکمه

 به صورت زیر نمایان خواهد شد.Create new Base Calendarکنید. به این ترتیب کادر محاوره

 

 وارد کنید.Name نام مورد نظر برای تقویم جدید را در فیلد

 راCreate new base calendar در صورت که مایل به تولید تقویم جدید از صفر هستید، گزینه

برگزینید. اما اگر می خواهید کار خود را با استفاده از یک کپی از تقویم دیگر آغاز کنید که حاوی تعتیلات رسمی و سایر مشخصه های از پیش تعیین شده می باشد، لازم است نام تقویم مزبور را از طریق لیست کرکره ای    انتخاب کنید.Make a copy of

 کلیک کنید.Ok و روی دکمه

سپس روی یک تاریخ مشخص که مایل به تغییر وضعیت کاری آن هستید ، کلیک کنید.

 کلیک کنید Details را انتخاب  وروی دکمه Work Weeks برای تغییر دادن روز هی هفته از سر برگ

 کلیک کنید.Details را انتخاب و روی دکمه Exceptions و برای تغییر یک روز  از سربرگ

  از دکمه هی رادیویی سمت راست تقویم برای تغییر وضعیت تاریخهای انتخاب شده Details در کادر

استفاده کنید. عملکرد این دکمه ها در لیست زیر شرح داده شده است:

 را انتخابNonworking Timeبرای تغییر تاریخهای انتخاب شده  به تاریخهای غیر کاری ، گزینه

کنید.

برای تغییر تاریخهای انتخاب شده به ایام کاری با ساعتهای پیش فرض (معمولا 8 صبح تا 12 ظهر و 1تا 5 بعد از   استفاده کنید.Nondefault working Timeظهر) از گزینه

توجه  داشته باشید که نام این گزینه نباید شما را دچار اشتباه کند. منطق این نام گذلری این است  که اگر یک روز غیر کاری پیش فرض (نظیر شنبه) را برگزینید و بخواهید آن را به یک روز قابل برنامه ریزی (کاری) تبدیل نمایید

 کلیک کنید.Nondefault working time ، باید روی گزینه

 را می توانید برای بازگرداندن تاریخ تصحیح شده به وضعیت پیش فرض مورد استفاده قرار Use default گزینه

 کلیک کنید،Use defaultدهید بنابر این اگر هر یک از روزهای دوشنبه تا جمعه را انتخاب کرده و روی گزینه

این روزها به روزهای کاری (با ساعت پیش فرض) تبدیل خواهند شد. همچنین در صورت انتخاب هر یک از روزهای شنبه و یکشنبه و کلیک کردن روی این گزینه ، این روزها به روز های غیر کاری تبدیل خواهد شد.

 

 

 کلیک کنید.Ok پس از اتمام ویرایش تویمها، روی دکمه

 

 

 

Non انتخاب کرده وسپس در زبانه Form را از منوی  Timescaleبرای تعیین تقویم مبنا جدید گزینه

 تقویم مبنا مورد نظر را انتخاب کنید.Calendar انتخاب کرده و در کادر Working Time

 

 

تعریف انواع روابط وابستگی

در اکثر وابستگی بین مراحل، تاریخ خاتمه مرحله سلف تعیین کننده تاریخ شروع مرحله وابسته (خلف) می باشد. برای نمونه در مثال فونداسیون و دیوار چینی رابطه وابستگی بین مرحله سلف (ایجاد فونداسین) و مرحله خلف (بنا [Finish – to – Start]کردن دیوار)  برقرار است. این نمونه وابستگی را اصطلاحا" رابطه  پایان- به –شروع

می نامند(جدول صفحه بعد را ملاحظه کنید. زیرا چنین رابطه ای پایان مرحله سلف را به شروع مرحله خلف پیوند می دهد.

اما پیوند پایان – به – شروع تنها یکی از انواع پیوند های ممکن است. مثلا می توانید مراحل را به نحوی به یکدیگر پیوند دهید که با یکدیگر آغاز شوه و یا با یکدیگر پایان پذیرند. در جدول صفحه بعد چهار نوع رابطه پیوندی ممکن را نشان می دهد. در جدول مزبور ملاحظه خواهید کرد که نام هر یک از این روابط ، متشکل از تاریخ شروع یا خاتمه مرحله سلف و به دنبال آن تاریخ شروع یا خاتمه مرحله خلف می باشد.

 از یک کد مختصر دو حرفی برای اشاره به هر یک از انواع روابط فوق الذکر استفاده می کند. Project همچنین

استفاده می شود. اولین حرفFinish  به جای واژه F  و از حرف Start  به جای واژه S در این کد از حرف

تشکیل دهنده کد، مربوط به مرحله سلف و دومین حرف آن مربوط به مرحله خلف است.

توضیحات

کد

نوع وابستگی

مرحله خلف در تاریخ پایان مرحله سلف شروع می شود.

FS

Finish – to – Start

هر دو مرحله در تاریخ معینی آغاز می شوند.

SS

Start – to – Start

هر دو در تاریخ معنی به اتمام می رسند.

FF

Finish – to – finish

تاریخ شروع مرحله سلف تعیین کننده تاریخ خاتمه مرحله خلف می باشد.

SF

Start- to - Finish

 

 

 

 

ایجاد تاخیر و تعجیل در مراحل پیوندها

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

:  منظور از مدت تاخیر، مدت اضافه ای است که بین تاریخهای پیوند دهنده دو مرحله[Lag time] مدت تاخیر

سلفو خلف در نظر گرفته می شود . نتیجه این عمل این است که تاریخ برنامه ریزی شده برای مرحله سلف به اندازه مدت تاخیر به تعویق می افتد.

: این ویژگی برای انتقال تاریخ برنامه ریزی شده برای شروع مرحله خلف به تاریخی [Lead time] مدت تعجیل

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

) . اما می توان آنها را در 2 daysمدت تاخیر و تعجیل معمولا بر حسب واحد های زمانی وارد می شود (مثلا

قالب درصدی از مدت انجام مرحله سلف نیز وارد نمایید. برای مثال 10 درصد به این معنی است که شروع مرحله خلف، به اندازه 10 درصد کل مدت انجام مرحله سلف به تاخیر بیفتد.همچنین تعجیل 10 درصد به معنی شروع مرحله خلف با تعجیلی برابر با 10 درصد مدت انجام مرحله سلف می باشد.

 مرحله سلف را وارد کنید و سپس کد نوع ID  ، Predecessor برای ایجاد تاخیر و تاجیل کافیست در ستون

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

2FS+2 days

2FS-2 days

 

 

: منابع پروژه شما می توانند شامل [Resource pool]  و لیست منابع [Resources]  اصطلاح جدید منابع

افراد مدیریت کننده و انجام دهنده مراحل ، امکانات، تجهیزات و مواد اولیه لازم برای انجام مراحل و کاربرد آنها برای تکمیل مراحل باشند. همچنین، افراد مزبور می توانند کارمندان ، پیمانکاران یا کارمندان موقت شما یا سازمان محل کارتان باشند. مجموعه منابع در دسترس برای کار روی پروژه شما، لیست منابع نامیده می شود.

 می باشد که کارهای محولOverallocated : یک منبع، زمانی   overallocated اصطلاح جدید منابع

شده به آن در یک محدوده زمانی مشخص ، بیش از حد توانش باشند. این موضوع اغلب زمانی به وقوع می پیوندد که یک منبع را به مراحل متعددی که برای انجام در یک بازه زمانی مشخص برنامه ریزی شده اند ، اختصاص       می دهید.

Resource Sheet استفاده از نمای

Resourceاگر در نظر داشته باشید منابع پروژه خود را به طور کامل تری تعریف نمایید، می توانید از طریق نمای

 آغاز کنید.Sheet

 ، از مراحل زیر پیروی کنید:Resource Sheetبه منظور وارد کردن منابع در نمای

Resource Sheet  و یا کلیک کردن روی دکمه View  از منوی Resource Sheet با انتخاب گزینه

 به نمایش در آورید.Resource Sheet ، سند پروژه را در نمای Viewدرنوار ابزار

اطلاعات منابع پروژه را در ستونهای این نما وارد کنید. برای مشاهده ستونهای انتهای سمت راست جدول ،      می توانید از نوار مرور افقی استفاده کنید.

 

ID Value ستون

 برای شما محاسبه شده است.Project را نشان می دهد که توسط ID این ستون فیلد

Indicators ستون

شاخصهای نمایش یافته در این ستون ، شما را از برخی اطلاعات اضافی در مورد یک منبع آگاه می کنند.

Name ستون

همیشه هر منبع را با یک نام یکتا معرفی می کنند. نام منبع می تواند حاوی هر کاراکتری بجز اسلش، ویرگرل و براکت باشد.

Project  :[Material resource]  و منابع مادی [Work resource] اصطلاح جدید منابع کاری

به شما امکان می دهد، بین منابع ((کاری)) و منابع ((مادی)) تفاوت قائل شوید. منابع کاری پس از اتمام پروژه تمام نمی شموند اما منابع مادی تمام می شوند.

Type ستون

در این ستون می توانید بین منابع کاری (که کارهای مراحل را انجام می دهد، ولی به مرور زمان مستهلک        نمی گردد) و مادی (که جزء ملزومات انجام کارهای مراحل پروژه بوده مرور زمان مستهلک می شوند) تمیز قائل شد.

Material label ستون

این فیلد برای تعریف واحد اندازه گیری مورد استفاده برای منابع مادی به کار می رود (به عنوان نمونه ((گالن)) ((پیمانه))، ((تن))، ((لیتر)) و از این قبیل باشد).از این واحد هنگامی استفاده خواهید کرد که بخواهید منبعی را به مراحل پروژه اختصاص داده و یا هزینه واحد منبع را تعریف کنید.

 

Initials ستون

در این ستون ، نمایش کوتاه تر یا به عبارت دیگر مخفف نام منابع را مشاهده می کنید.

Group ستون

می توانید هر یک از منابع پروژه را به عنوان عضوی از یک گروه معرفی کنید.در این صورت خواهید توانست از برچسب گروه برای مرتب یا فیلتر کردن لیست منابع استفاده کنید.

Max Units ستون

از این فیلد برای اعلام حداکثر تعداد واحد های یک منبع که برای تخصیص به مراحل پروژه در دسترس هستند، استفاده کنید.از این فیلد برای مواردی سود می جوید که در آنها یک منبع بیش از حداکثر تعداد واحد های خود به  شده است).Overallocated مراحل مختلف پروژه اختصاص داده شده است (یا به عبارت دیگر

فرمت پیش فرض برای برای این فیلد درصد می باشد.یعنی اگر یک نفر تمام وقت در اختیار ما است واحد آن 100% است و اگر نصف وقت کاری در اخیار ما است 50% و اکر دونفر است 200% و به همین ترتیب است.

 انتخاب کنید و سپس Tools  را از منوی Optionبه منظور تعیین فرمت پیش فرض برای واحد های منع گزینه

 کلیک کنید.Scheduleروی سربرگ

Percentage را باز کنید و یکی از فرمت Show assignment unit as aلیست کرکره ای مربوط به فیلد

 (دهدهی) را برگزینید.Decimal (درصد) یا

 

 

Standard Rate ستون

نرخ استاندارد یک منبع کاری برابر است با هزینه که باید در واحد زمان برای به کار گیری منبع مزبور در ساعات کاری معمول صرف شود.جهت تعیین مقدار این فیلد برای یک منبع، نرخ استاندارد را به صورت یک عدد دهدهی در این ستون تایپ نمده و به دنبال آن یک اسلش و در پایان، حرف مخفف واحد زمانی مقتضی را وارد کنید. مانند:

150000.00 /ریالday

 

 انتخابTools  را از منوی Optionبه منظور تغییر دادن فرمت پیش فرض واحد پولی در پروژه جاری، گزینه

 را در کادر محاوره ظاهر شده برگزینید.Viewکنید سپس زبانه

 

 تایپ کنید.Symbolنماد پول مورد نظر خود را در فیلد

 را انتخاب کرده و یکی از چهار حالت پیشنهاد شده را بر گزینید.Placementلیست کرکره ای مقابل فیلد

 تایپ کنید.Decimal digitsتعداد ارقام پس از اعشار دلخواه خود را در فیلد

 کلیک کنید.OKبه منظور بستن کادر محاوره روی دکمه

Overtime Rate ستون

 (نرخ اضافه کاری) تنها به منابع کاری اعمال شده و بیانگر نرخ دستمزد این منابع در ساعت خارج از زمان کاری می باشد.Overtime rate فیلد

Cost/use ستون

از این فیلد برای هزینه هایی که تنها یک بار برای هر واحد منبع اختصاص داده شده صرف می شوند، و ارتباطی به ساعتهای کاری منبع مزبور ندارند.

Accrue At ستون

 می باشد. اما در صورت تمایل می توانیدProrated روش Projectروش استنتاج پیش فرض مورد استفاده در

 به یکی از دو حالتAccrue atاین روش را از طریق لیست کرکره ای  نمایش یافته در هر یک از خانه های ستون

 تغییر داد.End یا Start

Base Calendar ستون

تقویم مربوط به هر منبع، به یک تقویم مبنا پیوند دارد. این تقویم مبنا را می توانید از طریق این ستون انتخاب کنید.

Code ستون

از این فیلد برای مشخص کردن کد شمارنده یا هر کد دیگری که مایلید به همراه هزینه منابع پروژه نمایش یابد، استفاده کنید.

تخصیص منابع به مراحل پروژه

 واقع در نوارTask Information دابل کلیک کرده یا Resource Nameبه منظور تخصیص منابع در فیلد

 نام منابع و واحدResources را انتخاب کنید و در کادر Resource کلیک کنید سپس سربرگ standard

آنها را تعیین کنید.

 

 

 و برایCost  و برای نشان دادن میزان هزینه هر مرحله فیلد Workبرای نمایش میزان کار هر مرحله فیلد

 را وارد کنید.Completeتعیین ونشان دادن میزان پیشرفت کار فیلد

مشاهده و ویرایش تاخیر های یک منبع

 به نمایش در آورید.Task Usage یا Gantt Chart  مانند Taskبه این منظور سند پروژه را در یک نمای

 را به دو نیمه تقسیم کنید.Project  ، پنجره Windows از منوی Slipبا انتخاب کزینه

 را از منویResource Schedule کلیک راست کرده و گزینه Task Formدر محلی دلخواه از نمای

میانبر ظاهر شده انتخاب کنید.

 وارد کنید به این منظور لازم است واحد زمانی مورد نظر خود را به دنبالDelay مقدار تاخیر مورد نظر را در ستون

تاخیر مورد نظر درج نمایید.

 

 

 

Resource Usage  می توان میزان استفاده مراحل از منابع را نشان داد و از نمای Task Usageاز نمای

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

 

 

 

وارد کردن اضافه کاری

 به منظور کاستن از زمان کاری معمول یک منبع، می توانید با پیروی از روال زیر ساعت اضافه کاری مشخصی را برای منبع مزبور منبع تعیین نمایید.

 را در صفحه نمایش احضار کنید. Taskیک نمای

مرحله را که مایل به برنامه ریزی اضافه کاری برای آن هستید، در صفحه نمایش انتخاب کنید.

 ف یک نمای ترکیبی را به نمایش در آورید.Windows از منوی Splitبا انتخاب گزینه

 را از منوی میانبرResource Workدر محل دلخواهی از نیمه پایینی صفحه کلیک راست کرده و گزینه

 در نیمه پایینی صفحه نمایش نمایان Resource Workظاهر شده انتخاب نمایید. با انجام این عمل، جزئیات

می شوند.

 را انتخاب کرده و مقدار اضافه کاری مورد نظر را در آن وارد کنید.Ovt. Workفیلد

 کلیک کنید.Ok به منظور تکمیل عملیات ، روی دکمه

 

ایجاد گزارش ها

 چندین گزارش از پیش تعریف شده وجود دارد.Resource Usage و Task Usageعلاوه بر نماهای

 ، از مراحل زیر پیروی کنید.Projectبه منظور مشاهده پیش نمایش گزارشها هزینه توزیع شده به همراه

 انتخاب کنید.View را از منوی Report گزینه

 

مکانیزه کردن سیستم حسابداری دانشگاه علوم پزشکی

پروژه حاضر شرحی بر اتوماسیون سیستم حسابداری دانشگاه علوم پزشکی است. که حسابداری دانشگاه را از سیستم سنتی و کاغذی به سیستم مکانیزه تبدیل می کند که میزان سرعت و دقت کار افزایش و میزان امنیت اطلاعات بالا می رود. دانشگاه علوم پزشکی و خدمات بهداشتی درمانی زیر مجموعه وزارت بهداشت ، درمان و آموزش پزشکی است که وظیفه آن ارائه خدمات بهداشتی درمانی و آموزش پزشکی است که از مجموعه های زیر تشکیل شده است که وظایف هر کدام عبارت است ازبخش آموزش ،{آموزش دانشجویان و امو دانشجویی} ، بخش غذا و دارو {تامین دارو بیمارستانها و نظارت بر مواد غذایی و آرایشی بهداشتی} ، بخش بهداشت {آموزش مردم و پیشگیری از بیماری ها} ، بخش درمانی {نظارت بر درمان و پزشکان بیمارستانها} ، بخش پژوهش {انجام امور تحقیقاتی و کار آفرینی و دادن تصحیلات} ، بخش پشتیبانی {جمع حسابهای بخش های دیگر ، حسابداری کل دانشگاه ، تخصیص بودجه و کارهای انبار داری} و با نهاد خارجی زیر در ارتباط است . بانکها مانند (بانک رفاه شعبه دانشگاه علوم پزشکی) ، سازمان های بیمه مانند (اداره خدمات درمانی ، سازمان تامین اجتماعی و سایر مراکز بیمه طرف قرار داد با دانشگاه علوم پزشکی) ، امور مالیاتی ، فروشنده گان دارو مانند (خوارزمی ، شرکت کارخانجات دارو پخش تهران) ، بیمارستانها و شرکت های خرید تجهیزات پزشکی .

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

 

 

 

Feasibility Report گزارش امکان سنجی

 

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

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

بخش غذا و دارو وظیفه تامین دارو ها ، تجهیزات پزشکی و امکانات مورد نیاز بیمارستانها  و نظارت بر مواد غذایی و آرایشتی مراکز بهداشت و درمان دارد.

بخش درمان وظیفه نظارت بر در مان و کار پزشکان را دارد.

بخش پژوهشی وظیفه رسیدگی به تحقیقات و طرح های کار آفرینی و دادن تصحیلات به آنها را بر عهده دارد.

بخش بهداشت وظیفه آموزش به مردم و پیشگیری از بیمای ها و نظارت بر کار مراکز بهداشتی و درمانی را دارد.

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

دانشگاه علوم پزشکی با نهاد های خارجی زیر در ارتباط است . بانکها مانند (بانک رفاه شعبه دانشگاه علوم پزشکی) که عملیات هایی مانند  دریافت و وصول چک را انجام می دهد ، سازمان های بیمه مانند (اداره خدمات درمانی ، سازمان تامین اجتماعی و سایر مراکز بیمه طرف قرار داد با دانشگاه علوم پزشکی) که عملیاتی مانند دریافت نسخ بیمه بیماران و پرداخت  هزینه آن  ، امور مالیاتی که عملیات دریافت مالیات و نظارت بر دارایی دانشگاه را انجام می دهد ، فروشنده گان دارو مانند (خوارزمی ، شرکت کارخانجات دارو پخش تهران) که عملیات خرید دارو از داروسازان و کشور های خارجی و فروختن آنها به دانشگاه علوم پزشکی برای مصرف بیمارستانها  ، بیمارستانها که عمیات ارسال نسخ بیمه بیماران و در یافت مبلغ بیمه و شرکت های خرید تجهیزات پزشکی که تجهیزات پزشکی را از کارخانه های داخلی و کشور های خارجی خریده و آن ها را برای استفاده بیمارستانها در اختیار دانشگاه علوم پزشکی قرار می دهد.

در دانشگاه علوم پزشکی سیستم حسابداری آن در حال حاضر به صورت دستی و کاغذی عمل می کند که استفاده از سیستم دستی و کاغذی معایب زیر را دارد .

به دلیل  اینکه بیشتر کار های حسابداری را انسان انجام می دهد و انسان نیز دچار خطا می شود امکان اشتباه و خطا در سیستم بالاست ، سرعت بسیار پایین است چون انسان در مقابل وسایل الکترونیکی بسیار کند است  و وقت زیادی را باید صرف نوشتن اطلاعات بر روی کاغذ و خواندن آنها کرد ، حجم اطلاعات نگهداری شده در بایگانی زیاد است و مرتب کردن ، خواندن و قرار دادن اطلاعات در آنها باعث صرف وقت زیادی می شود ، امنیت اطلاعات پایین است به دلیل آنکه اطلاعات ذخیره شده بر روی کاغذ نوشته شده است و کاغذ دوام زیادی ندارد ممکن است پس از سالها اطلاعات قابل بازیابی نباشد ، برای انقال اطلاعات بین بخش های داخلی و نهاد های خارجی باید اطلاعات را به صورت دستی انقال دهیم که این باعث کند شدن کار و امنیت اطلاعات پایین        می آید.

با مکانیزه کردن این سیستم در وقت و هزینه دانشگاه علوم پزشکی صرفه جویی می شود ، میزان دقت بالا می رود و امکان اشتباه و خطا نیز کاهش می یابد ، سرعت عملیات حسابداری به میزان قابل توجهی افزایش می یابد ، حجم اطلاعاتی بسیار کم می شود و سرعت خواندن و نوشتن اطلاعات نیز افزایش می یابد ، امنیت اطلاعات بسیار بالا می رود و برای وارد شدن به بخش اطلاعات نیاز به رمز عبور دارد و برای انتقال اطلاعات بین بخش های داخلی و نهاد های خارجی نیاز نیست اطلاعات را به صورت دستی انتقال دهیم ،؛ فقط کافیست اطلاعات  که می خواهیم انقال دهیم برای سیستم مورد نظر به اشتراک بگذاریم که هم سرعت انتقال افزایش می یابد و هم امنیت اطلاعات به خطر نمی افتد.

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

Logical DFD

Context diagram

 

سازمان بیمه

 

 

امور مالیاتی

 

 

بیمارستان

 

 

شرکت خرید تجهیزات پزشکی

 

 

فروشنده دارو

 

 

بانک

 

                      واگذاری چک                                                         نظارت

                            

                         وصول چک                                      دریافت وجه نقد ونسخ                                          

                    ارسال نسخ                                                                  درخواست دارو

                      دریافت وجه                                           دریافت دارو

 

 

                        پرداخت مالیات                                            خرید تجهیزات پزشکی

 

 

 

 

 

 

 

 

 

 

Level 0 DFD

 

بیمارستان

 

 

فروشنده دارو

 

 

شرکت خرید تجهیزات پزشکی

 

 

بانک

 

 

امور مالیاتی

 

 

سازمان بیمه

 

                                                                 

                    واگذاری چک                                                                              نظارت

 
   

 

 

                           وصل چک                            نظارت و تاید                   دریافت وجه نقد و نسخ

                     ارسال نسخ                                                                درخواست دارو

                 دریافت وجه                                                                     دریافت  دارو

                      

                   پرداخت مالیات                                خرید تجهیزات پزشکی

 

 

 

 

 

 

 

 

 

 

 

Level 1 DFD for حوزه معاونت

 

                                                                              

        پرداخت مالیات    خرید تجهیزات پزشکی  نظارت و تاید      تخصیص بودجه

                                                                                                               ابلاغ بودجه و جمع آوری اسناد

            واگذاری چک                                                                   دریافت دارو

            وصول چک                                                                ابلاغ بودجه و جمع آوری اسناد

        تخصیص بودجه                                        تخصیص بودجه

تخصیص بودجه

   ابلاغ بودجه و جمع آوری سند                                       ابلاغ بودجه و جمع آوری اسناد     

                                                             ابلاغ بودجه و جمع آوری اسناد                             درخواست دارو

                        تخصیص بودجه

 
   

 

 

نظارت

 

 

 

 

                      

Level 2 DFD for معاونت پشتیبانی

    جمع آوری اسناد                                             ابلاغ بودجه                    تخصیص بودجه

                                            

                                                                                                  نظارت                                                                          واگذاری چک  

نظارت و تاید                                                                                               تخصیص بودجه

وصول  چک

             نظارت

                                                                                                    خرید تجهیزات پزشکی

                                        درخواست بودجه                                           تخصیص نیروی انسانی

                                                                         درخواست نیروی انسانی و نظارت

 

 

 

 

 

                  

 

 

 

Level 2 DFD for معاونت بهداشت

                       جمع آوری سند                                                      تخصیص بودجه             ابلاغ بودجه

 
   

 

 

نظارت

       
     
   
 

 

 

                                          نظارت                                                                                         درخواست بودجه

نظارت و تاید                                                                                                                                          دریافت بودجه

             نظارت                                  درخواست بودجه

                                                    دریافت بودجه

 

 

 

 

 

 

                    

 

 

 

Level 2 DFD for معاونت غذا و دارو

                                                                                        تخصیص بودجه                    ابلاغ بدجه

               درخواست دارو     جمع آوری سند

ارسال دارو

نظارت

 

                                  نظارت

نظارت و تاید                                                                                                                                                         درخواست بودجه     

                 نظارت

                                       درخواست بودجه                                                تخصیص بودجه

                                                  تخصیص بودجه

 

 

 

 

 

 

 

                                      

Level 2 DFD for معاونت درمان

                                                                                       ابلاغ بودجه            تخصیص بودجه

                جمع آوری سند

نظارت

 

 
   

 

 

                                                                             تخصیص بودجه

نظارت و تاید                                        نظارت                                                                                      درخواست بودجه

 

 

 

 

 
   

 

 

 

                                                                                                   نظارت

 

               

 

 

Level 2 DFD for معاونت پژوهشی

                                                                                               تخصیص بودجه       ابلاغ بودجه

           جمع آوری سند

نظارت

 

 
   

 

 

                                            نظارت

نظارت و تاید                                                                                                                                              درخواست بودجه

              نظارت                                                                                                                                                 تخصیص بودجه  

                          درخواست بودجه

                                    تخصیص بودجه

 

 

 

 

 

 

 

 

Level 2 DFD for معاونت دانشجویی

 

                 جمع آوری سند                                                    ابلاغ بودجه           تخصیص بودجه

 

نظارت

 
   

 

 

                                 نظارت

نظارت و تاید     نظارت

                                                                                                 درخواست بودجه

                               درخواست بودجه                                                                                                         تخصیص بودجه

                                    تخصیص بودجه

 

 

 

 

 

           

 

 

Level 3 DFD for معاونت پشتیبانی – امور مالی

 

                           نظارت                                              ابلاغ بودجه                         تخصیص بودجه

 

 

نظارت

 

نظارت و تاید                                                            نظارت                                                                                                                   

                   نظارت                      نظارت                                                                                                 خرید تجهیزات پزشکی

                            نظارت

 

 

 
   

 

 

 

واگذاری چک           وصول چک

 

ارسال نسخ

                                                                         دریافت وجه

 
   

 

 

جمع آوری اسناد                                                                                   جمع آوری وجه نقد و نسخ

physical DFD

Context diagram

 
 

فرستادن چک برای بانک

 

 

 

نظارت بر کار بیمارستان

 

 

سازمان بیمه

 

 

امور مالیاتی

 

 

بیمارستان

 

 

شرکت خرید تجهیزات پزشکی

 

 

فروشنده دارو

 

 

بانک

 

                      واگذاری چک                                                         نظارت

                            

دریافت پول چک

 

 

گرفتن پول و نسخه بیماران

 

                         وصول چک                                      دریافت وجه نقد ونسخ                                          

فرستادن برکه بیمه

 

 

درخواست برای دارو

 

                    ارسال نسخ                                                                  درخواست دارو

گرفتن پول بیمه

 

 

                 دریافت وجه                                                                     دریافت  دارو                                         پرداخت مالیات                                خرید تجهیزات پزشکی           Level 1 DFD for حوزه معاونت                                                                                       پرداخت مالیات    خرید تجهیزات پزشکی  نظارت و تاید      تخصیص بودجه                                                                                                                ابلاغ بودجه و جمع آوری اسناد            واگذاری چک                                                                   دریافت دارو            وصول چک                                                                ابلاغ بودجه و جمع آوری اسناد        تخصیص بودجه                                        تخصیص بودجهتخصیص بودجه   ابلاغ بودجه و جمع آوری سند                                       ابلاغ بودجه و جمع آوری اسناد                                                                  ابلاغ بودجه و جمع آوری اسناد                             درخواست دارو                        تخصیص بودجه  نظارت                          Level 2 DFD for معاونت پشتیبانی    جمع آوری اسناد                                             ابلاغ بودجه                    تخصیص بودجه                                                                                                                                              نظارت                                                                          واگذاری چک  نظارت و تاید                                                                                               تخصیص بودجهوصول  چک             نظارت                                                                                                    خرید تجهیزات پزشکی                                        درخواست بودجه                                           تخصیص نیروی انسانی                                                                         درخاست نیروی انسانی و نظارت                          Level 2 DFD for معاونت بهداشت                       جمع آوری سند                                                      تخصیص بودجه             ابلاغ بودجه  نظارت                                            نظارت                                                                                         درخواست بودجهنظارت و تاید                                                                                                                                          دریافت بودجه             نظارت                                  درخواست بودجه                                                    دریافت بودجه                             Level 2 DFD for معاونت غذا و دارو                                                                                        تخصیص بودجه                    ابلاغ بدجه               درخواست دارو     جمع آوری سندارسال دارونظارت                                   نظارتنظارت و تاید                                                                                                                                                         درخواست بودجه                      نظارت                                       درخواست بودجه                                                تخصیص بودجه                                                  تخصیص بودجه                                             Level 2 DFD for معاونت درمان                                                                                       ابلاغ بودجه            تخصیص بودجه                جمع آوری سندنظارت                                                                                تخصیص بودجهنظارت و تاید                                        نظارت                                                                                      درخواست بودجه                                                                                                          نظارت                  Level 2 DFD for معاونت پژوهشی                                                                                               تخصیص بودجه       ابلاغ بودجه           جمع آوری سندنظارت                                               نظارتنظارت و تاید                                                                                                                                              درخواست بودجه              نظارت                                                                                                                                                 تخصیص بودجه                            درخواست بودجه                                    تخصیص بودجه        Level 2 DFD for معاونت دانشجویی                  جمع آوری سند                                                    ابلاغ بودجه           تخصیص بودجه نظارت                                   نظارتنظارت و تاید     نظارت                                                                                                 درخواست بودجه                               درخواست بودجه                                                                                                         تخصیص بودجه                                    تخصیص بودجه                  Level 3 DFD for معاونت پشتیبانی – امور مالی                            نظارت                                              ابلاغ بودجه                         تخصیص بودجه  نظارت نظارت و تاید                                                            نظارت                                                                                                                                      نظارت                      نظارت                                                                                                 خرید تجهیزات پزشکی                            نظارت     واگذاری چک           وصول چک ارسال نسخ                                                                         دریافت وجه  جمع آوری اسناد                                                                                   جمع آوری وجه نقد و نسخ                         

گرفتن دارو

 
   
 
   
       
     
   
 
 
   
 
   
 
   
 
   
 
   
 
   

 

((این پنجره در ابتدا باز می شود و برای کنترل ورود افراد به سیستم است ))     پنجره فوق  پنجره اصلی است که پس از ورود ظاهر می گردد كه اين صفحه داراي  دوپنجره كه در پنجره سمت راست منوهاي نرم افزارودر پنجره سمت چپمنوهاي اصلي درسمت چپ شامل منابع انساني - مديريت كالا وخدمات- مديريت مالي- بودجه تفصيلي-  درخواستها ومديريت سيستم- امكانات- اطلاعات پايه- وخروج  قراردارد لازم به توضيح است كه اين منوها هركدام داراي زيرشاخه وزيرشاخه ها نيزداراي زيرشاخه هاي ديگريست .   حساب تفصيلي1(مسوليت ايجاد اين قسمت درستاددانشگاه به عهده اداره دفترداري وبيلان ودر واحدهاي تابعه دانشگاه به عهده واحد دفتر داري وبيلان مي باشد)    شرح مختصري درخصوص حسابهاي تفصيلي                       (((شرح مختصري درخصوص حساب تفصيلي 1)))             ((ايجادحساب هاي  تفصيل 2))(مسوليت ايجاد اين قسمت درستاد به عهده اداره اعتبارات ودر واحدهاي تابعه دانشگاه به عهده واحد اعتبارات مي باشد)  ((شرحي مختصر از تفصيل 2))     (ساخت اعتبار سنواتي )(مسوليت ايجاد اين قسمت درستاد دانشگاه به عهده اداره دفترداري وبيلان ودر واحدهاي تابعه دانشگاه به عهده واحد دفتر داري وبيلان مي باشد)           (مسوليت ايجاد وتكميل منابع انسانی درستاددانشگاه به عهده اداره دريافت وپرداخت ودر واحدهاي تابعه دانشگاه به عهده واحد حقوق ودستمزد وتنظيم اسناد مي باشد)    (هدف ازدرخت سازماني هزينه يابي تعيين مراكز انباشته وانباشت هزينه است )  ازدرخت سازماني هزينه يابي تعيين مراكز انباشته وانباشت هزينه است )        (( پنجره ایجاد مرکز هزینه))((پنجره بالا برای معرفی پرسنل جدید است)) (اسنادافتتاحييه)(مسوليت ايجاد اين قسمت درستاددانشگاه به عهده اداره دفترداري وبيلان ودر واحدهاي تابعه دانشگاه به عهده واحد دفتر داري وبيلان مي باشد)    اين قسمت به منظورسندافتتاحيه نقدي ايجادشده است يعني همان حسابهاي كه در روش نقدي عمليات حسابداري را انجام مي داديم   (معرفي كدقديم كالا)(مسوليت تكميل اين قسمت به عهده مسولين انبار مي باشد).   ((مرحله قيمت گذاري كالا))(مسوليت تكميل اين قسمت به عهده حسابداركالا واموال با هماهنگي وهمكاري مسول انبار  مي باشد)  (در قسمت بالا اطلاعاتی مورد نیاز که در موردکالا موجود در انبار داریم را ثبت می کند)لازم به توضيح است كه بدانيم كالاداراي چهارلايه مي باشدبه عنوان مثال مدادتراش روميزي   به ترتيب لايه اول (ملزومات اداري)لايه دوم (كاغذمقوا ولوازم التحرير)لايه سوم (لوازم التحرير)ولايه چهارم نام كالا (مدادتراش روميزي ) مي باشد .     (پنجره بالا برای دریافت اطلاعات تکمیلی کالا شامل آدرس آن در انبار ) (در پنجره بالا اطلاعات تکمیلی کالا شامل نقطه سفارش- میزان سفارش)  ((ثبت اطلاعات اموال ))(مسوليت تكميل اين قسمت به عهده حسابداركالا واموال با نظارت مسول جمعداري اموال مي باشد)  (در پنجره بالا اطلاعات و سوابق کالا را نمایش می دهد)((بخش اطلاعات ثبت اموال)) سپس محل اعتباران ازميان بخش منبع انتخاب مي گرددكه ممكن است ازمحل  اعتبارهزينه اي عمومي درامد اختصاصي يا عمومي تملك دارائيهاي سرمايه اي خريداري شده باشدكه مادراين مثال منبع خريدرا عمومي تملك دارائيهاي سرمايه اي انتخاب نموديم  (نكته:  مسول نگهداشت تا تكميل نشدن مشخصات پرسنلي غيرفعال است چون فرد مسول نگهداري قطعا يكي از كاركنان است كه مي بايست درقسمت مذكور تعريف شود)(معرفی و ویرایش الگو)(مسوليت ايجاد اين قسمت درستاددانشگاه به عهده اداره دفترداري وبيلان ودر واحدهاي تابعه دانشگاه به عهده واحد دفتر داري وبيلان مي باشد)براي تنظيم سند دستي نياز به ويرايش الگوسند حسابداري داريم كه اين كار مي تواند توسط يك فرد كاملا آشنا ومسلط به مسائل حسابداريصورت بگيريد دراين خصوص مي بايست يكسري پيش فرضهاي داشته باشيم كه ممكن است دراين واحد يا ستاداتفاق بيفتد مثال :پيش پرداخت علي الحساب –سپرده پيمانكار-درامد صندوقداربيمارستان  اعتباردريافتي ازستاد–تنخواه دريافتي ازستاد-ارسال صورتحساب براي بيمه هاي طرف قرارداد -ابلاغ اعتباردرستادو...لذا براي ثبت  هررويدادمالي مي بايست آرتيكل(الگوي ) آن  درنرم افزار ايجادشود    پنجره انتخاب الگوي صدور سند  دراين پنجره براي هرالگو يك ثبت بدهكارويك ثبت بستانكارتوليد نمايد       (بخش تامين اعتبار)        (پنجره ليست اسناد براي عمليات پرداخت ظاهر مي گردد            (پنجره ليست اسنادآماده عمليات دريافت /پرداخت ظاهر مي گردد)(شرحي كوتاه بربخش دفترداري)                                                                                                                                              (پنجره اسناد تاييد وصول نشده ظاهرمي گردد) پنجره گزارش تراز ويژه باز مي شود به( شكل ذيل) كه در اين قسمت مي توان هرنوع گزارشاتي را اخذ نمود