Dear James,
Follow some further information complementing Shunki's answers to your questions.
The idea behide the ADF Framework is to provide a module agent architecture to the Rescue Simulation that you can be used as the basis to implement your own team by replacing only the modules you want to focus your implementation. Previously, each team had to implement all modules to compete like PathPlanning, Target Decision, Clustering, etc. It was a very laborious task, so we released (Thanks to the Japanese research group) the ADF allowing teams to implement only the module they were interested and reuse the other modules from the sample implementation or from another team. You can find more information about the ADF implementation and design at
Takami, S., Takayanagi, K., Jaishy, S., Ito, N. & Iwata, K. (2017). Design of agent development framework for RoboCupRescue Simulation. In R. Lee (Eds.), *Computational Science/Intelligence and Applied Informatics* (Vol. 726, pp. 185-199). Cham: Springer.
available open source at https://files.tkms.jp/ijsi-adf2018.pdf.
The ADF Framework is divided into 2 repositories. The rcrs-adf-core repository contains the abstract and interface classes defining the structure of the ADF framewrok, while the rcrs-adf-sample repository contains a sample implementation of the ADF and the implementation of a team. An example of an agent team code resides in the rcrs-adf-sample repository under the src/adf/test_team folder.
The agents' behaviors are defined in the Tactics package (src/adf/sample/tactics folder). The tactics define the sequence of steps the agent take to perform their task, i.e., FireBrigade - Rescue Civilian, Ambulance Team - Transport Civilian to Refuge, and Police Force - Clean the roads. These sequence of steps are defined through method calls to the other classes like TargetAllocator, BuildingDetector, etc... The latter are the ones you should implement for your team, see src/adf/test_team/module/AStarPathPlanning, src/adf/test_team/module/complex/center/TestAmbulanceTargetAllocator and src/adf/test_team/module/complex/self/TestBuildingDetector. The link between the implementation in the src/adf/test_team package and the tactics is done via a configuration file config/module_sample.cfg. In this config file, you point which classes should be used to perform the task of each module of the ADF. So, you can change the module's configuration to point to your module's implementation and keep the others the same.
*IMPORTANT:* Note that the config/launch.cfg file is the configuration file that points to the module's config file. The default configuration on the GitHub repository points to the config/module_sample.cfg, but you can change it to point to another modules' configuration file if you do not want to change the module_sample.cfg. For example, you can create a copy of the module_sample.cfg and name it module_myteam.cfg, then you can replace the following line in the launch.cfg
FROM adf.agent.moduleconfig.file: config/module_sample.cfg TO adf.agent.moduleconfig.file: config/module_myteam.cfg
*NOTE:* There is a typo in the ADF Manual, the directory is not src/adf/sample/extraction, but src/adf/sample/extaction.
Kind Regards,
On Sat, Nov 6, 2021 at 3:03 PM James KDH via RoboCup-rescue-s < r**************s@lists.robocup.org> wrote:
Hello, I am completely new to this RCRS league and I only have a basic familiarity with Java. I have read through the documentation given in the website but I have the following questions:
According to the documentation ...
src/adf/sample/centralized
- source codes for central agents. This is the type of agent whose only
interaction with the world is through radio communication. There are three types of central agents: Ambulance Centers, Fire Stations and Police Office, and they are represented as buildings in the simulation server.
src/adf/sample/extraction
- codes of combining actions described in the directory below.
src/adf/sample/module
- concrete codes of algorithms, e.g., path planning, clustering, target
detection, etc. The directory contains two directories: • src/adf/sample/module/algorithm • src/adf/sample/module/complex
My main questions are where is the source code for each of the individual Agents implemented? And what does src/adf/sample/extraction is supposed to be specifically? I have looked through a couple of past RCRS participant's source codes but I still couldn't get a good idea.
Thanks! _______________________________________________ RoboCup-rescue-s mailing list R**************s@lists.robocup.org