Developing a team Cyrille Berger October 6, 2015 From attending the lectures, participating at the seminars and practicing in the lab, you should know have reached a good understanding of the challenges and opportunities for developing a team of agents for the RoboCup Rescue Simulator League. Contents 1 Tasks 1.1 Foundation tasks . . . 1.2 Agents tasks . . . . . . 1.2.1 Common tasks 1.2.2 Agents . . . . . . . . . 1 2 3 3 3 2 Strategy tips 2.1 Reaching the highest score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Coordination between the different types of agents . . . . . . . . . . . . . . 3 3 4 3 Working in group 3.1 Working with svn branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Collaborate on the same code with your fellow students . . . . . . . . . . . 4 4 5 4 Weekly competition 5 5 Grades 5.1 Reports . . . . . . . . . 5.2 Team description . . . 5.3 Individual assignment 5.4 Cheating . . . . . . . . 5 5 6 6 7 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tasks As a group you cannot work on all the possible aspects of the team development, you will have to specialized yourself in a specific area. We have identified several tasks that you need to work on to develop your team, and you should distribute yourself on those tasks, and should not work more than two on them. It is also possible for a student to work on different tasks, it is especially true for the foundation tasks. And if two students are working on the same task, they need to work on a different aspect of it. Also keep in 1 mind that those tasks are only guidelines and that you can divide the work differently, it is also possible to not have any students working on one of the task. 1.1 Foundation tasks Those tasks are common to every agents. Navigation. During lab 1, you have implemented the A* algorithm and a cost matrix on the graph of long road. This is the optimal solution for a static and fully observed environment. However, this is not the case in the rescue simulator, while the agents know the topology of the environment, the position of the building and the roads, there can be obstacles on the road, some obstacles appear at the beginning of the simulation, they get cleared by the police force and new obstacles can appear. This problem is known as the Canadian traveller problem. Communication. During lab 3, you have developed a basic communication framework for exchanging information between agents and transmitting orders. And in lab 4 to 6 you have been using communication for coordination of agents and for exchanging information about the world (position of a civilians, temperature of fires...). In reality, coordination through communication should be restricted as much as possible and agents should be able to coordinate between themselves without the need for communication. There are several reasons for that: • Communication is slow, there is always a delay between an agent sending the message and an other agent receiving a message • Bandwidth is limited, mobile agents can only receive and send a total maximum of eight messages of 1024 characters (at most) • Communication is unreliable, some messages are lost or damaged • Communication may be disabled, for part of the simulation or for the full length (channel 0, corresponding to speak is always available but very short range) That said communication should not be ignored, as it is still useful and is an important part of a successful team. It can be used to improve coordination, for instance, to decide who is a local team leader, or to assign agents to different area of the map. Agents may need to send request for help. For instance, an agent can get buried and require the assistance of an ambulance, or it can be locked between blockades and need the police force to clear a path. And also, agents should always try to communicate the information they have about the world, location and status of civilians, location and intensity of a fire, location of blockades... In this task, the student should improve the communication framework to handle noisy data and handle priority. 2 1.2 Agents tasks Depending on how you intend to implement your agents, and which strategy you follow, you may have more common tasks, for instance, some coordination algorithms are common to all type of agents. But note, that for different agents you might have to use different algorithm, so it might not be possible to share them between the different type of agents. 1.2.1 Common tasks Exploration. Strategy for finding victims or new fires. Keep in mind that having agents dedicated to exploration is not necessary the best solution. It could be a good idea to integrate exploration into path planning and also it is not necessary to go inside a building to see if there are victims, it can be done from outside, but then you would need algorithm to check coverage of a building. Prediction. Prediction is an essential prerequisite to good planning. You will need to be able to predict whether a fire is going to propagate, or what is the likelihood of a victim to die... All those prediction on the evolution of the world will allow each agents to take the best decision. Task allocation and coalition This has to do with deciding what each agent should be doing. 1.2.2 Agents Ambulances. Ambulances have the ability to rescue hurt civilians, and to digg out civilians and other agents. Fire Force. Fire brigade are mostly concern with extinguishing fire. Police Force. Police force is in charge of clearing the streets from blockades. 2 2.1 Strategy tips Reaching the highest score The score function is defined as followed: Scor e = |ci vil ians| · Fs · Ch (1) Where |ci vil ians| is the number of alive civilians, Fs is the percentage of building that is still standing, Ch is the percentage of health left for all civilians. Given that Fs and Ch are function comprised between 0 and 1. As you can see, to get the highest score, saving civilians life should be your highest priority. It means that the priority should be given for firemen to extinguish building that contains civilians over empty building, it means the police have to clear, in priority, a path between the refugees and where the most civilians are located. It means ambulances 3 have to make though decision and sometime decide that they cannot save a civilian in order to be able to save more. 2.2 Coordination between the different types of agents Each types of agent have different capabilities. And in many cases, they will need to be combined, typically agents can get buried, and only an ambulance can dig them out, the police have to clear a path for the agents to move around in the map. 3 Working in group Working in group can be very challenging, the scope of developing a rescue team is so large that it cannot be done by a person alone. The main solution to any teamwork problem is good communication with the members of your group. 3.1 Collaborate on the same code with your fellow students Even if you decide to use branches, you will need to make sure that your code does not conflict with other members of your team otherwise you will have trouble to merge back your changes before the final tournament. When collaborating on the same code base, the main question is which part of the project is common to each members of the team. Meaning, which files are likely to be changed by each members, and which files are unique to your work? Since most of you are working on separate tasks, you are also most likely to be working on different classes and files, which should limit the source of conflicts in the code. However, some of you are going to be working on foundation tasks (navigation, communication...) which is code that is going to be used by other in the implementation of the agents. In this case it will be very important for you to define stable API, you will need to discuss in the group, what you need and expect from the foundation tasks. The main advice we can give to you is: sit down with your teammates and each of you tell which part of the code you will need to modify, and we cannot repeat it enough. 4 Weekly competition During the month of November and December, we will be running a weekly competition to see how your team evolves, compared to the other AIP students and as well as against team that took part in the robocup competition. For the competition, we will checkout the code from the master branch of gitlab. 5 5.1 Grades Reports The grade on the reports is based on their quality, such as readability, language, pictures, structure and length, and the level of technical detail weighted with the difficulty of the 4 chosen approaches. The reports should be written for students in the AIP course and give an overview of how the team works, what techniques are used and how they are integrated. The reports should be 5-6 pages, but it is more important to make it possible for the reader to understand your team than to get the exact right number of pages. However, it is an art to write short, concise and to the point, so writing more than 6 pages is only positive if you fill it with relevant and well written content. 5.2 Team description Write a team description describing your team, the overall approach, some details and also compare a bit to the other teams. You can take as example for this report, the team description from the official competition. This report should be written by the full group. Deadline: Draft before 12th December 2015; Final version 6th January 2016. 5.3 Individual assignment Select one or more AI related techniques that you think will improve your team and that you are interested in. Coordinate with your group to make sure you do not select the same techniques. • Find at least 4 relevant and technical references. You can find links to papers and paper repositories on the website (http://www.ida.liu.se/~TDDD10/), in the resources and in the course material, and you should also look for relevant papers by other means, such as Google Scholar (http://scholar.google.com/). • Write a short (not more than a page) project description describing the techniques of your choice, the goal of your project, how you intend to evaluate the success of your project, and at least 4 relevant and technical references. Send it to the examiner together for approval. Deadline: October 28th. • Read the papers and study the technique(s) you have selected and how they can be used in the rescue simulator. • Implement and apply the technique(s) in your team and evaluate the goal of your project. • Give a short (5 minutes) presentation of your topic at a seminar (<b>late November</b>). What technique have you looked at? What is it useful for in the Rescue domain? What are some of the problems or issues related to the technique? How will you evaluate it? • Write a report describing the project, technique(s), and the results of the evaluation. The intended audience is AIP students. Since this is the most important part of the examination in the course you have the opportunity to get feedback on a draft of your report from the examiner before the final version is due. Deadline: Draft before 12th December 2015; Final version 6th January 2016. 5 5.4 Cheating The individual team improvement report should be written individually by each student, while only one team description report should be written by each team. The normal rules regarding plagiarism should be followed. All facts or ideas that are neither your own nor common knowledge should have a reference to the source. It is allowed to discuss with others and it is allowed to share code within the group as long as the student makes significant contributions to the relevant parts of the code. It is allowed to use external libraries as long as the logic describing the behaviour of the agent is written by your group. Failure to comply with this rule is the same as cheating on an exam. 6