Questa pagina riporta le F.A.Q. aggiornate al 30-09-2005 prese dal sito ufficiale di I-Droid01

INDICE DELLE F.A.Q.  (30-09-2005)
#Domande generali
#Comunicazione e interfacciamento
#Hardware
#Software
#Interazioni con l'ambiente e l'utente
 
#DOMANDE GENERALI
1. Allo scaricamento delle batterie I-Droid01 avvertirà l'utente? E' prevista una base per la ricarica delle batterie alla quale il robot può recarsi autonomamente per ricaricarsi?

I-Droid01 monitora e segnala lo stato delle batterie. Sono previsti due jack per la ricarica. Allo stato attuale non è prevista una base per la ricarica autonoma del robot.

2. Ogni quante uscite I-Droid01 sarà funzionante, almeno a blocchi?

Alla fine di ciascuna delle nove fasi riportate nel piano generale dell'opera, allegato alla prima uscita.

3. Le frasi pronunciate da I-Droid01 sono modificabili dall'utente?

Le frasi di I-Droid01 non sono al momento modificabili. Attualmente comprendono i numeri da 0 a 40 e molte frasi utilizzate nell'interazione con l'utente e per esprimere il proprio stato emotivo.

4. I-Droid01 avrà uno switch on/off?

Ovviamente sì.

5. Sarà possibile cambiare il tono della voce di I-Droid01?

No.

6. I programmi utilizzati per programmare I-Droid01 saranno in italiano?

Certamente, sì.

7. Come si accende e si spegne il robot?

Tramite un interruttore posto sul marsupio.

8. I-Droid01, una volta acceso, che fa? Sta fermo o da segni di "autonomia" nel comportamento?

In generale, una volta acceso il robot è in attesa di comandi da parte dell'utente e alcuni dei comportamenti di base, come ad esempio evitare gli ostacoli o l'inseguimento dei suoni o delle persone, sono attivi. Il robot è inoltre sotto il controllo del suo sistema emotivo, per cui, in mancanza di comandi da parte dell'utente, agisce in modo autonomo in funzione di quest'ultimo.

9. Se tolgo le pile o si scaricano, perde tutta la memoria o cosa?

No, non perde la memoria.

10. Allo scaricamento delle batterie I-Droid01 avvertirà l'utente? E' prevista una base per la ricarica delle batterie alla quale il robot può recarsi autonomamente per ricaricarsi?

I-Droid01 monitora e segnala lo stato delle batterie. Sono previsti due jack per la ricarica. Allo stato attuale non è prevista una base per la ricarica autonoma del robot.

11. Cosa sono i gradi di libertà non attuati? Un esempio?

Il gomito di I-D01 non è "motorizzato" ma la sua posizione può essere variata manualmente.

12. Con "flessione/estensione gomito non attuato, con frizione" significa che l'angolo del gomito sarà impostabile a mano dall'utente, ma sarà privo di motricità propria?

Esatto.

13. L'angolo di movimento della testa quanto sarà? (sia quello orizzontale rispetto alla direzione del corpo, sia quello verticale)

Orizzontale circa 180°, verticale circa 40°.

14. La modifica dell'altezza data dal movimento dell'anca di quanto sarà? (in mm)

Circa 50mm.

 

#COMUNICAZIONE E INTERFACCIAMENTO
TORNA ALL'INDICE
15. Con il cellulare si potrà solamente comandare i movimenti del robot e vedere cosa inquadra la CMOS o che altro? Che altre informazioni arriveranno al cellulare? Sembra livello della batteria e temperatura, giusto? Altro?

Con il cellulare si potranno non solo comandare i movimenti del robot ma anche attivare/disattivare comportamenti, accendere/spegnere i led, far pronunciare e registrare i messaggi. Attualmente, le informazioni che arrivano al cellulare sono temperatura, livello delle batterie e stato delle luci di posizione.

16. Si potranno realizzare dei midlet più complessi per fare interagire il robot col cellulare?

Verrà rilasciata una libreria Java (J2ME) per telefoni cellulari.

17. Un cellulare vicino a I-Droid01... può arrecargli danno o disturbo?

No.

18. I-Droid01 Può fotografare e immagazzinare in memoria o trasferire le immagini su PC o su cellulare tramite Bluetooth?

Si, I-Droid01 può scattare fotografie fino ad esaurimento della memoria disponibile. Le immagini "live" acquisite dalla telecamera vengono inviate tramite Bluetooth al telefono cellulare o al PC remoto dove è installato il software di I-Droid01. Le foto memorizzate possono essere trasferite sul PC tramite collegamento USB, come avviene per una normale fotocamera digitale.

