DronaA Programming Framework for Building Safe Robotics Systems. |
The P Programming Langauge
Drona: A Framework for Safe Distributed Mobile Robotics [ICCPS2017]
Combining Model Checking and Runtime Verification for Safe Robotics [RV2017]
SOTER: Programming Safe Robotics System using Runtime Assurance [arXiv 2019]
SOTER on ROS: A Run-Time Assurance Framework on the Robot Operating System [RV2020]
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.
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.
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.
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.
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.
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.
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.
In these videos, we implement SOTER on top of the Robot Operating System (ROS) and add monitor support. We have implemented a Drone Surveillance Protocol case study and a Robot Delivery case study. In the Drone Surveillance experiement, we have a single monitor that ensures the drone does not crash into the walls of the workspace. In the Robot Delivery experiement, we implement 3 runtime assurance modules: Battery safety, Geo-fencing, and Collision Avoidance.
In each case, we have implemented an Advanced Controller, Safe Controller, and Decision Module to ensure that the robots guarantee safety. The robots are survelling a 5x5 workspace with static obstacles.