4 resultados para C programming languages
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
Resumo:
La crescente disponibilità di dispositivi meccanici e -soprattutto - elettronici le cui performance aumentano mentre il loro costo diminuisce, ha permesso al campo della robotica di compiere notevoli progressi. Tali progressi non sono stati fatti unicamente per ciò che riguarda la robotica per uso industriale, nelle catene di montaggio per esempio, ma anche per quella branca della robotica che comprende i robot autonomi domestici. Questi sistemi autonomi stanno diventando, per i suddetti motivi, sempre più pervasivi, ovvero sono immersi nello stesso ambiente nel quale vivono gli essere umani, e interagiscono con questi in maniera proattiva. Essi stanno compiendo quindi lo stesso percorso che hanno attraversato i personal computer all'incirca 30 anni fa, passando dall'essere costosi ed ingombranti mainframe a disposizione unicamente di enti di ricerca ed università, ad essere presenti all'interno di ogni abitazione, per un utilizzo non solo professionale ma anche di assistenza alle attività quotidiane o anche di intrattenimento. Per questi motivi la robotica è un campo dell'Information Technology che interessa sempre più tutti i tipi di programmatori software. Questa tesi analizza per prima cosa gli aspetti salienti della programmazione di controllori per robot autonomi (ovvero senza essere guidati da un utente), quindi, come l'approccio basato su agenti sia appropriato per la programmazione di questi sistemi. In particolare si mostrerà come un approccio ad agenti, utilizzando il linguaggio di programmazione Jason e quindi l'architettura BDI, sia una scelta significativa, dal momento che il modello sottostante a questo tipo di linguaggio è basato sul ragionamento pratico degli esseri umani (Human Practical Reasoning) e quindi è adatto alla implementazione di sistemi che agiscono in maniera autonoma. Dato che le possibilità di utilizzare un vero e proprio sistema autonomo per poter testare i controllori sono ridotte, per motivi pratici, economici e temporali, mostreremo come è facile e performante arrivare in maniera rapida ad un primo prototipo del robot tramite l'utilizzo del simulatore commerciale Webots. Il contributo portato da questa tesi include la possibilità di poter programmare un robot in maniera modulare e rapida per mezzo di poche linee di codice, in modo tale che l'aumento delle funzionalità di questo risulti un collo di bottiglia, come si verifica nella programmazione di questi sistemi tramite i classici linguaggi di programmazione imperativi. L'organizzazione di questa tesi prevede un capitolo di background nel quale vengono riportare le basi della robotica, della sua programmazione e degli strumenti atti allo scopo, un capitolo che riporta le nozioni di programmazione ad agenti, tramite il linguaggio Jason -quindi l'architettura BDI - e perché tale approccio è adatto alla programmazione di sistemi di controllo per la robotica. Successivamente viene presentata quella che è la struttura completa del nostro ambiente di lavoro software che comprende l'ambiente ad agenti e il simulatore, quindi nel successivo capitolo vengono mostrate quelle che sono le esplorazioni effettuate utilizzando Jason e un approccio classico (per mezzo di linguaggi classici), attraverso diversi casi di studio di crescente complessità; dopodiché, verrà effettuata una valutazione tra i due approcci analizzando i problemi e i vantaggi che comportano questi. Infine, la tesi terminerà con un capitolo di conclusioni e di riflessioni sulle possibili estensioni e lavori futuri.
Resumo:
After almost 10 years from “The Free Lunch Is Over” article, where the need to parallelize programs started to be a real and mainstream issue, a lot of stuffs did happened: • Processor manufacturers are reaching the physical limits with most of their approaches to boosting CPU performance, and are instead turning to hyperthreading and multicore architectures; • Applications are increasingly need to support concurrency; • Programming languages and systems are increasingly forced to deal well with concurrency. This thesis is an attempt to propose an overview of a paradigm that aims to properly abstract the problem of propagating data changes: Reactive Programming (RP). This paradigm proposes an asynchronous non-blocking approach to concurrency and computations, abstracting from the low-level concurrency mechanisms.
Resumo:
La presente tesi si pone come obiettivo quello di analizzare il protocollo LTP (in particolare in ION) e proporre dei miglioramenti utili al caso in cui siano presenti perdite elevate. Piu in dettaglio, una prima parte introduttiva motiva l'inefficacia del TCP/IP in ambito interplanetario e introduce l'architettura DTN Bundle Protocol (Cap.1). La tesi prosegue con la descrizione delle specifiche del protocollo LTP (Cap.2), in particolar modo evidenziando come un bundle venga incapsulato in un blocco LTP, come questo sia successivamente diviso in tanti segmenti LTP e come questi vengano successivamente inviati con il protocollo UDP o con un protocollo analogo. Viene quindi presentata un'approfondita analisi delle penalizzazioni dovute alle perdite dei segmenti LTP, sia di tipo dati che di segnalazione (Cap. 3). Quest'analisi permette di dimostrare la criticita degli effetti delle perdite, in particolare per quello che riguarda i segmenti LTP di segnalazione. Mentre in presenza di perdite basse tali effetti hanno in media un impatto minimo sul tempo di consegna di un blocco LTP (quindi del bundle in esso contenuto), in quanto avvengono raramente, in presenza di perdite elevate rappresentano un collo di bottiglia per il tempo di consegna di un blocco LTP. A tal proposito sono state proposte alcune modifiche che permettono di migliorare le prestazioni di LTP (Cap. 4) compatibilmente con le specifiche RFC in modo da garantire l'interoperabilita con le diverse implementazioni del protocollo. Successivamente nel Cap. 5 viene mostrato come sono state implementate le modifiche proposte in ION 3.4.1. Nel capitolo finale (Cap. 6) sono presenti i risultati numerici relativi ad alcuni test preliminari eseguiti confrontando la versione originale del protocollo con le versioni modificate contenenti i miglioramenti proposti. I test sono risultati molto positivi per elevate perdite, confermando cosi la validita dell'analisi e dei miglioramenti introdotti.
Resumo:
Questa tesi ha come obiettivo la sperimentazione del nuovo sistema operativo Windows 10 IoT Core su tecnologia Raspberry Pi 2, verificandone la compatibilita con alcuni sensori in commercio. Tale studio viene poi applicato in un contesto di Home Intelligence al fine di creare un agente per la gestione di luci LED, in prospettiva della sua integrazione nel sistema prototipale Home Manager.