سود:
- توانایی راه اندازی و حل مسائل سینماتیک رو به جلو و معکوس و برنامه ریزی مسیر با کمک هوش مصنوعی
- توانایی ایجاد مدار ایمن با دادن محدودیت های مشترک، سرعت و شتاب ربات به عنوان زمینه برای اعلان
- توانایی بررسی عددی و فیزیکی خروجی حرکتی و مسیری تولید شده توسط هوش مصنوعی
آوردن گیره در انتهای بازوی ربات به نقطه خاصی در فضا، در جهتی خاص؛ ساده به نظر می رسد، اما معادلات سینماتیک، محدودیت های مشترک، تکینگی ها و برنامه ریزی مسیر در پشت آن وجود دارد. در اینجا مهندس مکاترونیک از مثلثات، جبر خطی و تئوری کنترل با هم استفاده می کند. هوش مصنوعی کمک قدرتمندی در این فرآیند است: میتواند معادلات سینماتیک رو به جلو را ایجاد کند، رویکردهای راهحلی را برای سینماتیک معکوس پیشنهاد کند، یک مسیر را با توجه به محدودیتهای سرعت/شتاب تعیین کند. با این حال، رباتیک یکی از حوزههایی است که در مکاترونیک دارای بالاترین خطر فیزیکی است. اگر یک توالی زاویه ایجاد شده توسط هوش مصنوعی بدون تأیید برای ربات ارسال شود، بازو ممکن است به خودش، محیط یا اپراتور ضربه بزند. در این بخش نحوه تنظیم و تأیید سینماتیک و برنامه ریزی مسیر با هوش مصنوعی را خواهیم دید.
سینماتیک رو به جلو و معکوس
سینماتیک رو به جلو (FK): در صورت مشخص بودن زوایای مفاصل، موقعیت و جهت انتها را پیدا می کند. تنها یک راه حل وجود دارد، آن مستقیم است.
سینماتیک معکوس (IK): اگر موقعیت مطلوب تابع انتهایی مشخص باشد، پیدا کردن زوایای مفصلی که این امر را فراهم می کند. معمولا بیش از یک راه حل دارد (مانند آرنج بالا/پایین)، گاهی اوقات راه حلی ندارد (نقطه دست نیافتنی)، گاهی اوقات راه حل های بی نهایت دارد (تکینگی).
مفهوم
ورودی
خروجی
تعداد راه حل ها
سینماتیک رو به جلو
زوایای مفصلی
موقعیت/جهت افراطی
مجرد
سینماتیک معکوس
موقعیت/جهت افراطی
زوایای مفصلی
چندگانه / هیچ / بی نهایت
برای یک بازوی مسطح دو مفصلی، سینماتیک معکوس را می توان در هوش مصنوعی تنظیم کرد و به صورت دستی به صورت زیر تأیید کرد:
import numpy به عنوان npdef inverse_kinematik_2r(x, y, L1, L2): """IK برای بازوی مسطح 2 مفصلی. زاویه را بر حسب رادیان برمی گرداند (راه حل آرنج به پایین).""" r2 = x**2 + y**2 # بررسی دسترسی: نقطه در فضای کاری است؟ اگر np.sqrt(r2) > (L1 + L2) یا np.sqrt(r2) < abs(L1 - L2): مقدار ValueError را افزایش دهید ("نقطه خارج از فضای کاری قابل دسترسی است") cos_t2 = (r2 - L1**2 - L2**2) / (2 * L1 * L2 -1,2,2,0,c) cos_. 1.0) # امنیت عددی t2 = np.arccos(cos_t2) # آرنج رو به پایین t1 = np.arctan2(y, x) - np.arctan2(L2*np.sin(t2)، L1 + L2*np.cos(t2)) بازگشت np.degrent.( L1=L2=1، هدف (1،1) -> انتظار t2=90 درجه چاپ (inverse_kinematik_2r(1.0، 1.0، 1.0، 1.0)) # ~ (0.0، 90.0)
خطوط مهم در اینجا جایی است که هوش مصنوعی اغلب از آن عبور می کند: بررسی دسترس پذیری (نقطه ای در فضای کاری است) و «np.clip» (به دلیل خطای گرد کردن، ورودی arccos از ± 1 جلوگیری می کند). بدون این دو حفاظت، کد NaN تولید می کند یا در یک نقطه نامعتبر خراب می شود.
نکته: هنگام درخواست وضوح IK، به وضوح به هوش مصنوعی بگویید "کنترل دسترسی را اضافه کند و ورودی arccos را به کلیپ محدود کند". این دو خط از خطاهای خاموشی که بیشترین سردرد را در این زمینه ایجاد می کند جلوگیری می کند.
محدودیت های مشترک، تکینگی و راه حل های چندگانه
هر مفصل یک ربات واقعی دارای یک محدوده زاویه (به عنوان مثال -170 درجه تا +170 درجه)، یک محدودیت سرعت و یک محدودیت شتاب است. حتی اگر IK یک زاویه ریاضی معتبر بدهد، اگر آن زاویه خارج از محدوده فیزیکی مفصل باشد، نمی توان از آن استفاده کرد. علاوه بر این، ربات در برخی پیکربندیها در حالت تکینگی قرار میگیرد: دو محور در یک راستا قرار گرفتهاند، یک درجه آزادی از بین میرود و سرعتهای مشترک سعی میکنند برای یک حرکت نوک کوچک تا بینهایت بروند.
به همین دلیل است که راه حل منابع انسانی به تنهایی کافی نیست. هر راه حلی باید از یک فیلتر قابل قبول عبور کند:
def solution_gecerli_mi(acilar_deg, limits_deg): """دردها: [t1,t2,...]، محدودیتها: [(حداقل، حداکثر)،...]""" برای درد، (amin، amax) در zip(acilar_deg، limits_deg): اگر نه (آمین <= درد <= amax: بازگردانده شده است. ({amine}،{amax}) به جز" return True، "OK"limits = [(-170، 170)، (-120، 120)]print(cozum_valid_mi([0.0, 90.0]، limits)) # (True، 'OK')print.) (cozum_valid_mi). (نادرست، "از حد مشترک فراتر رفت...")
هوش مصنوعی می تواند راه حل "ریاضی" IK را ارائه دهد. اما محدودیت های مشترک و اجتناب از تکینگی مختص سیستم شما هستند و باید به عنوان زمینه ای برای اعلان داده شوند.
برنامه ریزی مدار
رسیدن ربات از نقطه A به نقطه B به معنای رسم یک خط مستقیم بین دو زاویه نیست. تغییر ناگهانی سرعت باعث ایجاد شوک مکانیکی و لرزش می شود. در عوض، از پروفیلهای نرم استفاده میشود: پروفیل سرعت ذوزنقهای (شتاب ثابت – سرعت ثابت – کاهش سرعت ثابت) یا منحنی S (صافتر، جایی که شتاب نیز محدود است). هنگامی که هوش مصنوعی یک مسیر را ایجاد می کند، باید هدف، مدت زمان و محدودیت ها را مشخص کنید.
وارد کردن numpy بهعنوان npdef trapez_yorunge(q0, q1, v_max, a_max, dt=0.01): """پروفایل سرعت ذوزنقهای شکل برای یک مفصل. آرایه موقعیت برگردانده میشود." 0.5 * a_max * t_speed**2 if 2 * distance_speed > مسافت: # نمایه مثلثی (v_max قابل دسترسی نیست) t_speed = np.sqrt(distance / a_max) t_constant = 0.0 v_peak = a_max * t_speed -2 -dance: v_max v_peak = v_max T = 2 * t_accelerate + t_constant t = np.arange(0, T, dt) # ... محاسبه موقعیت برای هر t (بر اساس فازهای شتاب/ثابت/کاهش) بازگشت t, T, v_peak, duration, vz_0,9.0.0 trapezoi. v_max=60.0، a_max=120.0)چاپ (f"مدت زمان کل: {دوره:.3f} ثانیه، حداکثر سرعت: {vz:.1f} درجه بر ثانیه")
بررسی منطقی در اینجا به این صورت است: اگر فاصله کم باشد، موتور هرگز به v_max نمی رسد و پروفیل از ذوزنقه ای به مثلثی تبدیل می شود. اگر هوش مصنوعی این شرایط را از دست بدهد، مدت زمان اشتباه برای حرکات کوتاه محاسبه می شود. شما می توانید این را با آزمایش کد با یک مقدار مشخص (مثلاً یک فاصله بسیار کوتاه) تأیید کنید.
اعلان ضعیف / اعلان قوی
ضعیف:"مسیری را بنویسید که بازوی ربات را از A به B برساند."(بدون محدودیت: محدودیت سرعت؟ شتاب؟ از فاصله مشترک؟ خروجی کور استفاده کنید.)STRONG:"یک مسیر نقطه به نقطه در فضای مفصل برای یک ربات 6 محوری ایجاد کنید. محدودیت سرعت برای هر مفصل 90 درجه بر ثانیه است، محدوده شتاب 20 در محدوده جدول ^ است. پروفیل سرعت ذوزنقه ای شکل، اگر فاصله کوتاه است، در یک نمایه مثلثی قرار می گیرد.
تایید: از شبیه سازی تا ربات
مسیر تولید شده توسط هوش مصنوعی قبل از رفتن به ربات به این ترتیب تأیید می شود:
- عددی: آیا زاویه اتصال، سرعت و شتاب هر پله در محدوده است؟
- برخورد: در طول مسیر، آیا بازو با خود یا محیط برخورد می کند (در صورت امکان تجسم/شبیه سازی کنید)؟
- تکینگی: آیا مدار از ناحیه تکینگی عبور می کند (آیا تعیین کننده ژاکوبین به صفر نزدیک می شود)؟
- تست سخت افزار آهسته: ربات را با سرعت کم (مثلاً 10%) کار کنید و به صورت بصری آن را نظارت کنید.
- افزایش تدریجی سرعت: هنگامی که همه چیز تأیید شد، سرعت گام به گام به مقدار اسمی افزایش می یابد.
احتیاط: هنگام شروع یک ربات با یک مسیر جدید برای اولین بار، رد سرعت باید همیشه کم باشد و E-stop باید در دسترس باشد. حتی اگر خروجی هوش مصنوعی «از نظر ریاضی درست» باشد، یک آفست، محور معکوس یا گیرکرد کابل در تنظیمات فیزیکی تنها با آزمایش آهسته آشکار میشود.
کیف کوچک
مهندس اتوماسیون Ece از هوش مصنوعی یک کد مسیر در فضای مشترک برای یک برنامه انتخاب و مکان می خواهد. هوش مصنوعی یک نمایه ذوزنقهای شکل تولید میکند، اما وقتی Ece یک حرکت در فاصله کوتاه را آزمایش میکند، میبیند که زمان منفی است: کد مورد پروفایل مثلثی را که نمیتوان به v_max دسترسی پیدا کرد، کنترل نمیکند. Ece این را با گفتن فرمان "اگر فاصله کم است، به نمایه مثلثی بیفتید" تصحیح می کند. سپس زوایای اتصال داده شده توسط هوش مصنوعی را از طریق تابع اعتبارسنجی خود در برابر جدول حد خود اجرا می کند و متوجه می شود که اتصال 5 +125 درجه را در یک نقطه می خواست، در حالی که حد +120 درجه بود. او مسیر را دوباره برنامه ریزی می کند و آن را نظارت می کند، این بار ربات را با سرعت 10 درصد اجرا می کند. در دور اول می بیند که گریپر خیلی به میز نزدیک می شود و افست Z را اصلاح می کند. هوش مصنوعی یک طرح کلی کار را در عرض چند دقیقه برگرداند. اما سه اعتبار سنجی جداگانه (پروفایل مثلثی، حد مشترک، تست آهسته) سه مشکل واقعی جداگانه را گرفت.
اشتباهات رایج
- استفاده از راه حل IK بدون محدودیت مشترک و کنترل دسترسی.
- ورودیهای arccos/arcsin را قطع نمیکند، اما در صورت خطای گرد کردن NaN تولید میکند.
- درخواست مدار بدون محدود کردن سرعت/شتاب و ایجاد شوک مکانیکی.
- نادیده گرفتن مناطق تکینگی و اجازه دادن به سرعت های مفاصل سر به فلک کشیده.
- رد شدن از انتقال نیم رخ ذوزنقه ای-مثلثی در فاصله کوتاه و محاسبه زمان اشتباه.
- انجام اولین تست مداری با سرعت کامل و بدون دسترسی E-stop.
به طور خلاصه
- سینماتیک رو به جلو یک راه حل دارد. سینماتیک معکوس میتواند راهحلهای متعدد، نامحدود یا بینهایت تولید کند.
- راه حل های IK لزوماً از نظر محدودیت های مشترک، دسترسی و تکینگی فیلتر می شوند.
- برنامه ریزی مسیر؛ از پروفایل های نرم و سازگار با محدودیت مانند ذوزنقه یا منحنی S استفاده می کند.
- در فاصله کوتاه پروفیل از ذوزنقه ای به مثلثی تغییر می کند. این باید در کد انجام شود.
- هوش مصنوعی ریاضیات را سرعت می بخشد. محدودیت ها و زمینه نصب فیزیکی باید وارد فرمان شود.
- مسیر جدید همیشه برای اولین بار با نسبت سرعت پایین و E-stop قابل دسترس اجرا می شود.
وظیفه کاربردی
یک مدل بازوی دو یا سه مفصلی (با طول پیوند واقعی یا خیالی و محدودیت مفصل) انتخاب کنید. از هوش مصنوعی بخواهید یک تابع سینماتیک معکوس و یک برنامه ریز مسیر با این زمینه ایجاد کند. سپس: (1) به صورت دستی خروجی IK را با یک هدف شناخته شده تأیید کنید (آیا زاویه ها را به عقب برگردانید و به همان نقطه FK برگردید)، (2) آزمایش کنید که کد آنها را با دادن حداقل یک نقطه غیرقابل دسترس و یک حد مشترک بیش از هدف گرفته است، (3) بررسی کنید که در فاصله کوتاه زمان مداری معقول باشد. بنویسید که چند مشکل اعتبار سنجی در نسخه اول کد پیدا کردید و کدام لایه هر کدام را گرفتار کرد.