IEEE Robotics & Automation Magazine - September 2019 - 44

values of both the vessel and the various actuator systems,
there may be delays between such events as inputting a command and a significant position change. See the "Time Delay"
section for more information about time lag. Functions in the
MATLAB neural network toolbox were used for training and
prediction with the LSTM network.
As sensors output measurements of various physical quantities, they operate in different value ranges. To have each
measured variable contribute equally as part of the input vector, all data should be normalized. To scale both the variation
and the absolute value of each variable in the data set, we use
the mean/standard deviation approach to normalization
according to
x l = (x - xr ) /std (x),

(5)

where x is the N-sample by M-variable training data set, xr is
the mean value of each variable, std(x) represents the standard deviation of the variables, and x l is the normalized data.
All of the signals used in this article have a bounded range,
meaning that, given a representative set of training data, the
range of the test data does not differ significantly.
Input Selection
By limiting the number of input variables to those that hold a
certain level of information about the output states, the network's ability to generalize increases, and its complexity is
reduced. Mutual information (MI) is applied in this article to
facilitate the dimension reduction of the input vectors used by
the machine-learning models. This operation is known as
input selection and is performed prior to generating or updating the actual predictive network. MI provides a measure of
the reduction of uncertainty about a variable x given a variable y [28]. It is defined by
Table 2. The normalized average MI value of input
variables relative to output variables.
Input
Variable

Description

Surge
Velocity

Sway
Velocity

1

Heading angle

0.0

0.08

2

Wind angle

1.00

0.69

3

Wind velocity

0.67

0.69

4

Bow thruster power

-

1.00

5

Bow thruster cmd

-

0.02

6

Bow thruster act

-

0.04

7

Stern thruster power

-

0.73

8

Stern thruster cmd

-

0.00

9

Stern thruster act

-

0.01

10

Main thruster power

0.49

-

11

Main thruster cmd

0.37

-

12

Main thruster act

0.44

-

act: feedback; cmd: command.

44

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

SEPTEMBER 2019

I [x, y] = -

##

p (x, y) ln c

p ( x) p ( y)
m dxdy,
p (x, y)

(6)

where p (x) and p (y) are the distributions of x and y,
respectively, and p (x, y) is the joint distribution between
the two sets. Thus, if the evaluation of I [x, y 1] results in a
larger numerical value compared to the evaluation of
I [x, y 2], variable y 1 contains more information than variable y 2 about variable x. Estimators are employed for practical implementations of MI, and its use within the domain
of time-series regression is documented in [29] and [30]. In
this article, we calculate MI using the MATLAB functions
presented in [31].
Input Structure
The vessel has six thrusters: two bow tunnel thrusters, two
stern tunnel thrusters, and two main thrusters with rudders.
In this article, the vessel performs station keeping using one
proportional integral derivative (PID) regulator per degree of
freedom (DoF), which precedes a basic thrust-allocation unit
that applies the unconstrained generalized inverse method for
distributing motion-controller force requests. To simplify the
allocation problem, the rudder angles of the two main thrusters were fixed. A further simplification was performed to
decouple the effect of the main thrusters on the rotation of the
vessel. For all simulations in this article, the main thrusters are
operated in unison, such that they affect only the motion of
the vessel along its longitudinal axis.
By intuition, we select inputs to represent the velocity of
the vessel in its forward and sideways axes individually. The
forward/surge speed varies depending on the inertia, thruster
force, and environmental force applied along that axis. Thus,
measurements of the main thrusters (fixed along the forward
axis) are included, along with the wind direction and velocity
and heading angle. Lacking a mathematical model of the
effect of the thruster commands and wind magnitude and
direction, we aim to derive this from the measurements.
We take a similar approach in selecting the input variables
for the velocity in the sway direction, selecting measurements
from both a forward- and a stern-mounted thruster as well as
the heading and wind measurements. The partitioning of the
variables in an input pattern is shown by
z k = [x 1 [k] + x 1 [k - d] + f + x 1 [k - (n - 1) d], f
x 2 [k] + x 2 [k - d] + f + x 2 [k - (n - 1) d], f
x m [k] + x m [k - d] + f + x m [k - (n - 1) d]], (7)
where z marks the total 1D input pattern, k is the discrete
sample step, x is the measured input variable, d is the delay
in number of steps, n is the number of delayed samples of a
variable to include, and m indicates the type of input variable.
See the first column of Table 2 for a list of input variables used
in the two separate input patterns, which correspond to the
variable m.



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