Robootika Kauglabori kasutamine

Autor: Raivo Sell

Käesolev õpiobjekt tutvustab Robootika Kauglabori kasutamist.

Robootika Kauglabor on veebikeskkond, mis võimaldab reaalseid seadmeid programmeerida ja juhtida üle interneti. Robootika Kauglabor võimaldab erinevaid olemasolevaid laboreid integreerida süsteemi ja annab nii võimaluse neid kasutada üle interneti. Süsteemi toimimise kohta saab tagasisidet üldjuhul reaalaja videokaamera kaudu. Sõltuvalt laborist võib videokaamera olla, kas igal seadmel eraldi või on kaamera kogu labori kohta.

Lisaks laboriseadmetele pakub Robootika Kauglabori keskkond ka õppeprotsessi tuge, kus iga kasutaja saab koostada oma isikliku moodulõppekava. Koostatud õppekava, mis sisaldab erinevaid mooduleid ja õppeaineid saab õppeprotsessi kestel jälgida ja salvestada õppeaine tasemel õppe tulemus. Õppeprotsessi jälgimiseks peab aga kooli õppeaine ja moodul olema süsteemi enne sisestatud ja seetõttu ei pruugi see funktsionaalsus olla kasutatav kõigile õpilastele.


ESF

Õpiobjekti nimi: Robootika Kauglabori kasutamine

Õpiväljundid:

Pärast mooduli läbimist õpilane:

  • Kirjeldab Robootika Kauglabori funktsionaalsust
  • Kirjeldab seadmete kasutamise võimalusi
  • Oskab leida sobiva labori ja laboriseadme
  • Oskab vajaliku seadme endale broneerida ja seda kasutada

Kasutusjuhend:

  • Teoreetilise taustamaterjaliga tutvumine
  • Graafilise materjaliga tutvumine
  • Enesekontrolli küsimustele vastamine

Õpetatav osa: Lugeda teoreetilist ülevaadet enne riistvara reaalset ühendamist ja pingestamist. Vaadata juhendeid korrektse riistvara käsitlemise tagamiseks. Õpitu kinnistamiseks tuleb praktilised näited reaalselt läbi teha.

Seoste loomine: Läbi õppejuhendite ja sõnalise selgituse järgimise.

Kinnistav osa: Iseseisev praktika reaalse riistvarakomplekti baasil.

TEOREETILINE OSA

Robootika Kauglabori kasutamise õpiobjekt kasutab süsteemi funktsionaalsuse näitlikustamiseks edaspidi "Robotic HomeLab testped" kauglaborit, mis on Robootika Kodulabori baasil koostatud mikrokontrollersüsteem.

Teoreetiline taust - Laborite tüübid

Kauglabor (online labor) võimaldab kasutajal teostada eksperimente, mida tavaliselt tehakse laboris, üle interneti. Võrreldes tavalaboriga on eksperimentide teostamiseks üle interneti vaja täiendavaid seadmeid ja sidekanaleid.

Traditsiooniline labor

Traditsioonilises laboris saab kasutaja tegeleda seadmetega vahetult ja samuti on vahetu tagasiside seadmelt kasutajale. Näiteks vajutades seadme nupule saab kasutaja kohese tagasiside, kuidas seade reageerib ja kas eksperiment käivitus. 

Kauglabor

Kauglabori puhul toimub kasutaja suhtlemine seadmega interneti vahendusel. See tähendab, et kasutaja istub oma arvuti või mobiilse seadme taga ja laboriseadmed on koolis või mujal, kuid mitte kasutaja vahetus läheduses. Kasutaja ei suhtle enam otse seadmega, vaid teeb seda läbi spetsiifilise tarkvara. Tarkvara võib olla kas eraldi programm või veebirakendus, mis toimib läbi tavalise veebilehitseja. Kasutaja korraldused saadetakse seadmele üle interneti. Tavaliselt ei suhtle kasutaja ka otse seadmega, vaid see käib läbi vaheserverite, mis tegelevad seadmete haldamise, turvalisuse küsimustega, jne. Kuna tarkvaraliselt on keeruks realiseerida mõningaid inimesele tavalisi tegevusi, nagu näiteks nupu vajutus, siis võib teatud funktsionaalsus olla kauglabori puhul piiratud. Enamasti vahetab juhttarkvara ja seade elektrilisi signaale ning enamus funktsionaalsusest on üldjuhul üsna lihtsalt teisendatavad elektrilisteks signaalideks. Üheks selgeks erandiks ongi kasutaja poolt teostatavad füüsilised liigutused, mida on kauglabori puhul otseselt liiga keerukas või kallis realiseerida. Tagasiside seadme käitumisest saadakse reaal-aja kaameralt, mida võib olla üks kuni mitu, sõltuvalt seadme spetsiifikast. Samuti on audiotagasiside võimalik ja on enamasti integreeritud reaal-aja kaameraga. 

