# SCOTT sandbox
This repository contains all projects that are part of the SCOTT Warehouse Sandbox as described in the SCOTT WP10.
The repository consists of 9 projects that use Docker images individually and are orchestrated using Docker Compose (as of now). Below is a brief summary of each project.
Warehouse Controller (
/warehousecontroller) is the entry point to the sandbox (currently).
Until the Planner Reasoner is able to serve the PDDL problem file, it is generated in the
generatePddlProblemFile method of the mission2plan.py file. Until the Planner Reasoner is able to serve the PDDL domain file, it is fetched from the whdomain-2.pddl file.
When the problem & domain PDDL files are ready, they are uploaded to the Metric-FF Docker service and plan generation is triggered.
This contains simulations required by the sandbox. It currently consists of the automated warehouse simulated in VREP with all its elements and robots. Until the multi-objective optimisation (MOO) service is present, its results should be provided by the mission.json file. Until it contains the discret event simulations for modeling the supply chain dynamics, all required information should be provided by the mission.json file.
Access to this scene (both reading and control) is currently implemented by using VREP's remoteAPI in python. This is expected to change once ROS is deployed and used for controlling the robots in the scene.
Deployment project contains the Docker Compose configuration that allows you to start all the elements of the sandbox demo:
:point_right: Start by running
docker-compose up -dcommand inside the
/deploymentsubdirectory and reading its README.
Metric-FF Docker (
/ff-metric-docker) exposes Metric-FF-based planning via a RESTful service running on port 5000.
Ontology server (
/ontology-server) exposes named graphs in the Cliopatria installation over HTTP in RDF format via an Nginx server.
:point_right: Start by following the Getting Started section in the README.
Optic Docker (
/optic-docker) is a project that packages an alternative OPTIC planner via Docker.
NB! This project does not expose OPTIC via REST (yet)!
:point_right: Start by reading the README.
PDDL Examples (
/pddl-examples) �s a folder with example PDDL files (domain and problem files), just for learning and testing purposes of the planners.
PDDL Planner (
/planner) exposes PDDL planners via a REST API (so does the Metric-FF Docker, but using dockerised Metric-FF). Theoretically supports both OPTIC and Metric-FF, but only implements support for Metric-FF. Requires local installation of Metric-FF (see
ff_path in plannerService.py).
:point_right: Start by using Metric-FF Docker and consult with Costa and Swarup if you need to touch this project.
Planner Reasoner (
/planner_reasoner) uses an internal planning ontology to transform the warehouse state (given in a form that adheres to the warehouse ontology) into the PDDL problem and domain files .
:point_right: Start by reading about the
NB! The project is called a reasoner because it is using Prolog reasoning facilities, it does not do any reasoning over the ontology and does not produce any inferred triples (as of now).