11.08., 9:00 - 11:00: Due to updates GitLab will be unavailable for some minutes between 09:00 and 11:00.

Commit ddf581c0 authored by Mahmoud Khaled's avatar Mahmoud Khaled

updated to readme

parent aea49b74
File added
# Welcome to SCOTS
# SCOTS: Automated Synthesis of Symbolic Controllers for General Non-lineal Systems
> SCOTSv0.2 is in the making. If you are feeling adventurous have
> look at [SCOTSv0.2](https://gitlab.lrz.de/matthias/SCOTSv0.2)
**SCOTS** is a C++ tool (with a small Matlab interface) to synthesize controller for
possibly perturbed nonlinear control systems with respect to safety and reachability specifications.
possibly perturbed nonlinear control systems with respect to safety and reachability specifications.
Please read the manual in the manual directory ./manual/manual.pdf
### Requirements
## Requirements
- A C++ development environment where you can compile C++ source code.
SCOTS requires only a modern C++ development environment where you can compile C++ (v11) source codes.
All other requirements are included with SCOTS.
- The CUDD library by Fabio Somenzi, which can be downloaded at
[VLSI@Colorado](http://vlsi.colorado.edu/~fabio/) or [David Kebo](http://davidkebo.com/source/cudd_versions/cudd-3.0.0.tar.gz).
SCOTS uses the dddmp and C++ wraper of the CUDD library.
To make full use of SCOTS, you may need to have MATLAB installed to be able to simulate the synthesized controllers using the provided MATLAB interface in [/mfiles](/mfiles).
We use cudd-3.0.0 which we configured with
SCOTS was originally developed to work in Linux and MacOS. However, we managed to make it work in Windows and included a small help to guide you [here](/installation_notes_windows.txt). SCOTS is known to work much slower in Windows.
## Installation
SCOTS itself is a header only library. You only need to add SCOTS source directory to the include directory in the compiler command when you work with SCOTS. However, SCOTS depends on the CUDD library to represent the data structures used in SCOTS.
CUDD library is inlcuded in the directory [/cudd-3.0.0](/cudd-3.0.0).
The CUDD library by is developed Fabio Somenzi and we include it in this repo since it is no longer publicly available. SCOTS uses also the dddmp and C++ wraper of the CUDD library (also included). Follow the follwoing steps to compile and install the CUDD library.
- Navigate to the directory and configured the library:
`$ ./configure --enable-shared --enable-obj --enable-dddmp --prefix=/opt/local/`
- Now, make the libtrary and install it:
`$ make`
`$ sudo make install`
- We noticed that, on some linux systems, the files **config.h** and **util/util.h** do not get copied after the installation. You have to copy them manually to **/opt/local/include/** if they are not copied.
- Finally, add the path to the installed library to your Linux's library search path by the running command for each terminal session:
`$./configure --enable-shared --enable-obj --enable-dddmp --prefix=/opt/local/`
Note that on some linux systems, the files config.h and util/util.h do not get copied after the installation. You have to copy them manually.
You might also need to add the library bibary to your Linux's library search path by the command:
`$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/local/lib`
- SCOTS itself is a header only library. You only need to add SCOTS source
directory to the include directory in the compiler command.
Further details are found in the readme files in example directories and in the [manual](/manual/manual.pdf).
Further details are found in the readme files in example directories and in the manual.
For installing and running SCOTS on Windows, please refer to the readme-win.txt file.
For installing and running SCOTS on Windows, please refer to the [Windows installation help file](/installation_notes_windows.txt).
### Directory structure
## Directory structure
- ./bdd/
Contains the source C++ source code for the SCOTS classes
which use Binary Decision Diagrams as underlying data structure
Contains the source C++ source code for the SCOTS classes which use Binary Decision Diagrams as underlying data structure.
- ./doc/
C++ Class documentation directory
C++ Class documentation directory.
- ./examples/
Some C++/Maltab programs demonstrating the usage of SCOTS
Some C++/Maltab programs demonstrating the usage of SCOTS.
- ./manual
Contains a the manuel with its tex source
Contains a the manuel with its tex source.
- ./mfiles
Contains an mfile as a wrapper to the mex-file functions
Contains an mfile as a wrapper to the mex-file functions.
- ./mfiles/mexfiles/
mex-file to read the C++ output from file
mex-file to read the C++ output from file.
### Support
## Support
Please report any problems/bugs you face while installing and running SCOTS to [Mahmoud Khaled](https://www.hcs.ei.tum.de/en/members/mahmoud/).
\ No newline at end of file
Please report any problems/bugs you face while installing and running SCOTS to [Mahmoud Khaled](https://www.hcs.ei.tum.de/en/members/mahmoud/).
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment