TSI robots NAO
Foto: Publicitātes foto

Andris Začs un Nikolajs Kotcovs šovasar absolvēja Transporta un sakaru institūta (TSI) bakalaura programmu "Datorzinātnes". Puiši kopā paveikuši lielu un aizraujošu bakalaura darbu: iemācīja humanoīdam robotam NAO vadīt prezentācijas, lai tas varētu palīdzēt pasniedzējiem. Parunājām ar Andri un Nikolaju, ka arī ar viņu darba vadītāju, TSI Inženierzinātņu fakultātes pasniedzēju un prorektoru akadēmiskajā un zinātniskajā darbā, profesoru Mihailu Savrasovu par to, kas izdevās, kas – nē, un ko studenti šajā laikā iemācījušies.

Profesori gribēja sev palīgu

Kā radās ideja iemācīt NAO robotu apmācīt par skolotāju?

Nikolajs Kotcovs: Sākotnēji par šādu ideju mums ierosināja TSI Telekomunikācijas, elektronikas un robotikas centra inženieris Igors Ļaksa. Tad profesors Savrasovs piedāvāja konkrētāku mērķi: realizēt funkciju, lai NAO būtu iespēja kontrolēt "Microsoft PowerPoint" prezentāciju, proti, pārslēgt prezentācijas slaidus un lasīt komentāros norādīto tekstu. Daži augstskolas profesori vēlējās, lai NAO prastu palīdzēt viņiem vadīt lekcijas un atkārtot materiālu ar studentiem. Izlēmām palīdzēt augstskolai un procesā arī uzrakstīt bakalaura darbu.

Profesors Mihails Savrasovs: Puišiem bija kopīgs bakalaura darbs, kas nenotiek tik bieži, jo parasti topošie absolventi izvēlas strādāt individuāli. Bet šoreiz kopīgs darbs bija attaisnots, kā arī esmu ļoti gandarīts par šo studentu sasniegto rezultātu.

Andris Začs: Attaisnojums kopdarbam bija projekta mērogs. Viens cilvēks nevarētu to visu paveikt, tāpēc mēs izveidojām uzdevumu sarakstu un sadalījām atbildību savā starpā. Tā radās robotizētā prezentāciju vadīšanas platforma.

Kā sadalījāt uzdevumus?

Začs: Es uzrakstīju lielāko daļu no programmas, kas kontrolē NAO robotu un prezentāciju. Tā apstrādā prezentāciju, liek NAO pateikt to, ko vajag, utt. Papildus es izveidoju tīmekļa lietotni aptauju veikšanai prezentācijas laikā.

Kotcovs: Es izstrādāju grafisku lietotni, kas ļauj izveidot savienojumu ar NAO, palaist prezentāciju. Turklāt tai ir funkcijas, kas palīdz izveidot interaktīvas prezentācijas, piezīmes prezentācijām, skenēt un palaist robotā iegultos skriptus un veikt citas noderīgas darbības.

Profesors Savrasovs: Sākotnējā ideja bija tāda, ka pasniedzējs izveido prezentāciju un katra slaida piezīmēs pievieno tekstu, ko lasīs un stāstīs robots NAO. Bet tagad platforma ļauj piezīmēs ievietot arī darbības, kuras NAO var veikt. Piemēram, noteiktā brīdī jūs varat sākt NAO animāciju – robots parādīs dažādas kustības, žestus, kaut deju. Vai arī var sākt video atskaņošanu, ja tas ir ievietots slaidā. Kad pieauga to funkciju skaits, kuras studenti iemācīja robotam-skolotājam, kļuva skaidrs, ka pasniedzējam būs grūti tās pielietot. Un tad Nikolajs izveidoja tā saucamo utilītu (neliela programma vai programmu kopa, kas nodrošina papildpakalpojumus, ko nesniedz operētājsistēma), kas ļauj ātri sastādīt tekstu ar tajā iekļautām darbībām.

