Porting su Orocos di alcuni moduli software di Lurch

From AIRWiki
Revision as of 17:30, 22 July 2010 by AndreaRomanoni (Talk | contribs)

Jump to: navigation, search
Porting su Orocos di alcuni moduli software di Lurch
Short Description: Lo scopo del progetto è di provare a implementare alcuni moduli del software installato nell'hardware della carrozzina Lurch attraverso Orocos Real-Time Toolkit.
Coordinator: MatteoMatteucci (matteo.matteucci@polimi.it)
Tutor: SimoneCeriani (ceriani@elet.polimi.it)
Collaborator:
Students: Andrea Romanoni (andrea.romanoni@polimi.it), MichelePellegrini (michelejuventus@libero.it)
Research Area: Robotics
Research Topic:
Status: Active
Level: Ms
Type: Course
  Nel laboratorio di intelligenza artificiale del politecnico di Milano si lavora da

diversi anni sullo sviluppo di una carrozzina robot, chiamata amichevolmente “lurch”. Questa si interfaccia sia con l’utente principalmente tramite un joy- stick, sia con l’ambiente circostante attraverso dei sensori di vario genere. La carrozzina ` dotata di un sistema Linux su cui il software sviluppato fornisce le

           e

funzionalit` di evitamento ostacoli o navigazione in ambienti chiusi.

           a
   Il sistema ` progettato in un’ottica di scalabilit`, attraverso la program-
               e                                        a

mazione ad agenti. Ogni agente rappresenta un’entit` concettuale differente e

                                                         a

dialoga con gli altri attraverso lo scambio di messaggi con un pattern publish subscribe. Per esempio, un agente si occupa di trattare gli input del joystick che arrivano dalla porta seriale; traduce questo input in modo che si a comprensibile agli altri agenti che ne sono interessati e permette di inviare dei comandi per muovere le ruote della carrozzina.

   Nell’attuale implementazione del software sono presenti alcuni problemi che

hanno fatto pensare alla possibilit` di sfruttare alcuni strumenti esistenti per

                                    a

riuscire a concentrare maggiormente l’attenzione sugli aspetti funzionali rispetto ai dettagli implementativi. Il problema principale da affrontare ` rendere real-

                                                                    e

time il sistema che ancora non lo `. Il software Orocos (Open RObot Control

                                    e

Software) offre validi stumenti per implementare il controllo del robot in un ambiente real-time e per superare alcuni problemi di concorrenza tra thread.

   Orocos ` un progetto open source che permette di sviluppare un software
            e

per il controllo di robot che sia modulare, ben documentato e utilizzabile sia in ambiente real time che non. La modularit` deriva dal fatto che il controllo

                                                a

del robot viene controllato attraverso i componenti. Questi ultimi sono parti di software che modellano entit` concettuali differenti che dialogano attraverso

                                 a

mezzi forniti da Orocos (Port, Dataflow, Command, Method) che permettono di risolvere problemi di concorrenza. La documentazione ` un altro aspetto a

                                                              e

cui prestare attenzione dato che il software di questa carrozzina viene utilizzato da molte persone; Orocos aiuta in questo compito perche per come ` stato e implementato, ogni parte del componente deve essere accompagnata da una stringa di descrizione.

   Risulta chiaro quindi come nella nostra applicazione possiamo utilizzare i

componenti Orocos per implementare gli agenti che prima dialogavano tra loro attraverso il pattern publish subscribe. In particolare il nostro compito ` quello

                                                                            e

di scrivere attraverso orocos gli agenti joystick, brian e odo. Il primo si occupa

                                         1

della comunicazione del software con l’interfaccia seriale dalla quale arrivano in input i segnali di comando del joystick e in output i comandi da inviare alla carrozzina. L’agente brian ` il fulcro del software della carrozzina perch`

                                e                                              e

si occupa di elaborare i dati ricevuti dai sensori esterni e dal joystick per poi inviare i comandi opportuni. Infine l’agente odo si prende a carico gli aspetti legati all’odometria del robot, utili per prendere decisioni di path planning da parte di brian.