Sensori SunSpot e la programmazione ad agenti

June 30th, 2009

Un agente è un sistema situato in un certo ambiente, capace di azioni autonome sull’ambiente per raggiungere determinati obbiettivi [Wooldridge and Jennings 1995]. Gli agenti sono un importante strumento nato nell’ambito dell’intelligenza artificiale dai quali è nato un nuovo paradigma di programmazione, naturale evoluzione di altri paradigmi di programmazione, in particolare della programmazione ad oggetti.
L’idea di programmare dei sensori utilizzando il paradigma ad agenti è molto affascinante. I miei recenti esperimenti mi hanno portato alla realizzazione di un sistema multiagente che coinvolge nella proprie decisioni dati rilevati da sensori.

I sensori utilizzati sono i famosi SunSpot, prodotti dalla Sun Microsystem. La confezione inviata dalla sun contiene due sensori sun spot e una basestation. La basestation è un particolare tipo sunspot privato della SensorBoard attraverso la quale è possibile interfacciare un host, tramite collegamento usb, alla rete di sensori. Punto di forza di questi dispositi è il fatto di essere programmabili in linnguaggio Java.
SunSpot Network
L’ installazione è stata effettuata dal sito ufficiale dei SunSpot attraverso una java web start application la quale tenta di installare una jvm, ant, netbeans 6.1 con dei moduli aggiuntivi, SunSpot sdk e lo SPOT Manager. Sotto windows ci sono stati problemi sull’emulazione delle comunicazioni radio utilizzando versioni della jvm più recenti a quella suggerita dall’installer mentre sotto linux le cose sono sembrate più tranquille. Lo SPOT Manager fornisce un’interfaccia per la gestione degli SPOT collegati e l’esecuzione dell’emulatore. Quest’ultima è risultata particolarmente instabile ed ho preferito interagire con i vari Spot attraverso riga di comando.

L’ambiente di programmazione ad agenti è stato JADE (Java Agent DEvelopment Framework). Esso è un farmework completamente scritto in Java per l’implementazione di sistemi multiagente validi rispetto alle specifiche FIPA. JADE è software Open Source ed è stato prodotto da Telecom Italia Lab, branca di Telecom Italia Group responsabile all’innovazione tecnologica.

L’Integrazione tra le due piattaforme è avvenuta scrivendo un’applicazione per la basestation ed una per i sensori. Sulla basestation viene lanciata un’istanza di Jade e per ogni sensore a distanza di rilevamento viene inizializzato un agente nel framework, oltre ad una serie di agenti d’ausilio. Gli agenti software comunicano effettuano all’occorrenza delle richieste di rilevamento dati ai sensori che rispondono in modo opportuno attraverso l’applicazione scritta.

Posted in Progetti, Programmazione | No Comments »

Operatori Aritmetici - (Prolog) Lezione 6

February 27th, 2009

Prolog è un linguaggio per il calcolo simbolico dove la necesita di eseguire calcoli aritmetici è esigua. In questa lezione vedremo come gestire le operazione aritmetiche.
I principali operatori aritmetici di Prolog sono:

  • +, addizione
  • -, sottrazione
  • *, moltiplicazione
  • /, divisione
  • mod, resto della divisione

L’uso di tali operatori non è diretto. Infatti scrivendo

?- X = 1 + 2.

Prolog risponderà “X = 1 + 2″ e non “X = 3″ come qualcuno potrebe aspettarsi. Ciò avviene perchè la stringa “1 + 2″ in prolog coincide con un termine dove + è il funtore ed 1 e 2 i suoi argomenti. Per eseguire l’operazione aritmetica c’è bisogno di usare l’operatore speciale is come segue:
Read the rest of this entry »

Posted in Programmazione, Tutorial | No Comments »

Liste in Prolog - (Prolog) Lezione 5

January 24th, 2009

Le liste sono strutture dati tanto semplici quanto usate. In questa lezione vedremo come usarle in Prolog. Una lista è una sequenza di elementi e, come visto anche nella lezione precedente, può essere scritta in Prolog utilizzando il funtore ‘.’ oppure usando la notazione con parentesi quadre. Quest’ultima è la notazione più comoda e sarà l’unica ad essere trattata in questa lezione. Una lista può essere scritta nel seguente modo:

[item1, item2, item3, item4]

Read the rest of this entry »

Posted in Programmazione, Tutorial | No Comments »

Tipi di dato in Prolog - (Prolog) Lezione 4

December 12th, 2008

Nella prima lezione sono stati distinti gli atomi dalle variabili, tale distinzione è stata usata in tutte le lezioni successive. Vediamo adesso in dettaglio i tipi di dato utilizzabili in prolog.

                         Dato
                          /\
                         /  \
               OggettoBase  Termini Composti
                     /\
                    /  \
             Costanti  Variabili
                  /\
                 /  \
            Atomi  Numeri

I dati in prolog si dividono in termini composti e dati basilari, questi ultimi si dividono in varibili e costanti.
Read the rest of this entry »

Posted in Programmazione, Tutorial | No Comments »

Next Page »