Davide Brugali

Davide Brugali
University of Bergamo | UNIBG · Department of Engineering

Ph.D. Prof.

About

99
Publications
33,629
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,515
Citations
Additional affiliations
July 2006 - August 2006
California Institute of Technology
Position
  • Professor
November 2001 - present
University of Bergamo
Position
  • Researcher and Associate Professor
Description
  • Object-Oriented Programming, Real Time Systems, Robotics
November 2001 - present
University of Bergamo
Position
  • Professor (Associate)
Education
January 1995 - December 1997
Politecnico di Torino
Field of study
  • Computer Engineering
November 1987 - July 1994
Politecnico di Milano
Field of study
  • Computer Engineering

Publications

Publications (99)
Chapter
The cost of creating new robotics products is significantly related to the complexity of developing robotic software applications that are flexible enough to easily accommodate frequently changing requirements. In various application domains, software product line (SPL) development has proven to be the most effective approach to achieving software...
Preprint
Full-text available
Robots that support humans by performing useful tasks (a.k.a., service robots) are booming worldwide. In contrast to industrial robots, the development of service robots comes with severe software engineering challenges, since they require high levels of robustness and autonomy to operate in highly heterogeneous environments. As a domain with criti...
Conference Paper
Full-text available
Sensing, planning, controlling, and reasoning, are human-like capabilities that can be artificially replicated in an autonomous robot. Such a robot implements data structures and algorithms devised on a large spectrum of theories, from probability theory, mechanics, and control theory to ethology, economy, and cognitive sciences. Software plays a k...
Article
Control systems for autonomous robots are concurrent, distributed, embedded, real-time and data intensive software systems. A real-world robot control system is composed of tens of software components. For each component providing robotic functionality, tens of different implementations may be available. The difficult challenge in robotic system en...
Conference Paper
Control systems for autonomous robots are concurrent, distributed, embedded, real-time and data intensive software systems. A real-world robot control system is composed of tens of software components. For each component providing robotic functionality, tens of different implementations may be available. The difficult challenge in robotic system en...
Conference Paper
Control systems for autonomous robots are concurrent, distributed, embedded, real-time and data intensive software systems. A real-world robot control system is composed of tens of software components. For each component providing robotic functionality, tens of different implementations may be available. The difficult challenge in robotic system en...
Chapter
A huge corpus of open source robotic software libraries is available on ROS repositories that can be reused to develop a large variety of robot control systems. The difficult challenge consists in selecting and integrating a coherent set of components that provide the required functionality taking into account their mutual dependencies and architec...
Article
Robot software systems tend to be complex. This complexity is due, in large part, to the need to control diverse sensors and actuators in real time, in the face of significant uncertainty and noise. Robot systems must work to achieve tasks while monitoring for, and reacting to, unexpected situations. Doing all this concurrently and asynchronously a...
Article
Full-text available
The complexity necessary for robotics software systems to dynamically respond to or handle a variety of evolving scenarios translates into serious development costs and engineering challenges. Dynamic variability is one new strategy for supporting the dynamic behavior of robotics control systems.
Article
Full-text available
A model is an abstract representation of a real system or phenomenon [1]. The idea of a model is to capture important properties of reality and to eglect irrelevant details. The properties that are relevant and that can be neglected depend on the purpose of creating a model. A model can make a particular system or phenomenon easier to understand, q...
Conference Paper
Full-text available
This paper presents a project-based laboratory for senior-level students in computer engineering that is based on the LEGO Mind-storms kits extended with a set of off-the-shelf microcontrollers and cus-tom electronics. It is organized in an integrated set of projects, which individually cover a subset of typical issues and challenges involved in th...
Conference Paper
Full-text available
During the last years robotic researchers have been able of developing extremely complex applications. The complexity of these applications is reflected by the variety of functionalities involved, which are provided by a significant number of components. Although the reuse of software components is becoming a best-practice, the reuse of reference a...
Conference Paper
Full-text available
The work presented in this paper is motivated by the aim of simplifying the integration of robotic and information systems technology. This would allow for example to extend the capabilities of autonomous robots with the possibility to access Web resources and services. For this purpose, this paper presents the Task Component Architecture, a framew...
Conference Paper
Full-text available
This paper presents the structure and the content of a project-based laboratory in software engineering for autonomous robots. Even if the theory and practice of software development for robotic has been the subject of several editions of the Robotics course at the University of Bergamo, the presented laboratory has been offered for the first time...
Conference Paper
Full-text available
Deploying a complex robot software architecture on real robot systems and getting it to run reliably is a challenging task. We argue that software deployment decisions should be separated as much as possible from the core development of software functionalities. This will make the developed software more independent of a particular hardware archite...
Conference Paper
Full-text available
Because robotic systems get more complex all the time, developers around the world have, during the last decade, created component-based software frameworks (Orocos, OpenRTM, ROS, OPRoS, SmartSoft) to support the development and reuse of "large grained" pieces of robotics software. This paper introduces the BRICS Component Model (BCM) to provide ro...
Conference Paper
Full-text available
State of the art in robot software development mostly relies on class library reuse and only to a limited extent to component-based design. In the BRICS project we have defined a software development process that is based on the two most recent and promising approaches to software reuse, i.e. Software Product Line (SPL) and Model-Driven Engineering...
Conference Paper
Full-text available
Along the years robotics software and applications have been typically implemented in compiled languages, such as C and C++, rather than interpreted languages, like Java. This choice has been due to their well-known faster behaviors, which meet the high performance requirements of robotics. Nevertheless, several projects that implement robotics fun...
Conference Paper
Full-text available
State of the art in robot software development mostly relies on class library reuse and only to a limited extent to component-based design. In the BRICS project we have defined a software development process that is based on the two most recent and promising approaches to software reuse, i.e. Software Product Line (SPL) and Model-Driven Engineering...
Conference Paper
Full-text available
Kinematics and dynamics constraints of mobile robots can be modeled by means of differential equations. Simulation and sampling based path-planning algorithms need a model of these constraints in order to deal with non-holonomic mobile robots. Usually these models are hard-coded in the implementation of those algorithms and this makes hard their re...
Conference Paper
Full-text available
Early design and validation of service-oriented applications is hardly feasible due to their distributed, dynamic, and heterogeneous nature. In order to support the engineering of such applications and discover faults early, foundational theories, modeling notations and analysis techniques for component-based development should be revisited. This p...
Book
This book constitutes the refereed proceedings of the Third International Conference on Simulation, Modeling, and Programming for Autonomous Robots, SIMPAR 2012, held in Tsukuba, Japan, in November 2012. The 33 revised full papers and presented together with 3 invited talks were carefully reviewed and selected from 46 submissions. Ten papers descri...
Article
Full-text available
The Technical Committee on software engineering for robotics (TC-SOFT) promotes dissemination activities and public relations that stimulate discussion on the way that software development is actually practiced in robotics and on the synergy between robotics and software engineering. Software engineering for robotics represents a confluence between...
Conference Paper
Full-text available
Early design and validation of service-oriented applications is hardly feasible due to their distributed, dynamic, and heterogeneous nature. In order to support the engineering of such applications and discover faults early, foundational theories, modeling notations and analysis techniques for component-based development should be revisited. This...
Conference Paper
Full-text available
Recent robotics studies are investigating how robots can exploit the World Wide Web in order to offer their functionality and retrieve information that is useful for completing their tasks. This new trend requires the ability of integrating robotics and information systems technology. On the first side a set of robotics component based frameworks,...
Conference Paper
Full-text available
Feature models are used in software engineering for modeling all the possible configurations of the software of a specific domain. They capture the commonalities and the variabilities among these software and offer a formalism to clearly represent these properties in a separate way. Features represent end-user characteristic of the software and can...
Conference Paper
Full-text available
Advanced software engineering is the key factor in the design of future complex cognitive robots. It will decide about their robustness, (run-time) adaptivity, cost-effectiveness and usability. We present a novel overall vision of a model-driven engineering approach for robotics that fuses strategies for robustness by design and robustness by adap...
Conference Paper
The main objectives of this workshop are to organize common discussions within Model-base Engineering (MBE) and Robotics experts on how MBE can help robotics people and to share issues that robotics people have encountered with MBE. Current engineering approaches for robotic systems have indeed been demonstrated to be insufficient to bypass followi...
Conference Paper
Full-text available
Most of the current state of the art motion planning software libraries are not easily interchangeable, because core concepts are represented with different data structures, application programming interfaces (API) are not compatible, or algorithms are encapsulated in modules organized in mutually exclusive abstraction hierarchies. These problems l...
Article
Full-text available
This article is the second of a two-part series intended as an introduction to Component-based Software Engineering (CBSE) in Robotics. In Part I, we regarded a component as a piece of software that implements robotic functionality. The focus was on design principles and implementation guidelines that enable the development of reusable and maintain...
Conference Paper
Full-text available
In the past, the process of developing a new robot application has had more of the design of a piece of artwork or of an act of ingenious engineering than of a structured and formalized process. The prime objective of BRICS is to structure and formalize the robot development process itself and to provide tools, models, and functional libraries, whi...
Article
Full-text available
This article is the first of a two-part series intended as an introduction to component-based software engineering (CBSE) in robotics. In this tutorial, we regard a component as a piece of software that implements robotic functionality (e.g., path planning). The focus of this article is on design principles and implementation guidelines that enable...
Conference Paper
The energy issues that face the wodd seem very complex and intractable. Complicating the energy supply issues is the intersecting issue of carbon emissions and the potential role it can play in global climate change. However, the problems can be expressed ...
Article
Full-text available
This special issue on software engineering (SE) for robotics captures a snapshot of current research issues and state-of-the-practice in robotic software development, a topic that has recently received increasing attention from the robotics community, thanks to some popular initiatives such as the Microsoft move into robotics.
Conference Paper
Full-text available
A communication system for robotics application should allow fast exchange of real-time data for low level robot control and large amount of data for high level algorithms like intelligent vision or map building. Ethernet seems to be the perfect candidate for the low level communication interface because of its large diffusion, high bandwidth and l...
Conference Paper
Full-text available
In order to make robot software applications reusable across different robotic platform, there is the need to make software dependencies to the mechanical structure explicit. This means to define a common mechanism model that is used by every functional module to refer to the specific characteristics of the robot hardware. The aim of this paper is...
Chapter
A framework for distributed computing consists of an integrated set of service components that allow distributed systems to operate together. Typically, distributed component frameworks offer at least the following services: Distributed event management supports dynamic notification of events raised by remote objects. Location-transparent access...
Chapter
Full-text available
Domain Engineering is a set of activities aiming at developing reusable artifacts within a domain. The term domain is used to denote or group a set of systems or functional areas within systems, that exhibit similar functionality.
Chapter
Full-text available
Networked Robotics [SG02, SG03] is a kind of Human-Robot Interaction [HRI04]; the human operator collaborates with the robot for the execution of difficult tasks for which the robot cannot achieve a high level of autonomy due to the complexity of the task or the structure of the operating environment.
Chapter
Full-text available
In the software community, a framework indicates an integrated set of domainspecific software components [CS95] which can be reused to create applications. A framework is more than a library of software components: It defines the common architecture underlying the particular applications built on the framework. Frameworks are a powerful development...
Chapter
Full-text available
Component-Based Software Engineering (CBSE) is an approach that has arisen in the software engineering community in the last decade. 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 [Cas00, HC01, Szy02, DW98, CC01]. Component-Based...
Book
"Software Engineering for Experimental Robotics" collects contributions that describe the state of the art in software development for the Robotics domain. It reports on innovative ideas that are progressively introduced in the software development process, in order to promote the reuse of robotic software artifacts: domain engineering, components,...
Article
Full-text available
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 tec...
Conference Paper
Full-text available
A robot is a physical device that interacts with the external world through sensors and actuators, and carries out tasks autonomously in unstructured, dynamic, partially observable, and uncertain environments. Software applications are the medium to embody intelligence in the robot. Today, most of the research and development of software for roboti...
Article
Full-text available
Knowledge discovery processes require powerful computational resources, and specific expertise to extract knowledge from large amounts of data. Data, resources, and expertise are now available on the Internet. Thus, decentralization of knowledge discovery processes seems a viable solution. However, effective use of the Internet calls for technologi...
Article
Knowledge discovery processes require powerful com- putational resources, and specific expertise to extract knowledge from large amounts of data. In the context of scientific collaboration, such as a Network of Excellence to which world-wide scientific partners participate, each partner provides some data resources or some computa- tional resources...
Article
Full-text available
Enterprise frameworks are a special class of application frameworks. They are distinguished from other application frameworks in terms of scale and focus. In terms of focus, application frameworks typically cover one particular aspect of an application, either a domain-dependent aspect (e.g., billing in a web-based customer-to-business ordering sys...
Article
Full-text available
This paper reports about our experience in developing the ERX Data Management System, a system devised to collect data coming from different XML data sources, and store them into a database in a way independent of the source format; its query language, named ERX-QL, is able to query the database and generate new XML documents. We developed the ERX...
Article
Full-text available
The pervasive introduction of the Internet into robotics and automation systems pushes forward an evolution that began when the computer was introduced in the enterprise in the middle of the last century, and that continued. with the interconnection of shop-floor workstations in local networks in the 1980s. Today, the Internet represents a challeng...
Article
Full-text available
Designing automation systems, as in most engineering endeavors, is primarily an architectural problem, involving hardware and software components. The objective of this paper is to introduce the concept of software architecture and styles in designing automation systems, and to describe an object framework for the development of global automation s...
Article
This special issue is designed to help organizations effectively develop or adapt enterprise framework technology in the real world. It focuses both on technical and management aspects. The articles deal with such issues as the identification of framework design guidelines, the evolution of an enterprise framework and its correlation with the enter...
Article
Full-text available
SUMMARY Enterprise frameworks are a special class of application frameworks. They are distinguished from other application frameworks in terms of scale and focus. In terms of focus, application frameworks typically cover one particular aspect of an application, either a domain-dependent aspect (e.g., billing in a web-based customer-to-business orde...
Article
In this paper we propose Software Agents as a mediation support between the Internet and its users. The paper classifies mediation agents in three categories (Interface Agents, Coordination Agents, and Middle Agents) and provides examples of their usage in three application domains: Public Administration, Electronic Commerce, and Factory Automation...
Article
Full-text available
Enterprise frameworks are a special class of application frameworks. They are distinguished from other application frameworks in terms of scale and focus. In terms of focus, application frameworks typically cover one particular aspect of an application, either a domain-dependent aspect (e.g., billing in a web-based customer-to-business ordering sys...
Conference Paper
In this paper we present a novel approach to the control of manufacturing systems via agent interactions. Based on a decentralized control strategy the agents can collaborate with each other conveniently. We provide a distributed architecture to model the elementary services (an unreliable machine coupled with a finite buffer) in terms of hybrid au...
Article
Full-text available
As information technology provides industry with means to identify new product and service opportunities, the increasing demand for these products and services places new demands on information technology. This cycle has created unprecedented requirements for integrated enterprise systems and applications, which are capable of modeling rapid change...
Article
Full-text available
this paper is to present how techniques of the Agent Technology have been exploited to enhance software reusability and maintainability. The principal contributions are the definition of the concept of Agent Oriented Application Framework as a reuse technique and the comparison with Object Oriented Application Frameworks and Component Development
Article
Full-text available
The goal of this paper is the comparison between Application Frameworks and Pattern Languages� Frameworks and pattern languages are concepts proposed in the Object�Oriented literature to capture aspects which unify software development and raise reusability from the basic level of components to the higher level of complete architectures� Our experi...
Article
Full-text available
Object Oriented Enterprise Frameworks (OOEFs) are designed to reduce the complexity and cost of enterprise systems, and therefore have become strategic assets for organizations across all business sectors. Evidence of this is reflected in the recent entry of flexible and extensible products for enterprise resource planning (ERP), manufacturing exec...
Article
Full-text available
technique. Section 7.7 describes software architectures, which represent an independent research area. For most of the techniques (where appropriate), a list of enabling methodologies and technologies is presented. They include UML for OOA and OOD, CORBA and DCOM for OO frameworks, and Java Beans and ActiveX for component based development. 7.2. Ob...
Conference Paper
We present an architecture for developing applications which need to integrate legacy business enterprise information systems in a large distributed environment. In particular we address the problem of building virtual factories by interconnecting existing physical factories. The proposed architecture consists of several different frameworks each o...
Article
Full-text available
In this paper we present a method for a multi-sensor mobile robot to explore autonomously an unknown environment. The method tries to solve the main problems involved by such a task. In particular we present a model to represent geographic knowledge, based on an extension of the "Diktiometric representation" of Engelson and McDermott [1]. We paid s...
Article
Full-text available
Collaborating autonomous agents are becoming increasingly attractive for systems where problem solving and decision making must be distributed. Unfortunately, they are not yet practical for industrial application. Selected aspects of agent theory, however, can be very useful to software development. In this paper, we give three patterns which can f...
Article
Introduction A framework indicates, in the software community, an integrated set of domain-specific software components (Coplien and Schmidt 1995), which can be reused to create applications, the most common examples being graphical user interfaces (Weinand and Gamma 1994). Frameworks have acquired popularity in object-oriented (OO) programming (Co...
Article
Agent-based systems have received much interest in the latest years, and researchers are applying them to more and more fields. However, except for some attempts of standardization at the lower levels (such as a common programming language), most of the research and development has been based on proprietary designs architectures, invented from scra...