NAO: Difference between revisions

From Intelligent Materials and Systems Lab

No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 28: Line 28:


[[C++| Programmeerimine: C++]]
[[C++| Programmeerimine: C++]]
[[Simulatsioonitarkvara| Simulatsioonitarkvara]]


====Operatsioonisüsteemide tugi====
====Operatsioonisüsteemide tugi====
Line 46: Line 48:
|-
|-
! Python
! Python
| Paligaldatav, töötab
| Paigaldatav, töötab
| Paligaldatav, töötab
| Paigaldatav, töötab
| Töötab
| Töötab
| Töötab
| Töötab
Line 62: Line 64:
| Töötab
| Töötab
| Ei tööta
| Ei tööta
|-
! NaoSim
| Töötab
| Töötab
| [[NaoSim Linuxis| Paigaldatav]]
| [[NaoSim Linuxis| Paigaldatav]]
|-
! Webots
| Töötab
| Töötab
| Töötab
| Töötab
|}
|}


<nowiki>* Koodi kompilleerimine kompilleerivas masinas jooksetamiseks. Kui NAOQi käib kohalikus masinas (väga piiratud kasutusvõimalused)</nowiki>
<nowiki>* Koodi kompilleerimine kompilleerivas masinas jooksetamiseks. Kui NAOQi käib kohalikus masinas (väga piiratud kasutusvõimalused)</nowiki>
<nowiki>** Koodi kompilleerimine võõrale platvormile.</nowiki>


'Ei tööta' on tabelis suhteline termin, mis tähendab, et antud platvormil ei õnnestunud funktsionaalsust tööle saada, kui see võib siiski võimalik olla. Operatsioonisüsteemi valikul arendamiseks tuleks lähtuda vajadustest, kui lähenemine on visuaalsete vahenditega ning lisaks üksikud skriptid, siis sobivad ka Windowsi süsteemid. Uute moodulite loomiseks vajalikku C++ koodi saab aga hetkel kompilleerida ainult Linuxis ning ka siin tuleks vältida 64 bitiste distributsioonide kasutamist. NAO enda juhtsüsteemiks on 32 bitine Linux AMD Genode platvormil.  
<nowiki>** Koodi kompilleerimine võõrale platvormile (NAOle).</nowiki>
 
'Ei tööta' on tabelis suhteline termin, mis tähendab, et antud platvormil ei õnnestunud funktsionaalsust tööle saada, kui see võib siiski võimalik olla. Operatsioonisüsteemi valikul arendamiseks tuleks lähtuda vajadustest, kui lähenemine on visuaalsete vahenditega ning lisaks üksikud skriptid, siis sobivad ka Windowsi süsteemid. Uute moodulite loomiseks vajalikku C++ koodi saab aga hetkel kompilleerida ainult Linuxis ning ka siin tuleks vältida 64 bitiste distributsioonide kasutamist. NAO enda juhtsüsteemiks on 32 bitine Linux AMD Genode platvormil.


