Automatic code generation for actuator interfacing from a declarative specification

Common software design practices use object-oriented (OO) frameworks that structure software in terms of objects, classes, and packages; designers then create programs by inheritance and composition of classes and objects. Operational software components for advanced robotics (OSCAR) is one such framework for robot control software with abstractions for generalized kinematics, dynamics, performance criteria, decision making, and hardware interfacing. Even with OSCAR, writing new programs still requires a significant amount of manual labor. Feature-oriented programming (FOP) is method for software design that models and specifies programs in terms of features, where a feature encapsulates the common design decisions that occur in a domain. A set of features then forms a domain model for a product line architecture. Product variants in this product line can then be generated from a declarative specification. FOP and related technologies are emerging software engineering techniques for automatically generating programs. Our research applies FOP to robot controller software. As an example, the domain of hardware interfacing is analyzed and 41 features identified. A GUI for specifying and generating programs is presented as well. Analysis of features shows 200 possible different programs could be generated.

[1]  Delbert Tesar,et al.  Generalized software components for reconfiguring hyper-redundant manipulators , 2002 .

[2]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[3]  Herman Bruyninckx,et al.  Open robot control software: the OROCOS project , 2001, Proceedings 2001 ICRA. IEEE International Conference on Robotics and Automation (Cat. No.01CH37164).

[4]  Jan Bosch Design of an Object-Oriented Framework for Measurement Systems , 2007 .

[5]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[6]  Darren M. Dawson,et al.  QMotor 3.0 and the QMotor robotic toolkit: a PC-based control platform , 2002 .

[7]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[8]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[9]  Yannis Smaragdakis,et al.  Object-oriented frameworks and product lines , 2000, SPLC.

[10]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[11]  Don S. Batory,et al.  A tutorial on feature oriented programming and product-lines , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[12]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[13]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[14]  Delbert Tesar,et al.  A reusable operational software architecture for advanced robotics , 1996 .

[15]  Erkan Zergeroglu,et al.  QRobot - a multitasking PC based robot control system , 1998, Proceedings of the 1998 IEEE International Conference on Control Applications (Cat. No.98CH36104).

[16]  Delbert Tesar,et al.  Decision making for remote robotic operations , 2004, IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA '04. 2004.

[17]  Don S. Batory,et al.  Composition Validation and Subjectivity in GenVoca Generators , 1997, IEEE Trans. Software Eng..

[18]  Don S. Batory,et al.  Scalable software libraries , 1993, SIGSOFT '93.