Naúrar 2 / 9

Hankalin Artificial a cikin Robotics da Sarrafa Motsi

Riba:

  • Ability don saitawa da warware gaba / juzu'in kinematics da matsalolin tsara yanayin tare da taimakon AI
  • Ikon samar da amintaccen kewayawa ta hanyar ba da iyakokin haɗin gwiwa na robot, saurin gudu da ƙuntatawa a matsayin mahallin ga gaggawa.
  • Ƙarfin ƙididdigewa da ta jiki don tabbatar da yanayin kinematic da yanayin da AI ta samar

Kawo gripper a ƙarshen hannun mutum-mutumi zuwa wani wuri a sararin samaniya, a cikin wata maƙasudi; Yana da sauƙi mai sauƙi, amma akwai ma'auni na kinematic, iyakokin haɗin gwiwa, singularities da tsarin tsarawa a bayansa. Anan, injiniyan mechatronics yana amfani da trigonometry, algebra na layi da ka'idar sarrafawa tare. Hankali na wucin gadi taimako ne mai ƙarfi a cikin wannan tsari: yana iya kafa ma'auni na kinematics na gaba, ba da shawarar hanyoyin warware hanyoyin kinematics masu juzu'i, daidaita yanayin bisa ga ƙayyadaddun saurin gudu/hanzari. Koyaya, robotics yana ɗaya daga cikin wuraren da ke cikin injina tare da mafi girman haɗarin jiki; Idan an aika jerin kusurwar da AI ta samar zuwa robot ba tare da tabbatarwa ba, hannu na iya buga kanta, muhalli, ko mai aiki. A cikin wannan rukunin za mu ga yadda za a kafa da kuma tabbatar da kinematics da tsarin tsari tare da AI.

Gaba da Inverse Kinematics

Kinematics na gaba (FK): Nemo matsayi da daidaitawar mai tasiri na ƙarshe idan an san kusurwoyin haɗin gwiwa. Akwai mafita guda ɗaya kawai, ita ce kai tsaye.

