Toward adaptation and reuse of advanced robotic software

As robotic software systems become larger and more complex, it is increasingly important to reuse existing software components to control development costs. For a broad class of relatively simple components, ranging from sensor and actuation interfaces to many simple perception and navigation algorithms, this can be a reasonably straightforward process, and many excellent frameworks have been developed in recent years that support reuse of such components in novel systems. However, there is also a class of more advanced software components, such as for modeling and interacting with complex environments, for which reuse can be a much more challenging problem. In particular, many advanced robotic algorithms can be highly sensitive to the perception and actuation capabilities of the specific robots they are deployed on, in turn requiring significant and invasive modifications to accommodate the specific capabilities of a different robotic system. This work examines the nature of this sensitivity and proposes a novel design methodology for isolating a stable, reusable “core” algorithm from any platform-specific enhancements, or “supplemental” effects. Modern software engineering techniques are used to encapsulate these supplemental effects separately from the core algorithm, allowing platform-specific details to be accommodated by modular substitution instead of direct modification of the “core” component. This methodology is experimentally evaluated on existing software for autonomous driving behaviors, yielding useful insights into the creation of highly adaptable robotic software components.

[1]  William Whittaker,et al.  Autonomous driving in urban environments: Boss and the Urban Challenge , 2008, J. Field Robotics.

[2]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Bruce A. MacDonald,et al.  Player 2.0: Toward a Practical Robot Programming Framework , 2008 .

[5]  Stéphane Viollet,et al.  Toward Optic Flow Regulation for Wall-Following and Centring Behaviours , 2006 .

[6]  William G. Griswold,et al.  The structure and value of modularity in software design , 2001, ESEC/FSE-9.

[7]  John M. Dolan,et al.  Street smarts for boss , 2009, IEEE Robotics & Automation Magazine.

[8]  Tara Estlin,et al.  CLARAty: Challenges and Steps toward Reusable Robotic Software , 2006 .

[9]  Sebastian Thrun,et al.  Perspectives on standardization in mobile robot programming: the Carnegie Mellon Navigation (CARMEN) Toolkit , 2003, Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003) (Cat. No.03CH37453).

[10]  Tara Estlin,et al.  CLARAty: an architecture for reusable robotic software , 2003, SPIE Defense + Commercial Sensing.

[11]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[12]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

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

[14]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[15]  François Michaud,et al.  Robotic Software Integration Using MARIE , 2006 .

[16]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[17]  Yangsheng Xu,et al.  Tracking Trajectory Planning of Space Manipulator for Capturing Operation , 2006 .

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

[19]  Luiz Chaimowicz,et al.  Design Minimalism in Robotics Programming , 2006 .