Kotcovs: Mēs esam izstrādājuši divas valodas tieši šai platformai. Pirmā ir "Story Telling Tags" (stāstu stāstīšanas tagi), ar kuru palīdzību tiek palaistas robota animācijas, video un audio. Otrā ir "Survey Markup Language" (SML aptauju iezīmēšanas valoda), ko izmanto, lai izveidotu aptauju prezentācijas laikā.

Profesors Savrasovs: Izmantojot SML var izveidot īpašu aptaujas slaidu, kurā ievietot visus vajadzīgos jautājumus. NAO pastāstīs par aptauju, parādīs saiti, kurai klausītāji varēs piekļūt no saviem viedtālruņiem un atbildēt uz uzdotajiem jautājumiem. Tas lekcijai piešķir interaktīvu elementu.

Začs: Ar SML palīdzību pasniedzējs izveido slaidu ar saiti uz aptauju un PIN kodu, kas klausītājiem būs jāievada, lai piekļūtu aptaujai. Pēc tam lietotāji nonāk lapā, kurā pasniedzējs izklāstījis visus jautājumus un atbildes, iezīmēja pareizās un nepareizās atbildes (programmā, nevis tajā lapā ko redz studenti – aut. piez.), kā arī nosaka laiku, kas atvēlēts atsevišķiem jautājumiem un visai aptaujai.

Kur ir NAO, tur iespējams radīt arī prezentācijas?

Kotcovs: Tagad, lai izveidotu interaktīvu prezentāciju, jums ir nepieciešams NAO robots, interneta pieslēgums, mūsu platforma un jūsu prezentācija.

Tātad, ja kaut kur citā pilsētā vai pat valstī ir NAO robots, varat tam pieslēgties, un tas vadīs jūsu prezentāciju?

Profesors Savrasovs: Jā, NAO izstāstīs mūsu prezentāciju, pats pārslēgs slaidus, veiks aptaujas un tā tālāk.

Začs: Protams, šim nolūkam būs jāveic vairāki sagatavošanās iestatījumi.

Runājot par iestatījumiem. Vai jebkurš cilvēks var izmantot jūsu NAO prezentāciju pārvaldības platformu, vai tikai kāds, kam ir programmēšanas prasmes?

Kotcovs: Nē, pilnīgi ikviens var sarakstīt piezīmes prezentācijai, izmantojot mūsu platformas iespējas. Manis izveidotajai lietotnei ir slaidu noformētājs, kurā ir pogas ar katra pieejamā taga aprakstu. Ir tagi robota animācijas palaišanai, attēla parādīšanai, audio vai video palaišanai utt.

Kas ir nepieciešams, lai iemācītos tos izmantot?

Začs: Var papētīt dokumentāciju...

Kotcovs: ...vai vienkārši rūpīgi izpētiet pašu lietojumprogrammas saskarni. Īsāk sakot, pasniedzējam, kurš gatavos prezentāciju, kas tiks vadīta kopā ar NAO, nav jābūt programmētājam. Mēs jau visu esam ieprogrammējuši. Bet pieredzējušiem lietotājiem lietojumprogrammā ir arī speciāli izveidoto skriptu palaišanas rīks: cilvēks var uzrakstīt jaunus skriptus "Python" valodā un palaist tos robotā.

Nav iespējams radīt visaptverošu produktu

Ko NAO jūsu darba rezultātā var darīt prezentācijas laikā? Ko esat viņam iemācījuši?

Začs: Galvenais, ko tas dara — atskaņo prezentāciju, līdzīgi kā "Alexa" (virtuālais asistents no uzņēmuma "Amazon"). Taču NAO ir labāks, izteiksmīgāks, jo procesā vēl var kustēties, žestikulēt. Tas ir atkarīgs no tā, kādas kustības iestatījāt, izmantojot tagus. Pats NAO pēc noklusējuma ir izgatavots tā, ka pat bez tagu lietošanas, kad ieslēgts, veic dažas sīkas pamatkustības. Bet tikai tagi ļauj programmēt unikālas kustības.

Foto: Publicitātes foto

Kādas? Variet minēt piemērus?

