Birlik 2 / 9

Robototexnika va harakatni boshqarishda sun'iy intellekt

Daromadlar:

  • AI yordamida oldinga/teskari kinematika va traektoriyani rejalashtirish masalalarini o'rnatish va hal qilish qobiliyati
  • Tezkor kontekst sifatida robot qo'shma chegaralari, tezlik va tezlanish cheklovlarini berish orqali xavfsiz orbitani ishlab chiqarish qobiliyati
  • AI tomonidan ishlab chiqarilgan kinematik va traektoriya chiqishini raqamli va jismoniy tekshirish qobiliyati

Robot qo'lining uchidagi tutqichni kosmosning ma'lum bir nuqtasiga, ma'lum bir yo'nalishga olib kelish; Bu oddiy tuyuladi, lekin uning orqasida kinematik tenglamalar, qo'shma chegaralar, o'ziga xosliklar va traektoriyani rejalashtirish mavjud. Bu erda mexatronika muhandisi trigonometriya, chiziqli algebra va boshqaruv nazariyasini birgalikda qo'llaydi. Sun'iy intellekt bu jarayonda kuchli yordamchidir: u oldinga kinematik tenglamalarni o'rnatishi, teskari kinematikani hal qilish usullarini taklif qilishi, tezlik/tezlanish cheklovlariga ko'ra traektoriyani parametrlashi mumkin. Biroq, robototexnika mexatronikadagi eng yuqori jismoniy xavfga ega bo'lgan sohalardan biridir; Agar AI tomonidan yaratilgan burchak ketma-ketligi tekshirilmasdan robotga yuborilsa, qo'l o'ziga, atrof-muhitga yoki operatorga tegishi mumkin. Ushbu bo'limda biz sun'iy intellekt yordamida kinematikani va traektoriyani rejalashtirishni qanday o'rnatish va tekshirishni ko'rib chiqamiz.

To'g'ri va teskari kinematika

Oldinga kinematika (FK): Agar qo'shma burchaklar ma'lum bo'lsa, oxirgi effektorning holati va yo'nalishini topish. Bitta yechim bor, u to'g'ridan-to'g'ri.

Teskari kinematika (IK): Agar oxirgi funktsiyaning kerakli pozitsiyasi ma'lum bo'lsa, buni ta'minlaydigan qo'shma burchaklarni topish. Odatda bir nechta yechimga ega (masalan, tirsak yuqoriga/pastga), baʼzan yechimlari yoʻq (erishib boʻlmaydigan nuqta), baʼzan cheksiz yechimga ega (yakkalik).

tushuncha

kiritish

chiqish

Yechimlar soni

Oldinga kinematik

qo'shma burchaklar

Ekstremal pozitsiya/orientatsiya

yagona

Teskari kinematika

Ekstremal pozitsiya/orientatsiya

qo'shma burchaklar

Ko'p/yo'q/cheksiz

Ikki qo'shma planar qo'l uchun teskari kinematikani AIda sozlash va qo'lda quyidagicha tekshirish mumkin:

import numpy as npdef inverse_kinematik_2r(x, y, L1, L2): """2-bo'g'inli planar qo'l uchun IK. Burchaklarni radianlarda qaytaradi (tirsakkacha yechim).""" r2 = x**2 + y**2 # Foydalanish imkoniyatini tekshirish: ish maydonidagi nuqtami? agar np.sqrt(r2) > (L1 + L2) yoki np.sqrt(r2) < abs(L1 - L2): oshirish ValueError("Nuqta kirish mumkin bo'lgan ish joyidan tashqarida") cos_t2 = (r2 - L1**2 - L2**2) / (2 * L1 * L2) cos_t2, -s. 1.0) # numericalsecurity t2 = np.arccos(cos_t2) # tirsak pastga t1 = np.arctan2(y, x) - np.arctan2(L2*np.sin(t2), L1 + L2*np.cos(t2)) qaytish np.arccos(cos_t2) Valyuta darajasi (t.)degrees. L1=L2=1, maqsad (1,1) -> kutilayotgan t2=90 daraja bosib chiqarish (teskari_kinematik_2r(1.0, 1.0, 1.0, 1.0)) # ~ (0.0, 90.0)

Bu yerda muhim qatorlar AI ko‘pincha o‘tkazib yuboradigan joylardir: kirish imkoniyatini tekshirish (ish maydonidagi nuqta) va “np.clip” (yaxlitlash xatosi tufayli arccos kiritishining ±1 dan oshib ketishining oldini oladi). Ushbu ikkita himoyasiz kod NaN hosil qiladi yoki yaroqsiz nuqtada ishdan chiqadi.

Maslahat: IK rezolyutsiyasini so'raganda, AIga "maxsus imkoniyatlarni boshqarishni qo'shish va klipga arccos kiritishni cheklash" kerakligini aniq ayting. Ushbu ikkita chiziq sohada eng ko'p bosh og'rig'iga sabab bo'lgan jim xatolarni oldini oladi.