===Tähelepanekuid===
===Tähelepanekuid===
Line 85: Line 100:
*'''Aku''' - Madalast aku seisust annab märku NAO kõhul olev nupp, mis hakkab aeglaselt punase valgusega vilkuma. Kriitiliselt tühjast akust annab NAO märku ka verbaalselt (öeldes "Energy"), siis selle peale ei ole mõistlik lootma jääda. Reaalses katsetuses enne kõndimise programmi alustamist oli aku tuvastatud täituvus hea (kui kõhul olevat nuppu 2 sekundit vajutada ütleb NAO peale IP ka oma aku seisu, mis oli siin "My battery is strong"), kuid eelnevalt ei olnud aku täielikult laetud vaid adapter oli vahetult enne korraks ühendatud. Sellises olukorras paar minutit peale programmi algust hakkas punane indikaator vilkuma ja kõdimine lõppes kukkumisega (NAO on disainitud oma keha kõrguselt kukkumist üle elama, mille järel käivitatakse kõndimise programmis püsti tõusmise algoritm), põhjuseks liikumisele eluliselt tähtsate mootorite ebapiisav vool. Alles natuke aega pärast püstisaamise üritust tuli sõnaline hoiatus ning automaatne süsteemi shutdown, mistõttu tuleks '''NAO tegevuste puhul alati jälgida aku indikaatorit kõhul''' ning alati '''enne kasutamist viia läbi võimalikult täielik laadimine'''.     
*'''Aku''' - Madalast aku seisust annab märku NAO kõhul olev nupp, mis hakkab aeglaselt punase valgusega vilkuma. Kriitiliselt tühjast akust annab NAO märku ka verbaalselt (öeldes "Energy"), siis selle peale ei ole mõistlik lootma jääda. Reaalses katsetuses enne kõndimise programmi alustamist oli aku tuvastatud täituvus hea (kui kõhul olevat nuppu 2 sekundit vajutada ütleb NAO peale IP ka oma aku seisu, mis oli siin "My battery is strong"), kuid eelnevalt ei olnud aku täielikult laetud vaid adapter oli vahetult enne korraks ühendatud. Sellises olukorras paar minutit peale programmi algust hakkas punane indikaator vilkuma ja kõdimine lõppes kukkumisega (NAO on disainitud oma keha kõrguselt kukkumist üle elama, mille järel käivitatakse kõndimise programmis püsti tõusmise algoritm), põhjuseks liikumisele eluliselt tähtsate mootorite ebapiisav vool. Alles natuke aega pärast püstisaamise üritust tuli sõnaline hoiatus ning automaatne süsteemi shutdown, mistõttu tuleks '''NAO tegevuste puhul alati jälgida aku indikaatorit kõhul''' ning alati '''enne kasutamist viia läbi võimalikult täielik laadimine'''.     


==Jooksvad probleemid==
==Võimalused ja piirangud==


*'''Sonarid''' - NAO kasutab kahte sonarit, mis suudavad takistusi tuvastada vahemikus 0 kuni 70 cm. Ligikaudu 15 cm on piir mille puhul saab määrata ainult takistuse olemasolu, kuid mitte selle kaugust.
===Kommunikatsioon===


Endless walk programmi töö ei olnud testimisel ootuspärane, kui robot oleks pidanud kõndima seni kuni sonariga tuvastatakse takistus, siis tulemus oli rohkem paigal tammumine, robot astus väikeseid samme suvalistes suundades. Choregraphe ploki tööd jälgides võis näha kuidas pidevalt tekitati sündmusi "SonarRightDetected" või "SonarLeftDetected" olenemata, sellest kas roboti ees oli objekt. Sellest tuli välja ka üks Choregraphega seotud viga, signaalide liikumisi skeemil näidati ainult siis kui programm käivitati olles sonari alamprogrammi ploki lahti võtnud, kõndimise programmi peaskeemilt alustades ja siis sonarit valides signaalide liikumist ekraanil ei kuvatud.
'''Bluetooth''' (Riistvara pole veel saadaval)
* Võimaldab tuvastada bluetoothiga seadmeid, kuid ühendust luua saab ainult eraldi saadaval oleva Aldebaran Bluetooth boardiga. Kasutamiseks on vaja sisestada Bluetooth key NAO peas olevasse USB pessa.
* Kasutusalad: Boardiga saab kontrollida muud elektroonikat (digitaalsed, PWM, servo, mootorite kontrollimise väljundid). Väliste sensorite ühendamine, NAO kontrolli all olevad lisaseadmed.  
http://robocup.aldebaran-robotics.com/docs/site_en/reddoc/bluetooth/bluetooth.html


