**1. Introduction**

Technical systems are designed and built to perform a variety of operations in pursue of user needs. In many cases we want these systems to operate without human intervention for performance, cost or safety reasons. We want many technical systems to be autonomous. From fridge thermostats to the country-wide electrical utilities we expect 100% availability even in changing circumstances.

Autonomy requires the ability to perform the assigned task without external help. The autonomous car shall be able to negotiate an intersection and the autonomous space probe shall be capable of reorienting itself. But autonomy without robustness is a no go. Real autonomy also requires capabilities for enduring disturbances during operation. Conventional control systems are built to overcome some forms of disturbance—up to a limit. Autonomy shall be robust to operate in a wider range of circumstances.

In many cases, these systems need to be endowed with autonomy features to be able to operate in unstructured and hazardous environments. Many real-world situations show high levels of disturbance and uncertainty that displace the system from the normal operating region for which it was designed. In other cases, the disturbances come from inside the system. Electrical interference or device faults can lead the system to mission-level failure.

In all these situations—when the system is pushed out of the designed region of operation—the system requires certain adaptation capabilities to provide the levels of robustness and resilience necessary to overcome the adverse situation and ensure mission fulfillment.

As said, these disturbances may come from outside the system, such as changes in the environmental conditions, *e.g.* amount of obstacles, terrain characteristics,

*etc.*, or from the system itself, such as failures in individual components used to perform a specific task or providing communication mechanisms. To overcome localized failures, autonomous systems require, when deployed, a certain level of redundancy to enable the use of fault-handling techniques to overcome these disturbances. These redundancies can be structural—e,g, when having spare components or using triple modular redundancy—or functional—*e.g.* when having different ways of reducing car speed.

In general, ontologies define a common vocabulary for a domain, allowing the reuse of domain-specific knowledge. Moreover, it provides a common understanding about a field for both people and artificial agents. It is this shareable knowledge among humans and software entities that makes ontologies a valuable asset in autonomous robot engineering. In [2] the authors remark the importance of formally represented knowledge and its foundation in *conceptualizations* that are shared among people. In our case these conceptualizations will be shared among humans—engineers—and intelligent machines—robots. These concepts are widely used in computational operations nowadays. For instance, in [3], the authors use an ontology-based method to assign tasks to a satellite cluster; in [4] they use ontologyaided reconfiguration to manage an IT infrastructure; and in robotics, works like the one presented in [5], make use of ontologies to define an information model to integrate the knowledge of heterogeneous fleets of robots in underwater operations.

The IEEE 1872-2015 standard [6] was published in early 2015. This is a standard for the robotics and automation domain that defines a set of ontologies for robots. The most popular of these ontologies is the core ontology for robotics and automation (CORA) which specifies the most general concepts in the robotics domain [7]. This standard is based on the Suggested Upper Merged Ontology (SUMO) [8]. SUMO—a top-level ontology—is used to provide differentiation among terms that refer to physical and abstract entities and serves as the basis of the robotics ontology. In SUMO, classes such as *agent*, *process* or *proposition* are defined. This knowledge is then specialized by CORA with classes such as *Robot* or *Robotic System*. Other ontologies defined in this standard are the position (POS) ontology [9] that captures the main concepts and relations regarding the position, orientation, and pose which are key elements for robot navigation and manipulation, and the RPARTS ontology that provides a set of specific types of roles that specialize the general role of robot parts. The IEEE 1872 ontologies are explicit and formal, however, they are maybe too

general for practical use. For this reason, there are a variety of more specific ontologies with different scopes in the robotics domain. Olszewska [10] presents an autonomous robot architecture ontology (ROA). ROA defines the main concepts and relations for defining a robot architecture. This ontology has been tested in driving a human-robot interaction scenario. A human operator specifies a task and this task is divided and associated with a robot according to its capabilities. All these types of entities are captured in the ontology and used to create information elements that enable human-robot communication. In [11] an extension of CORA is presented with concepts of design, environment, and interaction on artificial

