Faida:
- Uwezo wa kuanzisha na kutatua kinematics mbele / inverse na matatizo ya kupanga trajectory kwa msaada wa AI
- Uwezo wa kutoa obiti salama kwa kutoa mipaka ya pamoja ya roboti, kasi na vizuizi vya kuongeza kasi kama muktadha wa haraka.
- Uwezo wa kuthibitisha kiidadi na kimwili matokeo ya kinematic na trajectory yanayotolewa na AI
Kuleta gripper mwishoni mwa mkono wa robot kwa hatua fulani katika nafasi, kwa mwelekeo fulani; Inaonekana rahisi, lakini kuna milinganyo ya kinematic, mipaka ya pamoja, umoja na upangaji wa trajectory nyuma yake. Hapa, mhandisi wa mechatronics anatumia trigonometry, aljebra ya mstari na nadharia ya udhibiti pamoja. Akili Bandia ni msaada mkubwa katika mchakato huu: inaweza kuanzisha milinganyo ya kinematics ya mbele, kupendekeza mbinu za utatuzi kwa kinematiki kinyume, kuweka kigezo cha njia kulingana na vikwazo vya kasi/kuongeza kasi. Hata hivyo, robotiki ni mojawapo ya maeneo katika mechatronics yenye hatari kubwa zaidi ya kimwili; Ikiwa mpangilio wa pembe unaozalishwa na AI utatumwa kwa roboti bila uthibitishaji, mkono unaweza kujigonga, mazingira, au opereta. Katika kitengo hiki tutaona jinsi ya kuanzisha na kuthibitisha kinematiki na mipango ya trajectory na AI.
Kinematics ya Mbele na Inverse
Kinematics ya Mbele (FK): Kutafuta nafasi na mwelekeo wa athari ya mwisho ikiwa pembe za pamoja zinajulikana. Kuna suluhisho moja tu, ni moja kwa moja.
Kinematics Inverse (IK): Ikiwa nafasi inayotakiwa ya kazi ya mwisho inajulikana, kutafuta pembe za pamoja ambazo zitatoa hili. Kawaida huwa na suluhisho zaidi ya moja (kama kiwiko juu/chini), wakati mwingine haina suluhu (hatua isiyoweza kufikiwa), wakati mwingine huwa na suluhu zisizo na kikomo (umoja).
dhana
pembejeo
pato
Idadi ya ufumbuzi
Kinematics ya mbele
pembe za pamoja
Msimamo/mwelekeo uliokithiri
single
Kinematics kinyume
Msimamo/mwelekeo uliokithiri
pembe za pamoja
Nyingi/hakuna/isiyo na kikomo
Kwa mkono wa sayari wenye sehemu mbili, kinematiki kinyume inaweza kusanidiwa katika AI na kuthibitishwa mwenyewe kama ifuatavyo:
leta numpy kama npdef inverse_kinematik_2r(x, y, L1, L2): """IK kwa mkono uliopangwa wenye viungo 2. Hurejesha pembe katika radiani (suluhisho la kiwiko chini).""" r2 = x**2 + y**2 # Angalizo la ufikivu: ni kigezo katika nafasi ya kazi? ikiwa np.sqrt(r2) > (L1 + L2) au np.sqrt(r2) < abs(L1 - L2): ongeza ValueError("Pointi iko nje ya nafasi ya kufanya kazi inayoweza kufikiwa") cos_t2 = (r2 - L1**2 - L2**2) / (2 * L1 * L2) cos_2, = 1.0) # usalama wa nambari t2 = np.arccos(cos_t2) # kiwiko chini t1 = np.arctan2(y, x) - np.arctan2(L2*np.sin(t2), L1 + L2*np.cos(t2)) rudisha np.degrees(t2) Vacation (t1), np. L1=L2=1, lengo (1,1) -> inatarajiwa t2=90 digriiprint(inverse_kinematik_2r(1.0, 1.0, 1.0, 1.0)) # ~ (0.0, 90.0)
Mistari muhimu hapa ni pale ambapo AI mara nyingi huruka: ukaguzi wa kufikiwa (ndio uhakika katika nafasi ya kazi) na `np.clip` (huzuia uingizaji wa arccos kwenda zaidi ya ±1 kutokana na hitilafu ya kuzungusha). Bila ulinzi huu mbili, msimbo utatoa NaN au kuacha kufanya kazi katika sehemu isiyo sahihi.
Kidokezo: Unapouliza azimio la IK, iambie AI kwa uwazi "ongeza udhibiti wa ufikivu na uweke kikomo pembejeo ya arccos kwenye klipu". Mistari hii miwili inazuia makosa ya kimya ambayo husababisha maumivu ya kichwa zaidi katika uwanja.
Vikomo vya Pamoja, Umoja na Suluhisho Nyingi
Kila kiungo cha roboti halisi kina masafa ya pembe (k.m. -170° hadi +170°), kikomo cha kasi, na kikomo cha kuongeza kasi. Hata kama MA inatoa pembe halali ya kihisabati, haiwezi kutumika ikiwa pembe hiyo iko nje ya safu halisi ya kiungo. Zaidi ya hayo, roboti huanguka katika umoja katika baadhi ya usanidi: shoka mbili zimeunganishwa, kiwango kimoja cha uhuru hupotea, na kasi ya pamoja hujaribu kwenda kwa infinity kwa harakati ndogo ya ncha.
Ndio maana suluhisho la HR pekee haitoshi; Kila suluhisho lazima lipitishe kichujio cha kukubalika:
def solution_gecerli_mi(acilar_deg, limits_deg): """maumivu: [t1,t2,...], mipaka: [(min,max),...]"""" kwa maumivu, (amin, amax) katika zip(acilar_deg, limits_deg): ikiwa sivyo (amine <= pain <= painkiller over Jol amax): {pain:.1f} deg ({amine},{amax}) isipokuwa" rudisha Kweli, "OK" limits = [(-170, 170), (-120, 120)]print(cozum_valid_mi([0.0, 90.0], limits)) # (Kweli, 'Sawa')0valid(120) mipaka)) # (Si kweli, 'Kikomo cha pamoja kimepitwa...')
AI inaweza kutoa suluhisho la "hisabati" la MA; lakini mipaka ya pamoja na kuepusha umoja ni mahususi kwa mfumo wako na lazima itolewe kama muktadha wa wasilisho.
Upangaji wa Obiti
Kupata roboti kutoka sehemu A hadi B sio kuhusu kuchora mstari ulionyooka kati ya pembe mbili. Mabadiliko ya kasi ya ghafla huunda mshtuko wa mitambo na mtetemo. Badala yake, wasifu laini hutumiwa: wasifu wa kasi wa trapezoidal (kuongeza kasi mara kwa mara-kupunguza kasi mara kwa mara) au S-curve (laini, ambapo kuongeza kasi pia ni mdogo). Wakati wa kufanya AI kuzalisha trajectory, lazima upe lengo, muda na vikwazo.
leta numpy kama npdef trapez_yorunge(q0, q1, v_max, a_max, dt=0.01): """Wasifu wa kasi ya Trapezoidal kwa kiungo kimoja. Mpangilio wa nafasi umerudishwa.""" distance = abs(q1 - q0) direction = np.sign(q1 - qmax_q0) = umbali_kasi = 0.5 * a_max * t_speed**2 ikiwa 2 * umbali_kasi > umbali: # wasifu wa pembetatu (v_max haifikiki) t_speed = np.sqrt(umbali / a_max) t_constant = 0.0 v_peak = a_max_max -t_kingine *: t_max -2 umbali_kasi) / v_max v_peak = v_max T = 2 * t_harakisha + t_constant t = np.panga (0, T, dt) # ... hesabu ya nafasi kwa kila t (kulingana na awamu za kuongeza kasi/mara kwa mara/kupunguza kasi) rudisha t, T, v_peak, trapeory_0, trapeory_0. 90.0, v_max=60.0, a_max=120.0)print(f"Jumla ya muda: {duration:.3f} s, kasi ya kilele: {vz:.1f} deg/s")
Kuangalia mantiki hapa ni hii: ikiwa umbali ni mfupi, motor haitawahi kufikia v_max na wasifu utageuka kutoka trapezoidal hadi triangular. Ikiwa AI inakosa hali hii, muda usiofaa utahesabiwa kwa harakati fupi. Unaweza kuthibitisha hili kwa kupima msimbo na thamani inayojulikana (kwa mfano, umbali mfupi sana).
Uhamasishaji dhaifu / Uhamasishaji Wenye Nguvu
DHAIFU:"Andika trajectory ambayo inachukua mkono wa roboti kutoka A hadi B."(Hakuna kikwazo: kikomo cha kasi? kuongeza kasi? nafasi ya viungo? Matokeo yasiyoonekana.)STRONG:"Tengeneza trajectory ya uhakika hadi uhakika katika nafasi ya pamoja kwa roboti ya mhimili 6. Kikomo cha kasi kwa kila kiungo ni 90 deg/s, kikomo cha kuongeza kasi katika jedwali ni 180. Tumia kikomo cha kuongeza kasi kwa kiwango cha 182 kwa jedwali. Profaili ya kasi ya trapezoidal, ikiwa umbali ni mfupi, anguka kwenye wasifu wa pembetatu. Toleo la kila kiungo pia andika kitendakazi cha uthibitishaji ambacho hukagua kuwa hakizidi mipaka ya Pamoja: {{meza}}
Uthibitishaji: Kutoka Simulation hadi Robot
Njia inayotolewa na AI inathibitishwa kwa mpangilio huu kabla ya kwenda kwa roboti:
- Nambari: Je, pembe ya pamoja, kasi na kuongeza kasi ya kila hatua ndani ya mipaka?
- Mgongano: Kando ya njia, je, mkono unagongana na yenyewe au mazingira (kuwaza/kuiga ikiwezekana)?
- Umoja: Je, obiti hupita katika eneo la umoja (je kibainishi cha Jacobian kinakaribia sifuri)?
- Jaribio la polepole la maunzi: Tumia roboti kwa kasi ya chini (k.m. 10%) na uifuatilie kwa macho.
- Kuongezeka kwa kasi polepole: Mara tu kila kitu kinapothibitishwa, kasi huongezeka hatua kwa hatua hadi thamani ya kawaida.
Tahadhari: Unapoanzisha roboti kwa njia mpya kwa mara ya kwanza, ubatilishaji wa kasi unapaswa kuwa wa chini kila wakati na E-stop inapaswa kupatikana. Hata kama matokeo ya AI ni "sahihi kihisabati," kizigeu, mhimili wa nyuma, au mkwaruzo wa kebo katika usanidi halisi utafichuliwa tu kwa majaribio ya polepole.
Kesi Ndogo
Mhandisi wa otomatiki Ece anauliza AI msimbo wa trajectory katika nafasi ya pamoja kwa programu ya kuchagua na mahali. AI hutengeneza wasifu wa trapezoidal, lakini Ece anapojaribu mwendo wa umbali mfupi, anaona kuwa wakati ni mbaya: msimbo haukushughulikia kesi ya wasifu wa pembetatu ambapo v_max haiwezi kufikiwa. Ece anasahihisha hili kwa kuwaambia haraka "ikiwa umbali ni mfupi, anguka kwenye wasifu wa pembetatu". Kisha huendesha pembe za pamoja zilizotolewa na AI kupitia utendakazi wake wa uthibitishaji dhidi ya jedwali lake la kikomo na hupata kwamba kiungo 5 kilitaka +125 ° kwa wakati mmoja, ambapo kikomo kilikuwa +120 °. Anapanga upya njia na kuifuatilia, wakati huu anaendesha roboti kwa kasi ya 10%. Katika raundi ya kwanza, anaona kwamba mshikaji anakaribia sana meza na anasahihisha mkao wa Z. AI ilirudisha muhtasari wa kufanya kazi kwa dakika; lakini uthibitisho tatu tofauti (wasifu wa pembetatu, kikomo cha pamoja, mtihani wa polepole) ulipata shida tatu tofauti.
Makosa ya Kawaida
- Kutumia suluhisho la MA bila vikomo vya pamoja na udhibiti wa ufikiaji.
- Sio kunakili maingizo ya arccos/arcsin lakini inazalisha NaN iwapo kutatokea hitilafu ya kuzungusha.
- Kuomba obiti bila kupunguza kasi/kuongeza kasi na kuunda mshtuko wa kimitambo.
- Kupuuza maeneo ya umoja na kuruhusu kasi ya viungo kupanda juu.
- Kuruka mabadiliko ya wasifu wa trapezoidal-triangular kwa umbali mfupi na kuhesabu wakati usiofaa.
- Kufanya jaribio la kwanza la obiti kwa kasi kamili na bila ufikiaji wa E-stop.
Kwa muhtasari
- Kinematics ya mbele ina suluhisho moja; kinematics inverse inaweza kutoa suluhu nyingi, zisizopo au zisizo na kikomo.
- Suluhu za MA ni lazima zichujwe kulingana na mipaka ya pamoja, ufikiaji na umoja.
- Upangaji wa trajectory; Inatumia wasifu laini, unaolingana na kikomo kama vile trapezoidal au S-curve.
- Kwa umbali mfupi wasifu hubadilika kutoka kwa trapezoidal hadi triangular; hii inapaswa kushughulikiwa katika kanuni.
- AI huharakisha hesabu; Vikomo na muktadha wa usakinishaji halisi unapaswa kuingia kidokezo.
- Njia mpya kila mara inaendeshwa kwa mara ya kwanza kwa uwiano wa kasi ya chini na E-stop inayoweza kufikiwa.
Jukumu la maombi
Chagua mfano wa mkono wa viungo viwili au vitatu (na urefu wa kiungo halisi au wa kufikirika na mipaka ya viungo). Acha AI itengeneze utendaji wa kinematics kinyume na mpangilio wa trajectory na muktadha huu. Kisha: (1) thibitisha mwenyewe pato la MA kwa lengo linalojulikana (je, unarudisha pembe na kurudi kwenye sehemu sawa na FK), (2) jaribu kwamba msimbo unazikamata kwa kutoa angalau sehemu moja isiyoweza kufikiwa na kikomo kimoja cha pamoja kinachozidi lengo, (3) hakikisha kwamba kwa umbali mfupi wakati wa obiti unageuka kuwa wa kuridhisha. Andika ni masuala mangapi ya uthibitishaji uliyopata katika toleo la kwanza la msimbo na ni safu gani iliyoshika kila moja.