Inverse kinematics (IK): Idan an san matsayin da ake so na ƙarshen aikin, gano kusurwoyin haɗin gwiwa wanda zai samar da wannan. Yawancin lokaci yana da mafita fiye da ɗaya (kamar gwiwar hannu sama / ƙasa), wani lokacin ba shi da mafita (ma'anar da ba za a iya kaiwa ba), wani lokacin yana da mafita mara iyaka (singularity).

ra'ayi

shigarwa

fitarwa

Yawan mafita

Kinematics na gaba

kusurwar haɗin gwiwa

Matsanancin matsayi / daidaitawa

guda ɗaya

Inverse kinematics

Matsanancin matsayi / daidaitawa

kusurwar haɗin gwiwa

Maɗaukaki/babu/marasa iyaka

Don hanun shirin haɗin gwiwa biyu, ana iya saita kinematics mai juzu'i a cikin AI kuma an tabbatar da su da hannu kamar haka:

shigo da numpy kamar yadda npdef inverse_kinematik_2r (x, y, L1, L2): """ IK don hannu mai haɗin gwiwa 2. Yana mayar da kusurwoyi a cikin radians (maganin gwiwar hannu)." idan np.sqrt (r2)> (L1 + L2) ko np.sqrt (r2) < abs (L1 - L2): tada ValueError ("Point ne a waje da m aiki sarari") cos_t2 = (r2 - L1**2 - L2**2) / (2 * L1 * L2) / (2 * L1 * L2) cos_t2 = (2 * L1 * L2) cos_t2 = (np. 1.0) # numericalsecurity t2 = np.arccos (cos_t2) # gwiwar hannu t1 = np.arctan2 (y, x) - np.arctan2 (L2*np.sin (t2), L1 + L2*np.cos (t2)) komawa np.arccos (t1 = s, Valid2) #gree: np. (1,1) -> da ake tsammanin t2 = 90 digiri (inverse_kinemtik_2r (1.0, 1.0, 1.0, 1.0)) # ~ (0.0, 90.0)

Layukan da ke da mahimmanci a nan sune inda AI sau da yawa ke tsallakewa: bincika iya isa (shine ma'ana a cikin wurin aiki) da `np.clip` (yana hana shigar da arccos wuce ± 1 saboda kuskuren zagaye). Idan ba tare da waɗannan kariyar guda biyu ba, lambar za ta haifar da NaN ko ta faɗo a wuri mara inganci.

Tukwici: Lokacin neman ƙudurin IK, a fili gaya wa AI don "ƙara ikon samun dama da iyakance shigarwar arccos zuwa shirin". Wadannan layi biyu suna hana kurakuran shiru wanda ke haifar da mafi yawan ciwon kai a filin.

Iyaka na haɗin gwiwa, Singularity da Multiple Solutions

Kowane haɗin gwiwa na mutum-mutumi na gaske yana da kewayon kusurwa (misali -170° zuwa +170°), iyakar gudu, da iyakacin hanzari. Ko da IK yana ba da kusurwa mai inganci ta lissafi, ba za a iya amfani da shi ba idan wannan kusurwar tana waje da kewayon jiki na haɗin gwiwa. Bugu da ƙari, robot ɗin ya faɗi cikin nau'i-nau'i a wasu jeri: an daidaita gatari biyu, an rasa digiri ɗaya na 'yanci, kuma saurin haɗin gwiwa yana ƙoƙarin zuwa ga rashin iyaka don ƙaramin motsi.

Shi ya sa HR mafita kadai bai isa ba; Dole ne kowace mafita ta wuce tace karbuwa:

def solution_gecerli_mi (acilar_deg, limits_deg): """ raɗaɗi: [t1,t2,...], iyaka: [(min,max),...]""" don zafi, (amin, amax) a cikin zip (acilar_deg, limits_deg): idan ba (amine <= zafi <= amax): dawo da arya, f"Haɗin gwiwa ya wuce iyaka. ({amine},{amax}) sai dai" dawo Gaskiya, "Ok"liits = [(-170, 170), (-120, 120)]print (cozum_valid_mi([0.0, 90.0], limits))) 'An wuce iyakar haɗin gwiwa...')

AI na iya ba da maganin "ilimin lissafi" na IK; amma iyakoki na haɗin gwiwa da gujewa kaɗaici sun keɓance ga tsarin ku kuma dole ne a ba da su azaman mahallin ga gaggawa.

Shirye-shiryen Orbit

Samun mutum-mutumi daga aya A zuwa aya B ba batun zana madaidaiciyar layi tsakanin kusurwoyi biyu ba ne. Canjin saurin gaggawa yana haifar da girgiza injina da girgiza. Madadin haka, ana amfani da bayanan martaba masu laushi: bayanin martabar saurin trapezoidal (acceleration na yau da kullun – saurin ci gaba – ragewa na yau da kullun) ko S-curve (mai laushi, inda haɓakawa kuma yana iyakance). Lokacin yin AI ta haifar da yanayin, dole ne ku ba da manufa, tsawon lokaci da ƙuntatawa.

shigo da numpy kamar yadda npdef trapez_yorunge (q0, q1, v_max, a_max, dt=0.01): """ Trapezoidal bayanin martaba na sauri don haɗin gwiwa guda ɗaya. An dawo da tsararrun matsayi. """ nisa = abs (q1 - q0) shugabanci = np.sign = (q1 - q0) tx_ distance_ 0.5 * a_max * t_speed**2 idan 2 * nisa_speed> nisa: # profile triangular (v_max not reachable) t_speed = np.sqrt(distance / a_max) t_constant = 0.0 v_peak = a_max * t_speed else = t_constant = (distance_max) v_max T = 2 * t_accelerate + t_constant t = np.arange (0, T, dt) # ... lissafin matsayi ga kowane t (dangane da matakan hanzari / m / raguwa) dawowa t, T, v_peak, duration, vz = trapezoidal_trajectory (0.0, _max = 0.0.0, v. a_max=120.0) bugawa (f"Jimlar tsawon lokaci: {lokacin lokaci:.3f} s, saurin kololuwa: {vz:.1f} deg/s")

Binciken dabaru anan shine: idan nisa gajere ne, motar ba zata taba kaiwa v_max ba kuma bayanin martaba zai juya daga trapezoidal zuwa triangular. Idan AI ya rasa wannan yanayin, za a ƙididdige lokacin da ba daidai ba don gajerun motsi. Kuna iya tabbatar da hakan ta gwada lambar tare da sanannen ƙima (misali, ɗan ɗan gajeren nesa).

Rauni Mai Sauƙi / Ƙarfi Mai ƙarfi

RAUNI: "Rubuta yanayin da ke ɗaukar hannun robot daga A zuwa B." Trapezoidal bayanin martaba, idan tazarar ta yi gajere, faɗuwa cikin bayanin martaba na uku-uku. Hakanan za'a rubuta aikin tabbatarwa wanda bai wuce iyakokin haɗin gwiwa ba: {{tebur}}"

Tabbatarwa: Daga Simulation zuwa Robot

An tabbatar da yanayin da AI ta samar a cikin wannan tsari kafin a je robot:

  1. Na lamba: Shin kusurwar haɗin gwiwa, gudu da haɓaka kowane mataki a cikin iyaka?
  2. Rikici: Tare da yanayin, hannu yana yin karo da kansa ko muhallin (gani/kwaikwaya idan zai yiwu)?
  3. Singularity: Shin kewayar kewayawa ta ratsa ta yanki mai ma'ana (yana nufin Yakubu yana kusanci sifili)?
  4. Gwajin kayan masarufi a hankali: Yi aiki da mutum-mutumi a ƙaramin gudu (misali 10%) kuma saka idanu akan gani.
  5. Ƙarar saurin sauri: Da zarar an tabbatar da komai, saurin yana ƙaruwa mataki-mataki zuwa ƙimar ƙima.
Tsanaki: Lokacin fara mutum-mutumi tare da sabon yanayin a karon farko, saurin wuce gona da iri ya kamata ya zama ƙasa da ƙasa kuma ya kamata ta kasance ta E-Stop. Ko da fitowar AI "daidaitacce ne a lissafin lissafi," saiti, juzu'i, ko snag na USB a cikin saitin jiki kawai za a bayyana tare da jinkirin gwaji.

Mini Case

Injiniyan sarrafa kansa Ece ya nemi AI don lambar yanayin yanayi a sararin haɗin gwiwa don aikace-aikacen zaɓi da wuri. AI tana samar da bayanan martaba na trapezoidal, amma lokacin da Ece ta gwada motsi na ɗan gajeren lokaci, ta ga cewa lokacin ba shi da kyau: lambar ba ta kula da yanayin bayanin martaba na triangular inda ba za a iya isa v_max ba. Ece yana gyara wannan ta hanyar faɗar faɗakarwa "idan nisa gajere ne, fada cikin bayanin martaba na uku". Sannan yana gudanar da kusurwoyin haɗin gwiwa da AI ta bayar ta hanyar ingantaccen aikin sa akan teburin iyakarsa kuma ya gano cewa haɗin gwiwa 5 yana son +125° a lokaci ɗaya, yayin da iyaka ya kasance + 120 °. Ya sake tsara yanayin kuma yana lura da shi, wannan lokacin yana tafiyar da robot a cikin 10% gudun. A zagaye na farko, ya ga cewa gripper yana kusa da tebur kuma ya gyara gyaran Z. AI ta dawo da tsarin aiki a cikin mintuna; amma fa'ida daban-daban guda uku (bayanin martaba na triangular, iyakar haɗin gwiwa, gwajin jinkirin) ya kama matsaloli daban-daban guda uku.

Kuskuren gama gari

  • Amfani da maganin IK ba tare da iyakokin haɗin gwiwa da ikon samun dama ba.
  • Ba yanke shigarwar arccos/arcsin ba amma samar da NaN idan akwai kuskuren zagaye.
  • Neman kewayawa ba tare da iyakance gudun / hanzari ba da ƙirƙirar girgiza injina.
  • Yin watsi da ɓangarorin maɓalli da barin saurin haɗin gwiwa yayi sama.
  • Tsallake madaidaicin bayanan trapezoidal-triangular a cikin ɗan gajeren nesa da ƙididdige lokacin kuskure.
  • Gudanar da gwajin orbital na farko a cikin cikakken sauri kuma ba tare da damar E-tasha ba.

A takaice

  • Kinematics na gaba yana da mafita guda ɗaya; kinematics mai jujjuyawar na iya samar da mafita masu yawa, maras wanzuwa ko marasa iyaka.
  • Dole ne a tace mafita na IK dangane da iyakoki na haɗin gwiwa, samun dama da maƙasudi.
  • Tsarin tsari; Yana amfani da taushi, bayanan martaba masu dacewa da iyaka kamar trapezoidal ko S-curve.
  • A ɗan gajeren nesa bayanin martaba yana canzawa daga trapezoidal zuwa triangular; wannan ya kamata a sarrafa a cikin code.
  • AI yana haɓaka lissafi; Iyakoki da mahallin shigarwa na zahiri yakamata su shigar da hanzari.
  • Sabuwar yanayin koyaushe ana gudanar da shi a karon farko tare da ƙarancin saurin gudu da damar E-stop.

Aikin aikace-aikace

Zaɓi samfurin hannu na haɗin gwiwa biyu ko uku (tare da tsayin haɗin kai na gaske ko na tunani da iyakokin haɗin gwiwa). Shin AI ta haifar da aikin kinematics mai juzu'i da mai tsara yanayin yanayi tare da wannan mahallin. Sa'an nan: (1) da hannu tabbatar da fitarwa na IK tare da sanannen manufa (shin kuna mayar da kusurwoyi kuma ku koma daidai daidai da FK), (2) gwada cewa lambar ta kama su ta hanyar ba da akalla maki ɗaya da ba za a iya isa ba da kuma iyakacin haɗin gwiwa wanda ya wuce manufa, (3) duba cewa a cikin ɗan gajeren nesa lokaci na orbital ya zama mai dacewa. Rubuta batutuwan tabbatarwa nawa ne kuka samu a sigar farko ta lambar da kuma wane Layer ya kama kowanne.