Eining 2 / 9

Gervigreind í vélfærafræði og hreyfistýringu

Hagnaður:

  • Geta til að setja upp og leysa fram/öfug hreyfifræði og brautaráætlunarvandamál með hjálp gervigreindar
  • Hæfni til að framleiða örugga braut með því að gefa vélmenni sameiginlega takmörk, hraða og hröðunartakmarkanir sem samhengi við boð
  • Geta til að sannreyna tölulega og líkamlega framleiðsla hreyfingar og brautar framleitt af gervigreindinni

Að koma gripnum á enda vélmennaarms á ákveðinn stað í geimnum, í ákveðinni stefnu; Það hljómar einfalt, en það eru hreyfijöfnur, samskeyti, singularities og ferilskipulag á bak við það. Hér notar vélfræðiverkfræðingur hornafræði, línulega algebru og stýrifræði saman. Gervigreind er öflugt hjálpartæki í þessu ferli: hún getur komið á framvirkum hreyfijöfnum, bent á lausnaraðferðir fyrir andhverfa hreyfifræði, stillt feril í samræmi við hraða/hröðunartakmarkanir. Hins vegar er vélfærafræði eitt af þeim sviðum í vélfræði sem er með mesta líkamlega áhættuna; Ef hornröð sem myndast af gervigreindinni er send til vélmennisins án staðfestingar getur handleggurinn lent í sjálfum sér, umhverfinu eða rekstraraðilanum. Í þessari einingu munum við sjá hvernig á að setja upp og sannreyna hreyfifræði og ferilskipulagningu með gervigreind.

Fram og öfug hreyfifræði

Forward kinematics (FK): Að finna staðsetningu og stefnu end-effektorsins ef liðshornin eru þekkt. Það er aðeins ein lausn, hún er bein.

Inverse kinematics (IK): Ef æskileg staða lokafallsins er þekkt, finndu samskeytihornin sem veita þetta. Það hefur venjulega fleiri en eina lausn (eins og olnbogi upp/niður), stundum hefur það engar lausnir (óaðgengilegur punktur), stundum hefur það óendanlegar lausnir (singularity).

hugtak

inntak

framleiðsla

Fjöldi lausna

Hreyfifræði áfram

samskeyti

Öfgastaða/stefna

einhleypur

Öfug hreyfifræði

Öfgastaða/stefna

samskeyti

Margfeldi/enginn/óendanlegur

Fyrir tvíliða planar arm er hægt að setja upp andhverfa hreyfifræði í gervigreindinni og sannreyna handvirkt sem hér segir:

flytja inn numpy sem npdef inverse_kinematik_2r(x, y, L1, L2): """IK fyrir 2-liða planar arm. Skilar hornum í radíönum (olnboga-niður lausn).""" r2 = x**2 + y**2 # Aðgengisathugun: er punkturinn á vinnusvæðinu? ef np.sqrt(r2) > (L1 + L2) eða np.sqrt(r2) < abs(L1 - L2): hækka ValueError("Punkturinn er fyrir utan aðgengilega vinnusvæðið") cos_t2 = (r2 - L1**2 - L2**2) / (2 * L1 * L2) cos.s_t2,cos_0,klip 1.0) # tölulegt öryggi t2 = np.arccos(cos_t2) # olnbogi niður t1 = np.arctan2(y, x) - np.arctan2(L2*np.sin(t2), L1 + L2*np.cos(t2)) skilar np.degrees(np.degrees:degrees:degrees(np.degrees) L1=L2=1, markmið (1,1) -> væntanlegt t2=90 gráður (inverse_kinematik_2r(1.0, 1.0, 1.0, 1.0)) # ~ (0.0, 90.0)

Mikilvægu línurnar hér eru þar sem gervigreindin sleppir oft: aðgengisskoðun (er punkturinn á vinnusvæðinu) og `np.clip` (komnar í veg fyrir að inntak arccos fari yfir ±1 vegna námundunarvillu). Án þessara tveggja varna mun kóðinn framleiða NaN eða hrynja á ógildum stað.

Ábending: Þegar þú biður um IK-upplausn, segðu gervigreindinni greinilega að "bæta við aðgengisstýringu og takmarka inntak arccos við bút". Þessar tvær línur koma í veg fyrir þær þöglu villur sem valda mestum höfuðverk á sviði.

Sameiginleg takmörk, sérkenni og margar lausnir

