You are on page 1of 15

technologies

Article
Waiter Robots Conveying Drinks
Ash Yaw Sang Wan 1 , Yi De Soong 1 , Edwin Foo 2 , Wai Leong Eugene Wong 3 and
Wai Shing Michael Lau 3, *
1 Singapore Institute of Technology @NYP, Newcastle University, Singapore S567739, Singapore;
1700161@sit.singaporetech.edu.sg (A.Y.S.W.); 1701734@sit.singaporetech.edu.sg (Y.D.S.)
2 Nanyang Polytechnic, Ang Mo Kio, Singapore S569830, Singapore; edwin_foo@nyp.edu.sg
3 @NewRIIS, Newcastle University, Singapore 609607, Singapore; eugene.wong@ncl.ac.uk
* Correspondence: michael.lau@newcastle.ac.uk

Received: 2 July 2020; Accepted: 6 August 2020; Published: 11 August 2020 

Abstract: Robots have been reportedly seen serving food in several restaurants in many parts of
the world. New ventures have been deploying mechanical partners which promote the growth in
service robotics. However, robots are considerably incompetent when it comes to beverage and
soup delivery. The physical challenge behind the clumsy motion of these machines is found to be
its jerky motion control. Jerk control solutions are widely studied in a constrained environment but
not well introduced in dynamic environments. In this paper, we will begin by examining developed
kinematics solutions, open-source packages from Robot Operating System and the constraints of
motion planning. The proposed solution in this paper provides a quick system response with jerk
limits using spline velocity profiles. The solution will introduce the concepts of a state machine
design that enables the robot to behave and move reactively; effectively balancing its desired velocity
and position without spilling a drop of customer satisfaction. Experiments have proven that robots
can move at higher velocity without any crashing, spilling, or docking issues. The smooth velocity
control proposed will improve the capabilities of waiter robot and service operations in restaurants.

Keywords: waiter bots; autonomous mobile robot; robot motion; kinematics; finite state machine;
reactive robots

1. Introduction

1.1. Waiter Robots in Food and Beverage (F&B) Industry


The manufacturing sectors have been integrating robots into their operations and improving
their productivities for many years. On the other hand, robots in the service sector are just picking
up and expected to grow [1] after initial mixed successes: replacing workers [2] and being replaced
themselves [3], in China. Similar initial mixed experience in Singapore: Pin Xian Lou restaurant [4]
introduced its humanoid waiter robots in 2017 but the novelty and appeal to children soon wore out.
Additionally, the robot meandered its way along a guided path and unable to serve food directly to the
tables. New ventures with robots grew in more restaurants in India [5,6], Hungary [7], and Nepal [8]
with robots delivering food to diners; and it inevitably will as robotics designs and algorithms get
better. Yet, the great challenge of waiter robots is to deliver beverages and soups filled to the normal
level (Figure 1).

Technologies 2020, 8, 44; doi:10.3390/technologies8030044 www.mdpi.com/journal/technologies


Technologies 2020, 8, 44 2 of 15
Technologies 2020, 8, x FOR PEER REVIEW 2 of 14

Figure 1. Serving
Figure1. liquid.
Serving liquid.

Besides
Besidesdrinks
drinksand andbeverages,
beverages,there
there are
are soups
soups and
and broth to be
broth to be delivered.
delivered.Chinese
Chineserestaurants
restaurants
serving
serving hothot
pots,
pots,veryverypopular
popularamong
amongAsians,
Asians, may
may have robotsserving
have robots servingdishes
dishesbut butthe
thehot
hot soups
soups areare
stillstill
carried to the table by waiters, or as observed
carried to the table by waiters, or as observed in in some restaurants, half-filled drinks served in in
restaurants, half-filled drinks served
plastic
plastic cups.
cups.
In In
this paper,
this paper, we wewill
willaddress
addressthis
thisissue
issue of
of waiter robotsconveying
waiter robots conveyingstandard
standard liquid-filled
liquid-filled glasses,
glasses,
andand cups.
cups. This
This is isdone
donefirst
firstby
byexamining
examining the
the standard
standard motion
motioncontrol
controlroutines
routinesininROS ROSforfora mobile
a mobile
robot,
robot, understandingwhat
understanding whatcauses
causesspills
spillsand
and experimenting
experimenting with withvelocity
velocityprofiles
profilesused
usedininindustrial
industrial
robots.
robots. Typically,
Typically, most most robot-controlled
robot-controlled motions
motions areare either
either discrete
discrete square
square wavewave signals
signals or signals
or signals with
with ramp transitions [9–11]. Most program strategies only consider the
ramp transitions [9–11]. Most program strategies only consider the computation time and direction computation time and
of direction
motion but of motion
do not but do notthe
consider consider
designthe design
and andof
control control of jerk constrained
jerk constrained motionmotion
profiles.profiles.
This is
This is why waiter robots are not commonly deployed to deliver liquids (i.e.,
why waiter robots are not commonly deployed to deliver liquids (i.e., soups and beverages) in open soups and beverages)
in open crockeries.
crockeries. Human waiters Humanin waiters in the
the food andfood and beverage
beverage industry industry are committed
are committed to serving
to serving drinks,
drinks, especially in bars and cocktail parties before formal dinner is served. It will be a huge
especially in bars and cocktail parties before formal dinner is served. It will be a huge improvement in
improvement in waiter robot capabilities to glide and weave around guests in cocktail parties. Our
waiter robot capabilities to glide and weave around guests in cocktail parties. Our results show that it
results show that it is possible to replicate human capabilities in our waiter robot.
is possible to replicate human capabilities in our waiter robot.
1.2. Robot Motion
1.2. Robot Motion
The main constraint in most waiter robots delivering liquid-based items to customer tables is the
The main constraint in most waiter robots delivering liquid-based items to customer tables is the
uncontrolled jerk [12]—the derivative of acceleration or the 3rd derivative of position with respect to
uncontrolled jerk [12]—the derivative of acceleration or the 3rd derivative of position with respect
time. The initial motion of a liquid body is sensitive to jerks—a portion of the body of liquid will be
to time.
pushed The
upinitial
againstmotion of a liquid
the container wall,body
then is
thesensitive
impact and to jerks—a portionwill
the momentum of the body
move thatofportion
liquid of
will
be liquid
pushed up to
back against
its main thebody,
container
pushingwall, then
part of itthe impact
over to theand
othertheside.
momentum will move
If liquid moves abovethat
theportion
brim
of liquid back to its main body, pushing part of it over to the other side. If
of the container, some of it will be spilled. Similar spillage can occur when the robot waiter stops liquid moves above
withthe
brim of the container, some of it will be spilled. Similar spillage can occur when
an uncontrolled jerk. The design of a motion profile with a constraint on the jerk limit can solve the the robot waiter stops
with an uncontrolled
spillage problem. For jerk. The design
example, of a motion
the robotic arms profile
used inwith a constraintare
manufacturing onprogrammed
the jerk limittocan solve
move
thesmoothly.
spillage problem.
The motion Forprofile
example, the robotic
is designed witharms used
a limit in manufacturing
on the jerk. are programmed to move
smoothly. The motion
Macfarlane et al.profile is designed
[13] proposed with a limit
a methodology onuses
that the jerk.
the quintic concatenations of sinusoidal
equations
Macfarlane to provide a smooth
et al. [13] proposed trajectory for the motion
a methodology thatof the the
uses robotic manipulator
quintic between
concatenations oftwo way-
sinusoidal
points. Intoanother
equations provide paper, Vass ettrajectory
a smooth al. [14] suggested
for the amotion
near time-optimal
of the robotic trajectory executorbetween
manipulator algorithm. two
The paper mentioned that reducing jerk is necessary to avoid vibrations
way-points. In another paper, Vass et al. [14] suggested a near time-optimal trajectory executor and the wear and tear of
mechanical
algorithm. Thecomponents
paper mentioned of the thatrobot. The algorithm
reducing is improved
jerk is necessary and vibrations
to avoid redeveloped andfrom
the the
wear
andminimum-time
tear of mechanical spline-based
componentsreduced ofstate space approach
the robot. The algorithm(MSRS). is The disadvantage
improved of MSRS is the
and redeveloped from
lack of flexible control because of its requirement to obtain a steady velocity
the minimum-time spline-based reduced state space approach (MSRS). The disadvantage of MSRS is at the end of each spline.
theThe
lackresearchers
of flexible continued from MSRS
control because approach andtohad
of its requirement successfully
obtain a steadyreduced
velocitythe robot
at the end motion
of each
computation time to 100 ms.
spline. The researchers continued from MSRS approach and had successfully reduced the robot motion
In 2006, Huang et al. used Genetic Algorithm, GA [15] to design a trajectory to reduce jerk
computation time to 100 ms.
motions for space robots. In 2010, Pattacini et al. developed a Cartesian controller which extends the
Technologies 2020, 8, 44 3 of 15

