Feature oriented programming and product line architectures for open architecture robot software
Access full-text files
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Open architecture robot controllers and machine control have been long standing problems in industrial and research arenas. In the past, closed and proprietary architectures make robot controllers costly and difficult to create. The ultimate goal for robot and machine controller manufacturers is a plug-and-play architecture, in which users could simply plug a new component or device into a manufacturing system, and have it work seamlessly. Typically, present industrial robots require a substantial amount of additional, manual, labor to write integration software. Current software engineering techniques have yet to achieve the ultimate goal of plug-and-play software components. Feature Oriented Programming (FOP) is an emerging paradigm for software construction that functions at a higher level of abstraction than current, conventional methods. FOP models software in terms of features, rather than objects, classes, or packages. Using FOP techniques, a declaration of desired features for a program is used to automatically generate code. This work applies Feature Oriented Programming methods to open architecture robot controller software. Specifically, it applies FOP techniques to demonstrate the automated construction of robot software for interfacing with actuators which requires real time behavior. In Feature Oriented Programming, features are high-level, domain-specific abstractions, relevant to a user. A feature encapsulates fragments of all necessary artifacts (e.g. source code files, makefiles, documentation) required to implement that feature. These features can be organized into a grammar, thus defining a Domain Specific Language. Sentences in this grammar are specifications for different variations of programs, which can be automatically generated. FOP is thus a technique for building Product Line Software Architectures. This research analyzes the robotics domain to identify features in robot controller software. The main focus is on the level of software used for Device Interfaces (DI), which communicate at a low level with hardware such as robot servos, sensors, tools, etc. Domain analysis for the DI software identifies 41 features, encompassing Real Time features and Actuator hardware features. The Real Time features relate to concurrency and timing behavior of the DI layer, while the Actuator Hardware features relate to control capabilities of a robot. The feature design can be used to automatically generate 200 possible variations of programs for the KB2017 Dual Arm robot, the PowerCube modular robot, and Roboworks simulation environment. Generation and emulation of DI software are demonstrated within the Roboworks simulation environment. Future work should focus on testing and extending this feature design for more complext robots and devices which can be assembled on demand. Long term goals include applying FOP to higher levels of robot controller software, such as core computational components and human machine interface software