Professional Documents
Culture Documents
IIT Kharagpur
Editors :
Kaustubh Tripathi
(Department of Computer Science
and Engineering)
Sanjiban Choudhury
(Department of Electrical
Engineering)
1
Foreword
RoboCup Challenge @ India 2009 will be India’s christening in the field of soccer
robotics. With the start of this event, we begin treading on the road to an advanced AI and
robotics platform that very few countries enjoy the luxury of. The efforts of the elite teams in
India, which are published in this journal, are of surprisingly sophisticated nature given this is
the inaugural year of this event.
Over the last few years, even though robotics competitions in the country have been
escalating – both in numbers as well as in difficulty – they are still a step back from matching
the standards of the leading research institutions in the world. With the advent of
RoboCup, the struggle to match the “state of the art” levels has already begun. The soul of
the research is embodied in the development of multi-agent dynamic systems with
coordination and cooperation models.
RoboCupTM (Originally called as Robot World Cup Initiative) is an international
research and education initiative. It is driven by the initiative :
To promote the same spirit of research, IIT Kharagpur is hosting a “related event” in
association with the Federation. In the inaugural year, we are adopting two of the standard
events – Small Sized League and Soccer Simulation League.
This year we had the pleasure of reviewing a vista of work with several innovative
aspects. The work not only displayed fantastic implementation of age old algorithms, it also
encompasses several intelligent and inspiring solutions faced by the participants. We were
overwhelmed by how the technical entry barriers into events of such magnitude were
overcome. If we were to compare our start to the beginnings of well established RoboCup
giants around the world, our start with the latest platforms of omni-drives and advanced
strategy is truly remarkable.
This year’s effort has truly set up the platform for really exciting research to grow in
the coming years. Whether it be the usage of more sophisticated motors or of faster and more
robust communication platform, there is an expectation that standards would further escalate
next year. There is also an expectation of teams undertaking advanced topics such as game
theories or evolutionary algorithms to create a more involved competition.
The following proceeding entails the team effort in both the leagues. We hope this
serves as a good guideline for teams hoping to succeed in coming years. In conclusion, we
express our excitement at this year’s participation and hope that more colleges take this up as
a serious international level research.
Editors:
Kaustubh Tripathi
Sanjiban Choudhury
2
From the Federation’s desk
RoboCup is an international initiative, with the goal of fostering artificial intelligence
(AI) and robotics research and education by providing standard problems for which
solution a wide range of technologies can be integrated and tested. The original
standard problem was robot soccer. The concept of soccer-playing robots was
introduced in 1993, aiming at launching new challenges for AI and robotics,
concerning the coordination of robot teams, whose members cooperate to handle
highly dynamic and adversarial environments. Different RoboCup Soccer leagues
were created, so as to tackle different research topics, from robot control to task
planning. Over the years, new problems and leagues were introduced: RoboCup
Rescue, RoboCup@Home, extending the concept of cooperative robots to
cooperation with humans. RoboCup Junior was also launched in 2000, targeting high
school students, so as to attract them for Science and Technology through Robotics.
The first official RoboCup World Championship games and conference were held in
1997 at Nagoya, Japan with great success. Since then, the event has travelled across
continents and has grown substantially, up to more than 2,000.00 participants from 40
countries this year in Graz, Austria. Simultaneously, large regional events, such as
German Open, Japan Open, US Open or Iran Open, take place every year.
Smaller local events are also growing every year, and represent enormous
opportunities to spread the RoboCup concept and goals to more and more countries
worldwide. RoboCup Challenge @ India 2009 is such an event, bringing RoboCup to
India, one of the largest countries in the World, and certainly the home of great
technological and scientific innovation – in other words, the perfect country for
RoboCup!
On behalf of the RoboCup Federation, I would like to thank all the organizers from
the Indian Institute of Technology, Kharagpur for taking such an initiative, namely
the General Chair and Event Organizer, Prof. Sudeshna Sarkar and the General Co-
Chair, Prof. Jayanta Mukhopadhyay, from the Department of Computer Science and
Engineering. As the former General Chair of RoboCup 2004, I know well the effort
involved in such organizations, but I am also aware of the return brought by such an
effort. I hope and expect that this will be the first step towards bringing RoboCup to
India.
A special word for Mr. Aamir Ahmad, the responsible person for the event, and the
one who actually dreamed about bringing it to Kharagpur in the first place. Great
achievements start with dreams like this, and I would like to congratulate Aamir and
wish him all the best in his future efforts to promote Robotics, particularly RoboCup,
in India, with his enthusiasm and energy.
Pedro U. Lima
(RoboCup Federation Trustee,
Associate Professor at Instituto Superior Técnico, TU Lisbon, Portugal)
3
Contents
5. Acknowledgement 36
4
Introduction to Small Sized
League
5
KGPTigers 2009 Team Description
K.Tripathi1, S. Choudhury2, B. Sarkar 3, K. Bairagi4, N. Kumar5 , S.Desai6
1,3,5
Department of Computer Science and Engineering
2
Department of Electrical Engineering
4
Department of Electronics and Electrical Communication Engineering
6
Department of Biotechnology
Indian Institute of Technology, Kharagpur
Kharagpur – 721302, India
1
kaustubh.iitkgp@gmail.com
2
sanjiban.choudhury@gmail.com
3
bittusrk@gmail.com
4
kinshuk.1989@gmail.com
5
naveeninkgp@gmail.com
6
sompod.daddy@gmail.com
Abstract— In this paper we present the overview distortion in both the cameras. So before calibration
of KGPTigers team, our entry for RoboCup these images we remove the radial distortion in
Small-Sized League in RoboCup Challenge @ both the acquired images.
India 2009. Since this is the first entry for our
team, the whole infrastructure is discussed. In The camera interface communicates with the
addition to implementing existing algorithms, strategy interface using a UDP connection. The
the paper introduces original design and camera interface sends the information about the
solutions to problems faced along the way. A coloured regions detected after thresholding. The
summary of the vision, hardware and strategy is strategy interface then creates an environment
also discussed. using the received information and decides on the
actions to be taken by various robots.
Keywords — RoboCup, KGPTigers, SSL Team
Description, Multi-agent differential drive The strategy interface is also connected to the
systems. Referee Box to receive commands from the referee
about the state of play.
6
This solenoid was mounted on top of the robot and
on being activated pushed an aluminium frame.
The schematic is as shown in figure 4.
ܮ
frame.
ݒ = ൬ ൰ ∗ ݒ௦ௗ
݈ଵ
where ≅ ܮ3 ∗ ݈_1 creating a high speed for the
ball.
7
A. Prediction of the world model increasing dimensions. Also these algorithms are
incremental in nature allowing robot specific
The frame rate after visual segmentation drops to constraints to be encoded in the algorithm.
an average of 2 fps. This rate isn’t fast enough for Specifically we modify the ERRT [3] (Extended
the corrective feedback required to keep robot Rapidly-exploring Random Trees) algorithm which
following designated path. Moreover, a certainly had a very good success rate. To implement the
positional uncertainty is associated with the robot algorithm a KD tree was used with bi-directional
and the ball. During calculation of angles of robots, searching.
both uncertainties couple and the standard
deviation of error increases. function RRTPlan (env:environment, initial:state,
We thus use Kalman Filters [7] for prediction of goal:state):rrt-tree
the world model and to remove positional var nearest, extended, target:state;
uncertainties as much as possible. For the ball var tree:rrt-tree;
model, a simple linear Kalman filter is used as nearest := initial;
shown rrt-tree := initial;
ݔ
while(Distance (nearest, goal) <
ݕ
ܺ = ൦ݔሶ ൪
threshold)
target = ChooseTarget (goal);
ݕሶ
nearest = Nearest (tree, target);
extended = Extend (env,
(1) nearest,target);
if (extended != EmptyState) then
Since the robot is a differential drive, it is better AddNode (tree,
modelled by extended Kalman filters since its extended);
motion is non-linear. The state space model for the return tree;
robot is
ݔ
function ChooseTarget(goal:state):state
ݕ
ܺ௧ = ൦ ൪
var p:real;
ߠ
var i:integer;
ߠሶ
p = UniformRandom in [0.0 .. 1.0];
i = UniformRandom in [0 ..
(2) NumWayPoints-1];
if (0 < p < GoalProb) then
The filters have several advantages – return goal;
1. Given a time stamp, the postion of the ball else if (GoalProb < p <
and the bot can be predicted. GoalProb+WayPointProb) then
2. The filter can be tuned to converge faster return WayPointCache[i];
at the same time tolerating greater error by else if (GoalProb+WayPointProb < p < 1)
increasing the process noise. then
3. Occlusions may occur in the image return RandomState();
processing where certain frames may miss
the robot, which can be handled by the function Nearest (tree:rrt-tree,target:state):state
Kalman filter. var nearest:state;
nearest := EmptyState;
B. Real time path planning for each state s in current-tree
if (Distance (s,target) < Distance
The path planning is treated as a black box module (nearest,target)) then
whose input is the initial and final configuration nearest := s;
and output is expected to be the series of return nearest;
intermediate states to reach the configuration
respecting constraints. The condition also demands Table x: The outlay of the ERRT approach to path
that the module be a “hard real time system”; planning.
failure to output the path within a given interval T
would mean complete failure. Other issues are state This algorithm was primarily meant for omni-
discretizations, efficiency v/s accuracy trade-off directional robots which have less constraints than
and respecting kinematical constraints. the differential drives that we used. Hence, the
We adopt the method of RRT [3] (Rapidly- following improvements were applied by us –
exploring Random Trees) as a basis for out path
planning. The ingenuity of the method lies in the 1) Generated path must be smooth –
fact that it doesn’t delve into state discretization Differential drives have a limitation in their
and thus prevents the explosion of nodes with
8
kinematics when it comes to changing the heading a far less optimal path around both obstacles will
of their movements. As a result, we approach the be tried. In such cases, the radii is reduced just
issue of turning with the dual aspect of stopping enough to squeeze an opening through the
completely and turning, as well as turning while obstacles.
moving maintaining a fairly large radius of
curvature so the centripetal force is not enough to
topple the robot. Thus we modify the algorithm for
Extend() function as follows:
function Extend(env, nearest, target,
overwrite_flag):state
var extended_node:state;
if(nearest==start && target==goal ||
overwrite_flag == 1 ) then
extended_node :=
Create_node(nearest, unit_dist, angle(nearest,
target));
else if(angle(nearest,target) >
thresh_angle) then
extended_node :=
Create_node(nearest,unit_dist, thresh_angle); Figure 6. Screenshot of the path planner GUI
else
extended_node := The above screenshot shows in red the planned
Create_node(nearest, unit_dist, angle(nearest, path of each robot, as well as the orange ball at the
target)); centre. The coloured rings around the robots
represent the safety radii, the colour standing for
return extended_node;
the perspective of the particular robot.
The above modification results in smoother MAPS (Multi-Agent Planning System) is a method
trajectories and drastic turn only in the cases to face of controlling multiple robots in a highly dynamic
the ball or when triggered by a flag. This flag is environment like Robocup. It uses Potential fields
triggered under time constraints as explained later to create a high-level abstract representation of the
on. robot’s environment at a particular point of time.
From these fields obtained, strategic commands are
2) Implementation of hard real time system – The path sent to each robot like ‘Kick the ball to a good
planner has to return any solution within a time T. position’ or ‘Run to a good position’. [5]
So after time T/2, it activates a drastic flag which We use MAPS to plan strategies only during
demands any non-smooth trajectory to take itself ‘normal’ course of the play. Under extreme cases
out of deadlock situations. After tine T, the nearest of defensive and offensive plays we leave aside
state to goal is taken and that series of paths is MAPS and greedily decide the course of action.
chosen. The actions of the goalie are not determined by
MAPS.
3) Improving search speed by introducing a 3rd
dimension to KD tree – The current search method The classical MAPS algorithm:
used a 2-dimensional KD tree for faster searching.
We also introduce a 3rd dimension sorted according Update robot and ball coordinates from vision
to heading so that we can find the point closest in system
heading to the previous point Build a field to determine robot actions
for each robot
4) Dynamic radii change of safety circles – Obstacle if the robot is best to kick the ball
collision is prevented by generating a safety circle Build a ‘kick to’ working field
around each bots which has a radius of Send ‘kick to’ command and coordinates
2*bot_diameter. While this results in trajectories to robot
well away from each other, sometimes a robot else if we are in control of the ball
needs to pass through the gap between two bots. If Build an attacking ‘go to’ field
the gap is feasible enough, but less than else
4*bot_diameter, the path will not be generated and Build a defensive ‘go to’ field
9
Send ‘go to’ command and coordinates to Defending in extreme situations: When an
robot opponent is very close to our goal, the closest
end teammate goes for the ball and others get in the
way of the attacker and the goal to prevent a goal
from being conceded.
1) MAPS Implementation
∆ = ߠଵ − ߠଶ
is obstructed. This helps the players to go
to a better position to receive the ball and (1)
(i) Kick To Field: All the above fields except ݒ = ݒሺ ݐ+ ݎሻ (3)
speed by ݒ.
(ii) Go To Field: All of the above fields are The above set of equations bound any wheel’s
built and added together. For an attacking
Go To field, the opposition goal is
considered for the Clear Path to Goal Field IV. CONCLUSIONS
and the lowest point is chosen. It’s the
reverse in case of a defensive Go To field. In the coming years we will work to improve the
present system drastically. Working in this fast
Attacking in extreme situations: When very close real-time environment has given us an idea of the
to the opponent goal, a shooting situation is speed and desired robustness.
checked for existence. If it is the ‘Kick To’ field From the hardware’s perspective, new omni-
commands to shoot the ball at the opponent goal. If directional robots with intelligent controllers will
it isn’t MAPS takes over the decision making. be manufactured.
10
The vision system would be more robust, with
dynamic localisation techniques and adaptive
thresholding.
The strategy system will be made completely
intelligent through training environments and
neuro-fuzzy controllers. Also at an higher level,
game theory will be incorporated to model
opponent tactics.
ACKNOWLEDGMENT
We would like to thank the Department of
Computer Science and Engineering for the
immense help and advice in this area. Without their
aid, procurement and organization of the project
would have been impossible.
We would also like to thank all concerned
professors – Prof J. Mukhopadhya, Prof S.Sarkar,
Prof D.K.Pratihar and Prof G.Harit for their
invaluable advice.
REFERENCES
[1] Bruce, J., Balch, T., Veloso, M.: Fast color image
segmentation for interactive robots. In: Proceedings of the
IEEE Conference on Intelligent Robots and Systems,
Japan (2000)
[2] Bruce, J., Veloso, M.: Fast and accurate vision-based
pattern detection and identification. In: Proceedings of the
IEEE International Conference on Robotics and
Automation, Taiwan (May 2003)
[3] Bruce, J.R., Veloso, M.: Real-time randomized path
planning for robot navigation. In: Proceedings of the
IEEE Conference on Intelligent Robots and Systems.
(2002)
[4] Akiyama, J: Adapting the multi-agent planning system
for Robocup Simulation. In: University of Queensland,
Bachelor thesis.
[5] Tews, A, Wyeth, G: MAPS: a system for multi-agent
coordination. In: Advanced Robotics, Vol. 14, No. 1, pp.
37–50 (2000)
[6] Bowling, M, Veloso, M. Motion Control in CMUnited-
98. In Proceedings of IJCAI-99 Workshop on RoboCup,
pp. 52–56, 1999
[7] Kalman, R. E. 1960. “A New Approach to Linear
Filtering and Prediction Problems,” Transaction of the
ASME—Journal of Basic Engineering”, pp. 35-45
(March 1960).
11
RoboCup Team SSL Description, IRL RC
B. Sujith Kumar1, P.S. Abhimanyu2, P. Naga Satish3, Ch. Abhishek4,
B.V.V.P. Bhargav5, N.Venkat Abilash Reddy6
Department of Electronics and Communication Engineering,
International Institute of Information Technology,
Hyderabad, India.
1
sujithkumar@students.iiit.ac.in
2
abhimanyu_p@students.iiit.ac.in
3
satish_pn@stdents.iiit.ac.in
4
chabhishek@students.iiit.ac.in
5
bvvp_bhargav@students.iiit.ac.in
6
abilashreddy@students.iiit.ac.in
I. INTRODUCTION
Robotics is an area where many technologies and fields can
be merged. It also develops the ability to solve real time
problems. In this paper we explain about our robotic system
and our plans to participate in RoboCup2009, India. Fig. 1 CAD of IRL RC Omni Directional Bot
This is the first time national wide RoboCup being held in
India. So, we formed a good team with very interested people
in Robotics.
This paper is organized as follows: Section II describes the
mechanical system of the robot. Section III describes the
electrical and electronic elements involved. Section IV
describes the software system focusing on two important parts
namely the vision system and the decision system. Section V
is about the drawbacks of our very first attempt. Section VI
deals with our future plans to participate in the next RoboCups.
12
Fig. 3 Horizontal Cross Section of IRL RC Robot
Fig. 5 IRL RC Central Controller
13
B. Decision System VII. CONCLUSION
The decision system receives the information, described We’ve done all the basic parts needed to participate the
above, from the vision system and sends appropriate competition. Some of the ideas belong to us and some of the
commands to the robots wirelessly. ideas are adopted from the international teams. Major part of
Our decision system along with the controlling of the on the control systems and algorithm parts are developed from
filed bots is divided into four layers. The bottom layer, layer 1, the knowledge we’ve gained from the courses: Embedded
consists of sending particular control commands, like Robotics, Mobile Robotics, Intro to Robotics, Linear Control
frequency of the stepper motor steps, to the bots using serial Systems, Electro Magnetic Theory, Electronic Workshop,
communication and the XBee devices. Next level layer, layer Computer Vision etc., offered in our institute. We are also
2, uses the layer 1 and sends particular control commands like thinking of implementing Neural Network algorithms on our
setting the wheel velocities independently. Layer 3 consists of next generation robots.
commands which are used to move the robot at a particular
speed in a particular direction with particular angular velocity REFERENCES
about its center. The strategic part is in Layer 4. The [1] Shichi Shimizu, Tomoyuki Nagahashi, and Hironobu Fujiyoshi,
advantage of doing this is that even if we change the robot’s “Robust and Accurate Detection of Object Orientation and ID without
Color Segmentation”.
type (differential drive or omni directional) we have to change Oliver Purwin, Raffaello D’Andrea, “Trajectory generation and control
only the Layer 1 while the remaining layers will remain intact. for four wheeled omni directional vehicles”, Robotics and Autonomous
Systems 54 (2006) 13–22.
V. DRAWBACKS [2] Robert L. Williams, II, Member, IEEE, Brian E. Carter, Paolo Gallina,
and Giulio Rosati, “Dynamic Model With Slip for Wheeled
We are using stepper motors to have a better performance Omnidirectional Robots”, IEEE TRANSACTIONS ON ROBOTICS
in terms of controlling the speed of a wheel. The steppers AND AUTOMATION, VOL. 18, NO. 3, JUNE 2002.
motors run in steps because of which they create vibrations [3] Maxstream XBee module user manual. [Online]. Available:
http://www.johnhenryshammer.com/TEChREF/xbeePage/series2/prod
which combine with the vibrations produced by the Sweedish
uct-manual_XBee_Series2_OEM_RF-Modules_ZigBee.pdf
wheels. Also, torque of the stepper motors decreases with [4] http://robocup.mi.fu-berlin.de/pmwiki/pmwiki.php
increasing speed. It decreases with larger slope after a cut off [5] http://wiki.robojackets.org/index.php/RoboCup
speed than before the cut off. Because of the vibrations and
decreasing torque we are not able to get precise control over
the robot’s locomotion.
Because of the limitations in the number of timers/counters
in ATMega16, the discrete speed values given to the motors
are very less in number with which we are not able to use any
control theory.
Because of the lack of resources, we are not able to use a
good and robust kicking device.
14
LES INVINCIBLES
TEAM DESCRIPTION FOR ROBOCUP 2009
S.Amar Nath#1, Aditya Swaroop Joshi#2, Akshay S Fadnis#3,
Atul Khardekar#4, Anil Kumar Sistla#5
#
Department Of Electronics and Communication Engineering, CVR College Of Engineering
#
Department Of Electronics and Instrumentation Engineering, CVR College Of Engineering
1
amar@ielectron.com
2
aditya2303@gmail.com
3
akshaysukumarfadnis@gmail.com
4
atulkhardekar@gmail.com
5
mrcool.anil@gmail.com
15
3.8 Kg. Our robots can carry out different strategies with ease We took a leaf out of the book of The World Champions
given their builds as well as carry out very successfully Team PLASMA-Z and developed a simple motor based
counter offense as well as defensive manoeuvres against dribbling axle with a groove on it in order to make the ball
opponents, and interrupt their plays effectively. Our Achilles roll into the grooved shape which makes the ball stay put for a
Heel though this year may undoubtedly prove to be our very short instant in the center of the robot which would
kicking mechanism which only uses a motor which is made to enable accurate kicking. Simple yet lethal, this system is very
rotate at a maximum angle of 22.5 degrees at various effective since it presses the ball against its own weight.
Pulse width modulated speeds. We are working on building a .
better kicking system currently using a lock-and-load 3 Electrical System
mechanism through springs and a motor. The major components are the processing module, the
Our Electronic circuitry is a minimalists dream owing to motor driving
efforts put in to use components which would justify their Module and the wireless communication module.
usage rather than those which would sound highly technical
but seldom justify the rather time consuming routines put into The Express PCB Drawings of the respective circuits are
understanding their usage. affixed below,
16
THE MOTOR CONTROLLER MODULE ON EACH ROBOT (TWO managed to come up with a simple yet elegant Electronic
WERE USED ON EACH ROBOT,ONE FOR THE STEERING OF THE design.
VEHICLE, THE OTHER FOR THE KICKING AND DRIBBLING
DEVICES) Each robot consisted of a 434 MHz transmitter and receiver
pair which could manage a data rate of 4800bps (Around 600
Bytes Per Second).This data rate had to be effectively halved
as, in order to manage reliable communication, we used a
slightly less computationally expensive version of Manchester
Encoding which used alternate odd byte encoding2 which
enabled a practically usable data rate of around 280 Bytes per
Second which was just about enough. More on this will be
disclosed in the Software section. We used the help of our old
Ally an L293D H-Bridge with a subtle twist though, to
develop a motor controller which provides unique BACK
EMF1 inputs provided back to the ADC Inputs of the
microcontroller on the wireless communication board through
simple resistive voltage dividers in order to scale the voltage
to a range which the ADC onboard the microcontroller could
read.
A RF-Server like implementation was provided to
enable wireless communication between the Host PC with
circuitry closely matched to that of the wireless
communication on each robot with the exception of the
addition of a RS232-TTL adapter. The MCU program written
THE RF SERVER CIRCUIT CONNECTED TO THE HOST PC for that circuit was a simple stack based State machine which
THROUGH A RS232-TTL ADAPTER (SOFTWARE BASED UART sent designated commands from the Host Application On the
WAS EMPLOYED FOR THE SERIAL INTERFACE AND HARDWARE PC to the robot soccer players through Manchester Encoding
UART WAS USED FOR THE RF MODULES) and player addressing in a Round-Robin Interrupt driven
fashion.
4 SOFTWARE SECTION:
I) Vision System
In this system we used 2 Microsoft USB based lifecam
cameras for capturing the soccer field, then sent the images to
the vision computer for processing. Subsequently, detection
of the position of our robots, the opponent robots, and the ball
was carried out. This filtered data was condensed and packed
into a “Color,Centroid coordinates” string and then was sent
to an another application through UDP which managed the AI
part.
17
=> Image Processing:
18
The steps in the vision part can be summarized as follows:
“PLAYER_ID,LEFTMOTOR_MOTION_SIGN,RIGHT_
MOTOR_MOTION_SIGN,KICK_MOTOR_MOTION_S
IGN,DRIIBLING_MOTOR_MOTION_SIGN,
LEFTMOTORPWMVALUE,RIGHTMOTORPWMVALU
E KICKMOTORPWMVALUE ,
DRIBBLINGMOTORPWMVALUE “ style packet.
19
Our elementary block diagram can be shown as follows i. The support spot calculator doesn’t
find any near players who are at an
equally favourable(as in distance )
from the current player as well as
the ball
ii. The next transition of the
movement vector results in a
threatened case again
A. References
1. David Hygh’s Back Emf Article:
http://frontrangerobotics.org/PIDbackEMF/DavesBEMFmotor
Article.htm
The reason for separation of a Team into distinct 2. An Alternative variant Of Manchester Encoding:
players can be summarized as follows: http://www.ottawarobotics.org/articles/rf/rf_article.pdf
-Written by Aaron Ramsey
• Each player is a Node in a Hierarchical Tree Graph (aaron@bottle rocket.org)
having two branches for two distinct cases 0-Not 3. James Bruce’s thesis on CMVision:
Threatened 1-Threatened. Each case leading to an other http://www2.cs.cmu.edu/jbruce/cmvision/papers/JBT
Node ie a player as defined in the strategy lookup table hesis00.pdf
defined in a file strategy.txt which takes the help of a 4. "Run Length Encoding" by Arturo San Emeterio
predefined formation Campos :
• The AI module uses a support spot calculator to http://www.arturocampos.com/ac_rle.html
determine the nearest node(player) to the current node 5. Springer - Embedded Robotics, 2nd Edition-By Thomas
and then sends two commands simultaneously to the Bräunl
two nearest nodes(here, nearest as in distance from the 6. Microchip’s Application Note On Back Emf based
ball not from the current player) Sensorless motion control:
• The first command sends any of the two players to a htp://ww1.microchip.com/downloads/en/AppNotes/00893a.
position determined using a Kalman Filter which would pdf
determine the balls future position given that the
velocity vector of the kick of the current node (player) 6 Conclusions
as well as the trajectory of the ball is known. After countless hours of coding,testing,debugging and well
• The other command sends the other player to a “fail- more debugging, we have come to a conclusion that this
safe” position as in a through ball assisted maneuver at competition is not for the faint hearted and hence we have put
a Gaussian calculated position which lies between in the best of our abilities in order to be a worthy adversary to
[x1, y1]-[x2.y2] where [x1,y1] are the coordinates of our opponents as well as gain some insight into this
the ball and [x2,y2] are the coordinates of the goal. The fascinating multi-agent research based venture encountering
above iterations from node to node as in the current many and we mean many problems along the way and finding
node instance occur as defined in strategy.txt based on some good solutions for some of them though we do plan to
the weights(Threatened-Not Threatened ) with each tackle them all later in the near future. The experience we
‘strategy’ ending when a goal counter is updated. Each gained results in the improvement of our team in a positive
‘Strategy’ is cycled through if it is not ‘implemented direction. We plan to make this in our own words
successfully’ (ie goalcounter=0 for a n maximum no of
Strategy no-X iteration (We took n=3). “A Small Step in multi-agent Research. A
Giant Leap in cognitive Robotics”.
20
ACKNOWLEDGMENT
• The Management Of CVR College Of Engineering.
• Ashish K.Sahani & Omkar C.Kulkarni for their invaluable advice
and helping us in getting the basics right.
• Our Families for bearing those torrid long nights of debugging.
• Last But Not the Least,,the people at IIT-KGP for attending to our
rather cumbersome calls without letting out the slightest frown.
21
FootBots Team Description
Kartik Mohta, Pratik Chaudhari, Simit Pradhan,
Siraj Issani, Vishal Prabhu
kartikmohta@gmail.com
Kodihalli, Bangalore - 560 008
Abstract—This paper describes FootBots, our entry for the III. S TRATEGY
Small Size League Robosoccer at RoboCup Challenge India 2009.
Strategy selection cannot be a set of pre-defined rules due
to nature of this problem. We have used a hierarchical system
I. I NTRODUCTION that generates overall strategies as well as individual robot
Our team entry consists of multiple differential drive robots commands for these strategies. It is based upon the STP
controlled by an off-board computer. The sensing is provided structure as described in Browning et. al. [1,2] . Note that the
by two cameras mounted over the arena. The software takes following section only deals with the strategies used for the
the images from the cameras, calculates the robot commands playing robots i.e. excluding the goal-keeper, the strategy
and sends them to the individual robots. for which is separately evaluated by looking at the current
II. V ISION positions of the robots and the ball. This is done so to simplify
the strategy. It handicaps the defence however in the sense that
We use the OpenCV library for image processing. Input
there is no relation between the movements of the defence
is taken as a video stream from the two cameras in order
robots and the goalie.
to cover the whole arena and the frames are merged. These
frames are processed to get the positions of the robots and
the ball on the field. RGB images are first converted to the Camera
HSV colour-space in order to make the detections more robust
against variations in the lighting conditions. Segmentation of
the image is done using pre-defined ranges for colors in the
blobslib module of OpenCV. This results in blobs of different
Vision
colors corresponding to the colors of the robots on a black
background which is the field. The final step is to convert
the pixel values accurately to actual distances for which we
calibrate the camera before hand. Note that this is the only
source of robot position in the current implementation. World
Camera 1 Camera 2
Strategy Plays Tactics
Merge
Robot
HSV Conversion
A. World
Blob Detection
As mentioned earlier, the Vision module is responsible for
generating the positions of all the objects on the field. This
includes the ball, the opponent robots, and the team robots. For
Output taking decisions regarding the strategy, we would ideally need
the velocities and positions of all the entities on the playing
field. However, extracting the velocity of the opponent robots
Figure 1. Image processing pipeline is a difficult task (without identifying them individually). If
we decide to track a particular blob to get the velocity, small
22
incidents like occlusion or mis-detection of the same blob in remaining. Offense, Defense, Penalty etc. are the different
consecutive frames can cause huge errors in the perceived types of strategies. There is a small hysteresis included in the
velocity. Hence, in the current implementation we rely only implementation of the Offense and Defense part. This helps to
upon the knowledge of the positions of all the opponents. avoid rapid switching of strategy as the ball crosses the center
The strategy part of course knows the velocities assigned line of the field.
to each team robot and its current direction. These velocities We have used the Epsilon Decreasing Solution to the
are used in the decision making process. Thus the positions of Multi Armed Bandit problem to select the current play from
objects from the vision module and commanded velocities of a set of pre-defined plays which are applicable for the current
teammates along with their commanded orientations together chosen strategy. It mimics the behavior of a person when faced
form the input to the world. It is the job of this module to keep with a number of choices with no pre-determined outcomes.
track of all these these things along with their time stamps to At the initial stages of the game, we choose the plays randomly
be passed on to other decision making parts of the code. from the list of available plays. As the game progresses,
Situation specific flags like ball-out-of-play, referee deci- depending upon the strategy of the opponent, some plays give
sions etc. are also stored in the world module. All the positions a lot more successes than others. This leads to an increase in
are stored in the world co-ordinate frame. We can convert these their relative weight. So it makes sense in the later part of the
co-ordinates to robot specific coordinates to aid in calculations game to chose plays that have returned most successes. Hence
of the form nearest-opponent or nearest teammate for a robot. we choose only the best applicable play for every strategy in
The path planning module takes input in the form of obstacle later stages of the game.
positions, source position and destination position. This has
D. Tactic
to be generated by considering the current positions of the
robots. The world module calculates obstacle characteristics. Each play consists of a set of tactics for every robot. These
The boundary of the game field is also taken as an obstacle. have to be performed in the prescribed order for the play to be
a success. An example play with its tactics for 4 teammates
B. Plays is given below,
Plays form the second level of our overall hierarchy (first PLAY: GET_PASS_GOAL
is Strategy). These represent different situations that can arise
in a game and correspond to the actions that are taken for Robot 1: GET_BALL, PASS, MARK, MARK
them. Reducing the game to a finite number of situations is Robot 2: MOVE, NONE, RECEIVE_PASS, SHOOT
not possible. We can however classify situations and undertake Robot 3: MARK, MARK, MARK, MARK
a pre-determined set of actions for them. We have identified Robot 4: MARK, MARK, MARK, MARK
these situations as follows, Note that the last 2 robots do not take part in the actual
GET_GOAL play. The role of robots does not change in the duration
GET_PASS_GOAL of the game. To avoid execessively draining the batteries
PENALTY of forward robots, we change the order of instructions i.e.
CORNERKICK_OUR_CORNER GET PASS PASS GOAL will have Robot 3 performing the
CORNERKICK_THEIR_CORNER shooting task. The routines PASS, SHOOT etc. generate co-
THROW_IN_OUR_HALF ordinates of the final destination of the robot themselves by
THROW_IN_THEIR_HALF looking at the current world configuration. Every tactic waits
THEIR_POSSESION_THEIR_HALF until all the other robots complete their respective tactics of
THEIR_POSSESION_OUR_HALF the previous index. e.g. PASS will wait until MOVE has raised
CLEAR a completion flag. The whole process can occur as fast as the
execution frequency of the AI structure which is expected to
Every play has its initial weight, the strategy for which it be around 15 Hz. We do not expect the wait times to be large.
is applicable and a pre-defined set of tactics that are to
be executed for that play. It also has a maximum time of IV. PATH PLANNING
completion after which the play will be changed. We also After the strategy selection is done and the robot gets a
keep count of the total number of executions of every play, its command such as goto-point, we need to get an obstacle free
successes, failures, aborts and execution times. The number of path to the destination. For this purpose we have chosen the
successful executions can be used to change the weight of that RRT (Rapidly-expanding Random Trees) [3] method due to its
play (i.e. the chance that it is chosen again) in the duration of low execution time. Unlike normal path planning methods
game play. which try to optimize every point in the path requiring a lot of
computation, RRT takes a randomized approach to finding the
C. Strategy next point with some bias towards the destination. It is much
The Strategy module can be likened to the manager of faster than other heuristic approaches since it does not need to
a football team. It decides the overall nature of the game explore the region. This is also being used by the CMDragons
by looking at the current ball position, score and the time team (CMU) for their international RoboSoccer [4] .
23
400
300
200
100
Figure 3. RRT with start at (0, 0) and end at (400, 350). Yellow shows the explored tree while the path is marked in red. Black depicts the final smoothened
path of the robot.
A. RRT Algorithm: line segment joining them does not pass through any obstacles.
1) Get Pnew , the current target, which is a random point This works quite well and we get a good straight line path, as
or the final target point depending on a pre-defined can be seen in Fig. 3, which the robot can follow easily.
probability.
2) Get Pnear , the point nearest to the new target point V. H ARDWARE
among the points of the current tree. A. Mechanical
3) If the distance between Pnew and Pnear is less than
some threshold, an edge joining Pnew to Pnear is added The robot drive actuation consists of 2 DC motors in a
to the tree. If the distance is greater than the threshold, differential drive configuration. We targeted a maximum linear
extend a branch of a pre-defined length from Pnear speed of 0.5 m/s with a typical wheel of diameter 50 mm.
towards the target point Pnew , thus adding a new edge This requires the wheel speed of around 190 RPM. Consid-
to the tree. During this step, if it is detected that the new ering market availability and size constraints, we selected a
edge passes through an obstacle, it is not added to the perpendicular shaft geared DC motor with no load speed of
tree. 220 RPM and a stall torque of 60 mN-m.
4) Repeat 1–3 till the final target point (or some point very The kicker is actuated using a cam-follower mechanism.
close to it) is reached. The follower is loaded with a spring which impacts the ball
due the step on cam surface as shown in the Fig. 4. This allows
B. Path smoothening for rapid dispensing of energy from the charging of the spring
After getting a path from the RRT, we smoothen it so as to with a relatively low power actuator. We have selected a geared
prevent the robot needing a change of direction at every step. DC motor of 60 RPM as the actuator for the cam, giving us
For this, we try to connect the furthest points such that the a reasonable kicker spring charging period of 1 second.
24
The RF link between the computer and the robots is made
with ZigBee
R
modules using UART interface. The commands
sent from the computer are parsed and executed by a 16-bit
Microchip
R
dsPIC33FJ32MC804 micro-controller. This is a
powerful micro-controller having a dedicated motor control
module with easy to use PWM generator and a Quadrature
Encoder Interface which can be used in later versions of the
hardware.
VI. C ONCLUSION
Ball This paper gives a brief overview of our system, covering
both the off-board computer software and robot hardware. We
have had to make some compromises in the design of the
system but wherever possible, we have used the experience
gained from our winning entry in the GOAL competition at
TechFest 2009. For example, we have chosen to skip the motor
encoders on the robots which can make controlling them easier
but makes the hardware more complicated. We control the
robots using feedback from only the vision system, which is a
technique we used at the TechFest competition. In this way, we
Figure 4. Kicker and dribbler schematic design have chosen to use software as far as possible for controlling
the robots, allowing us to have simpler hardware — which
was one of our main aims during design.
To retain the ball in position before kicking and while
moving with the ball, we use a dribbler which is a rotating R EFERENCES
friction cylinder to impart reverse spin to the ball. This cylinder [1] B. Browning, J. Bruce, M. Bowling, and M. Veloso,
is actuated by high speed DC motor which is attached to the “STP: Skills, tactics and plays for multi-robot control in
kicker itself. This design automatically disengages the ball adversarial environments,” IEEE Journal of Control and
from the cylinder when kicked. Systems Engineering, vol. 219, 2004.
[2] Bret Browing et. al, “CMDragons Code 2002.” http://
B. Electronics
www.cs.cmu.edu/∼coral/download/.
Our design requires 2 bi-directional and 2 uni-directional [3] S. M. Lavalle, “Rapidly-Exploring Random Trees: A New
motor control. For this purpose, we have used 3 full H-bridge Tool for Path Planning,” tech. rep., University of Illinois
drivers out of which 2 control the drive motors and the third Urbana-Champaign, 1998.
controls both the kicker and dribbler. We have selected the [4] J. Bruce and M. Veloso, “Real-Time Randomized Path
Texas Instruments
R
DRV8801 DC motor driver since it has a Planning for Robot Navigation,” in Proceedings of IROS-
high current capacity of 2.8 A and a small package. 2002, October 2002.
25
Introduction to Simulation
League
Without the necessity to maintain any robot hardware, the RoboCup Simulation League's
focus comprises artificial intelligence and team strategy.
Thus, in Simulation League two teams of eleven autonomous software programs (called
agents) each play soccer in a two-dimensional virtual soccer stadium represented by a central
server, called SoccerServer. This server knows everything about the game, i.e. the current
position of all players and the ball, the physics and so on. The game further relies on the
communication between the server and each agent. On the one hand each player receives
relative and noisy input of his virtual sensors (visual, acoustic and physical) and may on the
other hand perform some basic commands (like dashing, turning or kicking) in order to
influence its environment.
The big challenge in the Simulation League is to conclude from all possible world states
(derived from the sensor input by calculating a sight on the world as absolute and noise-free
as possible) to the best possible action to execute. As a game is divided into 6000 cycles this
task has to be accomplished in time slot of 100 ms (the length of each cycle).
This year’s strategies varied from unified approaches like potential field method, to discrete
role switching methods, from using time tested football tactics to modular strategy decision
systems.
*Note: One of the teams from the Simulation league is also participating in SSL League. As
a result only one common paper is published in the SSL section.
26
Team Description Paper
Nikhil Somani
#
Department of Electrical Engineering,IIT Kharagpur,
Kharagpur, India
1
nikhilsomani.iitkgp@gmail.com
27
player should not kick the ball out of the field. Hence, the
parts of the potential field which fall outside the playing area
are given a high positive potential(OUT_POTENTIAL). This
valued is different for different roles of players. This is
because it might be in the interest of a defender to clear the
ball to save a possible goal but is certainly not an option for an
attacker.
28
F. Zone Potential Conclusions
The players are assigned zones of play. They are expected An important advantage of using these potential fields is that
to stick to their zones. If they reach the boundary of their the weights of each of the parameters used to generate a field
zones and possess the ball, they should look to pass it. The can be adjusted dynamically to enable higher levels of team
potential rises beyond the zone boundaries. planning such as pace and risk level of the game depending
upon the score, stamina and other factors.
REFERENCES
[1] Michael Bowling, Brett Browning, Allen Chang and Manuela Veloso,
“Plays as team plans for co-ordination and adaptation”, Computer
Science Department, Carnegie Mellon University, Pittsburgh PA,
15213-3891, USA.
[2] Peter Cogill, “The university of Queensland CrocaRoos : A planning
system for the simulation league”, University of Queensland.
[3] Ashley Tews, Gordon Wyeth, “MAPS : a system for multi-agent co-
ordination”, Computer Science and Electrical Engineering, University
of Queensland, Brisbane, Queensland 4072, Australia
[4] Jun Akiyama, “Adapting the multi-agent planning system for Robocup
Simulation League”, Department of Information Technology and
Fig. 6 Zone Potential Field Electrical Engineering, University of Queensland.
29
Team Description: RoboCup Challenge ‘09
Strategies for Coordination among Soccer-Bots in a
Simulated Multi-Agent Environment
Rasha Eqbal
Department of Computer Science and Engineering, Indian Institute of Technology - Kharagpur
Kharagpur, India
rasha.eq@gmail.com
Abstract— This document gives an overview of strategies used by favourable position to carry out their assigned role effectively.
robots working as a team in RoboSoccer Simulation. The This also ensures an even distribution of players on the field at
approach taken involves simple decision making and action any time, thereby causing less hindrance in the actions of
selection based on these decisions. teammates. To implement this, all that needs to be done is
make the players move towards their assigned zones when
Keywords— RoboSoccer, decision making, localisation, hovering, they are involved in no other concrete action, like dribbling
dribble, pass, kick, goalkeeper the ball, passing it or kicking it. When in their respective
regions the players try to look around for the ball simply by
turning on the spot and moving within the confined area. Once
I. INTRODUCTION the ball is located they try to keep it within sight.
This paper describes a simple algorithm to decide which
action is most favourable for a player and his team at any
given point of time. This decision is made based on several IV. LOCATING THE BALL
input parameters: like position of the player on the field; All the players in their assigned zones try to look for the
distance of the player from the ball, from the goal and from ball, moving only within their zone boundaries. Once they
other players in his field of view; angular displacement of the locate the ball, they face in its direction and try not to lose
player’s line of sight from the ball, the goal and the other sight of it. When the distance of the ball from a player is less
players in his vicinity. The player then takes a course of action than a certain threshold, only then does he try to move
depending on these external inputs and the role allotted to him towards it. This ensures unnecessary clustering of players
as part of the team. around the ball.
30
teammate around him is closer than him to the ball, he will implemented by all the players except the goalkeeper, whose
move towards the ball himself. sole task is to defend the goal.
31
[4] Amin Milani Fard, M. Hossein Ansari, Armin Ildermi, Sina
Molavipour, Mahdi Aledaghi, Farid Seifi and Mahmoud Naghibzadeh,
Nexus 2D 2008 Team Description.
[5] Simon Ch’ng and Lin Padgham, Team Description: Building Teams
Using Roles, Responsibilities, and Strategies.
[6] R. Geetha Ramani, Dr. R. Subramanian and M. Sindurathy, Strategies
of Teams in Soccerbots.
[7] Hatice Kose, Kemal Kaplan, Cetin Mericli, Utku Tatlidede and Levent
Akin, Market-Driven Multi-Agent Collaboration in Robot Soccer
Domain.
32
Team Description: Robocup Challenge ’09
United 11
Dheeraj Kumar Singh
Department of Computer Science and Engineering, IIT Kharagpur
D-101, Patel Hall of Residence, IIT Kharagpur, India
I. INTRODUCTION
The main purpose of the paper was to analyse the effect of
“Task Division” in a multi-agent environment. The work here
has been divided into three categories. Apart from this each Fig. 1 An example of division of regions on the playing field. The regions
agent is also confined to his region on the field which he does marked are dynamic in nature depending on the position of the opponent
not leave except in situations which need him to leave it. players and the position of the ball
Fig. 2 The intersection of the circles of the three flags gives the position of the
agent
33
C. Different Roles B. Gap creation
If there is no division of roles the agents will tend to play The supporting players will tend to move so as to increase
selfishly. The players will first have a static role that is the interception angle to make it easier for the player with the
defined to them on a “Strategy Level”. Then on an “Individual ball to pass.
Level” the players will have dynamic roles defined to them.
The roles that are defined on the “Strategy Level” are static
because this role will not change in the course of the game.
An attacker will always have a tendency to aim towards the
goal rather than passing. The mid-fielders will tend to pass the
ball among them till one of the attackers is free to accept a
pass. The defenders will tend to pass the ball forward, they
will also have a tendency to kick the ball forward in a random
direction if their possession of the ball is threatened.
Fig. 3The red dot represents the opponent players and the
blue dots the players of the same team. Here A1had the ball,
he would have selected to pass it to A3 and not A2 as the Fig. 5 The velocity of the ball can be computed as the ratio
interception angle X1 is more than X2 of the vector difference between the current and previous
ball position and the difference in time cycles
34
REFERENCES
[1] Nexus 2D 2008 Team Description, Amin Milani Fard, M. Hossein
IV. DECISION MAKING Ansari, Armin Ildermi, Sina Molavipour, Mahdi Aledaghi,Farid Seifi,
The decision making for the agents can be divided into two Mahmoud Naghibzadeh ,Software Simulation and Modeling
Laboratory, Department of Computer Engineering, Ferdowsi
stages. In the first stage the agents based on their individual University of Mashhad, Mashhad, Iran, nexus@um.ac.ir,
skill decide for each possible action which is the best course. http://nexus.um.ac.ir
For example of a player has the ball he will decide for each [2] Robocup – 99 Team Description , Simulation League, Team 11
possible action, ie. Passing, dribbling and shooting which monkeys, http://www.ep.liu.se/ea/cis/1999/007/34, Shuhei Kinoshita,
Yoshikazu Yamamoto
among them in each of them is the best way of doing it. In the [3] CMUnited98: RoboCup98, Simulator World Champion Team, Peter
second stage based on its static role and the best actions Stone, Manuela Veloso, and Patrick Riley, Computer Science
decided the agent chooses which action is the best one. Department,Carnegie Mellon University, Pittsburgh, PA 15213
[4] OxBlue2008(2D) Team Description, Jie Ma and Stephen Cameron,
V. CONCLUSIONS AND FUTURE WORK Oxford University Computing Laboratory, Wolfson Building, Parks
Road, Oxford, OX1 3QD, UK,
The research done here has relied more on static strategies {jie.ma,stephen.cameron}@comlab.ox.ac.uk,
which makes the algorithm rigid. The work has also relied http://www.comlab.ox.ac.uk
more on the individual skill of the players and information
exchange between the players is minimum. Future work can
be done more on coordination and information exchange.
35
Acknowledgements
We express our acknowledgements to the following respected committee members for
patiently reviewing and approving the work.
We would also like to extend a word of thanks to our generous sponsors for their
encouragement and support.
Goal.com
36