Birgalikda chegaralar, yagonalik va bir nechta echimlar

Haqiqiy robotning har bir bo'g'ini burchak diapazoni (masalan, -170 ° dan +170 ° gacha), tezlik chegarasi va tezlanish chegarasiga ega. IK matematik jihatdan to'g'ri burchakni bergan taqdirda ham, agar bu burchak bo'g'inning jismoniy diapazonidan tashqarida bo'lsa, uni ishlatib bo'lmaydi. Bundan tashqari, robot ba'zi konfiguratsiyalarda o'ziga xoslikka tushadi: ikkita o'q hizalanadi, bir erkinlik darajasi yo'qoladi va qo'shma tezliklar kichik uchi harakati uchun cheksizlikka borishga harakat qiladi.

Shuning uchun HR yechimining o'zi etarli emas; Har bir yechim maqbullik filtridan o'tishi kerak:

def solution_gecerli_mi(acilar_deg, limits_deg): """og'riqlar: [t1,t2,...], chegaralar: [(min,max),...]""" og'riq uchun, (amin, amax) zip(acilar_deg, limits_deg): agar bo'lmasa (amin <= og'riq <= amax): qaytar False limiti: J dep. ({amin},{amax}) bundan mustasno" qaytish To'g'ri, "OK"chegaralari = [(-170, 170), (-120, 120)]chop etish(cozum_valid_mi([0.0, 90.0], limitlar)) # (To'g'ri, "OK")chop etish (cozum_valid_mi(0,0, #1)s.) (Noto'g'ri, “Birgalikda chegaradan oshib ketdi...”)

AI IK ning "matematik" yechimini berishi mumkin; lekin qo'shma chegaralar va o'ziga xoslikdan qochish sizning tizimingizga xos bo'lib, so'rovga kontekst sifatida berilishi kerak.

Orbitani rejalashtirish

Robotni A nuqtadan B nuqtaga olib borish ikki burchak o'rtasida to'g'ri chiziq chizish emas. To'satdan tezlik o'zgarishi mexanik zarba va tebranish hosil qiladi. Buning o'rniga yumshoq profillar qo'llaniladi: trapezoidal tezlik profili (doimiy tezlashuv - doimiy tezlik - doimiy sekinlashuv) yoki S-egri (tezlanish ham cheklangan bo'lsa, silliqroq). AI traektoriyasini yaratishda siz maqsad, muddat va cheklovlarni ko'rsatishingiz kerak.

import numpy as npdef trapez_yorunge(q0, q1, v_max, a_max, dt=0.01): """Yagona bo'g'in uchun trapezoidal tezlik profili. Joylashuv massivi qaytariladi.""" masofa = abs(q1 - q0) yo'nalish = np.sign(q1 - q0) yo'nalishi = np.sign(q1 - _ speed = q_) 0,5 * a_max * t_tezlik**2, agar 2 * masofa_tezligi > masofa: # uchburchak profili (v_maksga etib boʻlmaydi) t_tezlik = np.sqrt(masofa / a_max) t_constant = 0.0 v_peak = a_max * t_tezlik boshqa: t_constant = (masofa max) v2 =_pe v_max T = 2 * t_accelerate + t_constant t = np.arange(0, T, dt) # ... har bir t uchun pozitsiyani hisoblash (tezlanish/doimiy/sekinlashuv fazalari asosida) qaytish t, T, v_peak, davomiylik, vz = trapezoidal_traektoriya, v_0.0, 0.0.0.0. a_max=120.0)print(f"Umumiy davomiylik: {davomiylik:.3f} s, eng yuqori tezlik: {vz:.1f} deg/s")

Bu erda mantiqiy tekshiruv quyidagicha: agar masofa qisqa bo'lsa, vosita hech qachon v_max ga etib bormaydi va profil trapezoidaldan uchburchakka aylanadi. Agar AI bu shartni o'tkazib yuborsa, qisqa harakatlar uchun noto'g'ri muddat hisoblab chiqiladi. Buni kodni ma'lum qiymat bilan sinab ko'rish orqali tekshirishingiz mumkin (masalan, juda qisqa masofa).

Zaif taklif / Kuchli taklif

ZAF:"Robot qo'lini A dan B ga olib boradigan traektoriyani yozing."(Cheklov yo'q: tezlik chegarasi? tezlashtirish? bo'g'inlar oralig'i? Ko'r-ko'rona chiqish.)Kuchli:"6 o'qli robot uchun qo'shma bo'shliqda nuqtadan nuqtaga traektoriyani yarating. Har bir bo'g'in uchun tezlik chegarasi 90 deg/s, foydalanish tezligi chegarasi 90 deg/s. trapezoidal tezlik profili, agar masofa qisqa bo'lsa, uchburchak profilga tushadi.

Tekshirish: Simulyatsiyadan robotgacha

