Dvoročni kolaborativni robotski sistem za reševanje Rubikove kocke

UM FERI
Avtorja: Mitja Golob, Aleš Hace
E-pošta: mitja.golob@um.si, ales.hace@um.si

V članku je predstavljen dvoročni kolaborativni robotski sistem za reševanje Rubikove kocke.
Robotski sistem se sestoji iz dveh majhnih kolaborativnih robotskih rok UR3 z dodanim strojnim vidom. Celotna robotska aplikacija je bila razvita v Laboratoriju za industrijsko robotiko na UM FERI v okviru projektno orientiranega izobraževalnega procesa na š.p. Mehatronike z namenom spodbujanja zanimanja dijakov in študentov za študij mehatronike in robotike z demonstracijo kolaborativne robotske manipulacije na zanimivem, splošno znanem in popularnem problemu.

Hiter razvoj robotike je povzročil, da se roboti vse več uporabljajo na precej različnih področjih, v industriji, medicini, kmetijstvu ipd. Predvsem razvoj kolaborativne robotike pa je povzročil prehod robotike tudi na področja, kjer robotike prej praktično ni bilo zaznati oz. jo je bilo zaznati v precej manjši meri. Glavni razlog je predvsem v tem, da kolaborativni roboti omogočajo varno in zanesljivo sodelovanje človeka in robota v skupnem delovnem prostoru. Kolaborativni roboti so namreč večinoma lahke zasnove, njihovi robovi so zaobljeni, najbolj pomembno pa je, da omogočajo funkcijo zaznavanja trkov z okolico, zato imajo vgrajen senzor sile/navora, nudijo pa tudi intuitivne funkcije za sodelovanje s človekom [1]. Zraven tega kolaborativni roboti omogočajo tudi uporabo naprednih načinov vodenja, kot je vodenje po sili oz. hibridno vodenje. Omenjene lastnosti smo s pridom izkoristili tudi pri razvoju robotske aplikacije reševanja Rubikove kocke s kolaborativno robotsko roko UR3. V preteklosti je bilo sicer razvitih in izdelanih veliko različnih mehatronskih sistemov, ki so bili izključno namenjeni za reševanje Rubikove kocke [2], [3]. Veliko manj pa je zaslediti primerov uporabe komercialnih robotskih sistemov, ki bi bili uporabljeni za namen reševanja Rubikove kocke. Razlog je ravno v predhodno omenjenih lastnostih, ki jih imajo današnje izvedbe kolaborativnih robotov in nam omogočajo, da lahko reševanje Rubikove kocke uspešno izvedemo tudi z robotskimi rokami [4].

Osnovna Rubikova kocka 3 x 3 x 3 je nastala leta 1974 (izumil jo je Ernő Rubik) in že od njenega nastanka ostaja uganka in velik izziv, kako s čim manj potezami in čim hitreje priti do končne rešitve. Rubikova kocka ima šest ploskev. Vsaka je razdeljena na devet kvadratov, vsak kvadrat je obarvan z eno od šestih barv: bela, rumena, modra, rdeča, zelena in oranžna. Rubikova kocka je lahko v splošnem v enem od 43 trilijonov (približno) različnih položajev [5]. Zaenkrat velja, da je možno katerokoli začetno kombinacijo zasuka ploskev Rubikove kocke rešiti v nekaj deset potezah, kar predstavlja optimalno rešitev. Cilj reševanja Rubikove kocke je sestaviti enobarvne ploskve.
Glavni namen je bil načrtovati in pripraviti robotsko aplikacijo, ki omogoča dvoročno robotsko reševanje Rubikove kocke in uporabe sistema strojnega vida za detekcijo začetne postavitve ploskev kocke.

Na sliki 1 je prikazan primer kolaborativnega sodelovanja dveh robotskih rok, ki si delita skupni delovni prostor in skupaj opravljata določeno nalogo. Kolaborativna robota imata v tem primeru vlogo manipulatorja za premik oz. zasuk posameznih ploskev Rubikove kocke.

V okviru razvoja celotne robotske aplikacije je bil razvit tudi digitalni dvojček laboratorijskega sistema, s katerim lahko virtualno simuliramo obnašanje fizičnega sistema. Prav tako so bila v okviru razvoja sistema opravljena testiranja in optimiranja na demonstracijskem laboratorijskem sistemu.