19. Quali caratteristiche hardware e software deve avere un cellulare per poter comandare I-Droid01? Quali sono i modelli in commercio adeguati?

I-Droid01 può essere controllato dalla maggior parte dei telefoni cellulari e palmari Bluetooth-compatibili e da qualsiasi dispositivo che supporti J2ME con MIDP 2.0, oppure MIDP 1.0 + JSR-135 (Mobile Media API), e JSR-82 (Java API per dispositivi Bluetooth). Per un lista aggiornata dei prodotti Bluetooth consultare il sito internet: http://www.bluetooth.com/products/

20. Sarebbe possibile usare I-Droid01 come vivavoce bluetooth per il cellulare?

No.

21. Sarà possibile passare dalla Classe 2 (10m) alla Classe 1 (100m) Bluetooth?

Al momento tale passaggio non è previsto. Comunque è importante ricordare che le Classi Bluetooth non specificano una distanza minima o massima, ma si riferiscono alla potenza del trasmettitore. I valori di distanza massima che vengono spesso riportati sono solamente una stima. L'effettiva distanza coperta e la qualità del collegamento dipendono da molti fattori, tra cui la presenza di ostacoli o disturbi elettromagnetici e il dispositivo utilizzato come controparte nella connessione. Nella pratica un collegamento tra due dispositivi Classe 2 in campo aperto può arrivare anche a una trentina di metri.

22. Sarà possibile interfacciare I-Droid01 ad una "penna" USB o un hard disk esterno USB o Firewire?

Non ci sono porte Firewire su I-Droid01. La porta USB è utilizzabile in modalità "device" e non "host", quindi non può accogliere dispositivi di massa esterni. Al contrario, parte della memoria interna sarà visibile tramite USB proprio come dispositivo di massa, attualmente pensato per scaricare le foto scattate da I-Droid01 sul PC e aggiornamenti del firmware.

23. E' vero che si può "accedere alle sue funzioni attraverso Internet"? Come avviene il collegamento ad Internet? Il robot può accogliere una scheda wireless con cui collegarsi ad un router Wi-Fi e ad un modem ADSL?

I-Droid01, grazie all'apposito modulo, è collegato via Bluetooth ad un PC su cui è installato l'applicativo per il controllo remoto del robot . Il robot può essere comandato via internet tramite la connessione ad internet del PC, qualunque essa sia purché consenta il collegamento al PC, e quindi ad I-Droid01, dall'esterno. Non è previsto l'uso di schede Wi-Fi a bordo del robot.

 

#HARDWARE
TORNA ALL'INDICE
24. Quale architettura di processore è stata utilizzata?

I-Droid01 possiede un'intelligenza distribuita su vari moduli, ciascuno dei quali dotato di un certo grado di indipendenza che consentirà di sperimentare le capacità del robot via via che queste saranno rese disponibili. Il "cervello", quello capace di comandare tutto il robot e di elaborare le immagini del suo "occhio" digitale, ma in un certo senso anche il "cuore" di I-Droid01, in quanto responsabile dell'evoluzione emotiva del robot, avrà un processore Freescale i.MXL a 150 MHz molto potente, sul quale girerà Linux embedded. I vari moduli utilizzano interfacce seriali per comunicare tra loro: UART per collegamenti tra due sole schede, I2C fra i moduli principali.

25. Di quanta memoria dispone I-Droid01? Che tipo di memoria? Sarà espandibile? Quanta di essa rimarrà libera?

I numeri più appariscenti sono senz'altro le quantità di memoria SDRAM e Flash del modulo "Brain & Vision" (16 MB + 16 MB), ma anche il modulo "Voice" ha 1 MB di memoria Flash e ciascun altro modulo ha la sua indispensabile dotazione di memoria. Almeno per adesso, però, non sarà possibile espandere la memoria interna. Riguardo all'occupazione della memoria, circa il 50% di essa rimarrà libera per le foto o gli applicativi scritti e gestiti dall'utente.

26. E' possibile collegarsi ad I-Droid01 in altro modo oltre che con Bluetooth? E' prevista un'uscita standard (es. USB) per poter collegare altre periferiche?

