11 research outputs found

    Synthesizing Functional Reactive Programs

    Get PDF
    Functional Reactive Programming (FRP) is a paradigm that has simplified the construction of reactive programs. There are many libraries that implement incarnations of FRP, using abstractions such as Applicative, Monads, and Arrows. However, finding a good control flow, that correctly manages state and switches behaviors at the right times, still poses a major challenge to developers. An attractive alternative is specifying the behavior instead of programming it, as made possible by the recently developed logic: Temporal Stream Logic (TSL). However, it has not been explored so far how Control Flow Models (CFMs), as synthesized from TSL specifications, can be turned into executable code that is compatible with libraries building on FRP. We bridge this gap, by showing that CFMs are indeed a suitable formalism to be turned into Applicative, Monadic, and Arrowized FRP. We demonstrate the effectiveness of our translations on a real-world kitchen timer application, which we translate to a desktop application using the Arrowized FRP library Yampa, a web application using the Monadic threepenny-gui library, and to hardware using the Applicative hardware description language ClaSH.Comment: arXiv admin note: text overlap with arXiv:1712.0024

    Hybrid Control from Scratch: A Design Methodology for Assured Robotic Missions

    Get PDF
    Robotic research over the last decades have lead us to different architectures to automatically synthesise discrete event controllers and implement these motion and task plans in real-world robot scenarios. However, these architectures usually build on existing robot hardware, generating as a result solutions that are influenced and/or restricted in their design by the available capabilities and sensors. In contrast to these approaches, we propose a design methodology that, given a specific domain of application, allowed us to build the first end-to-end implementation of an autonomous robot system that uses discrete event controller synthesis to generate assured mission plans. We validate this robot system in several missions of our target domain of application

    Ensamblaje e implementación de arquitectura cuadrúpeda modular

    Get PDF
    This paper describes the assembling process of a quadrupedal architecture using the modular robotic system Mecabot. Several possible topologies are addressed to finally opt for a design that allows the use of an active column. Based on this, the mathematical model of the control is proposed to perform the movements of displacement, open turn and rotation. The locomotion profiles for these first two movement modalities are bio-inspired. For the rotation modality, a characteristic quadrupedal robot transition is used to allow the correct rotation execution without using a great number of degrees of freedom. The robot is tested on structured and unstructured terrains by measuring its speed in function of the movement frequency variation. For the open turn modality, the described circumference radius is measured in function of the offset variation. With the tests, the second Mecabot configuration with legs is finally obtained complementing the research work carried out for apodal configurations (snake, wheel caterpillar) and hexapod.En este documento se describe el proceso de ensamblaje de una arquitectura cuadrúpeda utilizando el sistema robótico modular Mecabot. Varias posibles topologías son abordadas para finalmente optar por un diseño que permita emplear una columna activa. En base a ello es planteado el modelo matemático del control para realizar los movimientos de desplazamiento, giro abierto y giro cerrado. Los perfiles de locomoción que debe ejecutar el robot para estas dos primeras modalidades de movimiento son bioinspirados. Para la modalidad de giro cerrado se emplea una transición característica de los robots cuadrúpedos con el fin de poder seguir ejecutando correctamente la rotación sin necesidad de emplear un número mayor de grados de libertad. El robot es probado en terrenos estructurados y no estructurados midiendo su velocidad en función de la variación de la frecuencia de movimiento, para la modalidad de giro abierto se mide el radio de la circunferencia descrito en función de la variación del offset. Con las pruebas realizadas finalmente se obtiene la segunda configuración con patas implementada en el Mecabot, complementando así los trabajos de investigación previamente realizados para la configuración hexápoda y configuraciones ápodas (serpiente, oruga rueda)

    Hybrid Control from Scratch: A Design Methodology for Assured Robotic Missions

    Get PDF
    Robotic research over the last decades have lead us to different architectures to automatically synthesise discrete event controllers and implement these motion and task plans in real-world robot scenarios. However, these architectures usually build on existing robot hardware, generating as a result solutions that are influenced and/or restricted in their design by the available capabilities and sensors. In contrast to these approaches, we propose a design methodology that, given a specific domain of application, allowed us to build the first end-to-end implementation of an autonomous robot system that uses discrete event controller synthesis to generate assured mission plans. We validate this robot system in several missions of our target domain of application.Sociedad Argentina de Informátic

    Addressing Tasks Through Robot Adaptation

    Get PDF
    Developing flexible, broadly capable systems is essential for robots to move out of factories and into our daily lives, functioning as responsive agents that can handle whatever the world throws at them. This dissertation focuses on two kinds of robot adaptation. Modular self-reconfigurable robots (MSRR) adapt to the requirements of their task and environments by transforming themselves. By rearranging the connective structure of their component robot modules, these systems can assume different morphologies: for example, a cluster of modules might configure themselves into a car to maneuver on flat ground, a snake to climb stairs, or an arm to pick and place objects. Conversely, environment augmentation is a strategy in which the robot transforms its environment to meet its own needs, adding physical structures that allow it to overcome obstacles. In both areas, the presented work includes elements of hardware design, algorithms, and integrated systems, with the common goal of establishing these methods of adaptation as viable strategies to address tasks. The research takes a systems-level view of robotics, placing particular emphasis on experimental validation in hardware

    Interpretable task planning and learning for autonomous robotic surgery with logic programming

    Get PDF
    This thesis addresses the long-term goal of full (supervised) autonomy in surgery, characterized by dynamic environmental (anatomical) conditions, unpredictable workflow of execution and workspace constraints. The scope is to reach autonomy at the level of sub-tasks of a surgical procedure, i.e. repetitive, yet tedious operations (e.g., dexterous manipulation of small objects in a constrained environment, as needle and wire for suturing). This will help reducing time of execution, hospital costs and fatigue of surgeons during the whole procedure, while further improving the recovery time for the patients. A novel framework for autonomous surgical task execution is presented in the first part of this thesis, based on answer set programming (ASP), a logic programming paradigm, for task planning (i.e., coordination of elementary actions and motions). Logic programming allows to directly encode surgical task knowledge, representing emph{plan reasoning methodology} rather than a set of pre-defined plans. This solution introduces several key advantages, as reliable human-like interpretable plan generation, real-time monitoring of the environment and the workflow for ready adaptation and failure recovery. Moreover, an extended review of logic programming for robotics is presented, motivating the choice of ASP for surgery and providing an useful guide for robotic designers. In the second part of the thesis, a novel framework based on inductive logic programming (ILP) is presented for surgical task knowledge learning and refinement. ILP guarantees fast learning from very few examples, a common drawback of surgery. Also, a novel action identification algorithm is proposed based on automatic environmental feature extraction from videos, dealing for the first time with small and noisy datasets collecting different workflows of executions under environmental variations. This allows to define a systematic methodology for unsupervised ILP. All the results in this thesis are validated on a non-standard version of the benchmark training ring transfer task for surgeons, which mimics some of the challenges of real surgery, e.g. constrained bimanual motion in small space

    Synthesizing stream control

    Get PDF
    For the management of reactive systems, controllers must coordinate time, data streams, and data transformations, all joint by the high level perspective of their control flow. This control flow is required to drive the system correctly and continuously, which turns the development into a challenge. The process is error-prone, time consuming, unintuitive, and costly. An attractive alternative is to synthesize the system instead, where the developer only needs to specify the desired behavior. The synthesis engine then automatically takes care of all the technical details. However, while current algorithms for the synthesis of reactive systems are well-suited to handle control, they fail on complex data transformations due to the complexity of the comparably large data space. Thus, to overcome the challenge of explicitly handling the data we must separate data and control. We introduce Temporal Stream Logic (TSL), a logic which exclusively argues about the control of the controller, while treating data and functional transformations as interchangeable black-boxes. In TSL it is possible to specify control flow properties independently of the complexity of the handled data. Furthermore, with TSL at hand a synthesis engine can check for realizability, even without a concrete implementation of the data transformations. We present a modular development framework that first uses synthesis to identify the high level control flow of a program. If successful, the created control flow then is extended with concrete data transformations in order to be compiled into a final executable. Our results also show that the current synthesis approaches cannot replace existing manual development work flows immediately. During the development of a reactive system, the developer still may use incomplete or faulty specifications at first, that need the be refined after a subsequent inspection. In the worst case, constraints are contradictory or miss important assumptions, which leads to unrealizable specifications. In both scenarios, the developer needs additional feedback from the synthesis engine to debug errors for finally improving the system specification. To this end, we explore two further possible improvements. On the one hand, we consider output sensitive synthesis metrics, which allow to synthesize simple and well structured solutions that help the developer to understand and verify the underlying behavior quickly. On the other hand, we consider the extension of delay, whose requirement is a frequent reason for unrealizability. With both methods at hand, we resolve the aforementioned problems and therefore help the developer in the development phase with the effective creation of a safe and correct reactive system.Um reaktive Systeme zu regeln müssen Steuergeräte Zeit, Datenströme und Datentransformationen koordinieren, die durch den übergeordneten Kontrollfluss zusammengefasst werden. Die Aufgabe des Kontrollflusses ist es das System korrekt und dauerhaft zu betreiben. Die Entwicklung solcher Systeme wird dadurch zu einer Herausforderung, denn der Prozess ist fehleranfällig, zeitraubend, unintuitiv und kostspielig. Eine attraktive Alternative ist es stattdessen das System zu synthetisieren, wobei der Entwickler nur das gewünschte Verhalten des Systems festlegt. Der Syntheseapparat kümmert sich dann automatisch um alle technischen Details. Während aktuelle Algorithmen für die Synthese von reaktiven Systemen erfolgreich mit dem Kontrollanteil umgehen können, versagen sie jedoch, sobald komplexe Datentransformationen hinzukommen, aufgrund der Komplexität des vergleichsweise großen Datenraums. Daten und Kontrolle müssen demnach getrennt behandelt werden, um auch große Datenräumen effizient handhaben zu können. Wir präsentieren Temporal Stream Logic (TSL), eine Logik die ausschließlich die Kontrolle einer Steuerung betrachtet, wohingegen Daten und funktionale Datentransformationen als austauschbare Blackboxen gehandhabt werden. In TSL ist es möglich Kontrollflusseigenschaften unabhängig von der Komplexität der zugrunde liegenden Daten zu beschreiben. Des Weiteren kann ein auf TSL beruhender Syntheseapparat die Realisierbarkeit einer Spezifikation prüfen, selbst ohne die konkreten Implementierungen der Datentransformationen zu kennen. Wir präsentieren ein modulares Grundgerüst für die Entwicklung. Es verwendet zunächst den Syntheseapparat um den übergeordneten Kontrollfluss zu erzeugen. Ist dies erfolgreich, so wird der resultierende Kontrollfluss um die konkreten Implementierungen der Datentransformationen erweitert und anschließend zu einer ausführbare Anwendung kompiliert. Wir zeigen auch auf, dass bisherige Syntheseverfahren bereits existierende manuelle Entwicklungsprozesse noch nicht instantan ersetzen können. Im Verlauf der Entwicklung ist es auch weiterhin möglich, dass der Entwickler zunächst unvollständige oder fehlerhafte Spezifikationen erstellt, welche dann erst nach genauerer Betrachtung des synthetisierten Systems weiter verbessert werden können. Im schlimmsten Fall sind Anforderungen inkonsistent oder wichtige Annahmen über das Verhalten fehlen, was zu unrealisierbaren Spezifikationen führt. In beiden Fällen benötigt der Entwickler zusätzliche Rückmeldungen vom Syntheseapparat, um Fehler zu identifizieren und die Spezifikation schlussendlich zu verbessern. In diesem Zusammenhang untersuchen wir zwei mögliche Erweiterungen. Zum einen betrachten wir ausgabeabhängige Metriken, die es dem Entwickler erlauben einfache und wohlstrukturierte Lösungen zu synthetisieren die verständlich sind und deren Verhalten einfach zu verifizieren ist. Zum anderen betrachten wir die Erweiterung um Verzögerungen, welche eine der Hauptursachen für Unrealisierbarkeit darstellen. Mit beiden Methoden beheben wir die jeweils zuvor genannten Probleme und helfen damit dem Entwickler während der Entwicklungsphase auch wirklich das reaktive System zu kreieren, dass er sich auch tatsächlich vorstellt
    corecore