AI tomonidan yaratilgan traektoriya robotga borishdan oldin quyidagi tartibda tekshiriladi:

  1. Raqamli: Har bir qadamning qo'shma burchagi, tezligi va tezlanishi chegaralar ichidami?
  2. To'qnashuv: traektoriya bo'ylab qo'l o'zi yoki atrof-muhit bilan to'qnashadimi (iloji bo'lsa, vizualizatsiya qilish/taqlid qilish)?
  3. Singularlik: orbita singularlik mintaqasidan o'tadimi (Yakobiya determinanti nolga yaqinlashadimi)?
  4. Sekin apparat sinovi: Robotni past tezlikda (masalan, 10%) boshqaring va uni ingl.
  5. Asta-sekin tezlikni oshirish: hamma narsa tekshirilgandan so'ng, tezlik bosqichma-bosqich nominal qiymatga oshadi.
Diqqat: Yangi traektoriyaga ega robotni birinchi marta ishga tushirganda, tezlikni bekor qilish har doim past bo'lishi va E-stop mavjud bo'lishi kerak. AI chiqishi "matematik jihatdan to'g'ri" bo'lsa ham, jismoniy sozlashdagi ofset, teskari o'q yoki kabelning tiqilib qolishi faqat sekin sinov bilan aniqlanadi.

Mini sumka

Avtomatlashtirish muhandisi Ece sun'iy intellektdan tanlash va joylashtirish ilovasi uchun qo'shma maydonda traektoriya kodini so'raydi. AI trapezoidal profilni ishlab chiqaradi, ammo Ece qisqa masofaga harakatni sinab ko'rganida, u vaqt salbiy ekanligini ko'radi: kod v_max ga erishib bo'lmaydigan uchburchak profil holatini ishlamadi. Ece "agar masofa qisqa bo'lsa, uchburchak profilga tushing" degan so'rovni aytib, buni tuzatadi. Keyin u AI tomonidan berilgan bo'g'in burchaklarini tekshirish funktsiyasi orqali o'zining chegara jadvaliga qarshi ishlaydi va 5 bo'g'in bir nuqtada +125 ° ni talab qilganligini aniqlaydi, chegara esa +120 ° edi. U traektoriyani qayta rejalashtiradi va uni kuzatib boradi, bu safar robotni 10% tezlikda boshqaradi. Birinchi turda u ushlagich stolga juda yaqinlashayotganini ko'radi va Z ofsetini tuzatadi. AI bir necha daqiqada ish rejasini qaytardi; lekin uchta alohida tekshirish (uchburchak profil, qo'shma chegara, sekin test) uchta alohida haqiqiy muammolarni ushladi.

Umumiy xatolar

  • IK yechimidan qo'shma cheklovlarsiz va foydalanish imkoniyatini nazorat qilmasdan foydalanish.
  • Arccos/arcsin yozuvlarini kesish emas, balki yaxlitlash xatosi bo'lsa, NaN hosil qilish.
  • Tezlikni/tezlanishni cheklamasdan va mexanik zarba yaratmasdan orbitani so'rash.
  • Yagonalik zonalariga e'tibor bermaslik va bo'g'in tezligini keskin oshirishga imkon berish.
  • Qisqa masofada trapezoidal-uchburchak profilli o'tishni o'tkazib yuborish va noto'g'ri vaqtni hisoblash.
  • Birinchi orbital sinovni to'liq tezlikda va E-stop kirishsiz o'tkazish.

Xulosa

  • Oldinga kinematikaning yagona yechimi bor; teskari kinematika bir nechta, mavjud bo'lmagan yoki cheksiz echimlarni ishlab chiqishi mumkin.
  • IK yechimlari qo'shma chegaralar, foydalanish imkoniyati va o'ziga xoslik nuqtai nazaridan filtrlanadi.
  • Traektoriyani rejalashtirish; Bu trapezoidal yoki S-egri kabi yumshoq, chegaraga mos profillardan foydalanadi.
  • Qisqa masofada profil trapezoidaldan uchburchakka o'zgaradi; bu kodda ko'rib chiqilishi kerak.
  • AI matematikani tezlashtiradi; Cheklovlar va jismoniy o'rnatish konteksti so'rovga kiritilishi kerak.
  • Yangi traektoriya har doim birinchi marta past tezlik nisbati va mavjud E-stop bilan ishlaydi.

Ilova vazifasi

Ikki yoki uchta bo'g'inli qo'l modelini tanlang (haqiqiy yoki xayoliy bog'lanish uzunligi va bo'g'in chegaralari bilan). AI teskari kinematik funktsiyani va shu kontekstda traektoriyani rejalashtiruvchisini yaratsin. Keyin: (1) IK chiqishini ma'lum maqsad bilan qo'lda tekshiring (burchaklarni orqaga qo'yib, FK bilan bir xil nuqtaga qaytasizmi), (2) kamida bitta kirish imkoni bo'lmagan nuqta va bitta qo'shma chegarani belgilash orqali kod ularni ushlab turishini tekshiring, (3) qisqa masofada orbital vaqt oqilona ekanligini tekshiring. Kodning birinchi versiyasida qancha tekshirish muammosi topilganligini va qaysi qatlam har birini tutganini yozing.