Development of A Cheap On-board Vision Mobile Robot
for Robotic Soccer Research
T. Nakamura∗
J. Morimoto

K. Terada
H. Adachi

A. Shibata
H. Takeda

Nara Institute of Science and Technology Dept. of Information Systems
8916-5, Takayama-cho, Ikoma, Nara 630-01, Japan∗E-mail:takayuki@is.aist-nara.ac.jp

Abstract
To promote robotic soccer research, we need a low
cost and portable robot with some sensors and a communication device. To date, there is no platform for
robotic soccer. Therefore, each researcher must build
his own robots or utilize robots which are commerciallyavailable. This paper describes how to construct a robot
system which includes a lightweight and low cost mobile
robot with visual, tactile sensors, TCP/IP communication device, and portable PC where Linux is running.
An example of the developed soccer robot system andpreliminary experimental results are also shown.
Keywords: Soccer Robot, Portable PC, Linux

1

Introduction

Robotic soccer is a new common task for artificial intelligence (AI) and robotics research[1, 2]. The robotic
soccer provides a good testbed for evaluation of various
theories, algorithms, and agent architectures. Throughthe research for accomplishing this task, a number oftechnical breakthroughs for AI and robotics are expected
to be discovered.
So far, many researchers have been studying robotic
soccer and have proposed a variety of theories and methods for controlling, planning and so on. They built ateam of robotic platforms for playing soccer by themselves, or purchased robotic platforms (for example, [3]).
There is no standard robotic platform design for robot
soccer. Generally, contemporary robotic systems involve large amounts of expensive, special purpose hardware for motor control and image processing. If many
researchers can easily utilize good robotics platform inpoint of low cost and easy operation, it would contributeto the promotion of the research.
In this paper, we describe how to construct a cheap
on-board vision mobile robot and its control system
mainly made from a state-of-the-art portable PC and abattery-powered R/C model car. Since recent portable
PC is affordable and powerful, such a PC is used asa central controller which manages processing sensor
information, controlling motor and communication between the robots. As a chassis of the mobile robot, a4-wheel drive, R/C model car is utilized. The important feature of our robot is that this platform has all its
essential capabilities on board. Our platform consistsof driving, visual sensing, tactile sensing, motor control, communication and decision-making system. Since
each system is made of devices commercially obtainable,
we can reduce both of the cost and complexity of thesystem. According to our design principle for soccer
robot system, those who are interested in the robotic
soccer would easily utilize or build this robotic platform by themselves. To evaluate the developed system,
we have implemented some behavior for playing soccer
and visual segmentation and tracking algorithms basedon color information. Preliminary experimental results
are also shown.

2

Our Hardware Architecture

In order that our soccer robots are used by not only
roboticists but also researchers in other research communities, our soccer robots should be easily manageable.
Furthermore, in order that our robot system satisfies therequirements of a standard platforms, it is important to
reduce the cost and time for building our robot system.
To address this issue, we use a portable PC as a central
controller of robot system which is recently affordable
and powerful.

2.1

Driving System

As a chassis of the mobile robot, we utilize a 4wheel drive, R/C model car which is commercially available. Actually, we utilize a chassis of “BLACK BEAST”(NIKKOH 1 ) (See Fig.1). This chassis is composedof a PWS (Power Wheeled Steering) system with two
independent motors. Because of this mechanical structure, our robot can rotate at the same place. This system is useful for avoiding the situation that its bodygets stuck into corners. Existing motors provided byNIKKOH are comparatively powerful. However, if we
put something whose weight is more than 4 Kg on the
1 NIKKOH is a Japanese toy company. BLACK BEAST is alsocommercially available outside of Japan.

existing chassis, the body can’t move around by thosemotors. In such case, we have to change existing motors
to high-torque motors (for example, TAMIYA RS-540
Sport Tuned Motor). As a result, even if we put something whose weight is about 4kg on our robot, our robot
can move around.

Figure 1: Our driving system.

2.2

Visual Sensing System