Hver liður raunverulegs vélmenni hefur hornsvið (t.d. -170° til +170°), hámarkshraða og hröðunarmörk. Jafnvel þótt IK gefi upp stærðfræðilega gilt horn er ekki hægt að nota það ef það horn er utan eðlisfræðilegs sviðs liðsins. Að auki fellur vélmennið í sérstöðu í sumum uppsetningum: tveir ásar eru samstilltir, ein frelsisgráðu glatast og liðahraðar reyna að fara út í hið óendanlega fyrir litla þjórféhreyfingu.

Þess vegna er HR lausnin ein og sér ekki nóg; Sérhver lausn verður að standast viðunandi síu:

def solution_gecerli_mi(acilar_deg, limits_deg): """verkir: [t1,t2,...], mörk: [(min,max),...]""" fyrir sársauka, (amin, amax) í zip(acilar_deg, limits_deg): ef ekki (amín <= sársauki <= amax): skila deg ósatt, f:}Jofint mörk: farið yfir ({amine},{amax}) nema" skila True, "OK"limits = [(-170, 170), (-120, 120)]print(cozum_valid_mi([0.0, 90.0], limits)) # (True, 'OK')print(cozum_valid_mi([0.0,F limits], #Jointals limit], farið yfir...')

AI getur gefið "stærðfræðilega" lausn IK; en sameiginleg takmörk og forðast að vera einstæður eru sértækar fyrir kerfið þitt og verður að gefa sem samhengi við hvetjandinn.

Orbit Planning

Að koma vélmenninu frá punkti A í punkt B snýst ekki um að draga beina línu á milli tveggja horna. Skyndileg hraðabreyting skapar vélrænt högg og titring. Þess í stað eru mjúk snið notuð: trapisulaga hraðasnið (stöðug hröðun – stöðugur hraði – stöðug hraðaminnkun) eða S-ferill (sléttari, þar sem hröðun er einnig takmörkuð). Þegar gervigreindin býr til feril verður þú að gefa upp markmiðið, lengdina og takmarkanir.

flyttu inn numpy sem npdef trapez_yorunge(q0, q1, v_max, a_max, dt=0.01): """Trapezoidal hraðasnið fyrir einn lið. Stöðufylkingunni er skilað.""" distance = abs(q1 - q0) direction = np.sign(q1 - /speed_max) v_max_aq0) tmax_speed_max. * a_max * t_speed**2 ef 2 * distance_speed > vegalengd: # þríhyrningssnið (v_max ekki hægt að ná) t_speed = np.sqrt(fjarlægð / a_max) t_constant = 0.0 v_peak = a_max * t_speed else: t_constant =peaked = * v_max v_max 2 * t_accelerate + t_constant t = np.arange(0, T, dt) # ... stöðuútreikningur fyrir hvert t (byggt á hröðunar-/fasta-/hraðaminnkun) skilar t, T, v_peak, duration, vz = trapezoidal_trajectory(0.0, 0,=max. a_max=120.0)print(f"Heildarlengd: {duration:.3f} s, hámarkshraði: {vz:.1f} deg/s")

Rökfræðileg athugun hér er þessi: ef fjarlægðin er stutt mun mótorinn aldrei ná v_max og sniðið mun snúa úr trapisulaga í þríhyrningslaga. Ef gervigreindin missir af þessu ástandi verður röng lengd reiknuð fyrir stuttar hreyfingar. Þú getur staðfest þetta með því að prófa kóðann með þekktu gildi (til dæmis mjög stutt vegalengd).

Veik kvaðning / sterk kvaðning

WEAK:"Skrifaðu braut sem tekur vélmennaarminn frá A til B."(Engin takmörkun: hraðatakmörk? hröðun? liðbil? Blind framleiðsla.)STERKT:"Búið til punkt-til-punkt braut í liðrými fyrir 6-ása vélmenni. Hraðatakmarkið fyrir hvern lið er 90 gráður/s, hröðunarmörkin eru gefin upp í 180 stiga horninu.^2 hraðasnið, ef fjarlægðin er stutt, falla í þríhyrnt snið. Úttak hvers liðs er einnig skrifað staðfestingaraðgerð sem athugar að það fari ekki yfir mörkin: {{tafla}}.

Staðfesting: Frá uppgerð til vélmenni

