Introduction To Robot Soccer

Download as pdf or txt
Download as pdf or txt
You are on page 1of 94

By : Awang Hendrianto Pratomo

Introduction to robot soccer


A soccer robot is a specialized autonomous mobile robot that is used to play soccer. Mostly, this is done within the RoboCup or FIRA tournaments played each year (Wiki). Autonomous robots are intelligent machines capable of the tasks in the world of themselves, without explicit human control. Examples range from autonomous helicopters to Roomba, the robotic vacuum cleaner. Autonomous robot was ascribed to robotics systems function without human supervision. In fact, from ancient times, people have tried to build systems that have no direct control.

RoboCup
RoboCup is an international robotics competition founded in 1993. The aim is to develop autonomous soccer robots with the intention of promoting research and education in the field of artificial intelligence. The name RoboCup is a contraction of the competition's full name, "Robot Soccer World Cup", But there are many other stages of the competition such as "Search and Rescue" and "Robot Dancing".

Robot Soccer World Cup

RoboCup The Robot


World Cup Initiative
Japan 1997 Category of soccer Simulation (11:11) Small Size (5:5) Middle Size (4:4) SONY Legged Humanoid League

Junior

Rescue

Robot Soccer World Cup

Robot Soccer Association KAIST,Korea,1996 KAIST,Korea,1996 Category Category MiroSot(3:3, 5:5) NaroSot(5:5) RoboSot KheperaSot SimuSot(5:5, 11:11) Benchmark Teat

FIRA Federation of International

Popular FIRA Leagues


SimuroSot SimuroSot is a simulation of a MiroSot game. It is a league in its own right. The Strategy for the SimuroSot is an exchangeable software module ( DLL ). Every team writes a strategy module and lets it compete. The Simulator was written in Macromedia Studio.

Popular FIRA Leagues


HurSot: HuroSot is a FIRA league that is played with humanoid robots. In the smallest category they are limited to 50cm height and must have all vision and processing onboard. The league has recently gained popularity. There are several challenges that the robot attempts to gain points in the HuroSot competition: Marathon, Penalty shootout, Basketball, Sprint, Obstacle Run, walk over uneven terrain and a 3 aside football match.

HuroSot

Movie Hurosot

HuroSot Robots

Robot Football
What makes a robot intelligent? Intelligent information processing Sensors provide information for processing

Generations of Robots

The Common View Robot soccer is a grand challenge of robotics and Artificial Intelligence A desired research and competition platform of Artificial Intelligence

Artificial Intelligence
Many kinds of definition In short, artificial intelligence is the understanding and implementation of human intelligence, including apperceive thinking and decision-making action and expression

Understanding human soccer (single player)

initiative apperceive

thinking decision-making

action

Understanding human soccer (multi players)


I II III communication IV

initiative apperceive

thinking decision-making

action

RoboCup Simulation League

Vision-Based Remote Brainless Multi-Robot System


action Vision Based Decision Making action

action

action

action

Mirosot Middle League of Fira

Vision-Based Brain-on-Board Multi-Robot System

Vision Based

Information Express

DecisionMaking Ac tion DecisionMaking Ac tion DecisionMaking Ac tion

Middle Size Robot League of Robocup

Advanced Implement
Wheeled robot Car-like tracklayer Legged robot multi-leg (Sony AIBO) biped (Humanoid)

Sony AIBO Robot League

Humanoid League

Humanoid League (Robocup)

Humanoid League (Robocup)

Humanoid League (Robocup)

Humanoid League (Robocup)

Humanoid League (Robocup)

MIABOT Systems

Introduction
The MIABOT Pro is a fully autonomous miniature mobile robot. The latest BT version features bi-directional Bluetooth communications, which provides a robust frequency hopping wireless communications protocol at 2.4GHz.

Specification

Specification

Standard Command Protocol


All commands begin with the command-start character '[', and end with the commandend character ']'. The first character after '[' identifies the command, after that bytes are free-format, determined by the specific command used. Extra characters after command-arguments and before ']' are ignored and extra characters between commands (after ']' and before '[') are also ignored.

Standard Command Protocol


