i_droid_instrukcja55.pdf

(1949 KB) Pobierz
robot 55 7-12
KROK PO KROKU
SLOWA I OBRAZY
Z MODULU
MîZGU I WZROKU
Kontynuujemy rozpocz«ty w poprzednim numerze przegld nowoæci wprowadzonych
przez instalacj« modu¸u mzgu i wzroku. Nadszed¸ czas, by powiedzie wi«cej o Grupach
S¸w, systemie rozpoznawania mowy oraz o nowym oprogramowaniu sterujcym.
kiem instalacji modu-
¸u mzgu i wzroku s
znaczne i dotycz rýnych
aspektw dzia¸ania i-D01.
Powiedzieliæmy juý o nowym
menu funkcji dost«pnych
z klawiatury umieszczonej
na korpusie robota i pokazu-
jcych si« na wyæwietlaczu.
W tym numerze natomiast
zajmiemy si« systemem roz-
poznawania mowy i opro-
gramowaniem sterujcym
dla komputera PC i telefonu
komrkowego. Znajdziemy
je na drugiej p¸ycie CD-ROM.
Przedstawimy teý podstawo-
we cechy j«zyka C-like uýy-
wanego przez edytor Visual
C-like do programowania
i-D01 na poziomie ærednio
zaawansowanym.
MODUü MOWY
System rozpoznawania mowy, ãdwi«kowyÓ in-
terfejs i-D01 odgrywa waýn rol« w zarzdzaniu
rýnymi funkcjami robota. Z tego wzgl«du, za-
nim jeszcze zosta¸ zainstalowany modu¸ mzgu
i wzroku, i-D01 rozumia¸ rýne komendy g¸oso-
we, niezb«dne do uruchomienia niektrych funk-
cji. Trzeba pami«ta, ýe na poprzednim etapie
brakowa¸o jeszcze innych ærodkw komunikacji.
Teraz wiele funkcji jest teý dost«pnych dzi«ki mo-
du¸owi Bluetooth i oprogramowaniu sterujcemu.
Dzi«ki nim moýna bezpoærednio programowa ro-
bota. Dzi«ki obecnoæci modu¸u mzgu i wzroku
Na zdj«ciu wida
robota na obecnym
etapie montaýu.
Jest on juý doæ
skomplikowany,
ma rwnieý wiele
funkcji, z ktrych
moýna skorzysta.
Zainstalowanie
modu¸u mzgu
i wzroku wp¸yn«¸o
zw¸aszcza
na zwi«kszenie
wydajnoæci systemu
rozpoznawania mowy
i mwienia, a takýe
na oprogramowanie
sterujce.
(patrz schemat w poprzednim numerze) nie tyl-
ko moýna ãg¸osowoÓ korzysta z nowych funkcji
i-D01, ale co wi«cej, zostaje zwi«kszony stopieÄ
interakcji ãtowarzyskiejÓ robota. Dlatego juý w star-
towej Grupie S¸w oznaczonej numerem 1 wpro-
wadzono wiele s¸w, takich jak ãbrawoÓ czy ãnu-
dziarzÓ, ktre w ten sposb staj si« cz«æci j«zy-
ka robota. Ostatnim wielkim krokiem naprzd b«-
dzie instalacja sieci neuronowej odpowiedzialnej
za zarzdzanie stanem ãemocjonalnymÓ robota.
W oczekiwaniu na ni, do s¸w ãreakcjiÓ do¸-
czono sta¸e odpowiedzi werbalne.
Jak juý powiedzieliæmy, zamiany nie dotycz tyl-
ko aspektu ãemocjonalnegoÓ. Rwnieý Grupa
7
SüOWA I OBRAZY
Z MODUüU
MîZGU I WZROKU
Z miany b«dce wyni-
125666597.005.png
KROK PO KROKU
S¸w 2 zwizana z ruchami i czynnoæciami
zosta¸a poszerzona (mi«dzy innymi o moýli-
woæ gry w ãæledzenie wzrokiemÓ, opisanej
w poprzednim numerze), cho niektre ko-
mendy g¸osowe z tej grupy, mimo ýe s roz-
poznawane przez robota, na razie nie powo-
duj ýadnej reakcji, nie ma bowiem odpo-
wiadajcych im modu¸w. To samo dotyczy
Grupy S¸w 3, zwizanej z zachowaniami
i funkcjami, ktre moýna aktywowa lub dez-
aktywowa Ð na przyk¸ad do komendy ãomi-
janie przeszkdÓ przywizane b«dzie praw-
dziwe zachowanie, gdy robot b«dzie wypo-
saýony w czujniki ultradwi«kowe i komplet-
n, dzia¸ajc podstaw«. O ile w wyniku obec-
noæci modu¸u mzgu i wzroku pewne Grupy
S¸w si« rozros¸y, o tyle inne zosta¸y ca¸kowicie
ãzablokowaneÓ. Jedn z nich jest Grupa S¸w 12,
zawierajca s¸owa interakcji, takie jak ãjesteæ pi«k-
nyÓ, ãbrzydalÓ i ãzakoÄczÓ. Inne komendy b«d do-
st«pne w przysz¸oæci, gdy wyposaýenie mecha-
niczne, elektroniczne i informatyczne i-D01 umoý-
liwi optymalne zarzdzanie wiýcymi si« z nim
funkcjami. Oczywiæcie modu¸ mzgu i wzroku
wprowadza teý s¸owa, ktre s odpowiedziami
na pewne zwroty. Na przyk¸ad w odpowiedzi na
s¸owa ãkupa z¸omuÓ czy ãbrawoÓ i-D01 odpowie
w tym samym stylu, do¸czajc do odpowiedzi
rwnieý ruchy g¸owy i zapalanie si« diod oczu.
W sumie i-D01 jest teraz bardziej interaktywny niý
by¸ jeszcze kilka tygodni temu, ale ãdialogiÓ sta-
n si« jeszcze ciekawsze, gdy do modu¸u mzgu
i wzroku zostanie zainstalowana sie neuronowa.
Spowoduje to ewolucj« stanu ãemocjiÓ robota.
Zanim zostanie
zainstalowana sie
neuronowa,
zdolnoæ ekspresji
i-D01 zwi«ksza
na razie instalacja
modu¸u mzgu
i wzroku. Kiedy
lampki w oczach s
wy¸czone, robot
jest ãspokojnyÓ,
ale w reakcji
na pewne s¸owa
i-D01 w¸cza lampki
i energicznie macha
g¸ow.
zast«powa¸y przede wszystkim strza¸ki wskazuj-
ce kierunek ruchw, o tyle teraz waýn rol« od-
grywaj obrazy ãwidzianeÓ przez i-D01 dzi«ki ka-
merze. Zbiera ona æwiat¸o z obserwowanego ob-
razu i przekszta¸ca je w sygna¸ elektryczny, ktry
Ð przetworzony przez sam kamer« Ð zostaje na-
st«pnie przes¸any do karty elektronicznej modu-
¸u mzgu i wzroku. Std sygna¸ biegnie do mo-
du¸u Bluetooth, ktry Ð gdy po¸czenia s aktyw-
ne Ð wysy¸a ten sam sygna¸ do oprogramowania
kontrolnego. Wreszcie, obraz odpowiadajcy sy-
gna¸owi pokazywany jest na interfejsie kontrolnym.
To, ýe ãokoÓ i-D01 moýe teraz widzie, stanowi
wielk zmian« w interakcjach z robotem, praw-
dziwy skok jakoæciowy, rwnieý z punktu widze-
nia funkcjonalnoæci. Same obrazy rwnieý mog
by przetwarzane Ð w tym celu oprogramowanie
kontrolne dostarcza nowego domyælnego zacho-
wania, nazwanego ãlokalizacja osobyÓ. W ramach
menu Zachowania, wærd opcji, ktre moýna wy-
bra w nowej wersji oprogramowania, jest teý
podýanie za osob, ktr robot widzi. W prak-
tyce, kiedy ta funkcja b«dzie aktywna, robot b«-
dzie stara¸ si« æledzi wzrokiem twarz i r«ce
osoby stojcej naprzeciw niego. Jest to moýli-
we dzi«ki przetwarzaniu obrazw pochodz-
cych z kamery CMOS. Zostaj one ãprzesianeÓ
w poszukiwaniu wystarczajco szerokich obsza-
rw o kolorze podobnym do koloru skry. Wy-
nik przetwarzania pokazuje si« na interfejsie
kontrolnym, na ktrym wyszczeglnione s ob-
szary wybrane przez i-D01. Komenda ãlokali-
zacja osobyÓ to nie jedyna nowoæ w menu
Zachowania Ð pojawi¸o si« tu teý zachowanie
ãomijaj przeszkodyÓ, na ktre jednak robot b«-
dzie reagowa¸ dopiero wtedy, gdy skompleto-
wana zostanie jego podstawa i do¸oýone zo-
stan czujniki ultradwi«kw. Nowa jest teý
Oprogramowanie
sterujce dla PC
odgrywa teý waýn
rol« w transferze
programw
z edytora Visual
C-like do i-D01.
Poniýej: ekran
startowy PC Control.
OPROGRAMOWANIE
NA KOMPUTER PC
I TELEFON KOMîRKOWY
Przejdmy teraz do oprogramowania steruj-
cego zamieszczonego na drugiej p¸ycie
CD-ROM, do¸czonej do numeru 50. Zastpi-
¸o ono oprogramowanie z pierwszej p¸yty. Ko-
lejne nowsze wersje s niezb«dne, aby jak naj-
lepiej korzysta z dodawanych sukcesywnie
modu¸w, zw¸aszcza modu¸u mzgu i wzro-
ku. Oprogramowanie z drugiej p¸yty b«dzie
odgrywa kluczow rol« podczas uýywania ka-
mery CMOS, zainstalowanej niedawno w g¸o-
wie robota. Z kolei PC Control b«dzie waýny
w programowaniu robota przez edytor Visu-
al C-like. Zmiany wprowadzone przez te no-
we wersje wida juý, gdy przyjrzymy si« pod-
stawowemu interfejsowi kontroli. O ile w pierw-
szych wersjach oprogramowania ten interfejs
8
125666597.006.png 125666597.007.png
SüOWA I OBRAZY Z MODUüU MîZGU I WZROKU
komenda ãprogram uýytkownikaÓ. Dzi«ki niej
moýna w¸czy (ãOnÓ) lub zatrzyma (ãOffÓ)
wykonywanie ostatniego programu uýytkow-
nika przeniesionego do modu¸u mzgu i wzro-
ku. Inne funkcje oprogramowania kontrolne-
go pozostaj w duýej mierze niezmienione.
Instalacja modu¸u mzgu i wzroku przyno-
si jeszcze jedn zmian«, dotyczc zw¸aszcza
PC Control. Jak wiadomo, modu¸ mzgu i wzro-
ku umoýliwi¸ programowanie robota na pozio-
mie ærednio zaawansowanym dzi«ki edytoro-
wi Visual C-like. To narz«dzie pozwala przenieæ
programy tworzone na komputerze PC do ro-
bota, skompilowa i uruchomi. I w¸aænie przy
przejæciu z komputera do i-D01 waýn rol«
odegra oprogramowanie kontrolne. Dzia¸a
ono automatycznie jak ãmost po¸czeniaÓ.
Trzeba tylko pami«ta o jednym Ð o uruchamia-
niu oprogramowania kontrolnego na komputer PC
i pod¸czania go do i-D01 przed rozpocz«ciem
transferu programu do robota. Naleýy pami«ta,
ýe wersje poprzedzajce 1.3.1 (na przyk¸ad ta
z pierwszej p¸yty CD) nie mog by poærednikiem
mi«dzy edytorem Visual C-like a i-D01.
Wiele nowinek
w oprogramowaniu
sterujcym wiýe si«
z kamer CMOS.
Sekwencja zwrotna
wideo pokazywana
jest na interfejsie
kontrolnym (zdj«cie
po lewej), zaæ
z menu Zachowania
moýna aktywowa,
mi«dzy innymi,
komend«
ãlokalizacja osobyÓ
(zdj«cie powyýej).
W tym czasie rozpoczyna¸a si« epoka
wielkiego wzrostu informatycznego, w ra-
mach ktrej powstawa¸y rýnego rodzaju pro-
cesory, a j«zyk C z powodu swoich cech mia¸
ãszcz«æcieÓ ¸atwego adaptowania si« do rý-
nych systemw. Tak zwana ãnoænoæÓ sta¸a si«
zatem powodem sukcesu j«zyka, ktry w latach
siedemdziesitych zapocztkowa¸ seri« swoich
odmian. By¸ to efekt wk¸adu kolejnych naukow-
cw, ktrzy wprowadzali poprawki i modyfi-
kacje w podstawowej wersji j«zyka C. Aby utrzy-
ma j«zyk programowania ãprzy ýyciuÓ, tak by
by¸ wykorzystywany przez rýne obiekty, nie-
zb«dna jest pewna jednorodnoæ. Tak teý by-
¸o z j«zykiem C i oko¸o roku 1982 konieczne by-
¸o przeprowadzenie standaryzacji. Sprawa sta-
¸a si« naglca, gdy j«zyk C zacz¸ by szeroko
uýywany w projektach uýytku publicznego i rz-
dowego. W 1990 roku ISO (International Standard
J¢ZYK C-LIKE
Jeæli chodzi o ærodowisko programowania bloko-
wego, to kilka s¸w poæwi«cimy rwnieý wspie-
rajcemu go j«zy-
kowi programowa-
nia, j«zykowi C-li-
ke. Wykorzystuje
on jako ãkonstruk-
cj« noænÓ znany
j«zyk C, uýywany
cz«sto przy tworze-
niu systemw in-
formatycznych,
a przede wszystkim
w programowaniu
robotycznym.
Opracowany oko¸o
1970 roku dzi«ki
pracy naukowcw
z Bell Labs (USA),
mi«dzy innymi Dennisa Ritchiego, j«zyk C powsta¸
jako j«zyk programowania dla systemu operacyj-
nego Unix, stworzonego w tym samym czasie.
ãOjcemÓ j«zyka C jest j«zyk B pochodzcy z BCPL.
J«zyk C by¸ pomyælany po to, by umoýliwi pro-
gramowanie ãna wysokim poziomieÓ (czyli bez
koniecznoæci dbania o zarzdzanie kaýdym poje-
dynczym komponentem komputera), a zarazem
tak, by jak najlepiej wykorzysta jego potencja¸.
Zarzdzanie
ruchami,
wyæwietlaczem,
æwiat¸ami
i komendami
g¸osowymi poprzez
ærodowisko
programowania
blokowego jest
moýliwe dzi«ki
specjalnym
konstrukcjom
w j«zyku C-like.
9
125666597.008.png 125666597.001.png 125666597.002.png
KROK PO KROKU
Organization) zarejestrowa¸a wersj« standardo-
w. Od tego czasu inne wersje j«zyka C nadal s
uýywane i przynajmniej cz«æciowo ich ewolucja
trwa, rwnieý dzi«ki narodzinom nast«pcw,
w tym znanego j«zyka C++. Tak czy inaczej, trzy-
dzieæci lat od momentu swojego powstania j«zyk
C pozostaje jednym z najbardziej powszechnych
i najbardziej znanych j«zykw programowania.
J«zyk C-like i-D01 to w duýej mierze j«zyk C, do
ktrego dodano pewne konstrukcje, ktre umoý-
liwi jak najpe¸niejsze wykorzystanie ãmoýliwoæciÓ
robota. Aby zobaczy, jak wyglda kod C-like,
moýna uýy komendy Show Souce z menu Pro-
gram edytora Visual C-like. Otworzy si« nowe
okno, gdzie zostanie pokazane ãt¸umaczenieÓ
schematu blokowego. Chociaý mniej obeznanym
ze spraw czytelnikom kod moýe wydawa si«
skomplikowany, nie powinno stanowi problemu
odnalezienie podstawowych, charakteryzujcych
go wyraýeÄ. J«zyk C-like zawiera rzeczywiæcie kil-
ka wyraýeÄ ãspecjalnychÓ, wymyælonych w¸aænie
dla robota, umoýliwiajcych na przyk¸ad dost«p
do zarzdzania ruchami ramion, g¸owy i podsta-
wy. Co wi«cej, znajdziemy tu kilka wyraýeÄ zwi-
zanych z ustawionymi domyælnie zachowaniami,
uýywaniem æwiate¸, wyæwietlacza, z wiadomo-
æciami g¸osowymi, a takýe uýywaniem komend g¸o-
sowych. Zarzdzanie aparatur robota b«dzie si«
zatem odbywa poprzez specyficzne wyraýenia
w j«zyku C-like. Wyraýenia te maj wyjtkowe
T¸umaczenie
schematw
blokowych
(na dole
po lewej)
na j«zyk C-like
odbywa si«
automatycznie
poprzez edytor
Visual C-like,
zanim do robota
zostanie
przeniesiony
program, ktry
nast«pnie jest
kompilowany
i uruchamiany
(po prawej).
parametry Ð na przyk¸ad w zarzdzaniu rozpo-
znawaniem mowy wykorzystuje si« jako parametr
rozpoznan komend« g¸osow, zaæ przy zacho-
waniu ãlokalizacja osobyÓ uýywa si« skadrowane-
go obrazu o konkretnych okreælonych kolorach.
Rwnieý rodzaje parametrw uýywanych przez i-
D01 s ãzintegrowaneÓ ze ærodowiskiem C-like.
Oprcz rodzajw ãkomenda g¸osowaÓ i ãkolorÓ
j«zyk C-like wyrýnia teý typ ãtemperaturaÓ, ãdo-
tykÓ, ãkierunek dochodzenia dwi«kuÓ i tak da-
lej. Podsumowujc, j«zyk C-like zosta¸ wymyælo-
ny tak, by sta si« ãj«zykiem C dla i-D01Ó Ð j«zy-
kiem, ktry by¸by tak rýnorodny i ¸atwy w ada-
ptacji jak C, ale jednoczeænie pozwala¸ maksymal-
nie wykorzysta moýliwoæci robota. Bardziej za-
awansowani informatycznie czytelnicy b«d mo-
gli tworzy programy bezpoærednio w j«zyku C-
like (wykorzystujc now wersj« edytora, ktr
dostarczymy juý wkrtce), dowolnie korzystajc
z wyraýeÄ typowych dla j«zyka C i tych, stworzo-
nych specjalnie dla i-D01. Dla mniej zaawansowa-
nych uýytkownikw b«dzie to z kolei okazja do
poznania ãprawdziwegoÓ j«zyka dzi«ki wykorzy-
staniu moýliwoæci porwnywania schematw blo-
kowych, jakie przestawia kod j«zyka C-like.
10
125666597.003.png
SüOWA I OBRAZY Z MODUüU MîZGU I WZROKU
PRZYKüADY WYRAûEÁ W J¢ZYKU C-LIKE
Przyk¸ady wybranych konstrukcji j«zykowych
(definicja rodzaju i funkcji) stworzonych dla i-D01
przy wykorzystaniu sk¸adni typowej dla j«zyka C.
W nawiasach okrg¸ych zaznaczono niezb«dne
parametry funkcji, zaæ po znaku // znajduj si«
komentarze. Lista (niepe¸na) daje poj«cie o rodzaju
wyraýeÄ, jakie pojawiaj si« w j«zyku C-like
do zarzdzania rýnymi modu¸ami robota.
[
FUNKCJE RUCHU
]
void left_arm(int pos); //ruch lewego ramienia
void right_arm(int pos); //ruch prawego ramienia
void base_stop(); //zatrzymanie ruchu podstawy
void base_up(); //ruch podstawy do gry
void base_down(); //ruch podstawy w d¸
void move_dist(int dist, int speed); //ruch prostoliniowy podstawy
void move_speed(int speed); //ruch prostoliniowy podstawy
void turn(int deg, int speed); //ruch obrotowy podstawy
void rogate(int speed); //obrt podstawy
void head_pan(int pos); //ruch g¸owy w prawo/w lewo
void head_tilt(int pos); //ruch g¸owy w gr«/w d¸
[
DEFINICJA TYPU
]
typedef int temperature_t; //rodzaj temperatura
typedef struct
{
byte R;
byte G;
byte B;
}
color_t; //typ kolor
[
FUNKCJE ZACHOWAÁ
]
typedef enum TOUCH touch_t;
enum TOUCH
{
TOUCH_OFF = 0
TOUCH_ON = 1
}; //typ dotyk
void sound_follower(bool mode); //w¸/wy¸ id za dwi«kiem
void touch_behavior(bool mode); //w¸/wy¸ reakcja na dotkni«cie g¸owy
void obstacle_avoidane(bool mode); //w¸/wy¸ omijaj przeszkody
void vision_follower(bool mode); //w¸/wy¸ lokalizacja osoby
typedef enum VOICE_CMD voice_cmd_t
enum VOICE_CMD
{
CMD_NULL = 0
CMD_ZERO = 1
CMD_ONE = 2
CMD_TWO = 3
CMD_THREE= 4
CMD_FOUR = 5
CMD_FIVE = 6
CMD_SIX = 7
CMD_SEVEN = 8
CMD_EIGHT = 9
CMD_NINE = 10
CMD_TEN = 11
}; //typ komenda g¸osowa
[
RîûNE FUNKCJE
]
void left_tool(bool mode); //w¸/wy¸ lewe narz«dzie
void right_tool(bool mode); //w¸/wy¸ prawe narz«dzie
void led_on(leds_t led); //zapalenie æwiate¸
void led_off(leds_t led); //zgaszenie æwiate¸
void led_blink(ledes_t led); //migotanie æwiate¸
void lcd_clear(); //skasowanie liter na wyæwietlaczu
void lcd_write_string(int row, int col, const char* smg); //napisanie
zdania na wyæwietlaczu
void lcd_write_int(int row, int col, int num); //napisanie cyfry
na wyæwietlaczu
void say_phrase(int phrase); //mwi zdanie
void say_number(int num); //mwi cyfr«
void play_sound(int sound); //odtwarza ustawiony dwi«k
11
125666597.004.png
Zgłoś jeśli naruszono regulamin