IEEE Robotics & Automation Magazine - June 2018 - 75

(1b)

The controller then converts each wheel velocity com-
mand to the wheel configuration, a steering angle }, and an
angular rate io command, as detailed in prior work by Con-
nette et al. [10]. A proportional-derivative (PD) controller is
used to control } and io for each wheel.
Limitations of Nominal Architecture
The nominal trajectory-tracking architecture of mobile bases,
however, is not designed to accommodate dynamic surfaces.
To illustrate this point, we created a scenario that included a
dynamic surface using the Gazebo simulator. The robot's task
was to navigate in a straight line across the dynamic surface,
moving at a rate of 100 mm/s. However, the robot continu-
ously deviated from the desired path, indicating a failure of
the existing architecture to follow the desired trajectory (see
the video accompanying this article in IEEE Xplore).
Furthermore, by not accounting for the motion of the
dynamic surface, the robot experienced torques at the wheels
while transitioning from a static to a dynamic surface, or vice
versa. Repeated application of these torques would structural-
ly weaken the robot, which would, in turn, impact system
maintainability and be highly undesirable for the effective
introduction of mobile robots onto a factory floor.

Goal B

Goal A

d

R

(1a)

v y, i = yo r + zo r x w, i .

Car J

x

v x, i = xo r - zo r y w, i,

yJ

R

Trajectory Tracking Along Dynamic Surfaces
State-of-the-art wheeled robots are capable of following a
given path with high fidelity along static surfaces. In the case
of Rob@Work 3 specifically, the nominal control architecture
for trajectory tracking incorporates multiple feedback loops
[10]. A path-planning algorithm or human teleoperator
issues a desired trajectory, which is translated into velocity
commands for the mobile robot. The desired velocity of the
ith wheel v Rwheel, i = (v x, i, v y, i) is obtained in terms of robot
velocity (xo r, yo r, zo r) as follows:

xJ

y

Reference Frames and Variables
A schematic of the factory environment (workstation) where
we evaluated our system is included in Figure 2, which also
illustrates the reference frames and variables used in this
article. The dynamic surface (conveyor belt) is depicted in
gray, and the solid black regions denote static obstacles.
Start refers to the initial location of the robot. Points goal
A and goal B are defined relative to the car currently
being assembled.
We use the static coordinate systems of the world W and
the conveyor belt B, and the nonstatic coordinate systems of
the robot R and the moving automobiles I, J, g. The x coor-
dinate of the transition between static and dynamic surfaces,
as specified in the world frame, is referred to as the location of
the assembly line and is represented by the variables a b and
b b . The position of the first car in the belt frame is denoted
by the variable p b, and the constant distance between two
consecutive cars is denoted by d.

ot

b

Ro

xI
yI
Car l

pb

xB
yB

yW
βb

Start

xW

αb

Conveyor Belt

Figure 2. A schematic of the robot's workstation during factory
evaluations.

Architecture for Dynamic Surfaces
We designed a control algorithm based on reference shaping
that considers the surface speed as additional input. This
allows for modular implementation but requires additional
sensing of surface parameters. However, as this method
avoids undesired effects on robot hardware-a key require-
ment for the structural integrity of robots and their effective
introduction onto a factory floor-we adopted this approach.
Figure 3 depicts our control architecture, and Algo-
rithm  1 details the modification we made to the nominal
controller. This architecture leverages the independent actu-
ation of each wheel and compensates for the motion of the
dynamic surface by suitably modifying the reference sent to
the robot's wheel controllers. This results in a modular
design that preserves the use of the existing wheel PD con-
trollers and software architecture. Using Algorithm 1, we
compensated the command for each wheel (v Rwheel,i) based
on the absolute surface velocity at its point of contact
(v Rsurf,i). The modified wheel velocity command is used to
compute the wheel configuration-specifically, the steering
angle and angular rate.
We validated the designed algorithm using the same Gaze-
bo simulation environment in which the nominal architec-
ture was evaluated. During the task, the robot's deviation
from the nominal path remained <4 cm (see Figure 4 and the
video accompanying this article in IEEE Xplore). Algorithm 1
enabled the robot to successfully navigate across the simulat-
ed assembly line by dynamically compensating for surface
velocity and correcting the robot heading accordingly.
june 2018

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

75



IEEE Robotics & Automation Magazine - June 2018

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - June 2018

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