پیدا کردن مسیر با وجود موانع با کمک الگوریتم pso در متلب
پیدا کردن مسیر با وجود موانع با کمک الگوریتم pso در متلب :پروژه متلب
پروژه متلب : در این پروژه با کمک الگوریتم pso مسیر در بین موانع پیدا می گردد.
از جمله کاربرد های این پروژه در ربات های مسیر می باشد.
ربات مسیریاب چیست؟
پروژه متلب ربات مسیریاب ، رباتی است که می تواند خطوط را تشخیص داده و آنها را دنبال کند و هر زمان که خطوط تغییر مسیر دادند ربات مسیر یاب نیز مسیر خود را همراه با خطوط تغییر می دهد. معمولا این نوع ربات ها ، ساده ترین نوع ربات های شناخته شده هستند و انتخاب بسیار مناسبی برای افراد تازه کار و علاقه مندان به یادگیری رباتیک است. ساخت این نوع ربات علاوه بر اینکه بسیار جالب و سرگرم کننده است ، باعث می شود تا مهارت های برنامه نویسی و الکترونیک شما افزایش پیدا کند.
شما می تواند یک ربات مسیریاب ساده بسازید که خطوط مشکی یا سفید رسم شده روی زمین را دنبال کند یا اینکه می توانید ربات پیشرفته تری طراحی کنید که خطوط با رنگ های مختلف را شناسایی کند و فقط یک رنگ خاص را دنبال کند. بدون در نظر گرفتن اینکه قصد ساخت کدام نمونه ربات مسیریاب را دارید ، تمام این ربات ها دارای ویژگی های مشترکی هستند. این ربات های هوشمند همگی از چرخ یا شنی و از دو موتور یا بیشتر برای سیستم حرکتی و از سنسور ها برای تشخیص خطوط استفاده می کنند. همه ی این ربات ها برای استحکام ، دارای شاسی هستند و همه آنها از یک برد الکترونیکی به عنوان مغز متفکر ربات استفاده می کنند.
ربات های مسیریاب ماموریت ساده ای دارند ، ” دنبال کردن خطوط ! “. این ربات های را می توان با کمترین منابع ساخت و نیازی به مهارت های الکترونیکی و برنامه نویسی بالا برای ساخت این نوع ربات وجود ندارد.
پروژه متلب
ربات مسیر یاب یا همان تعقیب کننده خط که به انگلیسی به آن Line follower robot میگویند؛ در واقع یک ربات را نشان میدهد که میتواند دنباله یک خط پررنگ با کنتراست بالا روی پس زمینه روشن یا برعکس (به طور مثال خط سیاه در پس زمینه سفید، یا خط سفید در پس زمینه سیاه) را دنبال کند. این ربات قادر است مسیر خاصی را شناسایی کرده و آن را پیش ببرد؛ البته این خطوط باید مشخص بوده و دارای عرض قابل قبولی باشند. در این مطلب قصد داریم در مورد این رباتهای ساده اما در عین حال جذاب حرف بزنیم. رباتهای مسیر یاب به صورت پیشرفتهتری نیز تولید میشوند و از مدلهای بسیار ساده و تا مدلهای پیشرفته را به خود اختصاص دادهاند و دارای کاربردهای بسیار زیادی در بخش خانگی، صنعتی، پزشکی و … میباشند.
ربات مسیر یاب چیست؟
ربات مسیریاب در واقع یک ربات مستقل است که میتواند یک راه را تشخیص داده و آن را دنبال کند. این راه به وسیله یک خط با عرض مشخص و رنگ قابل تشخیص بر روی یک زمینه رنگی دیگر مشخص میشود و ربات باید آن را تشخیص داده و دنبال کند. در ساخت این رباتها از اطلاعات زیادی در زمینه برق، مکانیک و کامپیوتر (برنامه نویسی) استفاده میشود؛ بنابراین برای ساخت این رباتها باید در این زمینهها اطلاعات کافی به دست بیاورید و یا به صورت تیمی دست به طراحی و ساخت این رباتها بزنید.
پیکربندی این رباتهای مسیر یاب بر اساس سنسورهای مقاومت نوری LDR و مادون قرمز ساخته شده و در این صورت میتوانند مسیر خود را دنبال کنند. این رباتها از سالهای پیش ساخته شده و وارد عرصه شدهاند؛ بنابراین امروزه ساخت یک ربات مسیر یاب ابتدایی بسیار آسان است و به تجهیزات و دانش زیادی نیاز ندارد. در ادامه با اجزای یک ربات مسیر یاب ساده آشنا میشوید.
اجزا یک ربات مسیر یاب
بک ربات مسیر یاب یا دنبال کننده خط، دارای ۴ بخش اصلی است؛ بدنه ربات همان چیزی است که شما آن را مشاهده میکنید؛ چرخها ربات را به حرکت در میآورند؛ موتور و سنسورها نیز محرک ربات هستند. این ۴ جز در کنار هم میتوانند یک ربات مسیر یاب ساده را به وجود بیاورند.
بدنه ربات
با توجه به اینکه ربات را به چه منظور و برای چه کاری میسازید؛ بدنه میتواند از مواد مختلفی ساخته شود. شما باید به نکاتی مانند قیمت مواد، میزان مقاومت و انعطاف پذیری آنها دقت کنید. به طور مثال برای ساخت رباتهای مسیریاب ابتدایی برای مدارس و یا پروژههای درسی میتوانید از آلومینیوم یا پلاستیک فشرده استفاده نمایید.
چرخها
جنس چرخها نیز اهمیت دارد و باید به گونهای انتخاب شود که با سطح اصطکاک ایجاد کرده و میزان اشتباه در آن کاهش یابد؛ در نتیجه در طول مسیر بتواند با تعادل حرکت کرده و واژگون نشود. اندازه چرخ نیز باید اصولی و طبق اندازه بدنه ربات انتخاب شود تا ربات را در طول حرکت سرنگون نسازد.
سنسور
سنسورها نیز در زیر ربات نصب شده و با عملکرد خود میتواند مسیر درست را به ربات نشان دهند.
موتور
موتور این رباتها مسئله دیگری است که باید به آن دقت شود؛ موتورها باید انرژی را به حرکت مکانیکی تبدیل کرده و ربات را رو به جلو حرکت دهند. موتورهای دی سی و ای سی نمونههای رایجی از این موتورها هستند که برای استفاده در رباتهای مسیر یاب مناسب میباشند.
روش کار ربات مسیر یاب
بعد از طراحی و ساخت این رباط که به صورت اصول مکانیکی، برنامه نویسی و الکترونیک انجام میشود؛ برای حرکت این ربات به یک زمینه روشن به رنگ مثلاً سفید و یک خط تیره به رنگ (به طور مثال مشکی) نیاز دارید. همانطور که در ابتدا اشاره شد عرض این خط نیز اهمیت دارد و باید حداقل دو سانتی متر باشد تا ربات بتواند آن را تشخیص دهد. طول خط و میزان پیچ و تابهایی که در مسیر با آن مواجه میشود محدودیت خاصی ندارد.
همانطور که در ابتدا اشاره شد این رباتها از دو طریق نور و مادون قرمز کار میکنند. در ابتدا با کار سنسور تابش نور آشنا شوید. همه ما می دانیم وقتی به جسم روشنی نور بتابانیم؛ مقدار زیادی نور از آن عبور کرده و مقداری کمی از آن نور جذب میشود؛ در مقابل با تابش نور به جسم تیره، بر عکس این موضوع اتفاق می افتد؛ در نتیجه مقداری زیادی نور جذب شده و تنها مقدار کمی از آن عبور داده میشود.
بنابراین این روش میتواند رنگ تیره را از روشن تشخیص دهد. وقتی ربات شما در حال حرکت روی زمینه سفید با خطهای سیاه است؛ میتواند با یک منبع نور را به آن بتاباند و توسط سنسورهایی که در ربات تعبیه شده؛ مقدار بازگشت از نور را اندازه بگیرد. در این صورت خط مشکی روی پس زمینه سفید را تشخیص داده و به سادگی میتواند خط را دنبال کند و از تمام پیچ و خمهای مربوط به آن عبور کرده و به مقصد برسد. در واقع این گیرنده و فرستنده نور که در ربات تعبیه شده؛ میتواند مسیر را تشخیص داده و حرکت کند.
کاربرد رباتهای مسیر یاب
امروزه رباتهای مسیریاب مزیتها و کاربردهای مختلفی دارد. از آنجا که حرکت این رباتها اتوماتیک است؛ قطعات و فناوری به کار رفته در آنها ارزان بوده و فرایند ساخت آسانتری دارد؛ از این رباتها میتوان در زمینههای مختلف استفاده کرد که در این قسمت به آن میپردازیم:
۱. حملونقل خودکار
امروزه در برخی کارخانهها و صنایع مختلف از این رباتهای خودکار برای حملونقل خودکار استفاده میشود. رباتها به شکل ماشینهای حمل مواد طراحی شده و با ایجاد خطوط در کارخانه و در مسیر مشخص از این رباتها انتظار دارند تا کالاها را به صورت خودکار و بدون دخالت و کنترل انسانی از قسمتی از کارخانه به قسمت دیگر منتقل کنند.
۲. استفاده در بیمارستانها
این رباتها قابلیت به کار گیری در بیمارستانها را نیز دارند؛ در کف بیمارستان و در بخشهای مختلف بیمارستان مانند بخش اورژانس، مراقبتهای ویژه از خطوطی با رنگ متفاوت استفاده میشود؛ در این صورت میتوان از این رباتها کمک گرفت تا به صورت اتوماتیک خطوط را دنبال کرده و مواد و تجهیزات را با سرعت بیشتری به بخش مورد نظر برسانند. حتی برای جابه جایی بیماران نیز میتوان از این رباتهای مسیر یاب استفاده کرد و ویلچر و سایر وسایل حملونقل را کنار گذاشت.
۳. تمیز کردن خانه
تمیز کردن خانه یکی دیگر از کاربردهای رباتهای مسیر یاب است تا به صورت خودکار مسیر مشخصی در خانه را دنبال کرده و در طی مسیر آن را تمیز کنند. امروزه رباتهای مسیر یابی به شکل جارو برقی و یا تِی طراحی شده است که از طریق مسیر یابی خانه را تمیز میکنند و کاملاً قابل برنامه ریزی هستند.
۴. استفاده در هتلها
امروزه در برخی هتلهای پیشرفته از این رباتها برای جابه جایی مواد و ارائه خدمات به اتاقهای مختلف استفاده میشود؛ در این صورت دیگر نیازی به سرویس دهی به وسیله انسانها نیست؛ کافی است مسیر تا اتاقها را با خطوطی مشخص کرده و با برنامه ریزی از این رباتها بخواهید تا مسیر را طی کرده و به سمت اتاقها بروند.
۵. استفاده در کتابخانهها
نمونهای دیگر از کاربردهای رباتهای مسیر یاب در کتابخانهها است. در این صورت نیازی نیست که برای جستوجو کتاب و کد مورد نظرتان به قفسههای مختلف سرک بکشید؛ کافی است کتاب مورد نظرتان را در سیستم وارد کرده و کد آن را به دست بیاورید. سپس کد را به ربات مسیر یاب داده و از آن بخواهید کتاب مورد نظرتان را پیدا کرده و به شما تحویل دهد.
الگوریتم pso :
روش بهینهسازی ازدحام ذرات (به انگلیسی: Particle swarm optimization) یا به اختصار روش PSO، یک روش سراسری کمینهسازی است که با استفاده از آن میتوان با مسائلی که جواب آنها یک نقطه یا سطح در فضای n بعدی میباشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح میشود و یک سرعت ابتدایی به آنها اختصاص داده میشود، همچنین کانالهای ارتباطی بین ذرات در نظر گرفته میشود. سپس این ذرات در فضای پاسخ حرکت میکنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه میشود. با گذشت زمان، ذرات به سمت ذراتی که دارای ملاک شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب میگیرند. علیرغم اینکه هر روش در محدودهای از مسائل به خوبی کار میکند، این روش در حل مسائل بهینهسازی پیوسته موفقیت بسیاری از خود نشان دادهاست.
الگوریتم PSO یک الگوریتم جستجوی جمعی است که از روی رفتار اجتماعی دستههای پرندگان مدل شدهاست. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شکل بهینهٔ دسته به کار گرفته شد. در PSO، ذرات در فضای جستجو جاری میشوند. تغییر مکان ذرات در فضای جستجو تحت تأثیر تجربه و دانش خودشان و همسایگانشان است؛ بنابراین موقعیت دیگر توده ذرات روی چگونگی جستجوی یک ذره اثر میگذارد. نتیجهٔ مدلسازی این رفتار اجتماعی فرایند جستجویی است که ذرات به سمت نواحی موفق میل میکنند. ذرات از یکدیگر میآموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود میروند اساس کار PSO بر این اصل استوار است که در هر لحظه هر ذره مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفتهاست و بهترین مکانی که در کل همسایگیاش وجود دارد، تنظیم میکند.
در ادامه کمی به توضیح مفهوم هوش جمعی میپردازیم.
هوش جمعی
هوش جمعی خاصیتی است سیستماتیک که در این سیستم، عاملها بهطور محلی با هم همکاری مینمایند و رفتار جمعی تمام عاملها باعث یک همگرایی در نقطهای نزدیک به جواب بهینه سراسری میشود نقطه قوت این الگوریتمها عدم نیاز آنها به یک کنترل سراسری میباشد. هر ذره) عامل) در این الگوریتمها خود مختاری نسبی دارد که میتواند در سراسر فضای جوابها حرکت کند و میبایست با سایر ذرات (عاملها) همکاری داشته باشد. دو الگوریتم مشهور هوش جمعی، بهینهسازی لانه مورچگان و بهینهسازی توده ذرات میباشند. از هر دو این الگوریتمها میتوان برای تعلیم شبکههای عصبی بهره برد.
اولین الگوریتم ازدحام ذرات
در سال ۱۹۹۵ ابرهارت و کندی برای اولین بار PSO به عنوان یک روش جستجوی غیر قطعی برای بهینهسازی تابعی مطرح گشت این الگوریتم از حرکت دسته جمعی پرندگانی که به دنبال غذا میباشند، الهام گرفته شدهاست. گروهی از پرندگان در فضایی به صورت تصادفی دنبال غذا میگردند. تنها یک تکه غذا در فضای مورد جستجو وجود دارد. هر راه حل که به آن یک ذره گفته میشود، PSO در الگوریتم معادل یک پرنده در الگوریتم حرکت جمعی پرندگان میباشد. هر ذره یک مقدار شایستگی دارد که توسط یک تابع شایستگی محاسبه میشود. هر چه ذره در فضای جستجو به هدف (غذا در مدل حرکت پرندگان) نزدیکتر باشد، شایستگی بیشتری دارد. همچنین هر ذره دارای یک سرعت است که هدایت حرکت ذره را بر عهده دارد. هر ذره با دنبال کردن ذرات بهینه در حالت فعلی، به حرکت خود در فضای مسئله ادامه میدهد.
به ا ین شکل است که گروهٔ از ذرات در آغاز کار به صورت تصادفی به وجود میآیند و با به روز کردن نسلها سعی در یافتن راهحل بهینه مینمایند. در هر گام، هر ذره با استفاده از دو بهترین مقدار به روز میشود. اولین مورد، بهترین موقعیتی است که تاکنون ذره موفق به رسیدن به آن شدهاست. موقعیت مذکور شناخته و نگهداری میشود که این بهترین مقدار نوستالژی آن ذره نیز گفته میشود که آن را با pbest نمایش میدهیم. بهترین مقدار دیگری که توسط الگوریتم مورد استفاده قرار میگیرد، بهترین موقعیتی است که تا کنون توسط جمعیت ذرات بدست آمدهاست که آن را gbest میگوییم (هوش جمعی).
پس از یافتن بهترین مقادیر، سرعت و مکان هر ذره با استفاده از رابطه ۶ و ۷به روز میشود. به این ترتیب، بهترین ذره گروه، در جای خود ثابت میماند و سایرین به سمت آن ذره حرکت میکنند. در واقع حرکت دسته جمعی ذرات بدون قسمت اول معادله ۶، پروسه ای خواهد بود که طی آن فضای جستجو به تدریج کوچک میشود و جستجویی محلی حول بهترین ذره شکل میگیرد. در مقابل اگر فقط قسمت اول معادله ۶ را در نظر بگیریم، ذرات راه عادی خود را میروند تا به دیواره محدوده برسند و به نوعی جستجویی سراسری را انجام میدهند. پارامترهای c1 و c2 (مقدار آن حدود ۲ است) میزان اهمیت و وزن هوش جمعی و نوستالژی را مشخص میکنند.
خروجی متلب :
دیدگاه ها