Simple commands [s] - "stop" sets both wheel speeds to 0 [t] - "test" test communications: Returns a string containing the robot-id, e.g. "<test#03>" for robot 3. [?] - "version" Returns the powerup message, including the firmware version -e.g. "<Merlin Systems Corp. Ltd : Miabot Pro OS 2.1 >"

Parameter control
Various control functions use stored parameter values. All values are integers, with a potential range of (2^31 1 billion). They are accessed via the [.] command, which has a number of different forms : [.<name>] - "read param" E.G. [.xM] , which might return xM = +00000007. [.<name>=<value>] - "write param" E.G. [.xT=-503], might return xT = -00000503 [.=] - "reset params" All parameter values are reset to the factory defaults [.] - "list params" This lists all params in order, e.g. rT = +0000010 rI = +0000010

Speed control
Wheel speeds are specified as a number with a fixed scaling, from 0 to approximately 2000 maximum (positive or negative). The actual rate in terms of pulses-per-second is speed*50, so that a speed of 1000 is actually 50,000 pulses per second, i.e. a linear speed of approximately 2.0m/sec. (In practice, speeds of up to 1000 are readily achieved, even when batteries are running low.) [=<##l>,<##r>] - "set speed decimal" Set wheel speed (decimal) <##l>is decimal number, controlling the left wheel set speed <##r>is decimal number, controlling the right wheel set speed [-<#l><#r>] - "set speed byte" Set wheel speed (binary) <#l>is a single binary byte, controlling left wheel set speed <#r>is a single binary byte, controlling right wheel set speed

Stepwise movement
[<] - "turn left" [>] - "turn right" [^] - "step forward" [v] - "step backward"

Distance-controlled commands
[m<#>] - "left by" [n<#>] - "right by" <#> is a single binary byte, 0-255, controlling the distance. 0 means forever. The speed is the turn rate ([x< or [x>) command setting, described above. The actual distance is the byte-value multiplied by 25, for a maximum of a somewhat more than a whole turn. [o<#>] - "forward by" [p<#>] - "backward by" <#> is a single binary byte, 0-255, controlling the distance. 0 means forever. The speed is the movement rate ([xv or [x^) command setting, described above. The actual distance is the byte-value multiplied by 25, for a maximum of a somewhat more than a whole turn.

Acceleration and Deceleration controls


[.rT] - "ramp time period" [.rI] - "ram These two control maximum acceleration rates by limiting the rate of change of the programmed speed to rI speed units per rT milliseconds. This applies to both acceleration and deceleration. Standard (reboot) settings are rT=10, rI=10. [.xS] - "distance-speed scaling" [.xT] - "distance threshold" These two control the deceleration to stop at a fixed position (for a distance-based command). Speed during a distance-command is limited to xS times SQRT(distance). Speed is 0 (and distance operation terminates) when position-error < xT. Standard (reboot) settings are xS=5, xT=10.p increment rate"

Sequence controls
The robot has a current test sequence of stored commands that can be rewritten or executed [~] - "do sequence" Perform the current stored command sequence [ N.B. '~' itself can be added at the end of a sequence, to make it repeat forever ] [$] - "clear sequence" Erase the stored sequence [+<command>] - "add sequence command" Add a command to the stored sequence <command> is any other ordinary command (minus the usual square brackets) [w<##>] - "wait time" Used only within sequences, to pause sequence operation for a set time. <##> is a decimal number, specifying the number of milliseconds to pause sequence execution.

Sequence controls
[$] [+^] [+w1000] [+v] [+w1000] [+=20,-20] [+w2000] [+s] [+~] This will cause the robot to move forward, pause 1 sec, move back, pause again, spin slowly for 2 secs, then repeat. The sequence is run by issuing the command [~].

Robot Vision

Robot Football System Overview

Robot Football
Sensors used in Robotics:
Camera Infra-Red Distance Sensors Laser Range Finders Ultra Sonics ( Sonar) Simple switches Gyros

Robot Football Image Processing

Robot Football Image Processing

Vision Systems
The human eye can deal with a wide range of intensity (brightness). A camera CCD only works with a very narrow range. In order to make it easier for the camera there must not be any variation in intensity across the field of view. Spot lights are bright, however they have a wide variation in brightness (easily 500 Lux). Therefore spotlights can not be used. Fluorescent lighting tubes are the best. A diffuser on them improves the even spreading of light further. Even Lighting is important 1000 Lux

Vision System at JUST

Vision Systems

Vision Systems
Image Processing: Must be very fast: 640x480 x 3Bytes x30 fps = 27.648 MByte/sec ! Avoid Floating Point Calculations Avoid Convolution (kernel) based Filters Avoid Processing every Pixel Use Look up tables (e.g. RGB to HSI, aberration )

Vision Systems
Algorithms to find coloured Regions Blobs: Cross Scan Sampling the image in a rough grid. When a coloured pixel is found neighbouring pixels are scanned horizontally and vertically in a cross to measure the extent of the blob. With an estimate of the extent a new centre is found and another cross scan takes place.

Vision Systems
Cross Scan: Scan horz. (find centre) Scan vert. (in the horz. middle) scan horz, (in the new vert. middle) done

Vision System
From Blobs to Robots: Blob Linking

Link Team colour with ID colour

Vision System Calibration


The robots colour patches are small, typically between 6-15 pixel wide. This makes identification difficult, and the calibration process delicate. It takes up to 1 hour to calibrate a robot football vision system. ( be patient )

Robotic Soccer Programming

History
In the history of artificial intelligence and robotics, the year 1997 willbe remembered as a turning point. In May 1997, IBM Deep Blue defeated the human world champion inchess. Forty years of challenge in the AI community came to a successful conclusion. On July 4, 1997, NASA's pathfinder mission made a successful landing and the first autonomous robotics system, Sojourner, was deployed on the surface of Mars. Together with these accomplishments, RoboCup made its first steps toward the development of robotic soccer players which can beat a human World Cup champion team. The first official RoboCup games and conference was held in 1997

Software Component & Programming Framework

SIMULATOR
Without the need for robot and vision hardware, the problems of sensing and acting are reduced to non-issues SIMULATOR simulates the field dynamic the motion of the robots and the ball in a virtual playground Thus, become possible to focus on game strategy development and robotic soccer theory Create

SIMULATOR

Simulator
Simulator is compatible with RSE Frame rate RSE: 30 fps , Simulator 60fps Data in: Position, Orientation of robots Data out: Motor commands: wheel velocity

SIMULATOR vs Real-System

SIMULATOR Development & Testing

SIMULATOR File Structure

SIMULATOR File Structure

Modify Project Setting


Output the DLL file into the right folder: C:\Strategy\blue\ and to rename the DLL file to Team1.dll

Strategy

Robot Football Strategy Overview


Role Selection ( nearest to the ball ? behind the ball ? ) Individual Player State Engine ( move, stop, turn, wait ) Guidance System ( Trajectory following ) Low Level Control ( Wheel speeds, slip )

Robot Football Strategy Role Selection

Robot Football Strategy Role Selection


Goalkeeper: Stay on the line, predict incoming ball go out only when there is no danger Defender Like goalkeeper, predict incoming ball and get in between ball and home side Kick the ball out of the area Clear the ball from corners Striker Get behind the ball in order to kick it towards the goal Assistant If Striker / Defender fails, the ball will pass to the assistant

Robot Football Player State Engine


Striker ball-goal line: Robot must approach from a direction in line with the ball and the goal. A circle movement is simple, with constant velocity on both wheels (one faster than the other) the robot drives in a circle. Everything is moving, robot and ball, therefore prediction must be used.

Robot Football Strategy - Guidance System

Robot Football Robot Control

Robot Football Robot Control

Goal Keeper
Where will the ball hit the goal ?

Hint : Y = mx + c

Role Selection
Role selection Philosophies: Put closest player to the ball in charge Designate each player and area to play in Decisions influenced by if the player is in front of or behind the ball Decisions influenced by attacking or defending strategy Decisions can be made locally, from a robots point of few -> Swarm behaviour

Advanced Strategy: Avoidance with Vector Fields

Advanced Strategy: Waypoints

Advanced Strategy: Waypoints: Striker

Advanced Strategy: Waypoints: Defender

Robot Football Benefits for Students


Provides practical experience to students Students get in touch with latest technology producing capable engineers for industry Students are able to publish scientific papers as undergraduates Students get to travel around the world (next FIRA WorldCups are in South Korea and in South Africa?)

THANKS FOR ATTENTION

You might also like