## 1 Introduction
### Evolution of the Proposed Architecture  
Authors consider that BICA, Behavior-based Iterative Component Architecture, [13] was the first official name of this still evolving architecture. BICA shows the outcome of previous efforts to build an ethological inspired architecture based on schemas names JDE [14]. It has evolved both in the cognitive aspect, incorporating symbolic planning to the original behavior based approach, but also in the software aspect, evolving from a proprietary framework to be implemented on ROS middleware [15]. BICA evolution also reflects the lessons learned obtained from the competitions where it has been evaluated [16], mainly from RoboCup and the RoCKIn competitions.  
The originally behavior-based BICA was enlarged in 2013 [17] to include motivational principles for enhancing the social robot acceptability [18]. As a result, the conceptual cognitive architecture based on BICA that was called HIMoP [19] was introduced. After that, part of the conceptual principles, mainly the planning part, were included into BICA, which led to the the use of a symbolic planner to define the tasks in robotics competitions [20]  
This paper reviews this timeline, showing the two main cognitive elements leading the architecture development till the date: (1) A component-based architecture for behavior generation; (2) a planning-based architecture for long-term behavior generation.  
The main contributions of the work described in this article are first the working memory system added to BICA that let the robot manage different types of knowledge on real time. Secondly, the integration of behavior trees to enhance the generation of new behaviors in the robot, that previously were made using finite state machines (FSMs)  
Working memory represents the knowledge, and lets to be read and manipulated to plan the robot's actions. Blackboard-based systems have been used in robotics since the 1990s [21]. They provide a key/value information-sharing mechanism. The use of graphs is a further step in the representation of knowledge. This representation, based on vertices and arcs, provides a more flexible way of storing relationships among the elements stored in the graph than facts on a whiteboard [22]. Our proposal provides a memory that combines modularity and functionality, in addition to using a distributed approach. Different modules use memory not only to store information but also to trigger the robot's actuation. This information is visible to all working memory users but is only relevant to those users who use it. A systematic review of knowledge representation for service robots can be analyzed in [23].  
Behavior trees emerged and were created to model the behavior of non-player characters (NPCs) in video games, and are currently being used [24; 25] to model tasks in robot behaviors, due to their expressive capacity being superior to FSMs. In our proposal, we combine behavior trees and planning. Unlike [26], we separate the planning layer from the task layer, in which we use behavior trees.  
The rest of the paper is organized as follows. Section 2 describes the first instance of the architecture based on reactive components. Section 3 starts from the limitations of this approach to deal with high-level tasks, in particular when interacting with humans and managing symbolic representations, that led us to the addition of a symbolic planner. This integration led to major contribution of the paper--the working memory described in Section 4. In addition to the evolution in the cognitive aspect, BICA has also evolved in its software implementations, in particular, Section 5 details the second major contribution described--the addition of behavior trees for defining behavioral  
Figure 1: Historical evolution of the Gentlebots robot architecture.  
components. Section 6 focuses on the implementation and testing issues and the final section summarizes the contributions.