Robot Software Design and Architectures Video 1 og 2 Flashcards
(28 cards)
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.
What are the layers of the Layered Robot Control Architectures: two-layered architectures?
Functional Layer and Decision layer.
What does the functional layer of CLARAty provide?
It provides a hierarchy of object-oriented algorithms that provide more and more abstract interfaces to the robot, such as motor control, vehicle control, sensor-based navigation, and mobile manipulation.
Each object provides a generic interface that is hardware independent, so that the same algorithms can run on different hardware.
What does the Decision layer of CLARAty provide?
It combines planning and executive capabilities.
Provide for tighter coordination between planning and execution, enabling continual replanning in response to dynamic contingencies.
What are the 3 components and layers?
- Behavioural layer tied most closely to
sensors and actuators
› E.g. Move the robot, avoid obstacles, open doors, etc - Eexecutive layer is responsible for choosing the current behaviors of the robot to achieve a task.
› E.g. Enter/leave room - Task-planning layer is responsible forachieving long-term goals of the robot within resource constraints
.
› Decide order of deliveries, optimize, priorities, scheduling, recharging, etc, e.g. Go to office 110.
What are the steps of connecting components?
- Layers and components need to communicate with each other.
- Exchange data and send commands.
- Once decided, not easy to change.
- Existing communication packages vs own inhouse implementations based on sockets
- Easy to customize vs reliability
- Two Basic approaches:
- Client server
- Publish subscribe
How do Client Server work and what are the advantages and disadvantages?
› Point to point: components talk directly with each other. E.g.
› RPC Remote Procedure Call
› CORBA: allows one component to call methods implemented
by another component › Interfaces are defined in the IDL
(Interface Definition Language)
› Advantages:
› Interfaces are defined in advance and everyone gets informed
when these change
› Allows for distributed approach without central module
› Disadvantages:
› Significant overhead, especially when many components want
the same information
› Note: CORBA has a broadcast mechanism called event
channel!
How do Publish Subscribe work and what are the advantages and disadvantages?
› Broadcast: a component publishes data and others can
subscribe to that data
› A centralized process routes data › Most components both publish and subscribe
› E.g.
› DDS: Data Distribution Service › IPC › Use XML to define
data, transfer over HTTP
› Advantages:
› Simple to use and low overhead › Useful when we don’t
know how many components need the data
› Disadvantages:
› Difficult to debug (syntax of message is hidden in
Strings) Bugs not detected before runtime
› Single central server for routing Single point of failure
and bottlene
What is JAUS: Joined Architecture of Unmanned Systems?
› Standard from Defense robotics community
› Both for definition of messages and communication protocols
› Used to command unmanned systems
› Reusable messages and interfaces reduce integration cost and ease swapping hardwar
How are the JAUS messages structured?
› JAUS supports the following message types.
› Command: Initiate mode changes or actions
› Query: Solicit information from a component
› Inform: Response to a query › Event set up: Passes parameters to set up an event
› Event notification: Sent when the event happens