Kotcovs: Viņš var kustēties kā "Zvaigžņu karu" robots, dejot, staigāt roku rokā ar tevi, kārtot objektus pēc krāsas...

Začs: Piemērus var minēt daudz, bet, lai robots to izpildītu, cilvēkiem ir jāuzraksta interesantas programmas ar kustībām.

Kotcovs: Mūsu platforma ir rīks, kas palīdz ieprogrammēt, ko robots dara prezentācijas laikā. Tas ir pilnīgi atkarīgs no pasniedzēja fantāzijas un, protams, no prezentācijas satura.

Katru reizi ir nepieciešamas papildu programmas, lai veiktu konkrētu uzdevumu?

Kotcovs: Protams, viss ir atkarīgs no uzdevuma. Ja tev ir ideja — īsteno to, uzraksti programmu, un varēsi to palaist uz robota caur mūsu sistēmu.

Nav tik viegli likt NAO komunicēt ar studentiem

Kā ar NAO komunikāciju ar auditoriju prezentācijas laikā? Jums bija lieli plāni. Piemēram, iemācīt viņam reaģēt uz izmaiņām auditorijā, trokšņa līmeni, uz studentiem, kas lekcijā traucē citus.

Profesors Savrasovs: Nolēmām atstāt šo uzdevumu maģistrantūrai. Puiši pētīja šo tēmu, bet nebija laika to īstenot. Viņi noskaidrojuši, kā tehniski tas ir iespējams, bet nepieciešams papildaprīkojums, jo NAO iebūvētie sensori nav labākie šādam uzdevumam.

Kotcovs: Pagaidām tas ir iespējams drīzāk laboratorijas apstākļos. NAO ir daudzvirzienu mikrofons, kas nav labi piemērots tam, lai atpazītu auditorijā notiekošo. Ir grūti noteikt robežu starp troksni un cilvēka runu. Ir nepieciešams atsevišķs mikrofons, kas būs vērsts uz auditorijas pusi. Pēc tam jūs varat iemācīt robotam veikt dažas darbības, ņemot vērā trokšņa līmeņa paaugstināšanos noteiktā vietā. Tehniski ir iespēja pieslēgt papildu mikrofonu, jo NAO ir USB ports.

Profesors Savrasovs: Uz doto brīdi komunikācija ar auditoriju tika īstenota aptauju veidā. Mēs izvērtējām, kas būtu labāks un uzskatāmāks, un izvēlējāmies šo variantu.

Bija doma, ka semināru laikā NAO varētu uzdot jautājumus atsevišķiem studentiem. Vai šī ideja arī tiks realizēta vēlāk?

Kotcovs: Pagaidām to var izdarīt tikai ar stingru loģiku, "hard coding". Ja zinu, ka prezentācijas laikā auditorijā būs kāds konkrēts cilvēks, varu ievietot kādā slaidā jautājumu tieši viņam. NAO jebkurā gadījumā vērsīsies pie šīs personas, pat ja tas nebūs uz vietas.

Profesors Savrasovs: Piemēram, savā prezentācijā es uzrakstīšu, ka piektajā slaidā noteikti jālūdz Nikolajam uzvesties klusāk.

Darba rezultāts vērts ne mazāk kā trīs tūkstošus

Vai esat jau izmantojuši savu platformu praksē?

Prof. Savrasovs: Bakalaura darba aizstāvēšanas laikā NAO ieskaņoja pirmos divus Andreja prezentācijas slaidus un pēdējos divus Nikolaja prezentācijas slaidus, lai uzskatāmi parādītu izveidotās sistēmas darbību. Tas atstāja ļoti labu iespaidu gan uz komisiju, gan uz citiem klausītājiem, kas tajā brīdī bija auditorijā.

Mihail, vai pats arī plānojat izmantot NAO studiju procesa laikā?

Profesors Savrasovs: Jā, septembrī sāksies jauns studiju semestris, kopā ar NAO vadīsim lekcijas, būs interesanti vērot studentu reakciju.

Vai ir kādi plāni komercializēt šo produktu?

