Presentation is loading. Please wait.

Presentation is loading. Please wait.

The idea of Robot Soccer The idea of Robot Soccer.

Similar presentations


Presentation on theme: "The idea of Robot Soccer The idea of Robot Soccer."— Presentation transcript:

1 The idea of Robot Soccer The idea of Robot Soccer

2 3. Robot Soccer and Similar Tasks Robot Soccer Competition – RoboCup – FIRA – Remote controlled systems – Autonomous robots Clustering

3 3.1 Robot Soccer “RoboCup is an international joint project to promote AI, robotics, and related fields. It is an attempt to foster AI and intelligent robotics research by providing a standard problem where a wide range of technologies can be integrated and examined. RoboCup chose to use the soccer game as a central topic of research, aiming at innovations to be applied for socially significant problems and industries. The ultimate goal of the RoboCup project is: By 2050, develop a team of fully autonomous humanoid robots that can win against the human world champion team in soccer.” [RoboCup 1998]

4

5

6

7 Overhead Vision

8 Local Vision

9 Design Criteria Controller Hardware: Enable on-board image processing – Interface to digital camera – Incorporate graphics LCD – Incorporate user buttons – Wireless communication between robots Sensors: Allow variety of additional sensors: – Shaft encoders – Infra-red distance measurement sensors – Compass module Software: Flexibility to accommodate for different robot equipment – Operating system RoBIOS – Hardware description table HDT

10 What is AI? Research in AI includes: design of intelligent machines formalization of the notions of intelligence and rational behavior understanding mechanisms of intelligence interaction of humans and intelligent machines.

11 Objectives of AI Engineering : costruct intelligent machines Scientific : understand what is intelligence.

12 Can a robot do these? Understand? Simulate its environment? Act rationally? Collaborate and compete? Display emotions? A team of Robots will beat the FIFA World Cup champions by 2050! A bold claim:

13 RoboCup - Aim ”pushing the state-of-the-art” ”By mid-21st century, a team of fully autonomous humanoid robot soccer players shall win the soccer game, comply with the official rule of the FIFA, against the winner of the most recent World Cup. TO BOLDLY GO WHERE MAN HAS GONE BEFORE (cf. Star Trek) Formalised Testbed

14 Do you really believe that a team of Robots could beat the FIFA World Cup champions by 2050? Do you really believe that a team of Robots could beat the FIFA World Cup champions by 2050? By all accounts this may sound overly ambitious. In fact, if you compare this goal to other ground breaking achievements it is not ambitious at all. The Wright brothers' first airplane was launched and 50 years later man landed on the moon. Even more recently Deep Blue the computer programmed to play chess, played chess grand master Garry Kasparov and won -- roughly 50 years after the deployment of the first computer. It's a long time. Think what has happened since 1950.

15 Power of AI In 1997 a computer, Deep Blue, won a chess match with world champion Kasparov. Accident? IBM paid Kasparov to loose? Brute force with no intelligence? So, what is intelligence? Is the following AI?

16 Simulation Turing test (1950)

17 Chess versus soccer robot Difference of domain characteristics between computer chess and soccer robots DistributedCentralControl Non-symbolicSymbolicSensor Readings IncompleteCompleteInfo. accessibility Real timeTurn takingState Change DynamicStaticEnvironment RoboCupChess

18 Intelligent Agents Agents are situated Perception of environment Execution of actions Agents can communicate and collaborate they can differ than can compete and be more or less egoistic/altruistic The agents have: objectives, communications, intentions.

19 Professor Kim from KAIST The founder of Robot Soccer and FIRA president A New Approach Two organizations: 1. FIRA (earlier) 2. RoboCup (larger)

20 Four Blocks in two PCBs (Printed Circuit Boards) Micro-controller (upper PCB) Communication module (upper PCB) Motor and driving circuits (lower PCB) Power (lower PCB) top view front view side view

21 Importance of Robot Soccer Communication Cooperation Coordination Learning Competence Real Time Robot Soccer Evolution Computer simulations Wheeled brainless robots Wheeled autonomous robots Legged autonomous robots

22 Robot Soccer Purpose “The number one goal of [robot soccer] is not winning or losing, but accumulating diverse technology.”  - Mr. Dao (Senior VP of Sony Corporation).

23 Robot Soccer Competitions

