
IEEE ROBOTICS AND AUTOMATION MAGAZINE, VOL. XX, NO. 1, MARCH 2010 1 Component-based Robotic Engineering Part II: Systems and Models Davide Brugali, Member, IEEE and Azamat Shakhimardanov Index Terms—Software Engineering, Reuse, Architectures. number of research projects facing the challenges of engineer- ing the software development process in robotics, for which a survey of their recent achievements would be a valuable I. INTRODUCTION contribution to the literature, the goal of this paper is to present This article is the second of a two-part series intended an overview of software design principles that enable the as an introduction to Component-based Software Engineering development of flexible and reusable robotic software systems. (CBSE) in Robotics. With this goal in mind, we present both a classification and In Part I, we regarded a component as a piece of software a possible architectural interpretation of well-known concepts that implements robotic functionality. The focus was on de- and recent advances in component-based software engineering. sign principles and implementation guidelines that enable the Where appropriate, we indicate the similarities between the development of reusable and maintainable software building architectural models presented in this paper and some of the blocks. models that have been documented in the literature. In Part II, we discuss the role of software components as architectural units of large, possibly distributed, software- II. CHALLENGES IN BUILDING ROBOTIC SOFTWARE intensive robotic systems. The focus is on technologies to COMPONENT SYSTEMS manage the heterogeneity of hardware, computational, and A number of issues make the design and development communication resources and on design techniques to assem- of robotic component-based systems difficult. Robotics is an ble components into systems. experimental science that can be analyzed from a double A Component-based System is a composition of compo- perspective. nents and the way components interact with other components On one hand, it is a discipline that has its roots in mechan- and with the computational environment greatly affects the ics, electronics, computer science and the cognitive sciences. flexibility of the entire system and the reusability of individual In this regard, software components embed functionality and functionality. control laws that bring together advanced research results built The paper is structured as follows. Section II discusses on quickly-changing technologies. the challenges that make the development of reusable com- On the other hand, Robotics is a research field that pursues ponents and flexible component systems difficult in robotics. ambitious goals, such as the study of intelligent behavior in In particular, we analyze the different sources of variability in artificial systems. These means that robots are used in ever new robotic technology and applications and the corresponding re- use cases and application scenarios with different functional quirements for flexibility in robotic software component-based requirements. Software components with similar functionality systems. The subsequent four sections introduce key concepts are integrated in more and more complex component-based related to the development of reusable software components, systems with increasing demanding performance and reliabil- such as threading, synchronization, resource awareness, dis- ity requirements. tribution, and quality of service negotiation and illustrate The intrinsic change-centric nature of robotic applications, architectural models that enable the independent evolution of poses the challenge of designing software components and different variability concerns of a component-based robotic systems that are flexible enough to accommodate frequently system. They are classified in four categories related to main changing functional and non-functional requirements. The concerns of component-based systems, namely Computation IEEE Standard Glossary of Software Engineering Terminology (Section III), Configuration (Section IV), Communication defines flexibility as the ”ease with which a system or compo- (Section V), and Coordination (Section VI). Finally, Section nent can be modified for use in applications or environments VII draws the relevant conclusions. other than those for which it was specifically designed”. It should be noted that this paper is not a survey of the The term environment refers to the complete range of ele- state-of-the-art in component-based software engineering, nor ments in an installation that interact with the component-based in robotics software development. While there is an increasing software system. This includes the computer and network D. Brugali is with the Department of Computer Science and Math- platform, the controlled robotic hardware, and the robotic ematics, Universita’ degli Studi di Bergamo, Dalmine, Italy e-mail: da- applications that integrate the reusable components. [email protected]. More specifically, flexibility is concerned with the portabil- A. Shakhimardanov is with the Department of XXX, Bonn-Rhein-Sieg University, Germany e-mail: [email protected] ity of the component system on different computational envi- Manuscript received xxx xx, 2009; revised xxx xx, 2009. ronments (e.g. from a centralized to a distributed system), the IEEE ROBOTICS AND AUTOMATION MAGAZINE, VOL. XX, NO. 1, MARCH 2010 2 interoperability among independently developed components processors (e.g. laptop or PC), often has severe constraints on (e.g. components interfacing heterogeneous robotic devices), computational resources, storage, and power, and is interfaced the reusability of individual components in different appli- to a multitude of highly heterogeneous sensors and actuators, cation contexts (e.g. a motion planner for static or dynamic such as laser range finders, stereo cameras, global position- environments), and the component system reconfigurability at ing systems (GPS), servo motors, grippers, wheeled rovers, runtime (e.g. adaptable robot behaviors). manipulator arms, and so on. The key to achieving software flexibility is the possibility With increasing computational power made available by to predict the class of changes that are likely to occur in the advances in microelectronic technology, computing infrastruc- environment over the lifespan of robotic software components tures of robotic systems have recently evolved from single and that affect components and systems portability, reusability, processor systems to networks of embedded systems [3], i.e. interoperability, and reconfigurability. systems assuming that the computing resources are embedded into some other device including hardware and mechanical A. Functional variability parts. Smart sensors and actuators integrating sensing, actuating, Sensing, planning, control, reasoning, and learning are processing, and networking elements into a single device sim- human-like capabilities that can be artificially replicated in plify system architecture, by decreasing wiring requirements a computer-based robotic system as software applications [1]. and improve modularity of the computing infrastructure by In complex robot control applications, several concurrent locally performing some signal processing tasks, but at the activities access the hardware devices (e.g. 3D perception for same time increase the complexity of software applications and obstacle avoidance and for map building), control complex make the development of reusable and portable components mechanisms (e.g. visual servoing for a mobile manipulator), extremely challenging. or coordinate a set of subsystems (e.g. coalition formation Several networking architectures can be used to interconnect for a team of robot). Each robot activity has its own timing such devices, including wired and wireless networks, or a requirements and the interaction between subsystems can be combination of both. Supporting reliable Real-Time (RT) either synchronous or asynchronous. Typically, low-level con- communication is one of the major requirements that are trol loops regulating the robot motion require the synchronous usually imposed to robot communication systems [4], where data flow model of computation, where control software real-time control data must be periodically transferred between periodically requests new measurements from sensors (e.g. sensors, controllers, and actuators according to strict transfer encoders) and sends motion commands to the actuators. In deadlines. contrast, the asynchronous event triggering model of computa- tion simplifies the implementation of higher-level control loops Despite the semantic similarities between the operations for monitoring the robot environment. supported by similar devices (e.g. all ranging provide distance Software implementations of common robot functionality measurements), the externally visible behavior of the software (e.g. motion planning, navigation, manipulation) may substan- that abstracts and interfaces to each device greatly depends tially differ for extra-functional properties, such as perfor- on device hardware architecture [5]. There are devices that mance, completeness, and resource demand. They are often have their analog and digital signals directly mapped to tied to specific robotic platforms, because the information memory registers on the central processor. For these devices, about the robot morphology, kinematics, and dynamics are all basic functionality (e.g. measurements filtering, image typically scattered throughout
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages12 Page
-
File Size-