Roadmap-Based Planning in Human-Robot Collaboration Environments
Roadmap-Based Planning in Human-Robot Collaboration Environments
Abstract—Enabling humans and robots to work together allows potential of the robots by operating them in unstructured
for cost savings and workplace efficiency. The robot must be open environments that change dynamically. A robot would
equipped to perceive humans, and redirect its actions for co- only possess partial information of surroundings before it
operative tasks or under hazardous situations. Thus, dynamic commences operation; obstacles could appear or go away at
motion planning appears as an essential exercise. We use dynamic any time during its operation. This situation poses several
roadmaps for online motion planning in changing environments
combined with a voxel-based grid. The presented approach can
challenges for motion planning [5]. With efficient planning, we
answer path planning queries efficiently. Visualized simulation can leverage the benefits of cooperation by assigning specific
is an important technique for rapid verification of algorithms production tasks to robot and humans, as well as make the
or prototypes. We present an architecture that implements a robot more autonomous. Specifically, it requires the ability to
simulation of the robotic manipulator using the Robot Operating account for new obstacles or changes in the environment and
System (ROS) and MoveIt. continue to plan on the fly and quickly with some accuracy.
Keywords–robotics technology, intelligent robotics, sampling- This work is an incremental exercise concerning building
based planning, perception and sensing, dynamic environments,
voxel-based grid.
a collabarative planning solution. We define collaboration as
working as a team to reach a common goal. In the collaborative
environment, physical contact between human and robot may
I. I NTRODUCTION be inevitable and indeed desirable, enabling the robot to learn
Today, there are opportunities for automation in many in- from experience. To achieve accurate and efficient collabo-
dustries, such as automotive assembly lines, material transport, ration, both robot and human need to perceive each other’s
space exploration. Frequently, robots support this automation, intentions and must know their task set. With that knowledge,
improving thus the production volumes, bringing down costs, the robot can plan and adapt its actions accordingly, ultimately
and improving the precision and accuracy of the production leading to the achievement of the mutual objective, all the
process. Additionally, as robots capabilities increase, they while assuring safety. A typical scenario could be the robot
can take on jobs that might be impossible or dangerous for as a work assistant that can hand in the next tool piece to the
humans [1]. The ability to calculate and execute motion plans human. Robot predicts that this piece is the one needed for the
is central to the operation of these robots. Fundamental motion person to continue its job and is shelved and outside human’s
planning problem is to compute a set of inputs to the robot access. Collaboration scenario primarily comprises a dynamic
that drive it from a start to a goal position while avoiding environment, and any motion planning strategy that tackles the
collisions with the environment obstacles. Early works on dynamic obstacles must allow dealing with the collaboration
robot motion planning assumed a robot’s world to be known episodes accordingly. To this end, different approaches exist,
and fixed at the time of planning. During the execution such as Incremental Path Planning [6] and Experienced based
of the plan, however, the robot might discover a deviation Motion Planning (EBMP) [7]. The later employs a database of
from the assumed world state, such as a human entering its previous searches and recalls an experience from the database
operational area. Typical industrial assembly environments, when it encounters a similar planning exercise. This may
that confined robots to separate operation spaces isolated from involve repairing the previous plan and reduce the time of the
human workers, would bring robot operation to a halt under current query as opposed to planning from scratch. Likewise,
such scenario [2], safety being the primary concern. In other incremental search methods use previous search results to solve
cases, the robot must replan its trajectory from scratch, which similar path planning problems faster.
might be computationally intensive for real-time operation. Our work concerns path planning with obstacle avoidance
Random sampling is an important technique employed by in dynamic collaboration scenarios. For efficient collaboration,
popular planning algorithms such as Probabilistic Roadmaps an intelligent monitoring system is inevitable [8, 9]. The
(PRM) [3], Rapidly Exploring Random Trees (RRT) [4] to present work uses the monitoring solution in [8] and combines
build network of feasible paths. For static environments, these with a PRM based approach, dynamic roadmaps. We organize
methods can efficiently make and execute plans, even when the work presented here in two distinct parts. The first part
there are obstacles. With some of these algorithms, such as explains dynamic motion planning for robots and reviews some
PRM that are multi-query, we can delegate roadmap building strategies that address dynamic environments (Section II). In
as an offline exercise and run multiple queries online on the second part (Section IV), we present the tools that allow
the available roadmap. However, we can realize a better developing motion planning algorithms on a simulated model
of the robot. In Section III, we describe how we integrate x
the monitoring solution with planning algorithm for efficient
motion planning. In Section V, we present the preliminary path
planning architecture using the popular tool support and based (x + vp t, t + τ )
on a voxelized grid. Finally, in Section VI, we conclude the
vp τ (x, t + τ )
paper and present some future work directions. l
(x, t)
II. M OTION PLANNING IN DYNAMIC AND UNKNOWN (x − vp t, t + τ )
ENVIRONEMNTS
The work presented here concerns industrial robotic arms
or so-called manipulators. In particular, we do not consider t
mobile robots; proposed ideas will be applicable to trajectory τ
planning of a Universal Robot with a lift ability of 5 kg Figure 1. A state-time grid of a single roadmap arc [12].
(UR5) [10]. Mounted on a stationary platform, its links with
revolute joints and end-effector can move with a certain degree
of freedom.
preprocessing phase, i.e., each vertex in free interval graph
A. Definitions maps to one node in the roadmap. The approach builds a local
Fundamental to the path planning problem is the concept trajectory first, i.e. traversing a single arc between two roadmap
of configuration and configuration space. The configuration nodes, and then extends to the complete interval graph. Robot
of a robot is a set of independent parameters that char- movement velocity is given maximum vmax . The approach
acterize the position of every point in the object whereas interpolates motion along a single arc using a two-dimensional
configuration space (denoted C) is the space of all possible state-time grid where distance travelled along the arc and time
configurations [11]. The dimension of the configuration space are two dimensions. The state-time space is discretized by time
is determined by the degrees of freedom of the robot. A step τ and velocity value vp < vmax ; l is the length of the arc.
configuration q is a vector of robot joint values. For instance, a From a given state (x, t), three states are reachable (Figure 1).
robotic arm with six revolute joints has six degrees of freedom For an arc a with start state-time (xs , ts ) and destination
and its configuration is denoted q = {q1 , q2 , q3 , q4 , q5 , q6 } state xd , the approach maintains a stack where initially (xs , ts )
where qi denotes ith joint angle. The configuration space C is present. In a loop, it pops a stack element. If it is collision-
is a space of these configurations, i.e., for 6 dimensions, we free and not visited before, it pushes the reachable grid points
have C = R6 . Any path finding strategy places configurations in an order that favours movement towards the goal. The
in C into two categories, those that are free Cf ree , and others algorithm runs until the stack is empty or goal state xd has
that are in collision Cf orb , i.e., occupied by obstacles. A been reached. Backpointers and the visit status of each state are
configuration q ∈ Cf ree if the robot placed at q does not maintained. So if a certain movement encounters an obstacle,
intersect with workspace obstacles. A path is a continuous we move back to the next unexplored state on the stack. The
sequence of configurations in Cf ree connecting initial and goal algorithm chooses a short time step τ for better accuracy of the
configurations. For dynamic scenarios, a notion of time is algorithm. For finding a global trajectory, the algorithm sends
incorporated in C, and resulting space may be termed as state- probes corresponding to single arcs and evaluates a function,
time space [12]. It consists of pair (x, t) where x ∈ C and t f (p) = g(p)+h(p), to determine how promising a given probe
denotes the time. A path obeying dynamic constraints is termed p is. g(p) is the cost so far and h(p) is the estimate until the
as trajectory. goal state. Assuming (xu , tu ) to be the top state on the stack
for probe p, the trivial estimate for g(p) is tu . To estimate h(p),
B. PRM based approaches for dynamic environments it uses a roadmap distance function D(xu .g) from the current
PRM approach, in the planning phase, randomly samples state xu until the goal state g. This estimate could come from
configurations in the free space and builds a roadmap, i.e., running a simple Dijkstra’s algorithm on the roadmap before
Cf ree . In the query phase, it finds paths in the roadmap to the query phase, giving h(p) = D(xu , g)/vmax . The probe
guide robot from start to the goal. Dynamic obstacles in the with minimum f (p) value has the highest priority. For a start
environment can invalidate parts of the previously constructed state s, the algorithm initializes probes on all arcs starting
roadmap in what concerns free space. Therefore, we need from s and puts them on the priority queue, from which it
methods to update the roadmap taking into consideration the examines probes one by one. If the local trajectory found by
current state. a prob reaches the goal, we have a solution. Otherwise, it
The works in [13] and [12] use PRM-based approach to starts probes on outgoing edges and continues. The algorithm
handle dynamic scenarios. The work in [12] extends PRM terminates either when it finds the goal node or if no probes
by augmenting configuration space with a dimension of time. are remaining.
The preprocessing step is like regular PRM. Online, checking The work in [13] start their approach alike the [12], i.e.,
for static obstacles is not required for collision testing. It building the roadmap in the preprocessing phase, accounting
incorporates the notion of free interval, the maximum contin- for static obstacles. In the query phase, at first, the approach
uous segment of time that a configuration (a roadmap node) connects query nodes to the roadmap. Next, it divides roadmap
is collision-free. Arriving earliest in a free interval allows nodes into three categories, those that are reachable from the
reaching the goal faster. Implicitly, this approach builds a free start node, those that are reachable from goal node, and those
interval graph that corresponds to the roadmap built in the that are not reachable from query nodes. A first attempt to
find path labels some edges as blocked; edges that are not
graph search
collision-free due to dynamic obstacles. An essential element
of this approach is the connectivity extension in two ways,
from a query node to a node reachable from the other query
node, and from query nodes to the roadmap portion which is
not yet connected to query nodes. The approach searches for plan
a path with enhanced connectivity. When the approach cannot
retrieve path from the roadmap, it uses RRT-connect [14] update previous
which incrementally builds two random trees one rooted at
search
the start node and the other rooted at the goal node, and execute
tries to find a path. Finally, it can create new nodes if the
existing roadmap does not allow any path. This method can
store the key positions of the moving obstacle in a database.
For subsequent edge labelling, it compares the current position
of an obstacle to the stored value. If it’s the same, the previous no yes
graph changes
exercise (collision testing, and pathfinding) is still valid, thus,
avoiding new effort. Since dynamic obstacles can move at any
time different positions, so, practically, there can be infinite Figure 2. General methodology of incremental path planning.
positions that must be stored. For efficient memory usage,
the approach stores only the last checked positions. However,
this approach is beneficial in certain situations; for example,
when moving obstacles are doors that could be closed or plan, we receive changes, if any, in the graph. This information
open, then storing a few positions might save significant future could come from different sensors outside of the robot, such
recalculations. as laser scanners or RGB cameras. Using this information, we
update the previous map instead of replanning from scratch.
C. Experienced based motion planning We continue to perform this loop until we reach the goal
Experience-based approach to motion planning builds on (Figure 2).
knowledge from past planning exercises, i.e., [7]. It maintains In the following, we briefly discuss an incremental planning
a database of past experiences from which it can retrieve a algorithm D* [15].
partial or complete solution to the current problem. Such an 1) D* algorithm: D* is an incremental search algorithm,
approach may be particularly beneficial in situations where a considered to be the dynamic version of A* algorithm [16]
robot is supposed to be operational in a fixed environment for since it permits edge costs to change as the algorithm runs.
long periods. In such a situation, the robot would frequently The algorithm begins at the goal state donated G and works
encounter similar obstacles and environments. Thus, planning its way back to the start state; on its way, it keeps on reiterating
from scratch is not desirable because of redundant computation and updating costs to reflect optimal paths. Each graph node
effort. Repairing an available solution, instead, is faster. The can be in one of the following states NEW, CLOSED, OPEN,
approach maintains a sparse roadmap for efficient memory RAISE or LOWER. The OPEN list maintains nodes needing
usage. Further, for speed up, it delays the collision checking expansion. The algorithm runs until the current robot state is
until after it has found a candidate path. Later, it tests the CLOSED. The algorithm maintains two cost estimates for each
path for collisions and removes any invalid segments. When node, namely path cost function h(G, X) and key function
the path gets broken, the search is commenced. In a post- k(G, X). Path cost function gives the current estimate of the
processing step, it smoothes repaired paths before sending sum of arc costs from state X to goal state G, and key function
these to the robot. The approach discretizes the solution path denotes the minimum of h(G, X) which we can regard as the
into an ordered set of vertices and incorporates it into the previous estimate of h(G, X). The algorithm sorts the OPEN
experience roadmap. In the query phase, it follows the general list according to nodes key values. When expanding a node on
approach, connecting query nodes to the graph, if this is the OPEN list, the key function allows changing the current
successful, then A* algorithm can return the optimal path node state as RAISE or LOWER. When k(G, X) < h(G, X),
between start and goal nodes. As stated, it checks for possible current estimate indicates an increased cost, so X state is
collisions with environmental obstacles after it has found the changed as RAISE, otherwise as LOWER. Next, it propagates
candidate path. For this case, invariant constraints do not lend changes from expansion to the neighbours that are now placed
any recomputation. Moving obstacles, however, can appear and on the OPEN list and expanded in turn. Each node has a back
invalidate path segments. For this case, a new A* search is pointer which leads to the target. Algorithm reports a solution
run to find the path. The approach to finding a path through path when the next node for expansion is the start node. We
disconnected components is similar to that of [13]. follow back pointers from the start until the goal.
There have been different improvements to the original D*
D. Incremental path planning such as D* Lite [17], and Focussed D* [18]. Focussed D* is an
Incremental search methods reuse recent solutions to speed informed incremental heuristic search algorithm that combines
up searching for similar problems. Assuming that we have ideas from A* and D*. D* Lite, though not directly based on
incomplete information about the world, replanning occurs D*, implements similar ideas to path planning in unknown
from the current state until the goal whenever an obstacle environments as D*. With lower implementation overhead, it
encounters. When we have to execute the next action in the yields better performance.
III. P ROPOSED APPROACH
In this section, we describe the approach that makes use
of the voxel-based grid for motion planning. We envisage
using a roadmap based approach for its simplicity and ease
of development. This is an extension of previous work [19],
now addressing the dynamic environment.
(500, 100, 200)
A. Dynamic roadmap with voxel-based occupancy grid
(400 cm, 100 voxels)
A voxel represents a value on a regular grid in three- (100, -300, -200)
monitoring approach that outputs a voxel grid. The voxel-based (400 cm, 100 voxels)
Planning algorithms
URDF model
OMPL Sensor data
Planning scene
collision detection
framework
Voxel-based grid
Trajectory execution
legend
ROS package
external modules
(a)
moveit packages