Tubex library

In a nutshell

Tubex is a C++ library providing tools for computations over sets of trajectories. It has been designed to deal with dynamical systems defined by non-linear differential equations and involving constraints such as trajectory evaluations, time uncertainties or delays. These constraints are commonly encountered in mobile robotics: Tubex provides solutions to deal with problems that are usually hardly solvable by conventional methods such as particle approaches or Kalman filters.

The building blocks of this library are tubes, that represent domains for trajectory variables (e.g. signals evolving with time). When a trajectory \(x(\cdot)\) comes with uncertainties (due to numerical approximations or errors coming from sensors), a reliable enclosure of it can be made thanks to a tube \([x](\cdot)\).

A tube is defined as an interval of two trajectories. Its bounds delineate the uncertainties of a dynamical system, thus defining a solution set. Then, any operation related to \(x(\cdot)\) will be made on its reliable enclosure \([x](\cdot)\), which allows guaranteed outputs. These computations stand on interval analysis, a well suited tool that reliably propagates uncertainties.

Mobile robotics has been the initial motivation of this project: the mathematical tools provided in Tubex come together with robotic applications.

Computations stands on the IBEX library that provides reliable tools for static systems.


Documentation (in progress)

Further pages will be written soon, presenting contractors, bisections, fixed point resolutions, graphical tools and robotic applications.

The technical documentation is also available here:

Licence and development

This software is under GNU Lesser General Public License.

For recent improvements and activities, see the Github Tubex repository. A Python version (pyIbex wrapping) is planned.