In 2006, Huang et al. used Genetic Algorithm, GA [15] to design a trajectory to reduce jerk
motions for space robots. In 2010, Pattacini et al. developed a Cartesian controller which extends the
multi-referential dynamical system approach [16] to enhance the smoothness, the speed, the repeatability,
and the robustness of the robot motion. The approach combined the use of a joint-space and task-space
controller via the use of Lagrangian multipliers methods to modulate the output of each function.
The cascaded controllers are used to replace the vector-integration-to-endpoint models. HI Lin [17]
argued that the previous methods were time-consuming because of the complicated procedures
involved and proposed a fast and unified method using particle swarm optimization. Zhao et al. [18]
used a third-degree polynomial function to describe trajectories of service manipulator robots and
proposed a quick algorithm that operates with configured motion in state space. The solution is
able to generate a piecewise straight-line trajectory that is bounded in jerk, acceleration, and velocity.
The solution also included removing unnecessary motion to smoothen the path. The computation time
requires 1.1 s which generates a natural-looking motion using the Kuka light-weight robot IV.
These various concepts in handling jerk motion profiles can solve the problem of jerky motion
in robots but have complicated procedures and are computationally intensive. The motion planners
can achieve their tasks well as these robots are fixed manipulators operating in a well-constrained
environment. Waiter robots, on the other hand, do not have the same luxury of a static surrounding
and hence require a quicker processing logic or reactive behaviors. At the same time, a mobile robot
may be required to make sharp turns in the presence of dynamic obstacles, disrupting the planned
smoothen path.
For mobile robotics applications, Park et al. [19] mentioned that to achieve comfort for users on a
robotic wheelchair, the dynamic-window-approach and vector field histogram (DWA and VFH) are
not suitable for such applications. Implying that jerk motions are not well controlled for the needs
of the users. To obtain a smoother and graceful motion, they have developed a reactive behavioral
method using a heterogeneous control and human-like driving strategy. Korayem et al. [20] developed
a computational algorithm for a 3-wheeled mobile manipulator. According to the paper, jerks also
contribute to the slippage of wheels. The paper proposed a hybrid approach adapting a time-optimal
path planning [21] and the potential field method for obstacle avoidance [22].
From the review above, the need to manage the jerk to provide a smooth motion has been
made. However, the methods found in the literature are quite computation intensive even for a static
environment. In this research work, this paper proposed a simpler approach for designing the motion
profile with jerk limits. To cater for different load condition, a state machine algorithm is proposed to
manipulate the kinematic motions of a waiter robot using different appropriate profiles depending
on the load. It uses simple and reactive control methods to enable reactive motion behaviors. It is
developed in the robot operating system environment for a 3-wheeled omni-directional waiter robot
designed for casual dining restaurants presented previously by Wan et al. [23].

2. Analyzing the Root Problem

2.1. Velocity from ROS Navigation Package


The open-sourced platform robot operating system (ROS) have libraries for navigation and
velocity control of a mobile motion. This section will first discuss the velocity control routine from
the ROS navigation package, other routines such as, “yujin velocity smoother,” “joint trajectory
generator,” and lastly the proposed liquid-conveying algorithm, developed using “SMACH”—a ROS
Python package.
The ROS navigation stack uses odometry calculations, sensor inputs and moves base scripts to
generate a twist profile. In ROS, a twist is a sort of class in programming that holds linear and angular
velocity values. The navigation stack generates ways-points and the move base node generates velocity
commands relative to the robot also known as a twist.
Technologies 2020, 8, 44 4 of 15

A typical twist generates step velocity profiles, as shown in Figure 2, for robot motion in the x, y,
and yaw directions. These voltages are distributed by a user-developed node to the respective motors.
Technologies 2020,
Technologies 2020, 8,
8, xx FOR
FOR PEER
PEER REVIEW
REVIEW 44 of
of 14
14

Figure2.2.
Figure
Figure 2.Navigation
Navigation stack’s
Navigation stack’s move
stack’s move base
movebase command
basecommand pattern.
commandpattern.
pattern.

