Hostname: page-component-7d684dbfc8-jr2wd Total loading time: 0 Render date: 2023-09-22T16:03:37.629Z Has data issue: false Feature Flags: { "corePageComponentGetUserInfoFromSharedSession": true, "coreDisableEcommerce": false, "coreDisableSocialShare": false, "coreDisableEcommerceForArticlePurchase": false, "coreDisableEcommerceForBookPurchase": false, "coreDisableEcommerceForElementPurchase": false, "coreUseNewShare": true, "useRatesEcommerce": true } hasContentIssue false

Modelling reversible execution of robotic assembly

Published online by Cambridge University Press:  11 January 2018

Johan Sund Laursen*
The Maersk Mc-Kinney Moller Institute, University of Southern Denmark, Denmark. E-mails:,
Lars-Peter Ellekilde
The Maersk Mc-Kinney Moller Institute, University of Southern Denmark, Denmark. E-mails:,
Ulrik Pagh Schultz
The Maersk Mc-Kinney Moller Institute, University of Southern Denmark, Denmark. E-mails:,
*Corresponding author. E-mail:


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.

Copyright © Cambridge University Press 2018 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)


1. Sparc, EU Robotics AISBL, Robotics 2020. Multi-Annual Roadmap–-For Robotics in Europe, Brussels, (EU Robotics AISBL, 2014).Google Scholar
2. Robotics VO, A Roadmap for U.S. Robotics from Internet to Robotics, University of California San Diego, CA, United States (2016).Google Scholar
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.Google Scholar
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.Google Scholar
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).CrossRefGoogle Scholar
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/01445150710763277CrossRefGoogle Scholar
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_8CrossRefGoogle Scholar
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.7353743CrossRefGoogle Scholar
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.Google Scholar
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.Google Scholar
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).Google Scholar
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.Google Scholar
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.Google Scholar
14. Loborg, P., Error Recovery Support in Manufacturing Control Systems Ph.D. Thesis (School of Engineering at Linköping University, 1994).Google Scholar
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).CrossRefGoogle Scholar
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).CrossRefGoogle ScholarPubMed
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.Google Scholar
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).CrossRefGoogle Scholar
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.Google Scholar
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.Google Scholar
21. Rosell, J., “Assembly and task planning using petri nets: A survey,” J. Eng. Manuf. 218, 987–994 (2004).CrossRefGoogle Scholar
22. Donald, B. R., “Error detection and recovery for robot motion planning with uncertainty,” Technical Report (Massachusetts Institute of Technology, 1987).Google Scholar
23. Fowler, M., Domain-Specific Languages (Addison Wesley, 2011).Google Scholar
24. Kuka Roboter GmbH, Kuka System Software 5.5 (Kuka Roboter GmbH, 2010).Google Scholar
25. ABB Robotics, Introduction to Rapid Programming – Operating Manual (ABB Robotics, 2012).Google Scholar
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).Google Scholar
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.Google Scholar
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).Google Scholar
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.Google Scholar
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.Google Scholar
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).Google Scholar
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).Google Scholar
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).Google Scholar
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: Scholar
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: Scholar
36. Hofmann, D., Huang, H. and Reinhart, G., “Automated shape optimization of orienting devices for vibratory bowl feeders,” 135, 119–126 (Oct. 2013).Google Scholar
37. Edmondson, N. F. and Redford, A. H., “Flexible parts feeding for flexible assembly,” Int. J. Prod. Res., 39, pp. 22792294 (2001).CrossRefGoogle Scholar
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.Google Scholar
39. Zuliani, “Logical reversibility,” IBM J. Res. Dev., 45 (6), 807818 (2001).CrossRefGoogle Scholar
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.88940CrossRefGoogle Scholar
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).Google Scholar
42. FANUC, Operators Manual – R-J3iC Controller Arc Tool (FANUC, 2006).Google Scholar
43. ABB Robotics, “Rapid overview - technical reference manual,” (2004).Google Scholar
44. Schultz, U., Bordignon, M., and Stoy, K., “Robust and reversible execution of self-reconfiguration sequences,” Robotica, 29, 3557 (2011).CrossRefGoogle Scholar
45. Schultz, U., “Towards a general purpose, reversible language for controlling self-reconfigurable robots,” Reversible Comput. 7581, 97111 (2013).CrossRefGoogle Scholar
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.Google Scholar
47. Vongbunyong, S. and Chen, W. H., Disassembly Automation. (Switzerland: Springer International Publishing, 2015) pp. 2554.Google Scholar
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.Google Scholar
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).Google Scholar
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.Google Scholar