53 research outputs found
Modelling field robot software using AADL
This report contains a technical description and example on how robotic systems based on a distributed communication middleware can be modelled in AADL, incorporating hardware aspects. Furthermore analyses on the extra-functional properties such as bus-bandwidth and end-to-end latency are performed
Multi-Platform Generative Development of Component & Connector Systems using Model and Code Libraries
Component-based software engineering aims to reduce software development
effort by reusing established components as building blocks of complex systems.
Defining components in general-purpose programming languages restricts their
reuse to platforms supporting these languages and complicates component
composition with implementation details. The vision of model-driven engineering
is to reduce the gap between developer intention and implementation details by
lifting abstract models to primary development artifacts and systematically
transforming these into executable systems. For sufficiently complex systems
the transformation from abstract models to platform-specific implementations
requires augmentation with platform-specific components. We propose a
model-driven mechanism to transform platform-independent logical component &
connector architectures into platform-specific implementations combining model
and code libraries. This mechanism allows to postpone commitment to a specific
platform and thus increases reuse of software architectures and components.Comment: 10 pages, 4 figures, 1 listin
Verified ROS-Based Deployment of Platform-Independent Control Systems
The paper considers the problem of model-based deployment of platform-independent control code on a specific platform. The approach is based on automatic generation of platform-specific glue code from an architectural model of the system. We present a tool, ROSGen, that generates the glue code based on a declarative specification of platform interfaces. Our implementation targets the popular Robot Operating System (ROS) platform. We demonstrate that the code generation process is amenable to formal verification. The code generator is implemented in Coq and relies on the infrastructure provided by the CompCert and VST tool. We prove that the generated code always correctly connects the controller function to sensors and actuators in the robot. We use ROSGen to implement a cruise control system on the LandShark robot
Static-Time extraction and analysis of the ROS computation graph
The Robot Operating System (ROS) is one of the most popular open source robotic frameworks, and has contributed significantly to the fast development of robotics. Even though ROS provides many ready-made components, a robotic system is inherently complex, in particular regarding the architecture and orchestration of such components. Availability and analysis of a system's architecture at compile time is fundamental to ease comprehension and development of higher-quality software. However, ROS developers have to overcome this complexity relying mostly on testing and runtime visualisers. This work aims to enhance static-time support by proposing, firstly, a metamodel to describe the software architecture of ROS systems (the ROS Computation Graph) and, secondly, model extraction and visualisation tools for such architectural models. The provided tools allow users to specify custom-made queries over these models, enabling the static verification of relevant properties that had to be (manually) checked at runtime before.ERDF - European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT -Fundação para a Ciência e a Tecnologia within project PTDC/CCI-INF/29583/2017 (POCI-01-0145-FEDER-029583
Architecture-Centric Software Development for Cyber-Physical Systems
We discuss the problem of high-assurance development of cyber-physical systems. Specifically, we concentrate on the interaction between the development of the control system layer and platform-specific software engineering for system components. We argue that an architecture-centric approach allows us to streamline the development and increase the level of assurance for the resulting system. The case study of an unmanned ground vehicle illustrates the approach
- …