Brāļi Manu Viktors un Vasilijs Vilki aizraujas ar robotiku jau daudzus gadus, kaut gan studē tikai pirmajā kursā un tikko sekmīgi aizvadījuši sesiju. Vēl būdami skolēni, viņi apmeklēja TSI "Lego" robotikas pulciņu, strādājot komandā būvējuši un programmējuši savus robotus, ar kuriem pēc tam piedalījās robotikas turnīros. Savas zināšanas un talantus Manu Viktors un Vasilijs vēlreiz apliecināja, kad izpelnījās TSI partnera – uzņēmuma "Robologic GmbH" – grantus pilnībā apmaksātām studijām bakalaura programmā "Robotika".
Izaicinājums pieņemts
Robotam bija jānobrauc vairāki metri, sekojot līnijai, uz kuras bija novietoti dažāda izmēra un formas šķēršļi – glāzes, kastītes utt. –, kas bija jāapbrauc. Papildu noteikums bija, ka procesā var izmantot tikai infrasarkanos sensorus. Faktiski uzdevumu var sadalīt divās daļās, ko brāļi arī izdarīja – Manu Viktors programmēja robota sekošanu līnijai un nobrauktā ceļa garumu, bet Vasilijs risināja objektu apbraukšanas problēmu.
"Mums tas ir svarīgs solis, jo programma ir jauna, un šādu kursa darbu studenti gatavoja pirmoreiz. Studenti mācījās izjust robota konstrukciju un saprast, kāpēc ir vajadzīga programmēšana. Klasiskajā programmēšanā viņi strādātu tikai ar datiem uz ekrāna, bet šeit robots ir reāls objekts, un darba rezultāts ir ļoti uzskatāms – robots brauc tur, kur vajag, vai nē," saka profesors Aleksandrs Kraiņukovs, TSI Telekomunikācijas, elektronikas un robotikas centra (TERC) vadītājs. Tieši TERC laboratorijās topošie robotikas speciālisti spēra pirmos soļus robotu "pieradināšanā". Vajadzēja gan uzrakstīt vadošo programmu, gan izmēģināt to praksē. Daudziem šis uzdevums nebija tik viegls, jo ne visiem programmēšanas pamati tika mācīti vidusskolā. Dažiem studentiem pieredze bija tikai pusotrs semestris klasiskajā programmēšanā, bet šeit vajadzēja prast izmantot jaunās zināšanas konkrētas ierīces vadīšanai.
"Khepera IV" – aizraujošs kursa darba partneris
Ierīce "Khepera IV" ir Šveices uzņēmuma "K-Team Corporation" radīts robots. Tas ir tikai 14 centimetru liels diametrā un sver 540 gramus. Varētu šķist, ka neko daudz tas nespēj, bet tā gan nav. "Khepera IV" ir 12 infrasarkano sensoru, izvietoti visapkārt korpusā, kā arī pieci ultraskaņas sensori apakšā, videokamera, "Bluetooth" un "Wi-Fi" savienojums.
Augšpusē tam ir spraudnis, ar kura palīdzību var pieslēgt papildu ierīces, piemēram, lidaru (lāzera lokators) un satvērējierīci. Robota lidars var ar lāzera stara palīdzību būvēt apvidus karti, noteikt apkārtējo objektu izvietojumu, formu un izmēru. Lidars, kuru var pieslēgt "Khepera", var noteikt attālumu līdz 10 metriem, kas ir diezgan tālu. Iebūvētie infrasarkanie sensori nosaka objektus, kuri ir ne tālāk kā 30 centimetrus no tiem. Ultraskaņas sensori strādā divu metru rādiusā. Tātad lidars ir nepieciešams, lai robots "redzētu" priekā notiekošo. Savukārt, ar satvērējierīces palīdzību var pārvietot objektus.
Mazs robots, liels darbs
TSI mājo astoņi "Khepera IV" roboti. Studenti, kuri veica šo kursa darbu, bija sešpadsmit, tāpēc bija jāstrādā pāros. Pagājušā studiju gada beigās pirmā studentu grupa nevarēja strādāt uz vietas laboratorijās Covid-19 noteikto ierobežojumu dēļ, tāpēc tiks pieņemts lēmums kursa darbu pārcelt uz otro kursu. Šajā pavasarī, ar zināmiem ierobežojumiem, studentiem tika ļauts veikt praktiskus darbus klātienē. Tā aprīlī pie robotu programmēšanas ķērās gan pirmā, gan otrā kursa studenti, un viņiem nācās strādāt mini komandās. Profesors Kraiņukovs uzskata, ka šajā situācijā ir savi plusi: "Reālā dzīvē tu gandrīz nekad nestrādā viens pats. Jāprot sadarboties un uzklausīt kolēģi, pat ja tev kaut kas padodas labāk nekā viņam."
Katram studentu pārim bija jāiemāca robotam konkrētas darbības. Izbraukt labirintu, kas ir uzzīmēts uz testēšanas laukuma, vai labirintu, kas ir uz sienas. Izstumt ķegļus no apaļā laukuma, pašam robotam paliekot laukuma robežās. Papildu izaicinājums bija tas, ka katra komanda varēja izmantot tikai vienu sensoru veidu. "Khepera IV" komplektā nekādu gatavu programmu nav, tikai atsevišķas funkcijas, kuras jāpapildina ar savām un jāsaliek programmas kodā pareizā secībā. Tika izmantota C programmēšanas valoda "Linux" operētājsistēmas "Eclipse" vidē. Daudziem studentiem kursa darba gaitā nācās arī apgūt "Linux" pamatus, jo pirms tam viņi mācījās programmēt "Microsoft Visual Studio" vidē. Uzdevumi bija sastādīti tā, lai studentiem nebūtu iespējas kaut kur atrast gatavu risinājumu – vajadzēja pielietot savas zināšanas par pašu robotu, viņa spējām un funkcijām, programmēšanas iemaņas un radoši to visu apvienot mērķa sasniegšanai. Svarīgs posms ir gatavas programmas pārbaude un pilnveidošana pēc tam, kad tā ir ielādēta robotā, jo realitātē vienmēr ir nobīdes no tā, kas sanāk modelēšanas vidē. "Robots ir dinamiska ierīce, jāiegulda zināms darba apjoms, lai iemācītu tam pagriezties, uzņemt ātrumu utt. Ja programmas kodā kādas funkcijas nav savās vietās, tas var bremzēt, raustīties, novirzīties no braukšanas virziena. Robots saņem datus no sensoriem, apstrādā tos, kas prasa zināmu laiku, un tikai pēc tam notiek robota kustības korekcija, kad riteņu motori saņem jaunas komandas. Ja programmētājs neizprot šīs nianses, viņa robots skaisti un gludi nebrauks," skaidro profesors Kraiņukovs..
Kā iemācīt robotam braukt pa līniju un kā saskaitīt nobraukto distanci?
Manu Viktors Vilks mācīja "Khepera IV" robotam nobraukt pa līniju noteikto distanci. Skan ārkārtīgi vienkārši, bet ir daudz nianšu: sākumā jāpanāk, ka robots vispār atpazīst līniju, izmantojot infrasarkanos sensorus. Šim nolūkam tiek izmantoti divi sensori, kas atrodas robotam apakšā. Līnija ir melna uz balta laukuma. Sensori ir izvietoti tādā platumā, ka nevar abi vienlaicīgi to redzēt. Tātad jāieprogrammē, ka ar vienu sensoru robots visu laiku redz melno līniju, bet ar otro – balto laukumu, tad tas pieturēsies pie līnijas. Turklāt pastāvīgi jāseko programmai, ka robots paliek uz līnijas, jo, tāpat kā mašīnai, kurai netur stūri, robots ar laiku var nobraukt sāņus. Papildus izaicinājums parādās, kad līnija met līkumu: pagrieziena stūris var būt gan taisns leņķis, gan noapaļotas formas, un jebkurā gadījumā robotam jāprot pagriezties, nepazaudējot līniju.
Vēl viena lieta – kā aprēķināt, kādu attālumu nobrauca robots pa līnijas noteikto maršrutu? Šim nolūkam tika izmantoti riteņu rotācijas sensori – zinot riteņu apgriezienu skaitu un riteņu izmēru, var noteikt arī to, cik garu ceļu robots mērojis. Jāatzīmē, ka ceļu, kuru robots veica, apbraucot šķēršļus, vajadzēja atskaitīt no kopējās distances – šķēršļu apbraukšanas brīdī robots neatrodas uz līnijas, bet riteņi tāpat turpina griezties.
"Infrasarkano sensoru īpatnība ir tāda, ka pēc būtības tie mēra spilgtumu, nevis attālumu līdz objektam. Tāpēc mēs neizmantojām caurspīdīgas glāzes kā šķēršļus, jo šiem sensoriem ir ļoti grūti caurspīdīgus objektus atpazīt," darba nianses atklāj Manu Viktors, "Man bija samērā vienkārši izpildīt savu uzdevumu, jo "Lego" robotiem ir tādi paši sensori, es ar tiem jau iepriekš biju strādājis." Manu Viktors skaidro, ka "Lego" un "Khepera" robotiem ir daudz kopīga, tikai ar "Khepera" nācās vairāk programmēt, bet "Lego" robotiem ir pieejami jau gatavi programmu bloki.
Manu Viktora acīs grūtākais šajā darbā bija, cik daudz laika prasīja programmēšana un programmas pārbaude. Tika izstrādāts un ieviests algoritms, veikta pārbaude uz noteiktās līnijas dažādos attālumos gan ar statiskiem objektiem, gan nejauši novietotiem objektiem. Gala rezultātā robots spēja veikt noteikto attālumu pa līnijas distanci visos iepriekš minētajos gadījumos.
Šķēršļu apbraukšana – cik tas ir vienkārši?
Savukārt Vasilijs Vilks programmēja robota spēju apbraukt objektus, kurus pēc nejaušības principa izvietoja uz līnijas. Te tiek izmantoti infrasarkanie sensori, kas atrodas "Khepera" uz sāniem. Pirmais uzdevums – panākt, lai "Khepera" ierauga objektu. Tad robots maksimāli tuvojas šķērslim, apstājas, vairs neņem vērā līniju, pagriežas par 90 grādiem un sāk šķērsli apbraukt. Vasilijs izveidoja formulu, lai, izmantojot trīs sānu sensoru datus, robots apbrauktu objektu pa optimālu trajektoriju. "Khepera" brauc apkārt šķērslim, saglabājot vienādu attālumu līdz tam un pielāgojot ātrumu, līdz atkal ierauga līniju. Šajā brīdī robots pārslēdzas uz līnijas sekošanas algoritmu.
"Visgrūtākais šajā daļā bija piemeklēt pareizos skaitļus formulai, ņemot vērā, ka infrasarkanie sensori nosaka gaismas atstarošanu nevis distanci pa tiešo. Līdz ar to robots vairāk vai mazāk tuvojās objektiem no dažādiem materiāliem, atkarībā no viņu košuma," stāsta Vasilijs.
Līdzīgus robotus var pielietot dažādās jomās
Manu Viktors skaidro, ka pieredzi, kuru studenti ieguvuši, strādājot ar "Khepera IV" robotiem, var izmantot dažādās jomās. Pēc konstrukcijas līdzīgi roboti pilda putekļsūcēju pienākumus, kā arī apkalpo interneta lielveikalu, tādu kā "Amazon", noliktavas, pārvietojot preces. "Khepera" robotu komandu, izmantojot iebūvētās videokameras un "Wi-Fi" savienojumu, var arī izmantot kā kādas ēkas apsargus.
"Robotikas" studenti turpmākajā studiju procesā mācīsies programmēt sarežģītākus robotus, kuriem ir vēl vairāk sensoru un ierīču dažādu funkciju izpildei. Tie ir gan industriālie roboti, gan autonomie roboti, tādi kā "Nao", par kuru mēs stāstījām iepriekšējos rakstos:
Topošie robotikas speciālisti mācās arī konstruēt robotus no nulles, piemēru var izlasīt rakstā "Pirmie soļi "Arduino" robotikā: kā iemācīt robotam izvairīties no šķēršļiem".