Our robotic soccer project aims the development ofrobotic soccer players with on-board visual sensor likehuman soccer players. So, a visual sensing system in oursoccer robot plays a fundamental role in acquiring visual
information and recognizing it. Our soccer robots makea pass or tackle and shoot a ball into a goal based on
the images taken by the on-board camera. In order tobuild such visual sensing system, we have chosen to use
a commercial video capture PCMCIA card (IBM Smart
Capture Card II, hereafter SCCII) which can be easily
plugged into a portable PC and a color CCD camera(SONY EVI D30, hereafter EVI-D30) which has a motorized pan-tilt unit. Our visual sensing system consistsof SCCII and EVI-D30.
SCCII is a PCMCIA type-II video capture card which
can capture at 30 frame-per-second at maximum resolution 320-by-240 in 16-bit RGB formats . We can feed
video to SCCII in NTSC or PAL format, and the card
provides jacks for both composite-video and S-Video input. A device driver for the use of SCCII on Linux OS
is distributed as a free software. We utilize this device
driver in order to capture images on Linux OS.
EVI-D30 is a high-performance color CCD camera,
because it has auto target tracking function based oncolor information and motion detection function. We
can control eyes of EVI-D30 with a motorized pan-tilt
device which can be managed by a portable PC through
RS232C. The pan and tilt angle of this device ranges
from −100 to +100 and from −25 to +25, respectively.
In this way, this camera can cover wide field of view.
Since our soccer robot has such sensing capability, ourrobot can find a ball by moving its camera head without
moving its body.

2.3

Tactile Sensing System

A tactile sensing system is used for detecting contact
with the other objects such as a ball, teammates, opponents and a wall. It is also important to have tactile
sensing capability in the soccer robots, because soccer
robots frequently collide with each other, walls or a ballin a soccer field. Furthermore, tactile sensing system
can compensates for limitation of visual sensing. Since
the field of view of the camera mounted on the robot
is limited, if collision between robots or between robot
and wall or ball occurs on the outside of the field ofview, it is difficult to detect these happenings based on
the image information. Tactile sensing system wheretactile sensors are set around the body of soccer robot
is very useful for solving this problem. Since the costof producing a tactile sensing system is generally high,this prevents it being used widely.
Here, we construct a cheap tactile sensing system(See Fig.2) by remodeling a keyboard which is usuallyused as an input device for PC. A keyboard consists of aset of tactile sensors each of which is a ON/OFF switch
called a key. If a key is pressed, the switch is ON. If
not, the switch is OFF. Since we can get a keyboard at
a low price, it is possible to construct this tactile sensing
system for soccer robots at a low cost.
If a tactile sensor (key) hits an object such as a ball oran opponent, the sensor outputs an ASCII code corresponding to the key. In case several sensors have contact
with the other object, an output of this sensing system
is a sequence of ASCII codes.

Figure 2: Our tactile sensors by utilizing a key board.

2.4

Motor Control System

A motor control system is used for driving two DC
motors and is actually an interface board between aportable PC and motors on the chassis of our soccer
robot (see Fig.3). This control board is plugged into aparallel port on the portable PC. Our motor control system manages only the direction of current to a DC motor. The control circuit in this board consists of mainly
4 relays in terms of one motor (see Fig.3). These relays
are used as just like an ON/OFF switch and for controlling the direction of current. This board is powered by
a 7.2 V battery for a R/C model car. As a result, thisboard can sends three control commands to right andleft motors such as “(Forward, Stop, Backward)”. The
motor control command is actually 2 bits binary commands for one motor. Therefore, totally 4 bits (D0D1 or D2 D3 in Fig.3) in the parallel port are used
for transmitting motor commands to the control board.

Since we can send the motor control command to eachof the two motors separately, our soccer robot has 3 subaction primitives, forward, stop and backward in termof one motor. All together, our soccer robot can take 9
action primitives.

Linux has become a cost-effective alternative to expensive UNIX systems. Linux is being used today by hundreds of thousands of people all over the world.
We cannot guarantee user-mode processes to have exact control of timing because of the multi-tasking natureof Linux. Our process might be scheduled out at any
time for anything from about 10 milliseconds to a few
seconds (on a system with very high load). However, formost applications in RoboCup competition so far, thisdoes not seem to really matter. If we want more precise
timing than normal user-mode processes, there is a special kernel RT-Linux that supports hard real time(see[4] for more information on this.).

2.7

Figure 3: Our motor drive board.

Currently, we have developed a vision-based mobile
robot for robotics soccer as shown in Fig.4. As a portable
PC, we have chosen to use a Libretto 60 (Toshiba) whichis small and light-weight PC. The total cost of this soccer robot is about $ 4,800.

In the future, this motor control system must be improved because more precise motion will be required so
as to control our soccer robot in sophisticated way.

2.5

Communication System

System Configuration of Our Soccer Robot

SONY EVI D30NIKKOBLACK BEAST
Tactile sensors

