perjantai 2. huhtikuuta 2010

Puuhastelu robotin kanssa alkoi

Kuten tämän blogini ja toisen blogini viimeaikaisista kirjoituksista on voinut uumoilla, olen nyt alkanut puuhastella oman robottiprojektini kimpussa. Tilasin UK:sta pienen harrasterobotti-kitin, Stingrayn. Tavoitteenani on suunnata lojban-harrastelu, ainakin väliaikaisesti, robottiharrasteluksi. Asia liittyy tuohon "maadoittamishöpinään". Itse asiassa tuon "Kiinalainen huone" (tai "Lojbanistanilainen huone") pohdiskelu vaivaa niin, että haluan ihan konkreettisesti tutkia juttua lähemmin. Ja kivaahan tässä on se, että tällainen iso pikkupoika leikkii ihan mielellään konkreettisella lelulla :)

Olen jo tammikuusta alkaen väsännyt pikkurobotille yläontologiaa. Se on väsyttävää, joten haluan vaihteeksi tehdää hommaa vastakkaisesta laidasta. Siksi tuli mielihalu ostaa tuo robotti. Aloitin kokonaishomman kirjoittamalla aika yksityiskohtaisen projektisuunnitelman. Se on tuo PDF-tiedosto Upload-sivun alalaidassa, robottihakemistossa: Projektisuunnitelma.pdf Se on kirjoitettu itselleni, mutta myös jokaiselle uteliaalle. Kommentit tervetuliaita.

7 kommenttia:

Knowledge kirjoitti...

Tuo toisessa blogissa kuvailemasi AIXI-mallihan perustuu aikaan, lyhyen ja pitkän aikavälin tavoitteisiin. Tennis on hyvä ja yksinkertainen esimerkki aikaan perustuvasta tekoälystä, jossa pitää tehdä päätöksiä askeleesta aina kokonaisstrategiaan asti ja eri pituiset tavoitteet riippuvat toisistaan.

Myös Jaana Venkula on käyttänyt tennistä esimerkkinä. Venkulalla on radikaaleja, joskin aika hämäriä ajatuksia älykkyydestä. Esimerkkinä ihmisen muodostumisen kehä (teko->taito->valmius->tapa->luonne) on myös kiinnostava aikatavoitteiden kannalta.

JuSa kirjoitti...

Olen itse samaa mieltä, että tennis oli onnistunut esimerkki. Raudanläheinen, rinnakkainen, reaaliaikainen ohjelmointi oli aluksi "shokkiefekti" pitkän tauon jälkeen. En ole tehnyt tällaista ohjelmointia vuosiin ja minulla oli pääsiäisen aikoihin isoja ongelmia. Mutta tein oikean liikkeen ja ostin jenkeistä halvan, 16-kanavaisen USB-liityntäisen logiikka-analysaattorin, niin johan alkoi Lyyti kirjoittaa. Minulla näillä näkymin juhannukseen mennessä robotin "aivorunkokoodi", siis Propeller-raudassa asuva koodi kutakuinkin valmis, ja pääsen palaamaan ylempiin tasoihin "kognitiivistä stäkkiä", siis käsitteeellisen ajattelun toteuttamiseen. Laitan tuonne toiseen blogiin jotain lähempää käytännön kokemusta Propeller-ohjemoinnista lähiviikkoina. Propeller-mikrokontrolleri on tavallisuudesta poikkeava, hyvin mielenkiintoinen tuttavuus. Voin suositella, monenlaisiin hommiin.

Mutta, mitä jos kommentoisit itse robotin kognitiivistä arkkitehtuuria, sellaisena kuin sen PDF-tiedostossa esitin:
http://sites.google.com/site/lojbankehitys/upload
ja Projektisuunnitelma.pdf

JuSa kirjoitti...

"(teko->taito->valmius->tapa->luonne) on myös kiinnostava aikatavoitteiden kannalta."

