برنامه‌ریزی حرکت

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

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

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

مفاهیم[ویرایش]

نمونه‌ای از فضای کاری.
فضای پیکربندی رباتی به اندازه نقطه. سفید= Cfree، خاکستری=Cobs
فضای پیکربندی رباتی با حرکات مستطیل شکل (به رنگ قرمز). سفید= Cfree، خاکستری= Cobs، خاکستری تیره = اشیاء، خاکستری روشن = فضایی که ربات ممکن است در آن با اشیاء برخورد.
نمونه‌ای از مسیر معتبر.
نمونه‌ای از مسیر نامعتبر.
نمونه‌ای از نقشه راه.

مسئله‌ی اصلی برنامه‌ریزی حرکت، تولید یک حرکت مداوم است که پیکربندی شروع S را به پیکربندی هدف G متصل کند، در حالی که از برخورد با موانع شناخته شده اجتناب کند. هندسه‌ی ربات و موانع، در فضای کاری ۲ یا ۳ بعدی تعریف می‌شود. در حالی که حرکت، بعنوان یک مسیر (احتمالاً در ابعاد بالاتر) در فضای پیکربندی تعریف می‌شود.

فضای پیکربندی[ویرایش]

یک پیکربندی، مکان روبات را تشریح می‌کند و فضای پیکربندی C، مجموعهٔ تمام پیکربندی‌های ممکن آن(تمام نقاطی که روبات امکان دستیابی به آنها را دارد)می باشد. برای مثال :

  • اگر ربات یک نقطه(بااندازه صفر) در صفحه ۲ بعدی باشد(فضای کار)،C یک صفحه می‌باشد و پیکربندی می تواند با استفاده از دو پارامتر(x،y) بیان شود.
  • اگر ربات شی ای ۲بعدی باشد و بتواند حرکت و چرخش کند، فضای کار هنوز ۲ بعدی محسوب می‌شود با این حال،C گروه اقلیدسی خاصی به شرح زیر است:
    SE(2)=R^2*SO(2)
    (که (S0(2 یک گروه متعامد خاص، از حرکتهای دوبعدی می باشد)واین پیکربندی می تواند با 3 پارامتر (x, y, θ) نمایش داده شود.
  • اگر ربات جسمی 3 بعدی باشد که می تواند حرکت و چرخش کند، فضای کار 3 بعدی است.اما C گروه اقلیدسی خاصی به شرح زیر است:
    SE(3)=R^3*SO(3)

و برای توصیف پیکربندی به 6 پارامتر احتیاج است:(x, y, z):برای توصیف حرکت و (α, β, γ):برای زوایای اویلری.

  • اگر ربات با پایه ثابت با N مفصل پیچیده(بدون حلقه‌های بسته)باشد، آنگاه C، از N بعد خواهد بود.

فضای آزاد[ویرایش]

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

الگوریتم‌ها[ویرایش]

مسائلی با ابعاد پایین، بوسیلهٔ الگوریتم‌های مبتنی بر شبکه، که این الگوریتم‌ها با استفاده از متصور شدن شبکه‌ای بر بالای فضای پیکربندی انجام می‌شوند، قابل حل هستند.این مسائل همچنین با استفاده از الگوریتم‌های هندسی که شکل و همبندی سی را محاسبه می‌کنند، قابل حل هستند. برنامه‌ریزی حرکت دقیق برای سیستم‌هایی با ابعاد بالاتر، تحت محدودیت‌ها و موانعی پیچیده، از لحاظ محاسباتی، مساله ای رام نشدنی است. الگوریتم‌های میدان پتانسیل کارآمد هستند، اما این الگوریتم‌ها در کمترین مقدارهای ممکن محلی(local minima)، ناکارآمد هستند.الگوریتم‌های مبتنی برنمونه‌گیری از مشکل افتادن در مینیمم‌های محلی اجتناب می‌کنند و بسیاری از مسائل را نسبتاً سریع حل می‌کنند. با این حال، این الگوریتم‌ها قادر به تعیین این که هیچ راهی وجود ندارد نیستند، اما می‌توانند احتمال شکست در یافتن راه را محاسبه کنند که با سپری شدن زمان بیشتر، احتمال شکست را به صفر کاهش می‌دهند.

در حال حاضرالگوریتم‌های مبتنی بر نمونه گیری به روزترین و بهترین الگوریتم‌های برنامه ریزی حرکت برای فضاهایی با ابعاد بالا می باشند و حتی برای مسائلی با ده‌ها یا صدها بُعد، قابل پیاده سازی می باشند (مانند: بازوهای رباتیکی، مولکول‌های زیستی، انیمیشن کاراکترهای دیجیتال، روبات‌های دارای پا وغیره).

جستجوی شبکه ای[ویرایش]

الگوریتم‌های مبتنی بر شبکه معمولاً شبکه‌ای را به صورت فرضی روی فضای پیکربندی قرار می‌دهند و فرض می‌کنند که هر پیکربندی با نقطه‌ای از نقاط شبکه مشخص می‌شود. در هر نقطه از این شبکه، ربات اجازه حرکت به نقطه مجاور را دارد به طوریکه خط بین نقطه شروع و پایان داخل Cfreeباشد(این مسأله با استفاده از تشخیص برخورد، آزمایش می‌شود). مجموعه‌ی این اعمال به همراه الگوریتم‌های جستجو(مانند A*) می‌توانند مسیری از مبدأ به سمت هدف را بیابند. این روش‌ها نیاز به تفکیک شبکه‌ای دارند. جستجو با شبکه‌های ضخیم‌تر، سریع‌تر می‌شود، اما در این حالت الگوریتم موفق به پیدا کردن مسیر از میان بخش‌های باریک Cfree نمی‌شود.علاوه بر این، تعداد نقاط روی شبکه، در ابعاد فضای پیکربندی، رشد نمایی دارد که آنها را برای مسائلی با ابعاد بالا ناکارآمد می‌کند.

روش‌های سنتی مبتنی بر شبکه، مسیرهایی تولید می‌کنند که جهت تغییرات مسیر آنها محدود به مضاربی از زاویه‌ی اولیه‌ی داده شده می‌باشد.این روش‌ها اغلب منجر به ایجاد مسیرهایی می‌شوند که به طور جزئی بهینه هستند(solution suboptimal).هر کدام از روش‌های برنامه ریزی مسیر مبتنی بر زاویه، بدون اینکه مسیرشان را محدود به اضلاع شبکه کنند، مسیرهای کوتاه‌تری را با انتشار دادن اطلاعات در امتداد اضلاع شبکه پیدا می‌کنند. روش‌های مبتنی بر شبکه اغلب نیاز به جستجوی مداوم دارند، به عنوان مثال، زمانی که شناخت روبات از فضای پیکربندی تغییر کند یا خود فضای پیکربندی با پیدا کردن مسیرهایی تغییر کند. الگوریتم‌های جستجوی افزایشی اکتشافی، با استفاده از تجربه سایر مسائل مشابه برنامه‌ریزی مسیر-که قبلاً حل شده‌اند- با سرعت بالایی حرکت را برای مورد فعلی، برنامه‌ریزی می‌کنند.

الگوریتم‌های هندسی[ویرایش]

این الگوریتم‌ها مبتنی بر یکی از 2 حالت زیر می‌باشند:

- نمایش ربات در میان موانع چند ضلعی

  • گراف قابل رویت بودن
  • تجزیه المانی

- تعریف اشیا در میان موانع

میدانهای پتانسیل[ویرایش]

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

الگوریتم‌های مبتنی بر نمونه گیری[ویرایش]

الگوریتم‌های مبتنی بر نمونه گیری، فضای پیکربندی را با نقشه راهی از پیکربندی‌های از قبل نمونه گیری شده، نمایش می دهند.یک الگوریتم ابتدایی، N پیکره بندی را در فضای C نمونه گیری می‌کند و آن‌ها را در Cfree، برای استفاده به عنوان نمونه شاخص نگه می دارند. سپس نقشه راه به گونه ای ساخته می‌شود که دو شاخص P و Q را، درصورتیکه بخش PQ کاملاً درون Cfreeباشد، بهم متصل می کند. آنگاه الگوریتم تشخیص دهنده برخورد ،Cfreeرا برای وجود برخورد بازبینی می کند. برای پیدا کردن مسیری که S و G را بهم متصل میکند، آنها نیر به نقشه راه، افزوده می شوند. اگر مسیر نقشه راه، بتواند G و S را بهم مرتبط کند، برنامه ریزی حرکت، موفق بوده است و و این مسیر را برمی گرداند. اگر جواب مثبتی پیدا نشود یا نمونه برداری کافی نیست یا راهی وجود ندارد.

این الگوریتم‌ها درفضای پیکربندی با ابعاد بالا بسیار خوب کار می کنند، چرا که بر خلاف الگوریتم‌های ترکیبیاتی، زمان اجرای آنها بطور توانی، وابسته به ابعادفضای پیکره بندی C نیست و همچنین دارای پیاده سازی اساساً ساده تری نیز می باشند.این الگوریتم‌ها از نظر احتمالی کامل هستند یعنی احتمال یافتن راه حل مساله توسط این الگوریتم‌ها با گذر زمان به ۱ نزدیک می شود. با این حال، آنها نمی‌توانند عدم وجود راه حل برای مساله را تعیین نمایند.

اثبات شده است که با داشتن موقعیت‌های میدان دید در Cfree، هنگامیکه تعداد پیکربندی‌های N افزایش می یابد، احتمال ابنکه الگوریتم ذکر شده راه حلی را بیابد، به طور توانی[۱] به ۱ نزدیک می شود. میدان دید بطور صریح وابسته به ابعاد C نمی‌باشد.یعنی ممکن است که فضایی در ابعاد بالا با میدان دید خوب یا در ابعاد پایین با میدان دیدی ضعیف داشت. نتایج تجربی روش‌های مبتنی بر نمونه گیری، نشان می دهند که فضاهایی که بطور معمول، بیشتر دیده میشوند، میدان دید خوبی نیز دارند.

بازدهی و پیچیدگی[ویرایش]

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

کامل بودن از لحاظ تفکیک پذیری عامل دیگری است، بدین سان که اگر تفکیک پذیری شبکه ای که درنظر گرفته شده، به اندازه کافی ظریف باشد، یافتن مسیر توسط برنامه ریز حرکت، تضمین می شود.بیشتر برنامه ریزهایی که از لحاظ تفکیک پذیری کاملند، مبتنی بر شبکه می باشند. پیچیدگی محاسباتی این گونه برنامه ریزها وابسته به تعداد نقاط شبکه ای است که برای الگوریتم آن درنظر گرفته شده است.که این پیچیدگی (O(1/hdخواهد بود که h تفکیک پذیری(طول یکی از اضلاع سلول شبکه) و d بعد فضای پیکر بندی می باشد.

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

کاربرد ها[ویرایش]

مرتبط[ویرایش]

منابع[ویرایش]

  1. Hsu, R.; J.C. Latombe; Motwani (1997), Path Planning in Expansive Configuration Spaces, Proc. IEEE Int. Conf. On Robotics and Automation  More than one of |first1= and |first= specified (help)

مطالعه بیشتر[ویرایش]

پیوند های بیرونی[ویرایش]