In the soccer game, teammates need to communicate
each other for accomplishing a given task in cooperative
manner. So, we set a wireless LAN device for communication on our soccer robot. The wireless LAN device isactually WaveLAN(AT&T) which can be plugged into a
portable PC. The system operates in 2.4GHz frequency
band. The rate of transmitting data is 2Mbps. The
maximum transmission range will reach several hundred
meters when there is a clear line of sight between thetransmitter and receiver.

Motor Driver
Board
serial port

keyboard
port

parallel port

Libretto 60 /32M

IBM Smart
Capture Card II
WaveLAN/PCMCIA(a)

2.6Intelligent Control System

We call a central controller for processing sensor information and controlling the body of mobile robot andcamera “intelligent control system”. The intelligent control system consists of software, programming environment and OS. In order to adopt an OS as the central
manager of robotic system, the OS should have somecharacteristics as follows:(1) It is possible to run multiple independent processes. (2) It is possible to make aprocess abort or wait for running again. (3) The systemprovides mechanisms for simple and high-speed processsynchronization and communication.
In this work, we have chosen to use Linux OS asan OS for intelligent control system. Linux is a freelydistributable, independent UNIX-like OS. Much of thesoftware available for Linux is developed by the Free
Software Foundation’s GNU project. It supports a wide
range of software, including X Windows, Emacs, TCP/IP
networking (including SLIP/PPP/ISDN). The Linux IPC(Inter-process communication) facilities provide a method
for multiple processes to communicate with one another.

(b)

Figure 4: Our soccer robot.

3

Our Software Architecture

In order to control our hardware systems, we use ashared memory [5] and 5 software components which are
the motor controller, camera controller, tactile sensor
module, vision module and behavior generator. Fig.5
shows an interactions between these software components. Note that this figure shows the software architecture of our current robotic soccer system. All software components read and write the same shared memory. Using this shared memory, they can communicateseach other unsynchronously. We define the structure of
the shared memory as shown in Fig.5. The behavior
generator takes the state of camera, vision, tactile andmotor in the shared memory as input vectors. Then, it
combines these information with programmer’s knowledge and decides the robot’s action at next time step.
Finally, it writes the motor command for the motor controller on the shared memory. In the same way, othersoftware components read states and write commands
in each timing.

3.3

Shared Memory
State:

Motor Controller

Vision:image data;ball(x,y,area,position);goal(x,y,area,position);
Tactile sensor:
key;

Camera Controller

Motor command:action;Camera:pan;tilt;Communication
Controller

Vision Module

Command:
Camera:Tactile Sensor
Modulepan; tilt;

Motor command: action;

Behavior Generation
ModuleFigure 5: Software architecture.

3.1

Motor Controller

We assume that a motor command is defined by anaction primitive and its duration. In our robotic system,
an action consists of a combination of 4 action primitives(move forward, backward, turn left, and turn right) and4 kinds of the duration (100msec, 150msec, 200msec,
300msec). Furthermore, we add one action for kicking aball strongly to the actions. This action is produced by a
combination of “move forward” and 500msec duration.
Totally, our mobile robots can take 17 actions.
Motor controller module reads the command fromthe shared memory every 100msec. If there is a command, it execute the command and rewrite the executedcommand as the state of motor.

3.2

Camera Controller

We can control the on-board camera (SONY EVID30) through RS232C with the VISCA protocol provided by Sony Corp. Using VISCA, we can control
the pan and tilt angle, the focal length of the camera
and take its focus. Furthermore, we can turn on andoff the camera through this protocol. In robotic soccer
task, panning the camera is important action for tracking the objects such as a ball, a goal, teammates andopponents. Since the soccer robots frequently lose theball in the field, they must find the ball again as soon
as possible. We think panning the camera is very usefulin order to realize the procedure for finding a ball called“finding behavior”. We implement the finding behavior
as follows:
repeatRead the state of ball from the shared memory
Make the camera rotate by 30
until the ball is in view

Tactile Sensor Module

Our tactile sensor system is actually a keyboard. Therefore, an output of the sensor system is an ASCII code
corresponding to the key. We can get this ASCII code
via X Event [6] which is a library function of X11 fordetecting all events in X Window system. Our tactile
sensor module maintains a table of ASCII codes andthe configuration of tactile sensors. Each tactile sensor is numbered 1 to 32 so that the left front of tactile
sensor unit might be numbered 1 and the right back 32.
In case a sensor have contact with an object, the sensor module can detect which sensor have contact withthe object using the table that shows corresponding between ASCII codes and the index number of tactile sensors. Then, the tactile sensor module rewrites the index
number of the detected sensor as the state of the tactile
sensor system on the shared memory.

3.4

Vision Module

