Drona

Drona: A Framework for Safe Distributed Mobile Robotics.

Abstract

Distributed mobile robotics (DMR) involves teams of networked robots navigating in a physical space to achieve tasks in a coordinated fashion. A major challenge in DMR is to program the ensemble of robots with formal guarantees and high assurance of correct operation. To this end, we introduce DRONA, a framework for building reliable DMR applications.
This paper makes three central contributions: (1) We present a novel and provably correct decentralized asynchronous motion planner that can perform on-the-fly collision-free planning for dynamically generated tasks. Moreover, the motion planner is the first to take into account the fact that distributed robots may have clocks that are only synchronized up to a tolerance, i.e., they are almost synchronous; (2) We formalize the DMR system as a mixed-synchronous system, and present a sound abstraction-based verification approach for DMR systems, and (3) DRONA provides a state-machine based language for safe event-driven programming of a DMR system and the code generated by the compiler can be executed on platforms such as the robot operating system (ROS).
To demonstrate the efficacy of DRONA, we build and verify a priority mail delivery system. Using our abstraction-based verification approach we were able to find, within a few minutes, bugs which could not be found by performing random simulation for several hours. Our verified decentralized motion-planner scales efficiently for large number of robots (upto 128 robots) and workspace sizes (upto a 256x256 grid).

More details in the paper: Drona: A Framework for Safe Distributed Mobile Robotics [ICCPS2017]

ROS Simulation Demos

We present simulation videos for various configurations by varying the number of robots in the system and the grid size. The orange blocks in the workspace represent static obstacles and green blocks represent potential goal locations for the robot. During simulation tasks represented as (taskId, goalLocation) are randomly generated and sent to the robot. Each robot on receiving a task request, dynamically computes the path using the multi-robot motion planner implemented in Drona. The simulator uses ROS and Rviz

How to run these simulations? »

Demo of 8 Drones in a 16x16 grid (Watch in full screen mode)




Demo of 32 Drones in a 32x32 grid (Watch in full screen mode)




Demo of 64 Drones in a 64x64 grid (Watch in full screen mode)





Demonstrate Effect of delta on path planning

In this simulation, there are two robots that are assigned a task to go to a particular green location. The path on the left is shorter than the part on the right for both the robots. We conduct a series of experiments for different values of delta. (delta = 1, 2, 3). delta = 1 means that the drones must consider a time-step window of 1, delta = 2 means that the drones must keep a time-step window of 2. You could see that the drones keep sufficient distance among themselves and being conservative with respect to delta.
When delta = 3, the drone on right will have to wait/hower for a longer time which has an associated cost so it choose another path which turns out to be less costly. This demo demonstrate that our motion-planner considers time-synchronization error and in the presence of that computes the optimal path.



Demonstrate that the motion planner can perform 3D planning (Watch in full screen mode)

Demo of 32 Drones in 32x32x4 grid



Simple Drone Surveillance Mission on Astec Firefly

During this mission the drone is executing the generated code from drona framework. The task planner is continuously sending the next location in the grid to be surveyed and the drone visits that location and waits (may be takes an image :)) When the mission-completed message is sent by the task-planner the drone dynamically computes path to the home location and returns.