The
The
The step
step
step voltages
voltages
voltages depending
depending
depending on
onon thethe
the magnitudes,
magnitudes,
magnitudes, maymay
may result
result
result in
inin high
high
high jerk
jerk
jerk motions
motions
motions during
during
during start
start
startand
and
stop. stop.
andThere There
stop. There are
are online online
packages
are online packages to
to smoothen
packages smoothen
to smoothen the
the velocityvelocity
the velocity profiles
profiles generated
generated
profiles generated from from the
the the
from navigation
navigation
navigation stack.
The stack.
stack.
“yujin The
The “yujin smoother”
“yujin
velocity velocity smoother”[10]
velocity smoother”[10]
[10] and “joint and
and “joint trajectory
“joint
trajectory trajectory
generator” generator”[11]
generator”[11]
[11] are examples are examples
are examples that
that
that smoothen
smoothen
smoothen the
the velocity
velocity profile
profile using
using pre-set
pre-set acceleration
acceleration limits.
limits. The
The smoothened
smoothened
the velocity profile using pre-set acceleration limits. The smoothened generator produces velocity generator
generator produces
produces
velocity commands
velocity
commands commands based
based on based on the
on
the maximum the maximum
maximum
allowable allowable
allowable acceleration
acceleration
acceleration valuevaluevalue resulting
resulting
resulting in smaller
in smaller
in smaller velocity
velocity
velocity steps
steps being
stepsgenerated generated
being generated as speed
ascommands commands
speed commands to the wheels.
to the wheels. By generating
By generating smaller
smaller steps and converting
stepsconverting
and converting
being as speed to the wheels. By generating smaller steps and step-up
step-up and
step-up and step-down velocity
velocity into
into aa sequence
sequence of of smaller
smaller step-up/step-down
step-up/step-down velocity velocity profile, aa form
form
and step-downstep-down
velocity into a sequence of smaller step-up/step-down velocity profile, profile,
a form a velocity
aa velocity
velocity smoothening
smoothening
smoothening is is produced.
produced. Effectively,
is produced. Effectively,
Effectively, the
the profile will
the profile
profile will
reduce the
will reduce
reduce the
magnitude
the magnitude
magnitude of
of motion jerks.
of motion
motion
jerks.
jerks.
Using a similar approach, a ramp-velocity profile generator is designed—the acceleration or the
Using aa similar
Using similar approach,
approach, aa ramp-velocity
ramp-velocity profile
profile generator
generator is is designed—the
designed—the acceleration
acceleration or or the
the
gradient
gradient
ofofthe
the
ramp
ramp
can
can
be programmed
be
programmedtoto produce
produce a
a smoother
smoother start
start
and
and motion.
stop
stop motion.
This has
This
been
has
gradient of the ramp can be programmed to produce a smoother start and stop motion. This has been
been coded
coded using using
using the the
the statestate machine
state machine
machine python python
python script script
script (SMACH(SMACH
(SMACH [24]) [24])
[24]) and and
and named named VelProSMACH_V1.py.
named VelProSMACH_V1.py.
VelProSMACH_V1.py. It It
coded
It generates a velocity
generates aa velocity profile
velocity profile illustrated
profile illustrated
illustrated in in Figure
in Figure
Figure 3. 3. The
3. The reason
The reason
reason for for using
for using
using SMACHSMACH
SMACH will will
will be be made
be made clearer
made clearer
clearer
generates
whenwhena robotic behavior algorithm is designed to switch amongamong the ROS thenavigation package-generated
when aa robotic
robotic behavior
behavior algorithm
algorithm is designed
is designed to switch
to switch among the ROS navigation
ROS navigation package-
package-
step-velocity
generated profile, the ramp-velocity
generated step-velocity
step-velocity profile, the
profile, profile, and
the ramp-velocity
ramp-velocity to be and
profile,
profile, introduced,
and toto be the S-velocity
be introduced,
introduced, profile. profile.
the S-velocity
the S-velocity profile.

Figure3.
Figure
Figure 3.Ramp
3. Ramp velocity
Ramp velocity profile
velocity profile from
profilefrom VelProSMACH_V1.
fromVelProSMACH_V1.
VelProSMACH_V1.

The performance
The performance of of the
the two
two types
types of
of velocity
velocity profiles
profiles was
was tested
tested on
on an
an in-house
in-house developed
developed
waiter robot
waiter robot [23]:
[23]: step-up
step-up oror step-down
step-down velocity
velocity from
from ROS
ROS navigation
navigation move
move base
base and
and the
the ramp-up
ramp-up
or ramp-down velocity profile from VelProSMACH_V1.py. The robot conveyed
or ramp-down velocity profile from VelProSMACH_V1.py. The robot conveyed water in cups along water in cups along
a straight line from Point A to Point B, repeated ten times. The difference in spillage for cups
a straight line from Point A to Point B, repeated ten times. The difference in spillage for cups (the left (the left
diagram with droplets along the outside and the inside of the cup and on the tray)
diagram with droplets along the outside and the inside of the cup and on the tray) due to robot due to robot
motions generated
motions generated by by the
the two
two motion
motion profiles
profiles are
are shown
shown in
in Figure
Figure 4.
4.
Technologies 2020, 8, 44 5 of 15

The performance of the two types of velocity profiles was tested on an in-house developed
Technologies 2020, 8, x FOR PEER REVIEW 5 of 14
waiter robot [23]: step-up or step-down velocity from ROS navigation move base and the ramp-up
or ramp-down
VelProSMACH_V1velocity profile from VelProSMACH_V1.py.
had achieved The robot
satisfactory performance forconveyed
general water
motionin cups
but isalong
not
adesirable
straight for
linerestaurant
from Point setting because of its inability to track waypoints along the trajectory or(the
A to Point B, repeated ten times. The difference in spillage for cups for
left diagram
accurate with droplets
docking. along
The robot wasthe outsidetoand
observed the inside
bumping intoofwalls
the cup
andand on the because
obstacles tray) dueoftoits
robot
late
motions
responsegenerated by themotion
and oscillatory two motion
aboutprofiles are shown
the docking in Figure
location before 4.
coming to a stop.

Figure 4.
Figure 4. Navigation’s
Navigation’s move
move base
base (left)
(left) and with VelProSMACH_V1
and with VelProSMACH_V1 (right).
(right).

This suggests a possibility


VelProSMACH_V1 for improvement
had achieved satisfactory in waiter robot
performance fortasks. However,
general there
motion but is is
nota trade-off.
desirable
for restaurant setting because of its inability to track waypoints along the trajectory or for accurate
2.2. Stability
docking. TheVersus Docking
robot was observed to bumping into walls and obstacles because of its late response and
oscillatory motion about
To minimize minimum the docking location before
or zero spillage, controlcoming to a stop.
of the instantaneous change from initial speed
This suggests a possibility for improvement in waiter robot tasks. However,
up to the desired speed requires a gentle ramp change in velocity. This, however, will there is a the
cause trade-off.
waiter
robot to react slowly toward any change: it may not be able to change its direction quickly, and may
2.2. Stability Versus Docking
not be able to stop on time. Near the target, the robot decelerates slowly and comes to a stop, often
beforeToreaching
minimize minimum
the target. Theor distance
zero spillage,
error control of the
will cause theinstantaneous
robot to acceleratechangeagainfrom
andinitial speed
sometimes
up to the desired
overshoots speedpoint.
the desired requires
This acan
gentle ramp change
be repeated a couplein of
velocity. This, however,
times resulting will oscillating
in the robot cause the
waiter
about the target point, lengthening the time to reach the target and dock. The docking fails. quickly,
robot to react slowly toward any change: it may not be able to change its direction
and may
The not be able
results to stop
in Table 1 on
showtime.
theNear the target,using
performance the robot decelerates
a gentle velocityslowly
ramp and comes
profile (ratetoof
a
stop, often before
acceleration reaching
at 0.0001 m/s2the target.
) for The distance error will
VelProSMACH_V1.py. All cause therun
the test robot to accelerate
from again zero
Table 1 have and
sometimes overshoots the desired point. This can be repeated a couple of
incidences of liquid spillage but are unable to accurately dock at the final destination. times resulting in the robot
oscillating about the target point, lengthening the time to reach the target and dock. The docking fails.
The results in Table 1 show the performance
Table usingramp
1. Results of using a gentle velocity
velocity ramp profile (rate of acceleration
profile.
at 0.0001 m/s2 ) for VelProSMACH_V1.py. All the test run from Table 1 have zero incidences of liquid
Performance Outcome (Y/N) Moving Time
spillage but are unableS\N to accurately dock at the final destination.
Spill? Docked? Crashed? (Min: Sec)
1 N 1. ResultsNof using rampNvelocity profile.2:18.06
Table
2 N N N 3:52.85
3 N Performance
N Outcome (Y/N)
Y Moving 0:12.73
Time
S\N
4 N Spill? Docked?
N N
Crashed? (Min:
Over Sec)
5 min
5 1 N N NN NN 02:58.61
2:18.06
6 2 N N NN NY 0:19.02
3:52.85
7 3 N N NN YY 0:12.73
0:50.97
8 4 N N N N NY Over 5 min
0:17.05
5 N N N 02:58.61
9 6
N N NN Y
N 1:33.24
0:19.02
10 7 N N N N YY 0:43.26
0:50.97
8 N N Y 0:17.05
9
If the ramp velocity profile N
is made N
steeper, N
the incidence 1:33.24
of liquid spilling increases. However,
10
tuning the ramp slope steeper N it moreNresponsiveY and achieves
makes 0:43.26
a higher docking success rate.
Unfortunately, when the ramp profile is configured with a lower change in velocity, the robot will be
able to move without spilling the drinks carried but it is maneuvering as if with high inertia of
motion. Trading off between motion smoothness and docking accuracy with a cap on the jerk limit is
difficult, many times it is a hit and miss situation. This will be useful when the waiter robot delivers
food instead of fluidic items. It will have sufficient reaction time to respond to changes in the path
Technologies 2020, 8, 44 6 of 15

