Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

AUTONOMOUS SYSTEMS

ARCHITECTURES FOR
AUTONOMOUS SYSTEMS
FUNCTIONAL, SOFTWARE AND HARDWARE

Pedro U. Lima
(with revisions and add-ins introduced by Rodrigo Ventura)
Instituto Superior Técnico
Departamento de Engenharia Electrotécnica e de Computadores
Autonomous Systems 2018 - © Pedro Lima,
December 2020 Functional Architectures
References

J. Albus, “System Description and Design Architecture for Multiple


Autonomous Undersea Vehicles”, NIST Tech. Note 1251, 1987
J. Albus, “Outline for a Theory of Intelligence”, IEEE Trans. Systems,
Man and Cybernetics, 21(3), May/June 1991
R. Brooks, “A Robust Layered Control System for a Mobile Robot”,
IEEE Journal of Robotics and Automation, (2), 1986
K. P. Valavanis and G. N. Saridis, “Intelligent Robotic Systems”,
Kluwer Publ., 1992
Arkin, R. C. Behavior-based robotics. MIT press. 1998

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


INTEGRATION OF SUBSYSTEMS
situational
plan PRIMITIVE
SEMANTIC awareness
TASK PLANNING ACTIONS /
MAPPING
BEHAVIORS
objects, waypoints, goal locations
features
METRIC
MOTION
MAPPING global map PLANNING
local map
desired path/trajectory

estimated pose
images,
landmarks,
LOCALIZATION GUIDANCE
laser scans
desired linear and
angular velocities
obstacle detection
SENSOR
FUSION / CONTROL
linear and angular velocity feedback
PERCEPTION

wheel motor inputs


sensor outputs

actuator inputs Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
INTEGRATION OF SUBSYSTEMS

• Functional modules of an autonomous robot system are


integrated by a functional architecture

• Implementation of a functional architecture is realized


through a software architecture, composed of modules
mapping the functional architecture

• The software architecture runs on a computer, which is


a component of an hardware architecture

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


FUNCTIONAL ARCHITECTURES

• Two major approaches to functional architectures exist


for autonomous mobile robots:

• Heterarchical (or horizontal, or subsumption)

• Hierarchical

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HIERARCHICAL ARCHITECTURE

Mission command

PLANNING

TASK
DECOMPOSITION PERCEPTION

ACTUATORS SENSORS

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HIERARCHICAL ARCHITECTURES
Saridis’ 3-Level Architecture

Autonomous Systems
inspired by management architectures
2018 - © Pedro Lima, Functional Architectures
HIERARCHICAL ARCHITECTURES
Saridis’ 3-Level Architecture

agnostic to implementation tool


used at each level

Petri Net Model for


Coordination and Execution Levels
(Wang, Kyriakopoulos, Tsolkas and Saridis, 1990)

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURE

reason about behavior of objects

plan changes to the world

identify objects
Sensors Actuators
monitor changes

build maps

explore

wander

avoid objects

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Behavior-Based Systems

Assembling Behaviors

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Behavior-Based Systems

Examples of Coordination Functions:

• competitive

R=max(inputs)
(e.g., max activation value, max number of votes)

• cooperative

R=sum(inputs)

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Brooks’ Subsumption Architecture

BROOKS' MODEL (80s)

Level 3

Level 2

Level 1

Level 0 Actuators
Sendors

• Control is layered with higher levels subsuming the role of lower level layers
when they wish to take control.

• The system can be partitioned at any level, and the layers below form a
complete operational control system.

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Brooks’ Subsumption Architecture

inhibitor

inputs Outputs

suppressor Reset

Behavior module

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Brooks’ Subsumption Architecture

robot

feelforce runaway turn


robot heading
force heading

forward
sonar map

collide halt

encoders

Level 0 control system

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Brooks’ Subsumption Architecture
heading

wander avoid
heading

robot

feelforce runaway turn


robot heading
force heading

forward
sonar map

collide halt

encoders

Level 0 control system augmented with level 1

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL ARCHITECTURES
Brooks’ Subsumption Architecture

• R. Brooks, "A robust layered control system


for a mobile robot," in IEEE Journal on
Robotics and Automation, 2(1), 14-23, 1986.

• R. Brooks, “Elephants don't play chess,”


Robotics and Autonomous Systems, 6(1-2), 3-
15, 1990.

• R. Brooks, “Intelligence without


representation,” Artificial Intelligence, 47(1-3),
139-159, 1991.

• R. Brooks, “Intelligence without reason,” AI


Memo 1293, MIT, 1991.

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HETERARCHICAL vs HIERARCHICAL

Heterarchical architectures REACTIVE systems

Hierarchical architectures DELIBERATIVE systems

DELIBERATIVE REACTIVE

Reflexivity

Speed of Response

Predictive Capabilities

Dependence on Accurate, Complete World Models

Representation-dependent Representation-free
Slower response Real-time response
High-level intelligence (cognitive) Low-level intelligence
Variable latency Simple computation

Autonomous Systems 2018 - © Pedro Lima, Modified fromFunctional Architectures


(Arkin, 1998)
HYBRID ARCHITECTURES
Albus’ NASREM

NASA/NBS Standard Reference Model for Telerobot Control System Architecture

HIERARCHICAL CONTROL is an old and proven organizing concept, based on


management theory and used by military, government and business.
It manifests itself through successive partitions of the problem domain, leading to
a more efficient division of labour