24 Robot Soccer? Robot Soccer competitions proposed to help collaborate and evaluate various approaches: Software, hardware, electronics, sensors, motors, theories. Difficult problem, challenge for top universities and industries

25 FIRA & RoboCup History Category

26 Integrating various technologies Autonomous agents Collaboration of agents Strategy acquisition Real-time information processing Mobile robotics and robot vision Hardware and software technologies

27 FIRA

28 Index Introduction FIRA & Robocup History Category Discussion Issues PSU soccer robot projects

29 4th FIRA Robot Soccer World Cup Winners Notre Dame school, Campinas, Brazil (Aug 4-8, 1999) MiroSot  1st : RobotIS (Korea)  2nd : SIOR (Korea)  3rd : SOTY IV (Korea) NaroSot  1st : RobotIS (Korea)  2nd : Y2K2 (Korea)  3rd : Olympus (Korea)

30 RoboCup-99 Stockholm Winners Stockholm City Conference Center, Stockholm, Sweden (Jul.27 - Aug. 6, 1999) Conjunction with IJCAI-99 Simulation League  1st : CMUnited-99 (USA) Small Size League  1st : The Big Red (USA) Middle Size League  1st : CS Sharif (Iran) Sony Legged Robot League  1st : Les 3 Mousquetaries (France)

31 History Idea of Robot Soccer Prof. Jong-Hwan Kim (KAIST) Micro-Robot World Cup Soccer Tournament (MiroSot) Int. Organizing Committee for MiroSot (Sep., 1995) Pre-meeting on MiroSot Jul Aug. 4, 1996, KAIST 30 teams from 13 countries Clear shape of MiroSot Rule FIRA

32 1st MiroSot Nov , 1996, KAIST 23 teams from 10 countries MiroSot Newton Research Lab. (USA) Single-MiroSot (S-MiroSot) Carnegie Mellon United Team (USA) Formulation of Soccer Robot FIRA history

33 2nd MiroSot Jun , 1997, KAIST 22 teams from 9 countries MiroSot Newton Research Lab. (USA) OverDrive (MR, KAIST) S-MiroSot UFO (MaroTech, Korea) MIRAGE (KAIST) Development of vision technology Vision - 30(60) frames/sec. Beginning of FIRA FIRA history

34 FIRA Robot World Cup FIRA Robot World Cup ‘98 Jun Jul. 3, 1998, La Cite de Sciences Industrie, Paris, France NaroSot (Nano-Robot World Cup Soccer Tournament)  1st : MIRO III (KAIST) S-KheperaSot (Khepera Robot)  1st : STATIC, (Univ. of Aarhus, Denmark) MiroSot  Four FIRA regional championships  1st : The Keys (Human Interface Inc., Korea) Development of vision & motor technology  vision - 60 frames/sec  motor - 2m/sec FIRA Robot World Cup ‘99 FIRA history

35 Category MiroSot NaroSot KheperaSot RaroSot FIRA

36 MiroSot 3 robots on 1 team Size : 7.5cm * 7.5cm * 7.5cm Ball : orange golf ball Playground : black wooden rectangular playground (150cm * 130cm * 5cm) Vision : global vision system (more than 2m above playground) FIRA category

37 Experimental Setup of the Vision System Experimental Setup of the Vision System Control panel

38 NaroSot 5 robots on 1 team Size : 4cm * 4cm * 5.5cm Ball : orange table-tennis ball Playground, Vision : same as Mirosot FIRA category

39 KheperaSot 3 robots on 1 team Ball : yellow tennis ball Playground : green playground (105cm * 68cm * 20cm) Robot : Khepera Robot Vision : K213 Vision Turret FIRA category

40 RoboSot 3 robots on 1 team Size : 15cm * 15cm * 30cm Ball : red roller-hockey ball Playground : black wooden rectangular playground (220cm * 150cm * 30cm) Vision : on the robot Under preparation FIRA category

41

42 RoboCup A project directed by Carnegie Mellon University (CMU) Robot World Cup Soccer Games and Conferences Robots working, playing, and competing against each other Revolution in science and entertainment Breakthrough in the fields of robotics and AI Goal: to culminate all the challenges in AI like temporal reasoning, machine learning, vision processing, obstacle avoidance, perception, cognition and motion control