If the ramp velocity profile is made steeper, the incidence of liquid spilling increases. However,
tuning the ramp slope steeper makes it more responsive and achieves a higher docking success rate.
Unfortunately, when the ramp profile is configured with a lower change in velocity, the robot will be
able to move without spilling the drinks carried but it is maneuvering as if with high inertia of motion.
Technologies 2020, 8, x FOR PEER REVIEW 6 of 14
Trading off between motion smoothness and docking accuracy with a cap on the jerk limit is difficult,
many times it is a hit and miss situation. This will be useful when the waiter robot delivers food instead
trajectories. The robot start and end motion will be smoother than those generated by the step velocity
of fluidic items. It will have sufficient reaction time to respond to changes in the path trajectories.
profile.
The robot start and end motion will be smoother than those generated by the step velocity profile.
The move base step velocity profile, on the other hand, is used successfully for autonomous
The in
motion move
pointbase step navigation
to point velocity profile,
and inon the other
docking. hand,
It has, is usedhigh
however, successfully for autonomous
starting accelerations and
motion
ending decelerations that can cause drinks to spill from some tall glass (e.g., a champagne glass),and
in point to point navigation and in docking. It has, however, high starting accelerations if
ending decelerations
not secured. that can cause drinks to spill from some tall glass (e.g., a champagne glass),
if not Robots
secured.have to be able to move smoothly and quickly for efficient utilization. Neither the step
Robots
nor the linear have to be able
velocity to move
profile is ablesmoothly
to resolveand
the quickly
motion for efficient
issues utilization.
of conveying Neither
drinks the step
as liquid bodiesnor
the
arelinear velocity
sensitive to the profile is able to
jerk instead of resolve the motion
acceleration. issues rate
A changing of conveying drinkswill
of acceleration as liquid bodiesfor
be required are
sensitive to the jerk instead of acceleration. A changing rate of acceleration
the robot motion to be both smooth and quick; a low level and constant jerk process should be will be required for the
robot motion to be both smooth and quick; a low level and constant jerk process should be imposed.
imposed.

2.3.
2.3.The
TheS-Velocity
S-VelocityProfile
Profile
The
Thespline
splinevelocity
velocityor orS-velocity
S-velocity profile
profile commonly
commonly used used inin robot
robot manipulator
manipulatortrajectory
trajectorychanges
changes
the
thespeed
speedmore
moregently,
gently,with
withthethemaximum
maximum acceleration
acceleration at at the instance of
the instance of transiting
transitingfrom
fromthetheconcave
concave
totothe convex part of the velocity profile. In this paper, the spline velocity motion
the convex part of the velocity profile. In this paper, the spline velocity motion profile has been profile has been
investigated with simple computation
investigated with simple computation approach.approach.
Figure
Figure55shows
showsaaramp-velocity
ramp-velocity that that changes
changes fromfrom 00 toto 0.1
0.1 m/s
m/s in
in 11 s,
s, sampled
sampledat at11ms
msinterval
interval
with an impulsive jerk magnitude of 100 m/s 33. In comparison, the speed change of the S-velocity
with an impulsive jerk magnitude of 100 m/s . In comparison, the speed change of the S-velocity
curve,
curve,over
overthe
thesame
sameperiod,
period,is is smoother;
smoother; more
more importantly
importantly the the acceleration
acceleration increases
increasesatataasteady
steadyrate
rate
3 3 Potentially quicker
leading
leadingtotoaasmaller
smallerconstant
constantjerkjerkmagnitude
magnitude of of 0.4
0.4 m/s
m/s3 and
and then to −0.4
then to −0.4 m/s
m/s3.. Potentially quicker
system
systemresponse
responsewith
withlower
lower jerk levels
jerk levelsis achievable
is achievable andand
willwill
enable the the
enable waiter robot
waiter to start
robot (and(and
to start stop)
smoothly without
stop) smoothly introducing
without severesevere
introducing jerk tojerk
the to
liquid in the in
the liquid glass
the or cup.
glass or cup.

(a) (b) (c)

Figure 5. Motion–time
Figure 5. graph.
Motion–time graph.

The
TheS-velocity
S-velocity curve can be
curve can be generated
generatedusing
usinga aset
setofof kinematic
kinematic equations
equations with
with at least
at least a cubic,
a cubic, or
orhigher
higher fifth-order polynomials, otherwise using a sinusoidal function. Many papers
fifth-order polynomials, otherwise using a sinusoidal function. Many papers were written were written
on
on optimization
optimization and
and solving
solving thecoefficients
the coefficientsofofsuch
suchpolynomials
polynomialsasasdiscussed
discussedearlier.
earlier.The
Theapproach
approach
taken here is based on experimentation with different types of liquid containers and the S-velocity
profile is hardcoded in Python using the value increment operations.
Equations (1) and (2) are the velocity and acceleration generators for the S-curve. The change in
velocity, for each time step, is given by:

= + (1)
Technologies 2020, 8, 44 7 of 15

taken here is based on experimentation with different types of liquid containers and the S-velocity
profile is hardcoded in Python using the value increment operations.
Equations (1) and (2) are the velocity and acceleration generators for the S-curve. The change in
velocity, for each time step, is given by:

vi = vi−1 + dvi (1)

where vi refers to the current velocity command


Technologies 2020,to
vi−1 refers 8, the
x FOR PEER REVIEW
previous velocity command 7 of 14

dvi refers to change in velocity command


refers to the previous velocity command
The change in acceleration, for each time step, is given by:
refers to change in velocity command
The change in acceleration, for each time step, is given
by:
dvi = dvi−1 + j .sgn( j)
(2)
(2)
dvi−1 refers to change in velocity command = + | |. ()
refers=to
where sgn(j) change
1 for in velocity
the concave command
part of the S-Curve
and sgn(j) = −1 for the convex part ofof
where sgn(j) = 1 for the concave part the
the S-Curve
S-Curve
and sgn(j) = −1 for the convex part of the S-Curve
When the robot is to accelerate, sgn(j) equals to 1, (1) and (2) are used to generate the concave part
When the robot is to accelerate, sgn(j) equals to 1, (1) and (2) are used to generate the concave part of
of the speed profile. After 0.5 s, the robot speed will switch into the convex part of S-speed using (1)
the speed profile. After 0.5 s, the robot speed will switch into the convex part of S-speed using (1) and (2),
and (2), sgn(j) equals to −1. The variables will be reset once acceleration/deceleration is completed
sgn(j) equals to −1. The variables will be reset once acceleration/deceleration is completed (reaching the
(reaching the desired velocity). The ramp-velocity and the S-velocity flow charts are shown in Figure 6.
desired velocity). The ramp-velocity and the S-velocity flow charts are shown in Figure 6.

