Executable Scenario Management

Logo

The ExSce Management is an approach to store, query and generate test scenarios for ROS-based multi-robot systems. Provenance data about test scenarios and their executions is modeled using PROV and stored on a property graph. Runtime information is obtained from recorded bag files. Metamorphic testing is used to generate new scenarios and validate the system's requirements.

View the Project on GitHub hbrs-sesame/exsce_management

Executable Scenario Management

The ExSce Management is an approach to store, query and generate test scenarios for ROS-based multi-robot systems. Provenance data about test scenarios and their executions are modeled using PROV and stored on a property graph using Neo4j. Runtime information is obtained from recorded bag files. Metamorphic testing is used to generate new scenarios and validate the system’s requirements.

See D3.3 - Executable Scenario Management for more details.

Installation

These instructions were adapted from the public TIAGo Installation Tutorial to include fixes to run a multi-robot simulation and install the ExSce Management tools.

Dependencies

Neo4j and PROV libraries

Create a new database using Neo4j v4.4.5 (detailed instructions can be found here). Next, install the Python packages for PROV and the Neo4j adapter:

pip3 install --user prov prov-db-connector

ROS packages

Follow the necessary steps to create a catkin workspace.

Use rosinstall to clone all the required ROS packages. If you haven’t cloned this repo, first get the rosinstall file, for example:

cd ~/catkin_ws
wget https://raw.githubusercontent.com/hbrs-sesame/sesame_multi_robot_navigation/main/pal_sesame.rosinstall

Then run rosinstall:

rosinstall src pal_sesame.rosinstall

Install the dependencies for the cloned packages:

rosdep install -y --from-paths src --ignore-src --rosdistro noetic --skip-keys "urdf_test omni_drive_controller orocos_kdl pal_filters libgazebo9-dev pal_usb_utils speed_limit_node camera_calibration_files pal_moveit_plugins pal_startup_msgs pal_local_joint_control pal_pcl_points_throttle_and_filter current_limit_controller hokuyo_node dynamixel_cpp pal_moveit_capabilities pal_pcl dynamic_footprint gravity_compensation_controller pal-orbbec-openni2 pal_loc_measure pal_map_manager ydlidar_ros_driver"

Build your workspace:

catkin build

Source your catkin workspace:

source devel/setup.bash

Finally, to check that everything works as expected, try launching a scenario:

roslaunch exsce_ros scenario.launch scenario_id:=scenario_x