Strojna in programska oprema
Na sliki 2 je prikazan demonstracijski laboratorijski sistem, ki ga sestavljata kolaborativna robota UR3-cb in UR3-e, kamera Omron FQ-MS125 ter nadzorni računalnik.

Osnovne lastnosti robotskih rok so podane v tabeli 1.
Na prirobnici kolaborativnih robotov sta nameščeni električni prijemali. Na kolaborativnem robotu UR3-cb je nameščeno fleksibilno robotsko prijemalo OnRobot RG2, medtem ko je na kolaborativnem robotu UR3-e nameščeno adaptivno robotsko prijemalo Robotiq 2F-85. V robotski celici se nahaja še industrijska kamera Omron FQ-MS125, ki je namenjena za zajem posameznih ploskev Rubikove kocke.

Tabela 1: Osnovne lastnosti kolaborativnih robotov.

Celotna aplikacija reševanja oz. sestavljanja Rubikove kocke je bila razvita v programskem okolju MATLAB in RoboDK. Pri tem lahko celotni postopek reševanja oz. sestave predstavimo z diagramom poteka, prikazanim na sliki 3.

Celovit potek sestavljanja Rubikove kocke je zasnovan iz več faz:

  1. faza: pobiranje kocke,
  2. faza: zajemanje začetnega stanja kocke,
  3. faza: premik robotskih rok v lego za začetek sestave kocke,
  4. faza: reševanje in sestavljanje kocke,
  5. faza: odlaganje kocke.

Po postopku pobiranja Rubikove kocke se izvede zajemanje posameznih ploskev kocke. Zajemanje poteka na način, da robotski roki izmenoma postavljata Rubikovo kocko na ustrezno mesto pod kamero, ki je fiksno nameščena na nosilcu. Proženje zajema slike posamezne ploskve Rubikove kocke se izvede iz nadzornega računalnika. Po postopku zajemanja vseh šestih ploskev Rubikove kocke se kreira mreža oz. matrike virtualne kocke, kot je prikazano na sliki 4. Posamezna matrika nam predstavlja posamezno ploskev Rubikove kocke, ki jo predstavimo s 3×3 matriko z vrednostmi elementov od 1 do 6, odvisno od barve pripadajočih kvadratov na ploskvi. Ko imamo na razpolago popolno mrežo oz. vseh šest 3×3 matrik virtualne Rubikove kocke, se podatki posredujejo v Thistlethwaite 45 (T45) algoritem za reševanje kocke.

Rešitev algoritma je potrebno zaporedje zasukov za dosego končne rešitve. Posamezni korak v celotnem zaporedju zasukov se pretvori v ustrezno skriptno programsko obliko za izbran robotski krmilnik in ustrezno izvedbo premika robotske roke. Podatki se posredujejo na robotski krmilnik preko namenskih sistemskih omrežnih vrat, ki so namenjena izključno za vodenje in upravljanje UR robotov. Po uspešno končanem reševanju Rubikove kocke se ta odloži na mesto pobiranja oz. odlaganja.

Sistemska arhitektura
Laboratorijski sistem na sliki 2 je v osnovi sestavljen iz dveh kolaborativnih robotskih rok in pripadajočih krmilnikov, nadzornega računalnika ter sistema strojnega vida. Pri tem so nadzorni računalnik in pripadajoča robotska krmilnika ter ostale komponente povezani v celovit kontrolni sistem preko komunikacijskega omrežja Ethernet TCP/IP.
Osnovna ideja pri snovanju kontrolnega sistema robotske aplikacije je bila, da bi celotni nadzor in upravljanje nad delovanjem aplikacije bil izveden preko nadzornega računalnika, kot je podrobneje prikazano na sistemskem diagramu na sliki 5.

Nadzorni računalnik koordinira izvajanje celotnega postopka za reševanje in sestavljanje Rubikove kocke, ki ga tvorijo naslednji programski moduli:

  • algoritem za obdelavo podatkov iz kamere,
  • algoritem za logično reševanje Rubikove kocke,
  • algoritem za robotsko sestavljanje Rubikove kocke,
  • grafični uporabniški vmesnik in
  • digitalni dvojček (MATLAB – RoboDK).
  • Uporabnik pa ima pri tem možnost vplivanja na izvajanje aplikacije preko nadzornega računalnika.