Figure 6. Flow charts for S-velocity and (linear) ramp-velocity generation.


Figure 6. Flow charts for S-velocity and (linear) ramp-velocity generation.
To compute at a lower rate, a loop counter is applied to model the time discretization using basic
To compute
delays at a lower
and counters. Assumerate, a loop counter
transition time of is
0.5applied
s to peak toacceleration
model the time discretization
and publish command using basic
every
delays and counters. Assume transition time of 0.5 s to peak acceleration and publish
1 ms. The transitional time value is determined experimentally through calibration and tuning of the command every
1 ms. The
robot transitionalThis
configuration. timeisvalue is determined
performed based onexperimentally
the reaction time through calibration
required in generaland tuning
to react to of
theobstacles in close-proximity
robot configuration. This (when obstacles
is performed are equal
based on the or less than 0.2
reaction time mrequired
away) while travelling
in general to at 0.1 to
react
m/s. Theintravelling
obstacles velocity (when
close-proximity of the robot is relatively
obstacles are equal loworasless
it isthan
also0.2
expected
m away) to navigate through at
while travelling
tight space in a typical restaurant environment. Hence, the time response of the transient
0.1 m/s. The travelling velocity of the robot is relatively low as it is also expected to navigate through velocity is
benchmarked at 1 s.
Technologies 2020, 8, 44 8 of 15

tight space 2020,


Technologies in a 8,typical restaurant
x FOR PEER REVIEWenvironment. Hence, the time response of the transient velocity is
8 of 14
benchmarked at 1 s.
3. Designing the Waiter Robot Motion Behaviors—VelProSMACH_V2.py
3. Designing the Waiter Robot Motion Behaviors—VelProSMACH_V2.py
The utility of a waiter robot increases if it is able to move normally without load, transit to
The utility
moving slowlyofand a waiter
safelyrobot
when increases
carryingif drinks
it is ableortofood,
moveinnormally
the samewithout
way, a load, transit
waiter does to moving
and then
slowly and safely when carrying drinks or food, in the same way, a waiter
transiting back to moving normally once the food or drinks have been delivered. Each of the three does and then transiting
back to moving
velocity profilesnormally once the
experimented food
with canorbedrinks have as
regarded been delivered
a type [25]. Each
of behavior: of the three
step-velocity velocity
profile as
profiles experimented with can be regarded as a type of behavior: step-velocity
moving with no tray (normal robot point-to-point motion), ramp-velocity profile with carrying food profile as moving
with
tray,noandtray (normalprofile
S-velocity robotwith
point-to-point
carrying food motion), ramp-velocity
with drink profilewaiter
trays. A complex with carrying food tray,
robot behavior can
and S-velocity
result profile withsituation
in an unexpected carryingfrom
food these
with drink
motion trays. A complex
profiles. waiter
Different robot
states behavior
of motion can result
control can
inbe
anused
unexpected
in various situation from these motion profiles. Different states of motion control can be used in
scenarios.
various A scenarios.
convenient tool for prototyping and developing the waiter robot with suitable motion
A convenient
behaviors tool for prototyping
and transiting between these andmotion
developing
statesthe waiter
is the ROSrobot
SMACHwith package.
suitable motion behaviors
It is a task-level
and transiting between these motion states is the ROS SMACH package. It is a task-level
architecture for rapidly creating basic and complex robot behaviors. In ROS, the state machine can be architecture for
rapidly
used tocreating
generate basic and complex
sensible robot behaviors.
twist commands for waiterInbotsROS, in the state machine
restaurants. can be used to generate
VelProSMACH_V2.py is the
sensible twist commands
implementation for waiter
of the state machinesbotsfor
in the
restaurants. VelProSMACH_V2.py
waiter robot. The state machine isdiagram
the implementation
is shown in
ofFigure
the state
7. machines for the waiter robot. The state machine diagram is shown in Figure 7.

Figure7.7.Motion
Figure Motion strategy
strategy state
state machine—VelProSMACH_V2.
machine—VelProSMACH_V2.

3.1. Motion Behavioral Strategies


3.1. Motion Behavioral Strategies
The state machine is designed to link the “linguistic” outcomes to different states. These outcomes
The state machine is designed to link the “linguistic” outcomes to different states. These
can be designed as event handlers to transit into discrete states under various circumstances. The “Dock”
outcomes can be designed as event handlers to transit into discrete states under various
state is the interface
circumstances. to ROS state
The “Dock” navigation node and
is the interface to decisions are made
ROS navigation nodehere
andto nullify the
decisions move here
are made base
commands and switch into other move commands as a motion strategy hub. It may
to nullify the move base commands and switch into other move commands as a motion strategy hub. transit to various
states
It may depending
transit to on the payload
various e.g., of theon
states depending food
the or drinks.e.g.,
payload Forofone
thecase,
foodthe robot would
or drinks. For onemove
case,with
the
the S-velocity profile while carrying drinks to a table, then subsequently deliver the
robot would move with the S-velocity profile while carrying drinks to a table, then subsequently remaining food
with a ramp
deliver velocity profile
the remaining and then
food with a rampreturn to the
velocity start point
profile withreturn
and then step velocity profile
to the start (the
point default
with step
state
velocity profile (the default state which uses the navigation move base command). This Dock statethe
which uses the navigation move base command). This Dock state is effective and ideal for is
robot to deal
effective andwith various
ideal for thetasks
robotappropriately and semantically.
to deal with various The change
tasks appropriately andof motion strategy
semantically. is likely
The change
toofoptimize businesses’
motion strategy operation
is likely efficiencies.
to optimize businesses’ operation efficiencies.
The decision to switch between strategies depends on the food order (the task of the robot). The
robot is expected to use the appropriate motion strategies to maneuver effectively and efficiently
based on the task on hand. This is currently done from the terminal but it can be implemented using
a set of manual push buttons on the robot, for the various type of load, as inputs to the robot
Technologies 2020, 8, 44 9 of 15

The decision to switch between strategies depends on the food order (the task of the robot).
The robot is expected to use the appropriate motion strategies to maneuver effectively and efficiently
based on the task on hand. This is currently done from the terminal but it can be implemented using a
Technologies
set of manual 2020,push
8, x FOR PEER REVIEW
buttons 9 of 14
on the robot, for the various type of load, as inputs to the robot controller.
An ordering system developed from a previous prototype, the Beta-G [26] can also be integrated:
controller. An ordering system developed from a previous prototype, the Beta-G [26] can also be
when the food is ready, the ordering system should indicate the table number and the type of order
integrated: when the food is ready, the ordering system should indicate the table number and the
ready to be served; solid food to be using Strategy 2 while liquid and semi-liquid food to be on
type of order ready to be served; solid food to be using Strategy 2 while liquid and semi-liquid food
Strategy 3. When returning to a waiting position in the restaurant, the robot transits back into Strategy
to be on Strategy 3. When returning to a waiting position in the restaurant, the robot transits back
1. The program flowchart of the dock state for motion strategy switching mechanism is shown in
into Strategy 1. The program flowchart of the dock state for motion strategy switching mechanism is
Figure 8.
shown in Figure 8.
A concept of a motion state transition hub may be programmed and enforced. The respective
A concept of a motion state transition hub may be programmed and enforced. The respective
“Cruise” states enable the robot to switch its motion state by deciding whether to increase or decrease
“Cruise” states enable the robot to switch its motion state by deciding whether to increase or decrease
its speeds. The state can also choose to remain on its current state; to maintain speed in the same
its speeds. The state can also choose to remain on its current state; to maintain speed in the same
direction. Each motion strategy transits reactively based on the current speed, the remaining distance
direction. Each motion strategy transits reactively based on the current speed, the remaining distance
to the goal or obstacles. Note that this is only an example of how the SMACH can be used to enable
to the goal or obstacles. Note that this is only an example of how the SMACH can be used to enable
the use of simple value increment code.
the use of simple value increment code.