The vision module provides the information about
the ball and goal in the image. To deal with robotics
soccer task, our robots have to discriminate a ball, goals,
white lines, teammates and opponents. To date, in
RoboCup competition, each soccer robot tried to discriminate such objects based on color information. In
our study, we also use color information for segmenting and tracking objects. On the vision module, we canmake any programs for a color image segmentation andtacking which the programmer wants to perform. As
an example of such image processing program, we introduce the following procedures. First, we constructcolor models of objects which will appear in perceived
images. Using this color models, our robots segment
a color image into several regions which correspond tosome objects. After the color segmentation, we calculate the coordinates of the center of ball and goal position, and the both maximum and minimum horizontal
coordinates of the goal and so on. (See Fig.5.) Then,based on segmented regions, our robots perform visualtracking. Our vision module also discriminates in which
position center of ball or goal appears among three positions (right, center and left of an image).
3.4.1

Construction of Color Model for Segmentation
In order to make initial color models for some objects,
we use the competitive learning algorithm called rival
penalized competitive learning (RPCL) [7] which can automatically find out the number of classes in the sample
data. After this learning, we use discovered classes ascolor models for objects. We briefly explain the procedure of RPCL according to [7]. RPCL algorithm repeats
the following two steps until the prototype vectors converge on constant vectors.
STEP1: Randomly take a sample x = (x1 , x2, · · · , xk )from a data set. Let wi = (wi1 , wi2, · · · , wik ) be a prototype vector (i = 1 ∼, N ). Then, calculate a parameterui defined as follows:1,
if i = c such thatγc d(x, wc) = minj γj d(x, wj )
−1, if i = r such thatui =γr d(x, wr ) = minj6=c γj d(x, wj )0,otherwise.
Pk
where γj = nj / i=1 ni and ni is the cumulative number of the occurrences of ui = 1. d(x, w) denotes a
distance between x and w. Generally, d(x, w i ) = ||x −Pk
w i ||2 = j=1 |xj − wij |2 . Moreover, wc and wr denote the winner vector which wins the competition foradapting to the input vector and the second winner vector called “rival”, respectively.
STEP2:Update the prototype vector wi by
ifui = 1 αc (x − wi )−αr (x − wi ) ifui = −1
∆wi =

0
otherwise.
where 0 ≤ αc, αr ≤ 1 are the learning rates for thewinner and rival vector, respectively.
Fig. 6 shows examples of an image captured by
SCCII and segmented image based on our method. Although the size of a captured image is 320 × 240 pixels,
we shrink it so as to reduce computational cost of CPU
on a portable PC. Actually, the size of a processed image
is 80 × 60 pixels. As shown in Fig. 6 (b), our color segmentation algorithm succeeds in extracting a red ball, ayellow goal, green field (ground), white line, and whitewall. Currently, it takes about 230 msec (about 4Hz)
for one cycle of this procedure in case N = 57.

(a)

(b)

Figure 6: A example of processed images taken by the
robots
3.4.2

Simple Color-Based Tracking

Our simple tracking method is based on tracking regionswith similar color information from frame to frame. We
assume the existence of the color models (CMball , CMgoal )for tracking targets, which are estimated at initialization. We use 3-dimensional normal distribution modelof object’s RGB value (C ball and C goal ) as (CMball andCMgoal ). Actually, these models are represented by ellipsoids. Each ellipsoid can be described
P−1
CMtarget : (C − C target )T target (C − C target ) = k(1)

where, CPtarget is prototype vector RGB value for a target andis its covariance matrix. These can be computed at initial estimation process. Now, let p∗ be aprobability that a sample data C which is RGB value
at a pixel is included in this ellipsoid. Since the left sideof Eq. 1 obeys chi-square (χ2 ) distribution for threedegree of freedom, generally, we can compute this probability function using the incomplete gamma function.
Therefore, if we set p∗ to be a value, we can determine
k in Eq. 1.
We define a fitness function Φtarget (x, y) at a pixel(x, y) as a criterion for extracting a target region in theimage,

