Vous êtes sur la page 1sur 6

KGPTigers 2009 Team Description

K.Tripathi1, S. Choudhury2, B. Sarkar 3, K. Bairagi4, N. Kumar5 , S.Desai6


Department of Computer Science and Engineering 2 Department of Electrical Engineering 4 Department of Electronics and Electrical Communication Engineering 6 Department of Biotechnology Indian Institute of Technology, Kharagpur Kharagpur 721302, India
2

1,3,5

kaustubh.iitkgp@gmail.com sanjiban.choudhury@gmail.com 3 bittusrk@gmail.com 4 kinshuk.1989@gmail.com 5 naveeninkgp@gmail.com 6 sompod.daddy@gmail.com

Abstract In this paper we present the overview of KGPTigers team, our entry for RoboCup Small-Sized League in RoboCup Challenge @ India 2009. Since this is the first entry for our team, the whole infrastructure is discussed. In addition to implementing existing algorithms, the paper introduces original design and solutions to problems faced along the way. A summary of the vision, hardware and strategy is also discussed.

distortion in both the cameras. So before calibration these images we remove the radial distortion in both the acquired images. The camera interface communicates with the strategy interface using a UDP connection. The camera interface sends the information about the coloured regions detected after thresholding. The strategy interface then creates an environment using the received information and decides on the actions to be taken by various robots. The strategy interface is also connected to the Referee Box to receive commands from the referee about the state of play. The central marker is reserved for the team colour markers i.e. blue or yellow. There is also a header marker that has a unique colour on the bot, which determines the angle of the robot. There are also other identification markers of a different colour. The number of these identification markers, along with the header marker uniquely identifies the robot. III. ROBOT HARDWARE The robots used are MIROSOT-100 robots which formed the basic platform on which we built around.

Keywords RoboCup, KGPTigers, SSL Team Description, Multi-agent differential drive systems. I. INTRODUCTION KGPTigers is IIT Kharagpurs first ever entry into the RoboCup SSL league. The work that went behind this entry was to develop the whole platform to control multiple agents and engage them in the game of soccer. The paper is divided into the following sections the vision system, the hardware system and the intelligence architecture. Along the way, we also discuss the problems faced and the solutions arrived at. The paper concludes with prospects for future developments. II. VISION We use two CCTV cameras along with a frame grabber to get the images for each half of the field. The two cameras are placed above the centre of each half. The frame grabber is used to get a YUV image of the two halves. YUV images provide for a better thresholding for detection of coloured blobs as chromatic and intensity components are separate in a YUV image. The thresholding is done before a game using the Camera Interface program written specifically for this purpose. There is a radial

This solenoid was mounted on top of the robot and on being activated pushed an aluminium frame. The schematic is as shown in figure 4.

Figure 1. The MIROSOT -100 robots

Figure 4. The kicker mechanism

The logic behind this design was that since rolling friction is very less, there is no significant force opposing the solenoid. Hence the velocity of the ball is the velocity of the ball when it leaves the frame. 3 _1 creating a high speed for the =

where ball.

Figure 2. Specification of robot

We added a shell as a protection around the robot. Lithium ion batteries with charge capacity of 2000 mAh were attached. The kicker system was developed using an open frame, push type solenoid.
Figure 5. Robot shell

III. Motion Planning and Implementation of Strategy


The motion planning algorithm is designed to control the movement of 5 robots simultaneously, avoiding collision with each other and opponent robots. For such applications, a real time path planning approach is required which is sub-optimal but adheres to strict time constraints. Coupled with this, a generic strategy structure is required which directs the movements of the robots and responds to field configurations and situations.

Figure 3. Open frame, Push type solenoid.

A. Prediction of the world model The frame rate after visual segmentation drops to an average of 2 fps. This rate isnt fast enough for the corrective feedback required to keep robot following designated path. Moreover, a certainly positional uncertainty is associated with the robot and the ball. During calculation of angles of robots, both uncertainties couple and the standard deviation of error increases. We thus use Kalman Filters [7] for prediction of the world model and to remove positional uncertainties as much as possible. For the ball model, a simple linear Kalman filter is used as shown = (1) Since the robot is a differential drive, it is better modelled by extended Kalman filters since its motion is non-linear. The state space model for the robot is = (2) The filters have several advantages 1. Given a time stamp, the postion of the ball and the bot can be predicted. 2. The filter can be tuned to converge faster at the same time tolerating greater error by increasing the process noise. 3. Occlusions may occur in the image processing where certain frames may miss the robot, which can be handled by the Kalman filter. B. Real time path planning The path planning is treated as a black box module whose input is the initial and final configuration and output is expected to be the series of intermediate states to reach the configuration respecting constraints. The condition also demands that the module be a hard real time system; failure to output the path within a given interval T would mean complete failure. Other issues are state discretizations, efficiency v/s accuracy trade-off and respecting kinematical constraints. We adopt the method of RRT [3] (Rapidlyexploring Random Trees) as a basis for out path planning. The ingenuity of the method lies in the fact that it doesnt delve into state discretization and thus prevents the explosion of nodes with