Za logično reševanje Rubikove kocke smo uporabili algoritem T45, ki se izvaja v programskem okolju MATLAB [6]. Algoritem za iskanje rešitve iz poljubne začetne postavitve Rubikove kocke potrebuje največ 45, povprečno pa 31 potez. Izhodni podatki iz algoritma so zasuki posameznih ploskev oz. potrebno zaporedje zasukov vseh ploskev Rubikove kocke, ki je podano v standardni notaciji (F-Front, U-Up, R-Right, B-Back, L-Left, D-Down). Pri zasukih posameznih ploskev obstajajo tako tri možnosti, npr.: premik desne ploskve za 90° v smeri urinega kazalca (R), premik desne ploskve za 90° v nasprotni smeri urinega kazalca (R‘) in premik desne ploskve v smeri urinega kazalca za 180° (R2).

Za potrebe izvedbe reševanja Rubikove kocke s sistemom dualnih kolaborativnih robotskih rok je bilo treba vzpostaviti tudi komunikacijo preko povezave Ethernet TCP/IP, in sicer preko namenskih sistemskih omrežnih vrat na robotskem krmilniku, ki omogočajo, da lahko robota upravljamo neposredno iz nadzornega računalnika. Pri tem treba upoštevati, da morajo biti programski ukazi predstavljeni v ustrezni skriptni obliki za programiranje v specifičnem robotskem jeziku. Dodatno je bilo treba vzpostaviti še komunikacijo nadzornega računalnika z industrijsko kamero ter opraviti ustrezno konfiguracijo le-te za pravilno detekcijo posameznih ploskev Rubikove kocke.

Za potrebe vizualizacije smo dodatno še implementirali digitalni dvojček laboratorijskega sistema, ki je bil razvit v kombinaciji z namenskim programskim okoljem RoboDK, in je prikazan na sliki 6.

Vodenje pri kolaborativnem sestavljanju
Pri vodenju kolaborativnih robotov za kolaborativno sestavljanje Rubikove kocke so uporabljeni trije načini vodenja, in sicer:

  • položajno vodenje,
  • vodenje po sili in
  • hibridno vodenje.

Trije načini vodenja so implementirani zaradi različnih potreb v določenih korakih zajemanja ploskev in sestavljanja Rubikove kocke. Položajno vodenje je uporabljeno zgolj pri premikih, kjer robota ne delujeta kolaborativno. V primeru, ko robota delujeta kolaborativno, kot je npr. pri preprijemu (slika 7), se vodenje robotskih rok kombinira kot sledi: pri enoročnem prijemu kocke sta roki vodeni položajno, ob dvororočnem prijemu kocke prosta roka preklopi v vodenje po sili, po končanem preprijemu pa sta obe roki spet v položajnem načinu vodenja. V primeru, ko robotski roki vrtita ploskev Rubikove kocke kolaborativno (slika 8) pa je roka, ki drži kocko fiksno, vodena položajno, medtem ko je roka, ki vrti ploskev vodena hibridno, s čimer se omogoči podajanje roke, kar je nujno potrebno zaradi netočne lege.

Pri zasuku posamezne ploskve Rubikove kocke pa je zelo težko doseči točno lego vrha robota glede na trenutno lego kocke. Določena položajna deviacija Rubikove kocke, ki se pojavi kot posledica manjših premikov kocke, kateri se zgodijo pri posameznem preprijemu oz. zasuku ploskve kocke, nam povzroči določen odmik kocke od želene lege. Z vključitvijo naprednih načinov vodenja pa smo dosegli, da se vrh robota do določene mere prilagaja glede na trenutno lego Rubikove kocke oz. zunanje sile in navore, ki delujejo nanj pri preprijemu oz. zasuku ploskve kocke, in tako lahko bistveno izboljšamo hitrost ter kakovost izvedenega zasuka posamezne ploskve kocke.

Na spodnji povezavi se nahaja videoposnetek delujoče robotske aplikacije: https://youtu.be/75E0Ao4I9O4.

