مسیر یابی ربات در محیط ناشناخته به روش کنترل فازی -پتانسیل
مسیریابیرباتدرمحیطناشناختهبهروشکنترلفازی -پتانسیل
کنترلفازی برای کنترل ربات
مسیریابیرباتدرمحیطناشناختهبهروشکنترلفازی -پتانسیل
در این کنترلر، ابتدا موقعیت هدف به سیستم داده میشود. این موقعیت با موقعیت ربات مقایسه شده و همراه با دادههای سنسوری به بخش میدان پتانسیل وارد میشود. پس از محاسبه پتانسیل محیط و نیروهای جاذبه و دافعه، خروجی میدان پتانسیل به بخش کنترل فازی وارد میگردد. در این بخش، ربات حافظه دار گردیده است که در ادامه روش حافظه دار شدن مورد بحث قرار میگیرد. براساس آنکه ربات در دام قرار گرفته است یا خیر، به یکی از دو کنترلر وارد شده و خروجی آن بصورت فرمان سرعت به ربات داده میشود. ربات حرکت کرده و سپس موقعیت و داده های سنسوری خود را دوباره به سیستم کنترلی میدهد. 2.1 عملگر میدان پتانسیل برای پیاده سازی
Security policy (edit with Customer reassurance module)
Delivery policy (edit with Customer reassurance module)
Return policy (edit with Customer reassurance module)
مسیریابیرباتدرمحیطناشناختهبهروشکنترلفازی -پتانسیل
مسیریابی ربات در محیط ناشناخته به روشهای مختلفی انجام میشود که از جمله آن میتوان به روش میدان پتانسیل، الگوریتم ژنتیک و کنترل فازی اشاره کرد که استفاده از روش میدان پتانسیل متداولترین آن در دهههای اخیر میباشد. در مسیریابی ربات در محیط ناشناخته باید به این نکته توجه داشت که هیچکدام از الگوریتمهای حاضر بهینهترین مسیر را ارائه نمیکنند زیرا برای مسیر بهینه نیاز به دانستن تمام محیط است.
الگوریتمها و روشهای کنترلی در واقع تضمین کننده رسیدن به هدف در سریع ترین زمان ممکن هستند و این هدف، بسته به ساختار الگوریتم و روش کنترلی دارد. روش میدان پتانسیل از آن جهت که پیاده سازی آسان و بلادرنگی روی ربات دارد حائز اهمیت است. اما مشکل میدان پتانسیل وجود کمینه محلی و عدم نرم حرکت کردن ربات است (ربات بصورت ارتعاشی حرکت میکند). کنترلر فازی علیرغم قابلیت کنترلی وسیعی که ارائه میدهد، با توجه به ساختار ربات مورد آزمایش و همچنین تعداد سنسور های ربات، دارای قوانین زیادی میشود که عملا سیستم بلادرنگ نخواهد بود. برای حل این مشکل، از تلفیق دو روش کنترل فازی و میدان پتانسیل استفاده میگردد. با این کار، در عین آنکه از مزیت دو روش استفاده میشود، میتوان نقاط ضعف یکدیگر را پوشش بدهند. برای این منظور، خروجی میدان پتانسیل به عنوان ورودی کنترلر فازی اعمال میشود تا ربات نرم تر جرکت کرده و در صورتی که کمینه محلی یا دام وجود داشت، ربات بتواند براحتی از آن عبور کند. همچنین به علت آنکه خروجی میدان پتانسیل 3 مولفه است، تعداد قوانین فازی به شدت کاهش پیدا کرده و سیستم بلادرنگ میگردد. شماتیک کنترلر فازی-پتانسیل در شکل 2 نشان داده شده است. Figure 2: شماتیک کنترلر فازی-پتانسیل.
در این کنترلر، ابتدا موقعیت هدف به سیستم داده میشود. این موقعیت با موقعیت ربات مقایسه شده و همراه با دادههای سنسوری به بخش میدان پتانسیل وارد میشود. پس از محاسبه پتانسیل محیط و نیروهای جاذبه و دافعه، خروجی میدان پتانسیل به بخش کنترل فازی وارد میگردد. در این بخش، ربات حافظه دار گردیده است که در ادامه روش حافظه دار شدن مورد بحث قرار میگیرد. براساس آنکه ربات در دام قرار گرفته است یا خیر، به یکی از دو کنترلر وارد شده و خروجی آن بصورت فرمان سرعت به ربات داده میشود. ربات حرکت کرده و سپس موقعیت و داده های سنسوری خود را دوباره به سیستم کنترلی میدهد. 2.1 عملگر میدان پتانسیل برای پیاده سازی روش میدان پتانسیل بروی ربات پیاده شود، باید به دو سوال زیر پاسخ داده شود. چه نوع تابع پتانسیلی براساس ویژگیهای ربات مورد آزمایش برای برنامه ریزی حرکت مسیر مناسب تر است؟
برای فرار از دامها و مشکلات آن چه راهکاری وجود دارد؟ در بخش 2 به انواع تابع پتانسیل پرداخته شد. از آنجایی که محیط در فرض مسئله ناشناخته است، میتوان از توابع پتانسیل محلی استفاده کرد. بعلاوه، تابع پتانسیلی میبایست انتخاب گردد که سازگار با شرایط ربات بوده و فقط براساس مختصات ربات کار کند. با توجه به شرایط ذکر شده تنها میتوان از تابع پتانسیل خطیب-فیراس استفاده کرده که در بخش 3 به تفصیل شرح داده شد. برای فرار از دامها، در بخش کنترل فازی، با حافظه دار کردن سیستم، از کمینههای محلی که در آن برآیند نیرو برابر صفر میگردد، میتوان فرار کرد. همچنین از دامهایی که ربات دائما در یک فضا دور خود بچرخد نیز میتوان فرار کرد. اما برای حل مشکل GNRON میتوان از فرمول اصلاح شده زیر برای میدان دافعه استفاده کرد [?]: Figure 3: نیروهای وارد بر ربات و خروجیهای میدان پتانسیل.
U_rep=(■(1/2 K_rep (1/ρ_RO -1/ρ_0 )^2 ρ_RT^n&ρ_RO≤ρ_0@0&ρ_RO>ρ_0 )┤ (1) تفاوت رابطه (1) با رابطه (??) در ضریب ρ_RT میباشد که برابر با فاصله ربات و هدف است. این ضریب این اطمینان را حاصل میکند که میدان پتانسیل کل در نقطه ای به حداقل مقدار خود میرسد، اگر و فقط اگر ρ_RT=0 شود. این ضریب تضمین آن است که کمترین مقدار پتانسیل در محیط، در نقطه هدف قرار خواهد داشت. ورودیهای میدان پتانسیل، مختصات هدف، مختصات ربات و فاصله تا موانع میباشد. مختصات هدف بصورت پیش فرض به تابع پتانسیل داده میشود. مختصات ربات هر لحظه توسط روش Odometry محسابه میگردد که در فصل 2 به تفصیل شرح داده شد. فاصله تا موانع بر اساس دادههای سنسوری ربات توسط شبکه عصبی که در فصل 1 شرح داده شد، محاسبه میگردد.
هدف است. برای روشن شدن این تصمیم، فرض شود که ربات در دامی شبیه شکل 4 قرار بگیرد. پس از آنکه مشخص شد ربات در دام قرار دارد، در صورتی که بیشترین فاصله ربات تا خط فرضی، در بخش پایینی باشد، ربات به سمت بالا حرکت میکند و بلعکس. قوانین فازی نیز در جدول 1 نمایش داده شده است. در پیوست ??، کد مسیریابی در محیط ناشناخته آورده شده است. در الگوریتم 2 شبه کد کنترل کننده مسیر ربات در هنگام وجود دام آورده شده است و در حالتی که برآیند نیروها برابر صفر شود و یا آنکه ربات دائما مسیری را طی کند خروجی مورد نظر را تولید میکند. در الگوریتم 3 شبه کد مسیریابی در محیط ناشناخته آورده شده است. موقعیت ربات در هر لحظه، موقعیت هدف، دادههای سنسوری و مقدار آستانه فاصله ربات تا هدف به عنوان ورودی به سیستم اعمال میگردند. خروجی سیستم نیز فاصله تا هدف زمانی که از مقدار تعیین شده کوچکتر باشد. در واقع هر زمان که ربات به موقعیت هدف رسید، فعالیت کنترلر خاتمه مییابد. .55tw Number Attraction Repulsion Steering angle Left speed Right speed Far Medium Negative large Positive fast Positive so-slow Far Medium Positive large Positive so-slow Positive fast Far Medium Negative small Positive fast Positive slow Far Medium Positive small Positive slow Positive fast Far Medium Zero Positive fast Positive fast Far Near Negative large Positive so-slow Negative so-slow Far Near Positive large Negative so-slow Positive so-slow Far Near Negative small Positive slow Negative so-slow Far Near Positive small Negative so-slow Positive slow Far Near Zero Positive so-slow Positive so-slow Far So near Negative large Positive slow Negative slow Far So near Positive large Negative slow Positive slow Far So near Negative small Positive slow Negative so-slow Far So near Positive small Negative so-slow Positive slow Near So near Zero Positive slow Positive slow Near Medium Negative large Positive slow Negative so-slow Near Medium Positive large Negative so-slow Positive slow Near Medium Negative small Positive slow Positive so-slow Near Medium Positive small Positive so-slow Positive slow Near Medium Zero Positive slow Positive slow Near Near Negative large Positive fast Negative so-slow Near Near Positive large Negative so-slow Positive fast Near Near Negative small Positive slow Negative so-slow Near Near Positive small Negative so-slow Positive slow Near Near Zero Positive so-slow Positive so-slow Near So near Negative large Positive slow Negative slow Near So near Positive large Negative slow Positive slow Near So near Negative small Positive slow Negative so-slow Near So near Positive small Negative so-slow Positive slow Near So near Zero Positive so-slow Positive so-slow Table 1: قوانین فازی مسیریابی ربات در محیط ناشناخته. pseudocode [h] [1] Table 2: شبه کد کنترل کننده مسیر در هنگام وجود دام. Input: robot position, toral force Output: right and left velocity of wheels of robot f_total=0 Go to last position Positions of robot is repeated Go to the first position before repeated and current position=C and Target postion=T Max distance of robot to line of CT based on fig. 4 is on the left side of line CT Go to the right Go to the left pseudocode [h] [1] Table 3: شبه کد کنترل کننده مسیریابی در محیط ناشناخته. Input: Target position, robot position, IR sensors data, Threshold Output:distance of robot and target leq Threshold E: distance of robot and target O: distance of robot and obstacle using IR sensors data Calculate the attractive force using eq. 85 f_att=-(∂U_att)/(∂P_robot )=K_att (P_target-P_robot ) Calculate repulsive force using and eq. ?? f_rep=(■(-K_rep/(ρ_RO^2 ) (P_target-P_robot)/(∥P_target-P_robot ∥_2 )&ρ_RO≤ρ_0@0&ρ_RO>ρ_0 )┤ Calculate total force f_total=f_att+f_rep Calculate angle of α based on fig. 3 α=arctan(f_total (2),f_total (1)) Calculate stringangle=α-θ E≤Threshold Total force=0 or the position of robot is repeated Go to the position based on the irregular mode controller Calculate Right and left velocity of wheels of robot using fuzzy logic contorller and fuzzly rule in the tab. 1 Update and save current position and recalculate E and O 1 شناسایی هدف در محیط ناشناخته 1 مقدمه یکی از وظایف رباتهای پایه پویا در محیط ناشناخته، شناسایی محیط است. امروزه روشهای متفاوتی بار تهیه نقشه از محیط پیرامون ارائه گردیده است [?]. در این روشها، ربات هم زمان موقعیت خود و محیط پیرامون را ارزیابی کرده و با ذخیره آن در حافظه خود، نقشه محیط را تهیه میکند [?]. در [?] الگوریتمی بلادرنگ برای شناسایی محیط ارائه شده است. در [?] نقشه برداری همزمان از محیط و تهیه توپولوژی محیط توسط ربات ارائه گردیده است. اما همیشه شناسایی تمام محیط مورد نیاز نیست. بلکه یافتن یک جسم مورد نظر و موقعیت یابی آن در محیط اهمیت ویژهای پیدا میکند. به عنوان مثال یافتن شخص مجروح در هنگام زلزله. برای این منظور، الگوریتمهای جستجو ارائه گردیدهاند [?]. در الگوریتم جستجو، هدف مورد نظر میبایست از اجسام داخل محیط تشخیص داده شده و موقعیت آن تعیین گردد. در [?] از پردازش تصاویر برای شناسایی هدف مورد نظر استفاده شده است. شناسایی بلادرنگ محیط محلی، یکی از مسائل مهم در حوزه ربات های پایه پویا است که نیازمند به ارائه الگوریتمهای بلادرنگ میباشد. در این پایاننامه هدف شناسایی محیط محلی و موقعیتسنجی اجسام در محیطی ناشناخته با اکتفی به ابزاری محدود میباشد. به این منظور به کمک پردازش تصویر، هدف مورد نظر شناسایی میشود. در ادامه بر مبنای روش Odometry و دادههای سنسوری، مختصات هدف تعیین میگردد. همچنین برای تعیین موقعیت دقیق جسم توسط ربات، دادههای سنسوری توسط سه شبکه عصبی آموزش داده میشوند و نتایج آن مقایسه میگردد و شبکه برتر در الگوریتم نهایی مورد استفاده قرار میگیرد. در نهایت الگوریتمی بلادرنگ برای رسیدن به اهداف ذکر شده، ارائه میشود. این الگوریتم توسط ربات پایه پویا e-puck آزمایش و نتایج آن ارائه میگردد. این آزمایش نشان میدهد با دقت حدودا 98 درصد، میتوان مختصات دقیق هدف را تشخیص داد. 2 شناسایی به کمک پردازش تصویر پردازش تصویر یکی از روشهای متداول برای شناسایی اهداف میباشد. هدف استفاده از پردازش تصویر در این پایاننامه، پیدا کردن گلولهای قرمز رنگ است. رنگ قرمز خالص را با وجود نویز های بالا از جمله نور خورشید، فیلتر شده و جدا میشود. تصاویر بدست آمده از دوربین، تبدیل به یک ماتریس سه بعدی میشوند (ماتریس M) که ابعاد آن به 3 ماتریس قرمز، سبز و آبی تقسیم میشوند (رنگ های اصلی). (■(■(R_((i,j))=M_((i,j,1))&@G_((i,j))=M_((i,j,2))&@B_((i,j))=M_((i,j,3))&))┤ (2) در معادله (2) ماتریس R رنگ قرمز، ماتریس G رنگ سبز و ماتریس B رنگ آبی در صفحه تصویر را نشان میدهند. درایههای این ماتریسها عددی بین 0 تا 255 را نشان میدهند. این اعداد شدت رنگهای اصلی را نشان میدهند. عدد 0 به معنای عدم وجود رنگ مورد نظر و عدد 250 نشان دهنده وجود خالص رنگ مورد نظر است. نکته حائز اهمیت آن است که رنگ سفید در تصاویر، هر سه ماتریس، عدد 250 را نشان خواهند زیرا رنگ سفید، متشکل از سه رنگ اصلی است. همچنین ابعاد این ماتریسها، رزولوشن تصویر است. به عنوان مثال ربات پایه پویای e-puck تصاویری با کیفیت 40 در 40 پیکسل تهیه میکند و در نتیجه، ماتریسهای حاصل از پردازش تصویر دارای ابعاد 40×40 خواهند بود. برای شناسایی رنگ قرمز در محیط آزمایشی، ابتدا میبایست معیاری برای رنگ قرمز تعیین کرد. سپس بر اساس این معیار، تصاویر حاصل از ربات را میتوان پردازش کرد و به نتیجه مطلوب رسید. بدین منظور، ابتدا از گلوله قرمز رنگ در محیط آزمایشی تصویری گرفته میشود. در تصویر مورد نظر، عدد رنگ قرمز تعیین میگردد. در آزمایش انجام شده در آزمایشگاه تعامل انسان و ربات دانشکده علوم و فنون نوین دانشگاه تهران، ماتریس رنگ قرمز عدد بالاتر از 100 و ماتریسهای سبز و آبی عددی کمتر از 50 را نشان میدادند. ماتریس J طبق معادله (3)، بر مبنای این اعداد تولید میشود که دارای مقادیر صفر و یک است. J_((i,j))=(■(■(1&ifR_((i,j))≥100andG_((i,j))≤50andB_((i,j))≤50@0&else))┤ (3) در ماتریس J عدد 1 نشان دهنده وجود رنگ قرمز در صفحه تصویر و عدد 0 عدم وجود رنگ قرمز در صفحه تصویر میباشد. با جمع درایههای ستونی ماتریس J، ماتریس جدیدی به نام K تولید میشود که در معادله (4) نشان داده شد
در شکل 3 نیروهای وارد بر ربات و برآیند نیروی کل مشخص است. خروجیهای میدان پتانسیل، نیروی جاذبه، نیروی دافعه و اختلاف زاویه سر ربات با برآیند کل نیروها میباشد. 2.2 کنترل کننده ربات بخش کنترل کننده ربات دارای دو حالت است. در حالت اول، خروجی میدان پتانسیل وارد کنترل کننده فازی شده و خروجی آن سرعت چرخ چپ و راست است. نمودارهای فازی کننده و غیرفازی کننده ورودی و خروجیها کنترلر فازی در شکل 5 نشان داده شده اند. Figure 4: دام میدان پتانسیل. [] 6cm [] 6cm [] 6cm [] 6cm Figure 5: نمودار فازی (آ) نمودار فازی کننده نیروی جاذبه (ب) نمودار فازی کننده نیروی دافعه (چ) نمودار فازی کننده اختلاف زاویه سر ربات و برآیند نیروها (د) نمودار غیر فازی کننده سرعت. مختصات ربات در هر لحظه ذخیره میگردد و با موقعیتهای قبل مقایسه میشود. در صورتی که ربات حرکت نکند، به معنی آن است که برآیند نیروهای وارد بر ربات صفر است و در کمینه محلی قرار دارد و یا آنکه ربات در یک فضا دائما یک حرکت را تکرار کند و دور خود بچرخد، ربات در دام قرار گرفته است. برای حل این مشکل وارد کنترل کننده ثانویه میشود. در این حالت، در صورتی که ربات سرجای خود قرار بگیرد، فرمان حرکت به سمت هدف صادر میگردد و در صورتی که در محیط دام شکل قرار گرفته باشد، به نقطه قبل از دام برگشته و از آن خارج میشود. اساس کار انتخاب جهت حرکت