Abstract
The paper investigates the concept of software “stability” applied to robot systems. We define “stable” a family of systems modelled, designed and implemented so that specific applications of the family may be developed re-using, adapting and specializing knowledge, architecture and existing components. During the last few years, many ideas and technologies of software engineering (e.g. modularity, OO development and design patterns) were introduced in the development of robotic systems to improve the “stability” property. All these ideas and technologies are important. Nevertheless, they model robotic systems along a unique direction: the functional decomposition of parts. Unfortunately, there are concerns of robotic systems that relate to the systems as a whole hence crosscutting their modular structure. The Aspect Oriented Software Development is a recently emerged approach for modelling, designing and encapsulating the above-mentioned crosscutting concerns (aspects). We contend that stability must be based on a careful domain analysis and on a multidimensional modelling of different and recurring aspects of robot systems.
Introduction
We define “stable” a family of systems whose requirements and architecture is well understood and designed so that specific applications of the family may be developed re-using, adapting and specializing knowledge, architecture and existing components. This would be extremely beneficial to the research community since every research group, even the smallest, would have the possibility to concentrate its efforts on a small piece of the robotics puzzle (Kortenkamp, Schultz 1999). For example, experts in automated planning could experiment new path planning algorithms for a mobile robot relying on the obstacle avoidance and self-localization functionalities encapsulated in components off-the-shelf.
In a previous paper (Brugali, Reggiani, 2005) we have discussed the issues and challenges in building stable robotic systems and we have identified the fundamental concept that are stable in the Robotic domain. The aim of this paper is to further investigate the concept of software stability as quality factor of robot systems development and to analyze it from the perspective of Aspect-Oriented Technology (Fayad, Ranganath, 2003).
During the last few years, many ideas and technologies of software engineering (modularity, information hiding, OO development, design patterns from low level components to architectural styles, components and frameworks) were progressively introduced in the development of robotic systems to improve the “stability” property.
All these ideas and technologies are very important and useful to face the growing complexities of robotic software systems. Nevertheless, they are typically used to model robotic systems along a unique direction: the functional decomposition (or composition) of parts. The underlying assumption is that the properties of a system may be confined into specific components so that the system behaviour is obtained through composition of modules (the motion controller, the navigator, the path planner, the map builder, etc.).
Unfortunately, there are concerns (quality factors or functionalities) that cannot be effectively described and modularised using the concept of composition of high cohesion functional modules. Such concerns relate to the software systems as a whole hence crosscutting their modular structure.
We contend that stability must be based on a careful multidimensional modelling of different and recurring aspects of robot systems. The key word is “system” and the robotic field is a good and challenging example of these systems: heterogeneous structures where properties are emerging from the interaction of constituent parts.
The ISO 9126 (ISO/IEC 9126-1 1999) quality model defines a number of quality characteristics (both functional and non-functional) of software systems. Non-functional requirements (for example security) are typical examples of properties that emerge from multiple parts of a system and cannot be confined into a unique component.
This is also true for robots. Real-time performance, fault tolerance, safety, and many other non-functional requirements depend on several components of the robot control architecture. Interoperability, synchronization, collaboration are aspects related to robot components at every layer of the robot control hierarchy.
The issue of modelling, designing and encapsulating the above-mentioned crosscutting concerns (aspects) is explored by AOSD (Aspect Oriented Software Development), a recently emerged research area in software engineering. The basic idea is to support the multi-dimensional analysis, design and programming of complex systems by complementing the traditional hierarchical view with additional orthogonal models. These models describe properties scattered trough the designed modules (e.g. designed using a “dominant” view) and provide means to define the intersections and integrate the views into a unique code.
Aspects are different views of the same system and their consideration may involve every phase of the development process. Aspects are considered from the early phases because they support the requirements modelling, set the design decisions and may have a large impact on reuse, adaptation and evolution. For example, AORE (Rashid et al. 2003) and INFR (Brito, Moreira 2004) explore the modelling of non-functional aspects in the requirements analysis, while THEME (Baniassad, Clarke 2004) mainly deals with functional ones. The AOGA (Kulesza et al. 2004) approach exploits both the concepts of domain analysis and AOSD, investigating the crosscutting aspects of the domain of multi-agent systems.
AOSD provides also approaches to support the aspect oriented design phase as well as technologies (for example the AspectJ language) to encapsulate and manage aspects in the context of OO languages.
We contend that stability must be based on a careful domain analysis and on a multidimensional modelling of different and recurring aspects of robot systems. In this paper, we explore the applicability of the AOSD approach to the robotic systems for developing such a multidimensional analysis at the level of domain requirements.
The paper is organized as follows. Section 2 formulates the problem of developing stable robotic systems. The section refers to the concepts of Enduring Business Themes and Business Objects as means to draw a domain analysis and presents three aspects of the robotic system domain: Situatedness, Embodiment and Intelligence. The three aspects are related to the robot mobility function. Each aspect models a specific characteristic influencing the mobility function and crosscutting the layered software architecture based on the concepts of modularity and information hiding.
Section 3, 4 and 5 capture the stable knowledge related to robot mobility, modelling the three aspects by means of three Analysis Patterns. For each of them we present the context, the problem and the solution (the proposed business objects and the associated relations).
Finally, Section 6 draws the relevant conclusions and the future steps of the research.
Building stable robotic systems
Stability-Oriented Domain Engineering is a set of activities aiming at developing reusable artefacts within a domain. The term domain is used to denote or group a set of systems (e.g. mobile robots, humanoid robots) or functional areas (motion planning, deliberative control), within systems, that exhibit similar functionality.
The fundamental tenet of Stability-Oriented Domain Engineering is that substantial reuse of knowledge, experience, and software artefacts can be achieved by performing some sort of stability/changeability analysis to identify those aspects that are stable within the domain, and those aspects that are more likely to be affected by the evolution of the application domain.
Software stability can be defined as a software system's resilience to changes in the original requirements specification. In order to enhance reuse, the software development process should focus on those aspects of the domain that will remain stable over time. Such an approach ensures a stable core design and, thus, stables software artefacts (Fayad, Altman, 2001).
In order to support stability analysis, the concept of Enduring Business Theme (EBT), Business Object (BO), and Industrial Object (IO) have been recently proposed and investigated by several authors, such as (Clien, 2000, Fayad, 2002) to name a few. An EBT is an aspect of a business domain that is unlikely to change since it is part of the essence of the business.
After the appropriate enduring themes of the business are understood and catalogued, a software framework can be constructed that enables the development of business objects (BO), which offer application-specific functionality and support the corresponding EBT (Brugali et al. 1997). BOs have stable interfaces and relationships among each other's but are internally implemented on top of more transient components called Industrial Objects (IO) (Clien, 2000).
One of the criteria to recognize EBTs, BOs, and IOs defined in (Fayad 2002) is their tangibility. “If an object in a model represents a concrete entity, then it is most likely an Industrial Object”. Tangibility is considered one of the driving factors of instability of IOs. The reason is that physical entities, such as a piece of machinery, are highly sensitive to technological evolutions.
A milestone paper of Rodney Brooks (Brooks, 1991) identifies a set of properties (we say EBTs) of every robotic system, among which three are of interest for our discussion:
Situatedness: Robot situatedness refers to existing in a complex, dynamic, and unstructured environment that strongly affects the robot behavior. For example, the environment is a museum full of people where a mobile robot guides tourists and illustrates masterworks, or a game field where two robot teams play soccer, or a manufacturing work cell where an industrial manipulator handles work pieces. Situatedness implies that the robot is aware of its own posture, in one place at a given time. It does not deal with abstract descriptions, but with the here-and-now of the environment, that directly influences the robot behavior.
Embodiment: Robot embodiment refers to the consciousness of having a body (a mechanical structure with sensors and actuators) that allows the robot to experience the world directly. The robot receives stimuli from the external world and executes actions that cause changes in the world state. Simulated robots may be ‘situated’ in a virtual environment, but they are certainly not embodied.
Intelligence: Robot intelligence refers to the ability to express adequate and useful behaviors while interacting with the dynamic environment. Intelligence is perceived as “what humans do, pretty much all the time” (Brooks, 1991), and mobility is considered at the basis of every ordinary human behavior.
Robot mobility is related to Situatedness as it is a form of robot-environment interaction. It refers to the ability of changing its own position concerning the environment and thus of being in different places on different times. Situatedness helps to answer two questions: With respect to what does the robot move? When and where does it move?
Robot mobility is related to Embodiment as it applies to both the robot and its constituent components that move one with respect to the others. For example, a humanoid robot is a complex structure of many limbs that change their relative positions while the robot is walking. It also applies to parts or devices of the robot that move with respect to the environment. For example, the robot stands but changes the head's orientation to track a moving object (e.g. a human being). Embodiment helps to answer two questions: Which part of the robot does move? How much does it move?
Robot mobility is related to Intelligence as it explained in terms of robot behaviors and tasks. These concepts help to answer two questions: How does the robot move? Why does the robot move?
In the next three sections, we capture the stable knowledge related to robot mobility by means of three Analysis Patterns, which refer to the above fundamental concepts of Situatedness, Embodiment, and Intelligence. They are presented according to the template structured in three sections. The Context describes the possible scenarios for the situations in which the pattern may recur. The Problem presents the problem the pattern concentrates on. The Solution illustrates the stable object model in terms of participants and relationships.
There are two main participants in the solution model: classes and patterns. Classes are the same as the ones that are used in traditional Object-Oriented class diagrams. Patterns are themselves models that contain classes and in some cases, other patterns too. In the model, BOs names start with “Any” indicating that they are a standalone stable patterns and satisfy any application.
Situatedness Analysis Pattern
Robot situatedness means that the robot is located in the environments in which it operates both from the spatial and the temporal points of view.
The Situatedness Pattern aims at capturing the knowledge related to the here and now aspects of the interaction between the robot and its environment.
Context
Robotic devices have been conceived and developed to operate in a variety of environments. Service robots and humanoid robot operate in indoor environments designed for and occupied by humans. Industrial robots perform repetitive tasks in structured manufacturing plants. Space robots explore the surface of planets and satellites or inspect and repair space shuttles. These are just a few examples.
Robots interact with their operating environments according to a variety of spatial-temporal patterns, which depend on the type of task the robots have to perform. Both time and space can be represented as continuous or discrete dimensions. For example, the trajectory traveled by a mobile robot is a continuous spatial-temporal interval; the past, current, and future robot's locations are discrete spatial-temporal positions.
Problem
Robot systems are usually developed both from the hardware and software point of view for a given target environment. Nevertheless, many design solutions conceived for highly different environments share relevant commonalities, at least from a conceptual point of view. For example, the concept of obstacle avoidance is the same no matter if the robot has to avoid rocks on the Mars surface or wastebaskets in an office. This patterns concentrates on the problem of capturing the basic elements, and the relationships among these elements, of robot situatedness in order to develop a conceptual ground for the description of every robot environment.
Solution and participants
The stable object model related to the Situatedness EBT is depicted in the top part of Figure 1; it shows the participants (the BOs) and the relationships among them. The BOs represent stable abstract concepts that characterize robot situatedness. In order to analyse and design concrete robot systems, every BO has to be further detailed in order to capture the requirements of dynamic robot-environments interactions (e.g. real-time constraints) and can be documented as a pattern by itself.
EBT : Situatedness. It represents the concept of situatedness of any robot operating in the environment. This class consists of behaviours and attributes that allow the customization of the system concerning global properties that cut across the individual BOs, such as the role and characteristics of the external observer.
BO : AnyRobot. The actor expresses the robot behaviours while it interacts with the environment. Robot-environment interaction is governed by three major components: a) the robot itself, its sensors and actuators, b) the environment's perceptual properties and c) the task, usually the control program being executed by the robot. The robot's behaviour emerges through the interaction of these three aspects (Nehmzow & Walzer 2003).
BO : AnyInteraction. It represents what kind of interaction occurs between the robot and the environment. Basically we can classify interactions into two main categories: physical and behavioural interactions. Moving within a room, grasping an object, measuring physical quantities such as distances, forces, and energy are examples of physical interactions. Complex combinations of physical interactions can be abstracted into behavioural interactions. For example, supervision is a kind of human-robot interaction that requires the robot to interact with the human operator through a variety of media, such as speech, vision, force, etc.
BO : AnyPlace. It represents where the interaction takes place. It can be meant as the portion of the environment affected by the interaction. For example, a humanoid robot walks on the floor; a manipulator robot operates in a workcell.
BO : AnyTime. It represents when the interaction takes place. The timing characteristics of a robot-environment interaction can be described basically in terms of discrete events or continuous intervals that determine its occurrence (e.g. the clock tick fires a sonar reading, the operator input stops the movement, the grasping tool holds the peace for 10 seconds, etc.).
BO : AnyEnvironment. It represents the totality of surrounding physical conditions that affect, enable, and limit the robot while it is performing its tasks.
The environment is a continuum of physical configurations, but from a computational point of view it can be represented as a discrete spatial-temporal milieu that is made up of robots and any other dynamic or static system, such as people, equipments, buildings, and hosts all their mutual interactions governed by Physic's laws.
Embodiment Analysis Pattern
The concept of embodiment has been thoroughly investigated during the second half of the last century by many researchers in Cognitive Sciences, Artificial Intelligence and Robotics (see Chrisley & Ziemke, 2000) for a survey).
In the context of our discussion, the robot's physical body, i.e. its electro-mechanical structure, is the medium to experience the sense of time and space, i.e. of being situated in the physical environment.
Context
The physical interactions with the surrounding world occur through sensors and actuators. Sensors allow the robot to perceive the environment's changes and to react to them by changing its own behavior (e.g. the detection of a very closed obstacle causes the robot to switch from the operating to the emergency mode). By means of its sensors the robot experiences the effect of its actions on the environment through the effects that such actions produce. Actuators are the tools with which the robot changes the environment.
Problem
Robot control applications strongly depend on the type of robot used to carry on a task, i.e. the robot mechanical structure greatly influences the dynamics of the body structure and the requirements of the software applications that control it. For example, a video camera mounted on a mobile robot can be used for site surveillance, while the same video camera mounted on a room ceiling can help the robot to self-localize.
This patterns concentrates on the problem of capturing the basic elements, and the relationships among these elements, of robot embodiment in order to develop a conceptual ground for the description of every robot mechanism. Thus, the goal of this pattern is to define mechanical abstractions enabling the development of stable software that controls the robot hardware.
Solution and participants
The solution consists in the definition of the Embodiment EBT and of a set of related analysis patterns (BOs). Three BOs represent the stable abstract concepts that characterize robot embodiment.
BO : AnyBody. It represents the electro-mechanical body of any robotic mechanism, the ability to perceive its own state in terms of relative position, orientation, and movement of the robot's body and its parts, the battery charge, and fault conditions of its devices (proprioception), and the ability of changing its internal state and the interaction with the external world (actuation).
BO : AnyMorphology. It describes the shape of the robot's body, its components, and their structural relationships. Typically, robot mechanical design is based on serial link chains with actuated rotary or prismatic joints (industrial manipulators). Several types of robot structures aim at replicating the morphology of animals (ant, dog, snake) and of the human beings (humanoid robots). The majority of mobile robots resemble human vehicles: cars, tanks, blimps, and aircrafts.
BO : AnyKinoDynamics. It describes the kinematic (position and velocity) and dynamic (acceleration, force) constraints that limit the relative movement of the robot's mechanical components and of the robot's body in the environment. These constraints are determined by the robot's morphology (e.g. links and joints), by the mechanical power of the actuators (e.g. torque force), and by the physics laws (e.g. gravity).
Intelligence Analysis Pattern
Robotics is an experimental science that can be analysed from a double perspective.
From one side, it is a discipline that grounds its roots into mechanics, electronics, computer science and cognitive sciences. In their regards, Robotics plays the role of integrator of the most advanced results in order to build complex systems.
From the other side, Robotics is a research field which pursues ambitious goals, such as the study of intelligent behaviour in artificial systems. Most of its achievements have found applications in industrial settings and everyday life.
Context
The concept of intelligence (the ability of expressing useful behavior) is quite elusive. It is usually associated to other concepts, such as: autonomy, i.e. the robot's ability to control its own activities and to carry on tasks without the intervention of the human operator (Arkin, 1998) (e.g. navigating toward a target position without colliding with obstacles); deliberativeness, i.e. the ability of planning and revising future actions in order to achieve a given goal while taking into account the mutable conditions of the external environment (e.g. planning the shortest path between two locations in an indoor environment); adaptability, i.e. the ability of changing its behavior in response to external stimuli according to past interactions with the real world (e.g. recognizing already visited places).
Problem
Robot intelligence is enacted by its control architecture. In (Mataric, 2002)) Maja Mataric summarizes the concept of robot control as “the process of taking information about the environment, through the robot's sensors, processing it as necessary in order to make decisions about how to act, and then executing those actions in the environment”. This definition explicitly refers to the concepts of situatedness and embodiment.
The goal of this pattern is to insulate the software abstractions that refer to robot control from those that refer to robot-environment interaction and robot structure. This will allow to develop robot control architectures that are not tight to any specific robot platform and to experiment different control architectures on the same robot platform.
Solution and participants
The solution consists in the definition of the Intelligence EBT and of a set of related analysis patterns (BOs). Three BOs represent the stable abstract concepts that characterize robot intelligence.
BO : AnyAction. This pattern is intended to define an abstract representation of the robot's actions, which is independent of the specific robot structure and equipment. Key features of this representation are for example the timing requirements, the expected result, the probability of success, the possible types of fault, and the recovery procedures.
BO : AnyBehavior. The AnyBehavior pattern is intended to define an abstract representation of the robot's behaviors, which is independent of the specific sensory and actuation system of the robot. Behaviors are constructed by composing the available robot's actions and according to the possible robot-environment interactions.
BO : AnyControl. It represents the generic control schema that the robot can perform. Control of robots is one of the traditional test beds for several areas of artificial intelligence, such as problem solving, planning, learning, coordination, etc. Four main classes of robot control methodologies have been identified for mobile robots: reactive, deliberative, hybrid, behaviour-based (Mataric, 2002). All of them can be described in terms of actions and behaviours.
Conclusions
Stability Oriented Domain Engineering and Aspect Oriented Design are new concepts that promote the identification, modelling, design, and implementation of these reusable building blocks. This paper has pointed out the difficulties and the opportunities to apply these concepts in the Robotics domain. Further research should analyse in detail the presented patterns and investigate their crosscutting nature with respect to typical functional descriptions based on hierarchies as well as extend the approach to the architectural design phase.
