Vahid 2 / 9

Robototexnika və Hərəkətə Nəzarətdə Süni İntellekt

Qazanclar:

  • Süni intellektin köməyi ilə irəli/ters kinematika və trayektoriya planlaşdırma problemlərini qurmaq və həll etmək bacarığı
  • Tez kontekst olaraq robotun birgə məhdudiyyətləri, sürət və sürətlənmə məhdudiyyətləri verməklə təhlükəsiz orbit yaratmaq bacarığı
  • AI tərəfindən istehsal olunan kinematik və trayektoriya çıxışını rəqəmsal və fiziki olaraq yoxlamaq bacarığı

Robot qolunun ucunda tutucunun kosmosda müəyyən bir nöqtəyə, müəyyən istiqamətə gətirilməsi; Bu sadə səslənir, lakin bunun arxasında kinematik tənliklər, birgə məhdudiyyətlər, təkliklər və trayektoriya planlaması var. Burada mexatronika mühəndisi triqonometriya, xətti cəbr və idarəetmə nəzəriyyəsini birlikdə istifadə edir. Süni intellekt bu prosesdə güclü köməkçidir: o, irəli kinematik tənliklər qura, tərs kinematika üçün həll yanaşmalarını təklif edə, sürət/sürətlənmə məhdudiyyətlərinə uyğun olaraq trayektoriyanı parametrləşdirə bilər. Bununla belə, robototexnika mexatronikanın ən yüksək fiziki riskli sahələrindən biridir; Süni intellekt tərəfindən yaradılan bucaq ardıcıllığı təsdiqlənmədən robota göndərilərsə, qol özünə, ətrafa və ya operatora dəyə bilər. Bu bölmədə biz süni intellekt ilə kinematikanı və trayektoriya planlamasını necə qurmaq və yoxlamaq lazım olduğunu görəcəyik.

İrəli və tərs kinematika

İrəli kinematika (FK): Birgə bucaqlar məlumdursa, son effektorun mövqeyini və oriyentasiyasını tapmaq. Yalnız bir həll yolu var, o, birbaşadır.

Tərs kinematika (İK): Son funksiyanın istənilən mövqeyi məlumdursa, bunu təmin edəcək birgə bucaqların tapılması. Onun adətən birdən çox həlli var (məsələn, dirsək yuxarı/aşağı), bəzən heç bir həll yolu yoxdur (əlçatmaz nöqtə), bəzən sonsuz həlli var (təklik).

anlayış

giriş

çıxış

Həlllərin sayı

İrəli kinematik

birgə açılar

Həddindən artıq mövqe/oriyentasiya

subay

Tərs kinematika

Həddindən artıq mövqe/oriyentasiya

birgə açılar

Çoxlu/heç biri/sonsuz

İki birgə planar qol üçün tərs kinematik süni intellektdə qurula və aşağıdakı kimi əl ilə yoxlana bilər:

import numpy as npdef inverse_kinematik_2r(x, y, L1, L2): """2-birgə müstəvi qol üçün IK. Bucaqları radyanla qaytarır (dirsəkdən aşağı həll).""" r2 = x**2 + y**2 # Əlçatanlığın yoxlanılması: iş yerindəki nöqtədir? əgər np.sqrt(r2) > (L1 + L2) və ya np.sqrt(r2) < abs(L1 - L2): yüksəlt ValueError("Nöqtə əlçatan iş yerindən kənardadır") cos_t2 = (r2 - L1**2 - L2**2) / (2 * L1 * L2) cos_t2,cos_t2, -slip = 1.0) # ədədi təhlükəsizlik t2 = np.arccos(cos_t2) # dirsək aşağı t1 = np.arctan2(y, x) - np.arctan2(L2*np.sin(t2), L1 + L2*np.cos(t2)) qayıdış np.arccos(cos_t2) Valyuta dərəcəsi(t2) L1=L2=1, hədəf (1,1) -> gözlənilən t2=90 dərəcə çap (əks_kinematik_2r(1.0, 1.0, 1.0, 1.0)) # ~ (0.0, 90.0)

Buradakı kritik xətlər süni intellektin tez-tez atladığı yerlərdir: əlçatanlığın yoxlanılması (iş sahəsindəki nöqtədir) və `np.clip` (yuvarlaqlaşdırma xətası səbəbindən arccos girişinin ±1-dən kənara çıxmasının qarşısını alır). Bu iki qoruma olmadan kod NaN yaradacaq və ya etibarsız bir nöqtədə çökəcək.

İpucu: IK həllini soruşduqda, AI-yə "əlçatanlıq nəzarəti əlavə edin və klipə arccos girişini məhdudlaşdırın" deyin. Bu iki xətt sahədə ən çox baş ağrısına səbəb olan səssiz səhvlərin qarşısını alır.

Birgə Limitlər, Təklik və Çoxlu Həllər

