Middleware and programming models for multi-robot systems
from L’Institut National des Science Appliqée de Lyon, Ecole Doctorale 512: Informatique et Mathématiques
defended on 15/03/2018
Despite many years of work in robotics, there is still a lack of established software architecture and middleware for multi-robot systems. A robotic middleware should be designed to abstract the low-level hardware architecture, facilitate communication and integration of new software. This PhD thesis is focusing on middleware for multi-robot system and how we can improve existing frameworks for fleet purposes by adding multi-robot coordination services, development and massive deployment tools. We expect robots to be increasingly useful as they can take advantage of data pushed from other external devices in their decision making instead of just reacting to their local environment (sensors, cooperating robots in a fleet, etc.).
This thesis first evaluates one of the most recent middleware for mobile robot(s), Robot operating system (ROS) and continues with a state of the art about the commonly used middleware in robotics. Based on the conclusions, we propose an original contribution in the multi-robot context, called SDfR (Service discovery for Robots), a service discovery mechanism for Robots. The main goal is to propose a mechanism that allows highly mobile robots to keep track of the reachable peers inside a fleet while using an ad-hoc infrastructure. Another objective is to propose a network configuration negotiation protocol. Due to the mobility of robots, classical peer to peer network configuration techniques are not suitable. SDfR is a highly dynamic, adaptive and scalable protocol adapted from Simple Service Discovery Protocol (SSDP). We conducted a set of experiments, using a fleet of Turtlebot robots, to measure and show that the overhead of SDfR is limited.
The last part of the thesis focuses on programming model based on timed automata. This type of programming has the benefits of having a model that can be verified and simulated before deploying the application on real robots. In order to enrich and facilitate the development of robotic applications, a new programming model based on timed automata state machines is proposed, called ROSMDB (Robot Operating system Model Driven Behavior). It provides model checking at development phase and at runtime. This contribution is composed of several components: a graphical interface to create models based on timed automata, an integrated model checker based on UPPAAL and a code skeleton generator. Moreover, a ROS specific framework is proposed to verify the correctness of the execution of the models and to trigger alerts. Finally, we conduct two experiments: one with a fleet of Parrot drones and second with Turtlebots in order to illustrates the proposed model and its ability to check properties.
Key words: Dynamic middleware, Connected robots, reconfiguration, resilience, mobility, programming languages, multi-robot systems, robotic cloud, Robotic fleet, Service Discovery, Service oriented Architecture.
Full text on hal.archives-ouvertes.fr
SDfR protocol: Service Discovery for Robots In International Conference on Agents and Artificial Intelligence, February 2016.
Multi-robots systems require dedicated tools and models for their design and the deployment. Our approach proposes service-oriented architecture that can simplify the development and deployment. In order to solve the problem of neighbors and service discovery in an ad-hoc network, the fleet robot needs a protocol that is able to constantly discover new robots in its coverage area. To this end we propose a robotic middleware, SDfR, that is able to provide service discovery. This protocol is an extension of the Simple Service Discovery Protocol (SSDP) used in Universal Plug and Play (UPnP) to dynamic networks generated by the mobility of the robots. Even if SDfR is platform independent, we propose a ROS (ROS, 2014) integration in order to facilitate the usage. We evaluate a series of overhead benchmarking across static and dynamic scenarios. We also present some use-cases where our proposal was successfully tested.
SDfR : Why using service and neighbour discovery in robotic fleets In Control Architectures of Robots 2015, June 2015
Performing one or multiple tasks together is a concept that becomes more embraced by robotic applications. The use of robotic fleets may result in reducing the complexity and the completion time of a mission. In our vision, in order to reduce the process of developing and deploying new robotic applications, Service-oriented architecture should be used. It greatly simplifies the implementation of highly-adaptive, constantly-evolving applications. This architecture is very suitable to quickly cope with new developing models and requirements. Fleets should be able to communicate using ad-hoc networks to avoid being dependent on any centralized infrastructure. In order to solve the problem of neighbors and service discovery in an ad-hoc network, a fleet robot needs a protocol that is able to constantly discover new robots in its coverage area, while maintaining a neighbor connectivity quality indicator. To this end we propose a robotic middleware, SDfR (Service Discovery for Robots), that is able to provide service discovery for peers to know their reachable neighbors services. Even if SDfR is platform inde- pendent, we propose a ROS  integration in order to facilitate the use.
SDfR protocol: Service Discovery for Robots In Journée sur les Architectures Logicielles pour la Robotique Autonome, les Systèmes Cyber-Physiques et les Systèmes Auto-Adaptables, December 2014
Nowadays robotic applications tend towards fleets of robots, being capable of sharing information between multiple hosts as well as performing one or multiple tasks together. In order to facilitate interaction and cooperation robots should advertise about their functionalities as services. In this paper, we propose a protocol for highly dynamic robotic applications that will allow robots to discover their neighbors services and their capabilities in any wireless infrastructure. The protocol is an adaptation of the Service Discovery Protocol (SDP) used in Universal Plug and Play(UPnP). The paper also includes a series of benchmarking across multiple scenarios that allow us to evaluate our protocol. Our experiments looked up the various impacts that our proposal has on a multi-robot system, like request time of a publisher and a subscriber, the quantity of CPU and memory used and quantity of send and received bytes over the network.
Are middlewares ready for multi-robots systems? In 4th International Conference on Simulation, Modeling, and Programming for Autonomous Robots, 2014
Autonomous robot fleets are complex systems that require the interaction and communication between heterogeneous hardware and software. Despite many years of work in robotics, there is still a lack of established software architecture and middleware, in particular for large scale multi-robots systems. Many research teams are still writing specific hardware orientated software that is very tied to a robot. This vision makes sharing modules or extending existing code difficult. A robotic middleware should be designed to abstract the low-level hardware architecture, facilitate communication and integration of new software. In this paper, we present and compare seven existing middlewares capable of being used in multi-robot systems. We also present two dedicated cloud based multi-robots platforms. After this analysis, we discuss why a cloud of robots and not a cloud for robots is more suitable in a fleet context.
Intergiciels pour systémes multi-robots: état de l’art In UbiMob, 10èmes journées francophones Mobilité et Ubiquité, 2014
Les flottes de robots autonomes sont des systèmes complexes qui nécessitent des interactions et des communications entre des éléments matériels et logiciels hétérogènes. Malgré l’évolution du domaine robotique, il existe encore un manque d’architectures logicielles de référence et d’intergiciels éprouvés, en particulier pour les systèmes multi-robots. De nombreuses équipes continuent d’élaborer des logiciels orientés spécifiquement vers le matériel lié à leurs robots. Cette vision rend le partage des modules ou des codes existants difficile. Un intergiciel robotique doit être conçu pour abstraire l’architecture matérielle de bas niveau, pour faciliter la communication et l’intégration avec des briques logicielles tierces. Dans cet article, nous présentons et comparons les intergiciels les plus susceptibles de s’appliquer aux systèmes multi-robots. Nous présentons et discutons également deux solutions de type cloud dédiées aux plateformes multi-robots.
CROME (INSA BQR Grant, 2014 – 2015)
Mobile robot fleets for the multi-view analysis of complex scenes (monitoring, emergency assistance, medical applications, etc).