Tehnilistel erialadel on laborieksperimentidel oluline osa ja tavaliselt on need defineeritud kursuse ainekaardil. Õpilased peavad teostama eksperimendid kindlatel aegadel, kui laboriseadmed on vabad või broneeritud just sellele õppegrupile või õpilasele. Need ajad langevad üldjuhul kokku õppetöö aegadega ja kooli ametlike lahtioleku aegadega. Tihti võib olla probleemiks vajalike laboriseadmete vähesus või puuduvad need üldse ning samuti võib olla probleemiks seadmetele juurdepääs, kuna kasutajaid on rohkem kui vaba aja resurssi. Sellises situatsioonis ongi mõistlik kaaluda kauglaborite rakendamist, kuna need on oluliselt paindlikumad kasutusaja osas – õpilane võib teostada eksperimente ka nädalavahetusel või öösel, kui soovib. Teine oluline kauglabori rakendamise eelis on juurdepääs. Eksperimente saab teha geograafilisest asukohast sõltumata ja ei ole vaja eraldi juurdepääsu labori ruumidesse. Olulisel kohal on ka kauglabori omanike ja koolide ressursside jagamine. See võimaldab õppetöös rakendada praktilisi laboritöid ka siis, kui koolil endal ei ole vajalikke laboriseadmeid. Piisab ainult kokkulepetest vastavaid seadmeid omava kauglabori omanikuga, näiteks teise kooliga.

Virtuaallaborid

Virtuaallaborid on kauglaborite eritüübid, mis toimivad eelpool kirjeldatult sarnaselt kauglaboritega, kuid ei oma reaalset riistavara ehk laboriseadmeid. Laboriseadmed ja süsteemi käitumine on simuleeritud vastava spetsiifilise tarkvara abil. Süsteemi tagasiside ei saada mitte reaalset süsteemi väljundit mõõtes vaid tarkvaraliste arvutuste simuleerimise teel. Simulaatori väljund võib olla ainult tekstiline, kuid atraktiivsuse ja selguse huvides on eelistatud sellised virtuaallaborid, millel on graafiline väljund. Näiteks kasutaja poolt sisestatud programmi tulemusel hakkavad mingid väljundseadmed oma olekuid muutma – näiteks LED süttib ja kustub.

Virtuaallaborite eelis on nende lihtsam hallatavus (ei ole vaja hooldada riistvara) ja nende lihtne paljundamise võimalus. Virtuaalsete laboriseadmete arv sõltub enamati ainult serveri võimsusest ja litsentside arvust. Virtuaallaborite puuduseks võrreldes kauglaboritega on aga nende simuleerimispõhine väljund. Simuleeritud süsteem ei käitu kunagi täpselt samamoodi, kui reaalne süsteem. Seega on oluline, et õpilased saaksid uuritavast probleemist kogemuse reaalse eksperimendi kaudu, kuid alususeks sobib just virtuaallabor, mida on lihtsam pakkuda suurele hulgale õpilastele ja mida on praktiliselt võimatu oskamatu käitumisega lõhkuda.

Kauglabori ülevaade ja funktsionaalsus

Robootika Kauglabor võimaldab juurdepääsu laboritele ja seadmetele, mis on liidestatud Kauglabori serveriga. Robootika Kauglabori keskkond pakub järgmist unifitseeritud funktionaalsust erinevatele laboritele:

  • Reaalsete seadmete liidestamine internetiga

  • Seadmete broneerimist

  • Seadmete ja laborite kasutajaõiguste määramist ja keskset haldamist

  • Seadmete parameetrite määramist

  • Reaalaja videokaamerate tuge

  • Eelsalvestatud näitelahendusi igale seadmele

  • Juhtmega ja juhtmevabaseadme programmeerimist

Kauglaborid ja laboriseadmed

Keskkonda integreeritud laboreid näeb, kui avada menüügrupp LABORID ja sealt alammenüü Kauglaborid.

Avaneb tabel (vaata allolevat pilti), kus on näha süsteemi integreeritud laborid, mis on grupeeritud organisatsioonide järgi.

 kl

Klõpsates hiirega huvi pakkuval labori real avaneb konkreetse labori kirjeldus, selle asukoht ja reaal-aja kaamerate pilt. Tavaliselt on ühes laboris kaks videokaamerat, aga sõltuvalt labori tüübist võib neid olla ka üks või rohkem. Kaamerate pildi all on näha laboris olevad seadmed. Igas laboris on vähemalt üks seade, mida õpilased saavad kasutada. Ühes laboris võib olla ka rohkem, kui üks seade, kuid sellisel juhul on need kõik ühte tüüpi. Seadmete tabelit näeb videokaamerate pildi all.

