Variability Modeling and Resolution in Component-based Robotics Systems

The routine use of existing solutions in the development of new systems is a key attribute of every mature engineering discipline. Software reuse is indeed the state of the practice in various domains (e.g. telecommunications, automotive and avionics). One of the key factors that enable the development of reusable software is the flexibility, which is the ease with which a system can be modified to be used in applications or environments different from those for which it was originally designed. In robotics software reuse is still at an early stage. This is due to the complexity and the huge variability that characterize this domain. The complexity makes the development of reusable software a task that requires advanced software engineering techniques, which are not always mastered by robotics experts. The variability of hardware, environment and task makes frequent the changes that occur in the application requirements. The research documented in this thesis investigates new approaches for the development of component-based robotics systems, which are flexible enough to accommodate the changes that are likely to occur to the software requirements. Addressing the flexibility of robotics software systems and variability modeling and resolution are thus the main topics. The first contribution is a software development process that explicitly takes into account the variability. The process is based on two of the most promising approaches to software reuse, namely the Software Product Lines and the Model Driven Engineering. This thesis describes the process, illustrates the models and tools that have been developed for supporting it, and exemplifies its application by means of a case study. The second contribution consists of a set of approaches that have been designed for developing component-based system with an high level of flexibility and reusability. In particular this approaches focus on addressing the software framework and the hardware variability.

[1]  Dieter Schmalstieg,et al.  ARToolKitPlus for Pose Trackin on Mobile Devices , 2007 .

[2]  Jean-Paul Laumond,et al.  Guidelines in nonholonomic motion planning for mobile robots , 1998 .

[3]  Carlos José Pereira de Lucena,et al.  Automating the Product Derivation Process of Multi-agent Systems Product Lines , 2009, SBES.

[4]  Daniele Comotti,et al.  A Java vs. C++ Performance Evaluation: A 3D Modeling Benchmark , 2012, SIMPAR.

[5]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[6]  Ashraf Elnagar,et al.  A global path planning Java-based system for autonomous mobile robots , 2004, Sci. Comput. Program..

[7]  Paul Hudak,et al.  An Ode to Arrows , 2010, PADL.

[8]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

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

[10]  Issa A. D. Nesnas,et al.  The CLARAty Project: Coping with Hardware and Software Heterogeneity , 2005, PPSDR@ICRA.

[11]  Reid G. Simmons,et al.  Robotic Systems Architectures and Programming , 2008, Springer Handbook of Robotics.

[12]  Jeffrey S. Poulin,et al.  Measuring software reuse - principles, practices, and economic models , 1996 .

[13]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[14]  Steve Cousins Exponential Growth of ROS , 2011 .

[15]  B. Kiss,et al.  Extension of the Rapidly Exploring Random Tree Algorithm with Key Configurations for Nonholonomic Motion Planning , 2006, 2006 IEEE International Conference on Mechatronics.

[16]  Egon Börger,et al.  Abstract State Machines. A Method for High-Level System Design and Analysis , 2003 .

[17]  S. Thrun Learning Occupancy Grids With Forward Sensor Models , 2002 .

[18]  Marco Guarnieri,et al.  A Domain Specific Language for Modeling Differential Constraints of Mobile Robots , 2012 .

[19]  Steven M. LaValle,et al.  Planning algorithms , 2006 .

[20]  Elvinia Riccobene,et al.  A Modeling and Executable Language for Designing and Prototyping Service-Oriented Applications , 2011, 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications.

[21]  M. Matarić Situated Robotics , 2002 .

[22]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[23]  J.-P. Laumond,et al.  Move3D: A generic platform for path planning , 2001, Proceedings of the 2001 IEEE International Symposium on Assembly and Task Planning (ISATP2001). Assembly and Disassembly in the Twenty-first Century. (Cat. No.01TH8560).

[24]  Kostas E. Bekris,et al.  OOPS for Motion Planning: An Online, Open-source, Programming System , 2007, Proceedings 2007 IEEE International Conference on Robotics and Automation.

[25]  Wolfram Burgard,et al.  The dynamic window approach to collision avoidance , 1997, IEEE Robotics Autom. Mag..

