142 research outputs found

    Implementation of a Scale Semi-Autonomous Platoon to Test Control Theory Attacks

    Get PDF
    With all the advancements in autonomous and connected cars, there is a developing body of research around the security and robustness of driving automation systems. Attacks and mitigations for said attacks have been explored, but almost always solely in software simulations. For this thesis, I led a team to build the foundation for an open source platoon of scale semi-autonomous vehicles. This work will enable future research into implementing theoretical attacks and mitigations. Our 1/10 scale car leverages an Nvidia Jetson, embedded microcontroller, and sensors. The Jetson manages the computer vision, networking, control logic, and overall system control; the embedded microcontroller directly controls the car. A lidar module is responsible for recording distance to the preceding car, and an inertial measurement unit records the velocity of the car itself. I wrote the software for the networking, interprocess, and serial communications, as well as the control logic and system control

    Classification and Management of Computational Resources of Robotic Swarms and the Overcoming of their Constraints

    Get PDF
    Swarm robotics is a relatively new and multidisciplinary research field with many potential applications (e.g., collective exploration or precision agriculture). Nevertheless, it has not been able to transition from the academic environment to the real world. While there are many potential reasons, one reason is that many robots are designed to be relatively simple, which often results in reduced communication and computation capabilities. However, the investigation of such limitations has largely been overlooked. This thesis looks into one such constraint, the computational constraint of swarm robots (i.e., swarm robotics platform). To achieve this, this work first proposes a computational index that quantifies computational resources. Based on the computational index, a quantitative study of 5273 devices shows that swarm robots provide fewer resources than many other robots or devices. In the next step, an operating system with a novel dual-execution model is proposed, and it has been shown that it outperforms the two other robotic system software. Moreover, results show that the choice of system software determines the computational overhead and, therefore, how many resources are available to robotic software. As communication can be a key aspect of a robot's behaviour, this work demonstrates the modelling, implementing, and studying of an optical communication system with a novel dynamic detector. Its detector improves the quality of service by orders of magnitude (i.e., makes the communication more reliable). In addition, this work investigates general communication properties, such as scalability or the effects of mobility, and provides recommendations for the use of such optical communication systems for swarm robotics. Finally, an approach is shown by which computational constraints of individual robots can be overcome by distributing data and processing across multiple robots

    Co-simulation techniques based on virtual platforms for SoC design and verification in power electronics applications

    Get PDF
    En las últimas décadas, la inversión en el ámbito energético ha aumentado considerablemente. Actualmente, existen numerosas empresas que están desarrollando equipos como convertidores de potencia o máquinas eléctricas con sistemas de control de última generación. La tendencia actual es usar System-on-chips y Field Programmable Gate Arrays para implementar todo el sistema de control. Estos dispositivos facilitan el uso de algoritmos de control más complejos y eficientes, mejorando la eficiencia de los equipos y habilitando la integración de los sistemas renovables en la red eléctrica. Sin embargo, la complejidad de los sistemas de control también ha aumentado considerablemente y con ello la dificultad de su verificación. Los sistemas Hardware-in-the-loop (HIL) se han presentado como una solución para la verificación no destructiva de los equipos energéticos, evitando accidentes y pruebas de alto coste en bancos de ensayo. Los sistemas HIL simulan en tiempo real el comportamiento de la planta de potencia y su interfaz para realizar las pruebas con la placa de control en un entorno seguro. Esta tesis se centra en mejorar el proceso de verificación de los sistemas de control en aplicaciones de electrónica potencia. La contribución general es proporcionar una alternativa a al uso de los HIL para la verificación del hardware/software de la tarjeta de control. La alternativa se basa en la técnica de Software-in-the-loop (SIL) y trata de superar o abordar las limitaciones encontradas hasta la fecha en el SIL. Para mejorar las cualidades de SIL se ha desarrollado una herramienta software denominada COSIL que permite co-simular la implementación e integración final del sistema de control, sea software (CPU), hardware (FPGA) o una mezcla de software y hardware, al mismo tiempo que su interacción con la planta de potencia. Dicha plataforma puede trabajar en múltiples niveles de abstracción e incluye soporte para realizar co-simulación mixtas en distintos lenguajes como C o VHDL. A lo largo de la tesis se hace hincapié en mejorar una de las limitaciones de SIL, su baja velocidad de simulación. Se proponen diferentes soluciones como el uso de emuladores software, distintos niveles de abstracción del software y hardware, o relojes locales en los módulos de la FPGA. En especial se aporta un mecanismo de sincronizaron externa para el emulador software QEMU habilitando su emulación multi-core. Esta aportación habilita el uso de QEMU en plataformas virtuales de co-simulacion como COSIL. Toda la plataforma COSIL, incluido el uso de QEMU, se ha analizado bajo diferentes tipos de aplicaciones y bajo un proyecto industrial real. Su uso ha sido crítico para desarrollar y verificar el software y hardware del sistema de control de un convertidor de 400 kVA

    Doctor of Philosophy

    Get PDF
    dissertationAs the base of the software stack, system-level software is expected to provide ecient and scalable storage, communication, security and resource management functionalities. However, there are many computationally expensive functionalities at the system level, such as encryption, packet inspection, and error correction. All of these require substantial computing power. What's more, today's application workloads have entered gigabyte and terabyte scales, which demand even more computing power. To solve the rapidly increased computing power demand at the system level, this dissertation proposes using parallel graphics pro- cessing units (GPUs) in system software. GPUs excel at parallel computing, and also have a much faster development trend in parallel performance than central processing units (CPUs). However, system-level software has been originally designed to be latency-oriented. GPUs are designed for long-running computation and large-scale data processing, which are throughput-oriented. Such mismatch makes it dicult to t the system-level software with the GPUs. This dissertation presents generic principles of system-level GPU computing developed during the process of creating our two general frameworks for integrating GPU computing in storage and network packet processing. The principles are generic design techniques and abstractions to deal with common system-level GPU computing challenges. Those principles have been evaluated in concrete cases including storage and network packet processing applications that have been augmented with GPU computing. The signicant performance improvement found in the evaluation shows the eectiveness and eciency of the proposed techniques and abstractions. This dissertation also presents a literature survey of the relatively young system-level GPU computing area, to introduce the state of the art in both applications and techniques, and also their future potentials

    The design and application of an extensible operating system

    Get PDF
    Tanenbaum, A.S. [Promotor

    Context aware Sensor Networks

    Get PDF

    Service Oriented Mobile Computing

    Get PDF
    La diffusione di concetti quali Pervasive e Mobile Computing introduce nell'ambito dei sistemi distribuiti due aspetti fondamentali: la mobilità dell'utente e l'interazione con l'ambiente circostante, favorite anche dal crescente utilizzo di dispositivi mobili dotati di connettività wireless come prodotti di consumo. Per estendere le funzionalità introdotte nell'ambito dei sistemi distribuiti dalle Architetture Orientate ai Servizi (SOA) e dal paradigma peer-to-peer anche a dispositivi dalle risorse limitate (in termini di capacità computazionale, memoria e batteria), è necessario disporre di un middleware leggero e progettato tenendo in considerazione tali caratteristiche. In questa tesi viene presentato NAM (Networked Autonomic Machine), un formalismo che descrive in modo esaustivo un sistema di questo tipo; si tratta di un modello teorico per la definizione di entità hardware e software in grado di condividere le proprie risorse in modo completamente altruistico. In particolare, il lavoro si concentra sulla definizione e gestione di un determinato tipo di risorse, i servizi, che possono essere offerti ed utilizzati da dispositivi mobili, mediante meccanismi di composizione e migrazione. NSAM (Networked Service-oriented Autonomic Machine) è una specializzazione di NAM per la condivisione di servizi in una rete peer-to-peer, ed è basato su tre concetti fondamentali: schemi di overlay, composizione dinamica di servizi e auto-configurazione dei peer. Nella tesi vengono presentate anche diverse attività applicative, che fanno riferimento all'utilizzo di due middleware sviluppati dal gruppo di Sistemi Distribuiti (DSG) dell'Università di Parma: SP2A (Service Oriented Peer-to-peer Architecture), framework per lo sviluppo di applicazioni distribuite attraverso la condivisione di risorse in una rete peer-to-peer, e Jxta-Soap che consente la condivisione di Web Services in una rete peer-to-peer JXTA. Le applicazioni realizzate spaziano dall'ambito della logistica, alla creazione di comunità per l'e-learning, all'Ambient Intelligence alla gestione delle emergenze, ed hanno come denominatore comune la creazione di reti eterogenee e la condivisione di risorse anche tra dispositivi mobili. Viene inoltre messo in evidenza come tali applicazioni possano essere ottimizzate mediante l'introduzione del framework NAM descritto, per consentire la condivisione di diversi tipi di risorse in modo efficiente e proattivo

    Advancing Operating Systems via Aspect-Oriented Programming

    Get PDF
    Operating system kernels are among the most complex pieces of software in existence to- day. Maintaining the kernel code and developing new functionality is increasingly compli- cated, since the amount of required features has risen significantly, leading to side ef fects that can be introduced inadvertedly by changing a piece of code that belongs to a completely dif ferent context. Software developers try to modularize their code base into separate functional units. Some of the functionality or “concerns” required in a kernel, however, does not fit into the given modularization structure; this code may then be spread over the code base and its implementation tangled with code implementing dif ferent concerns. These so-called “crosscutting concerns” are especially dif ficult to handle since a change in a crosscutting concern implies that all relevant locations spread throughout the code base have to be modified. Aspect-Oriented Software Development (AOSD) is an approach to handle crosscutting concerns by factoring them out into separate modules. The “advice” code contained in these modules is woven into the original code base according to a pointcut description, a set of interaction points (joinpoints) with the code base. To be used in operating systems, AOSD requires tool support for the prevalent procedu- ral programming style as well as support for weaving aspects. Many interactions in kernel code are dynamic, so in order to implement non-static behavior and improve performance, a dynamic weaver that deploys and undeploys aspects at system runtime is required. This thesis presents an extension of the “C” programming language to support AOSD. Based on this, two dynamic weaving toolkits – TOSKANA and TOSKANA-VM – are presented to permit dynamic aspect weaving in the monolithic NetBSD kernel as well as in a virtual- machine and microkernel-based Linux kernel running on top of L4. Based on TOSKANA, applications for this dynamic aspect technology are discussed and evaluated. The thesis closes with a view on an aspect-oriented kernel structure that maintains coherency and handles crosscutting concerns using dynamic aspects while enhancing de- velopment methods through the use of domain-specific programming languages
    corecore