kl

Klõpsates hiirega mõnel seadmel avaneb seadme info, kus on näha seadme kirjeldus, olek ja pilt. Samuti on näha seadme broneerimise andmed.

Seadme kasutamiseks on vaja teoreetilist taustainfot ja vastavaid ülesandeid. Need on üldjuhul viidetena samal lehel, näiteks tabelina nagu on näha alloleval pildil.


Seadme broneerimine ja kasutamise ettevalmistus

Laboreid ja seadmeid saab uurida iga kasutaja ja selleks ei ole vaja ennast süsteemi registreerida ega sisse logida. Kui on aga soov seadmeid reaalselt kasutada, on vajalik kasutajatunnus ja vastavad õigused labori omanikult seadet kasutada. Kasutajatunnuse taotlemiseks tuleb võtta ühendust oma õpetajaga, kui Kauglabori kasutamine on nähtud ette kursuse õppeprotsessis või muul juhul aadressil info@robolabor.ee. Kui kasutajanimi on olemas, saab sellega süsteemi sisse lgida, valides menüügrupi MINU LEHT - Login (vaata allolevat pilti)

avaneb sisselogimise aken, kuhu saab sisestada kasutajanime ja parooli.

Peale õnnestunud sisselogimist muutub MINU LEHT menüü ja sinna lisanduvad uued valikud (vaata allolevat pilti).


Menüü 'Minu leht' näitab koondväljavõtet erinevatest kasutajaspetsiifilistest andmetet nagu: Minu õpitee, Minu Edu ja Minu Seade. Kauglabori seiukohalt on oluline valik 'Minu Seade', mis annab juurdepääsu kasutajale broneeritud seadmele. 

Kui seadet ei ole veel broneeritud, siis viib menüüvalikule 'Minu seade' vajutamine automaatselt seadmete nimekirja, kust on võimalik omale soovitud seade broneerida. Oluline on siinkohal endale teadvustada, et seadet saab broneerida ainult juhul, kui selleks on andnud õiguse labori omanik või haldaja. Samuti ei saa konkreetset seadet endale broneerida, kui seade on juba kellegi teise poolt broneeritud. Ülevaate saamiseks, milliseid seadmeid saab endale broneerida, on kõige lihtsam valida menüüst LABORID -  Kauglabor - Laborid  ja avanenud tabelist valida huvipakkuv labor. Seejärel avaneb labori infoleht, kus on näha seadmete tabel koos informatsiooniga broneerimiste ja konkreetse kasutaja õiguste kohta. Näiteks on toodud ühe konkreetse kasutaja tabel laboris Robolabor.ee - Robotic HomeLab.

Siit on näha, et seadme 1 ja 4 on broneeritud kahe erineva kasutaja poolt ning seade 3 ja 4 broneerimiseks ei ole õigusi. Seega on võimalik sellest laborist broneerida hetkel ainult seade number 2.

Seadme kasutamine

Seadet saab hakata kasutama peale selle broneerimist. Erinevatel laboritel on erinevad kasutajaliidesed. Alljärgnev näide illustreerib Robootika Kodulabori testplatvormi kasutamist. Sama kasutajaliidest kasutab ka Mobiilse roboti kauglabor ja osa Manipulaatorite kauglaboritest.

Seadme kasutajaliides avaneb, kui vajutada menüülingil Minu seade. Avaneb kasutajaliides, kus on kirjeldatud seadme funktsioonid ja on illustreeriv pilt. Selle all on videokaamera ikoon, millele vajutades näeb reaalaja videopilti seadmest või laborist.

Seadme kasutamiseks saab sisestada C keelse juhtprogrammi lähtekoodi avanenud aknasse. Samuti võib avada mõne eelsalvestatud näiteprogrammi.

Lisaks on näha seadme olek (Status). Selle all on võimalik avada eelsalvestatud näiteid või ka enda poolt salvestatud koodi. Kui on soov omaloodud koodi salvestada, siis tuleb selleks anda koodile nimi, mis sisestatakse lahtrisse Nimi ja seejärel tuleks vajutada Save nuppu (vaata allolevat pilti).

Programmi kood sisestatakse koodi aknasse (pilt allpool) või laetakse üles tekstifailina. Selleks on lahter Upload source code or hex file. Koodi kontrollimiseks ja kompileerimiseks tuleb vajutada Compile nuppu. Kui kood kompileerub edukalt, on väljundi tulemus ilma veateadeteta, näiteks nagu on näha alloleval pildil.

