Vérification et Synthèse des Systèmes Cyber-Physiques
Interval Analysis for Cyber Physical Systems
Ecole MACS à Bordeaux du 3 au 5 juin 2019
Luc Jaulin, Julien Damers




logo_intcomp.gif








  1. Welcome
  2. Page web du module
  3. Page web des écoles MACS
  4. People
  5. Slides
  6. A small doc on PyIbex and Vibes
  7. Install
  8. Exercises














Welcome

This module is a three-days summer school that will take place June 3-4-5 during in Bordeaux.
During this school, you will have several speakers and some practices. This page is related to interval analysis part and the practice. For the practice, you need your own computer. If you cannot, please, let us know and we will find a solution.
Before arriving to the school, please, install Python, PyIbex, Vibes. The procedure is described in Exercise 0. The install should be easy but in case of problems, we will be here to help you, now (lucjaulin@gmail.com) or later in Bordeaux.
In this school, you will also have some exercises to do. They will be taken from Exercises 8,9,10,11 in this pdf file.

Programme Concernant la partie 'calcul par intervalles', le programme est le suivant :
Mardi 4 juin 14h-18h (Luc Jaulin)
- Problèmes de satisfaction de contraintes numériques et résolution de problèmes non linéaires. (Luc Jaulin)
- Approches satisfaction de contrainte pour la vérification et synthèse
Mercredi 5 juin 8h-12h (Julien Damer)
- Travaux pratiques sur l’outil PyIbex
- Les travaux pratiques consisteront à la résolution d’exercices en utilisant l’outil logiciel PyIbex, en langage Python.
Aucune connaissance préalable de Python n’est requise.
- Les exercices portent sur la programmation de contracteurs et séparateurs sous PyIbex, et leur application pour la vérification et synthèse de CPS.













Slides

Luc Jaulin

Chapter 1: Intervals
Chapter 2: Subpavings
Chapter 3: Contractors
Chapter 4: Separators
Chapter 5: Robust estimation
Chapter 6: CPS
























Install all you need

Errata

In the last version of PyIbex (2017), few things have changed in the Python code and the code written in the videos is not always exactly consistent with the latest version of PyIbex. Below are listed the changes.
from pyIbex import * should be replaced by from pyibex import *
SepQInterProjF should be replaced by SepQInter
Moreover, to start Vibes from your terminal, write Vibes-viewer instead of vibes.
Some other modifications are described in the PyIbex documentation. (in magenta)



Install

You need Python 3, PyIbex and Vibes for graphics.

For the install of PyIbex and Vibes, see:
A video to help you for the install is available for Windows:
and also for Linux Ubuntu: .

For Linux Ubuntu, you can also open a terminal and type the following lines:
1) Install spyder 3: sudo apt-get install spyder3.
2) Install pip : sudo apt-get install python3-pip.
3) Install pyibex: sudo python3 -m pip install pyibex.
4) Install vibes: sudo python3 -m pip install vibes.
5) Download Vibes (i.e., the binary file VIBes-0.2.3-linux.AppImage) at https://github.com/ENSTABretagneRobotics/VIBES/releases/tag/0.2.3
6) Make VIBes-0.2.3-linux.AppImage executable (Right click on the icone + permissions).
    Click on the icone of Vibes. You will see a small window with nothing inside, waiting for drawing orders.
7) Start Spyder and test the example given at http://benensta.github.io/pyIbex/





Exercises



Exercise 1. Contractors and separators

This corresponds to Exercice 8 which can be found here:
A separator is a pair of two contractors: an inner contractor and an outer contractor. This exercise illustrates how Pybex (which is a Python extension of Ibex) can be used to build easily separators for sets defined as union, intersection and complements of primitive sets. You can use the second part of the following video in case of problems.







Exercise 2. Parameter estimation

This corresponds to Exercice 9 which can be found here:
Bounded error estimation problems can now be solved very easily and efficiently with the help of PyIbex.







Exercise 3. Localization of a robot from landmarks using range and bearing measurements

This corresponds to Exercice 10 which can be found here:
This exercise shows an important application which can be solved efficiently with interval analysis. Without any linearization, we show that it is possible to localize a robot in a guaranteed manner.







Exercise 4. Simultaneous Localization And Mapping (SLAM)

This corresponds to Exercice 11 which can be found here:
In a SLAM problem, many variables are involved with nonlinear constraints. This problem is considered as difficult. We show here that it it possible to solve it easily and in a reliable way using intervals.