Robot Assembly Skills Manual

ReconCell uses the ROS framework, meaning that all functionality can be traced down to ROS features such as services, actions, topics, parameters and others.

Assembly skills are sequences of robot motions that perform a certain operation with the assembly pieces. These motions can be generated by using data available either in MongoDB database or the tf. The MongoDB (ROS implementation provided by mongodb_store) is used to store joint space configurations and whole trajectories encoded in DMPs. The tf is used to retrieve Cartesian space transformations.

Acquisition of these skills can be done either with Kinesthetic Teaching or with the use of a Joystick Interface developed within ReconCell. For more on this please refer to the Skill Acquisition documentation

In order to ensure a set of stable conditions, the ReconCell high level execution program is represented by a state machine (SMACH), where all possible states and state transitions can be described explicitly. This task level architecture facilitates rapid creation of complex ReconCell behaviours.

SMACH syntax is written in Python and allows the user to design, maintain and debug large, complex hierarchical state machines. However, while it provides much in terms of power and flexibility, its 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 order to address this deficit, we have developed a code generation, templating and metascripting methodology for SMACH state machine assembly called SMACHA (short for “state machine assembler”, pronounced “smasha”), 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 front-end for concise scripting or a back-end for code generation for visual programming systems.