Həqiqi robotun hər birləşməsinin bucaq diapazonu (məsələn, -170° ilə +170°), sürət həddi və sürətlənmə həddi var. IK riyazi cəhətdən etibarlı bir bucaq versə belə, bu bucaq birləşmənin fiziki diapazonundan kənarda olarsa, istifadə edilə bilməz. Bundan əlavə, robot bəzi konfiqurasiyalarda təkliyə düşür: iki ox düzlənir, bir sərbəstlik dərəcəsi itirilir və birgə sürətlər kiçik bir uc hərəkəti üçün sonsuzluğa getməyə çalışır.

Buna görə də HR həlli tək başına kifayət deyil; Hər bir həll məqbul filtrdən keçməlidir:

def solution_gecerli_mi(acilar_deg, limits_deg): """ağrılar: [t1,t2,...], limitlər: [(min,max),...]""" ağrı üçün, (amin, amax) zipdə(acilar_deg, limits_deg): əgər yoxsa (amin <= ağrı <= amax): qaytarmaq False {1f. ({amin},{amax}) istisna olmaqla" qaytarın Doğrudur, "OK"limitlər = [(-170, 170), (-120, 120)]print(cozum_valid_mi([0.0, 90.0], limitlər)) # (Doğru, 'OK')print(cozum_valid_mi(0,0, #1)s.) (Yanlış, 'Birgə limit keçildi...')

AI IK-nin "riyazi" həllini verə bilər; lakin birgə məhdudiyyətlər və təklikdən yayınma sisteminiz üçün səciyyəvidir və sorğunun kontekstində verilməlidir.

Orbit Planlaşdırılması

Robotun A nöqtəsindən B nöqtəsinə gətirilməsi iki bucaq arasında düz xətt çəkmək deyil. Sürətin qəfil dəyişməsi mexaniki zərbə və vibrasiya yaradır. Bunun əvəzinə yumşaq profillər istifadə olunur: trapezoidal sürət profili (sabit sürətlənmə-sabit sürət-sabit yavaşlama) və ya S əyrisi (sürətlənmənin də məhdud olduğu yerlərdə daha hamar). Süni intellekt bir traektoriya yaratarkən, hədəfi, müddəti və məhdudiyyətləri verməlisiniz.

import numpy as npdef trapez_yorunge(q0, q1, v_max, a_max, dt=0.01): """Tək birləşmə üçün trapezoidal sürət profili. Mövqe massivi qaytarılır.""" məsafə = abs(q1 - q0) istiqamət = np.sign(q1 - q0) istiqamət = np.sign(q1 - _ a = q_) məsafəli 0,5 * a_max * t_sürət**2 əgər 2 * məsafə_sürəti > məsafə: # üçbucaqlı profil (v_max əlçatan deyil) t_sürət = np.sqrt(məsafə / a_max) t_sabit = 0.0 v_pik = a_max * t_sürət başqa: t_sabit = (məsafə_max) v___ v_max T = 2 * t_sürətləndirmək + t_sabit t = np.arange(0, T, dt) # ... hər t üçün mövqe hesablanması (sürətlənmə/sabit/yavaşlama fazalarına əsasən) qayıdış t, T, v_pik, müddət, vz = trapezoidal_traektoriya, v_0.0, 0.0.0.0. a_max=120.0)print(f"Ümumi müddət: {müddət:.3f} s, pik sürət: {vz:.1f} deq/s")

Burada məntiq yoxlaması belədir: məsafə qısa olarsa, mühərrik heç vaxt v_max-a çatmayacaq və profil trapezoidaldan üçbucaqlıya çevriləcək. AI bu şərti qaçırarsa, qısa hərəkətlər üçün səhv müddət hesablanacaq. Siz kodu məlum dəyərlə (məsələn, çox qısa məsafədə) sınaqdan keçirərək bunu yoxlaya bilərsiniz.

Zəif Tələb / Güclü Tələb

ZƏFS:"Robot qolunu A-dan B-yə aparan trayektoriya yazın."(Məhdudiyyət yoxdur: sürət həddi? sürətlənmə? oynaqlar arası məsafə? Kor çıxış.)GÜÇLÜ:"6 oxlu robot üçün birgə məkanda nöqtədən-nöqtəyə trayektoriya yaradın. Hər birləşmə üçün sürət həddi 90 deq/s, istifadə sürəti həddi 90 deq/s, sürətlənmə həddi 2/s verilmişdir. trapezoidal sürət profili, əgər məsafə qısadırsa, üçbucaqlı profilə düşür.

Doğrulama: Simulyasiyadan robota qədər

Süni intellekt tərəfindən yaradılan trayektoriya robota getməzdən əvvəl bu ardıcıllıqla yoxlanılır:

  1. Rəqəmsal: Hər bir addımın birgə bucağı, sürəti və sürətlənməsi limitlər daxilindədirmi?
  2. Toqquşma: Trayektoriya boyunca qol özü və ya ətraf mühitlə toqquşurmu (mümkünsə vizuallaşdırın/imitasiya edin)?
  3. Təklik: Orbit təklik bölgəsindən keçirmi (Yakobi determinantı sıfıra yaxınlaşırmı)?
  4. Yavaş aparat testi: Robotu aşağı sürətlə idarə edin (məsələn, 10%) və ona vizual olaraq nəzarət edin.
  5. Tədricən sürət artımı: Hər şey təsdiqləndikdən sonra sürət nominal dəyərə qədər addım-addım artır.
Diqqət: Yeni trayektoriyaya malik robotu ilk dəfə işə saldıqda, sürətin dəyişdirilməsi həmişə aşağı olmalıdır və E-stop mövcud olmalıdır. AI çıxışı "riyazi cəhətdən düzgün" olsa belə, fiziki quraşdırmada ofset, əks ox və ya kabel tıxanması yalnız yavaş sınaq zamanı aşkar ediləcək.

Mini Çanta

Avtomatlaşdırma mühəndisi Ece süni intellektdən seç və yer tətbiqi üçün birgə məkanda trayektoriya kodunu soruşur. Süni intellekt trapezoidal profil yaradır, lakin Ece qısa məsafəli hərəkəti sınaqdan keçirəndə vaxtın mənfi olduğunu görür: kod v_max-a çatmaq mümkün olmayan üçbucaqlı profil işini idarə etməyib. Ece "məsafə azsa, üçbucaq profilinə düş" deyərək bunu düzəldir. Daha sonra o, təsdiqləmə funksiyası vasitəsilə AI tərəfindən verilən birgə bucaqları öz limit cədvəlinə qarşı işlədir və 5-in bir nöqtədə +125° istədiyini, limit isə +120° olduğunu tapır. O, trayektoriyanı yenidən planlaşdırır və ona nəzarət edir, bu dəfə robotu 10% sürətlə idarə edir. Birinci dövrədə tutucunun masaya çox yaxınlaşdığını görür və Z ofsetini düzəldir. AI bir neçə dəqiqə ərzində iş konturunu qaytardı; lakin üç ayrı yoxlama (üçbucaqlı profil, birgə limit, yavaş test) üç ayrı real problemi tutdu.

Ümumi Səhvlər

  • Birgə məhdudiyyətlər və əlçatanlıq nəzarəti olmadan IK həllindən istifadə.
  • Arccos/arcsin girişlərini kəsmək deyil, yuvarlaqlaşdırma xətası halında NaN istehsal etmək.
  • Sürəti/sürətlənməni məhdudlaşdırmadan və mexaniki zərbə yaratmadan orbitə çıxmaq.
  • Təklik zonalarına məhəl qoymamaq və birləşmənin sürətini artırmağa imkan vermək.
  • Qısa məsafədə trapezoidal-üçbucaqlı profil keçidinin atlanması və yanlış vaxtın hesablanması.
  • İlk orbital testin tam sürətlə və E-stop çıxışı olmadan aparılması.

Xülasə

  • İrəli kinematikanın tək həlli var; tərs kinematik çoxlu, qeyri-mövcud və ya sonsuz həllər çıxara bilər.
  • IK həlləri mütləq birgə məhdudiyyətlər, əlçatanlıq və təklik baxımından süzülür.
  • Trayektoriyanın planlaşdırılması; O, trapezoidal və ya S-əyri kimi yumşaq, limitə uyğun profillərdən istifadə edir.
  • Qısa məsafədə profil trapezoidaldan üçbucaqlıya dəyişir; bu kodda işlənməlidir.
  • AI riyaziyyatı sürətləndirir; Məhdudiyyətlər və fiziki quraşdırma konteksti sorğuya daxil edilməlidir.
  • Yeni trayektoriya həmişə ilk dəfə aşağı sürət nisbəti və əlçatan E-stop ilə idarə olunur.

Tətbiq tapşırığı

İki və ya üç oynaqlı qol modelini seçin (həqiqi və ya xəyali keçid uzunluqları və birləşmə məhdudiyyətləri ilə). Süni intellektlə tərs kinematik funksiya və bu kontekstdə trayektoriya planlayıcısı yaratsın. Sonra: (1) IK çıxışını məlum hədəflə əl ilə yoxlayın (bucaqları geri qoyub FK ilə eyni nöqtəyə qayıdırsınız), (2) kodun ən azı bir əlçatmaz nöqtə və hədəfi keçən bir birgə limiti verməklə onları tutduğunu yoxlayın, (3) qısa məsafədə orbital vaxtın məqbul olduğunu yoxlayın. Kodun ilk versiyasında neçə doğrulama problemi tapdığınızı və hansı təbəqənin hər birini tutduğunu yazın.