Zaključek
V članku smo predstavili robotsko aplikacijo reševanja Rubikove kocke z dvema kolaborativnima robotskima rokama in sistemom strojnega vida, ki služi za zajem začetnega stanja Rubikove kocke. Pri načrtovanju in izvedbi robotske aplikacije smo bili soočeni z različnimi tehničnimi izzivi, kot je npr. izbira ustrezne postavitve kolaborativnih robotov na delovno površino robotske celice, s čimer smo dosegli, da so vse potrebne točke za posameznega robota tudi dosegljive. Zanimiv izziv je predstavljala tudi izbira ustreznega algoritma vodenja, ki se uporablja v fazi dvoročne kolaborativne manipulacije robotov, in sicer za preprijem oz. zasuk posamezne ploskve Rubikove kocke. V tem primeru je treba namreč preiti iz klasičnega položajnega vodenja v t. i. vodenje po sili oz. pri zasuku ploskve Rubikove kocke v hibridni način vodenja.

Za kakovostno izvedbo takšnega načina vodenja pa je treba pridobiti točne in kakovostne podatke o silah/navorih, ki delujejo na vrhu robota. Pri tem pa velja poudariti, da ima robot UR3-e že vgrajen senzor sile/navora, medtem ko robot UR3-cb estimira vrednost sile/navora na vrhu robota. Ob upoštevanju, da pa je lahko estimirana vrednost sile/navora precej netočna in vsebuje precej šuma ipd., smo zato morali namestiti dodatni zunanji senzor sile/navora.

Kljub vsem naštetim tehničnim izzivom smo celotno aplikacijo dvoročnega kolaborativnega robotskega sistema za reševanje Rubikove kocke uspešno izvedli, pri tem pa seveda obstajajo možnosti nadaljnje optimizacije sistema, ki se kažejo predvsem v namestitvi drugih, manjših električnih prijemal z namenom doseči večji razpoložljiv delovni prostor za posameznega robota in pospešitvi reševanja Rubikove kocke.

Viri in literatura:
[1] Patil S., Vasu V., Srinadh K. V. S.: Advances and perspectives in collaborative robotics: a review of key technologies and emerging trends, Discover Mechanical Engineering, Springer Link, August, 2023.
[2] Gerhold S.: Robotic Cuber: A Rubik’s Cube solving robot, Bachelor’s Thesis, KTH Vetenskap OCH Konst, Stockholm, Sweden, 2020.
[3] Feng. L., Jiang D., Zhang A., Liu. S., Wang F., Liu Y.: Color recognition for Rubik’s cube robot, IEEE International Conference on Smart Internet of Things (SmartIoT), Tianjin, China, 09-11 August 2019.
[4] Chen Z., Yuan X., He D., Gu Q.: Design and implementation of dual-arm robot Rubik‘s cube solving system, 2023 35th Chinese Control and Decision Conference (CCDC), Yichang, China, 20-22 May 2023.
[5] Zeng D., Li M., Wang J., Hou Y., Lu W., Huang Z.: Overview of Rubik’s cube and reflections on its application in mechanism, Chinese Journal of Mechanical Engineering, China, August 2018.
[6] Heit J.: „Rubik‘s Cube Simulator and Solver“ (https://www.mathworks.com/matlabcentral/fileexchange/31672-rubik-s-cube-simulator-and-solver), MATLAB Central File Exchange. Retrieved February 20, 2024.

https://feri.um.si

Sorodni članki

Zadnji članki

Svet mehatronike 47

Razvojniki nas ves čas presenečajo z novimi in tudi koristnimi razvoji bodisi komponent, sestavnih delov, tehnologij ali celo novih proizvodov.

Naslednja generacija visoko energetsko učinkovitega procesorja AI RZ/V2H za avtonomne robote

Članek predstavlja MPU RZ/V2H, ki omogoča umetno inteligenco vida in nadzor v realnem času.

Kaj je resolver?

Resolver je električni transformator, ki se uporablja za merjenje kota vrtenja osi.

Želite biti na tekočem z najnovejšimi novicami?

Radi bi vas slišali! Prosimo, izpolnite svoje podatke in ostali bomo v stiku. Tako preprosto je!