43 Started in 1993……. In RoboCup 1999 there were more than 1500 researchers actively participating within the RoboCup initiative. … and the number is still increasing.

44 Leagues of RoboCup Simulator League Small Robot League Full Set Small Robot League, which is 11 robots per team (F-180) Middle Size Robot League (F2000) Legged Robot Games Sony Legged Robot League (Sponsored by Sony) Humanoid League (From 2002, demonstration may take place before 2002) TeleOperation Track (to be announced) RoboCup Commentator Exhibition, Related Competitions (rescue, actors, etc).

45 Various levels real robot leagues software agent league special skill competition

46 History Jun Robot J-League Minoru Asada(Osaka Univ), Yasuo Kuniyoshi, Hiroaki Kitano(SONY) Robot World Cup (RoboCup) Sep first public announcement Minour Asada, Manuela Veloso(CMU) first simulator for soccer games Itsuki Noda(ETL) C++ version soccer server v1.0 IJCAI-95 : first public demonstration Pre-RoboCup-96 Nov. 4-8, 1996, Osaka, IROS-96 8 teams for simulation league, demonstration of middle size league Robocup

47 History RoboCup-1997 Nagoya, Japan, IJCAI 97 RoboCup-1998 Paris, France, MAAMAW AI*IA, Padova, Italy, September 1998 RoboCup-1999 Stockholm, IJCAI 99 RoboCup Euro 2000 Amsterdam RoboCup-2000 Melbourne RoboCup Japan Open 2001 Fukuoka RoboCup German Open 2001 Paderborn RoboCup-2001 Seattle, USA

48 RoboCup 97 Nagoya Aug , 1997, Nagoya, Japan Conjuction with IJCAI-97 Simulator league 33 teams: USA=8, Europe=8, Australia=2, Japan=15 1st : AT Humboldt (Humboldt Univ., Germany) Small size robot league 4 teams : USA, France, Spain, Japan 1st : CMUnited (CMU, USA) Middle size robot league 5 teams : USA, Australia, Japan 1st : Dreamteam (USC, USA), Trakies(Osaka Univ., Japan) Expert Robot Exhibit

49 RoboCup 98 Paris Jul. 2-9, 1998, La Cite de Sciences Industrie, Paris, France Conjunction with ICMAS-98 Middle size league 1st : CS-Freiberg, Germany Small size league 1st : CMUnited98 (CMU, USA) Simulator league 1st : CMUnited98 (CMU, USA) Exhibitions Full set small size robot league (11 robots) Legged robot game LEGO robot football demonstration Webot simulator league

50 Simulation League

51 Simplified problem … World is two-dimensional. Players are points. Simplified control of movements No collisions and conflict solving. Simulator League: Simulation of soccer using artificial intelligence programs. Each team consists of eleven autonomous software players. Sophisticated rules apply in this league.

52 Simulation League Each Team consisting of 11 programs, each controlling 1 of 11 simulated team members The game takes place on a soccer software server Motion, energy and distributed sensing capabilities are resource bounded Time 11 minutes Communication is available between players and strict rules are enforced e.g. offsides Mainly for researchers interested in complex multi-agent reasoning and learning issues but don’t have the resources for building real robots

53 Simulation League Client-server system Server : virtual field Client : brain, control Communication : UDP/IP Open system Clients can be written by any programming systems.

54 SoccerServer

55 SoccerMonitor

56 Architecture Human arbiter Blue coach Red coach

57 Example - University team Entirely written in Java. Is built upon mainly decision trees threads running per player… however most of the time the threads is a sleep. Approx lines of code, and increasing! Written by 4 persons Simulator League:

58 Small- Size League

59 Small-Size League (F-180) Field: 2.7 m x 1.5 m teams of autonomous small size robot play soccer game on a field equivalent to a ping-pong table. Each team consists of 5 robots. Size Area : 18cm rule (fit inside in 18cm diameter cylinder) Height : 15cm (global vision), 22.5cm (otherwise)

60 Small size league The field is the size and color of a Ping Pong table

61 orange golf ball Robots move at speeds as high as 2 meters/s econd Global vision is allowed

62 Robot Soccer Initiative Basic Architecture for Robot Soccer Systems Robots on the playing field Host computer Vision system Communication System “Brainless” System

63

64 Vision System Vision : global vision system (more than 3m above ground) Each team has its own camera and PC