increasing dimensions. Also these algorithms are incremental in nature allowing robot specific constraints to be encoded in the algorithm. Specifically we modify the ERRT [3] (Extended Rapidly-exploring Random Trees) algorithm which had a very good success rate. To implement the algorithm a KD tree was used with bi-directional searching. function RRTPlan (env:environment, initial:state, goal:state):rrt-tree var nearest, extended, target:state; var tree:rrt-tree; nearest := initial; rrt-tree := initial; while(Distance (nearest, goal) < threshold) target = ChooseTarget (goal); nearest = Nearest (tree, target); extended = Extend (env, nearest,target); if (extended != EmptyState) then AddNode (tree, extended); return tree; function ChooseTarget(goal:state):state var p:real; var i:integer; p = UniformRandom in [0.0 .. 1.0]; i = UniformRandom in [0 .. NumWayPoints-1]; if (0 < p < GoalProb) then return goal; else if (GoalProb < p < GoalProb+WayPointProb) then return WayPointCache[i]; else if (GoalProb+WayPointProb < p < 1) then return RandomState(); function Nearest (tree:rrt-tree,target:state):state var nearest:state; nearest := EmptyState; for each state s in current-tree if (Distance (s,target) < Distance (nearest,target)) then nearest := s; return nearest; Table x: The outlay of the ERRT approach to path planning. This algorithm was primarily meant for omnidirectional robots which have less constraints than the differential drives that we used. Hence, the following improvements were applied by us 1) Generated path must be smooth Differential drives have a limitation in their

kinematics when it comes to changing the heading of their movements. As a result, we approach the issue of turning with the dual aspect of stopping completely and turning, as well as turning while moving maintaining a fairly large radius of curvature so the centripetal force is not enough to topple the robot. Thus we modify the algorithm for Extend() function as follows:

a far less optimal path around both obstacles will be tried. In such cases, the radii is reduced just enough to squeeze an opening through the obstacles.

function Extend(env, nearest, target, overwrite_flag):state var extended_node:state; if(nearest==start && target==goal || overwrite_flag == 1 ) then extended_node := Create_node(nearest, unit_dist, angle(nearest, target)); else if(angle(nearest,target) > thresh_angle) then extended_node := Create_node(nearest,unit_dist, thresh_angle); else extended_node := Create_node(nearest, unit_dist, angle(nearest, target)); return extended_node;
Table 1 : Modification of Extend function The above modification results in smoother trajectories and drastic turn only in the cases to face the ball or when triggered by a flag. This flag is triggered under time constraints as explained later on. 2) Implementation of hard real time system The path planner has to return any solution within a time T. So after time T/2, it activates a drastic flag which demands any non-smooth trajectory to take itself out of deadlock situations. After tine T, the nearest state to goal is taken and that series of paths is chosen. 3) Improving search speed by introducing a 3rd dimension to KD tree The current search method used a 2-dimensional KD tree for faster searching. We also introduce a 3rd dimension sorted according to heading so that we can find the point closest in heading to the previous point 4) Dynamic radii change of safety circles Obstacle collision is prevented by generating a safety circle around each bots which has a radius of 2*bot_diameter. While this results in trajectories well away from each other, sometimes a robot needs to pass through the gap between two bots. If the gap is feasible enough, but less than 4*bot_diameter, the path will not be generated and

Figure 6. Screenshot of the path planner GUI

The above screenshot shows in red the planned path of each robot, as well as the orange ball at the centre. The coloured rings around the robots represent the safety radii, the colour standing for the perspective of the particular robot. C. Strategic implementation MAPS (Multi-Agent Planning System) is a method of controlling multiple robots in a highly dynamic environment like Robocup. It uses Potential fields to create a high-level abstract representation of the robots environment at a particular point of time. From these fields obtained, strategic commands are sent to each robot like Kick the ball to a good position or Run to a good position. [5] We use MAPS to plan strategies only during normal course of the play. Under extreme cases of defensive and offensive plays we leave aside MAPS and greedily decide the course of action. The actions of the goalie are not determined by MAPS. The classical MAPS algorithm: Update robot and ball coordinates from vision system Build a field to determine robot actions for each robot if the robot is best to kick the ball Build a kick to working field Send kick to command and coordinates to robot else if we are in control of the ball Build an attacking go to field else Build a defensive go to field

