**************************** 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. .. toctree:: :maxdepth: 2 Skill Acquisition Manual SMACHA API SMACHA Graphical User Interface Manual