IEEE Robotics & Automation Magazine - September 2019 - 61

outputs are the winding currents and generated electromotive torque.
The Mechanical Subsystem Block
This block features a mask interface similar to the electrical
subsystem blocks described previously, with a joint object or
class name as the principal parameter. The user can enable
input and/or output delays, noise, and quantization and can
specify filter cutoff frequencies to realistically simulate
velocity and torque readings from numerical differentiation.
The mechanical subsystem is driven by the electrically generated torque. Depending on the chosen joint model structure, the second model input is a load torque or motion. The
model output jointBus contains the joint states and output torque. When used in combination with an electrical
subsystem block, the bus is fed back to the corresponding
input of the electrical subsystem block so that the back electromotive force from the motion can be computed correctly.
Observers
In practice, the measurement of the entire actuator state is not
always possible. For reasons of complexity and spatial, energy,
and financial economy, developers typically seek to minimize
the number of sensors used in an actuator. Dynamic effects,
such as friction, external loads, and sensor imperfections, are
difficult to model reliably and accurately. Redundancy and fault
detection and isolation are crucial objectives in safety-critical
robot operation, especially when operation occurs in the vicinity
of humans. These aspects have led to the rigorous application of
state and disturbance observers in compliant actuator control.
The Compliant Joint Toolbox features a Simulink blockset
with four different observer implementations frequently found
in the literature: the Luenberger observer, Kalman filter, generalized momentum disturbance observer [6], and linear transfer function disturbance observer [2], [7]. The inputs to all
these blocks are the motor torque reference and the jointBus. As output, they provide either a disturbance estimate or a
state and output estimate. These four blocks are the core components of some of the controllers outlined in the next section.
Controllers
The controllers in the Compliant Joint Toolbox are implemented in discrete time. We provide an overview here. The simplest
one provided is a pure desired-torque feedforward command
that can be combined with an integral controller, as reported in
[8]. As an alternative to integral action, [9] applied a linear disturbance observer, with the nominal plant performing only as a
rotating mass to compensate for disturbances like friction.
The most common torque controller class in the literature
is the proportional derivative (PD) type. For example, a pure
PD torque controller was cascaded with an outer-loop PD
position controller in [10]. A controller discussed in [8] augmented the PD feedback loop with a desired torque feedforward action. The controller presented in [11] supplemented
the PD loop with a disturbance observer based on nominal
open-loop plant dynamics. In contrast to [9], the authors of

[11] incorporated linear viscous friction in the nominal plant
model of the disturbance observer and added a feedforward
nonlinear friction-compensation action. The authors of [3]
proposed a disturbance observer based on a model of the
nominal closed control loop, which augmented the PD torque
controller. A disturbance observer based on the closed control
loop was adopted by [4] and [7] in the context of control for
so-called reaction force series elastic actuators. The controller
implemented this scheme based on a proportional-integral-
derivative (PID) torque control loop with desired torque
feedforward action. The
controller in [12] also was
a PID controller with a
We plan to extend the
desired torque feedforward command, using the
toolbox's capabilities to
open-loop nominal plant
model of a full-mass
capture more nonlinear
spring-damper system.
If full state information
dynamics effects, such as
is available through measurement or reliable state
nonlinear stiffness curves.
observation, state feedback controllers, such as
linear-quadratic regulator
controllers, can be designed. The state feedback controller
originally proposed in [13] was reformulated in a more general passivity-based torque and impedance control framework
in [14]. During this process, the controller gains were redefined to yield a clear physical interpretation. In the context of
the aforementioned controllers, the torque control part presented in [14] can be seen as a PD-type controller with positive direct torque feedback similar to [15]. The controller
was augmented by a generalized momentum-based disturbance observer [6].
The blocks provided in the controller library implement, in
discrete time, all the controllers just discussed. Controllers with
an inner velocity- and/or position-control loop, such as reported in [16], have not been implemented so far, but there is no
technical barrier to doing so. A template block serves as a starting point for users to develop new controllers.
Interfacing With Hardware
The Compliant Joint Toolbox was developed within the scope
of [2], [5], and [17] and implemented on the WALK-MAN
and TREE actuators. While it was initially developed for
modeling and simulation, its rapid interfacing with real actuator hardware was truly helpful for data recording, testing,
debugging, and tuning of joint torque controllers. The toolbox shrank the time and effort required to move from simulation to experiments. This became particularly useful when
coping with different sizes and prototype stages of the actuators depicted in Figure 6. All of these actuators feature an
industrial EtherCAT interface. However, from the toolbox
side, there is no requirement to use EtherCAT; the toolbox
can be used with whatever interface is supported by the
Mathworks Simulink Real-Time application.
SEPTEMBER 2019

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