Začs: Nē, mēs to radījām sabiedrības labā.

Kotcovs: Domājam, ka kods tiks publicēts, un, ja kādam radīsies ideja attīstīt šo produktu, mēs būsim priecīgi.

Tātad esat gatavi tā kopiju nodot ikvienam interesentam, lai to varētu izmantot un attīstīt tālāk?

Kotcovs: Jā. Vienkārši "bezmaksas produkts" neizklausās tik labi, bet "atvērtais kods" – skaisti un gudri.

Profesors Savrasovs: Tur ir, pie kā strādāt tālāk. Varbūt mūsu bakalaura programmās būs tie, kas vēlēsies ieprogrammēt jaunas funkcijas NAO skolotājam. Interesanti, ka viens uzņēmums mūs apsteidza un izveidoja produktu, kas ļauj izmantot NAO kopā ar prezentācijām. Bet viņi to darīja citai jomai – kā iespēju izmantot NAO reklāmas nolūkos. Tajā pašā laikā funkciju ir ievērojami mazāk nekā TSI studentu izstrādātajai platformai, un norādītā cena produktam ir trīs tūkstoši eiro. Ja godīgi, es īsti nesaprotu, kāda ir viņu mērķauditorija, jo šāda reklāma komplektā ar pašu robotu maksās vismaz 10 tūkstošus eiro. Tikmēr varam droši apgalvot, ka Andris un Nikolajs izstrādāja produktu ne mazāk kā trīs tūkstošu eiro vērtībā.

Kotcovs: Galvenā atšķirība starp mūsu sistēmu un šo produktu ir tā, ka viņi izveido divus failus – vienu ar prezentāciju, otru ar aprakstu par visu, kam būtu jānotiek ar robotu tās laikā. Ja kāds no failiem tiek pazaudēts, viss projekts ir jāsāk no jauna. Mums viss ir vienā failā, un, protams, mūsu produktam ir daudz vairāk funkciju.

Profesors Savrasovs: Darbs vienā prezentācijas failā ir lietotājam saprotamāks. Jūs redzat slaidu un rakstāt tam piezīmes. Daudzi cilvēki tāpat raksta piezīmes saviem prezentācijas slaidiem, ja runa ir par garu un svarīgu uzstāšanos. Faktiski sanāk, ja jums jau ir sarakstītas piezīmes, tad tas ir gatavs materiāls, kas tikai jāpapildina ar darbībām, kas jāveic NAO. Var ieslēgt iztēli un izdomāt ko foršu.

Kotcovs: Kopā ar mūsu platformu NAO var izmantot dažādām prezentācijām – reklāmai, izklaidei un izglītībai. Muzejos, bērnudārzos, skolās, augstskolās un citur. Piemēram, augstskolas pasniedzējs var uzdot NAO atkārtot ar studentiem iepriekšējās lekcijas saturu. Un kamēr robots to pārstāsta…

Profesors Savrasovs: ...pasniedzējs var iet dzert kafiju. Galvenais, lai nebūtu kā jokā, kur pasniedzējs atgriežas, un studentu vietā robota priekšā ir tikai ierakstīšanas ierīces.

Vienmēr gribas darīt kaut ko jaunu

Ar ko jūs nodarbojaties, izņemot šī foršā projekta veidošanu?

Kotcovs: Es strādāju IT – lietu interneta (Internet of Things – IoT) jomā. Programmēju izmantojot "Python"un "Golang" valodas.

Začs: Un es esmu "Enterprise Java Backend" izstrādātājs, īsāk – "Java" programmētājs.

Kā vērtējat, vai darbs pie robota–skolotāja izveides kaut kādā veidā ietekmēja jūsu kvalifikāciju?

Začs: Tas man ļoti palīdzēja. Strādāju no pirmā kursa. Ja sanāk slikts kods, vadība man aizrāda. Laika gaitā es iemācījos rakstīt labāku kodu. Tad Nikolajs sāka strādāt TSI robotikas laboratorijā, rakstīt kodu NAO, un es nolēmu viņam pievienoties un palīdzēt.