Most of these ontologies reuse knowledge from other ontologies. Sometimes ontologies are identified with knowledge bases, especially after the use of standardized languages to capture both generic and specific knowledge. In order to facilitate reuse, ontologies are designed following the principle of modularisation. Modularity provides a series of benefits in contrast to the problems of using big, complex,

• Scalability for querying data and reasoning. Small-scale ontologies allow easier concept assertion and reasoning than when handling a large number of entities.

• Scalability for update and maintenance. Ontologies, as any other artifact requires maintenance and may need to be updated and enlarged with new knowledge. This task is easier if the knowledge is structured in modules.

**2.1 Ontologies in robotics**

*Using Ontologies in Autonomous Robots Engineering DOI: http://dx.doi.org/10.5772/intechopen.97357*

systems.

**73**

monolithic ontologies [12]:

In any case, all these mechanisms require ways of representing the knowledge about them both at design time—by engineers building the system—and at runtime—by the autonomous system itself. Engineers capture this knowledge in the engineering models and autonomous systems may use it in knowledge-driven perception-decision-action loops.

In this chapter, we address the use of ontologies as substratal assets for these knowledge based processes. Ontologies can be used to decouple those conceptual elements for system adaptation from the particular implementation used in a concrete deployed system. Decoupling design knowledge and realization promotes reusability, modularity, and scalability. All of them, critical properties of sound engineering processes. Ontologies can provide a shared understanding of all stages of the system life cycle—from conceptualization to decommission—to both ease the task of the engineer and improve system run-time operation. In this chapter, we specifically focus on the benefits of using ontologies in autonomous systems, especially in autonomous robots, and present an implementation case with adaptive mobile robots.

The chapter is organized as follows: Section 2 defines what is an ontology and collects well-known ontologies for autonomous robots. Section 3 defines what is autonomy and other the key concepts we aim to reach in this type of systems. Section 4 presents the scope of ontologies within the life cycle of autonomous systems. Section 5 addresses a concrete proof-of-concept of ontologies for augmenting the autonomy level in a mobile robot. Section 6 discusses the general implications at system level when using ontologies. Section 7 presents a roadmap for the use of ontologies to streamline autonomous robot development and exploitation. Lastly, Section 8 presents the conclusions of the chapter.

#### **2. Ontologies for autonomous robots**

Ontology—with upper case—is the branch of philosophy dedicated to the study of being. From this perspective of analyzing what exists, derives the use of ontologies—with lower case—in computer and information science. Computer ontologies are specifications of conceptualizations [1]. They formally document the types of entities that exist in a domain, their properties, and the relationships between them<sup>1</sup> . A conceptualization is an abstract, simplified perspective in some area of interest. The conceptualization includes the objects, concepts, and other entities and the relationships among them. Ontologies are used in information systems to guarantee the conformance of a knowledge base with a certain conceptual specification.

Ontologies are built on top of terms that are used to capture the concepts. They provide a formal naming and definition of categories, properties, and relations between concepts, data, and entities. In practice, ontologies are just computerreadable files in a specific computer language that reify a conceptualization of elements of a specific domain.

<sup>1</sup> To be precise, they formally document *the information about* the types of entities, their properties, and the relationships between them.

*Using Ontologies in Autonomous Robots Engineering DOI: http://dx.doi.org/10.5772/intechopen.97357*

In general, ontologies define a common vocabulary for a domain, allowing the reuse of domain-specific knowledge. Moreover, it provides a common understanding about a field for both people and artificial agents. It is this shareable knowledge among humans and software entities that makes ontologies a valuable asset in autonomous robot engineering. In [2] the authors remark the importance of formally represented knowledge and its foundation in *conceptualizations* that are shared among people. In our case these conceptualizations will be shared among humans—engineers—and intelligent machines—robots. These concepts are widely used in computational operations nowadays. For instance, in [3], the authors use an ontology-based method to assign tasks to a satellite cluster; in [4] they use ontologyaided reconfiguration to manage an IT infrastructure; and in robotics, works like the one presented in [5], make use of ontologies to define an information model to integrate the knowledge of heterogeneous fleets of robots in underwater operations.