61



IEEE Robotics & Automation Magazine - September 2019

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

Contents
IEEE Robotics & Automation Magazine - September 2019 - Cover1
IEEE Robotics & Automation Magazine - September 2019 - Cover2
IEEE Robotics & Automation Magazine - September 2019 - Contents
IEEE Robotics & Automation Magazine - September 2019 - 2
IEEE Robotics & Automation Magazine - September 2019 - 3
IEEE Robotics & Automation Magazine - September 2019 - 4
IEEE Robotics & Automation Magazine - September 2019 - 5
IEEE Robotics & Automation Magazine - September 2019 - 6
IEEE Robotics & Automation Magazine - September 2019 - 7
IEEE Robotics & Automation Magazine - September 2019 - 8
IEEE Robotics & Automation Magazine - September 2019 - 9
IEEE Robotics & Automation Magazine - September 2019 - 10
IEEE Robotics & Automation Magazine - September 2019 - 11
IEEE Robotics & Automation Magazine - September 2019 - 12
IEEE Robotics & Automation Magazine - September 2019 - 13
IEEE Robotics & Automation Magazine - September 2019 - 14
IEEE Robotics & Automation Magazine - September 2019 - 15
IEEE Robotics & Automation Magazine - September 2019 - 16
IEEE Robotics & Automation Magazine - September 2019 - 17
IEEE Robotics & Automation Magazine - September 2019 - 18
IEEE Robotics & Automation Magazine - September 2019 - 19
IEEE Robotics & Automation Magazine - September 2019 - 20
IEEE Robotics & Automation Magazine - September 2019 - 21
IEEE Robotics & Automation Magazine - September 2019 - 22
IEEE Robotics & Automation Magazine - September 2019 - 23
IEEE Robotics & Automation Magazine - September 2019 - 24
IEEE Robotics & Automation Magazine - September 2019 - 25
IEEE Robotics & Automation Magazine - September 2019 - 26
IEEE Robotics & Automation Magazine - September 2019 - 27
IEEE Robotics & Automation Magazine - September 2019 - 28
IEEE Robotics & Automation Magazine - September 2019 - 29
IEEE Robotics & Automation Magazine - September 2019 - 30
IEEE Robotics & Automation Magazine - September 2019 - 31
IEEE Robotics & Automation Magazine - September 2019 - 32
IEEE Robotics & Automation Magazine - September 2019 - 33
IEEE Robotics & Automation Magazine - September 2019 - 34
IEEE Robotics & Automation Magazine - September 2019 - 35
IEEE Robotics & Automation Magazine - September 2019 - 36
IEEE Robotics & Automation Magazine - September 2019 - 37
IEEE Robotics & Automation Magazine - September 2019 - 38
IEEE Robotics & Automation Magazine - September 2019 - 39
IEEE Robotics & Automation Magazine - September 2019 - 40
IEEE Robotics & Automation Magazine - September 2019 - 41
IEEE Robotics & Automation Magazine - September 2019 - 42
IEEE Robotics & Automation Magazine - September 2019 - 43
IEEE Robotics & Automation Magazine - September 2019 - 44
IEEE Robotics & Automation Magazine - September 2019 - 45
IEEE Robotics & Automation Magazine - September 2019 - 46
IEEE Robotics & Automation Magazine - September 2019 - 47
IEEE Robotics & Automation Magazine - September 2019 - 48
IEEE Robotics & Automation Magazine - September 2019 - 49
IEEE Robotics & Automation Magazine - September 2019 - 50
IEEE Robotics & Automation Magazine - September 2019 - 51
IEEE Robotics & Automation Magazine - September 2019 - 52
IEEE Robotics & Automation Magazine - September 2019 - 53
IEEE Robotics & Automation Magazine - September 2019 - 54
IEEE Robotics & Automation Magazine - September 2019 - 55
IEEE Robotics & Automation Magazine - September 2019 - 56
IEEE Robotics & Automation Magazine - September 2019 - 57
IEEE Robotics & Automation Magazine - September 2019 - 58
IEEE Robotics & Automation Magazine - September 2019 - 59
IEEE Robotics & Automation Magazine - September 2019 - 60
IEEE Robotics & Automation Magazine - September 2019 - 61
IEEE Robotics & Automation Magazine - September 2019 - 62
IEEE Robotics & Automation Magazine - September 2019 - 63
IEEE Robotics & Automation Magazine - September 2019 - 64
IEEE Robotics & Automation Magazine - September 2019 - 65
IEEE Robotics & Automation Magazine - September 2019 - 66
IEEE Robotics & Automation Magazine - September 2019 - 67
IEEE Robotics & Automation Magazine - September 2019 - 68
IEEE Robotics & Automation Magazine - September 2019 - 69
IEEE Robotics & Automation Magazine - September 2019 - 70
IEEE Robotics & Automation Magazine - September 2019 - 71
IEEE Robotics & Automation Magazine - September 2019 - 72
IEEE Robotics & Automation Magazine - September 2019 - 73
IEEE Robotics & Automation Magazine - September 2019 - 74
IEEE Robotics & Automation Magazine - September 2019 - 75
IEEE Robotics & Automation Magazine - September 2019 - 76
IEEE Robotics & Automation Magazine - September 2019 - 77
IEEE Robotics & Automation Magazine - September 2019 - 78
IEEE Robotics & Automation Magazine - September 2019 - 79
IEEE Robotics & Automation Magazine - September 2019 - 80
IEEE Robotics & Automation Magazine - September 2019 - 81
IEEE Robotics & Automation Magazine - September 2019 - 82
IEEE Robotics & Automation Magazine - September 2019 - 83
IEEE Robotics & Automation Magazine - September 2019 - 84
IEEE Robotics & Automation Magazine - September 2019 - 85
IEEE Robotics & Automation Magazine - September 2019 - 86
IEEE Robotics & Automation Magazine - September 2019 - 87
IEEE Robotics & Automation Magazine - September 2019 - 88
IEEE Robotics & Automation Magazine - September 2019 - 89
IEEE Robotics & Automation Magazine - September 2019 - 90
IEEE Robotics & Automation Magazine - September 2019 - 91
IEEE Robotics & Automation Magazine - September 2019 - 92
IEEE Robotics & Automation Magazine - September 2019 - 93
IEEE Robotics & Automation Magazine - September 2019 - 94
IEEE Robotics & Automation Magazine - September 2019 - 95
IEEE Robotics & Automation Magazine - September 2019 - 96
IEEE Robotics & Automation Magazine - September 2019 - 97
IEEE Robotics & Automation Magazine - September 2019 - 98
IEEE Robotics & Automation Magazine - September 2019 - 99
IEEE Robotics & Automation Magazine - September 2019 - 100
IEEE Robotics & Automation Magazine - September 2019 - 101
IEEE Robotics & Automation Magazine - September 2019 - 102
IEEE Robotics & Automation Magazine - September 2019 - 103
IEEE Robotics & Automation Magazine - September 2019 - 104
IEEE Robotics & Automation Magazine - September 2019 - 105
IEEE Robotics & Automation Magazine - September 2019 - 106
IEEE Robotics & Automation Magazine - September 2019 - 107
IEEE Robotics & Automation Magazine - September 2019 - 108
IEEE Robotics & Automation Magazine - September 2019 - 109
IEEE Robotics & Automation Magazine - September 2019 - 110
IEEE Robotics & Automation Magazine - September 2019 - 111
IEEE Robotics & Automation Magazine - September 2019 - 112
IEEE Robotics & Automation Magazine - September 2019 - Cover3
IEEE Robotics & Automation Magazine - September 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