Skip to main content

Modelling reversible execution of robotic assembly

  • Johan Sund Laursen (a1), Lars-Peter Ellekilde (a1) and Ulrik Pagh Schultz (a1)

Programming robotic assembly for industrial small-batch production is challenging; hence, it is vital to increase robustness and reduce development effort in order to achieve flexible robotic automation. A human who has made an assembly error will often simply undo the process until the error is undone and then restart the assembly. Conceptually, robots could do the same. This paper introduces a programming model that enables robot assembly programs to be executed in reverse. We investigate the challenges in running robot programs backwards and present a classification of reversibility characteristics. We demonstrate how temporarily switching the direction of program execution can be an efficient error recovery mechanism. Moreover, we demonstrate additional benefits arising from supporting reversibility in an assembly language, such as increased code reuse and automatically derived disassembly sequences. As a default approach to reversibility, we use program inversion and statement-level inversion of commands, but with a novel override option providing alternative sequences for asymmetric reverse actions. To efficiently program for this model, this paper introduces a new domain-specific language, SCP-RASQ (Simple C++ Reversible Assembly SeQuences). In initial experiments, where 200 consecutive assemblies of two industrial cases were performed, 18 of 22 errors were corrected automatically using only the trial-and-error capabilities that come from reverse execution.

Corresponding author
*Corresponding author. E-mail:
Hide All
1. Sparc, EU Robotics AISBL, Robotics 2020. Multi-Annual Roadmap–-For Robotics in Europe, Brussels, (EU Robotics AISBL, 2014).
2. Robotics VO, A Roadmap for U.S. Robotics from Internet to Robotics, University of California San Diego, CA, United States (2016).
3. Jörg, S., Langwald, J., Stelter, J., Hirzinger, G., and Natale, C., “Flexible Robot-Assembly Using a Multi-Sensory Approach,” Proceedings of the 2000 IEEE International Conference on Robotics and Automation (2000) pp. 3687–3694.
4. Zhang, B., Wang, J., Rossano, G., and Martinez, C., “Vision-Guided Robotic Assembly Using Uncalibrated Vision,” Proceedings of the 2011 IEEE International Conference on Mechatronics and Automation (ICMA) (Aug 2011) pp. 1384–1389.
5. Neto, P., Mendes, N., Araújo, R., Pires, J. N., and Moreira, A. P., “High-level robot programming based on CAD: Dealing with unpredictable environments,” Ind. Robot: Int. J., 39 (3), 294303 (2012).
6. Chen, H., Zhang, G., Zhang, H., and Fuhlbrigge, T. A., “Integrated robotic system for high precision assembly in a semi-structured environment,” Assem. Autom. 27 (3), 247252 (2007). doi:10.1108/01445150710763277
7. Buch, J. P., Laursen, J. S., Sørensen, L. C., Ellekilde, L.-P., Kraft, D., Schultz, U. P., and Petersen, H. G., “Applying simulation and a domain-specific language for an adaptive action library,” Lecture Notes Comput. Sci. 8810, 8697 (2014). doi:10.1007/978-3-319-11900-7_8
8. Koval, M. C., King, J. E., Pollard, N. S., and Srinivasa, S. S., “Robust Trajectory Selection for Rearrangement Planning as a Multi-Armed Bandit Problem,” Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (2015) pp. 2678–2685. doi:10.1109/IROS.2015.7353743
9. Yokoyama, T., Axelsen, H. B., and Glück, R., “Principles of a Reversible Programming Language,” Proceedings of the Conference on Computing Frontiers (CF), New York, NY, USA: ACM (2008) pp. 4354.
10. Schultz, U. P., Laursen, J. S., Ellekilde, L.-P., and Axelsen, H. B., “Towards a domain-specific language for reversible assembly sequence,” Proceedings of the 7th International Conference on Reversible Computation (RC 2015), Grenoble, France, July 16–17, (2015) (Jean, K. and Jean-Bernard, S., eds.), Vol. 9138 (Springer International Publishing, 2015) pp. 111–126.
11. Laursen, J. S., Schultz, U. P., and Ellekilde, L.-P., “Automatic Error Recovery in Robot Assembly Operations Using Reverse Execution,” Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (2015).
12. Thomas, U., Hirzinger, G., Rumpe, B., Schulze, C., and Wortmann, A., “A New Skill Based Robot Programming Language Using uml/p Statecharts,” Proceedings of the IEEE International Conference on Robotics and Automation (ICRA) (2013) pp. 461–466.
13. Buch, J. P., Sørensen, L. C., Kraft, D., and Petersen, H. G., “Facilitating Robotic Subtask Reuse by a New Representation of Parametrized Solutions,” Proceedings of the 13th International Conference on Informatics in Control, Automation and Robotics (2016) pp. 37–48.
14. Loborg, P., Error Recovery Support in Manufacturing Control Systems Ph.D. Thesis (School of Engineering at Linköping University, 1994).
15. Christensen, A., O'Grady, R. O., Birattari, M. B., and Dorigo, M. D., “Fault detection in autonomous robots based on fault injection and learning,” Auton. Robots, 24 (1), 4967 (Jan. 2008).
16. Tarapore, D., Lima, P., Carneiro, J., and Christensen, A., “To err is robotic, to tolerate immunological: Fault detection in multirobot systems,” Bioinspiration and Biomemetics, 10 (1), 016 014016 014 (Feb. 2015).
17. Canham, R., Jackson, A., and Tyrrell, A., “Robot error detection using an artificial immune system,” Proceedings of the NASA/DoD Conference on Evolvable Hardware (Jul. 2003) pp. 199–207.
18. Okumura, S., Take, N. and Okino, N., “Error prevention in robotic assembly tasks by a machine vision and statistical pattern recognition method,” Int. J. Prod. Res. 43 (7), 13971410 (2005).
19. Wang, Y., Cai, J., Wang, Y., Hu, Y., Xiong, R., Liu, Y., Zhang, J., and Qi, L., “Probabilistic Graph Based Spatial Assembly Relation Inference for Programming of Assembly Task by Demonstration,” Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (2015) pp. 4402–4407.
20. Baydar, C. and Saitou, K., “Off-line Error Prediction, Diagnosis and Recovery Using Virtual Assembly Systems,” Proceedings of the 2001 IEEE International Conference on Robotics and Automation (ICRA), Vol. 1 (2001) pp. 818–823.
21. Rosell, J., “Assembly and task planning using petri nets: A survey,” J. Eng. Manuf. 218, 987–994 (2004).
22. Donald, B. R., “Error detection and recovery for robot motion planning with uncertainty,” Technical Report (Massachusetts Institute of Technology, 1987).
23. Fowler, M., Domain-Specific Languages (Addison Wesley, 2011).
24. Kuka Roboter GmbH, Kuka System Software 5.5 (Kuka Roboter GmbH, 2010).
25. ABB Robotics, Introduction to Rapid Programming – Operating Manual (ABB Robotics, 2012).
26. Angerer, A., Hoffmann, A., Schierl, A., Vistein, M., and Reif, W., “Robotics API: Object-oriented software development for industrial robots,” J. Softw. Eng. Robot. 4, 122 (May 2013).
27. Nordmann, A., Hochgeschwender, N. and Wrede, S., “A Survey on Domain-Specific Languages in Robotics,” Proceedings of the 4th International Conference Simulation, Modeling, and Programming for Autonomous Robots, SIMPAR 2014 (2014) pp. 195–206.
28. Buchmann, T., Baumgartl, J., Henrich, D., and Westfechtel, B., “Towards a Domain-Specific Language for Pick-and-Place Applications,” Proceedings of the 4th International Workshop on Domain-Specific Languages and Models for ROBotic Systems (DSLRob-13) (2014).
29. Laursen, J. S., Buch, J. P., Sørensen, L. C., Kraft, D., Petersen, H. G., Ellekilde, L.-P., and Schultz, U. P., “Towards error handling in a DSL for robot assembly tasks,” Proceedings of the DSLRob '14 (2014) arXiv:1412.4538.
30. Hochgeschwender, N., Schneider, S., Voos, H., and Kraetzschmar, G. K., “Declarative Specification of Robot Perception Architectures,” Proceedings of the 4th International Conference on Simulation, Modeling, and Programming for Autonomous Robots, SIMPAR (2014) pp. 291–302.
31. Huckaby, J. and Christensen, H., “A taxonomic framework for task modeling and knowledge transfer in manufacturing robotics,” AAAI Workshops at the Twenty-Sixth AAAI Conference on Artificial Intelligence Association for the Advancement of Artificial Intelligence, CA, US (2012).
32. Wahrburg, A., Zeiss, S., Matthias, B., Peters, J., and Ding, H., “Combined Pose-Wrench and State Machine Representation for Modeling Robotic Assembly Skills,” Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (2015).
33. Bøgh, S., Nielsen, O. S., Pedersen, M. R., Krüger, V., and O. Madsen, “Does Your Robot Have Skills?” Proceedings of the 43rd International Symposium on Robotics (VDE Verlag GMBH, 2012).
34. Fikes, R. E. and Nilsson, N. J., “Strips: A New Approach to the Application of Theorem Proving to Problem Solving,” Proceedings of the 2nd International Joint Conference on Artificial Intelligence (IJCAI' 71) (San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 1971) pp. 608–620. Available:
35. Garrett, C. R. et al. “Backward-forward search for manipulation planning,” Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (2015). Available:
36. Hofmann, D., Huang, H. and Reinhart, G., “Automated shape optimization of orienting devices for vibratory bowl feeders,” 135, 119–126 (Oct. 2013).
37. Edmondson, N. F. and Redford, A. H., “Flexible parts feeding for flexible assembly,” Int. J. Prod. Res., 39, pp. 22792294 (2001).
38. Stoddart, B., Lynas, R. and Zeyda, F., “A virtual machine for supporting reversible probabilistic guarded command languages,” Proceedings of the International Conference on Reversible Computation (RC '09), Electronic Notes in Theoretical Computer Science, vol. 253, no. 6 (2010) pp. 33–56.
39. Zuliani, “Logical reversibility,” IBM J. Res. Dev., 45 (6), 807818 (2001).
40. Agrawal, H., DeMillo, R. A., and Spafford, E. H., “An execution-backtracking approach to debugging,” IEEE Softw., 8 (3), 2126, May (1991). doi:10.1109/52.88940
41. Mühe, H., Angerer, A., Hoffmann, A. and Reif, W., “On reverse-engineering the Kuka robot language,” 1st International Workshop on Domain-Specific Languages and Models for ROBotic Syst. (2010).
42. FANUC, Operators Manual – R-J3iC Controller Arc Tool (FANUC, 2006).
43. ABB Robotics, “Rapid overview - technical reference manual,” (2004).
44. Schultz, U., Bordignon, M., and Stoy, K., “Robust and reversible execution of self-reconfiguration sequences,” Robotica, 29, 3557 (2011).
45. Schultz, U., “Towards a general purpose, reversible language for controlling self-reconfigurable robots,” Reversible Comput. 7581, 97111 (2013).
46. Vongbunyong, S., Kara, S. and Pagnucco, M., “A Framework for Using Cognitive Robotics in Disassembly Automation,” Proceedings of the 19th CIRP Conference on Life Cycle Engineering, 19 (2012) pp. 173178.
47. Vongbunyong, S. and Chen, W. H., Disassembly Automation. (Switzerland: Springer International Publishing, 2015) pp. 2554.
48. Szalatkiewicz, J., “Robotic Disassembly of the Waste of Electrical and Electronic Equipment, Based on the Criteria of Identification and Analysis of Waste Characteristics, Presented on the Example of Computer Hard Disk Drives,” Proceedings of International Conference on Product Life Cycle Management (PLM '11) (2011) pp. 287–294.
49. Scharke, H., Comprehensive Information Chain for Automated Disassembly of Obsolete Technical Appliances, Schriftenreihe: Informationstechnische Systeme und Organisation von Produktion und Logistik. (GITO-Verlag, 2003).
50. Ellekilde, L.-P., Buch, J. P., Kraft, D., Iversen, T. M., Laursen, J. S., Mathiesen, S., Sørensen, L. C., Petersen, H. G., Chrysostomou, D., Hansson, M., and Schou, C., Industrial Assembly Cases (2016), University of Southern Denmark, The Maersk Mc-Kinney Moeller Institute, Denmark.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

  • ISSN: 0263-5747
  • EISSN: 1469-8668
  • URL: /core/journals/robotica
Please enter your name
Please enter a valid email address
Who would you like to send this to? *



Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed