35 research outputs found

    Building kilobots and revising kilobot design for improving the optical response

    Get PDF
    Inspired by the emergent behavior of swarms, we want to eventually use a distributed self-organizing swarm of robots for shape formation. To verify the idea using real robots in the experiment, we need to first build more Kilobots to enlarge our repository of Kilobots. Kilobot is a kind of small robot with a 33-mm diameter that was originally designed by Harvard in 2012 and redesigned at WCU with the simplified building process in 2016 (WCU Kilobot version 1.1). Based on the earlier design, we have redesigned the Kilobots further (with three revisions in version 1.2, 1.3, and 1.4). This research work describes the challenges and solutions in building and debugging Kilobots, as well as the planned shape formation operation. Kilobots are built in-house using reflow soldering for surface mount components and hand soldering for through-hole components. A systematic debugging procedure, as well as the most commonly seen issues and their solutions, are described based on our building and testing experience. The WCU Kilobot version 1.1 was designed in PADS, and yet we no longer had the license in PADS. Therefore, we redid the schematics and PCB layout in Altium Designer, and enlarged the spacing between the crowded components, in WCU Kilobot version 1.2. Although the design of version 1.2 was nearly the same as in version 1.1 with only added spacing, it was redone in Altium Designer that we could continue to maintain a license, and hence our later revisions were possible. In shape formation, a phototaxis movement (moving away from light) is the driving force in the large-scale reductive approach, and yet the original Kilobot design allows such movement only in a dark room because of the ambient light sensor output is saturated at a low illumination level. An experiment was conducted to examine the saturation of sensor reading at increasing lux levels with different phototransistor’s emitter resistances, and a new resistance value of emitter resistance was proposed and implemented in our Kilobots (version 1.3), to ease the experiment lighting condition, making it more lenient and convenient than before, even at daylight. An earlier capstone experiment in 2018-2019 seemed to indicate that the flash memory ofATmega328P, the microcontroller on the Kilobot, was not enough to handle the calculation when more than three Kilobots with known or calculated locations were used for multilateration-based locationing for the next robot that needed to calculate its location. To address this issue, we have updated the design of Kilobot to replace its ATmega328p (with 32 Kbytes memory) microcontroller with ATmega1284, which has 128 Kbytes of flash memory for programming(version 1.4). In addition, we also inspected the feasibility of installing two ambient light sensors at opposite sides of the Kilobot and found the version 1.3 was more sensitive than version 1.1 to provide distinctive readings even at a distance increment of one Kilobot diameter, which meant that the Kilobot could easily tell the direction of the light with two sensors. Given the new microcontroller in version 1.4 with more IO channels, we further revised it to add a second ambient light sensor, which will help to give us more control on the Kilobot when they perform a light based movement, such as in shape formation

    Comparing Google's Android and Apple's iOS Mobile Software Development Environments

    Get PDF
    Mobile devices have become extremely popular during the past few years. They are used widely in business and everyday life by the young and the elderly. As the mobile devices and their operating systems have developed, the manufacturers have made it possible also for everyday users to create their own applications using specific Software Development Kits. For that reason, it is now common that applications are created not only by third party companies but also by everyone interested in the matter. The mobile business has come to a point where there are a few big companies respon-sible for developing the operating systems used by most hardware manufacturers. Of all the operating systems, there are two which have grown their market share during the past few years: Apple's iOS and Google's Android. The purpose of this thesis was to compare the two, finding out how easy they are to take into use, and to develop and publish applications with. The study was carried out as an empirical research. The research was made on both operating systems and the SDKs. Based on that knowledge, applications were created and published for both systems. The basic outline of the study was installing and work-ing with both SDKs, developing and publishing applications using the SDKs, and es-timating the costs of installing development kits in an educational environment. The objectives of this study were achieved as planned: both SDKs were successfully installed, four applications were created altogether, an estimation of costs was made and overall experience of both systems was gained

    Concurrency in Android development – Kotlin Coroutines and RxJava

    Get PDF
    A faulty concurrency system may have an impact in the user experience of the software product and consequently to the company that owns that product. The main goal of this research is to understand the impact of concurrency in Android development and further help developers/companies to discretise the best approaches for concurrency. The research initially centres on the importance of concurrency in Android applications as well as the main approaches for concurrency/threading in Android development. It further illustrates why some asynchronous programming approaches do not fit modern Android development. This allowed the research to concentrate on the most relevant approaches to concurrency and consequently produce more pertinent results for the current state of Android development. After acknowledging Kotlin Coroutines and RxJava as the most relevant approaches to concurrency for Android (at the time of writing this document), this research moved on with the development of a case study application. This application was implemented using both Kotlin Coroutines and RxJava while reusing as much code as possible. There is a single module dedicated to the main user interface of the application and two modules (one for Kotlin Coroutines and one for RxJava) dedicated to concurrently run the necessary steps for each feature and further propagating the necessary data to the user interface. This allowed a clear separation of the specific code needed to perform the same features with Kotlin Coroutines and RxJava, facilitating its later comparison. The design of this application and its features required prior assessment of common use cases for concurrency in Android to form a fitting case study. With the intent of assessing the impact of using Kotlin Coroutines and RxJava in Android applications, we discretised the main software quality attributes to consider for Android development. By taking this step, we were able to focus mainly on the Performance and Maintainability of an Android application and understand how the usage of both Kotlin Coroutines and RxJava affects these attributes. The impact of each library in the performance and maintainability of an Android application was measured using software metrics that were provided by a combination of static analysis, benchmarks, and profiling tests. The process of designing the set of tests, setting up the required tools and the overall development of the test environment for this research is also explored in this document. The results for Kotlin Coroutines and RxJava were then illustrated, compared, and interpreted to fulfil our objective of understanding if, at the time of writing this document, there is a more sensible approach to concurrency for Android development according to our set of tests. The results for our set of tests and case study application revealed that RxJava and Kotlin Coroutines do not differently compromise the performance and maintainability of an Android application, for what developers and companies should not be limited when choosing between these libraries

    A maximum likelihood approach to genome assembly

    Get PDF
    De novo genome assembly is the bioinformatics' problem to reconstruct the original molecule from its sub-sequences, with no previous knowledge on DNA. Inspired by the maximum likelihood approach, recently a new experimental approach was developed. In this thesis, for the first time this new stochastic approach has been implemented into a software assembler. A parallel software has been developed in order to obtain a first experimental validation of the model, testing also some artificial dataope

    Optimization in code generation to reduce energy consumption

    Get PDF
    Dissertação de mestrado em Computer ScienceIn recent years we have witnessed a great technological advance accompanied by an equally impressive increase in energy consumption, causing problems of both financial and environmental order. In order to counteract this tendency, Green Computing emerges with a number of measures for a more efficient use of computing resources without a great loss of performance. This essay is a study of several elements of Information Technology analyzed from the point of view of energy efficiency. With special emphasis on microprocessors, modern compiler design, development tools and optimization of code generation, a wide range of information is gathered on very relevant subjects through perspectives still not very considered by the community in general. Also presented are two experimental studies that analyze the optimization of generated code for a set of benchmark programs in several programming languages with the aim of apraise the otimization impact on improving their energy consumption efficiency. A software measurement framework was also developed that, together with the methodologies presented in both studies, allows obtaining very precise and pertinent results for analysis. Finally, a ranking was produced for 18 development tools, considering the execution time and energy consumption of the executables generated through their compilation profiles. This study also intends to contribute to an energy efficient technological advancement. All the work developed here may also serve as motivation so that these and other aspects of Information Technology may be seen through a greener perspective.Nos últimos anos temos assistido a um grande avanço tecnológico acompanhado por um aumento igualmente impressionante do consumo energético, provocando problemas quer de ordem financeira quer de ordem ambiental. Com o intuito de contrariar essa tendência, surge o Green Computing com várias medidas para uma utilização mais eficiente dos recursos computacionais sem grande perda de performance. Esta dissertação apresenta um estudo relativo a diversos elementos das Tecnologias de Informação analisados do ponto de vista da eficiência energética. Com especial destaque para microprocessadores, conceção moderna dos compiladores atuais, ferramentas de desenvolvimento e geração de código otimizado, é aqui reunida uma vasta gama de informação sobre assuntos bastante relevantes segundo perspetivas ainda pouco consideradas pela comunidade em geral. São também apresentados dois estudos experimentais que analisam a otimização do código gerado para um conjunto de programas benchmarks em várias linguagens de programação com o objetivo de compreender o impacto das otimizações no sentido de melhorar a eficiência energética dos programas compilados. Foi também desenvolvida uma framework de medição por software que em conjunto com as metodologias apresentadas em ambos os estudos permite a obtenção de resultados bastante precisos e pertinentes de análise. Por último é elaborado um ranking para 18 ferramentas de desenvolvimento considerando o tempo de execução e consumo energético dos executáveis gerados através dos seus perfis de compilação. Este estudo pretende assim contribuir para um avanço tecnológico energeticamente mais eficiente. Que todo o trabalho aqui desenvolvido possa também ele servir de motivação para que estes e outros aspetos das Tecnologias de Informação possam ser vistos através de uma perspetiva mais ecológica.This work is funded by the ERDF through the Programme COMPETE and by the Portuguese Government through FCT - Foundation for Science and Technology, within projects: FCOMP-01-0124-FEDER-020484, FCOMP-01-0124-FEDER-022701, and grant ref. BI4-2014 GreenSSCM-38973 UMINHO

    An Empirical Investigation of Performance Overhead in Cross-Platform Mobile Development Frameworks

    Get PDF
    The heterogeneity of the leading mobile platforms in terms of user interfaces, user experience, programming language, and ecosystem have made cross-platform development frameworks popular. These aid the creation of mobile applications – apps – that can be executed across the target platforms (typically Android and iOS) with minimal to no platform-specific code. Due to the cost- and time-saving possibilities introduced through adopting such a framework, researchers and practitioners alike have taken an interest in the underlying technologies. Examining the body of knowledge, we, nonetheless, frequently encounter discussions on the drawbacks of these frameworks, especially with regard to the performance of the apps they generate. Motivated by the ongoing discourse and a lack of empirical evidence, we scrutinised the essential piece of the cross-platform frameworks: the bridge enabling cross-platform code to communicate with the underlying operating system and device hardware APIs. The study we present in the article benchmarks and measures the performance of this bridge to reveal its associated overhead in Android apps. The development of the artifacts for this experiment was conducted using five cross-platform development frameworks to generate Android apps, in addition to a baseline native Android app implementation. Our results indicate that – for Android apps – the use of cross-platform frameworks for the development of mobile apps may lead to decreased performance compared to the native development approach. Nevertheless, certain cross-platform frameworks can perform equally well or even better than native on certain metrics which highlights the importance of well-defined technical requirements and specifications for deliberate selection of a cross-platform framework or overall development approach.publishedVersio

    Resource provision in object oriented distributed systems

    Get PDF

    WARP : speeding up the software development process

    Get PDF
    Estágio realizado na Qimonda Portugal, S. ATese de mestrado integrado. Engenharia Informátca e Computação. Faculdade de Engenharia. Universidade do Porto. 200
    corecore