Towards Component-Based Robotics * Alex Brooks, Tobias Kaupp, Alexei Makarenko and Stefan Williams ARC Centre of Excellence in Autonomous Systems (CAS) Australian Centre for Field Robotics University of Sydney, NSW 2006 AUSTRALIA {a.brooks, t.kaupp, a.makarenko, s.williams}@cas.edu.au Anders Oreb¨ ack Centre for Autonomous Systems Royal Institute of Technology SE-100 44 Stockholm, SWEDEN oreback@nada.kth.se Abstract— This paper gives an overview of Component- Based Software Engineering (CBSE), motivates its application to the field of mobile robotics, and proposes a particular component model. CBSE is an approach to system-building that aims to shift the emphasis from programming to com- posing systems from a mixture of off-the-shelf and custom- built software components. This paper argues that robotics is particularly well-suited for and in need of component- based ideas. Furthermore, now is the right time for their introduction. The paper introduces Orca – an open-source component-based software engineering framework proposed for mobile robotics with an associated repository of free, reusable components for building mobile robotic systems. Index Terms— Distributed Robotics, Robotic Architectures, Component-Based Design, Software Re-use, Standardization I. I NTRODUCTION Component-Based Software Engineering (CBSE) is an approach that has arisen in the software engineering com- munity in the last decade or so. It aims to shift the emphasis in system-building from traditional programming to composing software systems from a mixture of off-the- shelf and custom-built components [3][9][16][7][4]. For a long time, the manufacturing industry has allowed for replaceable parts by building them to a pre-defined standard. Similarly, CBSE offers developers the opportu- nity to source existing plug-in software components, rather than building everything from scratch. In addition, CBSE offers significant software engineering benefits by enforc- ing modular systems, which helps control dependencies, reduce maintenance costs and increase system flexibility and robustness. The thesis of this paper is that the field of mobile robotics would benefit from adopting a component-based approach. A general component-based robotics framework should: 1) Be designed from the beginning with CBSE ideas in mind. 2) Adopt an open-source model: a requirement for col- laboration between academic institutions. 3) Maintain an online repository of useful independently-deployable components, each with sufficient documentation. 4) Not be intimately tied to a particular transport mech- anism such as CORBA, TCP/IP, RS232, or similar. This work is supported by the ARC Centre of Excellence programme, funded by the Australian Research Council (ARC) and the New South Wales State Government. 5) Not prescribe a particular architecture. The architec- ture should be defined instead by the set of compo- nents that are chosen and the manner in which they are composed. 6) Emphasise extensibility. Users should easily be able to extend the framework. 7) Allow for the building of systems ranging from single-vehicle architectures to distributed, including decentralised, systems. The latter requires that there be no unique central entity upon which all compo- nents rely. The remainder of this paper is organised as follows. Section II discusses related work. Section III defines components and component-based software engineering, and explains why they are useful. Section IV describes the application of CBSE to the field of mobile robotics, particularly (a) why robotics is in need of a component- based solution and (b) why robotics is especially well- suited technically to a component-based approach. Section V describes Orca – an open-source component-based soft- ware engineering framework proposed for mobile robotics. Section VI provides a detailed comparison of Orca with the Player framework. Finally Section VII concludes. II. RELATED WORK Three major component models exist today, all of which are deemed unacceptable for mobile robotics. Microsoft’s COM+ [8] is proprietary and not portable across operating systems, Sun’s Enterprise JavaBeans [1] is not cross- language, and the CORBA Component Model [20] lacks sufficiently mature implementations. The idea of applying CBSE principles to the field of robotics is not new; work has been initiated elsewhere to introduce the concept of components [10] [13] [14]. To the authors’ knowledge, there is no explicitly component-based framework that fulfils all the requirements in Section I, par- ticularly the requirement for a repository of independently- deployable components. Several existing open robotics projects do maintain large repositories of well-tested re-useable implementations of algorithms for mobile robotics. The two most popular are CARMEN [12] and Player [19]. CARMEN, the Carnegie Melon Robot Navigation Toolkit, communicates between components using IPC. It is designed specifically for single-robot systems.