320 likes | 689 Views
Playing Robotic Soccer. Ofer Elrom & Dvir Afek. Why soccer game ?. Advancing through Competition . Wide range of Technologies. Many AI challenges. A well known game. Distribution, Cooperation, Sensing. CS Freiburg Team - Germany. Scope. Robot hardware. Architecture.
E N D
Playing Robotic Soccer Ofer Elrom & Dvir Afek
Why soccer game? • Advancing through Competition . • Wide range of Technologies. • Many AI challenges. • A well known game. • Distribution, Cooperation, Sensing.
Scope • Robot hardware. • Architecture. • Self Localization Algorithm : - Scan Matching • The Global Picture. • Decision making. • RoboCup 2000 Video. • Future …
Robot Hardware • Pioneer 1 robot. • Video camera + vision system. • Notebook – Pentiumâ running Linux. • WaveLan Radio Ethernet. • Laser Range Finders. • Kicking Mechanism.
Architecture [1] • Autonomous robotic soccer players. • Local world model. • Self Localization. • Player Recognition. • Ball Recognition.
What is Self Localization ? • The process of updating the Pose of a robot in an environment based on sensors readings. • 3 Major Categories : • Behaviour Based Approaches (blind) • Land Marks (vision). • Dense Sensor Matching (laser, sonar).
Location Realizing • Problem: Given a robot in a known polygonal environment, how does the robot realize its location? Who am I? Where am I?
Solution - basic algorithm:find your position using odometry (x,y,ang);while (1) on every forward move d and rotation t: x’ = x + d* cos(ang); y’ = y + d * sin(ang); ang’ = ang + t; find your position using laser scanning (x’’,y’’,ang’’); use Kalman Filter to calculate new position - (x,y,ang) as a combination of (x’,y’,ang’) and (x’’,y’’,ang’’)
(x,y,ang) y x’ = x’ + d * cos(ang)y’ = y’ + d * sin(ang)ang’ = ang + t; ang d y’ ang’ t x x’
Seems quite simple.But... • How do you find your position using laser scanning? • solution: Line Matching algorithm.
Line Matching algorithm The Robot has an “a-priori” model (sketch) of the environment. 1. Scan a group S of lines from your environment. 2. Find all possible matches between scanned lines and lines on the a-priori model. Matches dictate location point. 3. Choose the most plausible location point.
plausible point A-Priori model of environment first match: matching.. second match: Real environment scanning...
How do we find all possible matches between a group of scanned lines S and a group of model lines M? • we use back tracking recursive:S : group of scanned linesM : group of model linesP : a group of pairs, in which we matched |p| lines from S with |p| lines from M. • What we are looking for is a perfect match (discrete math) for group S, or in other words a group p for which, |P| = |S|.
The recursive code (Don’t panic): LineMatch(M, S, P) Input: model lines M, scan lines S, pairs P Output: set of possible location points H if |P| = |S| H := P else H := {} //Empty group s := SelectScanLine (S,P) for all m in M do if VerifyMatch(M, S, P U {(m,s)} ) H := H U {LineMatch(M, S, P U {(m,s)} ) return H //Now panic!!!
m2 Example: p={0} m3 m1 ,s2 p={(s2, m1)} m4 out of the field!!! p = {(s2,m1), (s1,m2)} s3 error - killbranch s1 s2
Example: m2 p={0} m1 m3 ,s2 p={(s2, m3)} m4 Robot can’t be in two places at the same time!!! p={(s2, m3), (s1, m1)} s3 Error, kill branch s1 s2
Example: m2 ,s2 p={0} m1 m3 ,s1 p={(s1, m3)} m4 p={(s1, m3), (s2, m2)} s3 s1 p={(s1, m3), (s2, m2), (m4,s3)} s2 Succeeded in finding a location point !!! ( |P| = |s| )
Players Recognition After finding its location, the robot can scan other players, whose location is derived from the robot’s location. Each Robot sends the information to the server which can then realize which of the players is foe and which is friend.
Ball Recognition • Color Based Vision System.
Architecture [1] • Autonomous robotic soccer players. • Local world model. • Self Localization. • Player Recognition. • Ball Recognition.
Architecture [2] • Global world model. • Communication. • Information to server. • “Clear out!” to other players. • Multi Agent Cooperation (global). • Action Decision (individual). • Path Planning.
Global World Model • Foe / Friend. • Ball Position.
Player’s Actions • Decision Tree - Parsing on a decision tree according to the global world model will lead to one of the following actions : • GoTo Position / Ball. • Observe Ball. • Search For Ball. • Move Ball / Kick Ball. • Clear Out. • Goal Keeper.
Ex. – A defense player, taking action as the ball roles in : defense offense goalie Ball approaches Ball roles away Observe Ball In 2nd sector In my sector (static) GoTo Home Position Block ball (path planning) (path planning)
Path Planning • Motion Planning with Moving Obstacles.. • Unpredictable Opponents. • Computationally Demanding. Approximation
Player’s Role PUT THE BALL IN THE GOAL…
Player’s Role Lets watch some game Highlights..
What’s Next ? … • Learning Techniques. • Player Communication. • Dynamic Role Changes. • Humanoid Robot (2050). • .. • ..