Porting su Orocos di alcuni moduli software di Lurch
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 joystick, 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 funzionalità di evitamento ostacoli o navigazione in ambienti chiusi. Il sistema è progettato in un’ottica di scalabilità, attraverso la programmazione ad agenti. Ogni agente rappresenta un’entit` concettuale differente e 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 riuscire a concentrare maggiormente l’attenzione sugli aspetti funzionali rispetto ai dettagli implementativi. Il problema principale da affrontare ` rendere real-time il sistema che ancora non lo `. Il software Orocos (Open RObot Control 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 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 del robot viene controllato attraverso i componenti. Questi ultimi sono parti di software che modellano entità concettuali differenti che dialogano attraverso mezzi forniti da Orocos (Port, Dataflow, Command, Method) che permettono di risolvere problemi di concorrenza. La documentazione un altro aspetto a cui prestare attenzione dato che il software di questa carrozzina viene utilizzato da molte persone; Orocos aiuta in questo compito perche per come è stato 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 di scrivere attraverso orocos gli agenti joystick, brian e odo. Il primo si occupa 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è 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.