Date: Thu, 29 Nov 2001 20:24:01 +0900 (JST) From: nue@nue.org (Ikuo Takeuchi) To: r-resc@ISI.EDU Subject: 2002 League regulation (on messages) Dear RoboCup Rescuers, After we proposed some rule changes on Nov 27th, we continued the discussion on the 2002 League regulation and have got other proposals on messages. These require very small change of the kernel program, as certified by T. Morimoto, but require some changes of all agent teams. Criticism and discussion are welcome. In the current rule, each agent can tell or say up to four sentences in a cycle (minute), and can hear up to four sentences in a cycle. As Emmanuel pointed out, no center agent can function well under this restriction as expected. A center agent should have the function to organize gathered information and propagate only important (or edited) information to other center agents and its platoon agents. However, it is reasonable to restrict the number of tell/say messages issued by a center agent in a cycle as much as its platoon agents, because its platoon agent can hear only four messages. In addition, the definition of a sentence should be defined more strictly. The following is the detail of our proposals. (1) A center agent can hear up to N sentences in a cycle, where N = 2 * (number of its platoon agents). So the center agent can play more important role. To sum up, | AK_TELL/SAY | AK_HEAR --------------+-------------+--------- Platoon agent | 4 | 4 Center agent | 4 | 20 or 10* (* 20 for fire station and police station, 10 for ambulance center) (2) Each agent must completely discard the messages it decides not to hear. Do not use the information WHO spokes and WHO does not speak. (3) A sentence should conform to the following format: int id int msgSize char* msg which is not different from the current one of the AK_TELL/SAY's message, for the compatibility reason, but the contents of msg is limited. (3-1) The id field must be the ID of the sender. (3-2) The msgSize and msg is ether one of: +---+---+---+ | 2 | k | k | (2kk format) +---+---+---+ or +---+---+---+---+---+---+---+---+---+---+---+---+---+ | 12| k | k | i | i | i | i | i | i | i | i | i | i | (12kkID format) +---+---+---+---+---+---+---+---+---+---+---+---+---+ where k's and i's are digits from 0 to 9 (ASCII codes 0x30 to 0x39). Two digit number kk denotes the kind of sentence, which can be freely defined by the agent developer. So at most 100 kinds of sentences can be uttered in a team (maybe enough for the Version 0). 2 and 12 are integers denoting the message length (msgSize). Ten digits number iiiiiiiiii denotes the ID of an object or an agent existing on the map. The kernel does not check the validity of the denoted ID at run time. However, we hope no one would represent something else by this ten digit number. If a sentence does not include an ID, the former simple 2kk format should be used. (3-3) All agent developers are expected to disclose the coding scheme of the "kk" field with their program, say, as follows: #define MSG_BLOCK_ROAD 01 // The road[id] is blocked #define MSG_INJ_POSITION 02 // A civilian is injured at Place[id] Tak (NUE) with T. Morimoto The University of Electro-Communications