Developing a team Cyrille Berger October 6, 2015

advertisement
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
Download