University of Twente Student Theses


Writing reusable code for robotics

Ellery, D. (2017) Writing reusable code for robotics.

Abstract:In the i-Botics project about intuitive robotics, reusable software is desired to speed up and simplify robot software design. Nowadays, software is created for a specific application, reducing its reuse in multiple robotic applications. Functional source code of the implementation can be re-used in future projects by writing in a modular way. The goal of this thesis is to write reusable software for robotic applications that is language and platform independent. Major topics for reusable software are: documentation, extensibility, intellectual property issues, modularity, packaging, portability, standards compliance, support and verification and testing. (Marshall et al., 2010). To quantify the level of reuse, the reuse readiness levels (RRL) are used. Requirements for a reusable component were defined from the nine topics and their RRL. There are multiple characteristics of software writing that make software reusable. A selection of characteristics is made to create a paradigm for writing reusable software. A look into three main paradigms was taken: object-oriented programming, component-based software framework (CSBF) and the separation of 5 concerns. Existing examples of reusable software using these paradigms are middleware. Middleware is software that connects individual components. Each component is a standalone object, which uses the object-oriented paradigm. The middleware defines the composition, coordination and communication. The configuration and computation is written by the user. The separation of 5 concerns in software writing allows for simple replacement of a single concern, without needing to adjust another. This allows adding pre-written computational software into generated middleware software. From design paradigms, model-driven design is used to create a design in a high level model, which is then generated as a middleware hierarchy of “empty” components, not containing any computational and/or configurable software. After reviewing the most common CBSF middleware, it turns out that a finite state machine (FSM) is used in each component. The connection between middleware and a general component is achieved using an interface, which allows the middleware to use a general component without having to know how it is implemented. By writing the computational component in a reusable and general way, the computational and configurable software can be reused in different projects. Following the structure of the FSM, easy integration of a general component into middleware is achieved. A demonstrator was designed, by writing a general component that achieved the requirements set by the RRL. This component was then integrated into a generated middleware and tested. The same component was integrated into a second middleware to determine if it was platform independent. Both times, the component worked as expected. It is concluded that the design approach to create pre-written components that can be integrated into middleware is viable. These components can be reused in other projects, that use different middleware, running on different hardware. It is recommended that the designed work flow needs to be used by other users in other applications. Feedback received from the users, should be used to improved the work flow.
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:50 technical science in general, 54 computer science
Programme:Systems and Control MSc (60359)
Link to this item:
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page