Sono previste una porta seriale standard RS-232 e una porta USB. Entrambe sono utilizzate per scaricare il firmware del modulo "Brain & Vision". La porta RS-232 potrà essere usata per collegare altri dispositivi, mentre la porta USB verrà usata per accedere da PC alle foto memorizzate da I-Droid01.

27. Le schede che compongono I-Droid01 sono in tecnologia SMD?

Sì, a 2, 4 e 6 layer.

28. I dati provenienti dai sensori, microfoni, cmos... arrivano in tempo reale?

I dati acquisiti dai sensori sono aggiornati circa 10 volte al secondo. Se vi chiedete se siano sufficienti, c'è da considerare la velocità dei movimenti di I-Droid01 e la velocità con cui variano le grandezze o i fenomeni misurati dai suoi sensori; quindi 10 Hz sono più che sufficienti. Temperatura e livello di carica delle batterie variano molto lentamente. Analogamente sarebbe difficile schioccare le dita o accarezzare I-Droid01 con un ritmo tale da richiedere 100 Hz o addirittura 1000 Hz. Lo stato dei sensori può comunque essere letto su richiesta, sebbene la massima frequenza di aggiornamento sia limitata dal tipo di sensore, dal modulo che lo ospita e lo gestisce, e dall'effettivo traffico sul bus interno. In ogni caso, per tutti questi motivi, 10 Hz ci sono sembrati appropriati.

29. Non sarà proprio espandibile la memoria? O ci sarà qualche speranza? Si è parlato dell'utilità di aggiungere un reader/writer di SD/MMC da sfruttare a mo' di hard disk/memoria aggiuntiva. Sarebbe possibile aggiungerlo al progetto prima del completamento? (una fessura apposita in cui mettere la card non dovrebbe essere un problema insormontabile, no?) Se no, e dopo?

Stiamo valutando la fattibilità di questa richiesta.

30. Quale è la portata dei sensori a ultrasuoni? a che distanza percepisce un ostacolo e in che angolo rispetto alla direzione?

La portata di funzionamento degli ultrasuoni va da 15cm a 100cm circa.

31. Sarà possibile, in futuro, sostituire uno o più moduli con altri più performanti?

C'è questa possibilità.

 

#SOFTWARE
TORNA ALL'INDICE
32. Quale versione di Linux è stata utilizzata? Per sistemi embedded? Vostro adattamento ad hoc? E sul linguaggio e soprattutto sull'SDK?

I-Droid01, o meglio il suo modulo "Brain & Vision", avrà un kernel Linux 2.4 con apposite patch e con vari adattamenti e modifiche ad-hoc. Non è previsto il rilascio di un SDK (kit di sviluppo) per la versione di Linux contenuta in I-Droid01. Sarà comunque possibile programmare I-Droid01 con diverse modalità, tra cui i "due potenti linguaggi" di alto livello.

33. I "due potenti linguaggi" per programmare I-Droid01 sono C e Java? Quale versione? Embedded o Real-Time?

I due linguaggi sono Java (J2SE 1.4) e un linguaggio "C-like" molto simile al C standard. Il codice Java non viene eseguito da I-Droid01 direttamente, ma informazioni ed azioni viaggiano sul collegamento Bluetooth. Il programma Java viene invece eseguito dal PC dell'utente, in quanto pensato per espandere le possibilità di programmazione oltre i limiti di I-Droid01.

34. "C-like" significa che è interpretato?

No. La sintassi del linguaggio è del tutto analoga a quella del C, ma con alcune aggiunte che rendono l'interazione con I-Droid01 più semplice e alla portata di tutti, anche di chi si cimenta con la programmazione per la prima volta. Sarà anche disponibile un editor visuale che consentirà di  programmare I-Droid01 costruendo degli schemi a blocchi molto simili ai più noti "diagrammi di flusso". La rappresentazione grafica viene internamente convertita in linguaggio "C-like" e trasferita sul robot, dove viene compilata ed eseguita.

35. Perchè non utilizzare come sistema di sviluppo direttamente Linux con Gcc e Glib nelle stesse versioni presenti a bordo del robot?

Non tutti gli utenti sono in grado di effettuare tali operazioni. Per i principianti è anche prevista una modalità di programmazione visuale che non richiede conoscenze così specifiche. I programmi scritti in questa modalità o direttamente in linguaggio "C-like" vengono compilati in modo nativo, ma completamente trasparente per l'utente, che non deve gestire la complessità di questo procedimento. Per chiarezza, e a beneficio dei più esperti, il compilatore attualmente utilizzato internamente non è GCC ma TinyCC.

