Difference between revisions of "Natural language interface for SBOT"
(→Ukážka jednoduchého robo-skriptu) |
(→Teória) |
||
Line 4: | Line 4: | ||
Naším ceľom je vytvorenie rozhrania, pomocou ktorého by bolo možné prirodzeným jazykom komunikovať (myslené: písať) s SBOTom. Komunikácia by mala prebiehať v klasickej Win32 aplikácii a nielen získavať textovú odozvu od robota, ale taktiež ho navigovať v pohyboch. Medzi ciele si kladieme aj možnosť učiť ho zložitejšie, viacslovné príkazy. Celá komunikácia bude prebiehať v anglickom jazyku. | Naším ceľom je vytvorenie rozhrania, pomocou ktorého by bolo možné prirodzeným jazykom komunikovať (myslené: písať) s SBOTom. Komunikácia by mala prebiehať v klasickej Win32 aplikácii a nielen získavať textovú odozvu od robota, ale taktiež ho navigovať v pohyboch. Medzi ciele si kladieme aj možnosť učiť ho zložitejšie, viacslovné príkazy. Celá komunikácia bude prebiehať v anglickom jazyku. | ||
− | == | + | == Implementácia == |
=== Ukážka jednoduchého robo-skriptu === | === Ukážka jednoduchého robo-skriptu === | ||
Line 18: | Line 18: | ||
case 'p': sbot_stop(); | case 'p': sbot_stop(); | ||
break; | break; | ||
− | case 'l': sbot_left(); | + | case 'l': sbot_left(); |
− | break; | + | break; |
− | case 'r': sbot_right(); | + | case 'r': sbot_right(); |
− | break; | + | break; |
− | case 'b': sbot_back(); | + | case 'b': sbot_back(); |
− | break; | + | break; |
− | case 'o': sbot_rotate(); | + | case 'o': sbot_rotate(); |
− | break; | + | break; |
− | case 'z': zrychli(); | + | case 'z': zrychli(); |
− | break; | + | break; |
− | case 'j': skuska(); | + | case 'j': skuska(); |
− | break; | + | break; |
− | } | + | } |
== Postup == | == Postup == |
Revision as of 01:50, 22 June 2011
Contents
Cieľ
Naším ceľom je vytvorenie rozhrania, pomocou ktorého by bolo možné prirodzeným jazykom komunikovať (myslené: písať) s SBOTom. Komunikácia by mala prebiehať v klasickej Win32 aplikácii a nielen získavať textovú odozvu od robota, ale taktiež ho navigovať v pohyboch. Medzi ciele si kladieme aj možnosť učiť ho zložitejšie, viacslovné príkazy. Celá komunikácia bude prebiehať v anglickom jazyku.
Implementácia
Ukážka jednoduchého robo-skriptu
switch (buffer[0]) { case 'a': printf("hello\n"); break; case 's': printf("%d %d %d %d %d %d\n", adc_vals[0], adc_vals[1], bumper_stat(BUMPER_0), bumper_stat(BUMPER_1), bumper_stat(BUMPER_2), bumper_stat(BUMPER_3)); break; case 'f': sbot_forward(); break; case 'p': sbot_stop(); break; case 'l': sbot_left(); break; case 'r': sbot_right(); break; case 'b': sbot_back(); break; case 'o': sbot_rotate(); break; case 'z': zrychli(); break; case 'j': skuska(); break; }
Postup
Rozhodli sme sa základnú časť algoritmu - rozoznávač reči, ponechať v externej aplikácii. Samotný robot bude teda obsahovať iba pripravené jednoduché príkazy na ktoré dokáže reagovať. Zložitejšie príkazy potom budú riadené cez COM port z externého programu volaním týchto jednoduchších príkazov. Keďže prirodzený jazyk je veľmi rozsiahly, začali sme s implementáciou základných príkazov, ktoré je možné spájať do jednoduchých viet.
Základné príkazy
- hello
- how are you
- go
- stop
- turn
- rotate
- draw circle
- check sensor
- park (vráti sa na východzie miesto)
- follow light
- follow line
- bypass obstacle
Rozširujúce príkazy
- straight
- back
- left
- right
- 10cm
- faster
- slower
- closer
- until hit
- mean (špeciálny príkaz slúži na "učenie")
Spojky
- and
- then
Ukážka vstupných príkazov
- hello how are you go straight until hit then turn right and stop
- go straight 10cm then draw circle then go back and draw circle mean dance
Foto dokumentácia
Zdrojové súbory
Stiahnete už onedlho...
Externé odkazy
IBM's Watson (iba pre zaujímavosť)
Ludvik online (skúste sa porozprávať s Ludvikom)