#### **2.1 Ontologies in robotics**

*etc.*, or from the system itself, such as failures in individual components used to perform a specific task or providing communication mechanisms. To overcome localized failures, autonomous systems require, when deployed, a certain level of redundancy to enable the use of fault-handling techniques to overcome these disturbances. These redundancies can be structural—e,g, when having spare components or using triple modular redundancy—or functional—*e.g.* when having

In any case, all these mechanisms require ways of representing the knowledge about them both at design time—by engineers building the system—and at runtime—by the autonomous system itself. Engineers capture this knowledge in the engineering models and autonomous systems may use it in knowledge-driven

In this chapter, we address the use of ontologies as substratal assets for these knowledge based processes. Ontologies can be used to decouple those conceptual elements for system adaptation from the particular implementation used in a concrete deployed system. Decoupling design knowledge and realization promotes reusability, modularity, and scalability. All of them, critical properties of sound engineering processes. Ontologies can provide a shared understanding of all stages of the system life cycle—from conceptualization to decommission—to both ease the task of the engineer and improve system run-time operation. In this chapter, we specifically focus on the benefits of using ontologies in autonomous systems, especially in autonomous robots, and present an implementation case with adaptive mobile robots. The chapter is organized as follows: Section 2 defines what is an ontology and collects well-known ontologies for autonomous robots. Section 3 defines what is autonomy and other the key concepts we aim to reach in this type of systems. Section 4 presents the scope of ontologies within the life cycle of autonomous systems. Section 5 addresses a concrete proof-of-concept of ontologies for

augmenting the autonomy level in a mobile robot. Section 6 discusses the general implications at system level when using ontologies. Section 7 presents a roadmap for the use of ontologies to streamline autonomous robot development and exploita-

Ontology—with upper case—is the branch of philosophy dedicated to the study of being. From this perspective of analyzing what exists, derives the use of ontologies—with lower case—in computer and information science. Computer ontologies are specifications of conceptualizations [1]. They formally document the types of entities that exist in a domain, their properties, and the relationships between

. A conceptualization is an abstract, simplified perspective in some area of interest. The conceptualization includes the objects, concepts, and other entities and the relationships among them. Ontologies are used in information systems to guarantee the conformance of a knowledge base with a certain conceptual specification. Ontologies are built on top of terms that are used to capture the concepts. They provide a formal naming and definition of categories, properties, and relations between concepts, data, and entities. In practice, ontologies are just computerreadable files in a specific computer language that reify a conceptualization of

<sup>1</sup> To be precise, they formally document *the information about* the types of entities, their properties, and

tion. Lastly, Section 8 presents the conclusions of the chapter.

**2. Ontologies for autonomous robots**

elements of a specific domain.

the relationships between them.

them<sup>1</sup>

**72**

different ways of reducing car speed.

*Robotics Software Design and Engineering*

perception-decision-action loops.

The IEEE 1872-2015 standard [6] was published in early 2015. This is a standard for the robotics and automation domain that defines a set of ontologies for robots. The most popular of these ontologies is the core ontology for robotics and automation (CORA) which specifies the most general concepts in the robotics domain [7].

This standard is based on the Suggested Upper Merged Ontology (SUMO) [8]. SUMO—a top-level ontology—is used to provide differentiation among terms that refer to physical and abstract entities and serves as the basis of the robotics ontology. In SUMO, classes such as *agent*, *process* or *proposition* are defined. This knowledge is then specialized by CORA with classes such as *Robot* or *Robotic System*. Other ontologies defined in this standard are the position (POS) ontology [9] that captures the main concepts and relations regarding the position, orientation, and pose which are key elements for robot navigation and manipulation, and the RPARTS ontology that provides a set of specific types of roles that specialize the general role of robot parts.