Samalaadse tulemuse andis ka Pythoni skript. Kui käivitasin [[#Näiteprogramm 2 | näiteskript]] ja suunasin sonarid lakke olid loetud väärtused:
'''Infrapuna'''
* Andmevahetus otsenähtavusel. Eelseadistatav veebikeskkonna vahendusel. Soovituslik kasutuspiirkond ligikaudu 15cm NAO silmadest.
* Kasutusalad: Kahe NAO andmevahetus, IR suhtlust kasutavate seadmete kontrollimine, käskude vastuvõtmine IR puldi kaudu.
http://robocup.aldebaran-robotics.com/docs/site_en/reddoc/infrared/purpose_description.html


>>> print memory.getData("SonarMiddleDetected")
'''WiFi'''
0.264999985695
* Ühendada NAO(d), arvutid samasse kohtvõrku. Suhtlus üle SOAP liidese (kasutajale koodis nähtamatu).
>>> print memory.getData("SonarMiddleDetected")
* Kasutusalad: Mitme NAO või arvuti omavaheline moodulites deklareeritud meetodite väljakutsumine. Infovahetus, käsud. Lokaalsel arvutil simuleeritud NAO ning reaalse roboti suhtlus (sellisel juhul saab ka robot arvutist meetodeid välja kutsuda). Arvutiga NAO kontrollimine, väline andmetöötlus.
0.264999985695
* E-mail - Choregraphes. Võimaldab suvalisest mailiserveri kontost kirju vastu võtta ning saata.
>>> print memory.getData("SonarRightDetected")
* Internet - ?
0.239999994636
>>> print memory.getData("SonarRightDetected")
0.239999994636


Tagastatud ujukoma arv märgib suurima tõenäosusega tuvastatud kaugust, kuid see püsib stabiilselt vahemaal vastavalt 26, 24 cm (?). Kui suunasin sonarid takistusele, siis olid tulemused:
==Ülesandeid==
*[[NAO: Pea peal seismine| Pea peal seismine]]


>>> print memory.getData("SonarRightDetected")
==Jooksvad probleemid==
0.569999992847
>>> print memory.getData("SonarRightDetected")
0.680000007153
>>> print memory.getData("SonarRightDetected")
0.680000007153
>>> print memory.getData("SonarRightDetected")
0.579999983311


Ehk tegelikult suudetakse midagi ikka tuvastada. Kui lugeda näiteks 30 cm alapiiriks ja seda koodis arvestada võib kasutamine isegi võimalik olla (signaali stabiilsust eriti ei testinud), kuid kuna tarkvaraga kaasa tulnud programm seda ei tee ning spetsifikatsioon nii ei märgi võib olla tegemist riistvaralise probleemiga. Võimalik, et sonarite kasutamine on kuidagi sünkroonist väljas ja nad segavad üksteist.
*'''[[SonariProbleem| Sonarid]]''' - NAO kasutab kahte sonarit, mis suudavad takistusi tuvastada vahemikus 0 kuni 70 cm. Ligikaudu 15 cm on piir mille puhul saab määrata ainult takistuse olemasolu, kuid mitte selle kaugust.


==Linke==
==Linke==

Latest revision as of 18:57, 24 April 2011

Ülevaade

Nao ühendamine arvutiga

NAO käivitamine toimub kõhul oleva nupu vajutamisega (umbes neli sekundit). Protsess võib võtta aega üle minuti, selle lõppemisest annab robot verbaalselt märku ning jalgadel olevad LED tuled süttivad.

Esmane ühendus tuleb luua kaabli abil. Nao ja arvuti ühedada samasse kohtvõrkku, eeldus on, et ruuteris on võimaldatud DHCP, sest vastasel juhul ei saa Nao endale IP-d, samuti võib takistuseks osutuda mõni sisselogimissüsteem.

Kui IP saamine õnnestub ütleb NAO oma IP aadressi kui tema kõhul olevat nuppu vajutada. Navigeerides veebibrauseriga http://(NAO IP) lehele on võimalik muuta mõningaid seadeid ning näha staatuse informatsiooni. Kui ligiduses on traadita võrke peaksid need ilmuma "Networks" valiku all nähtavale. Selleks, et robotit oleks võimalik kasutada (ethernet juhe segab) on vaja nüüd ühenduda WiFi võrkku. Sobivad ka turvatud võrgud, mille jaoks küsitakse parooli. VPN võrkudesse ühenduda ei saa kuna puuduvad konfigureerimisvõimalused.

Pärast traadita ühenduse loomist tuleks meelde jätta wireless võrgust saadud IP ("Networks" kuval) ning ühendada lahti ethernet kaabel. Pärast seda kui wireless võrk on korra juba valitud saab NAO ühendada end sellega automaatselt ("Wireless" nimekirjas on võrk märgitud "favorite" = 1). Tuleks jälgida, et ka pärast traadita võrguga liitumist kuuluvad arvuti ning Nao samasse kohtvõrkku (kindlam on arvuti samuti ühendada ning kaabel eemaldada).

NaoQi

NaoQi on raamistik, mis võimaldab kasutada Nao funktsionaalsust nagu klient serveri teenuseid. NaoQi käivitatakse Nao üleslaadimisel automaatselt ning kui võrgust on saadud IP aadress on võimalik selle poolt pakutavate meetodite ja hetke tegevuste nimekirja näha brauseri aadressil http://NaoIp:9559/full, TCP port 9559 on valitud vaikimisi. Choregraphe vajab ühendust selle raamistkuga, et robotiga suhelda. NaoQi võib käivitada ka muudel masinatel peale roboti enda, näiteks Choregraphe sees on võimalik luua ühendus virtuaalse NAOga, millega saab liigutusi simuleerida.

NaoQi taaskäivitamiseks tuleb Nao veebikeskonnast valida "Advanced"->"NaoQi" ning "Restart", sama tulemuse annab NAO välja- ja sisselülitamine.

BonJour

Windows platvormil sobib seadmete nagu NAO võrgust leidmiseks (tavaliselt teised arvutid, printerid jms). Tekib ikoonina Internet Exploreri tööriistaribale.

Arendus

Visuaalprogrammeerimine: Choregraphe

Skriptid: Python

Programmeerimine: C++

Simulatsioonitarkvara

Operatsioonisüsteemide tugi

Windows XP 32 bit Windows 7 64 bit Ubuntu 10.10 32 bit Ubuntu 10.10 64 bit
Choregraphe Töötab Töötab Töötab Ei tööta
Python Paigaldatav, töötab Paigaldatav, töötab Töötab Töötab
C++, native compiling* Töötab. Vaja Microsoft Visual Studio 2005/2008 kompillaatorit ? Töötab Ei tööta
C++, cross-compiling** Ei toetata Ei toetata Töötab Ei tööta
NaoSim Töötab Töötab Paigaldatav Paigaldatav
Webots Töötab Töötab Töötab Töötab

* Koodi kompilleerimine kompilleerivas masinas jooksetamiseks. Kui NAOQi käib kohalikus masinas (väga piiratud kasutusvõimalused)

** Koodi kompilleerimine võõrale platvormile (NAOle).

'Ei tööta' on tabelis suhteline termin, mis tähendab, et antud platvormil ei õnnestunud funktsionaalsust tööle saada, kui see võib siiski võimalik olla. Operatsioonisüsteemi valikul arendamiseks tuleks lähtuda vajadustest, kui lähenemine on visuaalsete vahenditega ning lisaks üksikud skriptid, siis sobivad ka Windowsi süsteemid. Uute moodulite loomiseks vajalikku C++ koodi saab aga hetkel kompilleerida ainult Linuxis ning ka siin tuleks vältida 64 bitiste distributsioonide kasutamist. NAO enda juhtsüsteemiks on 32 bitine Linux AMD Genode platvormil.

Tähelepanekuid

  • Liikumised - Kui valida mõni eeldefineeritud poos (Predefined position paneel, nähtav läbi menüüvaliku), siis tuleks jälgida, et kõik mootorid on Enslaved olekus (üleval ribal hammasratta ikoon peab olema punane). Juhul näiteks ainult üks jalg on aktiivne ja valitakse seismise poos, siis see jalg liigub defineeritud asendisse, jättes teise vabalt liikuma, kust tekib tõenäoliselt tasakaalu kaotus.

http://robocup.aldebaran-robotics.com/docs/site_en/greendoc/choregraphe/predefined_positions.html

  • Objektide tuvastamine - NAO suudab meelde jätta talle näidatud pilte ja neid hiljem ära tunda. Choreographe sees käib see View->Video Monitor menüüvalikuga. Video aken näitab reaalajas pilti NAO kaamerast. Learn nupuga saab teha ülesvõtte ning määrata hiirega ala fotost, mida NAO peaks tundma.Kuvatakse kast informatsiooni sisestamiseks näiteks kui see oli leht raamatust, siis selle raamatu nimi, kui osa mõnest ruumist, siis selle nimi, Pärast salvestamist ja saatmist NAOle saab kasutada visuaalprogrammerimise vahedit, et luua käitumine õpitud objektide tuvastamiseks, millele vastav kast annab väljundiks varem sisestatud objekti info kui see kaamera ette satub, mille saab omakorda saata sisendiks rääkimise kastile, et NAO nähtud eseme ka välja ütleks.

http://robocup.aldebaran-robotics.com/docs/site_en/greendoc/choregraphe/video-monitor-tuto.html

  • Liigutuste salvestamine - Uuemas Choregraphe versioonis on salvestamise alustamise nupp ainukese menüüvalikuna tegumiribal, mitte ikoonina tööriistade hulgas. Salvestatud liikumine mängitakse hiljem oluliselt kiiremini maha kui see salvestati.

http://robocup.aldebaran-robotics.com/docs/site_en/greendoc/choregraphe/creating_movement_with_recording_mode.html

  • Aku - Madalast aku seisust annab märku NAO kõhul olev nupp, mis hakkab aeglaselt punase valgusega vilkuma. Kriitiliselt tühjast akust annab NAO märku ka verbaalselt (öeldes "Energy"), siis selle peale ei ole mõistlik lootma jääda. Reaalses katsetuses enne kõndimise programmi alustamist oli aku tuvastatud täituvus hea (kui kõhul olevat nuppu 2 sekundit vajutada ütleb NAO peale IP ka oma aku seisu, mis oli siin "My battery is strong"), kuid eelnevalt ei olnud aku täielikult laetud vaid adapter oli vahetult enne korraks ühendatud. Sellises olukorras paar minutit peale programmi algust hakkas punane indikaator vilkuma ja kõdimine lõppes kukkumisega (NAO on disainitud oma keha kõrguselt kukkumist üle elama, mille järel käivitatakse kõndimise programmis püsti tõusmise algoritm), põhjuseks liikumisele eluliselt tähtsate mootorite ebapiisav vool. Alles natuke aega pärast püstisaamise üritust tuli sõnaline hoiatus ning automaatne süsteemi shutdown, mistõttu tuleks NAO tegevuste puhul alati jälgida aku indikaatorit kõhul ning alati enne kasutamist viia läbi võimalikult täielik laadimine.

Võimalused ja piirangud

Kommunikatsioon

Bluetooth (Riistvara pole veel saadaval)

  • Võimaldab tuvastada bluetoothiga seadmeid, kuid ühendust luua saab ainult eraldi saadaval oleva Aldebaran Bluetooth boardiga. Kasutamiseks on vaja sisestada Bluetooth key NAO peas olevasse USB pessa.
  • Kasutusalad: Boardiga saab kontrollida muud elektroonikat (digitaalsed, PWM, servo, mootorite kontrollimise väljundid). Väliste sensorite ühendamine, NAO kontrolli all olevad lisaseadmed.

http://robocup.aldebaran-robotics.com/docs/site_en/reddoc/bluetooth/bluetooth.html

Infrapuna

  • Andmevahetus otsenähtavusel. Eelseadistatav veebikeskkonna vahendusel. Soovituslik kasutuspiirkond ligikaudu 15cm NAO silmadest.
  • Kasutusalad: Kahe NAO andmevahetus, IR suhtlust kasutavate seadmete kontrollimine, käskude vastuvõtmine IR puldi kaudu.

http://robocup.aldebaran-robotics.com/docs/site_en/reddoc/infrared/purpose_description.html

WiFi

  • Ühendada NAO(d), arvutid samasse kohtvõrku. Suhtlus üle SOAP liidese (kasutajale koodis nähtamatu).
  • Kasutusalad: Mitme NAO või arvuti omavaheline moodulites deklareeritud meetodite väljakutsumine. Infovahetus, käsud. Lokaalsel arvutil simuleeritud NAO ning reaalse roboti suhtlus (sellisel juhul saab ka robot arvutist meetodeid välja kutsuda). Arvutiga NAO kontrollimine, väline andmetöötlus.
  • E-mail - Choregraphes. Võimaldab suvalisest mailiserveri kontost kirju vastu võtta ning saata.
  • Internet - ?

Ülesandeid

Jooksvad probleemid

  • Sonarid - NAO kasutab kahte sonarit, mis suudavad takistusi tuvastada vahemikus 0 kuni 70 cm. Ligikaudu 15 cm on piir mille puhul saab määrata ainult takistuse olemasolu, kuid mitte selle kaugust.

Linke