Drona

A Programming Framework for Building Safe Robotics Systems.



View Drona Source on Github » View Drona Software Stack Info Wiki »

Related Papers

The P Programming Langauge
Drona: A Framework for Safe Distributed Mobile Robotics [ICCPS2017]
Combining Model Checking and Runtime Verification for Safe Robotics [RV2017]

Framework Demo

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.

Runtime Assurance for Safe Exploration

In this video, the drone is performing safe exploration with runtime assurance. The advanced controller (AC) is a motion planner that is optimized to perform the exploration optimally with some metrics. The AC tries to drive the drone too close to the wall in some cases as the wall is not known to the AC. The Decision module (DM) continuous monitors the drone surroundings and detects whenever there is a wall too close to the drone. In the case of potential danger the DM switches to a safe controller (SC). The SC brings the drone from its current position to the middle of the workspace. Once the drone is in the middle of the workspace, the DM returns control back to the AC that starts exploring again.

Battery Safety

There are static obstacles in the workspace and 6 numbered white cards. The white card numbered 0 is the battery charging point. The white cards numbered 1-5 are surveillance points. For sake of this experiment we put a contrainst that the battery of the drone runs out after visiting 3 surveillance locations. Note that in experiment, the drone always returns back to the charging point 0 before it visits 4th surveillance point. In some cases, it returns back to charging point even before visiting 3 surveillance locations to charge the battery.

Multi Robot Mail Delivery System

In this experiment, Drona is used for programming a multi-robot system for mail-delivery appliation. There are static obstacles in the workspace and 6 numbered white cards. The white card numbered 0 is the mail pick-up location. The white cards numbered 1-5 are the delivery points. The drones first goto the mail pick-up location 0 and then drop the mail to the destination location (1-5) without colliding with other drones. They also coordinate with each other to give way to other drones so that they can finish their mission.

Runtime Assurance during mission

In this video, we ask the drone to survey the city in Gazebo simulator. The autonomous drone computes a safe plan from its location to the next survey point and follows the trajectory robustly. To demonstrate the runtime-assurance capabilities in Drona, we monitor each trajectory against a specification that the followed trajectory must lie within a tube. The graphs generated during the simulation present the closeness of the trajectory to the boundary of the tube. During the simulation you can notice that for one of the trajectories the rgraph becomes red, indicating that the drone is close to going outside the safe region during runtime and the SC should take over. You can also notice that in some cases the robustness becomes orange (almost) which can be used as an indication to take pre-emptive steps and the drone is in switching condition region.

Surveillance Application

In this video, we ask the drone to survey the city in Gazebo simulator. The points to be visited by the drone are generated randomly. The autonomous drone computes a safe plan from its location to the next survey point and follows the trajectory robustly.

Longer simulation video

In this video, we ask the drone to survey the city in Gazebo simulator. The points to be visited by the drone are generated randomly. The autonomous drone computes a safe plan from its location to the next survey point and follows the trajectory robustly.