The IEEE 1872 ontologies are explicit and formal, however, they are maybe too general for practical use. For this reason, there are a variety of more specific ontologies with different scopes in the robotics domain. Olszewska [10] presents an autonomous robot architecture ontology (ROA). ROA defines the main concepts and relations for defining a robot architecture. This ontology has been tested in driving a human-robot interaction scenario. A human operator specifies a task and this task is divided and associated with a robot according to its capabilities. All these types of entities are captured in the ontology and used to create information elements that enable human-robot communication. In [11] an extension of CORA is presented with concepts of design, environment, and interaction on artificial systems.

Most of these ontologies reuse knowledge from other ontologies. Sometimes ontologies are identified with knowledge bases, especially after the use of standardized languages to capture both generic and specific knowledge. In order to facilitate reuse, ontologies are designed following the principle of modularisation. Modularity provides a series of benefits in contrast to the problems of using big, complex, monolithic ontologies [12]:


• Complexity management. The design process is more straightforward when working with small modules—*i.e.* a reduced set of concepts—integrated into the final ontology.

model-based approaches in model-driven engineering (MDE). For example, OMG's Model-driven Architecture (MDA) focuses on design models a level of abstraction up of objects and components to reach modular reusable abstractions that can be later particularised for specific uses (Platform-Independent Model (PIM) ! Platform-Specific Models (PSM)). In the system's domain—closer to the robotics domain—languages like Systems Modeling Language (SysML) are gaining momentum due to their universality as a vehicle for augmented design formalization. However, MDE methods often suffer from a lack of semantics and truly formal

To overcome these bottlenecks, a formal ontology can be included as part of the model definition. One example of a model that makes use of ontologies to specify the system behavior and architecture is the Teleological and Ontological Model for Autonomous Systems (TOMASys) framework [17]. TOMASys is a domainindependent metamodel that allows the construction of models to define architectural alternatives in component-based systems. This metamodel is teleological because it incorporates core concepts in the engineering conceptualization as are the concepts of system intention and the purpose of the designers when creating a specific subsystem. And it is ontological because it defines a formal vocabulary for

The ontological approach followed in this chapter and presented in the proof-of-

The work described in this article addresses the use of ontologies for the augmentation of autonomy in robots [18]. As ontologies foster the use of formality in conceptualizations, it seems natural to try to provide a definition of the adjective

The term "autonomous" is a buzzword these days and has received different

in automatic control and robotics, there are two major generalized uses of the term

• A robot is said to be autonomous if it has the capability of *moving* by its own

• A robot is said to be autonomous if it has the capability of performing certain tasks without human—or external—help. A task-generalization of the former.

In our position as autonomous *systems* engineers, it is the second interpretation that we focus on. In systems engineering the task to be performed by the system is always something of value to the final user. An *useful* mobile robot shall not just wander around but perform some task of value during this wandering (find an object, move an object, detect intruders, *etc.*). When we say that a robot is autonomous we mean that it is capable of performing its assigned activities—*e.g.* generate a map—without the need of external intervention [19]. This also applies to the

<sup>3</sup> It has indeed a long tradition of use in the domains of healthcare and political science.

. In the analysis of the use of the term "autonomous"

concept in Section 5 is built upon the TOMASys framework that was designed following the ideas of model-based systems engineering and particularized for the

knowledge representations that can be effectively exercised [16].

systems structure and behavior.

**3. Autonomy and relate**

meanings in different contexts<sup>3</sup>

resources and under self-control.

*autonomous*.

"autonomous":

**75**

autonomous system engineering domain.

*Using Ontologies in Autonomous Robots Engineering DOI: http://dx.doi.org/10.5772/intechopen.97357*


Nevertheless, modular ontologies may lead to some problems during the process of creation and use. For example, the integration of other concepts by importing existing ontologies may lead to unexpected consequences such as inconsistencies related to reused vocabulary—*e.g.* conflicting definitions for homonyms. Keeping safety and correctness in a modular ontology is a key element when extracting or importing knowledge among ontologies and modules.