[26]  Hirokazu Kato,et al.  Marker tracking and HMD calibration for a video-based augmented reality conferencing system , 1999, Proceedings 2nd IEEE and ACM International Workshop on Augmented Reality (IWAR'99).

[27]  Patrizia Scandurra,et al.  Component-based robotic engineering (Part I) [Tutorial] , 2009, IEEE Robotics & Automation Magazine.

[28]  Elvinia Riccobene,et al.  A formal framework for coordinated simulation of heterogeneous service-oriented applications ? , 2011, FACS 2011.

[29]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[30]  Manuela Rocchi,et al.  A third if , 2010 .

[31]  Amita Sharma Investigating the Application of Feature-Oriented Pro- gramming in the Development of Banking Software Using Eclipse-FeatureIDE Environment , 2011 .

[32]  Susan Eisenbach,et al.  Coordination in Evolving Systems , 1996, TreDS.

[33]  Kiyotaka Izumi,et al.  Construction of an Omnidirectional Mobile Robot Platform Based on Active Dual-Wheel Caster Mechanisms and Development of a Control Simulator , 2000, J. Intell. Robotic Syst..

[34]  Erwin Prassler,et al.  Software Engineering for Robotics , 2009 .

[35]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[36]  Jonathan Riehl Implementing the MyFEM Embedded Domain-specific Language , 2009 .

[37]  Óscar Martínez Mozos,et al.  Furniture Models Learned from the WWW , 2011, IEEE Robotics & Automation Magazine.

[38]  Keigo Watanabe,et al.  Dynamic Model and Control for a Holonomic Omnidirectional Mobile Robot , 2001, Auton. Robots.

[39]  Michael H. Hohn A little language for modularizing numerical PDE solvers , 2004, Softw. Pract. Exp..

[40]  Michael A. Greenspan,et al.  MPK: An open extensible motion planning kernel , 2001, J. Field Robotics.

[41]  Ilka Philippow,et al.  EXTENDING FEATURE DIAGRAMS WITH UML MULTIPLICITIES , 2002 .

[42]  Morten Strandberg,et al.  Robot path planning : an object-oriented approach , 2004 .

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

[44]  Herman Bruyninckx,et al.  Service Component Architectures in Robotics: The SCA-Orocos Integration , 2011, ISoLA Workshops.

[45]  Iwan Ulrich,et al.  VFH+: reliable obstacle avoidance for fast mobile robots , 1998, Proceedings. 1998 IEEE International Conference on Robotics and Automation (Cat. No.98CH36146).

[46]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[47]  Oussama Khatib,et al.  Elastic bands: connecting path planning and control , 1993, [1993] Proceedings IEEE International Conference on Robotics and Automation.

[48]  Lutz Prechelt Technical opinion: comparing Java vs. C/C++ efficiency differences to interpersonal differences , 1999, CACM.

[49]  Eric A. Marks,et al.  Service-Oriented Architecture: A Planning and Implementation Guide for Business and Technology , 2006 .

[50]  Rodney A. Brooks,et al.  Intelligence Without Reason , 1991, IJCAI.

[51]  Carlos José Pereira de Lucena,et al.  Integrating Component and Product Lines Technologies , 2008, ICSR.

[52]  Bernd Witzigmann Modelling tools , 2011 .

[53]  Paulo Menezes,et al.  Teleoperating a mobile robot. A solution based on JAVA language , 1997, ISIE '97 Proceeding of the IEEE International Symposium on Industrial Electronics.

[54]  Jaejoon Lee,et al.  A feature-oriented approach for developing reusable product line assets of service-based systems , 2010, J. Syst. Softw..

[55]  Robin R. Murphy,et al.  Application of the Distributed Field Robot Architecture to a Simulated Demining Task , 2005, Proceedings of the 2005 IEEE International Conference on Robotics and Automation.

[56]  Klas Nilsson,et al.  Using real-time Java for industrial robot control , 2007, JTRES.

[57]  Nobuto Matsuhira,et al.  Development of a concept model of a robotic information home appliance, ApriAlpha , 2004, 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566).

[58]  Erwin Prassler,et al.  Component-based refactoring of motion planning libraries , 2010, 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[59]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[60]  Krzysztof Czarnecki,et al.  Generative Programming for Embedded Software: An Industrial Experience Report , 2002, GPCE.

[61]  John A. Miller,et al.  Using Domain Specific Language for modeling and simulation: ScalaTion as a case study , 2010, Proceedings of the 2010 Winter Simulation Conference.

[62]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[63]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[64]  Daniele Nardi,et al.  Design choices for modular and flexible robotic software development: the OpenRDK viewpoint , 2012 .

[65]  F. M. RAIMONDI-L Real-Time Remote Control of a Robot Manipulator using Java and Client-Server Architecture , .

[66]  Lydia E. Kavraki,et al.  On the implementation of single-query sampling-based motion planners , 2010, 2010 IEEE International Conference on Robotics and Automation.

[67]  M Tenorth,et al.  Web-Enabled Robots , 2011, IEEE Robotics & Automation Magazine.

[68]  Javier Minguez,et al.  Nearness diagram (ND) navigation: collision avoidance in troublesome scenarios , 2004, IEEE Transactions on Robotics and Automation.

[69]  Nicola Tomatis BlueBotics: Navigation for the Clever Robot , 2011 .

[70]  Bruce W. Char,et al.  Symbolic computation in Java: an appraisement , 1999, ISSAC '99.

[71]  James J. Kuffner,et al.  OpenRAVE: A Planning Architecture for Autonomous Robotics , 2008 .

[72]  Toshio Fukuda,et al.  A Special Issue Toward a WWW for Robots [From the Guest Editors] , 2011 .

[73]  Joachim Hertzberg,et al.  Automatic construction of polygonal maps from point cloud data , 2010, 2010 IEEE Safety Security and Rescue Robotics.

[74]  Standard Glossary of Software Engineering Terminology , 1990 .

[75]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[76]  David D. Langan,et al.  Performance Evaluation : Java vs C + + , 2001 .

[77]  Martin D. Westhead,et al.  A methodology for benchmarking Java Grande applications , 1999, JAVA '99.

[78]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[79]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.