Tag Archives: Component-based Software Engineering

There are people working on robotic software engineering these days :-O ! (real-time included)

Arturo Laurenzi, Davide Antonucci, Nikos G. Tsagarakis, Luca Muratore, The XBot2 real-time middleware for robotics, Robotics and Autonomous Systems, Volume 163, 2023 DOI: 10.1016/j.robot.2023.104379.

This paper introduces XBot2, a novel real-time middleware for robotic applications with a strong focus on modularity and reusability of components, and seamless support for multi-threaded, mixed real-time (RT) and non-RT architectures. Compared to previous works, XBot2 focuses on providing a dynamic, ready-to-use hardware abstraction layer that allows users to make run-time queries about the robot topology, and act consequently, by leveraging an easy-to-use API that is fully RT-compatible. We provide an extensive description about implementation challenges and design decisions, and finally validate our architecture with multiple use-cases. These range from the integration of three popular simulation tools (i.e. Gazebo, PyBullet, and MuJoCo), to real-world tests involving complex, hybrid robotic platforms such as IIT\u2019s CENTAURO and MoCA robots.

On the formalization and conceptualization of real-time basic concepts and methods (RMS, EDF) for robots

Nicolas Gobillot, Charles Lesire, David Doose, A Design and Analysis Methodology for Component-Based Real-Time Architectures of Autonomous Systems. Journal of Intelligent & Robotic Systems, October 2019, Volume 96, Issue 1, pp 123–138, DOI: 10.1007/s10846-018-0967-5.

The integration of autonomous robots in real applications is a challenge. It needs that the behaviour of these robots is proved to be safe. In this paper, we focus on the real-time software embedded on the robot, and that supports the execution of safe and autonomous behaviours. We propose a methodology that goes from the design of component-based software architectures using a Domain Specific Language, to the analysis of the real-time constraints that arise when considering the safety of software applications. This methodology is supported by a code generation toolchain that ensures that the code eventually executed on the robot is consistent with the analysis performed. This methodology is applied on a ground robot exploring an area.