Figure8.8.Dock
Figure Dockstate
statealgorithm.
algorithm.

3.2.
3.2. Reactive
Reactive and
and Non-Reactive
Non-Reactive States
States for
for aa Multispeed
MultispeedDesign
Design
The
Thecruise
cruisestate
staterequires
requiresand
andgenerates low
generates discretization
low of desired
discretization speed
of desired (i.e.,(i.e.,
speed 0.1, 0.2,
0.1,and
0.2,0.3
andm/s)
0.3
and current speed system level. The desired speed changes are based on scenario logic.
m/s) and current speed system level. The desired speed changes are based on scenario logic. The logicThe logic
compares move base commands, Adaptive Monte Carlo Localization position (AMCL pose) inputs,
and its current velocity state. By determining the targeted velocity and acting on current velocity
values and position, it allows the robot to cruise at the desired velocity. As restaurant areas are
usually spatially tight, the cruise state will allow the robot to manage its motion around obstacles
better. The program flowchart of the cruise state is shown in Figure 9.
Technologies 2020, 8, 44 10 of 15

compares move base commands, Adaptive Monte Carlo Localization position (AMCL pose) inputs,
and its current velocity state. By determining the targeted velocity and acting on current velocity
values and position, it allows the robot to cruise at the desired velocity. As restaurant areas are usually
spatially tight, the cruise state will allow the robot to manage its motion around obstacles better.
The program flowchart of the cruise state is shown in Figure 9.
The robot’s reactive cruise state depends on whether or not the move base provides a twist
Technologies 2020, 8, x FOR PEER REVIEW 10 of 14
command. With a twist command and the goal position, the robot will increase speed (throttle) toward
atoward
higher aspeed.
higherLikewise, when thewhen
speed. Likewise, robot’s
thegoal position
robot’s or if an obstacle
goal position or if an is near, the
obstacle robot the
is near, reduces
robot
speed
reduces speed (brake). The robot motion is designed in the same way as humans drive theirother
(brake). The robot motion is designed in the same way as humans drive their cars. When cars.
cars
When or other
obstaclescars are near, the are
or obstacles vehicle
near,isthe
slowed down
vehicle and once
is slowed down pastandthese,
oncethe vehicle
past these, speeds
the vehicleup.
The sameup.
speeds logic
Thecan be applied
same logic can when the robot
be applied is navigating
when the robotaisbend. The robot
navigating speedThe
a bend. is feedbacked
robot speedbyis
speed encoders on board.
feedbacked by speed encoders on board.
The
Thethrottle
throttleand andbrake
brakestates
statesin
inS-velocity
S-velocityare
areused
usedtotogenerate
generatelinear
linearacceleration
accelerationand andlinear
linear
deceleration. A constant loop period and a defined change in velocity provide
deceleration. A constant loop period and a defined change in velocity provide an acceleration profilean acceleration profile
with
withaaconsistent
consistentjerk jerkmagnitude.
magnitude.AAcounter
counterwill
willbegin
begincounting
countingthe theloop
loopcycles.
cycles.The
Thelooploopthresholds
thresholds
are also set to maintain the magnitude of the maximum acceleration, acceleration
are also set to maintain the magnitude of the maximum acceleration, acceleration period, period, and outcome and
velocity. Note that the smooth throttle and smooth brake states will not be
outcome velocity. Note that the smooth throttle and smooth brake states will not be interrupted interrupted or transit intoor
other
transitstates
into during the acceleration
other states period; this means
during the acceleration period;that
thisthe period
means thatdetermines
the periodthe time response
determines the timeof
the robot before
response it can before
of the robot decide ittocan
vary its speed.
decide The
to vary itshigher
speed.the Theloop threshold,
higher the loopthe longer itthe
threshold, takes for
longer
the robots to the response. For this motion behavior, the states are non-reactive. The
it takes for the robots to the response. For this motion behavior, the states are non-reactive. The robot robot will only be
reactive
will only again after the
be reactive completion
again after theof the S-velocity
completion of theprofile. Unlike
S-velocity the S-velocity
profile. Unlike theprofile, thereprofile,
S-velocity is no
requirement to limit jerk for the robot in step-velocity and ramp-velocity. Hence
there is no requirement to limit jerk for the robot in step-velocity and ramp-velocity. Hence these these motions can
remain reactive.
motions can remain reactive.

Figure9.9.Cruise
Figure Cruisestate
statealgorithm.
algorithm.

When the robot approaches its goal point, the waiter robot transits into a terminal state where it
uses small step-up and step-down velocities to reach the docking point as accurate as possible.

4. Comparing ROS Step-Velocity and S-Velocity


Tests were done with the waiter robot conveying water in cups and champagne glasses running
under ROS navigation node base commands issuing step-velocity commands and the developed
Technologies 2020, 8, 44 11 of 15

When the robot approaches its goal point, the waiter robot transits into a terminal state where it
uses small step-up and step-down velocities to reach the docking point as accurate as possible.

4. Comparing ROS Step-Velocity and S-Velocity


Tests were done with the waiter robot conveying water in cups and champagne glasses running
under ROS navigation node base commands issuing step-velocity commands and the developed
VelProSMACH_V2.py running in the S-velocity mode. The cups and glasses experiments are done
separately. The goal position is approximately 5 m away from the start position. The waiter robot was
set to run 20
Technologies times.
2020, The
8, x FOR cups
PEER and glasses are filled with water until the 1st finger joint from the 11
REVIEW brim.
of 14

Results
Results
Figure
Figure 1010shows
showsaacomparison
comparisonofofdocking docking accuracy.
accuracy. There
Thereareare
no no
distinct differences
distinct between
differences the
between
two algorithms,
the two algorithms, although
althoughthe waiter
the waiterrobot seemed
robot to betodocking
seemed be dockingslightly more
slightly accurately
more toward
accurately the
toward
goal position. The move base command tends to overshoot the docking position
the goal position. The move base command tends to overshoot the docking position in the x-direction. in the x-direction.
Tables
Tables22andand33showshowthe thespecific
specificdatadataforfor
docking
docking andandperformance
performance in conveying
in conveying water in cups
water for
in cups
the
for two programs;
the two programs;MoveBase
MoveBase control and VelProSMACH_V2
control and VelProSMACH_V2 respectively. The mean
respectively. Thedocking radius
mean docking
improved from 329.6 mm for the step-velocity to 233.8 mm for the S-velocity,
radius improved from 329.6 mm for the step-velocity to 233.8 mm for the S-velocity, and the dockingand the docking variance
improved from 234.4
variance improved frommm234.4
to 17.8
mmmm. In addition,
to 17.8 the S-velocity
mm. In addition, profile did
the S-velocity not did
profile result
notinresult
any liquid
in any
spillage, while the step-velocity resulted in spillage in all 20 runs. However, the S-velocity,
liquid spillage, while the step-velocity resulted in spillage in all 20 runs. However, the S-velocity, in in general,
took on average
general, one andone
took on average halfandtime longer
half timeto reachtoits
longer destination.
reach This isThis
its destination. to beisexpected, even for
to be expected, evena
human waiter
for a human as theasneed
waiter to control
the need the motion
to control can slow
the motion one’sone’s
can slow pace.pace.
Results for water
Results in glasses
for water are
in glasses
similar in that there is no spillage; the timing and accuracy are about the same,
are similar in that there is no spillage; the timing and accuracy are about the same, not identical. not identical.

