![](bg4.png)
Since the behaviour networks do not have any
information about the map of the environment, it is
difficult to perform plans correctly in complex
environments. To deal with this, the deliberative
module checks accomplishments of sub-goals and
controls plans when situations are changed, and the
plan in each behaviour network module controls
only partial behavior sequences to achieve the sub-
goal of the corresponding module.
The deliberative control module makes plan by
deciding priorities of goal sequences to achieve the
global goal and adjusting priorities when exceptions
or feedbacks are occurred. The module uses the
basic behavior library that includes basic sequences
of behaviors required to perform when tasks are
given. The library is defined before the usage, and
can be modified by the feedbacks of the user. When
the user gives tasks, the sequences are planned by
using the library and inserted into the queue. At the
‘Check event’ stage, the robot checks changing of
situations, and adjusts the sequences.
2.2.1 Priority-based Sequence Planning
To plan and adjust the sequences, the priorities of
tasks are used. In this paper, the priority is defined as
the deadline of the delivery required by the user. For
this process, we define several parameters as follows:
: command set
: decomposed command
set
Q= {q
i
:q
i
= d
1
,...,d
k
,i < max
queue
}
: command
queue
X = {W
it,
ritic
l,Min
r}
: user feedback set
Firstly, priorities are determined according to the
requested deadline and the order of tasks as shown
below:
(3)
where t
i
and O
i
indicate the remaining time and the
order of the ith task, respectively. Max means the
possible maximum value of the corresponding variable.
Secondly, priorities are adjusted by additionally
considering the position of the robot as follows:
(4)
where S is the current state of the robot, From(i)
indicates the starting point of the ith task, and f(S) is
the priority decided by the feedback.
2.2.2 Sequence Queue and User Feedback
The sequence queue contains feedbacks from the
user. Each of them consists of an index of the user, a
type of command, a deadline, a point of departure,
and a destination. When the feedback is given, the
robot seeks sequences for the corresponding
command and puts the sequences into the queue. If
there is no relevant sequence in the library, the robot
requests feedbacks to the user.
The priorities of behavior modules in the
sequence are computed with the order of the task
and the deadline by using Eq (3) and (4) in the
section 2.2.1. Each module is sorted by the priority
in the sequence queue. For this job, the queue has
information. The front four are input by the user, and
next five are used to manage the plan flexibly.
Each task has the segmented sequence with
subtasks. For example, a single delivery task is split
into the subtask to bring the object from the point of
departure and another subtask to move the object to
the destination. Each task has a check point that
indicates which subtask is performed lastly. The
check point enables to adjust the plan flexibly
according to the change of situations. The subtask
has the sequence of several behaviour modules.
Task adjustments are preceded according to the
position of the robot as follows :
(5)
where Seq(qi) indicates the target command to be
placed instead of q
i
, Pos
i
is a set of positions that q
i
contains, and is the lth behavior in q
i
. For
example, the robot may pass the other room not
required for the task during the movement from the
starting point to the destination. In this case, it
searches the task which the robot should fulfill at its
current location. If the deadline of the task in
progress is greater than the threshold, it changes the
plan to execute the task found with high priority.
Otherwise, it ignores the task found and continues its
previous job.
}{
i
cC =
}}{:}{{ CddD
ii
∈=
)(10
)(
iMax
Max
iMax
i
Fix
OO
t
tt
P −+×
−
=
⎪
⎪
⎪
⎩
⎪
⎪
⎪
⎨
⎧
∈
=⋅∋⋅∃
≠
<
=
=
if ),(
)(
and )( if
),(
or )( if
),(
)(
XSSf
SjFromj
SiFrom
qP
θt
SiFrom
qP
qP
jFix
i
iFix
i
Dynamic
) and or (
and Pos
)2(
and Pos
)1(
otherwise ,
(CASE2) if ,
(CASE1) if ,
)(
j
k
objGivedqTakedq
SPos
CASE
θtSPos
CASE
q
dq
q
qSeq
ljlj
j
ik
i
lj
k
i
∃=→=→
=⋅∋⋅∃
>=⋅∋⋅∃
⎪
⎩
⎪
⎨
⎧
→=
li
dq →
HierarchicalPlanningofModularBehaviourNetworksforOfficeDeliveryRobot
17