Project development

RCML version 1.0.8 release

Release 1.0.8 is a maintenance release. It primarily includes internal improvements and optimizations to facilitate support.

This RCML version introduces blocking counters called "semaphores", which allow the programmer to track and monitor RCML behavior when the robots switch from parallel task execution to serial task execution. The prerequisites for this innovation were the build tasks that would allow parallel installation of new parts and assemblies into the assembled structure.

The list of changes:

  • - Added: system functions for semaphores management (blocking counters);
  • - Added: ignoring of exceptions thrown by the functions that are executed without waiting;
  • - Fixed: sometimes resulted in statistics loss when a robot performed a user-defined function;
  • - Fixed: unblocking of the statistics database by the interpreter at the moment of sending requests to the robot selection modules;
  • - Fixed: logical (and/or) operations priority;
  • - Fixed: delayed variable initialization;
  • - Removed: robot selection by priority if the robot's selection module couldn’t make selection;
  • - Removed: support of robot selection for robot modules with API versions 000 and 100.

Download RCML

RCML version 1.0.7 has been released

Release 1.0.7 has been the most highly anticipated, and its development took more than six months.

The key innovation of this release is the ability to automatically configure the process with participation of the robots. The RCML interpreter can now accumulate experience in using robots, and in each subsequent iteration find such variants of distributing the tasks between the robots that they are performed within the minimum period of time.

This is achieved by accumulating the statistics of robots’ performance, and by using the new mechanism for distributing tasks, which takes the obtained statistics into account.

The List of Changes:

  • The function of recording the robots’ statistics, and the mechanism of accumulating the experience of using robots have been added;
  • A new type of modules has been added - the robots selection modules make it possible to enter one’s own algorithms of distributing tasks between the robots;
  • The mechanism of localizing the system messages has been added. Russian localization has been added;
  • New RCML system functions have been added for the interlocking mechanism, which makes it possible to monitor the functions performed by the robots in parallel;
  • Multi-line comments have been added;
  • Several bugs that had caused memory leaks have been fixed;
  • The critical errors in the compiler that caused failure in case of a particular set of instructions have been fixed;
  • The critical bug that caused a failure when a robot finished the last instruction in the set has been fixed.

The roadmap for future releases:

  • Release 1.0.8 - a service release aimed at improving stability and usability of the environment;
  • Release 1.1.0 - a server version of the RCML interpreter with support for parallel execution of RCML programs and indication of program priorities;
  • Release 1.2.0 - introduction of new data types (vector, multiple robots) for controlling a set (swarm) of robots.

Download from


A new version of RCML 1.0.6


  • Some optimizations for PCode;
  • Added the deletion of dead RCML code & non-reached RCML code;
  • Fixed syntax bugs with robot's vars: 
    • For robot functions: use of robot's vars is prohibited;
    • For user functions: use of robot's vars is prohibited in expressions; 
  • Fix bug with use the continue operator outside the loop;
  • Fix bug with try & catch into loop;
  • Rename UID to IID keyword (Interface identifier);
  • Added more deep optimizations for PCode (work time of compiler few increased);
  • Fix bug for the inadmissible indexes of commands of modules;
  • Added feature for throw & catch exception value;
  • Added PCode backward compatibility;
  • Added feature for the communicate RCML programs with OS through RCML interpreter:
    • Pass the command line params to params into main function;
    • Pass return value of main function to OS as exit code;
    • Pass exception to OS as exit code 1;
  • Updated syntax map.

RCML released version 1.0.5

Common changelog:

  • Added suppport for api's versions of modules (multiversions of api).
  • Added support for Repository system (only for freeware modules)
  • Fixed bug for the search lib paths.

Changelog of the compiler:

  • Added detailed output of erros.
  • Fixed bugs with invalid characters into lexical analysis.
  • Fixed bug with old version of bison.
  • Changed Bison from 2.4.5 to 3.0.4

Changelog of the interpreter:

  • Fixed bug when module produce error when program is start.
  • Fixed initiliazed bug with system function - input.

Version 1.0.4 is available for downloading

List of changes:

  • Command packages added
  • Flags of command completion for user-defined functions added
  • Robots synchronization improved
  • Macros support added 


12, Monastyrskaya St., lit. A,
Office 600, Perm, Russia


+7 (342) 214 01 84