and Subramanium, 1998).
The Phantom device was originally developed at
MIT at the beginning of the 1990s (Massie and Salis-
bury, 1994). Presently, it is one of the most popular
and advanced haptic interfaces available on the mar-
ket. Working with the Phantom, the user holds a sty-
lus or a thimble-like end effector and can freely move
the device within its workspace, taking advantage of
six degrees of freedom (DOF). According to the pro-
grammed behavior, forces and torques are generated
to enable interaction with the virtual world. The up-
date rate in the force servo loop is about 1kHz to en-
sure haptic feedback quality. For lower update rates,
high-frequency discontinuities and hard surfaces be-
come either soft or unstable (Mark et al., 1996).
The goal of integrating haptic interaction into
the process of robot programming is an increase in
efficiency. This issue is especially important for
programming robot movements in narrow passages
where the collision probability is high. An additional
advantage is the possibility to move all axes simulta-
neously. This adapts the programming to real world
conditions and allows evaluating the process more ac-
curately.
The kinematics of the Phantom is not supposed to
reflect a robot. The user who operates the device is
able to control the tool center point (TCP) of a robot,
not its individual joints. Otherwise each robot model
would need a dedicated haptic device.
In contrary to the high update rates for haptic feed-
back quality, the frequency for sufficient visual feed-
back is below 30Hz. However, it is necessary to coor-
dinate these two tasks (figure 1) in order to assure sta-
ble and ergonomic working conditions. This concept
of two different update rates has been implemented
in the presented approach. The servo loop runs in-
dependently from the main application thread. The
current situation in the robot cell is sent regularly to
the servo thread to generate the forces accordingly. A
typical example for a force that is directed against the
movement initiated by the user is an occurring colli-
sion with an obstacle.
Apart from signaling collisions, the Phantom may
provide interaction with a robot cell in other cases as
well. Such cases include for example approaching an
obstacle, detecting disadvantageous movements, or
leaving the workspace. It can also be used for direct
input of points and paths as well as for selecting or
manipulating objects. At the present state of research,
a haptic device can be hardly considered to fully re-
place the contemporary methods of path input. One
of the most important reasons is the natural tremor of
human hand. However, this drawback can be dimin-
ished by employing smoothing algorithms.
3 SMOOTHING
The path smoothing algorithm presented here is based
on the method described in (Berchtold and Glavina,
1994) and tested in (Hein, 2003). Its input is a path
that is either generated by an automatic algorithm or
manually drafted e.g. by a haptic device. A path con-
sists usually of so called point to point (PTP) move-
ments. PTP means that all axes of the robot are moved
simultaneously along a straight line in the configu-
ration space of the robot. Start and end location of
a PTP movement are reached simultaneously. The
algorithm tries to erase points that are redundant in
two senses. First, collinear segments can be reduced
(remove the intermediate points) to one segment, see
section 3.1.1. Secondly, vertices that can safely be
deleted without harming the collision-freeness of the
path are considered redundant, see section 3.1.2.
The algorithm smooths the path by inserting and
deleting vertices at promising locations. In the fol-
lowing text the notion “sharp vertex” is used, which
is a vertex that has a small angle defined by its ad-
jacent segments. The input data for the algorithm is
a (rough) path in configuration space that has to be
collision-free. All robot poses along the path in con-
figuration space must result in a collision-free situa-
tion in work space. (Mages et al., 2004; Schwarzer
et al., 2004)
3.1 Components of the algorithm
3.1.1 Linear redundant points
Linear redundant points can be identified by the angle
between two neighboring segments. A location p
i
is
chosen by the algorithm. If the angle between seg-
ment
p
i−1
p
i
and p
i
p
i+1
is π, the two segments can
be combined by removing the central point (see figure
2). No collision checks are necessary in this case.
3.1.2 Redundant points at vertices
Start
Result
Figure 2: Removal of redundant points on a linear segment
A vertex can be deleted if the collision-freeness of
the resulting path is still guaranteed. The vertex p
i
can
be deleted if the segment
p
i−1
p
i+1
is collision-free.
This can be accomplished if the smoothing oper-
ation described in 3.1.3 is executed with parameter
t
end
= 1. Then only one segment has to be checked
ICINCO 2005 - ROBOTICS AND AUTOMATION
388