paradigm. We adopted this paradigm to concil-
iate the reactive behavior of the sensors-actuators
net and the deliberative activities required to ac-
complish more complex tasks. Thus, the con-
trol organization is composed of the follow-
ing software modules: Perception, Localizer,
Cartographer, actionPl, pathPl, refRoGen,
avoiderObs, posCon, headCon, refHeGen and vi-
sionSis.
The Perception module is responsible for
adquires all the sensor measurements. It requires
measurements of sonars and encoders, in a fixed sam-
pling period. This module writes in blackboards the
received measurements. Perception writes in 3 dif-
ferent blackboards: one to write angular displacement
of wheels, other to write angular displacement of head
parts and a third blackboard to write the sonars mea-
surements.
The Localizer module was designed to localize
the robot in the current map. It reads data from black-
boards where Perception writes. This module cal-
culates the robot position using odometry. The calcu-
lated robot position is exported to a different black-
board.
The Cartographer maps the environment using
data exported by Perception. The map can be con-
structed in real-time or, in known environment, be a
priori defined. The generated or a priori known map is
exported to a blackboard. In the experiment presented
in this work, we used a priori known topologic map
with metric information, implemented as a graph.
The actionPl reads data from blackboards where
Localizer and Cartographer export data. Know-
ing the global task of the robot, this module deter-
mines the action to execute. In the experiment pre-
sented in this work, the robot global task is to explore
a building with many environments until find a known
mark. In this way, there are 4 possible actions:
1. Go to the center of a non-explored environment;
2. Explore a non-explored environment using the
stereo head;
3. Go to the mark, if and when it is discovered;
4. Go to another non-explored environment.
The topologic map of building is a priori known.
The exploration is done using depth search in the
graph that represents the connection topology of the
building.
In the case of action 1, an action corresponds to
go to the center of environment where the robot is.
An action 2 corresponds to execute specifc movi-
ments with the stereo head. These movements are
executed when robot reaches the center of the envi-
ronment. Such actions have as objective to provide to
visionSis a better pose to capture and process the
images.
The action 3 corresponds to go to the mark posi-
tion, discovered by visionSis. This action is trig-
gered only when the robot accomplishes its global
task. When this action happens, the building explo-
ration is finalized.
In the case of action 4, an action means go to a
non-explored environment. The path from the current
environment to the nearest non-explored environment
is determined by Dijkstra algorithm (Cormen et al.,
2002). All the possible paths are pre-calculated at the
initialization of the robot, because the map is a priori
known and it has little dimensions (in the case of the
experiment of this work). Thus, the actionPl is re-
sponsible for the execution of the depth search on the
map and for the election of the correct action in each
moment of robot execution.
The actions are synchronously passed to the
pathPl module. If the actionPl triggers an action
1, the pathPl exports the center position of current
environment. If the actionPl triggers an action 2,
the pathPl exports the positions that the stereo head
parts must reach. If the actionPl triggers an action 3,
the pathPl exports the position of discovered mark.
If the actionPl triggers an action 4, the pathPl gen-
erates a geometric path from the current environment
to the final desired one, passing through the environ-
ments between them. Two blackboards are used by
the pathPl module: One to export the data needed to
move the robot from an environment to another; other
blackboard to export data needed to move the stereo
head parts.
The refHoGen module reads the blackboard where
pathPl writes. It generates the reference positions in
each sampling period and exports these references in
a different blackboard.
The posCon is a reactive module that generates
velocities percentages for wheel motors using PID al-
gorithm to move the robot to a position read from
the blackboard where refHoGen exports data. These
percentages are sent to motor controller board, pro-
viding the reference to the embedded controller of
them. This module also reads the data exported by
Localizer, needed by the PID controller.
The avoiderObs reads sonar measurement ac-
quired by Perception module. The avoiderObs
monitors read data in order to identify obstacles in
the robot path. If an obstacle is detected, a safety
position is generated and exported to the blackboard
where refHoGen exports.
The headCon functions like posCon module, but
it reads references from blackboard where refHeGen
module writes data.
ICINCO 2008 - International Conference on Informatics in Control, Automation and Robotics
172