Introduction To Robot Soccer
Introduction To Robot Soccer
Introduction To Robot Soccer
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".
Junior
Rescue
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
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
initiative apperceive
thinking decision-making
action
initiative apperceive
thinking decision-making
action
action
action
action
Vision Based
Information Express
Advanced Implement
Wheeled robot Car-like tracklayer Legged robot multi-leg (Sony AIBO) biped (Humanoid)
Humanoid League
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
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.
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
Sensors used in Robotics:
Camera Infra-Red Distance Sensors Laser Range Finders Ultra Sonics ( Sonar) Simple switches Gyros
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 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
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
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
Strategy
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