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