A Programming Framework for Building Reliable Distributed Mobile Robotics Systems.
This work was supported in part by the TerraSwarm Research Center, one of six centers supported by the STARnet phase of the Focus Center Research Program (FCRP) a Semiconductor Research Corporation program sponsored by MARCO and DARPA.
In this video, we provide an overview of how the framework can be used for interacting with PX4 firmware.
We show how the programming language P can be used to program a simple drone software stack and drive a drone in jMavSim simulator.
The generated trace during simulation is visualized live in a state-machine visualization tool DGML.
For more details about the source code executed on the PX4 firmware please visit https://github.com/Drona-Org/Drona/wiki/Drona-Software-Stack
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 RvizHow 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)
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.
Demo of 32 Drones in 32x32x4 grid
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.