65 Small-Size League 20 minutes, 2 breaks

66 Real Robot Small-Size League Competition

67 Middle- Size League

68 Middle-size Real Robot League (F-2000): Local VISION The field is the size and color of a 3 x 3 arrangement of Ping Pong tables (9-3 5-meter field) Each team consists of 5 robots playing with a Futsal-4 ball (4 players, one goal-keeper) Larger (50 centimeters in diameter) robots Global vision is not allowed.  Each robot has its own vision system Goals are colored Field is surrounded by walls to allow for distributed localization through robot sensing Rule structure based on the official FIFA rules

69 Medium size league Teams of autonomous mid size robots

70 Real Robot Middle-Size League Competition Ball : red small soccer ball (FIFA standard size 4 or 5) Playground : green playground (10m * 7m * 0.5m)

71 Medium Size League

72

73

74

75 Robots can be heterogenous

76 Middle-Size League

77 Sony Legged Robot League

78 3 robots on 1 team (including the goalkeeper). Robot : AIBO ERS-110 (provided by Sony)

79 No communication, autonomous robots, software only. Legged Robot League. 2.8 m x 1.8 m 2 players and 1 goal-keeper in a team

80 Sony Legged Robot League Is played on a field, approx 3x2 meter Sony develops the robots, and provides a interface for the programming of the robots.

81 No Hardware modification is allowed Playing time is 10 minutes per half, with a 10 minute break at halftime

82 Do different Robots have different personalities? Some teams have robots with very different capabilities. But it is hard to think of them as having personalities; rather the robots have different playing styles.

83

84 Early Sony prototype

85 Robot movements closely mirror those of animals

86 The winner is the team that scores the most goals. In the event of a tie, a sudden death penalty kick competition will determine the winner

87

88 The Legged Robot League

89 If opposing teams' robots are damaged or play is excessively rough (whether intentional or not), penalties may be assessed to the offending robot

90 Humanoid League

91 Starting 2002, the humanoid league

92 Humanoid League Bi-Ped League (Humanoid) Australia Japan

93

94 RobotCup-Rescue RoboCup-Rescue Simulation Project is a new practical domain of RoboCup A new initiative on search and rescue for large scale disasters A generic urban disaster simulation environment constructed on network computers Heterogeneous intelligent agents such as fire fighters, commanders, victims, volunteers, etc. conduct search and rescue activities in this virtual disaster world Goal: to enlighten citizens about accurate damage predictions, decision support in real disasters, and emergence of better disaster prevention strategies

95 Robocup- Junior Robocup- Junior Initiative to promote educational aspects regarding RoboCup and advanced robotics topics children below 18 years old participate in the RoboCup-Junior games promotes participation by under-graduates, non-science graduates and general public, who are interested in RoboCup, but do not have the effort to get involved in the RoboCup World Cup games

96 Competitors Simulation Japan Iran Singapore USA Russia Germany Romania Portugal Catalonia Italy England Finland Sweden Australia F-180 (Small Size) Australia Belgium Catalonia China Denmark Germany Japan Korea New Zealand Portugal Singapore USA F-2000 (Middle Size) Italy Australia Germany Iran Japan Portugal Singapore USA Sony Four Legged USA France Japan Australia USA Canada Germany Sweden Italy England Champions: 1 USA, Cornell 2 Germany 3 Singapore Champions: 1 Portugal 2 Germany 3 USA, CMU Champions: 1 Germany 2 Italy 3 Iran Champions: 1 Australia 2 France 3 USA, CMU

97 Where is the science in these robot competitions? Global vision Local vision Other sensors Cooperation Sensor fusion Strategy Learning

98 Sensors and Actuators for Robot Soccer Local and Global VISION

99 Sensors for Robot Soccer Shaft Encoders – PI controller to maintain wheel speed – PI controller to maintain path curvature – Dead reckoning for vehicle position + orientation Infrared Distance Measurement – Avoid Collision – Navigate and map unknown environment – Update internal position in known environment Compass – Update orientation independent of shaft encoders – Fault-tolerance in case robot gets pushed or wheels slip

100 Sensors for Robot Soccer Digital Camera – Low resolution, 60x80 pixels, 24bit color (Braunl) – Color or shape recognition Communication – Sharing information among robots – Receiving commands from human operator

101 Team of Prof. Braunl

