A modular, plug and play, robotics middleware design for sensory modules, actuation platforms and task descriptions

Autonomous robots are complex systems that require interaction between numerous heterogeneous components (software and hardware). Because of the increase in complexity of robotic applications and also the diverse range of hardware, robotic middleware is designed to manage the complexity and heterogeneity of hardware and its applications, promote the integration of new technologies, simplify software design, hide the complexity of low-level communication and the heterogeneity of components, improve software quality, and reduce production costs. In this work, we define, design and build a modular and transparent plug-and-play robotic middleware (RISCWare) which comprises auto-detectable, auto-configurable, dynamical, and independent modules that allow the definition, modeling, installation, control and operation of any sets of: sensing apparatuses, mobile manipulation actuation platforms, and active and adaptive goal-directed applications. The proposed solution and design provides a comprehensive framework and implementation to overcome the interdependencies and coupling between sensing devices, robot actuation platforms and software applications which exist in current robotic middleware structures and, which triggers the need for elaborate dependent changes in these modules when any one of them (or more) is substantially altered. We are developing a framework (RISCWare) for the modular design and integration of sensory modules, actuation platforms, and task descriptions, that will be implemented as a tool to reduce effort in designing and utilizing robotic platforms. The framework is used to customize robotic platforms by simply defining the available sensing devices, actuation platforms, and required tasks. The main purpose for designing this framework is to reduce the time and complexity of the development of robotic software and maintenance costs, and to improve code and component reusability. Usage of the proposed framework prevents the need to redesign or rewrite algorithms or applications due to changes in the robot's platform, operating systems, or the introduction of new functionalities. Furthermore, RISCWare is used for the integration of heterogeneous robotic components. RISCWare consists of three modules. The first module is the sensory module, which represents sensors that collect information about the remote or local environment. The platform module defines the robotic platforms and actuation methods. The last module is the task-description module, which defines the tasks and applications that the platforms will perform, such as teleoperation, navigation, obstacle avoidance, and manipulation. The plug-and-play approach is one of the key features of RISCWare , which allows auto-detection and auto-reconfiguration of the attached standardized components (hardware and software), according to current system configurations. These components can be dynamically available or unavailable. Dynamic reconfiguration provides some facilities to modify a system during its execution and can be used to apply patches and updates, to implement adaptive systems, or to support third-party modules. This automatic detection and reconfiguration of devices and driver software makes it easier and more efficient for end users to add and use new devices and software applications. Furthermore, several experiments, performed on the RISCbot II mobile manipulation platform, are described and implemented to evaluate the RISCWare framework with respect to applicability and resource utilization.