Installing and running tempest
This page contains instructions for installing, running and playing
around with tempest, a tool that implements the shield
synthesis technique described in
this paper.
These instructions have been prepared and provided
by Stefan
Pranger to help you with your projects -- a huge thanks to Stefan.
Many thanks also to
Bettina
Könighofer
and Roderick
Bloem for helping with providing access to the code, examples and
instructions.
The source code for tempest is
available here.
To see tempest in action, you can use the
framework here,
that is built on a docker image.
The dockerfile in the framework linked above compiles all the
necessary dependencies and builds tempest, its python
bindings and combines them
with Minigrid, a
lightweight python package for RL training. The docker image starts a
server to use jupyter notebooks with, which should provide an
easy frontend to play around with the tool. The
notebooks SlipperyCliff
and FaultyActions
serve as an introduction into how shields can affect RL.
Here
are some slides prepared by Stefan Pranger for the Tempest_in_Action
framework.
There is a webpage on
tempest, although the
following instructions should suffice to get you going for your course
projects.
Please
find
here a zip file containing three install scripts and
corresponding dockerfiles. Note that these are intended to be used on
Unix machines. On Windows, it is recommended that you use WSL and the
provided script run_using_docker.sh. Please find below short
explanations of of usage of these scripts:
- install_with_carl.sh: This installs tempest
natively, as well as carl. carl is an arithmetic
libary that tempest uses as a dependecy. Installing carl
natively is the suggested method if you are developing features for
tempest. This is recommended for more serious
explorations with tempest. If you are only working
with tempest for the course project, it is recommended
that you use the following script "install.sh", as it takes away
one hurdle in the installation process.
- install.sh: This installs tempest natively on
the machine.
- run_using_docker.sh: This uses a docker image
with all dependencies installed and mounts the source directory
(and an 'examples' directory for input files) into a
container. The script is intended to be used for installation and
running the container. This allows you to work with the source
code as if you are building the binaries directly on their
machine. Regarding the installation process, this is the easiest
way. Due to the binary being built in a container it is only
executable from the container. issue. You can use the binary as
if it was installed locally.
If you need any help with installation and running, please
contact the instructor. Thankfully, Stefan has also agreed to
help us out, if needed.