36. Sarà tutto "open source"?

Tutti i componenti basati su software "open source", verranno rilasciati in forma sorgente secondo quanto previsto dalla licenza che li accompagna. Questi comprendono il kernel, il bootloader e il compilatore. Per quanto riguarda il codice applicativo, esso è ovviamente proprietario e non è attualmente previsto un suo rilascio totale o parziale in forma sorgente.

37. Per Java occorrerà una Virtual Machine, con conseguente rallentamento delle prestazioni?

I programmi scritti in Java vanno compilati con un'apposita libreria, che sarà rilasciata insieme al software di I-Droid01, e vengono eseguiti sul PC dell'utente e non direttamente a bordo del robot. La libreria Java permette di comunicare via Bluetooth con il robot per inviare comandi e leggere lo stato dei sensori. Le prestazioni dei programmi scritti in Java dipendono quindi dalle prestazioni del PC sul quale è installata la Virtual Machine.

38. Come si integra la programmazione via breadboard con quella in C/Java?

La breadboard prevede 6 input/output digitali (3+3 inizialmente) e 2 input analogici, più il bus I2C. Le primitive "C-like" e le librerie Java per la programmazione del robot mettono a disposizione le funzioni per l'accesso a tali connessioni. Praticamente ogni cosa che I-Droid01 può fare in modo interattivo, può essere richiamata da programma.

39. Quali librerie verranno utilizzate da C o Java per gestire le reti neurali?

La rete neurale è utilizzata internamente per gestire lo stato emotivo del robot. Allo stato attuale, sarà possibile quindi cambiare solo alcuni parametri della rete ma non modificarla nella sua struttura principale od utilizzarla per altri scopi.

40. Il C# e il .NET Framework sono dei linguaggi compatibili con la programmazione di I-Droid01?

Attualmente il C# e il .NET Framework, così come altri linguaggi o ambienti di programmazione, non sono direttamente supportati.

41. La rete neurale di I-Droid01 sarà sviluppabile dall'utente o sostituibile con una a propria scelta?

