Control architectures form the backbone of complete robotic systems. Complex robotic systems require concurrent embedded real-time performance, and are typically too complex to be developed and operated using conventional programming techniques. The complexity demands of such systems require frameworks and tools that are based on well-defined concepts that enable the effective realization of systems to meet high-level goals.
An autonomous software framework represents a type of system commonly known in the literature as a robotic architecture, the backbone of the autonomous robotic software around which the rest of the components are defined. A typical architecture is divided into layers to improve the modularity and different latencies demanded during the construction of plans and execution. Literature distinguishes among three types of approaches:
|Deliberative Architecture||Classical approach to building controllers, namely, a particular type of knowledge-based system and is defined to be one that contains an explicitly represented symbolic model of the world. The approach suggests that intelligent behavior can be generated by providing a system with a symbolic representation of its environment and its desired behavior and by syntactically manipulating this representation. The core of this deliberative architecture is a planner, which elaborates plans based on the knowledge of the problem domain. A plan defines a series of actions designed to accomplish a set of goals but not violate any resource limitations, temporal or state constraints, or other spacecraft or rover operation rules. But any plan, no matter how it is generated, requires the help of an execution system to be useful for real-world execution|
|Reactive architectures||These are based on the idea that intelligent rational behavior is innately linked to the environment and the idea that intelligent behavior emerges from the interaction of various simpler behaviors. In rapidly changing environment, such as the real world, where the controller must react quickly to external changes, there may not be time available to perform many time-consuming actions such as planning and introspection. In this case an agent with a reactive, or behavioral, architecture may be more appropriate.|
|Layered architectures:||Present a slower, deliberative reasoning system in charge of deciding the strategic plan and a fast, reactive system in charge of reacting to unexpected changes of the environment. This approach breaks down the different proactive and reactive elements of a controller into different layers. This level of abstraction allows complex controllers to be modelled more easily and is flexible enough for use in many robotic environments.|
Table 1‑1: Autonomous software frameworks architectures
Most of the space autonomous systems have taken the ‘three-layer’ architecture, both in European and NASA studies, because gives a good representation of the tasks hierarchy of typical SC and do not show the artificial intelligent (AI) heavy algorithmic computations and integration complexity of the multi-agent architectures.
Some attempts tried to unify the Deliberative and Reactive layers in one single layer with the intention of having a common representation of the plan to be shared by both components (IDEA and CLARAty [RD. 24] ).
It shall be addressed that the SRC Guidelines expressly asks for a three-layer’ architecture for this OG2.