Ferillinn sem myndast af gervigreindinni er staðfestur í þessari röð áður en farið er í vélmennið:

  1. Tölulegt: Eru samskeyti, hraði og hröðun hvers skrefs innan marka?
  2. Árekstur: Á brautinni, rekst handleggurinn við sjálfan sig eða umhverfið (sjá/herma eftir ef mögulegt er)?
  3. Singularity: Fer brautin í gegnum singularity svæði (nálægist jakobíski ákvörðunarþátturinn núll)?
  4. Hæg vélbúnaðarprófun: Notaðu vélmennið á lágum hraða (t.d. 10%) og fylgstu með því sjónrænt.
  5. Hækkandi hraðaaukning: Þegar allt hefur verið staðfest eykst hraðinn skref fyrir skref að nafnverði.
Varúð: Þegar vélmenni er ræst með nýja braut í fyrsta skipti, ætti hraðahnekningin alltaf að vera lág og nauðstoppið ætti að vera tiltækt. Jafnvel þó að AI framleiðsla sé „stærðfræðilega rétt“, mun offset, öfugur ás eða snúru hængur í líkamlegri uppsetningu aðeins koma í ljós með hægum prófun.

Mini Case

Sjálfvirkniverkfræðingur Ece biður gervigreindina um brautarkóða í sameiginlegu rými fyrir val-og-stað forrit. Gervigreindin framleiðir trapisulaga snið, en þegar Ece prófar stutta hreyfingu sér hún að tíminn er neikvæður: kóðinn höndlaði ekki þríhyrningslaga sniðið þar sem ekki er hægt að ná v_max. Ece leiðréttir þetta með því að segja hvetjunni "ef fjarlægðin er stutt, fallið í þríhyrningslaga sniðið". Það keyrir síðan samskeytihornin sem gefin eru af gervigreindinni í gegnum staðfestingaraðgerð sína á móti eigin takmörkunartöflu og kemst að því að lið 5 vildi +125° á einum stað, en mörkin voru +120°. Hann endurskipulagir ferilinn og fylgist með honum, í þetta sinn keyrir hann vélmennið á 10% hraða. Í fyrstu lotu sér hann að gripurinn er að komast of nálægt borðinu og leiðréttir Z offsetið. Gervigreindin skilaði vinnuyfirliti á nokkrum mínútum; en þrjár aðskildar sannprófanir (þríhyrningslaga snið, liðamörk, hægt próf) gripu þrjú aðskilin raunveruleg vandamál.

Algeng mistök

  • Notkun IK lausnarinnar án samskeyta og aðgengisstýringar.
  • Ekki klippa arccos/arcsin færslur en framleiða NaN ef um námundunarvillu er að ræða.
  • Að biðja um brautina án þess að takmarka hraða/hröðun og skapa vélrænt lost.
  • Að hunsa sérkennissvæði og láta hraða liðanna aukast.
  • Sleppa trapisulaga-þríhyrningslaga sniðbreytingunni í stuttri fjarlægð og reikna út rangan tíma.
  • Framkvæma fyrstu sporbrautarprófunina á fullum hraða og án aðgangs að E-stoppi.

Í stuttu máli

  • Forward kinematics hefur eina lausn; öfug hreyfifræði getur framleitt margar, engar eða óendanlega lausnir.
  • IK lausnir eru endilega síaðar með tilliti til sameiginlegra marka, aðgengis og sérstöðu.
  • Ferilskipulagning; Það notar mjúk, takmörk-samhæf snið eins og trapisulaga eða S-feril.
  • Í stuttri fjarlægð breytist sniðið úr trapisulaga í þríhyrningslaga; þetta ætti að vera meðhöndlað í kóðanum.
  • gervigreind flýtir fyrir stærðfræði; Takmörkin og efnislegt uppsetningarsamhengi ætti að koma inn í hvetjunni.
  • Nýja brautin er alltaf keyrð í fyrsta skipti með lágu hraðahlutfalli og aðgengilegu nauðstoppi.

Umsóknarverkefni

Veldu tveggja eða þriggja liða armalíkan (með raunverulegum eða ímynduðum hlekklengdum og liðamörkum). Láttu gervigreindina búa til andhverfa hreyfivirkni og ferilskipuleggjandi með þessu samhengi. Síðan: (1) sannreynið IK úttakið handvirkt með þekktu skotmarki (seturðu hornin til baka og snýr aftur í sama stað og FK), (2) prófaðu að kóðinn fangi þau með því að gefa að minnsta kosti einn óaðgengilegan punkt og eitt sameiginlegt takmark sem fer yfir markið, (3) athugaðu að í stuttri fjarlægð reynist umferðartíminn sanngjarn. Skrifaðu niður hversu mörg löggildingarvandamál þú fannst í fyrstu útgáfu kóðans og hvaða lag náði hvert og eitt.