102 Another Robot of Prof. Braunl

103 One more robot of Prof. Braunl

104 VISION: Color Detection In robot soccer, objects are color coded: ball, goals, opponents, team mates, walls, etc. Teach ball and goal color (hue) before starting the game Match colors in HSI space → Better in changing lighting conditions

105 This can be applied to any position of the camera

106 Distance Estimation for Soccer Robots Many cameras, many positions

107 Driving Routines for Soccer Robots

108 Driving Spline Curves Previous driving routines: Combination of circles and straight lines Alternative driving routines: Hermite Splines robot position p k\ robot heading Dp k ball position (desired position) p k+1 angle between ball and goal (desired orientation) Dp k+1 Insert intermediate point in case robot has to drive around the ball.

109 Alternative driving routines: Hermite Splines robot position p k\ robot heading Dp k ball position (desired position) p k+1 angle between ball and goal (desired orientation) Dp k+1 Driving Spline Curves Hermite Splines robot position pk\ robot heading Dpk ball position (desired position) pk+1 angle between ball and goal (desired orientation) Dpk+1

110 Trajectory Planning

111

112 Ball Approach This slide shows several ways of approaching the ball that depend on positions of robot and ball

113 Obstacle Avoidance avoid_obstacle Activate avoid_obstacle routine, if: 1. PSD sensors detect obstacle within critical distance 2. stall function is activated. Drive backwards until obstacle is out of reach. If ball is caught in front of robot, kick it towards opponent’s goal before driving away. Reset position as part of the avoid_obstacle routine.

114 Team Player Roles

115 Goal Scoring with on board cameras Try to catch ball in front of the robot. Start driving towards position of goal if ball is caught. Constantly move camera up and down to look out for goal and check whether ball is still there. Shoot ball into the goal as soon as goal can be seen.

116 Goal Keeper: using vision

117 Goal Keeper Drive on circular path Always face the ball

118 Principles and role of vision in soccer, clustering, social robotics, etc. Robot soccer system Intelligent control system Multi-agent system Composition of robot soccer system Mobile robots Host computer Vision system Communication module Even the simplest of all systems has many challenges

119 Control structure Role level : Determines the roles of each robot. (defender, attacker and goal keeper – in case of soccer) Action level : Selects actions of each robot. (shooting, blocking, dribbling, etc) Behavior level : Move and obstacle avoidance Execution level : Motor control Vision versus strategy in group behaviors There is a short decision path from input to output: subsumption-like architectures

120 Vision-based system Remote brainless system Brain-on-board system Robot-based system Selection guidelines Developer’s interests Computational capabilities of host computer and vision system Capabilities of the robots Cost The system can be classified using the location of intelligence 2. Classification of Robot Soccer and similar group behavior Systems

121 Centralized system Simple and inexpensive Easy to develop the robot No local sensors. Fast computing time and sampling time Easy to debug and upgrade the program Remote-Brainless System High cost vision system and host computer A type of vision-based system Intelligent part is implemented in the host computer.

122 Robots The robots consist of: driving mechanism, communication part, and computational part for velocity and for processing the data received from a host computer Host computer All the calculations for vision data processing, strategies, position control of robots and so on, are done in the host computer which controls robots like radio -controlled car Continue on Remote- Brainless System

123 2.1.2 Brain-on-board system Intermediate level between the centralized and the distributed systems / between the remote- brainless and the robot based systems. Robots can use local sensors to move to the goal and to avoid the opponent. Can decompose the system into high level (host computer) and low level (robot systems). Easy to make the system in modular form A type of vision-based system Intelligence is partially implemented in the host computer and robots.

124 Robots The robots have functions such as velocity control, position control, obstacle avoidance, etc. Host computer processes vision data The host computer processes vision data and calculates next behaviors of robots according to strategies and sends commands to the robots using RF modem. Role of Vision Brain-on-board system

125 2.2 Robot-based system Suitable when the large number of agents exist Complex and expensive Need communication among robots Distributed system Intelligent part is implemented in the robots.

126 Robots The robots decide their own behavior autonomously using the received vision data, own sensor data and strategies. Host computer The host computer processes only vision data can be considered as a kind of sensor. Role of vision Robot-based system

