Skip to content

Drona-Org/SOTERonROS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOTER on ROS

SOTER on ROS is a run-time assurance framework for building safe distributed mobile robotic (DMR) systems on top of the Robot Operating System (ROS). In SOTER, components of a DMR system are defined as runtime assurance (RTA) modules implementing a Simplex architecture. An RTA module based on Simplex consists of two controllers, an advanced controller (AC) and a safe controller, and a decision module that implements a switching logic between the AC and SC.

The framework borrows from the Drona framework and is similarly comprised of three layers. The application layer, the robot software stack, and the robot SDK. The application layer implements an application related task planner that is responsible for computing application related tasks and distributing them amongst the robots for execution. The software stack of each robot consists of an interface to establish the communication with task planner, a motion planner, and a plan executor, in addition to a set of decision modules. The motion planner and the plan executor are implemented as RTA modules that are linked to one of the decision modules and to implementations of their safe and advanced controllers.

The implementation of the software stack, examples of task planners, and interface of C++ modules can be found in the PSrc directory. The PSrc directory contains Applications, which contains all application specific files, SoftwareStack, which contains implementations of the Robot P machine, Motion Planner, Plan Executor, and Decision Modules, and RobotSDK, which contains the C++ modules and foreign function implementations.

Table of Contents

  1. Setup
  2. Case Studies
  3. Virtual Machine

Setup

  • Install ROS and create a catkin workspace for your ROS packages: http://wiki.ros.org/catkin/Tutorials/create_a_workspace
    • git clone git@github.com:Drona-Org/SOTERonROS.git
  • Install P: https://github.com/p-org/P
  • To run a SOTER on ROS application run the following commands:
    • Launch roscore in a new terminal window:
        roscore
    
    • Launch your simulator in a new terminal window:
        cd ~/catkin_ws
        catkin_make
        . devel/setup.sh
        roslaunch <simulation package> <simulator launch file>
    
    • Compile the P source code in a new terminal window:
        cd ~/catkin_ws/src/SOTERonROS/PSrc/SoftwareStack/
        pc ../Applications/<TaskPlanner.p> Robot.p RTAMotionPlanner.p RTAPlanExecutor.p  <DecisionModule.p> -outputDir:../application/path
    
    • Execute your application in a new terminal window:
        cd ~/catkin_ws
        catkin_make
        . devel/setup.sh
        rosrun SOTERonROS <application_executable>
    
  • Example:

Case Studies

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.

Drone Case Study

Drone Case Study

Robot Delivery Case Study - Battery

Robot Delivery Case Study - Battery

Robot Delivery Case Study - Geo-Fence

Robot Delivery Case Study - Geo-Fence

Robot Delivery Case Study - Geo-Fence 2

Robot Delivery Case Study - Collision Avoidance

Robot Delivery Case Study - Collision Avoidance

Robot Delivery Case Study - Collision Avoidance

Robot Delivery Case Study - Composing Monitors

Robot Delivery Case Study - Composing Monitors

Virtual Machine

The Drone Surveillance Protocol can be tested by downloading the following Virtual Machine: https://drive.google.com/file/d/1omC-XR5Bh_OVEsHNbVOVuN28hQ7dlM9K/view?usp=sharing. The VM contains all the dependencies pre-installed to execute the case study. This can be done by following the commands from the Setup, and the Example section above. We chose the drone case study for demonstration purposes, but all examples can be executed using the instructions above. Running the case studies in a VM may cause some instability with the simulation. We recommend the user to run the simulations on a local installation of ROS/Gazebo.

About

SOTER on ROS is a run-time assurance framework for building safe distributed mobile robotic (DMR) systems on top of the Robot Operating System (ROS).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published