Robot Software Design and Architectures Video 1 og 2 Flashcards

1
Q

Why Architecture?

A

› 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the difference between architecture patterns and architecture definition frameworks?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hva er TOGAF standarden?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Name 10 common architectural patterns.

A
  1. Layered pattern.
  2. Client-server pattern.
  3. Master-slave pattern.
    4 Pipe-filter pattern.
  4. Broker pattern
  5. Peer-to-peer pattern.
  6. Event-bus pattern.
  7. Model-view-controller pattern.
  8. Blackboard pattern.
  9. Interpreter pattern.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is robot (software) architecture?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why architecture (in more details)

A

› 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are common features of robot architectures?

A

Decomposition into simpler and indepenten modules/pieces
Asynchronous communication
Minimizing interations (independent/decoupled modules/components)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the goal of decomposition, asynchronous communication and minimizing interations on robot architectures?

A

These decrease complexity and increase reliability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How are systems often decomposed in robot architectures?

A

Hierarchically

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What advantage do architectures that support layered decomposition offer?

A

They reduce system complexity through abstraction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the three dimensions of decomposition in robot architectures?

A

Temporal, task abstraction, and spatial abstraction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How does temporal abstraction work in layered architectures?

A

Higher levels are slower than lower levels.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How does task abstraction function in hierarchical robot architectures?

A

Higher-level tasks are achieved by invoking tasks at lower levels.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is spatial abstraction in robot architectures?

A

It refers to the location of components, such as in navigation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are some positives using tools as a contraining factor?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the layers of the Layered Robot Control Architectures: two-layered architectures?

A

Functional Layer and Decision layer.

17
Q

What does the functional layer of CLARAty provide?

A

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.

18
Q

What does the Decision layer of CLARAty provide?

A

It combines planning and executive capabilities.

Provide for tighter coordination between planning and execution, enabling continual replanning in response to dynamic contingencies.

19
Q

What are the 3 components and layers?

A
  • 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.
20
Q

What are the steps of connecting components?

A
  • 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
21
Q

How do Client Server work and what are the advantages and disadvantages?

A

› 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!

22
Q

How do Publish Subscribe work and what are the advantages and disadvantages?

A

› 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

23
Q

What is JAUS: Joined Architecture of Unmanned Systems?

A

› 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

24
Q

How are the JAUS messages structured?

A

› 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

25
Q

Detailes of each of the components in the architecture: Behaviour

A

› Directly connects sensors and actuators.
› Hand-crafted functions written in C or C++,
› Also specialized languages developed for behavioral control e.g. ALFA, Behavioral Language and Rex.
› Traditional control theory (e.g., proportional–integral–derivative (PID) functions, Kalman filters, etc.)
› The layer is composed of a small number of behaviors (also called skills) that perceive the environment and carry out the actions of the robot.

  1. Move to location while avoiding obstacles.
  2. Move down hallway while avoiding obstacles.
  3. Find a door.
  4. Find a door knob.
  5. Grasp a door knob.
  6. Turn a door knob.
  7. Go through door.
  8. Determine location.
  9. Find office number.
  10. Announce delivery.
26
Q

Detailes of each of the components in the architecture: Executive

A

› The interface between the numerical behavioral control and the symbolic planning layers.
› Responsible for translating highlevel plans into low-level behaviors, invoking behaviors at the appropriate times,
monitoring execution, and handling exceptions.
› May also allocate and monitor resource usage, although that
functionality is more commonly performed by the planning layer.

Example: High level goal = deliver mail
› Decompose to subtasks
› Geometric path planner to locate corridors and intersections
› If doors found, open and go through
› Look for office numbers
› Announce mail delivery
› If not picked, perform some recovery action (e.g., announce
again, notify planning layer to reschedule, etc)

27
Q

Detailes of each of the components in the architecture: Planning

A

› Responsible for determining the longrange activities of the robot based on high-level goals.
› Recall: the behavioral control component is concerned with the hereand-now
› Recall: the executive is concerned with what has just happened and what should happen next
› The planning component looks towards the future.

› Back to our example:
› Input: the day’s deliveries, the resources of the robot and a map
› Output: optimal delivery routes and schedule, including when the robot should recharge.
› Also responsible for replanning when the situation changes:
› What if the office is locked

28
Q

What are the executives capabilities?

A

1 . Decomposition to low level tasks.
Achieved by behavioural layer
- Proceduaral: HOW to achieve tasks rather than WHAT needs to
be done
Usually a hierarchical task tree
- Parent-child relation
2. Temporal constraints:
- Sequence & Cconcurrent
- Timed: Finish after x seconds
Tasks may specify resources (e.g. motor or camera)
Resolution of conflicting tasks (e.g. programmed alternatives, priorities)
3. Execution monitoring:
- Needed because behaviours are situated and situations may
change unexpectedly
- Implemented as concurrent tasks analysing sensor data
(polling and interrupt.driven monitors)
4. Error recovery:
- Spawn subtasks, terminate subtasks, cause parent task to
fail, raise an exception, ….
- Hierarchical exception mechanism throwing upwards (to
parent task)