iTaSC DSL: rapid iTaSC application development

iTaSC DSL is a Domain Specific Language for constraint-based programming, more specifically iTaSC.

  • The DSL provides a formal model for iTaSC applications, that also serves as a design template and guideline.
  • It provides a 'scripting language' to model an iTaSC application. This reduces the effort of creating an iTaSC application wrt. the previous labour intensive process of editing multiple files.
  • The DSL is not just a scripting language, but a formal model. A model of an iTaSC application (M1 level model) can be checked for conformity to the iTaSC model (M2 level model). These checks occur before running the application, and return meaningful errors instead of (obscure) run-time errors, hence reducing debugging efforts.
  • An iTaSC application model can be 'executed/parsed' to running code.

For more explanation and examples, please read D. Vanthienen, M. Klotzbuecher, T. De Laet, J. De Schutter, and H. Bruyninckx, Rapid application development of constrained-based task modelling and execution using domain specific languages, in Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Tokyo, Japan, 2013, pp. 1860–1866.

Videos and links


The code, including examples can be found on:

It is recommended to use the devel branch for the DSL as well as the iTaSC stacks.

Running examples

In a typical use case, you'll interact with the running application through events.

For the Orocos reference implementation (in a ROS environment): One way is to send events in the Orocos task browser through the event_firer component that is automatically started when parsing and deploying an application.

Another, more user-friendly way, is to send events on the /itasc/ ros_common_events_in ROS topic (see README of the itasc_dsl repository).

A GUI to send events can be found on:

Look for an example at the itasc_erf2012_demo, that contains a, launching this GUI with events for the iTaSC ERF2012 tutorial.