Figure 10.
Figure 10. Docking accuracy using the move base command
command and
and S-velocity
S-velocity commands.
commands.

Table 2. Performance result of MoveBase control.


Docked Pose Wrt Goal Pose Moving
Performance Outcome (Y/N)
S\N (mm) Time (Sec)
Spill? Docked? Crashed? X Y R
1 Y Y N 0.523 −0.068 0.527 24.5
2 Y Y N 0.105 −0.053 0.118 22.7
3 Y Y N 0.318 −0.036 0.320 22.8
4 Y Y N 0.247 0.001 0.247 22.8
5 Y Y N 0.106 −0.087 0.137 22.3
6 Y Y N 0.478 −0.164 0.505 22.7
7 Y Y N 0.078 0.012 0.079 27.0
8 Y Y N 0.294 0.054 0.299 30.7
9 Y Y N 0.331 0.012 0.331 22.7
10 Y Y N 0.438 −0.039 0.440 22.5
11 Y Y N 0.374 0.075 0.382 29.8
Technologies 2020, 8, 44 12 of 15

Table 2. Performance result of MoveBase control.

Moving
Performance Outcome (Y/N) Docked Pose Wrt Goal Pose (mm)
S\N Time (s)
Spill? Docked? Crashed? X Y R
1 Y Y N 0.523 −0.068 0.527 24.5
2 Y Y N 0.105 −0.053 0.118 22.7
3 Y Y N 0.318 −0.036 0.320 22.8
4 Y Y N 0.247 0.001 0.247 22.8
5 Y Y N 0.106 −0.087 0.137 22.3
6 Y Y N 0.478 −0.164 0.505 22.7
7 Y Y N 0.078 0.012 0.079 27.0
8 Y Y N 0.294 0.054 0.299 30.7
9 Y Y N 0.331 0.012 0.331 22.7
10 Y Y N 0.438 −0.039 0.440 22.5
11 Y Y N 0.374 0.075 0.382 29.8
12 Y Y N 0.499 −0.105 0.510 20.9
13 Y Y N 0.249 −0.030 0.251 21.8
14 Y Y N 0.312 −0.113 0.332 28.3
15 Y Y N 0.423 0.067 0.428 31.6
16 Y Y N −0.133 0.314 0.340 22.1
17 Y Y N 0.384 0.350 0.519 33.7
18 Y Y N 0.106 −0.104 0.148 21.2
19 Y Y N 0.450 0.316 0.550 22.8
20 Y Y N 0.125 −0.004 0.125 22.2

Table 3. Performance results of VelProSMACH_V2 (Strategy 3) control.

Moving
Performance Outcome Docked Pose Wrt Goal Pose (mm)
S\N Time (s)
Spill? Docked? Crashed? X Y R
1 N Y N 0.127 0.227 0.261 54.5
2 N Y N 0.563 −0.129 0.578 51.4
3 N Y N −0.085 0.080 0.117 37.6
4 N Y N −0.110 0.070 0.130 37.7
5 N Y N 0.512 −0.080 0.518 41.3
6 N Y N −0.253 0.082 0.266 30.2
7 N Y N 0.239 0.087 0.255 35.0
8 N Y N −0.065 0.273 0.280 39.0
9 N Y N −0.150 0.075 0.168 34.8
10 N Y N −0.090 0.130 0.158 29.9
11 N Y N 0.090 0.135 0.162 30.1
12 N Y N −0.130 0.160 0.206 36.6
13 N Y N 0.075 0.162 0.179 32.7
14 N Y N 0.214 −0.106 0.239 42.4
15 N Y N −0.158 0.014 0.159 56.9
16 N Y N −0.353 0.228 0.421 37.0
17 N Y N 0.068 0.063 0.093 30.9
18 N Y N 0.033 −0.083 0.089 32.4
19 N Y N −0.258 0.040 0.261 28.3
20 N Y N −0.030 0.135 0.138 30.1
Technologies 2020, 8, 44 13 of 15

There are some limitations to the use of VelProSMACH programs. The S-velocity profile requires
calibration and fine-tuning to obtain the results. This tuning will vary for various mobile robot designs.
Debugging and testing of suitable jerk parameters will be one of the key constraints of this motion
control design.
Another limitation is the inflexibility of disrupting the S-velocity profile from the smooth throttle
or smooth brake state. This results in a longer period for the waiter robot to respond to change its
operational plans. This is limited due to the value increment hard coding implementation of the
velocity to decelerate numerically with a controlled jerk. This is unlike trajectory planning of industrial
robot manipulators where the trajectory is designed in almost a fixed environment.
For safe operation, the ROS motion algorithm in the navigation package has obstacle detection and
avoidance behaviors using the LiDAR and a set of eight Teraflex IR sensors arranged around the base
of the robot for close proximity sensing. It is designed to be lightweight, open concept, and operates at
relatively low speeds. It does not result in a severe impact on collision.
The robot has been successfully tested with both static and dynamic obstacles such as a chair (static)
and humans walking toward the robot (dynamic). The collision detection and obstacle avoidance
algorithms will slow down the robot with controlled deceleration and does a detour. If a detour could
not be done, it will come to a stop when its path is completely blocked.
For additional safety, there is a push-button that when activated removes power from the
servomotors. In addition, a set of mechanical bumpers similar to those installed on Beta-G can
be implemented.
Finally, the computational time has to be considered. The S-velocity profile requires a discretization
time of 1 ms per change in order for the robot to obtain a 1-s reaction (or response) time. To react and
to respond faster, the waiter robot requires a finer quantization of time. In cases where the waiter
robot on-board computer is required to reduce the command publish rate due to heavy computation
requirements by other tasks running concurrently or where the computational power is low by design,
the solution proposed here will not be ideal.

5. Conclusions
Robots are seen in restaurants delivering food to the tables, but robots serving drinks and soups,
though also part of the basic tasks of waiter are not common. The problem is associated with the jerk
in the initial start and stop causing the liquid to spill. With the implementation of the S-velocity profile
with a limit in the jerk, it is possible to minimize liquid spillage and to improve on the productivity
of waiter robots in the Food and Beverage industry. The S-velocity can be designed into a robotic
behavior algorithm, in conjunction with ROS step-velocity and ramp-velocity using state machines
tool SMACH ROS. With this, the productivity of waiter robots in the Food and Beverage Industry can
increase by assisting in the serving of typical beverages, wine and soups.