1 C(x, y) ∈ CM target
Φtarget (x, y) =0 Otherwise,where C(x, y) and CM target show a RGB value at(x, y) and a color model for a target represented by an ellipsoid, respectively. In our current implementation, we
set p∗ = 0.9. Based on Φtarget (x, y), the best estimate(x̂target , ŷtarget ) for the target’s location is calculated asfollows:P(x ,y )∈R xi Φtarget (xi , yi )Pi i,x̂target =(xi ,yi )∈R Φtarget (xi , yi )P
(x ,y )∈R yi Φtarget (xi , yi )Pi i,ŷtarget =(xi ,yi )∈R Φtarget (xi , yi )where R shows the search area. Initially, R implies anentire image plane. After initial estimation for the location of the target, we can know the standard deviations
σ(x̂target ) and σ(ŷtarget ) regarding (x̂target , ŷtarget ). Therefore, based on the deviations, R is restricted to a local
region during the tracking process as follows:
R : {(x, y)|x̂target − 2.5σ(x̂target) ≤ x ≤ x̂target + 2.5σ(x̂target),ŷtarget − 2.5σ(ŷtarget ) ≤ y ≤ ŷtarget + 2.5σ(ŷtarget )}.
P(xi ,yi )∈R Φtarget (xi , yi ) shows the area of the target in
the image. Based on this value, we judge the appearanceof the target. If this value is lower than the pre-defined
threshold, the target is considered to be lost, then R is
set to be the entire image plane for estimation at nexttime step. We set this threshold for the target area
= 0.05 ∗ S, where S shows the area of the entire image.
This process helps to reduce the computational cost for
extracting regions with similar color.

3.5

Behavior generator

The behavior generator decides the robot’s behavior
such as avoiding a wall (called avoiding behavior) or
shooting a ball into a goal (called shooting behavior).
3.5.1

Avoiding behavior

We implemented avoiding behavior so that the robot
might avoid a wall using tactile sensors. We divided 32

tactile sensors into 4 groups ;a(1 · · · 8): left front, b(9 · · · 16): right front,c(17 · · · 24):left back, d(25 · · · 32):light back
Avoiding behavior is implemented as follows:
Read the state of tactile sensor
from the shared memory
switch(position)
a: move backward and turn rightb: move backward and turn left
c: move forward and turn rightd: move forward and turn left
This behavior has top priority over all other behaviors. As a result, whenever the robot collides with anobject, it always avoids it.
3.5.2

Shooting behaviord ← the direction of the goal
switch(d)right: clockwise round the ballwith the camera toward the ballleft: counterclockwise round the ballwith the camera toward the ball
if the robot can see both ball and goal then stop4)Turn the body of the robot toward the ball5)Kick the ball strongly

4

Discussion

In this paper, we described how to construct a cheap
on-board vision mobile robot system which consists ofmainly made from a state-of-the-art portable PC anda battery-powered R/C model car. Since these components are commercially available, we showed that we canconstruct the total system at comparative low cost. Our
robot system might be used as a personal robot which
can be used at home since its price would be low and its
performance would be high. In order to evaluate thisrobot system, we will investigate how fast image processing can be realized on this system and how motion
control can be performed.
Now, we use this vision-based mobile robot as a standard platform for robotics soccer research. In the future,
we will aim to realize• robust behavior based on sensor fusion between
visual and tactile information, and• cooperative behavior with other robots.

References[1] H. Kitano, M. Tambe, Peter Stone, and et.al. “The
RoboCup Synthetic Agent Challenge 97”. In Proc.
of The First International Workshop on RoboCup,
pages 45–50, 1997.
[2] M. Asada, Y. Kuniyoshi, A. Drogoul, and et.al.
“The RoboCup Physical Agent Challenge:Phase
I(Draft)”. In Proc. of The First International Workshop on RoboCup, pages 51–56, 1997.
Figure 7: Shooting behavior. (1):Approach the ball.
(2),(3),(4):Round the ball. (5),(6):Kick the ball.

[3] Inc.
Nomadic
Technologies.
http://www.robots.com/robotdiv.html.
[4] RT-Linux. http://luz.cs.nmt.edu/~rtlinux .

We make a simple strategy for shooting the ball into
the goal. To shoot the ball to the goal, it is importantthat the robot can see both ball and goal. Therefore,
the robot must round the ball until the robot can see
both ball and goal with the camera toward the ball. Finally, the robot kicks the ball strongly. Fig.7 shows theshooting behavior. The concrete procedure of shooting
behavior is follows:
1)Find the ball2)Approach the ball
While approaching the ball
if the area of the ball > 20 then stop3)Round the ball[5] W. Richard Stevens. UNIX NETWORK PROGRAMMING. Prentice Hall, Inc., 1990.
[6] Adrian Nye. Xlib programming manual : for version X11 of the X Window System, 3rd ed. O’Reilly,
1992.
[7] L. Xu, A. Krzyzak, and E. Oja. “Rival Penalized
Competitive Learning for Clustering Analysis, RBF
Net, and Curve Detection”. IEEE Trans. on Neural
Networks, 4:4:636–649, 1993.