fined by a sequence of via-points. Using smoothing
techniques, SoftMotion computes firstly a trajectory
stopping at via-points and then smooth the trajectory
near each vertex. The smoothed area is managed to
maintain the moving parts inside a pre-defined tube,
so respecting error bounds specified by the user. The
system can adapt the kinematic bounds (velocity, ac-
celeration and jerk) in real time making the trajectory
more acceptable to humans.
3 OBSTACLE DETECTION
The Kineo
T M
Collision Detector (KCD) provides fast
and reliable collision detection, based on minimal dis-
tance computations. This module is synchronized
with the OctoMap module (Hornung et al., 2013).
The OctoMap is updated at 30Hz with the point
clouds acquired by an Xtion PRO LIVE RGB-D cam-
era.
In the OctoMap updating process there is a com-
promise between updating speed and noise: the faster
the update, the easier noise appears. Has we are do-
ing reactive planning, we want the OctoMap to be up-
dated as quickly as possible. In order to avoid the
introduction of noise in the OctoMap, we must use ro-
bust noise filters. In fact, before a point cloud is added
to the OctoMap, it undergoes three filtering steps. The
first step removes the points corresponding to NaN
depth values, typically points at infinity or on specu-
lar surfaces, and points out of reach of the robot’s arm,
with which there is no possible collision. The second
step filters out parts of the point cloud corresponding
to robot joints. During this step, a correct hand-eye
calibration is crucial as it will determine the quality
of this filtering. Though most of the noise sources are
now removed, a third step is necessary. Indeed, the
sensor can generate spurious points at random posi-
tions which impair the reactive planning by blocking
free paths.
In order to limit the apparition of such sparse out-
liers, we use a statistical filter (Rusu and Cousins,
2011) available in the PCL library (pcl, 2010). For all
points, the statistical filter measures the distance be-
tween every point and its closest N neighbors. These
data are fitted to a Gaussian. A threshold is set in
function of the mean and variance of the Gaussian.
Every point for which the mean distance to its neigh-
bours is higher than the threshold, is considered as an
outlier and is removed.
4 SIEMENS REACTIVE PATH
PLANNING ROS PACKAGE
As part of the ICARO project, we have developed a
reactive path planning package over the ROS mid-
dleware. This kws ros interface package (hereafter
kws ros), is built on top of the KineoWorks
T M
soft-
ware component. KineoWorks addresses all aspects
of motion processes including collision-free auto-
mated path planning. It includes the most common
motion types, such as joint motion, and features an
advanced algorithm for detecting collisions along a
trajectory, which is both fast and exact, regardless
of kinematical complexity. The reactive path plan-
ning involves two packages: the kws ros package
dedicated to trajectory planning, interacts with the
Kineo
T M
Collision Detector (hereafter, KCD).
4.1 General Structure
The kws ros package contains two nodes, one in
charge of all collision-free path planning tasks and the
other performing reactive control (Yoshida and Kane-
hiro, 2011) over the executing trajectory. Both nodes
embed a representation of the scene into KCD. This
one has to be defined offline in a dedicated CAD mod-
eller, the Kite module, by providing CAD models of
static obstacles and parts of the robot, together with
its kinematics model. The representation is loaded at
node launch and it is then enriched, for reactive pur-
pose, by the dynamic point cloud data such as those
obtained through laser scanning or optical vision sen-
sors. KCD enables collision detection between point
clouds and the rest of the environment. Each one of
these nodes is implemented using a robust state ma-
chine fully driven by the ROS actionlib protocol al-
lowing multi process communication. Both nodes up-
date the robot position by a ROS topic and provide
convenient topics to add, move, remove, attach and
detach geometric parts on the fly. This allows cover-
ing a wide variety of scenarios from simple pick and
place tasks to complex human collaboration tasks.
4.2 Reactive Path Planning
Reactive path planning is mainly performed by the
controlling node which basically interacts with the
path planning node and some critical nodes execut-
ing the global task, here grouped in the ICARO stack,
such as the trajectory execution node. The reactive
strategy is implemented in its state machine by four
states described in figure 2.
WAITING State: A simple state waiting for user
input.
ICINCO2015-12thInternationalConferenceonInformaticsinControl,AutomationandRobotics
452