470 research outputs found

    Decorators Help Teleoperations

    Get PDF

    PARMA-CC: Parallel Multiphase Approximate Cluster Combining

    Get PDF
    Clustering is a common component in data analysis applications. Despite the extensive literature, the continuously increasing volumes of data produced by sensors (e.g. rates of several MB/s by 3D scanners such as LIDAR sensors), and the time-sensitivity of the applications leveraging the clustering outcomes (e.g. detecting critical situations, that are known to be accuracy-dependent), demand for novel approaches that respond faster while coping with large data sets. The latter is the challenge we address in this paper. We propose an algorithm, PARMA-CC, that complements existing density-based and distance-based clustering methods. PARMA-CC is based on approximate, data parallel cluster combining, where parallel threads can compute summaries of clusters of data (sub)sets and, through combining, together construct a comprehensive summary of the sets of clusters. By approximating clusters with their respective geometrical summaries, our technique scales well with increased data volumes, and, by computing and efficiently combining the summaries in parallel, it enables latency improvements. PARMA-CC combines the summaries using special data structures that enable parallelism through in-place data processing. As we show in our analysis and evaluation, PARMA-CC can complement and outperform well-established methods, with significantly better scalability, while still providing highly accurate results in a variety of data sets, even with skewed data distributions, which cause the traditional approaches to exhibit their worst-case behaviour. In the paper we also describe how PARMA-CC can facilitate time-critical applications through appropriate use of the summaries

    Behavior trees in action: A study of robotics applications

    Get PDF
    Autonomous robots combine a variety of skills to form increasingly complex behaviors called missions. While the skills are often programmed at a relatively low level of abstraction, their coordination is architecturally separated and often expressed in higher-level languages or frameworks. Recently, the language of Behavior Trees gained attention among roboticists for this reason. Originally designed for computer games to model autonomous actors, Behavior Trees offer an extensible tree-based representation of missions. However, even though, several implementations of the language are in use, little is known about its usage and scope in the real world. How do behavior trees relate to traditional languages for describing behavior? How are behavior tree concepts used in applications? What are the benefits of using them? We present a study of the key language concepts in Behavior Trees and their use in real-world robotic applications. We identify behavior tree languages and compare their semantics to the most well-known behavior modeling languages: state and activity diagrams. We mine open source repositories for robotics applications that use the language and analyze this usage. We find that Behavior Trees are a pragmatic language, not fully specified, allowing projects to extend it even for just one model. Behavior trees clearly resemble the models-at-runtime paradigm. We contribute a dataset of real-world behavior models, hoping to inspire the community to use and further develop this language, associated tools, and analysis techniques.Comment: 14 pages, 5 figures, 13rd ACM SIGPLAN International Conference on Software Language Engineering (SLE) (SLE 2020

    On the Implementation of Behavior Trees in Robotics

    Full text link
    There is a growing interest in Behavior Trees (BTs) as a tool to describe and implement robot behaviors. BTs were devised in the video game industry and their adoption in robotics resulted in the development of ad-hoc libraries to design and execute BTs that fit complex robotics software architectures. While there is broad consensus on how BTs work, some characteristics rely on the implementation choices done in the specific software library used. In this letter, we outline practical aspects in the adoption of BTs and the solutions devised by the robotics community to fully exploit the advantages of BTs in real robots. We also overview the solutions proposed in open-source libraries used in robotics, we show how BTs fit in robotic software architecture, and we present a use case example

    Connecting Artificial Brains to Robots in a Comprehensive Simulation Framework: The Neurorobotics Platform

    Get PDF
    Combined efforts in the fields of neuroscience, computer science, and biology allowed to design biologically realistic models of the brain based on spiking neural networks. For a proper validation of these models, an embodiment in a dynamic and rich sensory environment, where the model is exposed to a realistic sensory-motor task, is needed. Due to the complexity of these brain models that, at the current stage, cannot deal with real-time constraints, it is not possible to embed them into a real-world task. Rather, the embodiment has to be simulated as well. While adequate tools exist to simulate either complex neural networks or robots and their environments, there is so far no tool that allows to easily establish a communication between brain and body models. The Neurorobotics Platform is a new web-based environment that aims to fill this gap by offering scientists and technology developers a software infrastructure allowing them to connect brain models to detailed simulations of robot bodies and environments and to use the resulting neurorobotic systems for in silico experimentation. In order to simplify the workflow and reduce the level of the required programming skills, the platform provides editors for the specification of experimental sequences and conditions, environments, robots, and brain–body connectors. In addition to that, a variety of existing robots and environments are provided. This work presents the architecture of the first release of the Neurorobotics Platform developed in subproject 10 “Neurorobotics” of the Human Brain Project (HBP).1 At the current state, the Neurorobotics Platform allows researchers to design and run basic experiments in neurorobotics using simulated robots and simulated environments linked to simplified versions of brain models. We illustrate the capabilities of the platform with three example experiments: a Braitenberg task implemented on a mobile robot, a sensory-motor learning task based on a robotic controller, and a visual tracking embedding a retina model on the iCub humanoid robot. These use-cases allow to assess the applicability of the Neurorobotics Platform for robotic tasks as well as in neuroscientific experiments.The research leading to these results has received funding from the European Union Seventh Framework Programme (FP7/2007-2013) under grant agreement no. 604102 (Human Brain Project) and from the European Unions Horizon 2020 Research and Innovation Programme under Grant Agreement No. 720270 (HBP SGA1)

    Learning analytics visualizations of student-activity time distribution for the open Edx platform

    Get PDF
    MOOCs are one of the current trending topics in educational technology. They surged with the vision of a democratization in education worldwide by removing some access barriers. As every technology, MOOCs have promoters and detractors but truth is, they are an invaluable source of data related to student interaction with courses and their resources as has been available never before. This data is susceptible to shed light on the learning process in this online environment and potentially in uence in a positive way the learning outcomes. Students can be presented with visual, friendly information that enable them to re ect on their performance and gain awareness of their own learning style based on data beyond intuition. Teachers can be given the same metrics augmented with student aggregates for their courses. Thus, they can tune their pedagogical approach and resource quality for the better. In this context, Open edX is one of the most prominent MOOC platforms. However, its learning analytics support is low at present. This project extends the learning analytics support of the Open edX platform by adding new six visualizations related to time on video and problem modules, namely: 1) video time watched, 2) video and 3) problem time distributions, 4) video repetition pro le, 5) daily time on video and problem and 6) distribution of video events. The main technologies used have been Python, Django, MySQL, JavaScript, Google Charts and MongoDBLos MOOCs están de moda en lo que se refiere a tecnología educativa. Surgieron con la visión de remover algunas barreras de acceso en aras de la democratización de la educación en cada rincón del mundo. Como toda tecnología, tienen sus promotores y detractores, pero lo cierto es que constituyen una valiosa fuente de datos como no ha habido antes en lo que respecta a la interacción de los estudiantes con estos cursos y sus recursos. Estos datos pueden ayudarnos a entender el proceso de aprendizaje en estos entornos. Tienen además el potencial de in uir positivamente en los resultados del aprendizaje. Se puede presentar a los estudiantes una información visual fácil de entender, que les permita re exionar sobre su rendimiento y ganar conciencia de su estilo de aprendizaje a partir de los datos, más allá de lo que les pueda indicar la intuición. Las mismas métricas se pueden poner a disponibilidad de los profesores, en conjunto con valores agregados de la clase. De esta manera, los profesores pueden ajustar el enfoque pedagógico del curso y mejorar la calidad de los recursos. En este contexto, Open edX es una de las plataformas proveedoras de MOOCs más prominentes. Sin embargo, tiene todavía poco soporte para analitica del aprendizaje. Este proyecto extiende ese soporte al incorporar seis visualizaciones nuevas sobre tiempo en vídeos y problemas, especícamente: 1) tiempo visto de vídeos, distribución de tiempo en 2) vídeos y 3) problemas, 4) peril de repetición de vídeo, 5) tiempo diario en vídeos y problemas y 6) distribuci on de eventos de vídeo. Las principales tecnologías usadas son: Python, Django, MySQL, JavaScript, Google Charts y MongoDB.Ingeniería de Telecomunicació

    An Efficient and Flexible Implementation of Aspect-Oriented Languages

    Get PDF
    Compilers for modern object-oriented programming languages generate code in a platform independent intermediate language preserving the concepts of the source language; for example, classes, fields, methods, and virtual or static dispatch can be directly identified within the intermediate code. To execute this intermediate code, state-of-the-art implementations of virtual machines perform just-in-time (JIT) compilation of the intermediate language; i.e., the virtual instructions in the intermediate code are compiled to native machine code at runtime. In this step, a declarative representation of source language concepts in the intermediate language facilitates highly efficient adaptive and speculative optimization of the running program which may not be possible otherwise. In contrast, constructs of aspect-oriented languages - which improve the separation of concerns - are commonly realized by compiling them to conventional intermediate language instructions or by driving transformations of the intermediate code, which is called weaving. This way the aspect-oriented constructs' semantics is not preserved in a declarative manner at the intermediate language level. This representational gap between aspect-oriented concepts in the source code and in the intermediate code hinders high performance optimizations and weakens features of software engineering processes like debugging support or the continuity property of incremental compilation: modifying an aspect in the source code potentially requires re-weaving multiple other modules. To leverage language implementation techniques for aspect-oriented languages, this thesis proposes the Aspect-Language Implementation Architecture (ALIA) which prescribes - amongst others - the existence of an intermediate representation preserving the aspect-oriented constructs of the source program. A central component of this architecture is an extensible and flexible meta-model of aspect-oriented concepts which acts as an interface between front-ends (usually a compiler) and back-ends (usually a virtual machine) of aspect-oriented language implementations. The architecture and the meta-model are embodied for Java-based aspect-oriented languages in the Framework for Implementing Aspect Languages (FIAL) respectively the Language-Independent Aspect Meta-Model (LIAM) which is part of the framework. FIAL generically implements the work flows required from an execution environment when executing aspects provided in terms of LIAM. In addition to the first-class intermediate representation of aspect-oriented concepts, ALIA - and the FIAL framework as its incarnation - treat the points of interaction between aspects and other modules - so-called join points - as being late-bound to an implementation. In analogy to the object-oriented terminology for late-bound methods, the join points are called virtual in ALIA. Together, the first-class representation of aspect-oriented concepts in the intermediate representation as well as treating join points as being virtual facilitate the implementation of new and effective optimizations for aspect-oriented programs. Three different instantiations of the FIAL framework are presented in this thesis, showcasing the feasibility of integrating language back-ends with different characteristics with the framework. One integration supports static aspect deployment and produces results similar to conventional aspect weavers; the woven code is executable on any standard Java virtual machine. Two instantiations are fully dynamic, where one is realized as a portable plug-in for standard Java virtual machines and the other one, called Steamloom^ALIA , is realized as a deep integration into a specific virtual machine, the Jikes Research Virtual Machine Alpern2005. While the latter instantiation is not portable, it exhibits an outstanding performance. Virtual join point dispatch is a generalization of virtual method dispatch. Thus, well established and elaborate optimization techniques from the field of virtual method dispatch are re-used with slight adaptations in Steamloom^ALIA . These optimizations for aspect-oriented concepts go beyond the generation of optimal bytecode. Especially strikingly, the power of such optimizations is shown in this thesis by the examples of the cflow dynamic property, which may be necessary to evaluate during virtual join point dispatch, and dynamic aspect deployment - i.e., the selective modification of specific join points' dispatch. In order to evaluate the optimization techniques developed in this thesis, a means for benchmarking has been developed in terms of macro-benchmarks; i.e., real-world applications are executed. These benchmarks show that for both concepts the implementation presented here is at least circa twice as fast as state-of-the-art implementations performing static optimizations of the generated bytecode; in many cases this thesis's optimizations even reach a speed-up of two orders of magnitude for the cflow implementation and even four orders of magnitude for the dynamic deployment. The intermediate representation in terms of LIAM models is general enough to express the constructs of multiple aspect-oriented languages. Therefore, optimizations of features common to different languages are available to applications written in all of them. To proof that the abstractions provided by LIAM are sufficient to act as intermediate language for multiple aspect-oriented source languages, an automated translation from source code to LIAM models has been realized for three very different and popular aspect-oriented languages: AspectJ, JAsCo and Compose*. In addition, the feasibility of translating from CaesarJ to LIAM models is shown by discussion. The use of an extensible meta-model as intermediate representation furthermore simplifies the definition of new aspect-oriented language concepts as is shown in terms of a tutorial-style example of designing a domain specific extension to the Java language in this thesis

    Python module for automatic testing of programming assignments

    Get PDF
    Antud töö sisaldab kirjeldust Pythoni teegi kohta, mille abil saab automaatselt testida programmeerimisülesandeid sissejuhatavates programmeerimiskursustes. Antud teegi abil saab testida nii sisend-väljundipõhiseid ülesandeid ja ka funktsioone samal ajal. Töö esimeses osas analüüsitakse olemasolevaid hindamissüsteeme. Lisaks tutvustatakse kuidas loodud teeki saab kasutada erinevate ülesannetetüüpide testimiseks, kuidas teeki laiendada ning kuidas teda kasutada olemasolevate hindamissüsteemide sees. Kirjeldatakse ka teegi arhitektuuri, kuidas turvata võõra koodi käivitamist ning tuuakse välja kogemused teegi kasutamisest eri kursustes.This thesis contains a description of a Python module for automatically assessing programming assignments in introductionary programming courses. Most notably, the module allows to test both input-output based tasks and functions at the same time. In the first part, existing automatic assessment systems are analyzed. Then a guide is given on how to use the module for testing different task types, how to extend it and how to use it within other grading systems. Lastly the thesis deals with implementation decisions, on how to secure testing and usage experiences from two different courses
    corecore