127 System Comparisons System Comparisons Brain-on-board system Merits Demerits Research purpose Robot -based system Low cost Easy to develop Cannot use local sensors High computing power & fast sampling time Suitable for many agents Can use local information Complex and expensive robots. Hard to build the system Suitable to modularize Risk of inconsistent property between host computer and robot system Vision system Multi-agent theory Robot system Multi-agent system development Robot-based and vision-based systems Remote-brainless system

128 VXD: role of color Initialization Click ‘Load VXD’ in the Initialize group box Click ‘Start Grab’ Configuration ‘Load Conf.’: load a configuration file ‘Save Conf.’: save current configuration ‘Set Robot Size’: set the robot size in number of pixels ‘Set Pixel Size’: set the size of each color (ball, team, robot, opponent) patch in number of pixels ‘Set Boundary’: set the field boundary on the screen ‘Change Color’: change the color setting of each color patch ‘Set Color’: set the range of tolerance of each color

129 Subsystems and Vision Serial Port Select the serial communication port Home Goal Select the home side on the screen Find Objects Check the box of which you like to find on the field Initial Position: tell the vision system the initial position of each object E.g.) for the ball i) turn on the radio button of ‘Ball’ ii) place the mouse on the ball and press the left button Repeat above procedure for another object

130 Commands for Vision Select Situation The situation in which the game is about to start Command Click ‘Ready’: the vision system starts finding the objects on the field Click ‘Start’ : the vision system starts sending commands to the robots Click ‘Stop’ : the vision system stops finding objects and sending commands

131 4.2 Robot System for robot soccer Block diagram of the robot Logic Power PWM Right PWM Left Motor Driver Motor Driver Motor Voltage Regulator Motor Power Micro-Controller Battery Communication Signal Communication Module Motor Part

132 4.3 Communication (Infra-red) for robot soccer Infra-red Communication Four transmitters are used to cover the whole field

133 Transmitter shared by both teams Both teams share the same transmitter via a mediator Communication Packet Three 0xFFs: the start of a packet 0x0F (0xF0): Team A (Team B) V Li, V Ri : left and right wheel velocity of robot i 0xAA: end of velocity data of each robot

134 3.2 Foraging and Clustering There are many similar robot applications to robot soccer: A number of objects are scattered in the driving area objects can be colored or otherwise marked for detection e.g. colored cubes or cans The robot’s task is to collect all objects either by bringing them all to a certain location e.g. home location → foraging or by moving it to the position that already has the largest object density → clustering Role of Vision

135 Clustering Clustering phenomenon Can be observed in nature: Termites Good example for “emergent behavior” simple local behavior complex results Can be executed by single or multiple robots Has been used in simulation as well as in real robot demonstrations

136 Clustering

137 Online References

138 Problems 1. Propose other robot sports in addition to soccer and sumo. Wrestling? Volleyball? Fencing? Write the rules and design a robot to play them. What will be technical and what will be the scientific challenge. 2. Design the rules for walking robots playing soccer. Design the field. How to control the camera. Do we need sensors and for what? Where are they located? 3. Explain the differences between various types of vision systems used in robot soccer.

139 Problems 1. Propose other robot sports in addition to soccer and sumo. Wrestling? Volleyball? Fencing? Write the rules and design a robot to play them. What will be technical and what will be the scientific challenge. 2. Design the rules for walking robots playing soccer. Design the field. How to control the camera. Do we need sensors and for what? Where are they located? 3. Explain the differences between various types of vision systems used in robot soccer.

140 Problems 4. What are the scientific goals of robot soccer? What robot soccer contributed already to robotics? 5. What is AI? What is Turing Test? Invent variants of Turing Test to test other robot’s abilities than leading a meaningful conversation. 6. Give example of robot foraging. 7. Give example of robot clustering. 8. How to use agents to implement robot foraging and clustering. 9. Sensors used in robot soccer.

141 Problems 10. Present the line-based color detection scheme for soccer robots. 11. Distance Estimation for Soccer Robots 12. Driving Routines for Soccer Robots 13. Splines and other methods for driving 14. Trajectory planning for soccer robots. 15. Vision system for a mobile robot playing soccer. 16. Communication system for a soccer robot. 17. Obstacle avoidance for robot soccer 18. Team playing strategies for robot soccer.


Download ppt "The idea of Robot Soccer The idea of Robot Soccer."

Similar presentations


Ads by Google