Send go to command and coordinates to robot end

Defending in extreme situations: When an opponent is very close to our goal, the closest teammate goes for the ball and others get in the way of the attacker and the goal to prevent a goal from being conceded.

1) MAPS Implementation The playing field is divided into an integer array of dimensions 38x28. The integers represent the potential of that area. Then a series of potential fields are built on an empty equi-potential field. At last, MAPS decides for each robot its next course of action by finding the minimum value in the array. The Potential Fields used are: (i) Base Field: The array is filled with values decreasing towards the opponent goal, thus biasing the play towards the opponent goal. (ii) Distance Field: In order to avoid giving orders to shoot to long distances a field is created in which the value of a square is proportional to its distance from the ball. (iii) Robot Influence Field: It makes a small region around the robots repulsive or attractive depending on the situation. Say, we require a attractive field around the teammates when trying to pass the ball and a repulsive region in order to avoid crowding. (iv) Clear Path to Ball Field: It makes a region repulsive where it is not possible to kick the ball to, like the regions behind the robots from the point of view of the ball. (v) Clear Path to Goal Field: It makes a region repulsive from where the view of the goal is obstructed. This helps the players to go to a better position to receive the ball and shoot. 2) MAPS Command Fields: (i) Kick To Field: All the above fields except the last are built and added together. The point corresponding to the lowest value is the desired kick to coordinate. (ii) Go To Field: All of the above fields are built and added together. For an attacking Go To field, the opposition goal is considered for the Clear Path to Goal Field and the lowest point is chosen. Its the reverse in case of a defensive Go To field. Attacking in extreme situations: When very close to the opponent goal, a shooting situation is checked for existence. If it is the Kick To field commands to shoot the ball at the opponent goal. If it isnt MAPS takes over the decision making.

Figure 7. The potential field

Above is a snapshot of the simulator showing an attacking go to field for blue robot lowest in the picture. This field did not add the Clear Path To Goal Field. The black circle represents the point returned to this robot by MAPS to go to. Potential and thus repulsiveness decreases from darker to lighter regions. D. Differential drive control for position We use a set of reactive equations for robot control [6]. If we want our drive to turn from to then let = , = cos sin , (1)

The above set of equations bound any wheels speed by . IV. CONCLUSIONS In the coming years we will work to improve the present system drastically. Working in this fast real-time environment has given us an idea of the speed and desired robustness. From the hardwares perspective, new omnidirectional robots with intelligent controllers will be manufactured.

(2) (3) (4)

The vision system would be more robust, with dynamic localisation techniques and adaptive thresholding. The strategy system will be made completely intelligent through training environments and neuro-fuzzy controllers. Also at an higher level, game theory will be incorporated to model opponent tactics. ACKNOWLEDGMENT We would like to thank the Department of Computer Science and Engineering for the immense help and advice in this area. Without their aid, procurement and organization of the project would have been impossible. We would also like to thank all concerned professors Prof J. Mukhopadhya, Prof S.Sarkar, Prof D.K.Pratihar and Prof G.Harit for their invaluable advice. REFERENCES
[1] Bruce, J., Balch, T., Veloso, M.: Fast color image segmentation for interactive robots. In: Proceedings of the IEEE Conference on Intelligent Robots and Systems, Japan (2000) Bruce, J., Veloso, M.: Fast and accurate vision-based pattern detection and identification. In: Proceedings of the IEEE International Conference on Robotics and Automation, Taiwan (May 2003) Bruce, J.R., Veloso, M.: Real-time randomized path planning for robot navigation. In: Proceedings of the IEEE Conference on Intelligent Robots and Systems. (2002) Akiyama, J: Adapting the multi-agent planning system for Robocup Simulation. In: University of Queensland, Bachelor thesis. Tews, A, Wyeth, G: MAPS: a system for multi-agent coordination. In: Advanced Robotics, Vol. 14, No. 1, pp. 3750 (2000) Bowling, M, Veloso, M. Motion Control in CMUnited98. In Proceedings of IJCAI-99 Workshop on RoboCup, pp. 5256, 1999 Kalman, R. E. 1960. A New Approach to Linear Filtering and Prediction Problems, Transaction of the ASMEJournal of Basic Engineering, pp. 35-45 (March 1960).

[2]

[3]

[4]

[5] [6]

[7]

Vous aimerez peut-être aussi