IEEE Robotics & Automation Magazine - December 2019 - 114

scalability. All of our recent humanoid robots [2], [23] share
the same cognitive and functional software architecture
implemented in ArmarX [24], [41]. As a complex humanoid
robot system, ArmarX is not only a robot middleware but
also a complete functional cognitive architecture offering
ready-to-use modules on multiple levels of abstraction. Figure 5 shows the key modules of the architecture, which are
divided into three levels of abstraction: 1) real-time control
and hardware abstraction, 2) perception and the robot memory system, and 3) task planning.
On the lowest level, nearly all data are subsymbolic. The
hardware abstraction layer connects with the robot-agnostic,
real-time control framework. This abstraction level provides
its data to the upper levels and receives commands from the
highest level. On the middle level, perception modules for sensor processing such as object localization, self-localization, and
human pose estimation are located. Their results are stored in
the ArmarX memory system, MemoryX, which includes
modules such as the working memory for a consistent world
state, long-term memory for self-experienced data, and prior
knowledge that contains data provided by robot programmers
(e.g., 3D object and world models) as well as preprogrammed
trajectories. The result of the sensor processing is usually

High Level

Task Controller

represented in (but not restricted to) easy-to-process formats
such as 6D poses or symbolic relations. On the highest
abstraction level, reasoning modules, such as natural language
understanding, symbolic planning, and statecharts, coordinate
the robot subsystems primarily on a symbolic level.
Figure 6 displays an abstract depiction of an exemplary
statechart (in this case, for the handover task described in the
"Human Activity Recognition and Active Handover" section)
and the interconnections between respective perception and
the control modules. All of the modules run in parallel and
provide their data asynchronously to the statecharts, which
generate targets for the controllers that run synchronously in
the real-time layer.
One key principle of the robot architecture is the modularity of the software based on common interfaces. This
facilitates the easy exchange or insertion of new software
modules to be used on multiple robot platforms, which is
especially important for the purpose of research. Due to
this modularity, failures of individual modules do not affect
the complete system. The complexity of the robot's software
system results in a high number of interconnected modules
that create a complicated network of dependencies. To provide an assessment of the system's state, ArmarX presents

Speech Commands and RoNoH Based on NLU

Natural Language
Understanding (NLU)

Scene
Understanding

Symbolic
Planning

RoNoH Based
on Human Pose

Task Coordination
(Statecharts)

Task Triggering

World State

Robot Memory

Middle Level

Prior Knowledge

Long-Term Memory

Key
RoNoH Control
and Data Flow

General Control
and Data Flow

Working Memory
Controller
Parametrization

Perception
Scene Registration
and Self-Localization

Object Localization

Human Pose Estimation

Images and
Point Clouds

Low Level

Real-Time Control Framework
Cartesian Velocity Cartesian Impedance
Controller
Controller

Trajectory
Controller

CCDMP Controller

Torque Controller

Position
Controller

Compliant Velocity
Controller

Velocity Controller

RoNoH Based
on Haptics

Hardware Abstraction Layer

Figure 5. An overview of ArmarX, the functional software architecture of ARMAR-6. The image is divided into its three main conceptual
levels and their principal interconnections. The information is increasingly abstracted from low (e.g., raw sensor values) to high levels
(e.g., symbolic predicates). RoNoH: recognition of the need of help; CCDMP: Coordinate Change Dynamic Movement Primitive.

114

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

DECEMBER 2019



IEEE Robotics & Automation Magazine - December 2019

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - December 2019

