Software

Here is a presentation of some of the softwares I developped during past years.

ContrACT

ContrACT (CONtrol Architecture Creation Technology) is a software develoment environment that is issued from research on control architecures carried out at LIRMM during past years. Its direct ancestor is COTAMA a real-time middleware developped during the Phd thesis of A. El Jalaoui. ContrACT adds new programming features as well as tools to ease, automate and more generally simplify the development process. This environment is made of a software development tool that puts in place a development methodology for real-time control systems, and a small real-time middleware running on Linux/RTAI.

The development tool is based on an architecture description language (ADL) and a supervision level description language. The first is used to describe modules’ interfaces and composition of modules while the second is used to describe the supervision level that manages the execution of modules according to events occuring in the system.

From architecture and supervision description the tool generates C code plugged to the real-time middleware. The user has then only to implement its algorithms inside the modules’ generated code without taking care of inter-process communication or scheduling implementation. Indeed, the code generation step automatically generates a scheduler module that conforms to real-time constraints defined in composition of modules : it is then possible to defined a system in terms of multiple periodic loops (with different frequency) that are themselves made of composed algorithmic blocks and internal real-time constraints (critical duration of modules, precedence and exclusion constraints between modules, critical delay for the sequence of executed modules). Furthermore the supervision level allows to compose these loops and modules dynamically according to the current context, providing so a good flexibility to the developper.

ContrACT has been imagned as a research tool used to integrate algorithms proposed by researchers and PhD students of LIRMM and LIRMM project partners. Its development has been supported by ANR PROSIT and ANR ASSIST projects. Its main advantage reagrding other middlewares is to allow the design and the reuse of algorithms/behaviors at a fine grain thanks to the presence of an applicative scheduler. Regarding state of the art middleware for robotics, ContrACT is dedicated to the implementation and test of algorithms used in a real-time control context, not really for large scale integration process. It cannot so be compared to middleware as ROS + OROCOS which provides hundreds of composants.

Here is a list of real-time software currenlty developped with this platform :

  • real-time part of PROSIT tele-echography platforms
  • KUKA and Kinect interfaces, algorithms for relative control of KUKA LWR, used in the frame of ICARO project and for experimentation at LIRMM
  • ASSIST robot PC side control software
  • Pioneer robot control software, used for experimentation at LIRMM

Concerning its implementation the ContrACT environment is based on :

  • Eclipse/java for the graphical tool. I used the more recent model driven technologies based on EMF (Eclipse modelling framework) to develop a complete language editor with syntax coloring, checks, explorer view, code genetaor, etc. More precisely I used Xtext/Check for the textual language design, Xpand/Xtend for code generation and of course Java to customize some parts.
  • RTAI/C for the middleware part. RTAI is one of the most efficient  RT patch for Linux and thanks to its LXRT API, the coding of real-time tasks in user space becomes really simple.

    

SENIS Manager

ENIS Manager is a tool designed to manage distributed neural electrical stimulation stimulation architectures. It really first version has been develop during G. Angles’s master and I continue the design / development / refactoring since then. SENIS Manager has initially been imagined to pilot Stim3D prototype stimulator designed by DEMAR team. But now it can pilot different types of stimulators and even controller units and provides different PC side functionnalities.

SENIS Manager is divided into two parts :

  • a graphical tool used to configure the architecture as a whole (network properties, units and network belonging to the architecture) as well as programming and piloting physical units (stimulation signal generated by stimulators and control sequences on the controller). The editor part is deivered as a Java CORBA client.
  • a low level runtime, that implements a generic and extensible communication protocol with devices present in the architecture (including the PC that hosts SENIS Manager). It translates any request coming from the tool into byte code sent to the adequate units. The runtime is delivered as a CORBA component or a simple DLL.
  • Both parts communicate via a CORBA ORB.
One of the main idea behind SENIS Manager’s design is the capability to program hardware stimulation units with graphical notations. Indeed each unit in a SENIS architecture can be programmed according to a specific dedicated language exected at runtime by a dedicated micro-processor. For instance, a stimulator is programmed according a very limited set of dedicated instructions used to define the waveform, electrode’s poles configuration and control sequence on the repetition of this waveform. The efficiency of the resulting program is good (particularly in terms of energy consumption) but was requiring a simple way to be edited. The use of graphical notations has emerged as a natural way to represent such programs : the sequence of instruction edited by the user is vizualized as the equivalent generated stimulation signal at runtime.
Then SENIS Manager tool can synchronize with real hardware architecture thanks to the low level runtime : dedicated programs are translated into equivalent byte code and uploaded into physical stimulation units. Once done the user can pilot the execution of its stimulator (e.g. starting/stopping a program, modulating some parameters) via the GUI or a dedicated device.

SENIS Manager has been used for experiments in TIME project and internally to the DEMAR team. Its runtime part as also been integrated to other software as a third party component, providing the mean to control stimulators. It has evolved many times, notably regarding its graphical representation, its editing constraints, the management of new devices and new software functionnalities on the host PC. From my opinion it has reached the limits of its initial design, and I believe it needs a strong refactoring and the use of modern development tools such as EMF. That is what we put in place during the technological transfert.

Dernière mise à jour le 03/06/2014