La rete neurale presente di I-Droid01 non è sostituibile con un'altra rete. E' possibile comunque disabilitare la rete neurale di I-Droid01 ed implementare proprie reti neurali per il controllo del robot nella modalità di programmazione avanzata in Java. (anche in questo caso, non sarà possibile implementarla in linguaggio C-like, a causa dell'eccessivo carico di calcoli che imporrebbe al modulo B&V.)

42. Il SO sarà distribuito con licenza GPL, sarà quindi possibile ricompilarlo e sostituirlo? Nel caso vi fossero problemi nell'operazione? E a riguardo del Kernel?

L'operazione di download del bootloader, kernel e rootdisk (forniti insieme al software del robot) sarà spiegata nei fascicoli, dato che dovrà essere fatta dall'utente nella prima installazione del modulo B&V. Tale modulo, infatti, verrà fornito non programmato. Alcuni driver sono linkati staticamente al kernel, altri vengono compilati come moduli. Questo non limita la possibilità di modificare o espandere il kernel, in quanto sia l'immagine del kernel che quella del rootdisk sono riprogrammabili nella flash.

43. Sarà possibile controllare anche il display montato tramite software?

Sì.

44. Si potranno sperimentare propri algoritmi che sfruttino anche la cmos ed i microfoni, come algoritmi di riconoscimento ottico/uditivo? Se sì, solo tramite java (quindi da remoto) o anche via linguaggio C-like?

Attualmente, le immagini catturate dal sensore CMOS saranno disponibili per ulteriori elaborazioni solo in Java (ed attualmente non è prevista la possibilità di effettuare la solita elaborazione in linguaggio C-like). I risultati degli algoritmi di visione già presenti sul robot, i dati relativi alla provenienza del suono e ai comandi vocali riconosciuti saranno resi disponibili in entrambi i linguaggi.

45. Le frasi che può dire non sono modificabili ne espandibili, come mai? In fondo è in grado di registrare brevi messaggi.

Le frasi che il robot può dire non sono attualmente modificabili, possono comunque essere aggiunte nuove frasi utilizzando la funzionalità per la registrazione dei messaggi.

46. Tramite il collegamento a PC, sarà possibile rendere I-Droid01 più "smart", fornendogli frasi generate dinamicamente (ad esempio da un engine AIML) e dotandolo di un software TTS?

La libreria Java con cui viene fornito I-Droid01 permette di programmare il robot utilizzando un qualunque ambiente di sviluppo per Java. I programmi scritti in Java vengono eseguiti sul PC dell'utente, sul quale è installato il software di I-Droid01. I comandi, compreso le frasi che il robot può pronunciare, vengono inviati al robot tramite Bluetooth. Anche se non direttamente previsto nel caso specifico, interfacciando un applicativo generico, come ad esempio un engine AIML, con la libreria Java o con un applicativo Java appositamente sviluppato è possibile far pronunciare al robot le parole volute, tra quelle comprese nel suo vocabolario, o fargli compiere altre azioni, compreso l'interfacciamento con dispositivi aggiuntivi, per esempio su porta seriale.

47. I-Droid01 potrà riprodurre file musicali?

Attualmente no. E' disponibile sul modulo "Brain & Vision" un'uscita analogica, pilotata in PWM e filtrata passa-basso a circa 8KHz, ma allo stato attuale non adatta alla riproduzione di brani audio.

 

#INTERAZIONI CON L'AMBIENTE E L'UTENTE
TORNA ALL'INDICE
48. I-Droid01 riconosce volti e mani, ma se uso un palloncino rosa che per colore e dimensioni sia paragonabile a un volto, lo riconosce come una faccia? E i bambini li riconosce? (hanno dimensioni più piccole)

Si, il riconoscimento di mani e volti è basato sul colore della pelle umana, per cui oggetti dello stesso colore della pelle possono essere interpretati come parti del corpo umano. Per quanto riguarda le dimensioni, non sono riconosciute aree con lo stesso colore della pelle umana di dimensioni troppo piccole o troppo grosse.

49. Rileva la presenza di oggetti colorati, in che senso? Per esempio se c'e' una palla verde per terra devo prima prenderla in mano e mostrargliela o basta che gli mostro un oggetto di colore analogo? Una volta che sa il suo obbiettivo, cioè l'oggetto colorato da cercare, cosa fa? gira per la stanza in cerca o cosa? Una volta raggiunto l'obiettivo? Nel caso vi siano una palla e un cubetto dello stesso colore ci segnala il primo che trova giusto?

Il robot insegue oggetti di colore uniforme che gli devono essere mostrati antecedentemente. Ovviamente sono previste delle soglie di tolleranza sul colore per cui il robot insegue oggetti di colore simile a quello mostrato. Il robot continua ad inseguire l'oggetto fino al raggiungimento o fino a contrordine. In caso di piu' oggetti dello stesso colore, il robot sceglie quello di dimensioni maggiori.

50. Se chiamo I-Droid01 si gira verso di me o devo per forza schioccare le dita? Quanto tempo ci mette a girarsi?

Per evitare di "confondere" il robot quando le persone che gli stanno intorno parlano fra di loro, I-Droid01 si gira solo in risposta a suoni "ben definiti" come lo schioccare delle dita o un applauso. La voce umana è filtrata appositamente. Il tempo impiegato per girarsi è di circa 2 secondi.

51. Due I-Droid01 potranno comunicare e interagire tra di loro? In che modo?

Attualmente due I-Droid01 non possono comunicare direttamente tra loro tramite collegamento Bluetooth. Possono però entrambi comunicare con un PC, ad esempio, ed è possibile scrivere una applicazione Java per PC che li faccia interagire.

52. Quale è il significato della frase "I-Droid01 impara dalle esperienze" ? la rete neurale si evolve mano mano che il droide si trova davanti a svariate situazioni?

Il sistema emotivo di I-Droid01 si basa sull'uso di una rete neurale che si evolve nel tempo in base agli input sensoriali ricevuti: le modifiche della rete neurale comportano quindi un cambiamento dello stato di umore del robot.

53. E' possibile far fare ad I-Droid01 la mappatura degli ambienti di casa per consentigli di spostarsi di stanza in stanza su richiesta? I-Droid01, appositamente programmato, può sorvegliare casa e telefonare in caso di intrusi?

Per funzionalità aggiuntive, quali la mappatura degli ambienti, la sorveglianza della casa, ecc. si può ricorrere alla programmazione del robot in Java che permette di sfruttare le funzionalità offerte dal PC sul quale è installato il software di I-Droid01. Il linguaggio C-like, assieme al proprio runtime, sono stati limitati nelle funzionalità per impedire un aumento eccessivo del carico computazionale del modulo Brain&Vision, sul quale continua a girare anche il software di controllo di I-Droid01, per questo sarà possibile effettuare queste operazioni solo mediante l'uso del Java.