Robot Software Design and Architectures Video 1 og 2 Flashcards
Why Architecture?
› Robot software systems tend to be complex.
› Need to control diverse sensors and actuators in real time + significant uncertainty and noise
› Must work to achieve tasks while monitoring for, and reacting to, unexpected situations
› Must do all this concurrently and asynchronously
› The use of a well-conceived architecture, together with programming tools that support the architecture, can often help to manage that complexity
› Currently, there is no single architecture that is best for all applications –
› Different architectures have different advantages and disadvantages.
› It is important to understand those strengths and weaknesses when choosing an architectural approach for a given application.
What is the difference between architecture patterns and architecture definition frameworks?
An architectural pattern is a general, reusable solution to a commonly occuring problem in software architecture within a given context.
Arkitektur-definisjonsrammeverk er retningslinjer for prosessen med å definere og styre systemarkitektur.
Hva er TOGAF standarden?
Velkjent rammeverk for utvikling og adminstrasjon av virksomhetsarkitektur. Hjelper virksomheter til å velge korrekt arkitektur som vil optimalisere business performance.
(Unngå å berre legge til kostnadaer og kompleksitet til bedriften)
TOGAF = The Open Group Architecture Framework
People, processes, and technology.
Name 10 common architectural patterns.
- Layered pattern.
- Client-server pattern.
- Master-slave pattern.
4 Pipe-filter pattern. - Broker pattern
- Peer-to-peer pattern.
- Event-bus pattern.
- Model-view-controller pattern.
- Blackboard pattern.
- Interpreter pattern.
What is robot (software) architecture?
- The term robot architecture is often used to refer to two related, but destinct concepts.
- Architectural structure refers to how a system is divided into subsystems and how those subsystems interact.
- The structure of a robot system is often represented informally using traditional boxes and arrows diagram or more “formally” using techniques such as unified modeling language (UML)
- Architectural style refers to the computational concepts that underlie a given system. For instance:
- One robot system might use a publish-subscribe message passing style of communication
- Another may use a more synchronous client-server approach.
Why architecture (in more details)
› Significant advantages in the specification, execution, and validation of robot systems.
› Facilitate development by providing beneficial constraints on the design and implementation of robotic systems, without being overly restrictive.
› For instance, separating behaviors into modular units helps to increase understandability and reusability, and can facilitate unit testing and validation.
What are common features of robot architectures?
Decomposition into simpler and indepenten modules/pieces
Asynchronous communication
Minimizing interations (independent/decoupled modules/components)
What is the goal of decomposition, asynchronous communication and minimizing interations on robot architectures?
These decrease complexity and increase reliability.
How are systems often decomposed in robot architectures?
Hierarchically
What advantage do architectures that support layered decomposition offer?
They reduce system complexity through abstraction.
What are the three dimensions of decomposition in robot architectures?
Temporal, task abstraction, and spatial abstraction.
How does temporal abstraction work in layered architectures?
Higher levels are slower than lower levels.
How does task abstraction function in hierarchical robot architectures?
Higher-level tasks are achieved by invoking tasks at lower levels.
What is spatial abstraction in robot architectures?
It refers to the location of components, such as in navigation.
What are some positives using tools as a contraining factor?
The tools facilitate the development of software in the given style and, more importantly, make it possible (or, at least, very difficult) to violate the constraints of that architectural style.
The result is that systems implemented using such tools are typically easier to implement, understand, debug, verify and maintain.
They also tned to be more reliable, since the tools provide well-engineered capabilities for commonly needed control constructs, such as:
- Message passing
- Interfacing with actuators and sensors
- Handling concurrent tasks.