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

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

سینماتیک مستقیم و معکوس
بازوی رباتیک یک زنجیره است: پایهای که میچرخد، یک شانه، یک آرنج و یک مچ با دو یا سه مفصل، که هر کدام بقیه زنجیره را میچرخانند. سینماتیک مستقیم به پرسش سادهتر پاسخ میدهد: اگر زاویه همه مفصلها را بدانیم، دست کجاست و به کدام سمت اشاره میکند؟ برای هر مفصل یک تبدیل ضرب میشود و نتیجه به دست میآید.
کارهای واقعی برعکساند. شما میدانید دست کجا باید باشد («گریپر را روی این نقطه و رو به پایین قرار بده») و به زاویههایی نیاز دارید که دست را به آنجا ببرند. به این کار سینماتیک معکوس گفته میشود و به سه دلیل دشوارتر است:
- چند پاسخ. اغلب میتوان به یک وضعیت دست با آرنج بالا یا آرنج پایین و با مچی که به این سو یا آن سو چرخیده رسید. کنترلر باید یکی را انتخاب کند و معمولاً پاسخی را برمیگزیند که به زاویههای فعلی بازو نزدیکتر است تا بازو بیدلیل دور خود نچرخد.
- بدون پاسخ. نقطهای که خارج از دسترس بازو است، یا نقطهای که مفصلی را از محدوده مجازش خارج میکند، پاسخی ندارد. کنترلر باید این وضعیت را تشخیص دهد و واکنش منطقی نشان دهد، نه اینکه خروجی نامعتبر تولید کند.
- نقاط تکین. در برخی وضعیتها دو مفصل همراستا میشوند و بازو یکی از جهتهای حرکت خود را از دست میدهد. در نزدیکی این وضعیتها، یک حرکت بسیار کوچک دست به حرکت بزرگ و سریع یک مفصل نیاز دارد. نمونه شناختهشده آن زمانی است که مرکز مچ دقیقاً بالای پایه قرار میگیرد: در این حالت زاویه پایه تعریفنشده است و کنترلری که این موضوع را در نظر نگیرد، باعث چرخش شدید و ناخواسته پایه میشود.
برای ساختار رایج ششمحوره که سه مفصل پایانی آن در یک نقطه به هم میرسند، سینماتیک معکوس را میتوان با فرمول بسته حل کرد: ابتدا مرکز مچ تعیین میشود (که پایه، شانه و آرنج را مشخص میکند) و سپس جهت دست با مچ تنظیم میشود. بازوهای دیگر بهصورت عددی حل میشوند؛ یعنی با تکرار از وضعیت فعلی به سمت هدف.
در صفحه اصلی وبسایت ما، حلکننده زاویهای از مچ را برمیگزیند که به مقدار قبلی نزدیکتر است و هر وضعیتی که انتخاب میکند دوباره با سینماتیک مستقیم بررسی میشود: اگر نوک انگشتها بیش از فاصله کوچکی از جای درست خود دور شوند، آن مسیر کنار گذاشته میشود و بازو از سمت دیگری تلاش میکند.
محدودیت مفصلها و برخورد با بدنه
یک بازوی واقعی ضربهگیرهای سخت، کابلهایی که نباید پیچ بخورند و بدنهای دارد که نباید با خود برخورد کند. دو نکتهای که هنگام توسعه بازوی خود آموختیم:
- محدودکردن مقدار زاویه بهتنهایی کافی نیست. اگر مچ فقط در حد مجاز خود متوقف شود، هدف ممکن است ناگهان به سمت دیگر محدوده منتقل شود و حرکت برنامهریزیشده به یک چرخش شدید تبدیل شود. محدودیتها باید بخشی از انتخاب پاسخ باشند، نه اصلاحی پس از آن.
- برخورد بازو با خودش را بررسی کنید. ما ستون، بازوی بالایی، ساعد، مچ و دست را به شکل کپسول مدلسازی کردیم و میزان همپوشانی هر دو قطعه غیرمجاور را اندازه میگیریم. پیش از تعیین محدودیت درست برای مچ، دست در درصدی از فریمها از بدنه عبور میکرد. پس از آن، این اتفاق دیگر رخ نداد.
برنامهریزی حرکت
دانستن زاویههای هدف با رسیدن درست به آنها متفاوت است. اگر هر مفصل با بیشینه سرعت به سمت هدف خود حرکت کند، مفصلها در زمانهای متفاوتی میرسند و دست مسیر نامتعارفی را طی میکند. کنترلرهای صنعتی بهجای آن برنامهریزی میکنند:
- حرکت هماهنگ مفصلها. همه مفصلها با هم شروع میکنند و با هم متوقف میشوند. مدت حرکت را مفصلی تعیین میکند که نسبت به حد سرعت خود بیشترین مسیر را دارد و مفصلهای دیگر کندتر حرکت میکنند تا با آن هماهنگ باشند.
- پروفایل نرم. یک مفصل نباید از حالت سکون ناگهان به سرعت کامل برسد. پروفایلهای رایج عبارتاند از ذوزنقهای (شتاب، سرعت ثابت، ترمز)، منحنی S که آهنگ تغییر شتاب (جِرک) را نیز محدود میکند و چندجملهایها. ما برای هر مفصل از یک چندجملهای درجه پنج استفاده میکنیم که با سرعت و شتاب صفر آغاز و پایان مییابد؛ بنابراین حرکت هیچ تکان ناگهانی ندارد.
- حرکت روی خط مستقیم. گاهی خود دست باید روی یک خط مستقیم حرکت کند، برای نمونه مستقیم به سمت پایین روی یک قطعه. در این حالت مسیر به گامهای کوچک تقسیم میشود، برای هر گام سینماتیک معکوس حل میشود و زمان حرکت طوری تنظیم میشود که از هیچ مفصلی بیش از توانش خواسته نشود. در نزدیکی نقطه تکین، میانه یک خط مستقیم ممکن است سرعت مفصل بسیار بیشتری از دو انتهای آن بخواهد؛ به همین دلیل کل خط بررسی میشود، نه فقط ابتدا و انتهای آن.
وقتی بازوی ما تلاش میکند نشانگر ماوس را بگیرد، دقیقاً همین کار را انجام میدهد: یک حرکت مفصلی به نقطه آمادهباش از یک سمت جدید، یک توقف کوتاه و سپس نزدیک شدن روی خط مستقیم به سمت هدف، با زمانبندیای که هیچ مفصلی از حدود ۹۰ درصد سرعت و ۸۰ درصد شتاب مجاز خود فراتر نرود.
دنبالکردن هدف متحرک
نشانگر ماوس، مانند قطعهای روی نوار نقاله یا دست یک انسان، ثابت نمیماند. دو روش بازو را با نوسان کمتر روی هدف نگه میدارند:
- فیلتر کردن هدف. اندازهگیریهای خام نویز دارند. ما موقعیت نشانگر را از یک فیلتر وانیورو (one-euro) عبور میدهیم که وقتی هدف تقریباً ثابت است آن را بهشدت هموار میکند (تا لرزشهای ریز، بازو را نلرزانند) و وقتی هدف سریع حرکت میکند تقریباً تغییری در آن ایجاد نمیکند (تا بازو عقب نماند). این فیلتر ساده و شناختهشده از پژوهشهای تعامل انسان و رایانه آمده و برای حسگرها نیز به همین خوبی کار میکند.
- دنبال کردن با پیشخور. سرویی که فقط به خطای میان موقعیت فعلی مفصل و موقعیت درست آن واکنش نشان دهد، همیشه عقب میماند. اگر سرعت و شتاب برنامهریزیشده از پیش به آن داده شود و یک کنترلر با میرایی بحرانی تنها باقیمانده خطا را اصلاح کند، مفصل بدون عبور از هدف روی مسیر خود باقی میماند.
کاربرد این مفاهیم در سختافزار واقعی
هر یک از این تصمیمها در یک بازوی واقعی نیز به همین دلایل وجود دارد: حرکت نرم و هماهنگ فشار کمتری به گیربکسها وارد میکند، برای افرادی که در کنار آن کار میکنند قابل پیشبینی است و در محل تماس ابزار با قطعه دقیق است. تفاوت سختافزار واقعی در این است که محدودیتها فیزیکیاند: موتورهایی که گرم میشوند، کابلهایی که فرسوده میشوند و باری که نوسان میکند. این همان بخش دشوار رباتیک است که بیشترین اهمیت را برای ما دارد: هماهنگی مدل، نرمافزار و سختافزار با یکدیگر.
برای آشنایی با انواع بازوهایی که در کارخانهها کار میکنند و اجزایی که در یک سلول کاری اطراف آنها قرار دارند، مقاله ربات صنعتی چیست و چه انواعی دارد؟ را بخوانید.
اگر روی پروژهای با نیاز به کنترل حرکت کار میکنید، خوشحال میشویم درباره آن بشنویم.


