Difference between revisions of "Natural language interface for SBOT"
(→Foto dokumentácia) |
(→Video) |
||
(22 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
== Cieľ == | == Cieľ == | ||
− | Naším ceľom | + | Naším ceľom bolo vytvorenie rozhrania, pomocou ktorého by bolo možné prirodzeným jazykom komunikovať (myslené: písať) s SBOTom. Komunikácia prebieha v klasickej Win32 aplikácii a nielen získava textovú odozvu od robota, ale taktiež sa dá navigovať v pohyboch. Medzi, žiaľ nesplnené ciele, sme si dali aj možnosť učiť ho zložitejšie, viacslovné príkazy. Celá komunikácia prebieha v anglickom jazyku. |
− | == | + | == Postup == |
+ | Samotný algoritmus je pre robota programovaný v AVR studiu a pre PC sme zvolili jazyk C++ a MS Visual Studio. Základnú časť algoritmu - rozoznávač reči, sme sa rozhodli ponechať v externej aplikácii a nevkladať ju do pamäte robota. Samotný robot v tejto verzii teda obsahuje iba pripravené jednoduché príkazy na ktoré dokáže reagovať. | ||
+ | === Ukážka časti programu pre SBOTa === | ||
− | + | switch (buffer[0]) | |
+ | { | ||
+ | case 'a': printf("HELLO\n"); | ||
+ | break; | ||
+ | case 's': printf("%d %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), adc_vals[2]); | ||
+ | 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; | ||
+ | } | ||
− | + | Zložitejšie príkazy potom budú riadené cez bluetooth 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. | |
− | |||
=== Základné príkazy === | === Základné príkazy === | ||
* hello | * hello | ||
− | |||
* go | * go | ||
+ | * left | ||
+ | * right | ||
+ | * rotate | ||
+ | * back | ||
* stop | * stop | ||
− | * | + | * wait |
− | * | + | * status |
+ | |||
+ | == Obrazová dokumentácia == | ||
+ | Tu je niekoľko obrázkov z našej aplikácie a jedno krátke video. | ||
+ | === Foto === | ||
+ | <div style="float: left"> | ||
+ | [[Image:Beta verzia aplikacie.JPG|thumb|300px|Prvá beta verzia aplikácie]] | ||
+ | </div> | ||
+ | <div style="float: left"> | ||
+ | [[Image:Gama_verzia.JPG|thumb|300px|Finálna verzia aplikácie]] | ||
+ | </div> | ||
+ | <div style="float: left"> | ||
+ | [[Image:Final_program.JPG|thumb|300px|Odľahčená verzia aplikácie]] | ||
+ | </div> | ||
+ | <div style="clear: both"></div> | ||
+ | === Video === | ||
+ | [http://www.youtube.com/watch?v=sQ7dYv4Fm0c Natural language for SBOT na YouTube] | ||
+ | |||
+ | == Zdrojové súbory == | ||
+ | Stiahnite si zdojové súbory pre [[Media:Sbottalk_pc.zip|MS Visual Studio]] (PC časť) a pre [[Media:Sbottalk_sbot.zip|AVR Studio]] (SBOT časť). | ||
+ | |||
+ | == Možnosti budúceho rozvoja == | ||
+ | Do budúcna by sme chceli dosiahnuť aj implementáciu nasledujúcich rozšírení a príkazov. | ||
+ | === Základné príkazy === | ||
+ | * how are you | ||
* draw circle | * draw circle | ||
− | |||
* park (vráti sa na východzie miesto) | * park (vráti sa na východzie miesto) | ||
* follow light | * follow light | ||
Line 25: | Line 74: | ||
* bypass obstacle | * bypass obstacle | ||
=== Rozširujúce príkazy === | === Rozširujúce príkazy === | ||
− | |||
− | |||
− | |||
− | |||
* 10cm | * 10cm | ||
* faster | * faster | ||
Line 38: | Line 83: | ||
* and | * and | ||
* then | * then | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Externé odkazy == | == Externé odkazy == | ||
[http://www.youtube.com/watch?v=FC3IryWr4c8 IBM's Watson] (iba pre zaujímavosť)<br/> | [http://www.youtube.com/watch?v=FC3IryWr4c8 IBM's Watson] (iba pre zaujímavosť)<br/> | ||
[http://www.ludvik.sk/ Ludvik online] (skúste sa porozprávať s Ludvikom) | [http://www.ludvik.sk/ Ludvik online] (skúste sa porozprávať s Ludvikom) |
Latest revision as of 16:54, 22 June 2011
Contents
Cieľ
Naším ceľom bolo vytvorenie rozhrania, pomocou ktorého by bolo možné prirodzeným jazykom komunikovať (myslené: písať) s SBOTom. Komunikácia prebieha v klasickej Win32 aplikácii a nielen získava textovú odozvu od robota, ale taktiež sa dá navigovať v pohyboch. Medzi, žiaľ nesplnené ciele, sme si dali aj možnosť učiť ho zložitejšie, viacslovné príkazy. Celá komunikácia prebieha v anglickom jazyku.
Postup
Samotný algoritmus je pre robota programovaný v AVR studiu a pre PC sme zvolili jazyk C++ a MS Visual Studio. Základnú časť algoritmu - rozoznávač reči, sme sa rozhodli ponechať v externej aplikácii a nevkladať ju do pamäte robota. Samotný robot v tejto verzii teda obsahuje iba pripravené jednoduché príkazy na ktoré dokáže reagovať.
Ukážka časti programu pre SBOTa
switch (buffer[0]) { case 'a': printf("HELLO\n"); break; case 's': printf("%d %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), adc_vals[2]); 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; }
Zložitejšie príkazy potom budú riadené cez bluetooth 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.
Základné príkazy
- hello
- go
- left
- right
- rotate
- back
- stop
- wait
- status
Obrazová dokumentácia
Tu je niekoľko obrázkov z našej aplikácie a jedno krátke video.
Foto
Video
Natural language for SBOT na YouTube
Zdrojové súbory
Stiahnite si zdojové súbory pre MS Visual Studio (PC časť) a pre AVR Studio (SBOT časť).
Možnosti budúceho rozvoja
Do budúcna by sme chceli dosiahnuť aj implementáciu nasledujúcich rozšírení a príkazov.
Základné príkazy
- how are you
- draw circle
- park (vráti sa na východzie miesto)
- follow light
- follow line
- bypass obstacle
Rozširujúce príkazy
- 10cm
- faster
- slower
- closer
- until hit
- mean (špeciálny príkaz slúži na "učenie")
Spojky
- and
- then
Externé odkazy
IBM's Watson (iba pre zaujímavosť)
Ludvik online (skúste sa porozprávať s Ludvikom)