Kotcovs: Kopš tā laika mēs "dzīvojām" šajā laboratorijā un kopā sākām rakstīt kodu NAO. Sākumā tās bija mazas programmas, skripti. Tad radās ideja izveidot lielu produktu.

Foto: Publicitātes foto

Začs: Mums lūdza radīt dažādas nelielas programmas NAO, un mums tās visas izdevās. Acīmredzot tad profesors Savrasovs nolēma dalīties ar mums idejā par robotu–skolotāju. Pirmo sistēmas versiju izveidojām divu dienu laikā.

Kotcovs: Un tā strādāja!

Cik ilgu laiku vajadzēja visam pārējam darbam?

Kotcovs: Kopumā visas sistēmas būvēšana aizņēma apmēram divus līdz trīs mēnešus, ja rēķina darba stundās, nosacīti sešas stundas dienā.

Vai neesat noguruši no šī projekta?

Začs: Vienmēr gribas darīt kaut ko jaunu.

Kotcovs: Strādājot ar NAO, mēs paralēli strādājām arī pie cita interesanta uzdevuma – izveidojām arī neironu tīklu, kas atšķir krustiņus no aplīšiem (lai varētu spēlēt "desas"). Un Andris radīja mākslīgo intelektu dambretes spēlēšanai ar robotu UR3.

Začs: Jā, un cilvēki to nevar uzvarēt. (Tieši pirms intervijas blakus laboratorijā ar šo mākslīgo intelektu aprīkots robots pārspēja dambretes spēlē vīrieti, kurš apmeklēja TSI ekskursijā – aut. piez.)

Tātad, viss, "Skynet" jau ir klāt?

Kotcovs: Nu jā. Galvenais ir būt programmētājam, lai tiktu pie stūres.

Vai īstenojāt daudz no tā, ko plānojāt pirms gada?

Kotcovs: Galvenās lietas, protams, tika īstenotas. Realizēta ideja, tās nepieciešamākās daļas. Papildu funkcijām jāpagaida.

Kādas bija sajūtas, kad pabeidzāt šo projektu?

Začs: Projekts ar NAO laikam bija viens no maniem lielākajiem projektiem. Kad to veiksmīgi aizstāvēju, man jau paralēli norisinājās pāris citi projekti, tāpēc nebija nekādas brīvības sajūtas.

Vai bija prieks, ka pabeidzāt tik apjomīgu darbu?

Začs: 100% bija gandarījums. Bet ne uzreiz. Kad aizstāvēju darbu, apsēdos, aizvēru acis un tā nosēdēju kādu pusstundu. Atpūtos.

Kotcovs: Tāpēc, ka tad uzstājos es, un Andris vairs nevarēja uz to skatīties (abi smejas).

Nikolaj, kādas bija tavas emocijas projekta beigās?

Kotcovs: Priecājos, ka nonācām līdz loģiskam noslēgumam, ka veiksmīgi aizstāvējām bakalaura darbu un ieguvām plašu zināšanu bāzi dažādās jomās.

Začs: Jā, mēs uzzinājām un izmēģinājām daudz interesantu lietu, rakstot nelielas programmas NAO. Viena no tām darbojas šādi: NAO nofotografē cilvēku un nosūta bildi viņam uz e-pastu. Adrese programmā jāievada manuāli, tad NAO nofotografē, parāda bildi tev monitorā un jautā, vai vēlies, lai tev to atsūta.

Kotcovs: Šī iemesla dēļ mēs reiz gandrīz nosūtījām savas fotogrāfijas vienai svarīgai personai. Kāds vēstnieks ieradās apmeklēt TSI, mēs viņam parādījām šo programmu, un tajā palika viņa e-pasta adrese. Un, kad viņš aizgāja, mēs ar Andri sākām jokoties NAO priekšā. Labi, ka tajā reizē mūsu bilde netika nosūtīta vēstniekam.

Seko "Delfi" arī Instagram vai YouTube profilā – pievienojies, lai uzzinātu svarīgāko un interesantāko pirmais!