Author Contributions: A.Y.S.W. carried out the study of jerk motion experienced by the waiter robot prototype.
A.Y.S.W. is the main algorithm developer and tester for program solution mentioned; VelProSMACH_V1 and
VelProSMACH_V2. Y.D.S. assisted A.Y.S.W. in this development in coding and experimental data collection. E.F.
was the previous developer for the mechatronic and embedded systems of the robot, which includes the Robotis
Dynamixel motors and controller used. W.L.E.W. and W.S.M.L. are the main mechanical designers of the waiter
robot prototype. Additionally, W.S.M.L. contributed to the derivation of the kinematics control equations used in
the robot software. All authors have read and agreed to the published version of the manuscript.
Funding: This research received no external funding.
Acknowledgments: The Waiter Robot team would like to extend their thanks to Steven Tay (Newcastle in
Singapore, NUiS) and Lui Woei Wen (Nanyang Polytechnic) for their generous support and technical advises.
Conflicts of Interest: The authors declare no conflict of interest.
Technologies 2020, 8, 44 14 of 15

References
1. MarketWatch. Service Robotics Market US $7.9 Billion Size Expected to Grow at 7% CAGR Forecast Till 2023.
2018. Available online: https://www.marketwatch.com/press-release/service-robotics-market-us-79-billion-
size-expected-to-grow-at-7-cagr-forecast-till-2023-supplydemandmarketresearchcom-2019-02-01 (accessed
on 22 February 2019).
2. AFP/asiaone. Robots Replace Waiters in China Restaurant. 2018. Available online: https://www.asiaone.
com/china/robots-replace-waiters-china-restaurant (accessed on 6 August 2018).
3. Jen/shanghaiist. Guangzhou Restaurant Fires Its Robot Staff for Their Incompetence. 2018. Available online:
https://shanghaiist.com/2016/04/06/restaurant_fires_incompetent_robot_staff/ (accessed on 5 May 2018).
4. Lim, K. Meet Robot Waiters Le Le and Xiao Jin at Hot Pot Restaurant Pin Xian Lou. 2017. Available online:
https://www.straitstimes.com/lifestyle/food/adding-byte-to-your-appetite (accessed on 8 January 2017).
5. The Economic Times. Science City’s Robotic Gallery to soon Serve Food through Robots. 2018.
Available online: https://economictimes.indiatimes.com/tech/science-citys-robotic-gallery-to-soon-serve-
food-through-robots/robot-waiters/slideshow/66749025.cms (accessed on 22 February 2019).
6. Robot Waiters will Serve You at This Restaurant in Coimbatore. 2018, p. 1. Available online: https:
//www.youtube.com/watch?v=PGYGUUsvtos (accessed on 22 February 2019).
7. Lawson, H.; Fenyo, R.K.; Macdonald, L. Robots Serve up Food and Fun in Budapest Café. 2019.
Available online: https://www.reuters.com/article/us-hungary-robotcafe/robots-serve-up-food-and-fun-in-
budapest-cafe-idUSKCN1PJ1EJ (accessed on 22 February 2019).
8. AFP. Nepal’s First Robot Waiter is Ready for Orders. 2018. Available online: https://phys.org/news/2018-11-
nepal-robot-waiter-ready.html (accessed on 22 February 2019).
9. Marder-Eppstein, E.A. Navigation. 2019. Available online: http://wiki.ros.org/navigation#Overview
(accessed on 28 October 2019).
10. Simon, J.S.G. Yocs_Velocity_Smoother. 2018. Available online: http://wiki.ros.org/yocs_velocity_smoother
(accessed on 28 October 2019).
11. ROS webpage. Available online: http://wiki.ros.org/joint_trajectory_generator (accessed on 28 October 2019).
12. Eager, D.; Pendrill, A.; Reistad, N. Beyond velocity and acceleration: Jerk, snap and higher derivatives.
Eur. J. Phys. 2016, 37, 065008. [CrossRef]
13. Macfarlane, S.; Croft, E.A. Jerk-Bounded Manipulator Trajectory Planning: Design for Real-Time Applications.
IEEE Trans. Robtics Autom. 2003, 19, 42–52. [CrossRef]
14. Vass, G.; Lantosm, B.; Payandeh, S. Real-Time Optimized Robot Trajectory Planning with Jerk. In Proceedings
of the IFAC Robot Control, Wroclaw, Poland, 1–3 September 2003; pp. 265–270.
15. Huang, P.; Xu, Y.; Liang, B. Global Minimum-Jerk Trajectory Planning of Space Manipulator. Int. J. Control.
Autom. Syst. 2006, 4, 405–413.
16. Pattacini, U.; Nori, F.; Natale, L.; Metta, G.; Sandini, G. An experimental evaluation of a novel minimum-jerk
cartesian controller for humanoid robots. IEEE/RSJ Int. Conf. Intell. Robot. Syst. 2010, 1668–1674. [CrossRef]
17. Lin, H.I. A Fast and Unified Method to Find a Minimum-Jerk Robot Joint Trajectory Using Particle Swarm
Optimization. J. Intell. Robot. Syst. 2014, 75, 379–392. [CrossRef]
18. Zhao, R.; Sidobre, D. Trajectory Smoothing using jerk bounded shortcuts for service manipulator robots.
IEEE/RSJ Int. Conf. Intell. Robot. Syst. 2015, 4929–4934. [CrossRef]
19. Park, J.J.; Kuipers, B. A Smooth Control Law for Graceful Motion of Differential Wheeled Mobile Robots
in 2D Environment. In Proceedings of the 1985 International Conference on Robotics and Automation,
Shanghai, China, 9–13 May 2011; pp. 4896–4902.
20. Korayem, M.H.; Nazemizadeh, M.; Nohooji, H.R. Smooth Jerk-Bounded Optimal Path Planning of Tricycle
Wheeled Mobile Manipulators in the Presence of Environmental Obstacles. Int. J. Adv. Robot. 2012, 9, 105.
[CrossRef]
21. Wu, W.; Chen, H.; Woo, P. Time Optimal Path Planning for a Wheeled Mobile Robot. J. Robot. Syst. 2000,
17, 585–591. [CrossRef]
22. Khatib, O. Real-Time Obstacle Avoidance for Manipulators and Mobile Robots. In Proceedings of the 1985
International Conference on Robotics and Automation, St. Louis, MO, USA, 25–28 March 1985; Volume 2,
pp. 500–505.
Technologies 2020, 8, 44 15 of 15

23. Wan, A.Y.S.; Foo, E.; Lai, Z.Y.; Chen, H.H.; Lau, W.S.M. Waiter Bots for Casual Restaurants. Int. J. Robot. Eng.
2019, 4, 018. [CrossRef]
24. Bohren, J. Smach. 2018. Available online: http://wiki.ros.org/smach (accessed on 28 October 2019).
25. Ben-Ari, M.; Mondada, F. Elements of Robotics; Springer Nature: Cham, Switzerland, 2017.
26. Cheong, A.; Lau, M.W.S.; Foo, E.; Hedley, J.; Bo, J.W. Development of a Robotic Waiter System.
IFAC Pap. Online 2016, 49, 681–686. [CrossRef]

© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access
article distributed under the terms and conditions of the Creative Commons Attribution
(CC BY) license (http://creativecommons.org/licenses/by/4.0/).

You might also like