Seminario: Software Platform for Planning and Control of multi-robot systems by using High-Level Specifications

Wed, 21/12/2016 - 12:00

Planning and controlling mobile robots is a research area that continues to receive a lot of attention. An intensively studied problem in this area is the navigation of a mobile robot, where a control strategy should be automatically generated such that the robot reaches a target position without colliding with obstacles. Some solutions proposed for this problem directly work in a continuous state space (e.g., navigation and potential functions), while others abstract the initial problem to a discrete finite-state one and find a solution by a search on a graph (e.g., cell decomposition methods). The latter methods were successfully tailored such that more complicated problems can be solved, where the specification is close to natural language and it is given as a formula combining temporal and logic operators. The propose of this work is to develop a multi-robot platform using Arduino robots for automatically computing trajectories for robots in order to fulfill high-level specifications and control the robots in order to follow the computed trajectories. In this first version of the platform, only classical navigation problem has been implemented (reach some final targets by avoiding the obstacles) but will be extended to more complicated missions. The main steps of the solution consist in:

(1) Discretization of the environment by using a cell decomposition approach. In particular Squared Cell Decomposition method has been implemented dividing the working space into square regions of a certain size which then will be set as walkable or not (depending by the presence of obstacles in that region).

(2) Use a discrete event system obtained from the previous decomposition and apply the A* algorithm to calculate paths for each robots to reach final targets.

(3) Establish a communication protocol between a computer and the Arduino mobile robots in order to update dynamically the actual positions and orientations in the environment. These information are provided by a camera placed on top of the workspace, which detects the robots and provides their position in real-time. To implement this communication XBee antennas have been used (which transmits data through a WiFi signal) and a communication protocol has been implemented to recognize and read the individual packets sent from the computer.

(4) Develop internal controllers for the Arduino robot, to be able to move within the workspace following the path and at the same time avoiding the obstacles.

(5) Finally, use the Petri Net models to implement a collision avoidance mechanism. For collision avoidance, waiting modes for the robots can be implemented in order to ensure maximum one robot in each region. However, this strategy may yield to deadlocks and a structural approach based on a Petri net system is used to develop a supervisory control to avoid these situations.

The platform has been completely implemented in c++ using an oriented object programming. Some videos illustrating real experiments of the developed platform will be provided.