Embedding Real-Time Critical Robotics Applications in an Object-Oriented Language

Embedding Real-Time Critical Robotics Applications in an Object-Oriented Language

Embedding Real-Time Critical Robotics Applications in an Object-Oriented Language Dissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften der Fakultät für Angewandte Informatik der Universität Augsburg eingereicht von Michael Vistein März 2015 Erstgutachter: Prof. Dr. Wolfgang Reif Zweitgutachter: Prof. Dr. Alexander Knapp Tag der mündlichen Prüfung: 21. Mai 2015 Abstract Industrial robots are very flexible machines that can perform almost any task – depend- ing on the tools attached and the program they run. Nowadays industrial robots are mostly programmed using proprietary programming languages provided by the robots’ manufacturers. These languages are mostly based on very old programming languages and lack support for modern concepts such as object-oriented design; and programs can rarely be reused. To reduce the cost of robot programming, improving reusability is a key instrument. This can be achieved e.g. by using an object-oriented design process. However, standard off-the-shelf programming languages cannot fulfill the hard real-time requirements of robotics applications and robot control. This thesis introduces a data-flow graph based interface that allows the specification of real-time critical tasks, the Real-time Primitives Interface (RPI). Larger robot applications can be split up into independent parts that inherently require real-time safety (such as single motions, or synchronized tool actions). Each such part can be expressed using the RPI and executed with all timing guarantees. The tasks themselves can be specified and joined using an object-oriented interface. To achieve guaranteed transitions from one or more tasks to another set of tasks, synchronization rules are introduced. A reference implementation, the SoftRobot RCC has been created to execute robot programs specified using RPI. To convert programs specified using the object-oriented Robotics API framework, an automatic mapping algorithm from Java-based applications to data-flow-based real-time tasks is presented. iii Danksagung Die vorliegende Dissertation entstand während meiner Arbeit als wissenschaftlicher Mitar- beiter am Lehrstuhl für Softwaretechnik an der Universität Augsburg, teilweise im Rahmen des Forschungsprojektes „SoftRobot“. Zunächst möchte ich mich für die Betreuung und das Erstgutachten dieser Arbeit bei Herrn Prof. Dr. Wolfgang Reif ganz herzlich bedanken. Er ermöglichte mir die Forschung an diesem spannenden und hoch-aktuellen Thema und unterstützte mich durch viele anregende Gespräche. Für seine Tätigkeit als Zweitgutachter möchte ich mich bei Herrn Prof. Dr. Alexander Knapp bedanken. Gleichzeitig gilt mein Dank auch meinen Kollegen der Robotik und Mechatronik Gruppe, Dr. Andreas Angerer, Dr. Alwin Hoffmann, Miroslav Macho, Ludwig Nägele, Andreas Schierl und Constantin Wanninger. Viele Ergebnisse dieser Arbeit sind durch die zahlreichen, konstruktiven Dis- kussionen in dieser Gruppe entstanden. Ebenso gilt mein Dank allen anderen Kollegen am Lehrstuhl für das sehr angenehme Arbeitsklima und die hilfreichen Diskussionen und Anregungen bei unseren Lehrstuhlklausuren und Oberseminaren. Während der Laufzeit des Forschungsprojektes „SoftRobot“ wurden viele Ideen im Rahmen von regelmäßigen Projekttreffen mit den Projektpartnern MRK Systeme GmbH und KUKA Laboratories GmbH entwickelt. Hierzu geht mein Dank an Markus Bischof, Alexander Checkler, Dr. Peter Heiligensetzer, Sebastian Pieniack und Franz Stegmair. Ebenso gilt mein Dank Herrn Prof. Dr. Frank Ortmeier, der maßgeblich zur Beantragung des Projektes sowie zu den ersten Schritten im Projekt beigetragen hat. Für das aufmerksame Korrekturlesen möchte ich mich bei Dr. Andreas Angerer, Prof. Dr. Alexander Knapp sowie bei meinem Vater, Kenneth Vistein, bedanken. Abschließend gilt mein aufrichtiger Dank meiner Familie, die mich während der Erstellung dieser Arbeit fortwährend unterstützt hat. Michael Vistein v Contents 1. Introduction 1 1.1. Motivation . 2 1.2. Main contributions . 4 1.3. Structure of this work . 6 2. Basics 9 2.1. Robotics hardware . 9 2.2. Robot kinematics . 11 2.3. Robot motions . 13 2.4. External motion control . 16 2.5. Motion blending . 16 2.6. Robot programs and applications . 17 3. Real-time requirements in robotics applications 21 3.1. Real-time: Definition . 21 3.2. Necessity of real-time in robotics applications . 22 3.2.1. Motion control level . 23 3.2.2. Application level . 23 3.3. Implications of real-time on software . 24 3.3.1. Operating system support . 25 3.3.2. Development of real-time applications . 25 3.4. Real-time in industrial robotics . 26 3.4.1. KUKA Robot Language (KRL) . 26 3.4.2. GripperTech . 27 3.4.3. SpotTech . 28 3.4.4. BendTech . 28 3.4.5. Robot Sensor Interface . 29 3.4.6. LaserTech . 30 3.5. Current solutions for real-time requirements in industrial robotics . 30 3.5.1. KUKA Robot Language . 30 vii Contents 3.5.2. Stäubli VAL3 . 32 3.5.3. OROCOS . 32 3.6. Conclusion . 34 4. The SoftRobot architecture 35 4.1. Goals . 35 4.2. Architecture . 37 4.2.1. Robot Control Core . 38 4.2.2. Real-time Primitives Interface . 38 4.2.3. Robotics API . 39 4.2.4. Applications . 40 4.3. Related work . 41 5. Real-time Primitive Nets 43 5.1. Introduction . 43 5.2. Components . 44 5.2.1. Primitives . 45 5.2.2. Links . 46 5.2.3. Fragments . 46 5.3. Runtime . 47 5.3.1. Basics . 47 5.3.2. Execution phases . 48 5.3.3. Lifecycle . 49 5.3.4. Worst Case Execution Time . 51 5.3.5. Communication . 52 5.4. Examples . 52 5.4.1. Basic concepts . 53 5.4.2. One DOF point-to-point motion . 54 5.4.3. Point-to-point motion for a six DOF robot . 56 5.4.4. Linear motion . 57 5.4.5. Synchronized robot motions . 58 5.4.6. Reaction to events . 59 5.5. Required primitives and granularity . 60 5.6. Related work . 61 5.6.1. Integration of robotics applications in general purpose programming languages . 61 5.6.2. Data-flow programming languages . 63 5.6.3. Cyclic execution in real-time environments . 64 5.6.4. Real-time component structure . 65 5.6.5. Summary . 67 6. Synchronization of multiple real-time primitive nets 69 6.1. Synchronization rules . 70 6.2. Resources . 72 viii Contents 6.3. Example: motion blending . 73 6.4. Example: maintaining force . 76 6.5. Related work . 76 6.6. Conclusion . 79 7. The Robot Control Core: an execution environment for real-time primitive nets 81 7.1. Software architecture . 82 7.2. Primitives implementation . 83 7.3. Basic primitives provided by the SoftRobot RCC . 87 7.3.1. Core functions . 88 7.3.2. Primitives for general data-flow . 88 7.3.3. Array type data-flows . 91 7.3.4. Comparing values in a primitive net . 93 7.3.5. Arithmetic operations in primitive nets . 94 7.4. Primitive net creation . 95 7.4.1. Abstract syntax tree of primitive nets . 95 7.4.2. Instantiation of primitives . 96 7.5. Primitive net execution . 98 7.6. Communication interface . 100 7.6.1. Communication primitives . 102 7.6.2. Plain HTTP communication . 103 7.6.3. DirectIO . 106 7.7. Debugging . 114 7.7.1. Debugging live values of primitives . 115 7.7.2. prIDE - a web-based debugging environment . 116 8. Synchronized execution of multiple real-time primitive nets 119 8.1. Specification of synchronization rules . 119 8.2. Evaluation and execution of synchronization rules . 120 8.3. Thread management for multiple synchronized primitive nets . 121 9. Devices and drivers 127 9.1. Device usage . 128 9.2. Device interfaces . 129 9.3. Communication with applications . 134 9.4. Hardware device drivers . 135 9.4.1. The EtherCAT fieldbus . 135 9.4.2. Beckhoff I/O bus terminals . 140 9.4.3. Stäubli TX90L . 141 9.4.4. KUKA lightweight robot ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    239 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us