Kui koodis oli viga, siis väljundaknas on seda ka näha vastava veateatena. Näiteks:

main.cpp: In function 'int main()':
main.cpp:24:2: error: expected ';' before 'pin_set'
make: *** [obj/main.o] Error 1

Kui kood kompileerub edukalt võib selle laadida seadmesse. Selleks tuleb vajutada nuppu Compile / Execute. See laeb kompileeritud koodi seadmesse.  Eduka laadimise tunnuseks on programmi parsimine laaduri poolt, mis annab väljundaknasse sarnase väljundi:

-------- begin execution --------

Connecting program server: 217.159.142.54
Remote command:cat /home/www/roboticlab/distancelab/prog/usertemp/10/main.hex | ssh robot@217.159.142.54 /usr/bin/hlflash - 3

Connected to libftdi driver.
IR length: 4
Chain length: 1
Device Id: 01001001100000000010000000111111 (0x4980203F)
  Manufacturer: Atmel (0x03F)
  Part(0):      ATmega2561 (0x9802)
  Stepping:     D
  Filename:     /usr/share/urjtag/atmel/atmega2561/atmega2561

Parsing     20/773 (  2%)
Parsing     30/773 (  3%)
Parsing     40/773 (  5%)
------
Parsing    720/773 ( 93%)
Parsing    730/773 ( 94%)
Parsing    740/773 ( 95%)
Parsing    750/773 ( 97%)
Parsing    760/773 ( 98%)
Parsing    770/773 ( 99%)
Scanned device output matched expected TDO values.
Infile: /tmp/tmp7jWQUg.hex
Binary size: 696
Flash pages: 3

Peale õnnestunud laadimist tuleks avada reaalaja videokaamera pilt, mis näitab laetud programmi toimimist. Alloleval pildil näeb videokaamera väljundit, kus on näha mootori pöörlemine.

Muud kauglaborid

Õpiobjekti loomise hetkel 2013 suvi on süsteemis registreeritud neli organisatsiooni, kus enamus organisatsioonidest on üks aktiivne labor, va. ITT Group, kus on kaks aktiivset laborit.

Olemasolevad laborid jaotuvad erinevatesse gruppidesse, millest on esindatud:

  1. Robootika Kodulabori testplatvorm (kirjeldatud käesolevas juhendis)
  2. Manipulaator - robotkäsi
    • Reaalne manipulaator
    • Virtuaalne manipulaator
  3. Mobiilne robotplatvorm

Illustratsioonid



NÄITEKOOD

Järgnevalt on toodud numberindikaatori kasutamise näiteprogramm. Programm loeb ligikaudu sekundilise intervalliga numbreid nullist üheksani. Selline loendamine on saavutatud suuremast arvust mooduli võtmisega.

//
// Kodulabori sisend-väljundmooduli 7-segmendilise
// LED indikaatori näidisprogramm
//
#include <homelab/module/segment_display.h>
#include <homelab/delay.h>
 
//
// Põhiprogramm
//
int main(void)
{
	int counter = 0;
 
	// 7-segmendilise indikaatori seadistamine
	segment_display_init();
 
	// Lõputu tsükkel
	while (true)
	{
		// Kui loenduri väärtus on suurem kui 9, 
		// siis näitab 7-segment E - Error
		segment_display_write(counter);
 
		// Loenduri suurendamine
		counter++;
 
		// Paus 1 sekund
		sw_delay_ms(1000);
	}
}

Järgnevalt on toodud näidisprogramm, mis juhib alalisvoolumootorit, nii et see muudab oma pöörlemissuunda iga 5 sekundi järel.

//
// Kodulabori mootorite mooduli
// alalisvoolumootori testprogramm
//
#include <homelab/module/motors.h>
#include <homelab/delay.h>
 
//
// Põhiprogramm
//
int main(void)
{
	// Suuna ja kiiruse muutujad
	signed char direction = 1, speed = 1;
 
	// Mootori 1 seadistamine
	dcmotor_init(1);
 
 
	// Lõputu tsükkel
	while (true)
	{

		dcmotor_drive(1, direction);
		
		// Paus 5 sekund
		sw_delay_ms(5000);
 
		// Suuna ümberpööramine
		direction = -direction;
 
		
	}
}

ENESEKONTROLL

Enesekontrolliks on võimalik praktiliselt katsetada mikrokontrolleri kauglaborit - Robotic HomeLab testped. Selleks tuleb saata parooli taotlus kauglabori haldajale: info@robolabor.ee

Robotic HomeLab Kauglabor: http://distance.roboticlab.eu

LISAMATERJAL

  1. Robootika Kauglabor distance.roboticlab.eu

Teoreetilise osa algtekstide autor: Raivo Sell