Rapid State Machine Assembly for Modular Robot Control Using Meta-Scripting, Templating and Code Generation

Nov 1, 2017·
Barry Ridge
,
Timotej Gašpar
,
Aleš Ude
· 1 min read
A dual-arm stacking task running on the Baxter simulator using SMACHA-generated code.
Abstract
As robotic systems have become more and more complex and difficult to manage, various software architectures, libraries and programming paradigms have been introduced aimed at high-level control and integration of their constituent parts. The Robot Operating System (ROS) has, for many, become the de facto software framework for communication standardisation and hardware interface abstraction, and various packages within its ecosystem have come to the fore as being reliable design choices for dictating control flow. ROSbased software packages that use state machines as their core methodology to bridge the gap between low-level imperative task scripting and higher-level task planning have proven particularly popular. However, while they provide much in terms of power and flexibility, their overall task-level simplicity can often be obfuscated at the script-level by boilerplate code, intricate structure and lack of code reuse between state machine prototypes. In this paper, we aim to address this deficit by proposing a code generation, templating and metascripting methodology for state machine assembly, as well as an accompanying application programming interface (API), for the rapid, modular development of robot control programs. The API has been developed to function effectively as either a frontend for concise scripting or a back-end for code generation for visual programming systems. Its capabilities are demonstrated in an experiment using a simulated humanoid robot platform.
Type
Publication
2017 IEEE-RAS 17th International Conference on Humanoid Robotics (Humanoids)

Video