Natural language interface for SBOT

From RoboWiki
Revision as of 16:44, 22 June 2011 by Robot (talk | contribs) (Cieľ)
Jump to: navigation, search
SBOT robot

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.

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

  1. hello how are you go straight until hit then turn right and stop
  2. go straight 10cm then draw circle then go back and draw circle mean dance

Foto dokumentácia

Prvá beta verzia aplikácie
Finálna verzia aplikácie
Odľahčená verzia aplikácie

Zdrojové súbory

Stiahnite si zdojové súbory pre MS Visual Studio (PC časť) a pre ‎AVR Studio (SBOT časť).

Externé odkazy

IBM's Watson (iba pre zaujímavosť)
Ludvik online (skúste sa porozprávať s Ludvikom)