Towards a Domain-Specific Language for Reversible Assembly Sequences

  • Ulrik Pagh Schultz
  • Johan Sund Laursen
  • Lars-Peter Ellekilde
  • Holger Bock Axelsen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9138)


Programming industrial robots for small-sized batch production of assembly operations is challenging due to the difficulty of precisely specifying general yet robust assembly operations. We observe that as the complexity of assembly increases, so does the likelihood of errors. We propose that certain classes of errors during assembly operations can be addressed using reverse execution, allowing the robot to temporarily back out of an erroneous situation, after which the assembly operation can be automatically retried. Moreover, reversibility can be used to automatically derive a disassembly sequence from a given assembly sequence, or vice versa.

This paper presents the initial design of the RASQ domain-specific language (DSL) for specifying such assembly sequences, based on initial experiments using an industrial case study. The language is defined in terms of a formal semantics corresponding to a realistic execution model currently under implementation. The DSL is used as part of a software framework that aims at tackling uncertainties through a combination of reverse and probabilistic execution.


Assembly Sequence Industrial Robot Assembly Operation Execution Trace Robot Position 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Angerer, A., Hoffmann, A., Schierl, A., Vistein, M., Reif, W.: Robotics API: Object-oriented software development for industrial robots. Journal of Software Engineering in Robotics 4(1), 1–22 (2013)Google Scholar
  2. 2.
    Buch, J.P., Laursen, J.S., Sørensen, L.C., Ellekilde, L.-P., Kraft, D., Schultz, U.P., Petersen, H.G.: Applying simulation and a domain-specific language for an adaptive action library. In: Brugali, D., Broenink, J.F., Kroeger, T., MacDonald, B.A. (eds.) SIMPAR 2014. LNCS, vol. 8810, pp. 86–97. Springer, Heidelberg (2014) Google Scholar
  3. 3.
    EU Robotics AISBL: Robotics 2020 multi-annual roadmap for robotics in europe (2014)Google Scholar
  4. 4.
    Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bi-directional tree transformations: A linguistic approach to the view update problem. ACM Transactions on Programming Languages and Systems 29(3), Article 17 (2007)Google Scholar
  5. 5.
    Haegele, M., Skordas, T., Sagert, S., Bischoff, R., Brogardh, T., Dresselhaus, M.: White paper - Industrial Robot Automation (2005).
  6. 6.
    Laursen, J.S., Buch, J.P., Sørensen, L.C., Kraft, D., Petersen, H.G., Ellekilde, L.P., Schultz, U.P.: Towards Error Handling in a DSL for Robot Assembly Tasks (2014), DSLRob 2014. arXiv:1412.4538
  7. 7.
    Muhe, H., Angerer, A., Hoffmann, A., Reif, W.: On reverse-engineering the KUKA Robot Language (2010), DSLRob 2010. arXiv:1009.5004
  8. 8.
    Savarimuthu, T.R., Liljekrans, D., Ellekilde, L.P., Ude, A., Nemec, B., Krüger, N.: Analysis of human peg-in-hole executions in a robotic embodiment using uncertain grasps. In: Robot Motion and Control (RoMoCo 2013), pp. 233–239. IEEE (2013)Google Scholar
  9. 9.
    Schultz, U., Bordignon, M., Stoy, K.: Robust and reversible execution of self-reconfiguration sequences. Robotica 29, 35–57 (2011).
  10. 10.
    Schultz, U.: Poster: programming language abstractions for self-reconfigurable robots. In: Systems, Programming, and Applications: Software for Humanity (SPLASH 2012), pp. 69–70. ACM, New York (2012)Google Scholar
  11. 11.
    Schultz, U.P.: Towards a general-purpose, reversible language for controlling self-reconfigurable robots. In: Glück, R., Yokoyama, T. (eds.) RC 2012. LNCS, vol. 7581, pp. 97–111. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  12. 12.
    Stoddart, B., Lynas, R., Zeyda, F.: A virtual machine for supporting reversible probabilistic guarded command languages. Electronic Notes in Theoretical Computer Science 253(6), 33–56 (2010). Reversible Computation (RC 2009)CrossRefGoogle Scholar
  13. 13.
    Yim, M., Shen, W.M., Salemi, B., Rus, D., Moll, M., Lipson, H., Klavins, E., Chirikjian, G.S.: Modular Self-Reconfigurable Robot Systems [Grand Challenges of Robotics]. IEEE Robotics and Automation Magazine 14(1), 43–52 (2007)CrossRefGoogle Scholar
  14. 14.
    Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: Computing Frontiers (CF 2008), pp. 43–54. ACM, New York (2008)Google Scholar
  15. 15.
    Zuliani, P.: Logical reversibility. IBM Journal of Research and Development 45(6), 807–818 (2001)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Ulrik Pagh Schultz
    • 1
  • Johan Sund Laursen
    • 1
  • Lars-Peter Ellekilde
    • 1
  • Holger Bock Axelsen
    • 2
  1. 1.University of Southern DenmarkOdenseDenmark
  2. 2.University of CopenhagenCopenhagenDenmark

Personalised recommendations