Itseasiassa tuo kuullostaa "psykokybernetiikalta", joka oli yksi 70-luvun jenkkien liikkeenjohdollisista "ismeistä". Siinä oli ideana, että asenteitaan ei voi periaatteessa muuttaa, mutta voi omaksua uusia asenteita, jotka korvaavat vanhat, huonommat. Ja uusia omaksuttiin juuri tekojen kautta. Oikeastaa ennen tekoja oli vielä "rationalisointivaihe", jossa teot perusteltiin itselle uusien saavutettavissa olevien tavoitteiden kautta. Sitten teot vahvistivat niiden rationaalisena perustana olevaa asennetta (hebbian learning!), ja sitä kautta Venkulan esittämällä tavalla luonnetta.

Knowledge kirjoitti...

Kognitiivinen arkkitehtuuri on hyvin todentuntuinen.

Jos johonkin pitää puuttua niin tuossa esityksessä on ristiriitaista se kun käsitteellisellä tasolla ei käytetä nimeä "malli". Tai "symbolinen malli", tai ehkä "mallin malli". HTM-periaatteella tasot voisivat olla symmetrisemmät vaikka tässä ei tavoitella neuroverkkoa.

Deskriptiivisen toiminta-algoritmin käyttö on perusteltua, mutta kannattaisiko osan toiminnallisuudesta tehdä silti perinteisellä imperatiivisella koodilla?

Itse olen harrastanut "käsiteohjelmointia" Jena-kirjastolla niin että sidon oliot automaatisesti levylle varastoitaviin RDF-käsitteisiin.

pensador kirjoitti...

Hei, kommenttini ei koske tuota robottipuuhasteluasi, jaan lojban-kieltä. En keksi minne muualle tämän sijoittaisin.

Olen vasta nyt, valitetavan myöhään löytänyt lojbanin, ja haluaisin mahd pian perehtyänsiihen perusteellisesti. Olenkn netistä löyytänyt erinäisiä tekstejä, mutta niiden dwnload on ollut hankalaa, kun vasta opiskelen tämän iPADin käyttämistä. Tätänykyä minulla ei myöskäään ole käytettävissä printteriä.

Tiedustelisinkib, voitko neuvoa, mistä löytäisin mahdollisimman tiiviin ja karkealla tasolla kattavan esityksen lojbanista,, ei tarvitsisi olla detaljitasoinen.

Samoin olisin kiitollinen tiedoista mahdollisista lojban-harrastelijoista, suomeksi, ruotsiksi, saksaksi, englanniksi. Onkohan lojban-aloittelijoilla mahdollisesti jonkinlaista yhteistyöttä, esim keskustelufoorumeita.

Kiittäen, orvo

Mikko Merikivi kirjoitti...

En nyt löytänyt vaikka sähköpostiosoitettasi, joten laitan vaikka tähän, vaikka se onkin selvästi varsin epäsopiva paikka tällaiselle. Ohjelmasi trainwords.py kaatui Windows 7 -alustalla Cygwin-ympäristössä ajettaessa Pythonin versiolla 2.6.7 tällaisella virheilmoituksella:

Traceback (most recent call last):
File "./trainwords.py", line 662, in
showPassKnow()
File "./trainwords.py", line 316, in showPassKnow
rep = raw_input(promt).decode("utf-8")
File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 0: invalid continuation byte

Sanalistana oli muuttamaton perussanat.lst. Vähän harmillista, sillä ohjelmassasi ei ilmeisesti ole autosavea ja menetin 503 pisteen edestä edistystä.

Mikko Merikivi kirjoitti...

Minun itseopiskeluni ainakin on ollut varsin hidasta. Tuli mieleen, että voisi olla mahdollista hoitaa opettaminen etänä vaikkapa Google+:n kautta, koska se tukee myös ruudunjakamista pelkän Voice Over the Internet Protocol:n lisäksi. Olisiko sinusta siihen?