SPATIAL RESOLUTION manifests itself in


• the span of control and
• the resolution of perception

TEMPORAL RESOLUTION manifests itself in terms of


• bandwidth
• sampling interval
• planning horizon and
• temporal length of historical traces

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HYBRID ARCHITECTURES
Albus’ NASREM

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HYBRID ARCHITECTURES
Albus’ NASREM

Hybrid Architecture
The architecture is hierarchic in the sense that
commands and status feedback flow hierarchically up and down the chain
of command, and also in the sense that
sensory information is organized in increasingly higher levels of abstraction,
and that information stored in the world model is organized hierarchically.

The architecture is heterarchic in the sense that


data is shared horizontally between heterogeneous modules at the same
hierarchical level, i. e., between task decomposition, sensory processing
and world modelling modules.
Autonomous Systems 2018 - © Pedro Lima, Functional Architectures
HYBRID ARCHITECTURES
Albus’ NASREM

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HYBRID ARCHITECTURES
POETICON++ project

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


SOFTWARE ARCHITECTURES

REQUISITES:

• Flexibility in module replacement

• Multi-plataform (OS and mechanical hardware)

• Concurrent programming (soft) real-time support

• Event-driven

• Usability
• Generic modules for robotic applications

• Behaviour-Based programming with Graphical-User Interface (GUI)


Autonomous Systems 2018 - © Pedro Lima, Functional Architectures
Historical Perspective

Software Architecture Evolution

while (1) {
Make decisions:
• motion
• kick
Detect all
relevant objects
in the image:
• ball
• goals
• other robots

Acquire image
} 1997

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


Historical Perspective

Software Architecture Evolution

Micro-Agents
implemented using pthreads

Remote GUI
robotd relay

SuperScout
Robot
guidance
proxy
machine
kicker blackboard Wireless Network
(other robots)
vision
2000

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


SOFTWARE ARCHITECTURES

User, Application, Robot program…

MIDDLEWARE
e.g., ROS

Operating System (several different ones)

SENSORS ACTUATORS

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


ROS Software Architecture

What is ROS?
• ROS = Robot Operating System
• Framework for robot software development providing operating
system-like functionality
• Originated at Stanford Artificial Intelligence Lab,
currently managed by Open Robotics
• Works quite well in Linux Ubuntu, but there are bindings to Java,
Javascript, C#, and can be tunneled via websockets
• Large user base; getting widespread use
• ROS users forum: http://answers.ros.org

Institute for Systems and Robotics

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
ROS Software Architecture

Basic concept #1: Node


• Modularization in ROS is achieved by operating system processes
• Node = a process that uses ROS framework
• Nodes may reside in different machines transparently
• Nodes get to know one another via roscore

nodes nodes

roscore

• roscore acts primarily as a “name server”, i.e., maps names to nodes


• Nodes use the roscore running in localhost by default
overridden by the environment variable ROS_MASTER_URI

Institute for Systems and Robotics

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
ROS Software Architecture

Basic concept #2: Topic


• Topic = mechanism to send messages among nodes
• Follows a publisher-subscriber design pattern

publisher subscribers

topic

• Publish = to send a message to a topic


• Subscribe = get called whenever a message is published
• Published messages are broadcast to all Subscribers
• Example: LIDAR publishing scan data

Institute for Systems and Robotics

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
ROS Software Architecture

Basic concept #3: Service


• Service = mechanism for a node to send a request to another
node and receive a response from it in return
• Follows a request-response design pattern
request
client server
response
service

• A service is called with a request structure, and in return, a


response structure is returned
• Similar to a Remote Procedure Call (RPC)
• Example: reset location algorithm
Institute for Systems and Robotics

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
ROS Software Architecture

Topic internals
Note: UDP transport
is also supported.

te for Systems and Robotics

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
Example: ROS gmapping

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
Example: Astrobee software

HLP MLP

LLP

planners
drivers (UI) perch_cam
HD Camera
Touchscreen
Speaker/Mic control IMU
haz_cam
EKF CTL FAM

mobility
localization choregrapher
sparse_map validator
ar_targets obstacle_detection
handrail
guest sience sys_monitor propulsion
APKs (multiple) drivers (peripherals)
power_system
status_lights
signal_lights
flashlights
laser
nav_cam executive
dock_cam dds_bridge
guest science
manager

[courtesy of Rodrigo Ventura]


Figure 6. : The main
Autonomous Systems software
2018 components running on Astrobee. The components
- © Pedro Lima, on this diagram represent logical
Functional Architectures
Example: iCub software

mcast
Object
det..
...
udp
... Reaching
/camera
ROBOT udp
/arm/encs ...
udp
...
/arm/trqs
mcast ...

/hand/touch ... ...

udp

/arm/cmd

Grasping
...
udp udp Viewer
...
...
...

[courtesy of Rodrigo Ventura] Functional Architectures


Autonomous Systems 2018 - © Pedro Lima,
HARDWARE ARCHITECTURES

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HARDWARE ARCHITECTURES

Social Robot MBOT


a.k.a. Gasparzinho

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HARDWARE ARCHITECTURES

Social Robot MBOT


a.k.a. Gasparzinho

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HARDWARE ARCHITECTURES

Typical Autonomous Quadcopter

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures


HARDWARE ARCHITECTURES

iCub hardware

Autonomous Systems 2018 - © Pedro Lima, Functional Architectures

You might also like