Contents
IEEE Robotics & Automation Magazine - December 2019 - Cover1
IEEE Robotics & Automation Magazine - December 2019 - Cover2
IEEE Robotics & Automation Magazine - December 2019 - Contents
IEEE Robotics & Automation Magazine - December 2019 - 2
IEEE Robotics & Automation Magazine - December 2019 - 3
IEEE Robotics & Automation Magazine - December 2019 - 4
IEEE Robotics & Automation Magazine - December 2019 - 5
IEEE Robotics & Automation Magazine - December 2019 - 6
IEEE Robotics & Automation Magazine - December 2019 - 7
IEEE Robotics & Automation Magazine - December 2019 - 8
IEEE Robotics & Automation Magazine - December 2019 - 9
IEEE Robotics & Automation Magazine - December 2019 - 10
IEEE Robotics & Automation Magazine - December 2019 - 11
IEEE Robotics & Automation Magazine - December 2019 - 12
IEEE Robotics & Automation Magazine - December 2019 - 13
IEEE Robotics & Automation Magazine - December 2019 - 14
IEEE Robotics & Automation Magazine - December 2019 - 15
IEEE Robotics & Automation Magazine - December 2019 - 16
IEEE Robotics & Automation Magazine - December 2019 - 17
IEEE Robotics & Automation Magazine - December 2019 - 18
IEEE Robotics & Automation Magazine - December 2019 - 19
IEEE Robotics & Automation Magazine - December 2019 - 20
IEEE Robotics & Automation Magazine - December 2019 - 21
IEEE Robotics & Automation Magazine - December 2019 - 22
IEEE Robotics & Automation Magazine - December 2019 - 23
IEEE Robotics & Automation Magazine - December 2019 - 24
IEEE Robotics & Automation Magazine - December 2019 - 25
IEEE Robotics & Automation Magazine - December 2019 - 26
IEEE Robotics & Automation Magazine - December 2019 - 27
IEEE Robotics & Automation Magazine - December 2019 - 28
IEEE Robotics & Automation Magazine - December 2019 - 29
IEEE Robotics & Automation Magazine - December 2019 - 30
IEEE Robotics & Automation Magazine - December 2019 - 31
IEEE Robotics & Automation Magazine - December 2019 - 32
IEEE Robotics & Automation Magazine - December 2019 - 33
IEEE Robotics & Automation Magazine - December 2019 - 34
IEEE Robotics & Automation Magazine - December 2019 - 35
IEEE Robotics & Automation Magazine - December 2019 - 36
IEEE Robotics & Automation Magazine - December 2019 - 37
IEEE Robotics & Automation Magazine - December 2019 - 38
IEEE Robotics & Automation Magazine - December 2019 - 39
IEEE Robotics & Automation Magazine - December 2019 - 40
IEEE Robotics & Automation Magazine - December 2019 - 41
IEEE Robotics & Automation Magazine - December 2019 - 42
IEEE Robotics & Automation Magazine - December 2019 - 43
IEEE Robotics & Automation Magazine - December 2019 - 44
IEEE Robotics & Automation Magazine - December 2019 - 45
IEEE Robotics & Automation Magazine - December 2019 - 46
IEEE Robotics & Automation Magazine - December 2019 - 47
IEEE Robotics & Automation Magazine - December 2019 - 48
IEEE Robotics & Automation Magazine - December 2019 - 49
IEEE Robotics & Automation Magazine - December 2019 - 50
IEEE Robotics & Automation Magazine - December 2019 - 51
IEEE Robotics & Automation Magazine - December 2019 - 52
IEEE Robotics & Automation Magazine - December 2019 - 53
IEEE Robotics & Automation Magazine - December 2019 - 54
IEEE Robotics & Automation Magazine - December 2019 - 55
IEEE Robotics & Automation Magazine - December 2019 - 56
IEEE Robotics & Automation Magazine - December 2019 - 57
IEEE Robotics & Automation Magazine - December 2019 - 58
IEEE Robotics & Automation Magazine - December 2019 - 59
IEEE Robotics & Automation Magazine - December 2019 - 60
IEEE Robotics & Automation Magazine - December 2019 - 61
IEEE Robotics & Automation Magazine - December 2019 - 62
IEEE Robotics & Automation Magazine - December 2019 - 63
IEEE Robotics & Automation Magazine - December 2019 - 64
IEEE Robotics & Automation Magazine - December 2019 - 65
IEEE Robotics & Automation Magazine - December 2019 - 66
IEEE Robotics & Automation Magazine - December 2019 - 67
IEEE Robotics & Automation Magazine - December 2019 - 68
IEEE Robotics & Automation Magazine - December 2019 - 69
IEEE Robotics & Automation Magazine - December 2019 - 70
IEEE Robotics & Automation Magazine - December 2019 - 71
IEEE Robotics & Automation Magazine - December 2019 - 72
IEEE Robotics & Automation Magazine - December 2019 - 73
IEEE Robotics & Automation Magazine - December 2019 - 74
IEEE Robotics & Automation Magazine - December 2019 - 75
IEEE Robotics & Automation Magazine - December 2019 - 76
IEEE Robotics & Automation Magazine - December 2019 - 77
IEEE Robotics & Automation Magazine - December 2019 - 78
IEEE Robotics & Automation Magazine - December 2019 - 79
IEEE Robotics & Automation Magazine - December 2019 - 80
IEEE Robotics & Automation Magazine - December 2019 - 81
IEEE Robotics & Automation Magazine - December 2019 - 82
IEEE Robotics & Automation Magazine - December 2019 - 83
IEEE Robotics & Automation Magazine - December 2019 - 84
IEEE Robotics & Automation Magazine - December 2019 - 85
IEEE Robotics & Automation Magazine - December 2019 - 86
IEEE Robotics & Automation Magazine - December 2019 - 87
IEEE Robotics & Automation Magazine - December 2019 - 88
IEEE Robotics & Automation Magazine - December 2019 - 89
IEEE Robotics & Automation Magazine - December 2019 - 90
IEEE Robotics & Automation Magazine - December 2019 - 91
IEEE Robotics & Automation Magazine - December 2019 - 92
IEEE Robotics & Automation Magazine - December 2019 - 93
IEEE Robotics & Automation Magazine - December 2019 - 94
IEEE Robotics & Automation Magazine - December 2019 - 95
IEEE Robotics & Automation Magazine - December 2019 - 96
IEEE Robotics & Automation Magazine - December 2019 - 97
IEEE Robotics & Automation Magazine - December 2019 - 98
IEEE Robotics & Automation Magazine - December 2019 - 99
IEEE Robotics & Automation Magazine - December 2019 - 100
IEEE Robotics & Automation Magazine - December 2019 - 101
IEEE Robotics & Automation Magazine - December 2019 - 102
IEEE Robotics & Automation Magazine - December 2019 - 103
IEEE Robotics & Automation Magazine - December 2019 - 104
IEEE Robotics & Automation Magazine - December 2019 - 105
IEEE Robotics & Automation Magazine - December 2019 - 106
IEEE Robotics & Automation Magazine - December 2019 - 107
IEEE Robotics & Automation Magazine - December 2019 - 108
IEEE Robotics & Automation Magazine - December 2019 - 109
IEEE Robotics & Automation Magazine - December 2019 - 110
IEEE Robotics & Automation Magazine - December 2019 - 111
IEEE Robotics & Automation Magazine - December 2019 - 112
IEEE Robotics & Automation Magazine - December 2019 - 113
IEEE Robotics & Automation Magazine - December 2019 - 114
IEEE Robotics & Automation Magazine - December 2019 - 115
IEEE Robotics & Automation Magazine - December 2019 - 116
IEEE Robotics & Automation Magazine - December 2019 - 117
IEEE Robotics & Automation Magazine - December 2019 - 118
IEEE Robotics & Automation Magazine - December 2019 - 119
IEEE Robotics & Automation Magazine - December 2019 - 120
IEEE Robotics & Automation Magazine - December 2019 - 121
IEEE Robotics & Automation Magazine - December 2019 - 122
IEEE Robotics & Automation Magazine - December 2019 - 123
IEEE Robotics & Automation Magazine - December 2019 - 124
IEEE Robotics & Automation Magazine - December 2019 - 125
IEEE Robotics & Automation Magazine - December 2019 - 126
IEEE Robotics & Automation Magazine - December 2019 - 127
IEEE Robotics & Automation Magazine - December 2019 - 128
IEEE Robotics & Automation Magazine - December 2019 - 129
IEEE Robotics & Automation Magazine - December 2019 - 130
IEEE Robotics & Automation Magazine - December 2019 - 131
IEEE Robotics & Automation Magazine - December 2019 - 132
IEEE Robotics & Automation Magazine - December 2019 - 133
IEEE Robotics & Automation Magazine - December 2019 - 134
IEEE Robotics & Automation Magazine - December 2019 - 135
IEEE Robotics & Automation Magazine - December 2019 - 136
IEEE Robotics & Automation Magazine - December 2019 - 137
IEEE Robotics & Automation Magazine - December 2019 - 138
IEEE Robotics & Automation Magazine - December 2019 - 139
IEEE Robotics & Automation Magazine - December 2019 - 140
IEEE Robotics & Automation Magazine - December 2019 - 141
IEEE Robotics & Automation Magazine - December 2019 - 142
IEEE Robotics & Automation Magazine - December 2019 - 143
IEEE Robotics & Automation Magazine - December 2019 - 144
IEEE Robotics & Automation Magazine - December 2019 - 145
IEEE Robotics & Automation Magazine - December 2019 - 146
IEEE Robotics & Automation Magazine - December 2019 - 147
IEEE Robotics & Automation Magazine - December 2019 - 148
IEEE Robotics & Automation Magazine - December 2019 - 149
IEEE Robotics & Automation Magazine - December 2019 - 150
IEEE Robotics & Automation Magazine - December 2019 - 151
IEEE Robotics & Automation Magazine - December 2019 - 152
IEEE Robotics & Automation Magazine - December 2019 - Cover3
IEEE Robotics & Automation Magazine - December 2019 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com